src/widgets/Tagcloud.js
author ymh <ymh.work@gmail.com>
Tue, 22 Oct 2024 09:54:34 +0200
changeset 1080 2b513bcb710a
parent 1072 ac1eacb3aa33
permissions -rw-r--r--
increment version
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
     1
import Mustache from "mustache";
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
     2
import _ from "lodash";
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
     3
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
     4
import tagcloudStyles from "./Tagcloud.module.css";
880
4c7b33bf2795 Started work on CreateAnnotation and Mediafragment
veltr
parents:
diff changeset
     5
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
     6
const Tagcloud = function (ns) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
     7
  return class extends ns.Widgets.Widget {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
     8
    constructor(player, config) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
     9
      super(player, config);
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    10
      this.stopwords = _.uniq(
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    11
        []
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    12
          .concat(this.custom_stopwords)
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    13
          .concat(this.stopword_lists[this.stopword_language])
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    14
      );
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    15
    }
880
4c7b33bf2795 Started work on CreateAnnotation and Mediafragment
veltr
parents:
diff changeset
    16
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    17
    static template =
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    18
      '<div class="Ldt-Tagcloud-Container"><ul class="Ldt-Tagcloud-List">' +
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    19
      '{{#words}}<li class="Ldt-Tagcloud-item Ldt-TraceMe" trace-info="tag:{{word}}" content="{{word}}" style="font-size: {{size}}px">{{word}}</li>{{/words}}' +
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    20
      "</ul></div>";
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    21
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    22
    static defaults = {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    23
      include_titles: true,
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    24
      include_descriptions: true,
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    25
      include_tag_texts: true,
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    26
      tag_count: 30,
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    27
      stopword_language: "fr",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    28
      custom_stopwords: [],
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    29
      exclude_pattern: false,
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    30
      annotation_type: false,
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    31
      segment_annotation_type: false,
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    32
      min_font_size: 10,
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    33
      max_font_size: 26,
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    34
      min_count: 2,
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    35
      remove_zero_duration: false,
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    36
    };
880
4c7b33bf2795 Started work on CreateAnnotation and Mediafragment
veltr
parents:
diff changeset
    37
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    38
    stopword_lists = {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    39
      fr: [
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    40
        "aussi",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    41
        "avec",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    42
        "aux",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    43
        "bien",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    44
        "car",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    45
        "cette",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    46
        "comme",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    47
        "dans",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    48
        "des",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    49
        "donc",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    50
        "dont",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    51
        "elle",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    52
        "encore",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    53
        "entre",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    54
        "est",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    55
        "ĂȘtre",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    56
        "eux",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    57
        "faire",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    58
        "fait",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    59
        "http",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    60
        "ici",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    61
        "ils",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    62
        "les",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    63
        "leur",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    64
        "leurs",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    65
        "mais",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    66
        "mes",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    67
        "mĂȘme",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    68
        "mon",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    69
        "notre",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    70
        "non",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    71
        "nos",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    72
        "nous",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    73
        "ont",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    74
        "par",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    75
        "pas",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    76
        "peu",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    77
        "peut",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    78
        "plus",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    79
        "pour",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    80
        "quand",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    81
        "que",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    82
        "qui",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    83
        "quoi",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    84
        "sans",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    85
        "ses",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    86
        "son",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    87
        "sont",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    88
        "sur",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    89
        "tes",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    90
        "trĂšs",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    91
        "the",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    92
        "ton",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    93
        "tous",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    94
        "tout",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    95
        "une",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    96
        "votre",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    97
        "vos",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    98
        "vous",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
    99
      ],
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   100
      en: [
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   101
        "about",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   102
        "again",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   103
        "are",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   104
        "and",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   105
        "because",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   106
        "being",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   107
        "but",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   108
        "can",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   109
        "done",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   110
        "have",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   111
        "for",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   112
        "from",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   113
        "get",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   114
        "here",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   115
        "http",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   116
        "like",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   117
        "more",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   118
        "one",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   119
        "our",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   120
        "she",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   121
        "that",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   122
        "the",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   123
        "their",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   124
        "then",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   125
        "there",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   126
        "they",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   127
        "this",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   128
        "very",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   129
        "what",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   130
        "when",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   131
        "where",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   132
        "who",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   133
        "why",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   134
        "will",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   135
        "with",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   136
        "www",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   137
        "you",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   138
        "your",
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   139
      ],
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   140
    };
