diff --git a/Cards/Fallacies/Argumentum Fallacies - Taxonomy.csv b/Cards/Fallacies/Argumentum Fallacies - Taxonomy.csv index 170821a2..32de0fe9 100644 --- a/Cards/Fallacies/Argumentum Fallacies - Taxonomy.csv +++ b/Cards/Fallacies/Argumentum Fallacies - Taxonomy.csv @@ -340,7 +340,7 @@ uninitiated.",152,"In this research, we posit that current epistemological parad 293,2.1.3.6.3,"2,1363",5,Influence,influence,Procédé rhétorique,Poésie,,,,,,Allégorie,9,Vous usez d'une image concrète pour évoquer une idée abstraite.,63,"Dans cette entreprise, nous plantons de jeunes pousses pour cultiver des succès, arrosons-les de labeur pour récolter les performances.",135,https://fr.wikipedia.org/wiki/Allégorie,Influence,Rhetorical device,Poetry,Allegory,8,,,0,,,0,https://en.wikipedia.org/wiki/Allegory,,,,,,Влияние ,Риторические приемы,Поэзия,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,2.1363000,4+ 294,2.1.3.6.4,"2,1364",5,Influence,influence,Procédé rhétorique,Poésie,,,,,,Litote,6,Vous affirmez quelque chose de manière atténuée pour laisser sous-entendre l'opposé.,84,"Après des années de service, notre collègue décida de prendre un repos bien mérité au grand jardin des personnes au travail suspendu.",133,https://fr.wikipedia.org/wiki/Litote,Influence,Rhetorical device,Poetry,Litotes,7,Antenantiosis,,0,,,0,https://en.wikipedia.org/wiki/Litotes,,,,,,Влияние ,Риторические приемы,Поэзия,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,2.1364000,4+ 295,2.1.3.6.5,"2,1365",5,Influence,influence,Procédé rhétorique,Poésie,,,,,,Métonymie,9,"Vous remplacez une idée par une autre qui lui est conceptuellement liée, sans que cela soit clairement justifié.",112,"Avec le nombre de stylos que cette entreprise distribue, ils écrivent clairement leur succès.",93,https://fr.wikipedia.org/wiki/Métonymie,Influence,Rhetorical device,Poetry,Metonymy,8,,,0,,,0,https://en.wikipedia.org/wiki/Metonymy,,,,,,Влияние ,Риторические приемы,Поэзия,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,2.1365000,4+ -296,2.1.3.6.5.1,"2,13651",6,Influence,influence,Procédé rhétorique,Poésie,,,,,,Synecdoque,10,Vous remplacez un terme par un autre étroitement lié afin de déformer ou mettre l'accent sur un aspect de votre discours.,121,Respectez ses cheveux blancs. OU Son vélo a crevé.,50,https://fr.wikipedia.org/wiki/Synecdoque,Influence,Rhetorical device,Poetry,Synecdoche,10,,,0,,,0,https://en.wikipedia.org/wiki/Synecdoche,,,,,,Влияние ,Риторические приемы,Поэзия,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,2.1365100,4+ +296,2.1.3.6.5.1,"2,13651",6,Influence,influence,Procédé rhétorique,Poésie,,,,,,Synecdoque,10,Vous remplacez un terme par un autre étroitement lié afin de déformer ou mettre l'accent sur un aspect de votre discours.,121,Respectez ses cheveux blancs.,29,https://fr.wikipedia.org/wiki/Synecdoque,Influence,Rhetorical device,Poetry,Synecdoche,10,,,0,,,0,https://en.wikipedia.org/wiki/Synecdoche,,,,,,Влияние ,Риторические приемы,Поэзия,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,2.1365100,4+ 297,2.1.3.6.7,"2,1367",5,Influence,influence,Procédé rhétorique,Poésie,,,,,,Digression,10,Vous déviez du sujet principal pour introduire un thème secondaire détournant ainsi l'attention.,96,"Avant de parler de l'impact de cette réforme sur les petites entreprises, permettez-moi de rappeler en quelques points clés combien il est essentiel de soutenir l'éducation dans notre pays.",189,https://fr.wikipedia.org/wiki/Digression,Influence,Rhetorical device,Poetry,Digression,10,,,0,,,0,https://en.wikipedia.org/wiki/Digression,,,,,,Влияние ,Риторические приемы,Поэзия,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,2.1367000,4+ 298,2.1.3.6.7.1,"2,13671",6,Influence,influence,Procédé rhétorique,Poésie,,,,,,Parembole,9,Vous insérez un commentaire personnel qui détourne le discours de son objet principal.,86,"Entre nous, et sans vouloir m'avancer trop, il me semble que l'issue de ce projet n'est pas tout à fait assurée.",112,https://fr.wikipedia.org/wiki/Parembole,Influence,Rhetorical device,Poetry,Parembole,9,,,0,,,0,https://en.wiktionary.org/wiki/parembole#English,,,,,,Влияние ,Риторические приемы,Поэзия,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,2.1367100,4+ 299,2.2,"2,2",2,Influence,influence,Appel à l'émotion,,,1,1,,,Appel à l'émotion,17,Vous faites naître des émotions intenses pour désorienter la réflexion de ceux qui vous écoutent.,97,"Rapporte-nous un bon bulletin de notes, et ton père sera fier de toi.",69,,Influence,Appeal to emotion,,Appeal to emotion,17,,Triggering emotional responses in order to disrupt the rational thinking of your audience.,90,See how your grades upset your father!,,38,https://en.wikipedia.org/wiki/Appeal_to_emotion,Le lien wikipedia est meilleur (plus général)à que le lien emotive language de don-lindsay (https://www.logicallyfallacious.com/tools/lp/Bo/LogicalFallacies/45/Argument-by-Emotive-Language) ou celui de yourlogicalfallacyis,argumentum ad passiones,,,"Un coup de langue est pire qu'un coup de lance.""",Влияние ,Воздействие на эмоции,,Воздействие на эмоции,"Вы вызываете эмоции, которые способны повлиять на суждение. ","Смотри, до чего ты мать довел своими двойками!",,,,,,,,,1,,,,,,,,,,,,,,,,circle,masques de théâtre,,,,2.2000000,2 @@ -730,11 +730,11 @@ utre bonne formulation: (cosmovisions.com/sophisme.htm",a dicto secundum quid ad 631,3.1.3.2.2,"3,1322",5,Erreur mathématique,erreurMathématique,Généralisation abusive,Transfert illicite,,,,,,Réductionnisme glouton,22,"Pour expliquer un phénomène complexe, vous simplifiez excessivement en ne considérant que les éléments individuels.",115,"L'équipe a perdu le match, donc chaque joueur manque de talent.",63,,Mathematical error,Faulty generalisation,Illicit transference,Greedy reductionism,19,,"Attempting to explain a thing in terms of what it reduces to but failing to consider the complexity of the issue, thus oversimplifying. ",136,,,0,https://en.wikipedia.org/wiki/Greedy_reductionism,,,,,,Математическая ошибка,Злоупотребление обобщением,Незаконный перенос,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,3.1322000,4+ 632,3.2,"3,2",2,Erreur mathématique,erreurMathématique,Mauvaise interprétation,,,1,7,,,Mauvaise interprétation,23,Vous établissez des relations quantitative inexactes entre divers éléments ou données.,86,Le réchauffement du climat suit une évolution très proche de celle de la baisse de la natalité. Le lien entre les deux est averré.,130,https://fr.wikipedia.org/wiki/Régression_fallacieuse,Mathematical error,Interpretation fallacy,,Interpretation fallacy,22,,Making use of erroneous or non-existent relations.,50,The rate of student suicides follows the same pattern as that of Nicholas Cage's appearances on screen.,,103,https://www.seekfind.net/Logical_Fallacy_of_Misinterpretation.html#.Y72hCy-B3RY,,,,,,Математическая ошибка,Неправильная интерпретация,,Неправильная интерпретация,Вы устанавливаете несуществующие отношения между различными элементами. ,Появления Николаса Кейджа в кино за последние десять лет совпадают с пиковым количеством утоплений в бассейнах. ,,,,,,,,,,,,,,,,,,,,,,EvidenceToHypothesis_Inference,,skos:broadMatch,circle,,,,,3.2000000,2 -633,3.2.1,"3,21",3,Erreur mathématique,erreurMathématique,Mauvaise interprétation,Relation infondée,,2,5,,,Relation infondée,17,Vous attribuez une relation de sens à une simple coïncidence.,61,La courbe de la productivité suit clairement celle de la consommation de café. Il doit en être la cause.,#REF!,,Mathematical error,Interpretation fallacy,Spurious relationship,Spurious relationship,21,,Claiming causality between coincident facts when that coincidence could be explained differently.,97,I was sick. I prayed and then I felt better. ,,45,https://en.wikipedia.org/wiki/Spurious_relationship,,,,,,Математическая ошибка,Неправильная интерпретация,Безосновательное отношение,Безосновательное отношение,Вы приписываете смысл простому совпадению. ,"Поскольку я болел, то решил помолиться, и исцелился. ",,,,,,,,,,,,,,,,,,,,,PropertyNotExistant_Conflict,Sign_Inference,,skos:broadMatch,circle,,,,,3.2100000,3 +633,3.2.1,"3,21",3,Erreur mathématique,erreurMathématique,Mauvaise interprétation,Relation infondée,,2,5,,,Relation infondée,17,Vous attribuez une relation de sens à une simple coïncidence.,61,La courbe de la productivité suit clairement celle de la consommation de café. Il doit en être la cause.,104,,Mathematical error,Interpretation fallacy,Spurious relationship,Spurious relationship,21,,Claiming causality between coincident facts when that coincidence could be explained differently.,97,I was sick. I prayed and then I felt better. ,,45,https://en.wikipedia.org/wiki/Spurious_relationship,,,,,,Математическая ошибка,Неправильная интерпретация,Безосновательное отношение,Безосновательное отношение,Вы приписываете смысл простому совпадению. ,"Поскольку я болел, то решил помолиться, и исцелился. ",,,,,,,,,,,,,,,,,,,,,PropertyNotExistant_Conflict,Sign_Inference,,skos:broadMatch,circle,,,,,3.2100000,3 634,3.2.1.1,"3,211",4,Erreur mathématique,erreurMathématique,Mauvaise interprétation,Relation infondée,,,,,"Cum Hoc, Ergo Propter Hoc",Appel à la corrélation-cause,28,"Vous pensez à tort que si deux phénomènes se produisent en même temps, l'un doit forcément causer l'autre.",106,"D'après les statistiques, la hausse des températures globales coïncide avec l'augmentation des ventes de glaces; donc, les glaces doivent contribuer au réchauffement climatique.",177,,Mathematical error,Interpretation fallacy,Spurious relationship,Correlation-Causation Fallacy,29,,Seeing the concomitance of two phenomena as proof that one causes the other.,76,,,0,https://en.wikipedia.org/wiki/Correlation_does_not_imply_causation,la descri décrivait plutôt un ante hoc ergo popter hoc: ce qui vient après est la cause de ce qui vient avant...,Cum hoc ergo propter hoc,,,,Математическая ошибка,Неправильная интерпретация,Безосновательное отношение,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,3.2110000,4+ 635,3.2.1.2,"3,212",4,Erreur mathématique,erreurMathématique,Mauvaise interprétation,Relation infondée,,,,,"Post Hoc, Ergo Propter Hoc",Appel à la temporalité-cause,28,Vous supposez qu’un évènement est la cause d’un autre uniquement parce qu’il l’a précédé dans le temps.,103,"Le merle chante juste avant le lever du soleil, le chant du merle fait donc se lever le soleil.",95,78eafdf3-71ee-4032-a926-faf16637fc1d,Mathematical error,Interpretation fallacy,Spurious relationship,Post Hoc Fallacy,16,,Seeing the succession of two phenomena as the proof that the one occuring first is the cause of the one occuring after.,119,,,0,https://en.wikipedia.org/wiki/Post_hoc_ergo_propter_hoc,,Post hoc ergo propter hoc,,,,Математическая ошибка,Неправильная интерпретация,Безосновательное отношение,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,3.2120000,4+ 636,3.2.1.3,"3,213",4,Erreur mathématique,erreurMathématique,Mauvaise interprétation,Relation infondée,,2,4,,,Sophisme de régression,22,Vous attribuez à tort un effet spécial à ce qui est simplement un retour à la normale après une fluctuation.,108,"Comme j'étais très malade, j'ai prié et cela m'a guéri.",55,http://www.fallacyfiles.org/regressf.html,Mathematical error,Interpretation fallacy,Spurious relationship,Regressive fallacy,18,,Attributing a specific cause to the natural return from an extreme to the average.,82,,,0,http://www.skepdic.com/regressive.html,,,,,,Математическая ошибка,Неправильная интерпретация,Безосновательное отношение,Софизм регрессии,"Вы приписываете ошибочную причину тому, что является всего лишь результатом естественных колебаний. ","Недавно, в казино, я трижды выиграл джекпот; но с тех пор, как я стал пить томатный сок, я стал все время проигрывать: всему виной томатный сок! ",,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,3.2130000,4+ -637,3.2.1.4,"3,214",4,Erreur mathématique,erreurMathématique,Mauvaise interprétation,Relation infondée,,,,,,Pêche aux données,17,"Vous faites parler les données en votre faveur en cherchant une preuve après coup, ayant omis de préciser dès le départ ce que vous cherchiez à démontrer.",154,"En analysant les habitudes alimentaires de cent personnes, nous avons découvert que ceux qui mangent du chocolat le matin sont plus productifs. Cela prouve que le chocolat augmente la productivité.",#REF!,,Mathematical error,Interpretation fallacy,Spurious relationship,Post-designation,16,Fishing for data,"Drawing a conclusion from a tendency observed in a sample, but without having declared the searched tendency prior to studying the sample. ",139,"In looking at the difference between 100 Christians and 100 atheists, we found that Christians were significantly more likely to eat tuna fish.",,143,https://www.logicallyfallacious.com/tools/lp/Bo/LogicalFallacies/142/Post-Designation,,,,,,Математическая ошибка,Неправильная интерпретация,Безосновательное отношение,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,3.2140000,4+ +637,3.2.1.4,"3,214",4,Erreur mathématique,erreurMathématique,Mauvaise interprétation,Relation infondée,,,,,,Pêche aux données,17,"Vous faites parler les données en votre faveur en cherchant une preuve après coup, ayant omis de préciser dès le départ ce que vous cherchiez à démontrer.",154,"En analysant les habitudes alimentaires de cent personnes, nous avons découvert que ceux qui mangent du chocolat le matin sont plus productifs. Cela prouve que le chocolat augmente la productivité.",197,,Mathematical error,Interpretation fallacy,Spurious relationship,Post-designation,16,Fishing for data,"Drawing a conclusion from a tendency observed in a sample, but without having declared the searched tendency prior to studying the sample. ",139,"In looking at the difference between 100 Christians and 100 atheists, we found that Christians were significantly more likely to eat tuna fish.",,143,https://www.logicallyfallacious.com/tools/lp/Bo/LogicalFallacies/142/Post-Designation,,,,,,Математическая ошибка,Неправильная интерпретация,Безосновательное отношение,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,3.2140000,4+ 638,3.2.1.4.1,"3,2141",5,Erreur mathématique,erreurMathématique,Mauvaise interprétation,Relation infondée,,1,3,,,Tireur d'élite texan,20,"En imaginant une cause là où vous voyez une tendance, vous forcez le résultat pour qu'il colle à vos convictions.",113,"On trouve des pyramides au Mexique, en Égypte et au Cambodge, ce qui prouve qu'une même entité a inspiré tous ces peuples.",122,https://fr.wikipedia.org/wiki/Sophisme_du_tireur_d'%C3%A9lite_texan,Mathematical error,Interpretation fallacy,Spurious relationship,Texas sharpshooter,18,,Giving an unjustified cause to a pattern.,41,"We found pyramids in Egypt, Mexico and Cambodia. It must be that an alien taught these 3 distinct civilizations. ",,113,http://www.skepdic.com/texas.html,liens t: cueillette des cerises illusion des séries,,Les filles sont sous-représentées dans les filières liées aux mathématiques ; les garçons sont donc naturellement plus doués qu'elles dans cette discipline.,Women are under-represented in math studies. It must be that they have a less mathematical brain than men.,,Математическая ошибка,Неправильная интерпретация,Безосновательное отношение,Техасский стрелок,Вы пытаетесь найти общую причину для случайных событий со схожими характеристиками.,"В Мексике, Египте и Камбодже встречаются пирамиды, это доказывает, что все эти народы вдохновляла одна и та же высшая сущность. ",,,,,,,,,,1,,,,,,,,,,,,,,,circle,,,,1,3.2141000,4+ 639,3.2.1.4.2,"3,2142",5,Erreur mathématique,erreurMathématique,Mauvaise interprétation,Relation infondée,,,,,,Comparaisons multiples,22,Vous multipliez les comparaisons en espérant que l'une renforcera par hasard votre thèse.,89,"Nous avons effectué 20 études, et l'une d'entre elles indique un risque statistique de plus de 5%. Le risque est donc averré.",125,,Mathematical error,Interpretation fallacy,Spurious relationship,Multiple Comparisons Fallacy,28,,Multiplying statistical comparisons untill one proves the hypothesis thanks to luck.,84,,,0,http://www.fallacyfiles.org/multcomp.html,,,,,,Математическая ошибка,Неправильная интерпретация,Безосновательное отношение,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,3.2142000,4+ 640,3.2.1.4.3,"3,2143",5,Erreur mathématique,erreurMathématique,Mauvaise interprétation,Relation infondée,,,,,,Sophisme du chausse-pied,24,"Vous arrangez les faits de manière biaisée pour défendre votre thèse, au mépris de la rigueur scientifique.",107,Le travail coûte trop cher en France. La preuve est que nous n'avons pas remporté cet appel d'offre. ,101,,Mathematical error,Interpretation fallacy,Spurious relationship,Shoehorning,11,,"Force-fitting some current affair into one's personal, political, or religious agenda.",86,,,0,https://www.logicallyfallacious.com/tools/lp/Bo/LogicalFallacies/161/Shoehorning,,,,,,Математическая ошибка,Неправильная интерпретация,Безосновательное отношение,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,3.2143000,4+ @@ -1009,7 +1009,7 @@ detailed discussion of analogical arguments and their fallacies of which 860,5.3.2.2,"5,322",4,Abus de langage,abusDeLangage,Ambiguïté,Equivoque,,,,,,Changement lexical polysémique,30,"Vous employez un mot dont le sens a évolué, ce qui peut prêter à confusion.",75,"Lors de la réunion, il a utilisé le terme 'réseau' pour parler de ses contact, je pensais qu'il parlait d'Internet.",123,,Misleading language,Ambiguity,Semantic ambiguity,Polysemy by lexical change,26,,A word is used whose meaning is unclear because its usual meaning is not the same as its original.,98,,,0,https://en.wikipedia.org/wiki/Onomasiology#Lexical_change,,,,,,Злоупотребление языком,Двусмысленность,Семантическая двусмысленность ,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,5.3220000,4+ 861,5.3.2.2.1,"5,3221",5,Abus de langage,abusDeLangage,Ambiguïté,Equivoque,,,,,,Mondegreen,10,Vous comprenez ou rapportez de manière erronée une phrase à cause de sa ressemblance avec une autre.,100,"Mariage plus vieux, mariage heureux",35,,Misleading language,Ambiguity,Semantic ambiguity,Mondegreen,10,,,0,,,0,https://en.wikipedia.org/wiki/Mondegreen,,,,,,Злоупотребление языком,Двусмысленность,Семантическая двусмысленность ,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,5.3221000,4+ 862,5.3.2.2.2,"5,3222",5,Abus de langage,abusDeLangage,Ambiguïté,Equivoque,,,,,ex homonymia,Homonymie,9,"Vous construisez votre argument en utilisant un terme ayant plusieurs significations, semant la confusion.",106,Le poète était ivre et comptait les pieds de son verre.,55,https://fr.wikisource.org/wiki/L%E2%80%99Art_d%E2%80%99avoir_toujours_raison/Stratag%C3%A8me_II,Misleading language,Ambiguity,Semantic ambiguity,Homonym,7,,,0,,,0,https://en.wikipedia.org/wiki/Homonym,,,,,,Злоупотребление языком,Двусмысленность,Семантическая двусмысленность ,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,5.3222000,4+ -863,5.3.2.2.2.1,"5,32221",6,Abus de langage,abusDeLangage,Ambiguïté,Equivoque,,,,,,Hétérosémie,11,Vous basez votre argument sur un mot qui peut signifier plusieurs choses selon le contexte.,91,"Quand il a dit qu'il 'supportait' son équipe, je pensais qu'il parlait de l'encourager, pas de financer leurs déplacements.",#REF!,,Misleading language,Ambiguity,Semantic ambiguity,Heterosemy,10,,,0,,,0,https://en.wikipedia.org/wiki/Heterosemy,,,,,,Злоупотребление языком,Двусмысленность,Семантическая двусмысленность ,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,5.3222100,4+ +863,5.3.2.2.2.1,"5,32221",6,Abus de langage,abusDeLangage,Ambiguïté,Equivoque,,,,,,Hétérosémie,11,Vous basez votre argument sur un mot qui peut signifier plusieurs choses selon le contexte.,91,"Quand il a dit qu'il 'supportait' son équipe, je pensais qu'il parlait de l'encourager, pas de financer leurs déplacements.",123,,Misleading language,Ambiguity,Semantic ambiguity,Heterosemy,10,,,0,,,0,https://en.wikipedia.org/wiki/Heterosemy,,,,,,Злоупотребление языком,Двусмысленность,Семантическая двусмысленность ,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,5.3222100,4+ 864,5.3.2.2.3,"5,3223",5,Abus de langage,abusDeLangage,Ambiguïté,Equivoque,,,,,,Sophisme Jingle-jangle,22,Vous utilisez des termes différents pour représenter les mêmes idées ou le même terme pour représenter des idées différentes.,125,"Nous disons tous deux vouloir l'égalité, mais quand je parle de 'justice', je ne pense pas qu'on parle du même concept.",119,,Misleading language,Ambiguity,Semantic ambiguity,Jingle-Jangle Fallacy,21,,,0,,,0,https://en.wikipedia.org/wiki/Jingle-jangle_fallacies,,,,,,Злоупотребление языком,Двусмысленность,Семантическая двусмысленность ,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,5.3223000,4+ 865,5.3.2.3,"5,323",4,Abus de langage,abusDeLangage,Ambiguïté,Equivoque,,,,,,Changement sémantique,21,Vous utilisez un terme dont le sens a changé au cours de l'histoire. ,69,"Il est écrit sur la devanture de cette auberge 'qui dort dîne', donc nous nous passerons de dîner ce soir.",106,,Misleading language,Ambiguity,Semantic ambiguity,Polysemy by semantic change,27,,A word is used whose meaning is unclear because its usual meaning is not the same as its original.,98,,,0,https://en.wikipedia.org/wiki/Semantic_change,,,,,,Злоупотребление языком,Двусмысленность,Семантическая двусмысленность ,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,5.3230000,4+ 866,5.3.2.3.1,"5,3231",5,Abus de langage,abusDeLangage,Ambiguïté,Equivoque,,,,,,Métonymie,9,"Vous remplacez une idée par une autre qui lui est conceptuellement liée, sans que cela soit clairement justifié.",112,"Avec le nombre de stylos que cette entreprise distribue, ils écrivent clairement leur succès.",93,https://fr.wikipedia.org/wiki/Métonymie,Misleading language,Ambiguity,Semantic ambiguity,Metonymy,8,,,0,,,0,https://en.wikipedia.org/wiki/Metonymy,,,,,,Злоупотребление языком,Двусмысленность,Семантическая двусмысленность ,,,,,,,,,,,,,,2.1.3.6.5,,,,,,,,,,,,,,circle,,,,,5.3231000,4+ @@ -1257,7 +1257,7 @@ https://utminers.utep.edu/omwilliamson/ENGL1311/fallacies.htm",,,,,,Лукавс 1088,6.3.1.1.2.3.4,"6,311234",7,Tricherie,tricherie,Pensée biaisée,Biais naturels,,,1,,,Preuve anecdotique,18,"Vous basez votre argumentation sur un événement isolé, qui ne suffit pas à démontrer une règle générale.",104,J'ai eu de bonnes notes en mathématiques après avoir bu du jus de cassis ; le jus de cassis rend donc fort en mathématiques.,124,https://fr.wikipedia.org/wiki/Preuve_anecdotique,Cheating,Biased thinking,Human nature bias,Anecdotal evidence,18,,Using anecdotes or examples to either support or refute a claim.,64,"I drank grapefruit juice and I got good grades at school. Thus, grapefruit juice is good for school.",,100,http://rationalwiki.org/wiki/Anecdotal_evidence,,,,,"Juillet sans orage,Famine au village.""",Лукавство,Искаженная мысль,Антропоцентризм,Анекдотичное обоснование,Случайное событие или пример вы приравниваете к аргументу.,Я попил черносмородинового сока и после этого получил хорошую оценку по математике. Так что этот сок развивает математические способности. ,,,,,,,,,1,1,,,,,,,,,,,,InductiveInference_Scheme,,skos:broadMatch,circle,microscope,,,1,6.3112340,4+ 1089,6.3.1.1.2.3.5,"6,311235",7,Tricherie,tricherie,Pensée biaisée,Biais naturels,,,,,,Sophisme animiste,17,Vous prétez aux éléments de la nature ou à des objets inanimés des intentions ou des actions propres aux êtres animés.,118,Les tremblements de terre sont un moyen pour la Terre de nous avertir que nous la traitons mal. C'est sa façon de nous dire de changer nos comportements destructeurs.,166,,Cheating,Biased thinking,Human nature bias,Animistic fallacy,17,,As though an occurrence and its consequences must follow from some agent's informed intention,93,,,0,https://en.wikipedia.org/wiki/Animistic_fallacy,,,,,,Лукавство,Искаженная мысль,Антропоцентризм,,,,,,,,,,,,,,1.3.3.3.1,,,,,,,,,,,,,,circle,,,,,6.3112350,4+ 1090,6.3.1.1.2.3.5.1,"6,3112351",8,Tricherie,tricherie,Pensée biaisée,Biais naturels,,,,,,Anthropomorphisme,17,"Vous attribuez des caractéristiques humaines à des objets, animaux ou phénomènes.",81,Je pense que ma voiture est heureuse quand je la nettoie.,57,https://fr.wikipedia.org/wiki/Anthropomorphisme,Cheating,Biased thinking,Human nature bias,Anthropomorphism,16,,"Attributing human characteristics to objects, animals, or phenomena.",68,I think my car is happy when I clean it.,,40,https://en.wikipedia.org/wiki/Anthropomorphism,,,,,,Лукавство,Искаженная мысль,Антропоцентризм,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,6.3112351,4+ -1091,6.3.1.2,"6,312",4,Tricherie,tricherie,Pensée biaisée,Biais naturels,,,,,,Biais émotionnels,17,Votre jugement et votre raisonnement sont influencés par vos émotions.,70,S'ils veulent la guerre ils l'auront. Je ne vais pas me faire imposer ces grandes théories.,#REF!,,Cheating,Biased thinking,Human nature bias,Emotional biases,16,,,91,,,0,,,,,,,Лукавство,Искаженная мысль,Антропоцентризм,,,,,,,,,,,,,,,,,,,,,,,,OppositeConsequences_Conflict,Preference_Scheme,,skos:broadMatch,circle,,,,,6.3120000,4+ +1091,6.3.1.2,"6,312",4,Tricherie,tricherie,Pensée biaisée,Biais naturels,,,,,,Biais émotionnels,17,Votre jugement et votre raisonnement sont influencés par vos émotions.,70,S'ils veulent la guerre ils l'auront. Je ne vais pas me faire imposer ces grandes théories.,91,,Cheating,Biased thinking,Human nature bias,Emotional biases,16,,,91,,,0,,,,,,,Лукавство,Искаженная мысль,Антропоцентризм,,,,,,,,,,,,,,,,,,,,,,,,OppositeConsequences_Conflict,Preference_Scheme,,skos:broadMatch,circle,,,,,6.3120000,4+ 1092,6.3.1.2.1,"6,3121",5,Tricherie,tricherie,Pensée biaisée,Biais naturels,,,,,,Effet de Valence,16,"Vous êtes exagérement optimiste ou pessimiste du fait de la valence, positive ou négative, des émotions que vous ressentez.",123,Je suis un conducteur prudent. Je n'ai pas besoin d'une assurance aussi complète que celle que la plupart des gens ont.,119,,Cheating,Biased thinking,Human nature bias,Valence Effect,14,,"Being overly optimistic or pessimistic because of the valence, positive or negative, of the emotions one feels.",111,,,0,https://en.wikipedia.org/wiki/Optimism_bias#Valence_effect,,,,,,Лукавство,Искаженная мысль,Антропоцентризм,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,6.3121000,4+ 1093,6.3.1.2.1.1,"6,31211",6,Tricherie,tricherie,Pensée biaisée,Biais naturels,,,,,,Biais de négativité,19,Vous axez votre pensée sur des considérations défavorables et pessimistes au détriment d'éventuels éléments positifs.,117,Je déteste perdre plus que j'aime gagner.,41,,Cheating,Biased thinking,Human nature bias,Negativity bias,15,,You focus your thinking on unfavorable and pessimistic considerations to the detriment of possible positive elements.,117,I hate losing more than I love winning.,,39,http://skepdic.com/negativitybias.html,,,,,,Лукавство,Искаженная мысль,Антропоцентризм,,,,,,,,,,,,,,,,,,,,,,,,,NegativeConsequences_Inference,,skos:broadMatch,circle,,,,,6.3121100,4+ 1094,6.3.1.2.1.1.1,"6,312111",7,Tricherie,tricherie,Pensée biaisée,Biais naturels,,,,,,Biais de pessimisme,19,Vous sous-estimez les probabilités d'événements positifs et surestimez celles des événements négatif.,101,Tout va mal tourner.,20,,Cheating,Biased thinking,Human nature bias,Pessimism bias,14,,Underestimating the likelihood of positive events and overestimating those of negative events.,94,Everything will go wrong.,,25,https://en.wikipedia.org/wiki/Optimism_bias#Pessimism_bias,,,,,,Лукавство,Искаженная мысль,Антропоцентризм,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,6.3121110,4+ @@ -1509,7 +1509,7 @@ populations, geopolitical considerations, and legal and ethical aspects.",,249,h 1321,7.2.1.1.1.4,"7,21114",6,Obstruction,obstruction,Saboter le débat,Evasion,,,,,,Question sans sens,18,Vous posez une question dénuée de pertinence pour créer la confusion et détourner l'attention des véritables enjeux du débat.,125,Comment pouvons-nous attendre de l'économie qu'elle suive les lois de la gravité ?,82,,Obstruction,Sabotage,Evasion,Meaningless question,20,,,0,,,0,https://www.logicallyfallacious.com/tools/lp/Bo/LogicalFallacies/124/Meaningless-Question,,,,,,Обструкция,Саботаж дебатов,,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,7.2111400,4+ 1322,7.2.1.1.2,"7,2112",5,Obstruction,obstruction,Saboter le débat,Evasion,,,,,,Equivalence morale,18,Vous supposez à tort que deux actions différentes ont la même valeur morale.,76,"Certains arguent que la vitesse des véhicules devrait être limitée pour la sécurité, mais s'opposer aux voyages spatiaux car ils sont risqués serait ridicule.",158,,Obstruction,Sabotage,Evasion,Moral equivalence,17,,,0,,,0,http://rationalwiki.org/wiki/Moral_equivalence,"Proposition d'autre définition, moins politique. L'exemple est parlant. Lien transversale avec Relativisme (913) et Tu Quoque ? - J",,,,,Обструкция,Саботаж дебатов,,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,7.2112000,4+ 1323,7.2.1.1.2.1,"7,21121",6,Obstruction,obstruction,Saboter le débat,Evasion,,,,Moins pire que,,Privation relative,18,"Vous argumentez en comparant avec le meilleur ou le pire scénario, pour détourner l'attention de la question réelle.",116,Tu devrais déjà être content d'avoir reçu quelque chose. Beaucoup d'enfants n'ont pas cette chance.,99,,Obstruction,Sabotage,Evasion,Relative privation,18,,,0,,,0,https://www.logicallyfallacious.com/tools/lp/Bo/LogicalFallacies/155/Relative-Privation,,,,,,Обструкция,Саботаж дебатов,,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,7.2112100,4+ -1324,7.2.1.1.2.1.1,"7,211211",7,Obstruction,obstruction,Saboter le débat,Evasion,,,,,,La mauvaise alternative,23,Vous opposez à une proposition une alternative erronée pour justifier votre point de vue.,89,Voyez comment ce pays peine avec son système de santé. Nous devrions être content de ce que nous avons dans notre pays.,#REF!,http://www.ditext.com/fearnside/36.html,Obstruction,Sabotage,Evasion,The Wicked Alternative,22,,,119,,,0,http://www.ditext.com/fearnside/36.html,,,,,,Обструкция,Саботаж дебатов,,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,7.2112110,4+ +1324,7.2.1.1.2.1.1,"7,211211",7,Obstruction,obstruction,Saboter le débat,Evasion,,,,,,La mauvaise alternative,23,Vous opposez à une proposition une alternative erronée pour justifier votre point de vue.,89,Voyez comment ce pays peine avec son système de santé. Nous devrions être content de ce que nous avons dans notre pays.,119,http://www.ditext.com/fearnside/36.html,Obstruction,Sabotage,Evasion,The Wicked Alternative,22,,,119,,,0,http://www.ditext.com/fearnside/36.html,,,,,,Обструкция,Саботаж дебатов,,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,7.2112110,4+ 1325,7.2.1.1.2.1.2,"7,211212",7,Obstruction,obstruction,Saboter le débat,Evasion,,,,,,Piège de gratitude,18,"Vous vous sentez coupable ou frustré parce que vous pensez que vous devriez être plus reconnaissant dans votre situation actuelle, ou vous utilisez ce sentiment d'autrui pour asseoir votre contrôle.",198,"Je devrais être heureux d'avoir un emploi, même si je le déteste.",65,,Obstruction,Sabotage,Evasion,"Gratitude trap ",15,,"You feel guilty or frustrated because you think you should be more grateful in your current situation, or you use this feeling of others to assert your control.",160,"I should be happy to have a job, even though I hate it.",,55,https://en.wikipedia.org/wiki/Gratitude_trap,,,,,,Обструкция,Саботаж дебатов,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,7.2112120,4+ 1326,7.2.1.1.2.2,"7,21122",6,Obstruction,obstruction,Saboter le débat,Evasion,,,,,,Sophisme de la double faute,27,Vous croyez à tort que deux erreurs combinées peuvent produire un résultat juste.,81,"Le patron ne paie pas ses taxes, alors je ne vais pas me géner pour me servir dans la caisse.",93,http://www.ditext.com/fearnside/35.html,Obstruction,Sabotage,Evasion,Two wrongs make a right,23,,,0,,,0,https://en.wikipedia.org/wiki/Two_wrongs_don%27t_make_a_right,,,,,,Обструкция,Саботаж дебатов,,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,7.2112200,4+ 1327,7.2.1.1.2.3,"7,21123",6,Obstruction,obstruction,Saboter le débat,Evasion,,,,,ad populum,Raison de la majorité,21,Vous justifiez une position par le fait qu'elle est partagée par le plus grand nombre.,86,La plupart des enfants réclament tous les jours des frites à la cantine; c'est donc ce qu'il faudrait leur servir quotidiennement.,130,,Obstruction,Sabotage,Evasion,Ad populum,10,,,0,,,0,https://en.wikipedia.org/wiki/Argumentum_ad_populum,,,,,,Обструкция,Саботаж дебатов,,,,,,,,,,,,,,,1.2.2.2,,,,,,,,,,,,,,circle,,,,,7.2112300,4+ @@ -1521,7 +1521,7 @@ populations, geopolitical considerations, and legal and ethical aspects.",,249,h 1333,7.2.1.2.4,"7,2124",5,Obstruction,obstruction,Saboter le débat,Evasion,,,,,,Ignorer la question,19,Vous évitez de répondre à une question en l'ignorant complètement.,66,"Quand on m'a demandé des détails sur le budget, j'ai simplement parlé des avantages du projet, sans mentionner les chiffres.",124,,Obstruction,Sabotage,Evasion,Ignoring the question,21,,,0,,,0,https://en.wikipedia.org/wiki/Evasion_(ethics),,,,,,Обструкция,Саботаж дебатов,,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,7.2124000,4+ 1334,7.2.1.2.4.1,"7,21241",6,Obstruction,obstruction,Saboter le débat,Evasion,,,,,,Reconnaître la question sans y répondre,39,"Vous reconnaissez la question posée, mais vous ne fournissez pas de réponse directe.",84,Votre question à propos du risque sur les délais est une excellente question. Maintenant laissez-moi vous parler des bénéfices de cette méthode.,144,,Obstruction,Sabotage,Evasion,Acknowledging the question without answering it,47,,,0,,,0,https://en.wikipedia.org/wiki/Evasion_(ethics),,,,,,Обструкция,Саботаж дебатов,,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,7.2124100,4+ 1335,7.2.1.3,"7,213",4,Obstruction,obstruction,Saboter le débat,Evasion,,,,,,Fausse objection,16,Vous donnez une petite excuse bénigne à votre adversaire pour éviter des raisons plus sérieuses. ,97,"Tu es une personne géniale, je suis sûre que tu trouveras une personne meilleure que moi pour t'accompagner.",108,https://fr.wikipedia.org/wiki/Fausse_objection,Obstruction,Sabotage,Evasion,Pretext,7,,,0,,,0,https://en.wikipedia.org/wiki/Pretext,,,,,,Обструкция,Саботаж дебатов,,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,7.2130000,4+ -1336,7.2.1.3.1,"7,2131",5,Obstruction,obstruction,Saboter le débat,Evasion,,,,,,Questionner la question,23,Vous remettez en cause la question qui vous est adressée.,57,"Pourquoi cette question ? Je vous la retourne, je serais bien curieux d'en connaître la réponse.",#REF!,,Obstruction,Sabotage,Evasion,Questioning the question,24,,,96,,,0,https://en.wikipedia.org/wiki/Evasion_(ethics),,,,,,Обструкция,Саботаж дебатов,,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,7.2131000,4+ +1336,7.2.1.3.1,"7,2131",5,Obstruction,obstruction,Saboter le débat,Evasion,,,,,,Questionner la question,23,Vous remettez en cause la question qui vous est adressée.,57,"Pourquoi cette question ? Je vous la retourne, je serais bien curieux d'en connaître la réponse.",96,,Obstruction,Sabotage,Evasion,Questioning the question,24,,,96,,,0,https://en.wikipedia.org/wiki/Evasion_(ethics),,,,,,Обструкция,Саботаж дебатов,,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,7.2131000,4+ 1337,7.2.1.3.1.1,"7,21311",6,Obstruction,obstruction,Saboter le débat,Evasion,,,,,,Demander des clarifications,27,Vous demandez que soit reformulée et clarifiée la question qui vous est adressée pour gagner du temps ou dans l'espoir de décourager votre adversaire d'insister.,161,Pourriez-vous préciser ce que vous entendez par 'succès' dans ce contexte ?,75,,Obstruction,Sabotage,Evasion,Requesting clarification,24,,,0,,,0,https://en.wikipedia.org/wiki/Evasion_(ethics),,,,,,Обструкция,Саботаж дебатов,,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,7.2131100,4+ 1338,7.2.1.3.1.2,"7,21312",6,Obstruction,obstruction,Saboter le débat,Evasion,,,,,,Renvoyer la question à son interlocuteur,40,Vous faites semblant de ne pas saisir l'argument pour éviter d'y répondre.,74,Pourquoi me demandez-vous cela ? Que pensez-vous de la situation ?,66,,Obstruction,Sabotage,Evasion,Reflecting the question back to the questioner,46,,,0,,,0,https://en.wikipedia.org/wiki/Evasion_(ethics),,,,,,Обструкция,Саботаж дебатов,,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,7.2131200,4+ 1339,7.2.1.3.2,"7,2132",5,Obstruction,obstruction,Saboter le débat,Evasion,,,,,,Attaquer la question,20,Vous remettez en cause la légitimité de la question qui vous est adressée pour ne pas avoir à y répondre.,105,Cette question est basée sur des hypothèses incorrectes et ne mérite pas de réponse.,84,,Obstruction,Sabotage,Evasion,Attacking the question,22,,,0,,,0,https://en.wikipedia.org/wiki/Evasion_(ethics),,,,,,Обструкция,Саботаж дебатов,,,,,,,,,,,,,,,,,,,,,,,,,,,,,circle,,,,,7.2132000,4+ diff --git a/Cards/Fallacies/Mindmaps/external.html.bak b/Cards/Fallacies/Mindmaps/external.html.bak deleted file mode 100644 index 070ed0c1..00000000 --- a/Cards/Fallacies/Mindmaps/external.html.bak +++ /dev/null @@ -1,594 +0,0 @@ - - - - - - Taxonomy Mind Map - - - -
- -
- - - - -
Argumentum_Fallacies_1.1.1..Justification triviale
- -
-
-
-
Insuffisance
-
- Argument bâclé | Justification triviale -
-
-
-
- Lien externe -
-
Justification triviale
-
-
-
-
Vous attribuez à une habitude, une impression ou un exemple la valeur d'une preuve.
-
J'ai entendu dire que cette personne était sexiste ; il m'est donc impossible d'être en accord avec elle sur quoi que ce soit.
-
-
- -
-
-
-
- - - - diff --git a/Cards/Fallacies/Mindmaps/included.html b/Cards/Fallacies/Mindmaps/included.html index e95aac86..42d60c09 100644 --- a/Cards/Fallacies/Mindmaps/included.html +++ b/Cards/Fallacies/Mindmaps/included.html @@ -8,63 +8,70 @@ body { font-family: 'DINPro', sans-serif; } - + .hidden { display: none; } - + + /* svg { + shape-rendering: optimizeSpeed; + text-rendering: optimizeSpeed; + }*/ + #mindmap { position: relative; + overflow: hidden; + cursor: grab; } - + .node:hover { cursor: pointer; } - + .node.active { fill: red; } - - + + /* -------------------------------------------------------------------------------- */ /* Fonts */ /* -------------------------------------------------------------------------------- */ - + @font-face { font-family: 'DINPro'; font-style: normal; font-weight: 300; src: local('DINPro'), url('https://fonts.cdnfonts.com/s/18774/DINPro-Light tr.woff') format('woff'); } - + @font-face { font-family: 'DINPro'; font-style: normal; font-weight: 500; src: local('DINPro'), url('https://fonts.cdnfonts.com/s/18774/DINPro-Medium tr.woff') format('woff'); } - + @font-face { font-family: 'DINPro'; font-style: normal; font-weight: 700; src: local('DINPro'), url('https://fonts.cdnfonts.com/s/18774/DINPro-Bold tr.woff') format('woff'); } - + @font-face { font-family: 'DINPro'; font-style: normal; font-weight: 900; src: local('DINPro'), url('https://fonts.cdnfonts.com/s/18774/DINPro-Black tr.woff') format('woff'); } - - - - + + + + /* -------------------------------------------------------------------------------- */ /* Couleurs */ /* -------------------------------------------------------------------------------- */ - + /* Défauts */ card { @@ -74,73 +81,73 @@ --color-text-3: #a173a2; } - card.insuffisance { - --color-background: #811da3; - --color-text-1: #601362; - --color-text-2: #8f5991; - --color-text-3: #a173a2; - } - - card.influence { - --color-background: #ff66eb; - --color-text-1: #b3009b; - --color-text-2: #cc00b1; - --color-text-3: #e566d4; - } - - card.erreurMathématique { - --color-background: #08af93; - --color-text-1: #14555b; - --color-text-2: #5a888c; - --color-text-3: #749a9e; - } - - card.erreurDeRaisonnement { - --color-background: #8dc801; - --color-text-1: #476205; - --color-text-2: #7e9150; - --color-text-3: #92a26b; - } - - card.abusDeLangage { - --color-background: #0054a4; - --color-text-1: #0c2861; - --color-text-2: #546890; - --color-text-3: #6f80a1; - } - - card.tricherie { - --color-background: #ffc307ff; - --color-text-1: #9e7800ff; - --color-text-2: #c49500ff; - --color-text-3: #d6b755ff; - } - - card.obstruction { - --color-background: #dc0f0a; - --color-text-1: #960a07; - --color-text-2: #b55351; - --color-text-3: #c16e6c; - } - - - - card .famille { - color: var(--color-text-1); - } - - card .sous_famille { - color: var(--color-text-2); - } - - card .Soussousfamille { - color: var(--color-text-3); - } - + card.insuffisance { + --color-background: #811da3; + --color-text-1: #601362; + --color-text-2: #8f5991; + --color-text-3: #a173a2; + } + + card.influence { + --color-background: #ff66eb; + --color-text-1: #b3009b; + --color-text-2: #cc00b1; + --color-text-3: #e566d4; + } + + card.erreurMathématique { + --color-background: #08af93; + --color-text-1: #14555b; + --color-text-2: #5a888c; + --color-text-3: #749a9e; + } + + card.erreurDeRaisonnement { + --color-background: #8dc801; + --color-text-1: #476205; + --color-text-2: #7e9150; + --color-text-3: #92a26b; + } + + card.abusDeLangage { + --color-background: #0054a4; + --color-text-1: #0c2861; + --color-text-2: #546890; + --color-text-3: #6f80a1; + } + + card.tricherie { + --color-background: #ffc307ff; + --color-text-1: #9e7800ff; + --color-text-2: #c49500ff; + --color-text-3: #d6b755ff; + } + + card.obstruction { + --color-background: #dc0f0a; + --color-text-1: #960a07; + --color-text-2: #b55351; + --color-text-3: #c16e6c; + } + + + + card .famille { + color: var(--color-text-1); + } + + card .sous_famille { + color: var(--color-text-2); + } + + card .Soussousfamille { + color: var(--color-text-3); + } + /* -------------------------------------------------------------------------------- */ /* Structure */ /* -------------------------------------------------------------------------------- */ - + card { background-color: white; display: flex; @@ -153,42 +160,42 @@ width: 300px; z-index: 100; } - + safe { background-color: #fff; position: relative; } - + .cardName { display: none; } - + /* -------------------------------------------------------------------------------- */ /* Entête */ /* -------------------------------------------------------------------------------- */ - + .header { /* display: flex;*/ justify-content: center; padding-top: 1%; } - + .famille { text-transform: uppercase; font-size: 20px; text-align: center; color: var(--color-text-1); } - + .sous_famille, .Soussousfamille { font-size: 18px; } - + /* -------------------------------------------------------------------------------- */ /* Corps */ /* -------------------------------------------------------------------------------- */ - + .body { border-color: var(--color-background); border-radius: 10px; @@ -200,27 +207,27 @@ justify-content: space-between; padding-top: 10px; } - + .supersetWrapper .famille { display: block; padding: 0 10px; margin-bottom: 10px; } - + .supersetWrapper .sous_famille { display: block; padding: 0 10px; margin-bottom: 10px; text-align: center; } - + .contentWrapper { display: flex; flex-direction: column; height: 93%; } - - + + .title { align-items: center; box-sizing: border-box; @@ -236,13 +243,13 @@ width: 100%; word-wrap: break-word !important; } - - .title > div { - flex-shrink: 1; - width: 100%; - overflow-wrap: normal - } - + + .title > div { + flex-shrink: 1; + width: 100%; + overflow-wrap: normal + } + .imageSection { min-height: 0; flex-shrink: 1; @@ -253,7 +260,7 @@ width: 100%; height: 100%; } - + .image { width: 100%; flex-grow: 1; @@ -265,32 +272,32 @@ padding: 1% 2% 0 2%; min-height: 0; } - - .image img { - max-width: 100%; - max-height: 100%; - position: relative; - top: 50%; - transform: translateY(-50%); - } - + + .image img { + max-width: 100%; + max-height: 100%; + position: relative; + top: 50%; + transform: translateY(-50%); + } + .texte { justify-content: space-between; background-color: var(--color-background); margin: 0% -5px; } - + .desc_fr { align-items: center; color: #fff; display: flex; font-family: 'DINpro',sans-serif; - font-size: 16px; + font-size: 16px; font-weight: 900; padding: 20px 10px; text-transform: uppercase; } - + .exemple_fr { -webkit-font-variant-ligatures: no-common-ligatures; background-color: white; @@ -302,12 +309,12 @@ font-weight: 600; padding: 20px 10px; } - + .desc_fr, .exemple_fr { overflow-wrap: break-word; } - + #externalLink { display: flex; justify-content: center; @@ -325,22 +332,22 @@ border-radius: 4px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25); } - - #externalLink:hover { - color: var(--color-text-1); - background-color: white; - box-shadow: none; - } - #externalLink.hidden { - visibility: hidden; - } - - + #externalLink:hover { + color: var(--color-text-1); + background-color: white; + box-shadow: none; + } + + #externalLink.hidden { + visibility: hidden; + } + + /* -------------------------------------------------------------------------------- */ /* Pied de page */ /* -------------------------------------------------------------------------------- */ - + .footer { position: absolute; align-items: center; @@ -356,33 +363,31 @@ right: 2px; width: 25px; } - + .niveau { font-size: 15px; font-weight: bold; text-align: right; color: var(--color-background); } - + /* -------------------------------------------------------------------------------- */ /* Zoom */ /* -------------------------------------------------------------------------------- */ - - + + .zoomable { transform-origin: top left; transition: transform 0.3s ease; } - + .zoom-in { transform: scale(1.2); } - + .zoom-out { transform: scale(0.8); } - - @@ -394,7 +399,7 @@
Argumentum_Fallacies_1.1.1..Justification triviale
- +
@@ -436,9 +441,9 @@ let isNodeActive = false; let hideOverlayTimeout = null; let activeNode = null; - + const nodes = document.querySelectorAll('.node'); - + const hideOverlay = () => { overlay.classList.add('hidden'); isNodeActive = false; @@ -450,29 +455,29 @@ const showOverlay = (e) => { isNodeActive = true; - + // Remove the 'active' class from any previously active node const activeNode = document.querySelector('.node.active'); if (activeNode) { activeNode.classList.remove('active'); } - + let targetNode = e.target; if (!targetNode.classList.contains('node') && targetNode.parentElement.classList.contains('node')) { targetNode = targetNode.parentElement; } - + // Add the 'active' class to the clicked node targetNode.classList.add('active'); - + title.textContent = targetNode.textContent; famille.textContent = targetNode.getAttribute('family'); sous_famille.textContent = targetNode.getAttribute('subfamily'); Soussousfamille.textContent = targetNode.getAttribute('subsubfamily'); description.innerHTML = targetNode.getAttribute('description'); example.innerHTML = targetNode.getAttribute('example'); - - // Hide external link button if no link is set + + // Hide external link button if no link is set if (targetNode.getAttribute('link') === '') { externalLink.href = '#' externalLink.classList.add('hidden'); @@ -483,63 +488,151 @@ niveau.textContent = targetNode.getAttribute('depth'); - + overlay.removeAttribute('class'); const familyClass = targetNode.getAttribute('familyclass'); if (familyClass) { overlay.classList.add(familyClass); } - + // Remove the 'hidden' class if it exists to ensure the card is visible if (overlay.classList.contains('hidden')) { overlay.classList.remove('hidden'); } - + targetNode.classList.add('active'); }; - + nodes.forEach((node) => { node.addEventListener('click', showOverlay); node.addEventListener('touchstart', showOverlay); }); - + document.addEventListener('click', (e) => { if (e.target.closest('.node') === null) { hideOverlay(); } }); - + document.addEventListener('touchstart', (e) => { const isClickedOutside = !overlay.contains(e.target); if (isClickedOutside) { hideOverlay(); } }); - + //Zoom - - const mindmapContainer = document.getElementById('mindmap'); - let zoomLevel = 1; - - function zoomIn() { - zoomLevel += 0.1; - mindmapContainer.style.transform = `scale(${zoomLevel})`; + + var eventsHandler; + + eventsHandler = { + haltEventListeners: ['touchstart', 'touchend', 'touchmove', 'touchleave', 'touchcancel'] + , init: function (options) { + var instance = options.instance + , initialScale = 1 + , pannedX = 0 + , pannedY = 0 + + // Init Hammer + // Listen only for pointer and touch events + this.hammer = Hammer(options.svgElement, { + inputClass: Hammer.SUPPORT_POINTER_EVENTS ? Hammer.PointerEventInput : Hammer.TouchInput + }) + + // Enable pinch + this.hammer.get('pinch').set({ enable: true }) + + // Handle double tap + this.hammer.on('doubletap', function (ev) { + instance.zoomIn() + }) + + // Handle pan + this.hammer.on('panstart panmove', function (ev) { + // On pan start reset panned variables + if (ev.type === 'panstart') { + pannedX = 0 + pannedY = 0 + } + + // Pan only the difference + instance.panBy({ x: ev.deltaX - pannedX, y: ev.deltaY - pannedY }) + pannedX = ev.deltaX + pannedY = ev.deltaY + }) + + // Handle pinch + this.hammer.on('pinchstart pinchmove', function (ev) { + // On pinch start remember initial zoom + if (ev.type === 'pinchstart') { + initialScale = instance.getZoom() + instance.zoomAtPoint(initialScale * ev.scale, { x: ev.center.x, y: ev.center.y }) + } + + instance.zoomAtPoint(initialScale * ev.scale, { x: ev.center.x, y: ev.center.y }) + }) + + document.addEventListener('keydown', (event) => { + if (event.key === '+') { + instance.zoomIn(); + } else if (event.key === '-') { + instance.zoomOut(); + } + }); + + // Prevent moving the page on some devices when panning over SVG + options.svgElement.addEventListener('touchmove', function (e) { e.preventDefault(); }); + }, + destroy: function () { + this.hammer.destroy() + } } - - function zoomOut() { - zoomLevel -= 0.1; - mindmapContainer.style.transform = `scale(${zoomLevel})`; + + + var svgElement = document.querySelector('#mindmap svg'); + + if (svgElement) { + var panZoomInstance = svgPanZoom(svgElement, { + zoomEnabled: true, + controlIconsEnabled: true, + panEnabled: true, + mouseWheelZoomEnabled: true, + dblClickZoomEnabled: true, + fit: 0, + controlIconsEnabled: true, + minZoom: 0.15, + maxZoom: 6, + center: 0, + //contain: 1, + customEventsHandler: eventsHandler + }); + + //panZoomInstance.resize(); + //panZoomInstance.fit(); + //panZoomInstance.center(); + + // Conservez ici votre logique d'affichage de la modale + } else { + console.error('SVG not found within #mindmap'); } - - // Example usage - document.addEventListener('keydown', (event) => { - if (event.key === '+') { - zoomIn(); - } else if (event.key === '-') { - zoomOut(); - } - }); + + }); + + + // svg-pan-zoom v3.6.2 + // https://github.com/bumbu/svg-pan-zoom + !function s(r, a, l) { function u(e, t) { if (!a[e]) { if (!r[e]) { var o = "function" == typeof require && require; if (!t && o) return o(e, !0); if (h) return h(e, !0); var n = new Error("Cannot find module '" + e + "'"); throw n.code = "MODULE_NOT_FOUND", n } var i = a[e] = { exports: {} }; r[e][0].call(i.exports, function (t) { return u(r[e][1][t] || t) }, i, i.exports, s, r, a, l) } return a[e].exports } for (var h = "function" == typeof require && require, t = 0; t < l.length; t++)u(l[t]); return u }({ 1: [function (t, e, o) { var s = t("./svg-utilities"); e.exports = { enable: function (t) { var e = t.svg.querySelector("defs"); if (e || (e = document.createElementNS(s.svgNS, "defs"), t.svg.appendChild(e)), !e.querySelector("style#svg-pan-zoom-controls-styles")) { var o = document.createElementNS(s.svgNS, "style"); o.setAttribute("id", "svg-pan-zoom-controls-styles"), o.setAttribute("type", "text/css"), o.textContent = ".svg-pan-zoom-control { cursor: pointer; fill: black; fill-opacity: 0.333; } .svg-pan-zoom-control:hover { fill-opacity: 0.8; } .svg-pan-zoom-control-background { fill: white; fill-opacity: 0.5; } .svg-pan-zoom-control-background { fill-opacity: 0.8; }", e.appendChild(o) } var n = document.createElementNS(s.svgNS, "g"); n.setAttribute("id", "svg-pan-zoom-controls"), n.setAttribute("transform", "translate(" + (t.width - 70) + " " + (t.height - 76) + ") scale(0.75)"), n.setAttribute("class", "svg-pan-zoom-control"), n.appendChild(this._createZoomIn(t)), n.appendChild(this._createZoomReset(t)), n.appendChild(this._createZoomOut(t)), t.svg.appendChild(n), t.controlIcons = n }, _createZoomIn: function (t) { var e = document.createElementNS(s.svgNS, "g"); e.setAttribute("id", "svg-pan-zoom-zoom-in"), e.setAttribute("transform", "translate(30.5 5) scale(0.015)"), e.setAttribute("class", "svg-pan-zoom-control"), e.addEventListener("click", function () { t.getPublicInstance().zoomIn() }, !1), e.addEventListener("touchstart", function () { t.getPublicInstance().zoomIn() }, !1); var o = document.createElementNS(s.svgNS, "rect"); o.setAttribute("x", "0"), o.setAttribute("y", "0"), o.setAttribute("width", "1500"), o.setAttribute("height", "1400"), o.setAttribute("class", "svg-pan-zoom-control-background"), e.appendChild(o); var n = document.createElementNS(s.svgNS, "path"); return n.setAttribute("d", "M1280 576v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z"), n.setAttribute("class", "svg-pan-zoom-control-element"), e.appendChild(n), e }, _createZoomReset: function (t) { var e = document.createElementNS(s.svgNS, "g"); e.setAttribute("id", "svg-pan-zoom-reset-pan-zoom"), e.setAttribute("transform", "translate(5 35) scale(0.4)"), e.setAttribute("class", "svg-pan-zoom-control"), e.addEventListener("click", function () { t.getPublicInstance().reset() }, !1), e.addEventListener("touchstart", function () { t.getPublicInstance().reset() }, !1); var o = document.createElementNS(s.svgNS, "rect"); o.setAttribute("x", "2"), o.setAttribute("y", "2"), o.setAttribute("width", "182"), o.setAttribute("height", "58"), o.setAttribute("class", "svg-pan-zoom-control-background"), e.appendChild(o); var n = document.createElementNS(s.svgNS, "path"); n.setAttribute("d", "M33.051,20.632c-0.742-0.406-1.854-0.609-3.338-0.609h-7.969v9.281h7.769c1.543,0,2.701-0.188,3.473-0.562c1.365-0.656,2.048-1.953,2.048-3.891C35.032,22.757,34.372,21.351,33.051,20.632z"), n.setAttribute("class", "svg-pan-zoom-control-element"), e.appendChild(n); var i = document.createElementNS(s.svgNS, "path"); return i.setAttribute("d", "M170.231,0.5H15.847C7.102,0.5,0.5,5.708,0.5,11.84v38.861C0.5,56.833,7.102,61.5,15.847,61.5h154.384c8.745,0,15.269-4.667,15.269-10.798V11.84C185.5,5.708,178.976,0.5,170.231,0.5z M42.837,48.569h-7.969c-0.219-0.766-0.375-1.383-0.469-1.852c-0.188-0.969-0.289-1.961-0.305-2.977l-0.047-3.211c-0.03-2.203-0.41-3.672-1.142-4.406c-0.732-0.734-2.103-1.102-4.113-1.102h-7.05v13.547h-7.055V14.022h16.524c2.361,0.047,4.178,0.344,5.45,0.891c1.272,0.547,2.351,1.352,3.234,2.414c0.731,0.875,1.31,1.844,1.737,2.906s0.64,2.273,0.64,3.633c0,1.641-0.414,3.254-1.242,4.84s-2.195,2.707-4.102,3.363c1.594,0.641,2.723,1.551,3.387,2.73s0.996,2.98,0.996,5.402v2.32c0,1.578,0.063,2.648,0.19,3.211c0.19,0.891,0.635,1.547,1.333,1.969V48.569z M75.579,48.569h-26.18V14.022h25.336v6.117H56.454v7.336h16.781v6H56.454v8.883h19.125V48.569z M104.497,46.331c-2.44,2.086-5.887,3.129-10.34,3.129c-4.548,0-8.125-1.027-10.731-3.082s-3.909-4.879-3.909-8.473h6.891c0.224,1.578,0.662,2.758,1.316,3.539c1.196,1.422,3.246,2.133,6.15,2.133c1.739,0,3.151-0.188,4.236-0.562c2.058-0.719,3.087-2.055,3.087-4.008c0-1.141-0.504-2.023-1.512-2.648c-1.008-0.609-2.607-1.148-4.796-1.617l-3.74-0.82c-3.676-0.812-6.201-1.695-7.576-2.648c-2.328-1.594-3.492-4.086-3.492-7.477c0-3.094,1.139-5.664,3.417-7.711s5.623-3.07,10.036-3.07c3.685,0,6.829,0.965,9.431,2.895c2.602,1.93,3.966,4.73,4.093,8.402h-6.938c-0.128-2.078-1.057-3.555-2.787-4.43c-1.154-0.578-2.587-0.867-4.301-0.867c-1.907,0-3.428,0.375-4.565,1.125c-1.138,0.75-1.706,1.797-1.706,3.141c0,1.234,0.561,2.156,1.682,2.766c0.721,0.406,2.25,0.883,4.589,1.43l6.063,1.43c2.657,0.625,4.648,1.461,5.975,2.508c2.059,1.625,3.089,3.977,3.089,7.055C108.157,41.624,106.937,44.245,104.497,46.331z M139.61,48.569h-26.18V14.022h25.336v6.117h-18.281v7.336h16.781v6h-16.781v8.883h19.125V48.569z M170.337,20.14h-10.336v28.43h-7.266V20.14h-10.383v-6.117h27.984V20.14z"), i.setAttribute("class", "svg-pan-zoom-control-element"), e.appendChild(i), e }, _createZoomOut: function (t) { var e = document.createElementNS(s.svgNS, "g"); e.setAttribute("id", "svg-pan-zoom-zoom-out"), e.setAttribute("transform", "translate(30.5 70) scale(0.015)"), e.setAttribute("class", "svg-pan-zoom-control"), e.addEventListener("click", function () { t.getPublicInstance().zoomOut() }, !1), e.addEventListener("touchstart", function () { t.getPublicInstance().zoomOut() }, !1); var o = document.createElementNS(s.svgNS, "rect"); o.setAttribute("x", "0"), o.setAttribute("y", "0"), o.setAttribute("width", "1500"), o.setAttribute("height", "1400"), o.setAttribute("class", "svg-pan-zoom-control-background"), e.appendChild(o); var n = document.createElementNS(s.svgNS, "path"); return n.setAttribute("d", "M1280 576v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h896q26 0 45 19t19 45zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z"), n.setAttribute("class", "svg-pan-zoom-control-element"), e.appendChild(n), e }, disable: function (t) { t.controlIcons && (t.controlIcons.parentNode.removeChild(t.controlIcons), t.controlIcons = null) } } }, { "./svg-utilities": 5 }], 2: [function (t, e, o) { function n(t, e) { this.init(t, e) } var i = t("./svg-utilities"), r = t("./utilities"); n.prototype.init = function (t, e) { this.viewport = t, this.options = e, this.originalState = { zoom: 1, x: 0, y: 0 }, this.activeState = { zoom: 1, x: 0, y: 0 }, this.updateCTMCached = r.proxy(this.updateCTM, this), this.requestAnimationFrame = r.createRequestAnimationFrame(this.options.refreshRate), this.viewBox = { x: 0, y: 0, width: 0, height: 0 }, this.cacheViewBox(); var o = this.processCTM(); this.setCTM(o), this.updateCTM() }, n.prototype.cacheViewBox = function () { var t = this.options.svg.getAttribute("viewBox"); if (t) { var e = t.split(/[\s\,]/).filter(function (t) { return t }).map(parseFloat); this.viewBox.x = e[0], this.viewBox.y = e[1], this.viewBox.width = e[2], this.viewBox.height = e[3]; var o = Math.min(this.options.width / this.viewBox.width, this.options.height / this.viewBox.height); this.activeState.zoom = o, this.activeState.x = (this.options.width - this.viewBox.width * o) / 2, this.activeState.y = (this.options.height - this.viewBox.height * o) / 2, this.updateCTMOnNextFrame(), this.options.svg.removeAttribute("viewBox") } else this.simpleViewBoxCache() }, n.prototype.simpleViewBoxCache = function () { var t = this.viewport.getBBox(); this.viewBox.x = t.x, this.viewBox.y = t.y, this.viewBox.width = t.width, this.viewBox.height = t.height }, n.prototype.getViewBox = function () { return r.extend({}, this.viewBox) }, n.prototype.processCTM = function () { var t, e = this.getCTM(); (this.options.fit || this.options.contain) && (t = this.options.fit ? Math.min(this.options.width / this.viewBox.width, this.options.height / this.viewBox.height) : Math.max(this.options.width / this.viewBox.width, this.options.height / this.viewBox.height), e.a = t, e.d = t, e.e = -this.viewBox.x * t, e.f = -this.viewBox.y * t); if (this.options.center) { var o = .5 * (this.options.width - (this.viewBox.width + 2 * this.viewBox.x) * e.a), n = .5 * (this.options.height - (this.viewBox.height + 2 * this.viewBox.y) * e.a); e.e = o, e.f = n } return this.originalState.zoom = e.a, this.originalState.x = e.e, this.originalState.y = e.f, e }, n.prototype.getOriginalState = function () { return r.extend({}, this.originalState) }, n.prototype.getState = function () { return r.extend({}, this.activeState) }, n.prototype.getZoom = function () { return this.activeState.zoom }, n.prototype.getRelativeZoom = function () { return this.activeState.zoom / this.originalState.zoom }, n.prototype.computeRelativeZoom = function (t) { return t / this.originalState.zoom }, n.prototype.getPan = function () { return { x: this.activeState.x, y: this.activeState.y } }, n.prototype.getCTM = function () { var t = this.options.svg.createSVGMatrix(); return t.a = this.activeState.zoom, t.b = 0, t.c = 0, t.d = this.activeState.zoom, t.e = this.activeState.x, t.f = this.activeState.y, t }, n.prototype.setCTM = function (t) { var e = this.isZoomDifferent(t), o = this.isPanDifferent(t); if (e || o) { if (e && (!1 === this.options.beforeZoom(this.getRelativeZoom(), this.computeRelativeZoom(t.a)) ? (t.a = t.d = this.activeState.zoom, e = !1) : (this.updateCache(t), this.options.onZoom(this.getRelativeZoom()))), o) { var n = this.options.beforePan(this.getPan(), { x: t.e, y: t.f }), i = !1, s = !1; !1 === n ? (t.e = this.getPan().x, t.f = this.getPan().y, i = s = !0) : r.isObject(n) && (!1 === n.x ? (t.e = this.getPan().x, i = !0) : r.isNumber(n.x) && (t.e = n.x), !1 === n.y ? (t.f = this.getPan().y, s = !0) : r.isNumber(n.y) && (t.f = n.y)), i && s || !this.isPanDifferent(t) ? o = !1 : (this.updateCache(t), this.options.onPan(this.getPan())) } (e || o) && this.updateCTMOnNextFrame() } }, n.prototype.isZoomDifferent = function (t) { return this.activeState.zoom !== t.a }, n.prototype.isPanDifferent = function (t) { return this.activeState.x !== t.e || this.activeState.y !== t.f }, n.prototype.updateCache = function (t) { this.activeState.zoom = t.a, this.activeState.x = t.e, this.activeState.y = t.f }, n.prototype.pendingUpdate = !1, n.prototype.updateCTMOnNextFrame = function () { this.pendingUpdate || (this.pendingUpdate = !0, this.requestAnimationFrame.call(window, this.updateCTMCached)) }, n.prototype.updateCTM = function () { var t = this.getCTM(); i.setCTM(this.viewport, t, this.defs), this.pendingUpdate = !1, this.options.onUpdatedCTM && this.options.onUpdatedCTM(t) }, e.exports = function (t, e) { return new n(t, e) } }, { "./svg-utilities": 5, "./utilities": 7 }], 3: [function (t, e, o) { var n, i = t("./svg-pan-zoom.js"); n = window, document, "function" == typeof define && define.amd ? define("svg-pan-zoom", function () { return i }) : void 0 !== e && e.exports && (e.exports = i, n.svgPanZoom = i) }, { "./svg-pan-zoom.js": 4 }], 4: [function (t, e, o) { function i(t, e) { this.init(t, e) } var n = t("./uniwheel"), s = t("./control-icons"), r = t("./utilities"), a = t("./svg-utilities"), l = t("./shadow-viewport"), u = { viewportSelector: ".svg-pan-zoom_viewport", panEnabled: !0, controlIconsEnabled: !1, zoomEnabled: !0, dblClickZoomEnabled: !0, mouseWheelZoomEnabled: !0, preventMouseEventsDefault: !0, zoomScaleSensitivity: .1, minZoom: .5, maxZoom: 10, fit: !0, contain: !1, center: !0, refreshRate: "auto", beforeZoom: null, onZoom: null, beforePan: null, onPan: null, customEventsHandler: null, eventsListenerElement: null, onUpdatedCTM: null }, h = { passive: !0 }; i.prototype.init = function (t, e) { var o = this; this.svg = t, this.defs = t.querySelector("defs"), a.setupSvgAttributes(this.svg), this.options = r.extend(r.extend({}, u), e), this.state = "none"; var n = a.getBoundingClientRectNormalized(t); this.width = n.width, this.height = n.height, this.viewport = l(a.getOrCreateViewport(this.svg, this.options.viewportSelector), { svg: this.svg, width: this.width, height: this.height, fit: this.options.fit, contain: this.options.contain, center: this.options.center, refreshRate: this.options.refreshRate, beforeZoom: function (t, e) { if (o.viewport && o.options.beforeZoom) return o.options.beforeZoom(t, e) }, onZoom: function (t) { if (o.viewport && o.options.onZoom) return o.options.onZoom(t) }, beforePan: function (t, e) { if (o.viewport && o.options.beforePan) return o.options.beforePan(t, e) }, onPan: function (t) { if (o.viewport && o.options.onPan) return o.options.onPan(t) }, onUpdatedCTM: function (t) { if (o.viewport && o.options.onUpdatedCTM) return o.options.onUpdatedCTM(t) } }); var i = this.getPublicInstance(); i.setBeforeZoom(this.options.beforeZoom), i.setOnZoom(this.options.onZoom), i.setBeforePan(this.options.beforePan), i.setOnPan(this.options.onPan), i.setOnUpdatedCTM(this.options.onUpdatedCTM), this.options.controlIconsEnabled && s.enable(this), this.lastMouseWheelEventTime = Date.now(), this.setupHandlers() }, i.prototype.setupHandlers = function () { var o = this, n = null; if (this.eventListeners = { mousedown: function (t) { var e = o.handleMouseDown(t, n); return n = t, e }, touchstart: function (t) { var e = o.handleMouseDown(t, n); return n = t, e }, mouseup: function (t) { return o.handleMouseUp(t) }, touchend: function (t) { return o.handleMouseUp(t) }, mousemove: function (t) { return o.handleMouseMove(t) }, touchmove: function (t) { return o.handleMouseMove(t) }, mouseleave: function (t) { return o.handleMouseUp(t) }, touchleave: function (t) { return o.handleMouseUp(t) }, touchcancel: function (t) { return o.handleMouseUp(t) } }, null != this.options.customEventsHandler) { this.options.customEventsHandler.init({ svgElement: this.svg, eventsListenerElement: this.options.eventsListenerElement, instance: this.getPublicInstance() }); var t = this.options.customEventsHandler.haltEventListeners; if (t && t.length) for (var e = t.length - 1; 0 <= e; e--)this.eventListeners.hasOwnProperty(t[e]) && delete this.eventListeners[t[e]] } for (var i in this.eventListeners) (this.options.eventsListenerElement || this.svg).addEventListener(i, this.eventListeners[i], !this.options.preventMouseEventsDefault && h); this.options.mouseWheelZoomEnabled && (this.options.mouseWheelZoomEnabled = !1, this.enableMouseWheelZoom()) }, i.prototype.enableMouseWheelZoom = function () { if (!this.options.mouseWheelZoomEnabled) { var e = this; this.wheelListener = function (t) { return e.handleMouseWheel(t) }; var t = !this.options.preventMouseEventsDefault; n.on(this.options.eventsListenerElement || this.svg, this.wheelListener, t), this.options.mouseWheelZoomEnabled = !0 } }, i.prototype.disableMouseWheelZoom = function () { if (this.options.mouseWheelZoomEnabled) { var t = !this.options.preventMouseEventsDefault; n.off(this.options.eventsListenerElement || this.svg, this.wheelListener, t), this.options.mouseWheelZoomEnabled = !1 } }, i.prototype.handleMouseWheel = function (t) { if (this.options.zoomEnabled && "none" === this.state) { this.options.preventMouseEventsDefault && (t.preventDefault ? t.preventDefault() : t.returnValue = !1); var e = t.deltaY || 1, o = Date.now() - this.lastMouseWheelEventTime, n = 3 + Math.max(0, 30 - o); this.lastMouseWheelEventTime = Date.now(), "deltaMode" in t && 0 === t.deltaMode && t.wheelDelta && (e = 0 === t.deltaY ? 0 : Math.abs(t.wheelDelta) / t.deltaY), e = -.3 < e && e < .3 ? e : (0 < e ? 1 : -1) * Math.log(Math.abs(e) + 10) / n; var i = this.svg.getScreenCTM().inverse(), s = a.getEventPoint(t, this.svg).matrixTransform(i), r = Math.pow(1 + this.options.zoomScaleSensitivity, -1 * e); this.zoomAtPoint(r, s) } }, i.prototype.zoomAtPoint = function (t, e, o) { var n = this.viewport.getOriginalState(); o ? (t = Math.max(this.options.minZoom * n.zoom, Math.min(this.options.maxZoom * n.zoom, t)), t /= this.getZoom()) : this.getZoom() * t < this.options.minZoom * n.zoom ? t = this.options.minZoom * n.zoom / this.getZoom() : this.getZoom() * t > this.options.maxZoom * n.zoom && (t = this.options.maxZoom * n.zoom / this.getZoom()); var i = this.viewport.getCTM(), s = e.matrixTransform(i.inverse()), r = this.svg.createSVGMatrix().translate(s.x, s.y).scale(t).translate(-s.x, -s.y), a = i.multiply(r); a.a !== i.a && this.viewport.setCTM(a) }, i.prototype.zoom = function (t, e) { this.zoomAtPoint(t, a.getSvgCenterPoint(this.svg, this.width, this.height), e) }, i.prototype.publicZoom = function (t, e) { e && (t = this.computeFromRelativeZoom(t)), this.zoom(t, e) }, i.prototype.publicZoomAtPoint = function (t, e, o) { if (o && (t = this.computeFromRelativeZoom(t)), "SVGPoint" !== r.getType(e)) { if (!("x" in e && "y" in e)) throw new Error("Given point is invalid"); e = a.createSVGPoint(this.svg, e.x, e.y) } this.zoomAtPoint(t, e, o) }, i.prototype.getZoom = function () { return this.viewport.getZoom() }, i.prototype.getRelativeZoom = function () { return this.viewport.getRelativeZoom() }, i.prototype.computeFromRelativeZoom = function (t) { return t * this.viewport.getOriginalState().zoom }, i.prototype.resetZoom = function () { var t = this.viewport.getOriginalState(); this.zoom(t.zoom, !0) }, i.prototype.resetPan = function () { this.pan(this.viewport.getOriginalState()) }, i.prototype.reset = function () { this.resetZoom(), this.resetPan() }, i.prototype.handleDblClick = function (t) { var e; if ((this.options.preventMouseEventsDefault && (t.preventDefault ? t.preventDefault() : t.returnValue = !1), this.options.controlIconsEnabled) && -1 < (t.target.getAttribute("class") || "").indexOf("svg-pan-zoom-control")) return !1; e = t.shiftKey ? 1 / (2 * (1 + this.options.zoomScaleSensitivity)) : 2 * (1 + this.options.zoomScaleSensitivity); var o = a.getEventPoint(t, this.svg).matrixTransform(this.svg.getScreenCTM().inverse()); this.zoomAtPoint(e, o) }, i.prototype.handleMouseDown = function (t, e) { this.options.preventMouseEventsDefault && (t.preventDefault ? t.preventDefault() : t.returnValue = !1), r.mouseAndTouchNormalize(t, this.svg), this.options.dblClickZoomEnabled && r.isDblClick(t, e) ? this.handleDblClick(t) : (this.state = "pan", this.firstEventCTM = this.viewport.getCTM(), this.stateOrigin = a.getEventPoint(t, this.svg).matrixTransform(this.firstEventCTM.inverse())) }, i.prototype.handleMouseMove = function (t) { if (this.options.preventMouseEventsDefault && (t.preventDefault ? t.preventDefault() : t.returnValue = !1), "pan" === this.state && this.options.panEnabled) { var e = a.getEventPoint(t, this.svg).matrixTransform(this.firstEventCTM.inverse()), o = this.firstEventCTM.translate(e.x - this.stateOrigin.x, e.y - this.stateOrigin.y); this.viewport.setCTM(o) } }, i.prototype.handleMouseUp = function (t) { this.options.preventMouseEventsDefault && (t.preventDefault ? t.preventDefault() : t.returnValue = !1), "pan" === this.state && (this.state = "none") }, i.prototype.fit = function () { var t = this.viewport.getViewBox(), e = Math.min(this.width / t.width, this.height / t.height); this.zoom(e, !0) }, i.prototype.contain = function () { var t = this.viewport.getViewBox(), e = Math.max(this.width / t.width, this.height / t.height); this.zoom(e, !0) }, i.prototype.center = function () { var t = this.viewport.getViewBox(), e = .5 * (this.width - (t.width + 2 * t.x) * this.getZoom()), o = .5 * (this.height - (t.height + 2 * t.y) * this.getZoom()); this.getPublicInstance().pan({ x: e, y: o }) }, i.prototype.updateBBox = function () { this.viewport.simpleViewBoxCache() }, i.prototype.pan = function (t) { var e = this.viewport.getCTM(); e.e = t.x, e.f = t.y, this.viewport.setCTM(e) }, i.prototype.panBy = function (t) { var e = this.viewport.getCTM(); e.e += t.x, e.f += t.y, this.viewport.setCTM(e) }, i.prototype.getPan = function () { var t = this.viewport.getState(); return { x: t.x, y: t.y } }, i.prototype.resize = function () { var t = a.getBoundingClientRectNormalized(this.svg); this.width = t.width, this.height = t.height; var e = this.viewport; e.options.width = this.width, e.options.height = this.height, e.processCTM(), this.options.controlIconsEnabled && (this.getPublicInstance().disableControlIcons(), this.getPublicInstance().enableControlIcons()) }, i.prototype.destroy = function () { var e = this; for (var t in this.beforeZoom = null, this.onZoom = null, this.beforePan = null, this.onPan = null, (this.onUpdatedCTM = null) != this.options.customEventsHandler && this.options.customEventsHandler.destroy({ svgElement: this.svg, eventsListenerElement: this.options.eventsListenerElement, instance: this.getPublicInstance() }), this.eventListeners) (this.options.eventsListenerElement || this.svg).removeEventListener(t, this.eventListeners[t], !this.options.preventMouseEventsDefault && h); this.disableMouseWheelZoom(), this.getPublicInstance().disableControlIcons(), this.reset(), c = c.filter(function (t) { return t.svg !== e.svg }), delete this.options, delete this.viewport, delete this.publicInstance, delete this.pi, this.getPublicInstance = function () { return null } }, i.prototype.getPublicInstance = function () { var o = this; return this.publicInstance || (this.publicInstance = this.pi = { enablePan: function () { return o.options.panEnabled = !0, o.pi }, disablePan: function () { return o.options.panEnabled = !1, o.pi }, isPanEnabled: function () { return !!o.options.panEnabled }, pan: function (t) { return o.pan(t), o.pi }, panBy: function (t) { return o.panBy(t), o.pi }, getPan: function () { return o.getPan() }, setBeforePan: function (t) { return o.options.beforePan = null === t ? null : r.proxy(t, o.publicInstance), o.pi }, setOnPan: function (t) { return o.options.onPan = null === t ? null : r.proxy(t, o.publicInstance), o.pi }, enableZoom: function () { return o.options.zoomEnabled = !0, o.pi }, disableZoom: function () { return o.options.zoomEnabled = !1, o.pi }, isZoomEnabled: function () { return !!o.options.zoomEnabled }, enableControlIcons: function () { return o.options.controlIconsEnabled || (o.options.controlIconsEnabled = !0, s.enable(o)), o.pi }, disableControlIcons: function () { return o.options.controlIconsEnabled && (o.options.controlIconsEnabled = !1, s.disable(o)), o.pi }, isControlIconsEnabled: function () { return !!o.options.controlIconsEnabled }, enableDblClickZoom: function () { return o.options.dblClickZoomEnabled = !0, o.pi }, disableDblClickZoom: function () { return o.options.dblClickZoomEnabled = !1, o.pi }, isDblClickZoomEnabled: function () { return !!o.options.dblClickZoomEnabled }, enableMouseWheelZoom: function () { return o.enableMouseWheelZoom(), o.pi }, disableMouseWheelZoom: function () { return o.disableMouseWheelZoom(), o.pi }, isMouseWheelZoomEnabled: function () { return !!o.options.mouseWheelZoomEnabled }, setZoomScaleSensitivity: function (t) { return o.options.zoomScaleSensitivity = t, o.pi }, setMinZoom: function (t) { return o.options.minZoom = t, o.pi }, setMaxZoom: function (t) { return o.options.maxZoom = t, o.pi }, setBeforeZoom: function (t) { return o.options.beforeZoom = null === t ? null : r.proxy(t, o.publicInstance), o.pi }, setOnZoom: function (t) { return o.options.onZoom = null === t ? null : r.proxy(t, o.publicInstance), o.pi }, zoom: function (t) { return o.publicZoom(t, !0), o.pi }, zoomBy: function (t) { return o.publicZoom(t, !1), o.pi }, zoomAtPoint: function (t, e) { return o.publicZoomAtPoint(t, e, !0), o.pi }, zoomAtPointBy: function (t, e) { return o.publicZoomAtPoint(t, e, !1), o.pi }, zoomIn: function () { return this.zoomBy(1 + o.options.zoomScaleSensitivity), o.pi }, zoomOut: function () { return this.zoomBy(1 / (1 + o.options.zoomScaleSensitivity)), o.pi }, getZoom: function () { return o.getRelativeZoom() }, setOnUpdatedCTM: function (t) { return o.options.onUpdatedCTM = null === t ? null : r.proxy(t, o.publicInstance), o.pi }, resetZoom: function () { return o.resetZoom(), o.pi }, resetPan: function () { return o.resetPan(), o.pi }, reset: function () { return o.reset(), o.pi }, fit: function () { return o.fit(), o.pi }, contain: function () { return o.contain(), o.pi }, center: function () { return o.center(), o.pi }, updateBBox: function () { return o.updateBBox(), o.pi }, resize: function () { return o.resize(), o.pi }, getSizes: function () { return { width: o.width, height: o.height, realZoom: o.getZoom(), viewBox: o.viewport.getViewBox() } }, destroy: function () { return o.destroy(), o.pi } }), this.publicInstance }; var c = []; e.exports = function (t, e) { var o = r.getSvg(t); if (null === o) return null; for (var n = c.length - 1; 0 <= n; n--)if (c[n].svg === o) return c[n].instance.getPublicInstance(); return c.push({ svg: o, instance: new i(o, e) }), c[c.length - 1].instance.getPublicInstance() } }, { "./control-icons": 1, "./shadow-viewport": 2, "./svg-utilities": 5, "./uniwheel": 6, "./utilities": 7 }], 5: [function (t, e, o) { var l = t("./utilities"), s = "unknown"; document.documentMode && (s = "ie"), e.exports = { svgNS: "http://www.w3.org/2000/svg", xmlNS: "http://www.w3.org/XML/1998/namespace", xmlnsNS: "http://www.w3.org/2000/xmlns/", xlinkNS: "http://www.w3.org/1999/xlink", evNS: "http://www.w3.org/2001/xml-events", getBoundingClientRectNormalized: function (t) { if (t.clientWidth && t.clientHeight) return { width: t.clientWidth, height: t.clientHeight }; if (t.getBoundingClientRect()) return t.getBoundingClientRect(); throw new Error("Cannot get BoundingClientRect for SVG.") }, getOrCreateViewport: function (t, e) { var o = null; if (!(o = l.isElement(e) ? e : t.querySelector(e))) { var n = Array.prototype.slice.call(t.childNodes || t.children).filter(function (t) { return "defs" !== t.nodeName && "#text" !== t.nodeName }); 1 === n.length && "g" === n[0].nodeName && null === n[0].getAttribute("transform") && (o = n[0]) } if (!o) { var i = "viewport-" + (new Date).toISOString().replace(/\D/g, ""); (o = document.createElementNS(this.svgNS, "g")).setAttribute("id", i); var s = t.childNodes || t.children; if (s && 0 < s.length) for (var r = s.length; 0 < r; r--)"defs" !== s[s.length - r].nodeName && o.appendChild(s[s.length - r]); t.appendChild(o) } var a = []; return o.getAttribute("class") && (a = o.getAttribute("class").split(" ")), ~a.indexOf("svg-pan-zoom_viewport") || (a.push("svg-pan-zoom_viewport"), o.setAttribute("class", a.join(" "))), o }, setupSvgAttributes: function (t) { if (t.setAttribute("xmlns", this.svgNS), t.setAttributeNS(this.xmlnsNS, "xmlns:xlink", this.xlinkNS), t.setAttributeNS(this.xmlnsNS, "xmlns:ev", this.evNS), null !== t.parentNode) { var e = t.getAttribute("style") || ""; -1 === e.toLowerCase().indexOf("overflow") && t.setAttribute("style", "overflow: hidden; " + e) } }, internetExplorerRedisplayInterval: 300, refreshDefsGlobal: l.throttle(function () { for (var t = document.querySelectorAll("defs"), e = t.length, o = 0; o < e; o++) { var n = t[o]; n.parentNode.insertBefore(n, n) } }, this ? this.internetExplorerRedisplayInterval : null), setCTM: function (t, e, o) { var n = this, i = "matrix(" + e.a + "," + e.b + "," + e.c + "," + e.d + "," + e.e + "," + e.f + ")"; t.setAttributeNS(null, "transform", i), "transform" in t.style ? t.style.transform = i : "-ms-transform" in t.style ? t.style["-ms-transform"] = i : "-webkit-transform" in t.style && (t.style["-webkit-transform"] = i), "ie" === s && o && (o.parentNode.insertBefore(o, o), window.setTimeout(function () { n.refreshDefsGlobal() }, n.internetExplorerRedisplayInterval)) }, getEventPoint: function (t, e) { var o = e.createSVGPoint(); return l.mouseAndTouchNormalize(t, e), o.x = t.clientX, o.y = t.clientY, o }, getSvgCenterPoint: function (t, e, o) { return this.createSVGPoint(t, e / 2, o / 2) }, createSVGPoint: function (t, e, o) { var n = t.createSVGPoint(); return n.x = e, n.y = o, n } } }, { "./utilities": 7 }], 6: [function (t, e, o) { function s(t, o) { function e(t) { var e = { originalEvent: t = t || window.event, target: t.target || t.srcElement, type: "wheel", deltaMode: "MozMousePixelScroll" == t.type ? 0 : 1, deltaX: 0, delatZ: 0, preventDefault: function () { t.preventDefault ? t.preventDefault() : t.returnValue = !1 } }; return "mousewheel" == l ? (e.deltaY = -.025 * t.wheelDelta, t.wheelDeltaX && (e.deltaX = -.025 * t.wheelDeltaX)) : e.deltaY = t.detail, o(e) } return h.push({ element: t, fn: e }), e } function n(t, e, o, n) { var i; i = "wheel" === l ? o : s(t, o), t[r](u + e, i, n ? c : p) } function i(t, e, o, n) { var i; i = "wheel" === l ? o : function (t) { for (var e = 0; e < h.length; e++)if (h[e].element === t) return h[e].fn; return function () { } }(t), t[a](u + e, i, n ? c : p), function (t) { for (var e = 0; e < h.length; e++)if (h[e].element === t) return h.splice(e, 1) }(t) } var r, a, l, u, h, c, p; e.exports = (h = [], p = { passive: !(c = { passive: !(u = "") }) }, window.addEventListener ? (r = "addEventListener", a = "removeEventListener") : (r = "attachEvent", a = "detachEvent", u = "on"), l = "onwheel" in document.createElement("div") ? "wheel" : void 0 !== document.onmousewheel ? "mousewheel" : "DOMMouseScroll", { on: function (t, e, o) { n(t, l, e, o), "DOMMouseScroll" == l && n(t, "MozMousePixelScroll", e, o) }, off: function (t, e, o) { i(t, l, e, o), "DOMMouseScroll" == l && i(t, "MozMousePixelScroll", e, o) } }) }, {}], 7: [function (t, e, o) { function n(e) { return function (t) { window.setTimeout(t, e) } } e.exports = { extend: function (t, e) { for (var o in t = t || {}, e) this.isObject(e[o]) ? t[o] = this.extend(t[o], e[o]) : t[o] = e[o]; return t }, isElement: function (t) { return t instanceof HTMLElement || t instanceof SVGElement || t instanceof SVGSVGElement || t && "object" == typeof t && null !== t && 1 === t.nodeType && "string" == typeof t.nodeName }, isObject: function (t) { return "[object Object]" === Object.prototype.toString.call(t) }, isNumber: function (t) { return !isNaN(parseFloat(t)) && isFinite(t) }, getSvg: function (t) { var e, o; if (this.isElement(t)) e = t; else { if (!("string" == typeof t || t instanceof String)) throw new Error("Provided selector is not an HTML object nor String"); if (!(e = document.querySelector(t))) throw new Error("Provided selector did not find any elements. Selector: " + t) } if ("svg" === e.tagName.toLowerCase()) o = e; else if ("object" === e.tagName.toLowerCase()) o = e.contentDocument.documentElement; else { if ("embed" !== e.tagName.toLowerCase()) throw "img" === e.tagName.toLowerCase() ? new Error('Cannot script an SVG in an "img" element. Please use an "object" element or an in-line SVG.') : new Error("Cannot get SVG."); o = e.getSVGDocument().documentElement } return o }, proxy: function (t, e) { return function () { return t.apply(e, arguments) } }, getType: function (t) { return Object.prototype.toString.apply(t).replace(/^\[object\s/, "").replace(/\]$/, "") }, mouseAndTouchNormalize: function (t, e) { if (void 0 === t.clientX || null === t.clientX) if (t.clientX = 0, void (t.clientY = 0) !== t.touches && t.touches.length) { if (void 0 !== t.touches[0].clientX) t.clientX = t.touches[0].clientX, t.clientY = t.touches[0].clientY; else if (void 0 !== t.touches[0].pageX) { var o = e.getBoundingClientRect(); t.clientX = t.touches[0].pageX - o.left, t.clientY = t.touches[0].pageY - o.top } } else void 0 !== t.originalEvent && void 0 !== t.originalEvent.clientX && (t.clientX = t.originalEvent.clientX, t.clientY = t.originalEvent.clientY) }, isDblClick: function (t, e) { if (2 === t.detail) return !0; if (null == e) return !1; var o = t.timeStamp - e.timeStamp, n = Math.sqrt(Math.pow(t.clientX - e.clientX, 2) + Math.pow(t.clientY - e.clientY, 2)); return o < 250 && n < 10 }, now: Date.now || function () { return (new Date).getTime() }, throttle: function (o, n, i) { var s, r, a, l = this, u = null, h = 0; i = i || {}; function c() { h = !1 === i.leading ? 0 : l.now(), u = null, a = o.apply(s, r), u || (s = r = null) } return function () { var t = l.now(); h || !1 !== i.leading || (h = t); var e = n - (t - h); return s = this, r = arguments, e <= 0 || n < e ? (clearTimeout(u), u = null, h = t, a = o.apply(s, r), u || (s = r = null)) : u || !1 === i.trailing || (u = setTimeout(c, e)), a } }, createRequestAnimationFrame: function (t) { var e = null; return "auto" !== t && t < 60 && 1 < t && (e = Math.floor(1e3 / t)), null === e ? window.requestAnimationFrame || n(33) : n(e) } } }, {}] }, {}, [3]); + + /*! Hammer.JS - v2.0.8 - 2016-04-23 +* http://hammerjs.github.io/ +* +* Copyright (c) 2016 Jorik Tangelder; +* Licensed under the MIT license */ + !function (a, b, c, d) { "use strict"; function e(a, b, c) { return setTimeout(j(a, c), b) } function f(a, b, c) { return Array.isArray(a) ? (g(a, c[b], c), !0) : !1 } function g(a, b, c) { var e; if (a) if (a.forEach) a.forEach(b, c); else if (a.length !== d) for (e = 0; e < a.length;)b.call(c, a[e], e, a), e++; else for (e in a) a.hasOwnProperty(e) && b.call(c, a[e], e, a) } function h(b, c, d) { var e = "DEPRECATED METHOD: " + c + "\n" + d + " AT \n"; return function () { var c = new Error("get-stack-trace"), d = c && c.stack ? c.stack.replace(/^[^\(]+?[\n$]/gm, "").replace(/^\s+at\s+/gm, "").replace(/^Object.\s*\(/gm, "{anonymous}()@") : "Unknown Stack Trace", f = a.console && (a.console.warn || a.console.log); return f && f.call(a.console, e, d), b.apply(this, arguments) } } function i(a, b, c) { var d, e = b.prototype; d = a.prototype = Object.create(e), d.constructor = a, d._super = e, c && la(d, c) } function j(a, b) { return function () { return a.apply(b, arguments) } } function k(a, b) { return typeof a == oa ? a.apply(b ? b[0] || d : d, b) : a } function l(a, b) { return a === d ? b : a } function m(a, b, c) { g(q(b), function (b) { a.addEventListener(b, c, !1) }) } function n(a, b, c) { g(q(b), function (b) { a.removeEventListener(b, c, !1) }) } function o(a, b) { for (; a;) { if (a == b) return !0; a = a.parentNode } return !1 } function p(a, b) { return a.indexOf(b) > -1 } function q(a) { return a.trim().split(/\s+/g) } function r(a, b, c) { if (a.indexOf && !c) return a.indexOf(b); for (var d = 0; d < a.length;) { if (c && a[d][c] == b || !c && a[d] === b) return d; d++ } return -1 } function s(a) { return Array.prototype.slice.call(a, 0) } function t(a, b, c) { for (var d = [], e = [], f = 0; f < a.length;) { var g = b ? a[f][b] : a[f]; r(e, g) < 0 && d.push(a[f]), e[f] = g, f++ } return c && (d = b ? d.sort(function (a, c) { return a[b] > c[b] }) : d.sort()), d } function u(a, b) { for (var c, e, f = b[0].toUpperCase() + b.slice(1), g = 0; g < ma.length;) { if (c = ma[g], e = c ? c + f : b, e in a) return e; g++ } return d } function v() { return ua++ } function w(b) { var c = b.ownerDocument || b; return c.defaultView || c.parentWindow || a } function x(a, b) { var c = this; this.manager = a, this.callback = b, this.element = a.element, this.target = a.options.inputTarget, this.domHandler = function (b) { k(a.options.enable, [a]) && c.handler(b) }, this.init() } function y(a) { var b, c = a.options.inputClass; return new (b = c ? c : xa ? M : ya ? P : wa ? R : L)(a, z) } function z(a, b, c) { var d = c.pointers.length, e = c.changedPointers.length, f = b & Ea && d - e === 0, g = b & (Ga | Ha) && d - e === 0; c.isFirst = !!f, c.isFinal = !!g, f && (a.session = {}), c.eventType = b, A(a, c), a.emit("hammer.input", c), a.recognize(c), a.session.prevInput = c } function A(a, b) { var c = a.session, d = b.pointers, e = d.length; c.firstInput || (c.firstInput = D(b)), e > 1 && !c.firstMultiple ? c.firstMultiple = D(b) : 1 === e && (c.firstMultiple = !1); var f = c.firstInput, g = c.firstMultiple, h = g ? g.center : f.center, i = b.center = E(d); b.timeStamp = ra(), b.deltaTime = b.timeStamp - f.timeStamp, b.angle = I(h, i), b.distance = H(h, i), B(c, b), b.offsetDirection = G(b.deltaX, b.deltaY); var j = F(b.deltaTime, b.deltaX, b.deltaY); b.overallVelocityX = j.x, b.overallVelocityY = j.y, b.overallVelocity = qa(j.x) > qa(j.y) ? j.x : j.y, b.scale = g ? K(g.pointers, d) : 1, b.rotation = g ? J(g.pointers, d) : 0, b.maxPointers = c.prevInput ? b.pointers.length > c.prevInput.maxPointers ? b.pointers.length : c.prevInput.maxPointers : b.pointers.length, C(c, b); var k = a.element; o(b.srcEvent.target, k) && (k = b.srcEvent.target), b.target = k } function B(a, b) { var c = b.center, d = a.offsetDelta || {}, e = a.prevDelta || {}, f = a.prevInput || {}; b.eventType !== Ea && f.eventType !== Ga || (e = a.prevDelta = { x: f.deltaX || 0, y: f.deltaY || 0 }, d = a.offsetDelta = { x: c.x, y: c.y }), b.deltaX = e.x + (c.x - d.x), b.deltaY = e.y + (c.y - d.y) } function C(a, b) { var c, e, f, g, h = a.lastInterval || b, i = b.timeStamp - h.timeStamp; if (b.eventType != Ha && (i > Da || h.velocity === d)) { var j = b.deltaX - h.deltaX, k = b.deltaY - h.deltaY, l = F(i, j, k); e = l.x, f = l.y, c = qa(l.x) > qa(l.y) ? l.x : l.y, g = G(j, k), a.lastInterval = b } else c = h.velocity, e = h.velocityX, f = h.velocityY, g = h.direction; b.velocity = c, b.velocityX = e, b.velocityY = f, b.direction = g } function D(a) { for (var b = [], c = 0; c < a.pointers.length;)b[c] = { clientX: pa(a.pointers[c].clientX), clientY: pa(a.pointers[c].clientY) }, c++; return { timeStamp: ra(), pointers: b, center: E(b), deltaX: a.deltaX, deltaY: a.deltaY } } function E(a) { var b = a.length; if (1 === b) return { x: pa(a[0].clientX), y: pa(a[0].clientY) }; for (var c = 0, d = 0, e = 0; b > e;)c += a[e].clientX, d += a[e].clientY, e++; return { x: pa(c / b), y: pa(d / b) } } function F(a, b, c) { return { x: b / a || 0, y: c / a || 0 } } function G(a, b) { return a === b ? Ia : qa(a) >= qa(b) ? 0 > a ? Ja : Ka : 0 > b ? La : Ma } function H(a, b, c) { c || (c = Qa); var d = b[c[0]] - a[c[0]], e = b[c[1]] - a[c[1]]; return Math.sqrt(d * d + e * e) } function I(a, b, c) { c || (c = Qa); var d = b[c[0]] - a[c[0]], e = b[c[1]] - a[c[1]]; return 180 * Math.atan2(e, d) / Math.PI } function J(a, b) { return I(b[1], b[0], Ra) + I(a[1], a[0], Ra) } function K(a, b) { return H(b[0], b[1], Ra) / H(a[0], a[1], Ra) } function L() { this.evEl = Ta, this.evWin = Ua, this.pressed = !1, x.apply(this, arguments) } function M() { this.evEl = Xa, this.evWin = Ya, x.apply(this, arguments), this.store = this.manager.session.pointerEvents = [] } function N() { this.evTarget = $a, this.evWin = _a, this.started = !1, x.apply(this, arguments) } function O(a, b) { var c = s(a.touches), d = s(a.changedTouches); return b & (Ga | Ha) && (c = t(c.concat(d), "identifier", !0)), [c, d] } function P() { this.evTarget = bb, this.targetIds = {}, x.apply(this, arguments) } function Q(a, b) { var c = s(a.touches), d = this.targetIds; if (b & (Ea | Fa) && 1 === c.length) return d[c[0].identifier] = !0, [c, c]; var e, f, g = s(a.changedTouches), h = [], i = this.target; if (f = c.filter(function (a) { return o(a.target, i) }), b === Ea) for (e = 0; e < f.length;)d[f[e].identifier] = !0, e++; for (e = 0; e < g.length;)d[g[e].identifier] && h.push(g[e]), b & (Ga | Ha) && delete d[g[e].identifier], e++; return h.length ? [t(f.concat(h), "identifier", !0), h] : void 0 } function R() { x.apply(this, arguments); var a = j(this.handler, this); this.touch = new P(this.manager, a), this.mouse = new L(this.manager, a), this.primaryTouch = null, this.lastTouches = [] } function S(a, b) { a & Ea ? (this.primaryTouch = b.changedPointers[0].identifier, T.call(this, b)) : a & (Ga | Ha) && T.call(this, b) } function T(a) { var b = a.changedPointers[0]; if (b.identifier === this.primaryTouch) { var c = { x: b.clientX, y: b.clientY }; this.lastTouches.push(c); var d = this.lastTouches, e = function () { var a = d.indexOf(c); a > -1 && d.splice(a, 1) }; setTimeout(e, cb) } } function U(a) { for (var b = a.srcEvent.clientX, c = a.srcEvent.clientY, d = 0; d < this.lastTouches.length; d++) { var e = this.lastTouches[d], f = Math.abs(b - e.x), g = Math.abs(c - e.y); if (db >= f && db >= g) return !0 } return !1 } function V(a, b) { this.manager = a, this.set(b) } function W(a) { if (p(a, jb)) return jb; var b = p(a, kb), c = p(a, lb); return b && c ? jb : b || c ? b ? kb : lb : p(a, ib) ? ib : hb } function X() { if (!fb) return !1; var b = {}, c = a.CSS && a.CSS.supports; return ["auto", "manipulation", "pan-y", "pan-x", "pan-x pan-y", "none"].forEach(function (d) { b[d] = c ? a.CSS.supports("touch-action", d) : !0 }), b } function Y(a) { this.options = la({}, this.defaults, a || {}), this.id = v(), this.manager = null, this.options.enable = l(this.options.enable, !0), this.state = nb, this.simultaneous = {}, this.requireFail = [] } function Z(a) { return a & sb ? "cancel" : a & qb ? "end" : a & pb ? "move" : a & ob ? "start" : "" } function $(a) { return a == Ma ? "down" : a == La ? "up" : a == Ja ? "left" : a == Ka ? "right" : "" } function _(a, b) { var c = b.manager; return c ? c.get(a) : a } function aa() { Y.apply(this, arguments) } function ba() { aa.apply(this, arguments), this.pX = null, this.pY = null } function ca() { aa.apply(this, arguments) } function da() { Y.apply(this, arguments), this._timer = null, this._input = null } function ea() { aa.apply(this, arguments) } function fa() { aa.apply(this, arguments) } function ga() { Y.apply(this, arguments), this.pTime = !1, this.pCenter = !1, this._timer = null, this._input = null, this.count = 0 } function ha(a, b) { return b = b || {}, b.recognizers = l(b.recognizers, ha.defaults.preset), new ia(a, b) } function ia(a, b) { this.options = la({}, ha.defaults, b || {}), this.options.inputTarget = this.options.inputTarget || a, this.handlers = {}, this.session = {}, this.recognizers = [], this.oldCssProps = {}, this.element = a, this.input = y(this), this.touchAction = new V(this, this.options.touchAction), ja(this, !0), g(this.options.recognizers, function (a) { var b = this.add(new a[0](a[1])); a[2] && b.recognizeWith(a[2]), a[3] && b.requireFailure(a[3]) }, this) } function ja(a, b) { var c = a.element; if (c.style) { var d; g(a.options.cssProps, function (e, f) { d = u(c.style, f), b ? (a.oldCssProps[d] = c.style[d], c.style[d] = e) : c.style[d] = a.oldCssProps[d] || "" }), b || (a.oldCssProps = {}) } } function ka(a, c) { var d = b.createEvent("Event"); d.initEvent(a, !0, !0), d.gesture = c, c.target.dispatchEvent(d) } var la, ma = ["", "webkit", "Moz", "MS", "ms", "o"], na = b.createElement("div"), oa = "function", pa = Math.round, qa = Math.abs, ra = Date.now; la = "function" != typeof Object.assign ? function (a) { if (a === d || null === a) throw new TypeError("Cannot convert undefined or null to object"); for (var b = Object(a), c = 1; c < arguments.length; c++) { var e = arguments[c]; if (e !== d && null !== e) for (var f in e) e.hasOwnProperty(f) && (b[f] = e[f]) } return b } : Object.assign; var sa = h(function (a, b, c) { for (var e = Object.keys(b), f = 0; f < e.length;)(!c || c && a[e[f]] === d) && (a[e[f]] = b[e[f]]), f++; return a }, "extend", "Use `assign`."), ta = h(function (a, b) { return sa(a, b, !0) }, "merge", "Use `assign`."), ua = 1, va = /mobile|tablet|ip(ad|hone|od)|android/i, wa = "ontouchstart" in a, xa = u(a, "PointerEvent") !== d, ya = wa && va.test(navigator.userAgent), za = "touch", Aa = "pen", Ba = "mouse", Ca = "kinect", Da = 25, Ea = 1, Fa = 2, Ga = 4, Ha = 8, Ia = 1, Ja = 2, Ka = 4, La = 8, Ma = 16, Na = Ja | Ka, Oa = La | Ma, Pa = Na | Oa, Qa = ["x", "y"], Ra = ["clientX", "clientY"]; x.prototype = { handler: function () { }, init: function () { this.evEl && m(this.element, this.evEl, this.domHandler), this.evTarget && m(this.target, this.evTarget, this.domHandler), this.evWin && m(w(this.element), this.evWin, this.domHandler) }, destroy: function () { this.evEl && n(this.element, this.evEl, this.domHandler), this.evTarget && n(this.target, this.evTarget, this.domHandler), this.evWin && n(w(this.element), this.evWin, this.domHandler) } }; var Sa = { mousedown: Ea, mousemove: Fa, mouseup: Ga }, Ta = "mousedown", Ua = "mousemove mouseup"; i(L, x, { handler: function (a) { var b = Sa[a.type]; b & Ea && 0 === a.button && (this.pressed = !0), b & Fa && 1 !== a.which && (b = Ga), this.pressed && (b & Ga && (this.pressed = !1), this.callback(this.manager, b, { pointers: [a], changedPointers: [a], pointerType: Ba, srcEvent: a })) } }); var Va = { pointerdown: Ea, pointermove: Fa, pointerup: Ga, pointercancel: Ha, pointerout: Ha }, Wa = { 2: za, 3: Aa, 4: Ba, 5: Ca }, Xa = "pointerdown", Ya = "pointermove pointerup pointercancel"; a.MSPointerEvent && !a.PointerEvent && (Xa = "MSPointerDown", Ya = "MSPointerMove MSPointerUp MSPointerCancel"), i(M, x, { handler: function (a) { var b = this.store, c = !1, d = a.type.toLowerCase().replace("ms", ""), e = Va[d], f = Wa[a.pointerType] || a.pointerType, g = f == za, h = r(b, a.pointerId, "pointerId"); e & Ea && (0 === a.button || g) ? 0 > h && (b.push(a), h = b.length - 1) : e & (Ga | Ha) && (c = !0), 0 > h || (b[h] = a, this.callback(this.manager, e, { pointers: b, changedPointers: [a], pointerType: f, srcEvent: a }), c && b.splice(h, 1)) } }); var Za = { touchstart: Ea, touchmove: Fa, touchend: Ga, touchcancel: Ha }, $a = "touchstart", _a = "touchstart touchmove touchend touchcancel"; i(N, x, { handler: function (a) { var b = Za[a.type]; if (b === Ea && (this.started = !0), this.started) { var c = O.call(this, a, b); b & (Ga | Ha) && c[0].length - c[1].length === 0 && (this.started = !1), this.callback(this.manager, b, { pointers: c[0], changedPointers: c[1], pointerType: za, srcEvent: a }) } } }); var ab = { touchstart: Ea, touchmove: Fa, touchend: Ga, touchcancel: Ha }, bb = "touchstart touchmove touchend touchcancel"; i(P, x, { handler: function (a) { var b = ab[a.type], c = Q.call(this, a, b); c && this.callback(this.manager, b, { pointers: c[0], changedPointers: c[1], pointerType: za, srcEvent: a }) } }); var cb = 2500, db = 25; i(R, x, { handler: function (a, b, c) { var d = c.pointerType == za, e = c.pointerType == Ba; if (!(e && c.sourceCapabilities && c.sourceCapabilities.firesTouchEvents)) { if (d) S.call(this, b, c); else if (e && U.call(this, c)) return; this.callback(a, b, c) } }, destroy: function () { this.touch.destroy(), this.mouse.destroy() } }); var eb = u(na.style, "touchAction"), fb = eb !== d, gb = "compute", hb = "auto", ib = "manipulation", jb = "none", kb = "pan-x", lb = "pan-y", mb = X(); V.prototype = { set: function (a) { a == gb && (a = this.compute()), fb && this.manager.element.style && mb[a] && (this.manager.element.style[eb] = a), this.actions = a.toLowerCase().trim() }, update: function () { this.set(this.manager.options.touchAction) }, compute: function () { var a = []; return g(this.manager.recognizers, function (b) { k(b.options.enable, [b]) && (a = a.concat(b.getTouchAction())) }), W(a.join(" ")) }, preventDefaults: function (a) { var b = a.srcEvent, c = a.offsetDirection; if (this.manager.session.prevented) return void b.preventDefault(); var d = this.actions, e = p(d, jb) && !mb[jb], f = p(d, lb) && !mb[lb], g = p(d, kb) && !mb[kb]; if (e) { var h = 1 === a.pointers.length, i = a.distance < 2, j = a.deltaTime < 250; if (h && i && j) return } return g && f ? void 0 : e || f && c & Na || g && c & Oa ? this.preventSrc(b) : void 0 }, preventSrc: function (a) { this.manager.session.prevented = !0, a.preventDefault() } }; var nb = 1, ob = 2, pb = 4, qb = 8, rb = qb, sb = 16, tb = 32; Y.prototype = { defaults: {}, set: function (a) { return la(this.options, a), this.manager && this.manager.touchAction.update(), this }, recognizeWith: function (a) { if (f(a, "recognizeWith", this)) return this; var b = this.simultaneous; return a = _(a, this), b[a.id] || (b[a.id] = a, a.recognizeWith(this)), this }, dropRecognizeWith: function (a) { return f(a, "dropRecognizeWith", this) ? this : (a = _(a, this), delete this.simultaneous[a.id], this) }, requireFailure: function (a) { if (f(a, "requireFailure", this)) return this; var b = this.requireFail; return a = _(a, this), -1 === r(b, a) && (b.push(a), a.requireFailure(this)), this }, dropRequireFailure: function (a) { if (f(a, "dropRequireFailure", this)) return this; a = _(a, this); var b = r(this.requireFail, a); return b > -1 && this.requireFail.splice(b, 1), this }, hasRequireFailures: function () { return this.requireFail.length > 0 }, canRecognizeWith: function (a) { return !!this.simultaneous[a.id] }, emit: function (a) { function b(b) { c.manager.emit(b, a) } var c = this, d = this.state; qb > d && b(c.options.event + Z(d)), b(c.options.event), a.additionalEvent && b(a.additionalEvent), d >= qb && b(c.options.event + Z(d)) }, tryEmit: function (a) { return this.canEmit() ? this.emit(a) : void (this.state = tb) }, canEmit: function () { for (var a = 0; a < this.requireFail.length;) { if (!(this.requireFail[a].state & (tb | nb))) return !1; a++ } return !0 }, recognize: function (a) { var b = la({}, a); return k(this.options.enable, [this, b]) ? (this.state & (rb | sb | tb) && (this.state = nb), this.state = this.process(b), void (this.state & (ob | pb | qb | sb) && this.tryEmit(b))) : (this.reset(), void (this.state = tb)) }, process: function (a) { }, getTouchAction: function () { }, reset: function () { } }, i(aa, Y, { defaults: { pointers: 1 }, attrTest: function (a) { var b = this.options.pointers; return 0 === b || a.pointers.length === b }, process: function (a) { var b = this.state, c = a.eventType, d = b & (ob | pb), e = this.attrTest(a); return d && (c & Ha || !e) ? b | sb : d || e ? c & Ga ? b | qb : b & ob ? b | pb : ob : tb } }), i(ba, aa, { defaults: { event: "pan", threshold: 10, pointers: 1, direction: Pa }, getTouchAction: function () { var a = this.options.direction, b = []; return a & Na && b.push(lb), a & Oa && b.push(kb), b }, directionTest: function (a) { var b = this.options, c = !0, d = a.distance, e = a.direction, f = a.deltaX, g = a.deltaY; return e & b.direction || (b.direction & Na ? (e = 0 === f ? Ia : 0 > f ? Ja : Ka, c = f != this.pX, d = Math.abs(a.deltaX)) : (e = 0 === g ? Ia : 0 > g ? La : Ma, c = g != this.pY, d = Math.abs(a.deltaY))), a.direction = e, c && d > b.threshold && e & b.direction }, attrTest: function (a) { return aa.prototype.attrTest.call(this, a) && (this.state & ob || !(this.state & ob) && this.directionTest(a)) }, emit: function (a) { this.pX = a.deltaX, this.pY = a.deltaY; var b = $(a.direction); b && (a.additionalEvent = this.options.event + b), this._super.emit.call(this, a) } }), i(ca, aa, { defaults: { event: "pinch", threshold: 0, pointers: 2 }, getTouchAction: function () { return [jb] }, attrTest: function (a) { return this._super.attrTest.call(this, a) && (Math.abs(a.scale - 1) > this.options.threshold || this.state & ob) }, emit: function (a) { if (1 !== a.scale) { var b = a.scale < 1 ? "in" : "out"; a.additionalEvent = this.options.event + b } this._super.emit.call(this, a) } }), i(da, Y, { defaults: { event: "press", pointers: 1, time: 251, threshold: 9 }, getTouchAction: function () { return [hb] }, process: function (a) { var b = this.options, c = a.pointers.length === b.pointers, d = a.distance < b.threshold, f = a.deltaTime > b.time; if (this._input = a, !d || !c || a.eventType & (Ga | Ha) && !f) this.reset(); else if (a.eventType & Ea) this.reset(), this._timer = e(function () { this.state = rb, this.tryEmit() }, b.time, this); else if (a.eventType & Ga) return rb; return tb }, reset: function () { clearTimeout(this._timer) }, emit: function (a) { this.state === rb && (a && a.eventType & Ga ? this.manager.emit(this.options.event + "up", a) : (this._input.timeStamp = ra(), this.manager.emit(this.options.event, this._input))) } }), i(ea, aa, { defaults: { event: "rotate", threshold: 0, pointers: 2 }, getTouchAction: function () { return [jb] }, attrTest: function (a) { return this._super.attrTest.call(this, a) && (Math.abs(a.rotation) > this.options.threshold || this.state & ob) } }), i(fa, aa, { defaults: { event: "swipe", threshold: 10, velocity: .3, direction: Na | Oa, pointers: 1 }, getTouchAction: function () { return ba.prototype.getTouchAction.call(this) }, attrTest: function (a) { var b, c = this.options.direction; return c & (Na | Oa) ? b = a.overallVelocity : c & Na ? b = a.overallVelocityX : c & Oa && (b = a.overallVelocityY), this._super.attrTest.call(this, a) && c & a.offsetDirection && a.distance > this.options.threshold && a.maxPointers == this.options.pointers && qa(b) > this.options.velocity && a.eventType & Ga }, emit: function (a) { var b = $(a.offsetDirection); b && this.manager.emit(this.options.event + b, a), this.manager.emit(this.options.event, a) } }), i(ga, Y, { defaults: { event: "tap", pointers: 1, taps: 1, interval: 300, time: 250, threshold: 9, posThreshold: 10 }, getTouchAction: function () { return [ib] }, process: function (a) { var b = this.options, c = a.pointers.length === b.pointers, d = a.distance < b.threshold, f = a.deltaTime < b.time; if (this.reset(), a.eventType & Ea && 0 === this.count) return this.failTimeout(); if (d && f && c) { if (a.eventType != Ga) return this.failTimeout(); var g = this.pTime ? a.timeStamp - this.pTime < b.interval : !0, h = !this.pCenter || H(this.pCenter, a.center) < b.posThreshold; this.pTime = a.timeStamp, this.pCenter = a.center, h && g ? this.count += 1 : this.count = 1, this._input = a; var i = this.count % b.taps; if (0 === i) return this.hasRequireFailures() ? (this._timer = e(function () { this.state = rb, this.tryEmit() }, b.interval, this), ob) : rb } return tb }, failTimeout: function () { return this._timer = e(function () { this.state = tb }, this.options.interval, this), tb }, reset: function () { clearTimeout(this._timer) }, emit: function () { this.state == rb && (this._input.tapCount = this.count, this.manager.emit(this.options.event, this._input)) } }), ha.VERSION = "2.0.8", ha.defaults = { domEvents: !1, touchAction: gb, enable: !0, inputTarget: null, inputClass: null, preset: [[ea, { enable: !1 }], [ca, { enable: !1 }, ["rotate"]], [fa, { direction: Na }], [ba, { direction: Na }, ["swipe"]], [ga], [ga, { event: "doubletap", taps: 2 }, ["tap"]], [da]], cssProps: { userSelect: "none", touchSelect: "none", touchCallout: "none", contentZooming: "none", userDrag: "none", tapHighlightColor: "rgba(0,0,0,0)" } }; var ub = 1, vb = 2; ia.prototype = { set: function (a) { return la(this.options, a), a.touchAction && this.touchAction.update(), a.inputTarget && (this.input.destroy(), this.input.target = a.inputTarget, this.input.init()), this }, stop: function (a) { this.session.stopped = a ? vb : ub }, recognize: function (a) { var b = this.session; if (!b.stopped) { this.touchAction.preventDefaults(a); var c, d = this.recognizers, e = b.curRecognizer; (!e || e && e.state & rb) && (e = b.curRecognizer = null); for (var f = 0; f < d.length;)c = d[f], b.stopped === vb || e && c != e && !c.canRecognizeWith(e) ? c.reset() : c.recognize(a), !e && c.state & (ob | pb | qb) && (e = b.curRecognizer = c), f++ } }, get: function (a) { if (a instanceof Y) return a; for (var b = this.recognizers, c = 0; c < b.length; c++)if (b[c].options.event == a) return b[c]; return null }, add: function (a) { if (f(a, "add", this)) return this; var b = this.get(a.options.event); return b && this.remove(b), this.recognizers.push(a), a.manager = this, this.touchAction.update(), a }, remove: function (a) { if (f(a, "remove", this)) return this; if (a = this.get(a)) { var b = this.recognizers, c = r(b, a); -1 !== c && (b.splice(c, 1), this.touchAction.update()) } return this }, on: function (a, b) { if (a !== d && b !== d) { var c = this.handlers; return g(q(a), function (a) { c[a] = c[a] || [], c[a].push(b) }), this } }, off: function (a, b) { if (a !== d) { var c = this.handlers; return g(q(a), function (a) { b ? c[a] && c[a].splice(r(c[a], b), 1) : delete c[a] }), this } }, emit: function (a, b) { this.options.domEvents && ka(a, b); var c = this.handlers[a] && this.handlers[a].slice(); if (c && c.length) { b.type = a, b.preventDefault = function () { b.srcEvent.preventDefault() }; for (var d = 0; d < c.length;)c[d](b), d++ } }, destroy: function () { this.element && ja(this, !1), this.handlers = {}, this.session = {}, this.input.destroy(), this.element = null } }, la(ha, { INPUT_START: Ea, INPUT_MOVE: Fa, INPUT_END: Ga, INPUT_CANCEL: Ha, STATE_POSSIBLE: nb, STATE_BEGAN: ob, STATE_CHANGED: pb, STATE_ENDED: qb, STATE_RECOGNIZED: rb, STATE_CANCELLED: sb, STATE_FAILED: tb, DIRECTION_NONE: Ia, DIRECTION_LEFT: Ja, DIRECTION_RIGHT: Ka, DIRECTION_UP: La, DIRECTION_DOWN: Ma, DIRECTION_HORIZONTAL: Na, DIRECTION_VERTICAL: Oa, DIRECTION_ALL: Pa, Manager: ia, Input: x, TouchAction: V, TouchInput: P, MouseInput: L, PointerEventInput: M, TouchMouseInput: R, SingleTouchInput: N, Recognizer: Y, AttrRecognizer: aa, Tap: ga, Pan: ba, Swipe: fa, Pinch: ca, Rotate: ea, Press: da, on: m, off: n, each: g, merge: ta, extend: sa, assign: la, inherit: i, bindFn: j, prefixed: u }); var wb = "undefined" != typeof a ? a : "undefined" != typeof self ? self : {}; wb.Hammer = ha, "function" == typeof define && define.amd ? define(function () { return ha }) : "undefined" != typeof module && module.exports ? module.exports = ha : a[c] = ha }(window, document, "Hammer"); + //# sourceMappingURL=hammer.min.js.map + + diff --git a/Cards/Fallacies/Mindmaps/included.html.bak b/Cards/Fallacies/Mindmaps/included.html.bak deleted file mode 100644 index bb8ca683..00000000 --- a/Cards/Fallacies/Mindmaps/included.html.bak +++ /dev/null @@ -1,596 +0,0 @@ - - - - - - Taxonomy Mind Map - - - -
- [SVGCONTENT] -
- - - - -
Argumentum_Fallacies_1.1.1..Justification triviale
- -
-
-
-
Insuffisance
-
- Argument bâclé | Justification triviale -
-
-
-
- Lien externe -
-
Justification triviale
-
-
-
-
Vous attribuez à une habitude, une impression ou un exemple la valeur d'une preuve.
-
J'ai entendu dire que cette personne était sexiste ; il m'est donc impossible d'être en accord avec elle sur quoi que ce soit.
-
-
- -
-
-
-
- - - - diff --git a/Generation/Converters/Argumentum.AssetConverter/AssetConverterConfig.cs b/Generation/Converters/Argumentum.AssetConverter/AssetConverterConfig.cs index 80d7e51c..2cb00878 100644 --- a/Generation/Converters/Argumentum.AssetConverter/AssetConverterConfig.cs +++ b/Generation/Converters/Argumentum.AssetConverter/AssetConverterConfig.cs @@ -27,7 +27,7 @@ public class AssetConverterConfig public bool SkipConfigFile { get; set; } = false; - public ConverterMode Mode { get; set; } = ConverterMode.DatasetUpdater; // | ConverterMode.Mindmapper | ConverterMode.OwlGenerator | ConverterMode.WebBasedImageGeneration; + public ConverterMode Mode { get; set; } = ConverterMode.Mindmapper | ConverterMode.OwlGenerator; // | ConverterMode.Mindmapper | ConverterMode.OwlGenerator | ConverterMode.WebBasedImageGeneration; // ConverterMode.DatasetUpdater; public bool ForceDebugParams { get; set; }