880
4c7b33bf2795 Started work on CreateAnnotation and Mediafragment
veltr
parents:
diff changeset
   141
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   142
    draw() {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   143
      if (this.segment_annotation_type) {
965
eadb7290c325 Improvements in widget communication
veltr
parents: 957
diff changeset
   144
        var _this = this;
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   145
        this.source
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   146
          .getAnnotationsByTypeTitle(this.segment_annotation_type)
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   147
          .forEach(function (_a) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   148
            _a.on("enter", function () {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   149
              _this.redraw(_a.begin, _a.end);
1013
392ddcd212d7 Throwed in a bunch of semicolons
veltr
parents: 983
diff changeset
   150
            });
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   151
          });
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   152
      } else {
908
f56199193fad CreateAnnotation widget now posts annotations, Tagcloud can be made segment-dependent
veltr
parents: 906
diff changeset
   153
        this.redraw();
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   154
      }
908
f56199193fad CreateAnnotation widget now posts annotations, Tagcloud can be made segment-dependent
veltr
parents: 906
diff changeset
   155
    }
f56199193fad CreateAnnotation widget now posts annotations, Tagcloud can be made segment-dependent
veltr
parents: 906
diff changeset
   156
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   157
    redraw(_from, _to) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   158
      var _urlRegExp = /https?:\/\/[0-9a-zA-Z\.%\/-_]+/g,
880
4c7b33bf2795 Started work on CreateAnnotation and Mediafragment
veltr
parents:
diff changeset
   159
        _words = {},
908
f56199193fad CreateAnnotation widget now posts annotations, Tagcloud can be made segment-dependent
veltr
parents: 906
diff changeset
   160
        _this = this,
f56199193fad CreateAnnotation widget now posts annotations, Tagcloud can be made segment-dependent
veltr
parents: 906
diff changeset
   161
        _annotations = this.getWidgetAnnotations();
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   162
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   163
      if (!this.include_titles && !this.include_descriptions) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   164
        var _regexpword = /[^\.&;,'"!\?\d\(\)\+\[\]\\\
\-«»\/]{3,}/g;
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   165
      } else {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   166
        var _regexpword = /[^\s\.&;,'"!\?\d\(\)\+\[\]\\\
\-«»:\/]{3,}/g;
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   167
      }
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   168
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   169
      if (typeof _from !== "undefined" && typeof _to !== "undefined") {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   170
        _annotations = _annotations.filter(function (_annotation) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   171
          return _annotation.begin >= _from && _annotation.end <= _to;
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   172
        });
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   173
      }
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   174
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   175
      if (this.remove_zero_duration) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   176
        _annotations = _annotations.filter(function (_annotation) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   177
          return _annotation.getDuration() > 0;
1013
392ddcd212d7 Throwed in a bunch of semicolons
veltr
parents: 983
diff changeset
   178
        });
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   179
      }
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   180
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   181
      _annotations.forEach(function (_annotation) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   182
        var _txt =
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   183
          (_this.include_titles ? _annotation.title : "") +
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   184
          " " +
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   185
          (_this.include_descriptions ? _annotation.description : "") +
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   186
          " " +
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   187
          (_this.include_tag_texts ? _annotation.getTagTexts() : "");
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   188
        _(_txt.toLowerCase().replace(_urlRegExp, "").match(_regexpword)).each(
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   189
          function (_word) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   190
            _word = _word.trim();
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   191
            if (
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   192
              _(_this.stopwords).indexOf(_word) == -1 &&
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   193
              (!_this.exclude_pattern || !_this.exclude_pattern.test(_word))
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   194
            ) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   195
              _words[_word] = 1 + (_words[_word] || 0);
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   196
            }
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   197
          }
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   198
        );
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   199
      });
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   200
      _words = _(_words)
880
4c7b33bf2795 Started work on CreateAnnotation and Mediafragment
veltr
parents:
diff changeset
   201
        .chain()
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   202
        .map(function (_v, _k) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   203
          return {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   204
            word: _k,
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   205
            count: _v,
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   206
          };
880
4c7b33bf2795 Started work on CreateAnnotation and Mediafragment
veltr
parents:
diff changeset
   207
        })
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   208
        .filter(function (_v) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   209
          return _v.count > _this.min_count;
880
4c7b33bf2795 Started work on CreateAnnotation and Mediafragment
veltr
parents:
diff changeset
   210
        })
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   211
        .sortBy(function (_v) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   212
          return -_v.count;
880
4c7b33bf2795 Started work on CreateAnnotation and Mediafragment
veltr
parents:
diff changeset
   213
        })
4c7b33bf2795 Started work on CreateAnnotation and Mediafragment
veltr
parents:
diff changeset
   214
        .first(this.tag_count)
4c7b33bf2795 Started work on CreateAnnotation and Mediafragment
veltr
parents:
diff changeset
   215
        .value();
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   216
      if (_words && _words.length) {
908
f56199193fad CreateAnnotation widget now posts annotations, Tagcloud can be made segment-dependent
veltr
parents: 906
diff changeset
   217
        var _max = _words[0].count,
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   218
          _min = Math.min(_words[_words.length - 1].count, _max - 1),
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   219
          _scale =
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   220
            (this.max_font_size - this.min_font_size) / Math.sqrt(_max - _min);
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   221
        _(_words).each(function (_word) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   222
          _word.size = Math.floor(
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   223
            _this.min_font_size + _scale * Math.sqrt(_word.count - _min)
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   224
          );
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   225
        });
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   226
      }
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   227
      this.$.html(Mustache.render(this.constructor.template, { words: _words }));
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   228
      this.$.find(".Ldt-Tagcloud-item").click(function () {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   229
        var _txt = jQuery(this).attr("content");
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   230
        _this.source.getAnnotations().searchByTags(_txt);
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   231
      });
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   232
      this.source
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   233
        .getAnnotations()
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   234
        .on("search", this.functionWrapper("onSearch"));
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   235
      this.source
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   236
        .getAnnotations()
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   237
        .on("search-cleared", this.functionWrapper("onSearch"));
883
d35ad8111c5e Updated Popcorn and JwPlayer to the latest versions
veltr
parents: 882
diff changeset
   238
    }
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   239
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   240
    onSearch(searchString) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   241
      searchString = typeof searchString !== "undefined" ? searchString : "";
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   242
      if (searchString) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   243
        var _rgxp = ns.Model.regexpFromTextOrArray(searchString);
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   244
      }
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   245
      this.$.find(".Ldt-Tagcloud-item").each(function () {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   246
        var _el = jQuery(this),
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   247
          _txt = _el.attr("content");
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   248
        if (searchString) {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   249
          _el.html(
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   250
            _txt.replace(_rgxp, '<span class="Ldt-Tagcloud-active">$1</span>')
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   251
          );
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   252
        } else {
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   253
          _el.html(_txt);
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   254
        }
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   255
      });
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   256
    }
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   257
  };
1013
392ddcd212d7 Throwed in a bunch of semicolons
veltr
parents: 983
diff changeset
   258
};
880
4c7b33bf2795 Started work on CreateAnnotation and Mediafragment
veltr
parents:
diff changeset
   259
1072
ac1eacb3aa33 Migrate source and build to vite.js
ymh <ymh.work@gmail.com>
parents: 1028
diff changeset
   260
export { Tagcloud, tagcloudStyles };