From c7c7cea39e29c300b9d9fa5ed320e6846d669570 Mon Sep 17 00:00:00 2001 From: Luca Trupiano <luca.trupiano@isti.cnr.it> Date: Fri, 14 Apr 2023 19:05:05 +0200 Subject: [PATCH] Aggiunti tab nell'area visualizza, modifiche grafiche alla ricerca --- css/custom1_4.3.css | 441 ++++++++++ css/custom2_4.3.css | 443 ++++++++++ index_4.3.html | 1928 +++++++++++++++++++++++++++++++++++++++++++ js/minimap_4.3.js | 165 ++++ js/script_4.3.js | 1428 ++++++++++++++++++++++++++++++++ 5 files changed, 4405 insertions(+) create mode 100644 css/custom1_4.3.css create mode 100644 css/custom2_4.3.css create mode 100644 index_4.3.html create mode 100644 js/minimap_4.3.js create mode 100644 js/script_4.3.js diff --git a/css/custom1_4.3.css b/css/custom1_4.3.css new file mode 100644 index 0000000..5b9cd2d --- /dev/null +++ b/css/custom1_4.3.css @@ -0,0 +1,441 @@ +@charset "UTF-8"; +/* custom.css */ + + +@font-face { + font-family: Humanist-777; + src: url(../fonts/Humanist-777-Font.otf); +} + +@font-face { + font-family: Bracciolini; + src: url(../fonts/LDR_Bracciolini.otf); +} + +html, body { + height: 100%; + font-family: 'Humanist-777', 'Roboto'; +} + +.tableMain { + height: 95%; + min-height: 600px; +} + +.distanziatore { + height: 63px; + overflow:hidden; +} + +.menuNavigazione { + width: 15%; +} + +#colVisualizza { + max-height: 95%; + min-height: 600px; +} + +.tableVis { + border-left-width: 2px !important; + border-bottom-width: 2px !important; +} + +#colMinimap { + padding-top: 63px; + min-height: 600px; + min-width: 111px !important; + width: 111px !important; + border-right-width: 2px !important; + border-bottom-width: 2px !important; +} + +.menuRicerca { + width: 30%; + min-width: 370px !important; +} + +#displaycantoWrapper { + display: d-flex; + overflow-y: scroll; + box-sizing: border-box; width: calc(100% + 17px); +} + +.visInfo2 { + padding-top: 4px; +} + +#displayinfo, #displaynote { + overflow: auto !important; +} + +.doubleborder { + z-index: 90; + border-bottom-width: 8px !important; + border-bottom-style: double !important; +} + +.badge-outline-info { + padding: .1rem .15rem; + margin-left: .15rem; + margin-right: .2rem; + font-weight: 300; + vertical-align: super; + border: 1px solid; +} + +.borderRadiusZero { + border-radius: 0 !important; +} + +.leftBorderRadiusZero { + border-top-left-radius: 0 !important; + border-bottom-left-radius: 0 !important; +} + + +.page-link { + position: relative; + display: block; + padding: 0.5rem 0.75rem; + margin-left: -1px; + line-height: 1.25; + color: #5f8ec2; + background-color: #fff; + border: 1px solid #dee2e6; +} + +.lista-risultati:hover, .citazioneFrase:hover { + cursor: pointer; +} + +.navig-canto .sel-canto { + line-height: 1.2em; +} + +.navig-canto:hover { + font-weight: 800; + cursor: pointer; +} + +.ui-icon.inline { + display:inline-block; +} + +.ui-state-disabled-opacity-1 { + opacity: 1 !important; +} + +.ui-state-disabled-opacity-06 { + opacity: 0.6 !important; +} + +.ui-selectable { + list-style-type: none; + margin: 0; + padding: 0; +} + +#queryText { + width: 150px; + border-width: 2px !important; +} + + +/* +Minimap +*/ + +.minimap__container { + /*position: fixed;*/ + /*top: 160px;*/ + /*left: 600px;*/ + min-width: 20px; + z-index: 100; +} + +.minimap__size { + position: relative; + z-index: 5; +} + +.minimap__viewer { + width: 70px; + position:absolute; + top: 2px; + left: 1px; + transform-origin: 0 0; + z-index: 100; + border: 2px solid; +} + +.minimap__content { + position:absolute; + top: 63; + left: 0; + width:100%; + height: 100%; + z-index: 10; + transform-origin: 0 0; + margin: 4px 0px 0px 4px; + border-style: none; +} + +.filler { + width: 100%; + position: relative; +} + +.filler img { + position: absolute; top: 0; left: 0; + width: 100%; + height: 100%; +} + + +/* +Ex browsingldc.css +*/ + +.blog-main{ + font-size: 18px; + font-family: "Bracciolini", "Spectral", -apple-system, BlinkMacSystemFont, “Helvetica Neue”, + “Segoe UI”, “Roboto”, “Oxygen”, “Ubuntu”, “Cantarell”, “Fira Sans”, “Droid Sans”, sans-serif; +} + +.synt__info{ + font-size: 12px; + font-weight: normal; + font-style: italic; + font-family: Palatino; + letter-spacing:0.5px; +} +.synt__categ{ + font-size: 10px; + font-weight: normal; + font-family: Palatino; + letter-spacing:0.5px; + } +.numverso { + font-size: 12px; + font-family: 'Humanist-777', 'Roboto'; +} + +.espandiFrase:not(.disabled), .riduciFrase:not(.disabled) { + font-size: 10px; + font-family: 'Humanist-777', 'Roboto'; + border: 2px solid; + cursor: pointer; +} + +.espandiFrase.disabled, .riduciFrase.disabled { + font-size: 10px; + font-family: 'Humanist-777', 'Roboto'; + cursor: default; +} + +.citazioneFrase { + font-style: italic; + font-family: "Bracciolini", "Spectral", -apple-system, BlinkMacSystemFont, “Helvetica Neue”, + “Segoe UI”, “Roboto”, “Oxygen”, “Ubuntu”, “Cantarell”, “Fira Sans”, “Droid Sans”, sans-serif; + line-height: 0.5em; + font-size: 16px; +} + +.btn-outline-secondary.focus, .btn-outline-secondary:focus { + outline: none !important; + box-shadow: none; +} + + +/* on mouseOver classes */ + +.Nik_dropdown { + position: relative; + display: inline-block; +} + + +.Nik_dropdown-content { + max-width: 170px; + min-width: 70px; + padding: 0px 0px; + font-size: 12px; + z-index: 100; +} + +.Nik_dropdown:hover .Nik_dropdown-content { + display: block; +} + +cite.elencoris { + line-height: 2.5; +} + +.canto { + -webkit-user-select: none; + user-select: none; +} + +.itemelenco { + -webkit-user-select: none; + user-select: none; +} + +.ttContent { + padding: 5px 5px 0px 5px; +} + +li::marker { + font-size: 12px; + font-family: 'Humanist-777', 'Roboto'; + white-space: nowrap; + } + +/* ------- customize colors -------- */ + +/* LINK utili: + https://lingtalfi.com/bootstrap4-color-generator + https://colordesigner.io/gradient-generator/?mode=lch#fafa6e-2A4858 + https://colordesigner.io/#004056-2C858D-74CEB7-C9FFD5-FFFFCB + https://colordesigner.io/#fab37f-f1924e-4abd8c-00968e-106e7c + https://bootstrap.build/app +*/ +/* +- lida1: + + $primary rgb(95, 142, 194) #5f8ec2 + $secondary $gray-600 #6c757d + $success rgb(117, 159, 154) #759F9A + $info #935fc2 + $warning rgb(229, 194, 105) #E5C269 #eace87 + $danger #9f757a + + $text-muted $gray-700 #495057 +------------------------------------*/ + + +/* ------- #cbcbc0, #e7d4bf , #d9c8ca -------- */ +.navbar { + background-image: linear-gradient(to right, #e7d4bf , #d9c8ca); + border-bottom-width: 2px !important; + border-bottom-color: #cbcbc0 !important; +} + +.doubleborder { + border-bottom-color: #cbcbc0 !important; +} + + +/* ------- $primary #5f8ec2 -------- */ + +.badge-outline-info { + color: #5f8ec2; + border-color: #5f8ec2; +} +.navig-canto:hover, .citazioneFrase:hover { + color: #5f8ec2 !important; +} + +.minimap__viewer { + border-color: rgba(203, 203, 192, 1); + background-color: rgba(203, 203, 192, 0.5); +} + +/* ------- $success rgb(117, 159, 154) / #759F9A , #DEE2E6 -------- */ + +.custom-control-input:active~.custom-control-label::before { + background-color: rgba(117, 159, 154, 0.5) !important; + border-color: rgba(117, 159, 154, 0.5) !important; +} +.custom-control-input:focus:not(:checked)~.custom-control-label::before { + border-color: rgb(117, 159, 154) !important; +} +.custom-control-input:checked~.custom-control-label::before { + border-color: rgb(117, 159, 154) !important; + background-color: rgb(117, 159, 154) !important; +} +.ui-selectable .ui-selecting { + background: #759F9A; +} +.ui-selectable .ui-selected { + background: #DEE2E6; + color: #759F9A !important; +} + + +/* ------- $warning #eace87 -------- */ + +.mark { + background-color: #eace87 !important; +} + + +/* ------- #985949 -------- */ + +#displaycanto span:hover { + color: #985949; +} +.ttContent { + color: #985949; +} + + +/* ------- #5b352c -------- */ + +.citazioneFrase { + color: #5b352c; +} + + +/* ------- #1E90FF -------- */ + +.Nik_dropdown-content { + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + color: #1E90FF; +} + + +/* ricerca avanzata */ + +.bg-lida10 { + background-color: #c8d9d7 !important; +} + +/* clausola */ +.bg-lida11 { + background-color: #e3eceb !important; +} + +/* AND */ +.bg-lida12 { + background-color: #faf3e1 !important; +} + +/* OR */ +.bg-lida13 { + background-color: #ece3e4 !important; +} + + +/* visualizza e minimap */ +.bg-lida-vis, #displayminimap, .claCollBtn { + background-color: #fefeff! important; +} + +/* body */ +.body-vis { + background-color: #fcfaf7! important; + padding-top: 0px; +} + +.custom-select-sm.bg-light:hover, .custom-select-sm.bg-lida12:hover, .custom-select-sm.bg-lida13:hover { + background-color: #dae0e5!important; + cursor: pointer; +} + +.ui-icon-arrowthick-2-n-s:hover { + cursor: move; +} + + diff --git a/css/custom2_4.3.css b/css/custom2_4.3.css new file mode 100644 index 0000000..2c50b32 --- /dev/null +++ b/css/custom2_4.3.css @@ -0,0 +1,443 @@ +@charset "UTF-8"; +/* custom.css */ + + +@font-face { + font-family: Humanist-777; + src: url(../fonts/Humanist-777-Font.otf); +} + +@font-face { + font-family: Bracciolini; + src: url(../fonts/LDR_Bracciolini.otf); +} + +html, body { + height: 100%; + font-family: 'Humanist-777', 'Roboto'; +} + +.tableMain { + height: 95%; + min-height: 600px; +} + +.distanziatore { + height: 63px; + overflow:hidden; +} + +.menuNavigazione { + width: 15%; +} + +#colVisualizza { + max-height: 95%; + min-height: 600px; +} + +.tableVis { + border-left-width: 2px !important; + border-bottom-width: 2px !important; +} + +#colMinimap { + padding-top: 63px; + min-height: 600px; + min-width: 110px !important; + width: 110px !important; + border-right-width: 2px !important; + border-bottom-width: 2px !important; +} + +.menuRicerca { + width: 30%; + min-width: 370px !important; +} + +#displaycantoWrapper { + display: d-flex; + overflow-y: scroll; + box-sizing: border-box; width: calc(100% + 17px); +} + +.visInfo2 { + padding-top: 4px; +} + +#displayinfo, #displaynote { + overflow: auto !important; +} + +.doubleborder { + z-index: 90; + border-bottom-width: 8px !important; + border-bottom-style: double !important; +} + +.badge-outline-info { + padding: .1rem .15rem; + margin-left: .15rem; + margin-right: .2rem; + font-weight: 300; + vertical-align: super; + border: 1px solid; +} + +.borderRadiusZero { + border-radius: 0 !important; +} + +.leftBorderRadiusZero { + border-top-left-radius: 0 !important; + border-bottom-left-radius: 0 !important; +} + +.lista-risultati:hover, .citazioneFrase:hover { + cursor: pointer; +} + +.navig-canto .sel-canto { + line-height: 1.2em; +} + +.navig-canto:hover { + font-weight: 800; + cursor: pointer; +} + +.ui-icon.inline { + display:inline-block; +} + +.ui-state-disabled-opacity-1 { + opacity: 1 !important; +} + +.ui-state-disabled-opacity-06 { + opacity: 0.6 !important; +} + +.ui-selectable { + list-style-type: none; + margin: 0; + padding: 0; +} + +#queryText { + width: 150px; + border-width: 2px !important; +} + + +/* +Minimap +*/ + +.minimap__container { + /*position: fixed;*/ + /*top: 160px;*/ + /*left: 600px;*/ + min-width: 20px; + z-index: 100; +} + +.minimap__size { + position: relative; + z-index: 5; +} + +.minimap__viewer { + width: 70px; + position:absolute; + top: 2px; + left: 1px; + transform-origin: 0 0; + z-index: 100; + border: 2px solid; +} + +.minimap__content { + position:absolute; + top: 63; + left: 0; + width:100%; + height: 100%; + z-index: 10; + transform-origin: 0 0; + margin: 4px 0px 0px 4px; + border-style: none; +} + +.filler { + width: 100%; + position: relative; +} + +.filler img { + position: absolute; top: 0; left: 0; + width: 100%; + height: 100%; +} + + +/* +Ex browsingldc.css +*/ + +.blog-main{ + font-size: 18px; + font-family: Book Antiqua,Palatino,Palatino Linotype,Palatino LT STD,Georgia,serif; +} + +.synt__info{ + font-size: 12px; + font-weight: normal; + font-style: italic; + font-family: Palatino; + letter-spacing:0.5px; +} +.synt__categ{ + font-size: 10px; + font-weight: normal; + font-family: Palatino; + letter-spacing:0.5px; + } +.numverso { + font-size: 12px; + font-family: 'Humanist-777', 'Roboto'; +} + +.espandiFrase:not(.disabled), .riduciFrase:not(.disabled) { + font-size: 10px; + font-family: 'Humanist-777', 'Roboto'; + border: 2px solid; + cursor: pointer; +} + +.espandiFrase.disabled, .riduciFrase.disabled { + font-size: 10px; + font-family: 'Humanist-777', 'Roboto'; + cursor: default; +} + +.citazioneFrase { + font-style: italic; + font-family: Book Antiqua,Palatino,Palatino Linotype,Palatino LT STD,Georgia,serif; + line-height: 0.5em; + font-size: 16px; +} + +.btn-outline-secondary.focus, .btn-outline-secondary:focus { + outline: none !important; + box-shadow: none; +} + + +/* on mouseOver classes */ + +.Nik_dropdown { + position: relative; + display: inline-block; +} + + +.Nik_dropdown-content { + max-width: 170px; + min-width: 70px; + padding: 0px 0px; + font-size: 12px; + z-index: 100; +} + +.Nik_dropdown:hover .Nik_dropdown-content { + display: block; +} + +cite.elencoris { + line-height: 2.5; +} + +.canto { + -webkit-user-select: none; + user-select: none; +} + +.itemelenco { + -webkit-user-select: none; + user-select: none; +} + +.ttContent { + padding: 5px 5px 0px 5px; +} + +li::marker { + font-size: 12px; + font-family: 'Humanist-777', 'Roboto'; + white-space: nowrap; + } + +/* ------- customize colors -------- */ + +/* LINK utili: + https://lingtalfi.com/bootstrap4-color-generator + https://colordesigner.io/gradient-generator/?mode=lch#fafa6e-2A4858 + https://colordesigner.io/#004056-2C858D-74CEB7-C9FFD5-FFFFCB + https://colordesigner.io/#fab37f-f1924e-4abd8c-00968e-106e7c + https://bootstrap.build/app +*/ +/* +- lida1: + + $primary rgb(95, 142, 194) #5f8ec2 + $secondary $gray-600 #6c757d + $success rgb(117, 159, 154) #759F9A + $info #935fc2 + $warning rgb(229, 194, 105) #E5C269 #eace87 + $danger #9f757a + + $text-muted $gray-700 #495057 + +- lida2: + $primary #734450 + $secondary $gray-600 #b8a387 - + $success rgb(65, 93, 67) #054a29 #415d43 + $info #55327d + $warning #325a7d + $danger #7d325a + + $text-muted $gray-700 +------------------------------------*/ + + +/* ------- #cbcbc0 -------- */ +.navbar { + /* background-image: linear-gradient(to right, #e7d4bf , #d9c8ca); */ + border-bottom-width: 2px !important; + border-bottom-color: #cbcbc0 !important; +} + +.doubleborder { + border-bottom-color: #cbcbc0 !important; +} + + +/* ------- $primary #734450 -------- */ + +.badge-outline-info { + color: #734450; + border-color: #734450; +} +.navig-canto:hover, .citazioneFrase:hover { + color: #734450 !important; +} + +.minimap__viewer { +/* border-color: #734450; */ + border-color: rgba(222, 226, 230, 1); + background-color: rgba(222, 226, 230, 0.5); +} + +/* ------- $success rgb(65, 93, 67) / #415d43 , #DEE2E6 -------- */ + +.custom-control-input:active~.custom-control-label::before { + background-color: rgba(65, 93, 67, 0.5) !important; + border-color: rgba(65, 93, 67, 0.5) !important; +} +.custom-control-input:focus:not(:checked)~.custom-control-label::before { + border-color: rgb(65, 93, 67) !important; +} +.custom-control-input:checked~.custom-control-label::before { + border-color: rgb(65, 93, 67) !important; + background-color: rgb(65, 93, 67) !important; +} +.ui-selectable .ui-selecting { + background: #054a29; +} +.ui-selectable .ui-selected { + background: #DEE2E6; + color: #054a29 !important; +} + + +/* ------- #eace87 -------- */ + +.mark { + background-color: #a996a0 !important; +} + + +/* ------- $danger #7d325a -------- */ + +#displaycanto span:hover { + color: #7d325a; +} +.ttContent { + color: #7d325a; +} + + +/* ------- #c6b59f -------- */ + +.citazioneFrase { + color: #c6b59f; +} + + +/* ------- #1E90FF -------- */ + +.Nik_dropdown-content { + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + color: #1E90FF; +} + + +/* ricerca avanzata */ + +.bg-lida10 { + background-color: #8dac91 !important; +} + +/* clausola */ +.bg-lida11 { + background-color: #c6d5c8 !important; +} + +/* AND */ +.bg-lida12 { + background-color: #c8c6d5 !important; +} + +/* OR */ +.bg-lida13 { + background-color: #d5c8c6 !important; +} + + +/* visualizza e minimap */ +.bg-lida-vis, #displayminimap, .claCollBtn { + background-color: #f8f9fa! important; +} + +/* body */ +.body-vis { + background-color: #f1ede7! important; + padding-top: 0px; +} + +.claLI { + border-color: #cbcbc0 !important; +} + +.custom-select-sm.bg-light:hover, .custom-select-sm.bg-lida12:hover, .custom-select-sm.bg-lida13:hover { + background-color: #dae0e5!important; + cursor: pointer; +} + +.ui-icon-arrowthick-2-n-s:hover { + cursor: move; +} + + + diff --git a/index_4.3.html b/index_4.3.html new file mode 100644 index 0000000..cce1d45 --- /dev/null +++ b/index_4.3.html @@ -0,0 +1,1928 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="UTF-8"> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<title>LiDa Dashboard</title> +<base target="_self"> + +<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/gitbrent/bootstrap4-toggle@3.6.1/css/bootstrap4-toggle.min.css"> +<link rel="stylesheet" href="https://code.jquery.com/ui/1.13.1/themes/base/jquery-ui.css"> +<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Spectral"> +<!-- + --> +<link rel="stylesheet" id="style1-Boot" href="./css/bootstrap.min.lida1.css"> +<link rel="stylesheet" id="style1-Custom" href="./css/custom1_4.3.css"> +<link rel="stylesheet" id="style2-Boot" href="./css/bootstrap.min.lida2.css" disabled> +<link rel="stylesheet" id="style2-Custom" href="./css/custom2_4.3.css" disabled> + +<script src="https://code.jquery.com/jquery-3.6.0.js"></script> +<script + src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js" + integrity="sha384-fQybjgWLrvvRgtW6bFlB7jaZrFsaBXjsOMm/tB9LTS58ONXgqbR9W8oWht/amnpF" + crossorigin="anonymous"></script> +<script src="https://code.jquery.com/ui/1.13.1/jquery-ui.js" defer></script> +<script + src="https://cdn.jsdelivr.net/gh/gitbrent/bootstrap4-toggle@3.6.1/js/bootstrap4-toggle.min.js"></script> +<script + src="https://rdf.js.org/comunica-browser/versions/latest/engines/query-sparql/comunica-browser.js"></script> +<script type="text/javascript" src="https://bundle.run/sparqljs@3.4.1"></script> +<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/js-cookie@3.0.1/dist/js.cookie.min.js"></script> +<!-- + --> +<script type="module" + src="https://hdnlab1.isti.cnr.it/d3search/js/syntgraph.js"></script> +<script + src="https://hdnlab1.isti.cnr.it/d3search/node_modules/commarcdiag/d3.js"></script> +<script type="text/javascript" src="./js/lib/peg-0.10.0.min.js"></script> +<script type="text/javascript" src="./js/lib/jquery.ui.touch-punch.js"></script> +<script type="text/javascript" src="./js/cesareBrowse.js"></script> +<script type="text/javascript" src="./js/minimap_4.3.js"></script> +<script type="text/javascript" src="./js/partext.js"></script> +<script type="text/javascript" src="./js/utils.js"></script> +<script type="text/javascript" src="./js/script_4.3.js"></script> + + +</head> +<body class="body-vis"> + <script type="text/javascript"> + var currStyle = "style1"; + var newStyle = Cookies.get('LiDa_style'); + if (typeof newStyle !== "undefined") { + switch (newStyle) { + case "style1": + $("#style1-Boot").prop('disabled', false); + $("#style1-Custom").prop('disabled', false); + $("#style2-Boot").prop('disabled', true); + $("#style2-Custom").prop('disabled', true); + break; + case "style2": + $("#style2-Boot").prop('disabled', false); + $("#style2-Custom").prop('disabled', false); + $("#style1-Boot").prop('disabled', true); + $("#style1-Custom").prop('disabled', true); + break; + default: + }; + currStyle = newStyle; + }; + </script> + + <div class="h-100 container-fluid"> + <div> + <nav + class="navbar border navbar-expand-lg navbar-light bg-light justify-content-between fixed-top"> + <button class="navbar-toggler" type="button" data-toggle="collapse" + data-target="#bs-example-navbar-collapse-1" + aria-controls="bs-example-navbar-collapse-1" aria-expanded="false" + aria-label="Toggle navigation"> + <span class="navbar-toggler-icon"></span> + </button> + <a class="navbar-brand font-weight-bold" href="#">LiDa</a> + <div class="collapse navbar-collapse" + id="bs-example-navbar-collapse-1"> + <ul class="navbar-nav"> + <li class="nav-item active pt-1"><a class="nav-link" href="#">Canti + <span class="sr-only">(current)</span> + </a></li> + <li class="nav-item pt-1"><a class="nav-link" href="#">Metafore + <span class="sr-only">(current)</span> + </a></li> + <li class="nav-item dropdown pt-1"> + <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> + Altro + </a> + <div class="dropdown-menu" aria-labelledby="navbarDropdown"> + <a class="dropdown-item stileLink" id="style1" href="#">Stile 1</a> + <a class="dropdown-item stileLink" id="style2" href="#">Stile 2</a> + <div class="dropdown-divider"></div> + <a class="dropdown-item" href="#">Altro ancora</a> + </div> + </li> + </ul> + <ul class="navbar-nav ml-md-auto"> + <li class="nav-item pt-1"> + <div class="input-group input-group-sm pr-2" style="height: 31px; max-width: 180px;"> + <div class="input-group-prepend"> + <label class="input-group-text border-right-0 border-secondary pr-0"><ion-icon + name="glasses"></ion-icon></label> <label + class="input-group-text text-muted border-secondary border-left-0 " + for="valoreVista">Vista:</label> + </div> + <select class="custom-select text-muted bg-light border border-secondary" + id="valoreVista"> + <option value="forme">Forme</option> + <option value="frasi">Frasi</option> + <option value="dialoghi">Dialoghi</option> + <option value="metafore">Metafore</option> + </select> + </div> + </li> + <li class="nav-item pt-1"> + <div class="input-group input-group-sm"> + <div class="input-group-prepend"> + <label class="input-group-text border-right-0 border-secondary pr-0"><ion-icon + name="search-circle"></ion-icon></label> <label + class="input-group-text text-muted border-left-0 border-secondary" + for="tipoRicerca">Ricerca:</label> + </div> + <input id="searchToggle" type="checkbox" data-toggle="toggle0" + data-on="Avanzata" data-off="Semplice" data-size="small" + data-style="leftBorderRadiusZero" data-onstyle="success border-secondary" + data-offstyle="secondary"> + </div> + </li> + </ul> + </div> + + + </nav> + </div> + + <div id="rigaContenuti" class="row no-gutters"> + + <div class="d-table w-100 tableMain"> + + <div id="colNavigazione" class="d-table-cell menuNavigazione"> + <div id="accordionNav" class="pr-2 sticky-top"> + <div class="distanziatore"> </div> + <div class="card"> + <div class="card-header px-1" id="headingInferno"> + <h6 class="mb-0"> + <div class="row no-gutters justify-content-between"> + <div class="col-auto flex-fill align-self-center text-muted"> + <button class="btn btn-sm btn-link" id="cantica1" + data-toggle="collapse" data-target="#collapseInferno" + aria-expanded="true" aria-controls="collapseInferno"><span class="h6 font-weight-bold">Inferno</span></button> + </div> + <div id="cantica1-badge" + class="col-auto align-self-center justify-content-end text-right"> + </div> + </div> + </h6> + </div> + + <div id="collapseInferno" class="collapse show" + aria-labelledby="headingInferno" data-parent="#accordionNav"> + <div class="card-body"> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 1" href="#" >I</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 2" href="#" >II</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 3" href="#" >III</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 4" href="#" >IV</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 5" href="#" >V</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 6" href="#" >VI</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 7" href="#" >VII</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 8" href="#" >VIII</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 9" href="#" >IX</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 10" href="#" >X</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 11" href="#" >XI</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 12" href="#" >XII</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 13" href="#" >XIII</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 14" href="#" >XIV</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 15" href="#" >XV</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 16" href="#" >XVI</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 17" href="#" >XVII</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 18" href="#" >XVIII</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 19" href="#" >XIX</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 20" href="#" >XX</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 21" href="#" >XXI</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 22" href="#" >XXII</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 23" href="#" >XXIII</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 24" href="#" >XXIV</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 25" href="#" >XXV</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 26" href="#" >XXVI</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 27" href="#" >XXVII</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 28" href="#" >XXVIII</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 29" href="#" >XXIX</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 30" href="#" >XXX</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 31" href="#" >XXXI</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 32" href="#" >XXXII</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 33" href="#" >XXXIII</span> + <span class="navig-canto small text-muted nowrap" + name="InfernoCanto 34" href="#" >XXXIV</span> + </div> + </div> + </div> + <div class="card"> + <div class="card-header px-1" id="headingPurgatorio"> + <h6 class="mb-0"> + <div class="row no-gutters justify-content-between"> + <div class="col-auto flex-fill align-self-center text-muted"> + <button class="btn btn-sm btn-link" id="cantica2" + data-toggle="collapse" data-target="#collapsePurgatorio" + aria-expanded="true" aria-controls="collapsePurgatorio"><span class="h6 font-weight-bold">Purgatorio</span></button> + </div> + <div id="cantica2-badge" + class="col-auto align-self-center justify-content-end text-right"> + </div> + </div> + </h6> + </div> + <div id="collapsePurgatorio" class="collapse" + aria-labelledby="headingPurgatorio" data-parent="#accordionNav"> + <div class="card-body"> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 1" href="#" >I</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 2" href="#" >II</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 3" href="#" >III</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 4" href="#" >IV</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 5" href="#" >V</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 6" href="#" >VI</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 7" href="#" >VII</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 8" href="#" >VIII</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 9" href="#" >IX</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 10" href="#" >X</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 11" href="#" >XI</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 12" href="#" >XII</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 13" href="#" >XIII</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 14" href="#" >XIV</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 15" href="#" >XV</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 16" href="#" >XVI</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 17" href="#" >XVII</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 18" href="#" >XVIII</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 19" href="#" >XIX</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 20" href="#" >XX</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 21" href="#" >XXI</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 22" href="#" >XXII</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 23" href="#" >XXIII</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 24" href="#" >XXIV</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 25" href="#" >XXV</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 26" href="#" >XXVI</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 27" href="#" >XXVII</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 28" href="#" >XXVIII</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 29" href="#" >XXIX</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 30" href="#" >XXX</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 31" href="#" >XXXI</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 32" href="#" >XXXII</span> + <span class="navig-canto small text-muted nowrap" + name="PurgatorioCanto 33" href="#" >XXXIII</span> + </div> + </div> + </div> + <div class="card"> + <div class="card-header px-1" id="headingParadiso"> + <h6 class="mb-0"> + <div class="row no-gutters justify-content-between"> + <div class="col-auto flex-fill align-self-center text-muted"> + <button class="btn btn-sm btn-link" id="cantica3" + data-toggle="collapse" data-target="#collapseParadiso" + aria-expanded="true" aria-controls="collapseParadiso"><span class="h6 font-weight-bold">Paradiso</span></button> + </div> + <div id="cantica3-badge" + class="col-auto align-self-center justify-content-end text-right"> + </div> + </div> + </h6> + </div> + <div id="collapseParadiso" class="collapse" + aria-labelledby="headingParadiso" data-parent="#accordionNav"> + <div class="card-body"> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 1" href="#" >I</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 2" href="#" >II</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 3" href="#" >III</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 4" href="#" >IV</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 5" href="#" >V</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 6" href="#" >VI</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 7" href="#" >VII</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 8" href="#" >VIII</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 9" href="#" >IX</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 10" href="#" >X</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 11" href="#" >XI</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 12" href="#" >XII</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 13" href="#" >XIII</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 14" href="#" >XIV</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 15" href="#" >XV</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 16" href="#" >XVI</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 17" href="#" >XVII</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 18" href="#" >XVIII</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 19" href="#" >XIX</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 20" href="#" >XX</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 21" href="#" >XXI</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 22" href="#" >XXII</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 23" href="#" >XXIII</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 24" href="#" >XXIV</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 25" href="#" >XXV</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 26" href="#" >XXVI</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 27" href="#" >XXVII</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 28" href="#" >XXVIII</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 29" href="#" >XXIX</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 30" href="#" >XXX</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 31" href="#" >XXXI</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 32" href="#" >XXXII</span> + <span class="navig-canto small text-muted nowrap" + name="ParadisoCanto 33" href="#" >XXXIII</span> + </div> + </div> + </div> + <div class="card" style="display: none;"> + <div class="card-header px-1" id="headingZero"> + <h6 class="mb-0"> + <div class="row no-gutters justify-content-end"> + <div class="col-auto flex-fill align-self-end text-muted text-right"> + + <button class="btn btn-sm btn-link text-right" id="cantica0" + data-toggle="collapse" data-target="#collapseZero" + aria-expanded="true" aria-controls="collapseZero"><span class="h6 font-weight-bold text-right">Lista risultati</span></button> + </div> + <div id="cantica0-badge" + class="col-auto align-self-center align-self-end text-right"> + </div> + </div> + </h6> + </div> + + <div id="collapseZero" class="collapse" + aria-labelledby="headingZero" data-parent="#accordionNav"> + <div class="card-body p-3 align-self-end text-right"> + <ul class="pagination pagination-sm justify-content-end m-0" id="listPagination"> + <span class="small text-muted pt-2 px-1">Pag. </span> + <li class="page-item" id='pagPrecedente'> + <a class="page-link" href="#" aria-label="Precedente"> + <span class="h6 font-weight-bold" aria-hidden="true">«</span></a></li> + <li class="page-item"><a class="page-link p-0" href="#"> + <select class="custom-select custom-select-sm bg-light border-0 " id="paginaLista" style="height: 29px;"> + <option value="1">1/1</option></select></a></li> + <li class="page-item" id='pagSuccessiva'> + <a class="page-link" href="#" aria-label="Successiva"> + <span class="h6 font-weight-bold" aria-hidden="true">»</span></a></li> + </ul> + </div> + </div> + + </div> + </div> + + </div> + + <div id="colVisualizza" class="d-table-cell tableVis bg-lida-vis border-right border-bottom border-left align-top"> + + <div class="distanziatore"> </div> + <div class="d-table w-100"> + <div class="d-table-row scrollMon"> + <div class="blog-main visCanto h-100"> + <div id="displaycantoWrapper"> + <div id='displaycanto' class="pl-3" style="width: min-content;"></div> + </div> + <div class="ui-resizable-handle ui-resizable-s border-bottom doubleborder"></div> + </div> + </div> + <div class="d-table-row w-100"> + + + <div class="d-table-cell p-0 pt-1" style="background-color: rgba(0,0,0,.03);"> + <ul class="nav nav-tabs" id="tab-list" role="tablist"> + <li class="nav-item" role="presentation"> + <a class="nav-link py-1 active" id="vis1-tab" data-toggle="tab" href="#vis1" role="tab" aria-controls="vis1" aria-selected="true"><span class=" btn-link"><ion-icon name="create"></ion-icon></span> + <span class="h6 btn-link"> Annotazioni</span></a> + </li> + <li class="nav-item" role="presentation"> + <a class="nav-link py-1" id="vis0-tab" data-toggle="tab" href="#vis0" role="tab" aria-controls="vis0" aria-selected="true"><span class=" btn-link"><ion-icon name="analytics"></ion-icon></span> + <span class="h6 btn-link"> Periodo</span></a> + </li> + </ul> + + <div class="tab-content visInfo w-100 d-flex bg-white" id="vis-TabContent" style="flex-direction: column;"> + <div class="tab-pane fade show active p-0 bg-white" id="vis1" role="tabpanel" aria-labelledby="vis1-tab"> + <div id='displaynote' class="pt-3 px-3">Visualizza annotazioni<br> + </div> + </div> + <div class="tab-pane fade p-0 bg-white" id="vis0" role="tabpanel" aria-labelledby="vis0-tab"> + <div id='displayinfo' class="pt-3 px-3">Visualizza info periodo<br> + </div> + </div> + </div> + + </div> + + + </div> + </div> + </div> + + <div id="colMinimap" class="d-table-cell bg-lida-vis minimap border-right border-bottom align-top"> + <div id="displayminimap" class="col px-0 pb-0 m-0 w-100 scrollMon"></div> + <div class="filler"><img id="bgImg" src="./images/fefeff.png"></div> + </div> + + <div id="colRicerca" class="d-table-cell menuRicerca align-top"> + + <div class="distanziatore"> </div> + <div class="w-100 pl-2 py-0 m-0"> + + <form> + + <div id="rigaRicercaSemplice" + class="row card bg-lida10 mx-0 p-2 d-flex justify-content-end"> + + <div class="col-12 d-flex justify-content-end px-0" + id="simpleSearchDiv" style="display: d-flex"> + <div class="btn-group flex-nowrap p-0 pr-1" role="group" + aria-label="Bottoni Ricerca Semplice"> + <button class="btn btn-sm btn-outline-success bg-light" + style="height: 32px; width: 76px;" + type="button" id="showOptions" data-toggle="collapse" + data-target="#collapseOptions" aria-expanded="false" + aria-controls="collapseExample"> + <span class="text-muted">Opzioni</span> + </button> + <button class="btn btn-sm btn-outline-success bg-light ml-1" + type="button" id='cleanresult' aria-expanded="false" + aria-controls="collapseExample"> + <span class="text-muted">Reset</span> + </button> + <div class="pr-0 align-self-end ml-1"> + <input class="form-control-sm pr-0 borderRadiusZero border border-success monMe" + type="text" id="queryText" + placeholder=' inserisci un termine' + style="height: 32px;"> + </div> + <button class="btn btn-sm btn-success" type="submit" + id='searchcomm'> + <ion-icon name="search"></ion-icon> + </button> + </div> + </div> + + <div class="col-12 justify-content-between px-0" + id="advancedSearchDiv" style="display: none"> + <div + class="text-left pr-3 pl-1 pt-1 d-sm-inline flex-nowrap align-text-bottom"> + <input style="display: none;" type="file" id="apriFile"> + <span + class="border border-success rounded bg-light p-1 mb-1 align-text-bottom"><ion-icon + name="save-outline"></ion-icon> <ion-icon + name="folder-open-outline"></ion-icon> <ion-icon + name="cloud-upload-outline"></ion-icon> <ion-icon + name="cloud-download-outline"></ion-icon></span> + </div> + <div class="btn-group d-sm-inline flex-nowrap p-0 pr-1" role="group" + aria-label="Bottoni Ricerca Avanzata"> + <button class="btn btn-sm btn-outline-success bg-light" + style="height: 32px; width: 76px;" + id="showLogic" data-toggle="collapse" + data-target="#collapseLogic" aria-expanded="true" + aria-controls="collapseLogic"> + <span class="font-weight-bold text-muted">Nascondi</span> + </button> + <button class="btn btn-sm btn-outline-success bg-light ml-0" + type="button" id='cleanresult2' aria-expanded="false" + aria-controls="collapseExample"> + <span class="text-muted">Reset</span> + </button> + <button class="btn btn-sm btn-success ml-0" type="submit" + id='searchcomm2'> + <ion-icon name="search"></ion-icon> + </button> + </div> + </div> + + </div> + + + <div id="rigaRicerca" class="row mx-0"> + + <div id="displayOptions" class="col-12 px-0"> + + <div class="collapse" id="collapseOptions"> + <div class="col-12 p-0"> + <div class="card card-body bg-lida10 p-2"> + <div class="form-inline input-group px-1 py-2"> + <select + class="form-control custom-select-sm text-muted bg-light monMe btn-outline-success border" + id="lemma_forma"> + <option value="forma">La forma</option> + <option value="lemma">Il lemma</option> + <option value="testo">Il testo</option> + </select> <select + class="form-control custom-select-sm text-muted bg-light ml-2 monMe btn-outline-success border" + id="opzioni_testo"> + <option value="parola">come Parola</option> + <option value="sottostringa">come Sottostringa</option> + <option value="prefisso">come Prefisso</option> + <option value="suffisso">come Suffisso</option> + <option value="regexp">come Espressione regolare</option> + </select> + </div> + + <div class="bg-light well m-0" id="contextDiv0"> + + <div id="contextTable-xX0" + class="row no-gutters p-1 pt-0 bg-lida10"> + <div class="col-12 py-0 pl-1"> + <span class="small text-muted align-bottom">Restringi + il contesto di ricerca:</span> + </div> + <div class="col-6 p-0 pt-1"> + <div id="selectable-xX0" + class="ui-selectable ui-widget ui-helper-clearfix"> + <div class="card"> + <div class="card-header p-1" id="headingOne"> + <h6 class="mb-0"> + <div class="row no-gutters justify-content-between"> + <div + class="col-auto flex-fill align-self-center text-muted"> + <button + class="btn btn-sm btn-outline-success bg-light btn-link border rounded py-0 my-1 ml-1" + id="cantica1-xX0" data-toggle="collapse" + data-target="#collapseCa1-xX0" + aria-expanded="true" + aria-controls="collapseCa1-xX0"> + <span class="h6 small font-weight-bold text-success">Inferno</span> + </button> + </div> + <div + class="col-auto pr-1 align-self-center justify-content-end text-right"> + <button id="plusBtn0-xX0" + class="btn btn-sm btn-outline-success bg-light addClaCont border rounded text-success px-1 py-0"> + +></button> + </div> + </div> + </h6> + </div> + + <div id="collapseCa1-xX0" class="collapse" + aria-labelledby="headingOne" + data-parent="#selectable-xX0"> + <div class="card-body py-2"> + <div class="sel-canti-intro small text-muted pb-1">Seleziona + i canti:</div> + <span + class="sel-canto border small text-muted nowrap" + id="0_0" name="InfernoCanto 1" href="#">I</span> <span + class="sel-canto border small text-muted nowrap" + id="0_1" name="InfernoCanto 2" href="#">II</span> <span + class="sel-canto border small text-muted nowrap" + id="0_2" name="InfernoCanto 3" href="#">III</span> <span + class="sel-canto border small text-muted nowrap" + id="0_3" name="InfernoCanto 4" href="#">IV</span> <span + class="sel-canto border small text-muted nowrap" + id="0_4" name="InfernoCanto 5" href="#">V</span> <span + class="sel-canto border small text-muted nowrap" + id="0_5" name="InfernoCanto 6" href="#">VI</span> <span + class="sel-canto border small text-muted nowrap" + id="0_6" name="InfernoCanto 7" href="#">VII</span> <span + class="sel-canto border small text-muted nowrap" + id="0_7" name="InfernoCanto 8" href="#">VIII</span> <span + class="sel-canto border small text-muted nowrap" + id="0_8" name="InfernoCanto 9" href="#">IX</span> <span + class="sel-canto border small text-muted nowrap" + id="0_9" name="InfernoCanto 10" href="#">X</span> + <span + class="sel-canto border small text-muted nowrap" + id="0_10" name="InfernoCanto 11" href="#">XI</span> <span + class="sel-canto border small text-muted nowrap" + id="0_11" name="InfernoCanto 12" href="#">XII</span> <span + class="sel-canto border small text-muted nowrap" + id="0_12" name="InfernoCanto 13" href="#">XIII</span> <span + class="sel-canto border small text-muted nowrap" + id="0_13" name="InfernoCanto 14" href="#">XIV</span> <span + class="sel-canto border small text-muted nowrap" + id="0_14" name="InfernoCanto 15" href="#">XV</span> <span + class="sel-canto border small text-muted nowrap" + id="0_15" name="InfernoCanto 16" href="#">XVI</span> <span + class="sel-canto border small text-muted nowrap" + id="0_16" name="InfernoCanto 17" href="#">XVII</span> <span + class="sel-canto border small text-muted nowrap" + id="0_17" name="InfernoCanto 18" href="#">XVIII</span> <span + class="sel-canto border small text-muted nowrap" + id="0_18" name="InfernoCanto 19" href="#">XIX</span> <span + class="sel-canto border small text-muted nowrap" + id="0_19" name="InfernoCanto 20" href="#">XX</span> <span + class="sel-canto border small text-muted nowrap" + id="0_20" name="InfernoCanto 21" href="#">XXI</span> <span + class="sel-canto border small text-muted nowrap" + id="0_21" name="InfernoCanto 22" href="#">XXII</span> <span + class="sel-canto border small text-muted nowrap" + id="0_22" name="InfernoCanto 23" href="#">XXIII</span> <span + class="sel-canto border small text-muted nowrap" + id="0_23" name="InfernoCanto 24" href="#">XXIV</span> <span + class="sel-canto border small text-muted nowrap" + id="0_24" name="InfernoCanto 25" href="#">XXV</span> <span + class="sel-canto border small text-muted nowrap" + id="0_25" name="InfernoCanto 26" href="#">XXVI</span> <span + class="sel-canto border small text-muted nowrap" + id="0_26" name="InfernoCanto 27" href="#">XXVII</span> <span + class="sel-canto border small text-muted nowrap" + id="0_27" name="InfernoCanto 28" href="#">XXVIII</span> <span + class="sel-canto border small text-muted nowrap" + id="0_28" name="InfernoCanto 29" href="#">XXIX</span> <span + class="sel-canto border small text-muted nowrap" + id="0_29" name="InfernoCanto 30" href="#">XXX</span> <span + class="sel-canto border small text-muted nowrap" + id="0_30" name="InfernoCanto 31" href="#">XXXI</span> <span + class="sel-canto border small text-muted nowrap" + id="0_31" name="InfernoCanto 32" href="#">XXXII</span> <span + class="sel-canto border small text-muted nowrap" + id="0_32" name="InfernoCanto 33" href="#">XXXIII</span> <span + class="sel-canto border small text-muted nowrap" + id="0_33" name="InfernoCanto 34" href="#">XXXIV</span> + </div> + </div> + </div> + <div class="card"> + <div class="card-header p-1" id="headingTwo"> + <h6 class="mb-0"> + <div class="row no-gutters justify-content-between"> + <div + class="col-auto flex-fill align-self-center text-muted"> + <button + class="btn btn-sm btn-outline-success bg-light btn-link border rounded py-0 my-1 ml-1" + id="cantica2-xX0" data-toggle="collapse" + data-target="#collapseCa2-xX0" + aria-expanded="true" + aria-controls="collapseCa2-xX0"> + <span class="h6 small font-weight-bold text-success">Purgatorio</span> + </button> + </div> + <div + class="col-auto pr-1 align-self-center justify-content-end text-right"> + <button id="plusBtn1-xX0" + class="btn btn-sm btn-outline-success bg-light addClaCont border text-success rounded px-1 py-0"> + +></button> + </div> + </div> + </h6> + </div> + <div id="collapseCa2-xX0" class="collapse" + aria-labelledby="headingTwo" + data-parent="#selectable-xX0"> + <div class="card-body py-2"> + <div class="sel-canti-intro small text-muted pb-1">Seleziona + i canti:</div> + <span + class="sel-canto border small text-muted nowrap" + id="1_0" name="PurgatorioCanto 1" href="#">I</span> <span + class="sel-canto border small text-muted nowrap" + id="1_1" name="PurgatorioCanto 2" href="#">II</span> <span + class="sel-canto border small text-muted nowrap" + id="1_2" name="PurgatorioCanto 3" href="#">III</span> <span + class="sel-canto border small text-muted nowrap" + id="1_3" name="PurgatorioCanto 4" href="#">IV</span> <span + class="sel-canto border small text-muted nowrap" + id="1_4" name="PurgatorioCanto 5" href="#">V</span> <span + class="sel-canto border small text-muted nowrap" + id="1_5" name="PurgatorioCanto 6" href="#">VI</span> <span + class="sel-canto border small text-muted nowrap" + id="1_6" name="PurgatorioCanto 7" href="#">VII</span> <span + class="sel-canto border small text-muted nowrap" + id="1_7" name="PurgatorioCanto 8" href="#">VIII</span> <span + class="sel-canto border small text-muted nowrap" + id="1_8" name="PurgatorioCanto 9" href="#">IX</span> <span + class="sel-canto border small text-muted nowrap" + id="1_9" name="PurgatorioCanto 10" href="#">X</span> + <span + class="sel-canto border small text-muted nowrap" + id="1_10" name="PurgatorioCanto 11" href="#">XI</span> <span + class="sel-canto border small text-muted nowrap" + id="1_11" name="PurgatorioCanto 12" href="#">XII</span> <span + class="sel-canto border small text-muted nowrap" + id="1_12" name="PurgatorioCanto 13" href="#">XIII</span> <span + class="sel-canto border small text-muted nowrap" + id="1_13" name="PurgatorioCanto 14" href="#">XIV</span> <span + class="sel-canto border small text-muted nowrap" + id="1_14" name="PurgatorioCanto 15" href="#">XV</span> <span + class="sel-canto border small text-muted nowrap" + id="1_15" name="PurgatorioCanto 16" href="#">XVI</span> <span + class="sel-canto border small text-muted nowrap" + id="1_16" name="PurgatorioCanto 17" href="#">XVII</span> <span + class="sel-canto border small text-muted nowrap" + id="1_17" name="PurgatorioCanto 18" href="#">XVIII</span> <span + class="sel-canto border small text-muted nowrap" + id="1_18" name="PurgatorioCanto 19" href="#">XIX</span> <span + class="sel-canto border small text-muted nowrap" + id="1_19" name="PurgatorioCanto 20" href="#">XX</span> <span + class="sel-canto border small text-muted nowrap" + id="1_20" name="PurgatorioCanto 21" href="#">XXI</span> <span + class="sel-canto border small text-muted nowrap" + id="1_21" name="PurgatorioCanto 22" href="#">XXII</span> <span + class="sel-canto border small text-muted nowrap" + id="1_22" name="PurgatorioCanto 23" href="#">XXIII</span> <span + class="sel-canto border small text-muted nowrap" + id="1_23" name="PurgatorioCanto 24" href="#">XXIV</span> <span + class="sel-canto border small text-muted nowrap" + id="1_24" name="PurgatorioCanto 25" href="#">XXV</span> <span + class="sel-canto border small text-muted nowrap" + id="1_25" name="PurgatorioCanto 26" href="#">XXVI</span> <span + class="sel-canto border small text-muted nowrap" + id="1_26" name="PurgatorioCanto 27" href="#">XXVII</span> <span + class="sel-canto border small text-muted nowrap" + id="1_27" name="PurgatorioCanto 28" href="#">XXVIII</span> <span + class="sel-canto border small text-muted nowrap" + id="1_28" name="PurgatorioCanto 29" href="#">XXIX</span> <span + class="sel-canto border small text-muted nowrap" + id="1_29" name="PurgatorioCanto 30" href="#">XXX</span> <span + class="sel-canto border small text-muted nowrap" + id="1_30" name="PurgatorioCanto 31" href="#">XXXI</span> <span + class="sel-canto border small text-muted nowrap" + id="1_31" name="PurgatorioCanto 32" href="#">XXXII</span> <span + class="sel-canto border small text-muted nowrap" + id="1_32" name="PurgatorioCanto 33" href="#">XXXIII</span> + </div> + </div> + </div> + <div class="card"> + <div class="card-header p-1" id="headingThree"> + <h6 class="mb-0"> + <div class="row no-gutters justify-content-between"> + <div + class="col-auto flex-fill align-self-center text-muted"> + <button + class="btn btn-sm btn-outline-success bg-light btn-link border rounded py-0 my-1 ml-1" + id="cantica3-xX0" data-toggle="collapse" + data-target="#collapseCa3-xX0" + aria-expanded="true" + aria-controls="collapseCa3-xX0"> + <span class="h6 small font-weight-bold text-success">Paradiso</span> + </button> + </div> + <div + class="col-auto pr-1 align-self-center justify-content-end text-right"> + <button id="plusBtn2-xX0" + class="btn btn-sm btn-outline-success bg-light addClaCont border rounded text-success px-1 py-0"> + +></button> + </div> + </div> + </h6> + </div> + <div id="collapseCa3-xX0" class="collapse" + aria-labelledby="headingThree" + data-parent="#selectable-xX0"> + <div class="card-body py-2"> + <div class="sel-canti-intro small text-muted pb-1">Seleziona + i canti:</div> + <span + class="sel-canto border small text-muted nowrap" + id="2_0" name="ParadisoCanto 1" href="#">I</span> <span + class="sel-canto border small text-muted nowrap" + id="2_1" name="ParadisoCanto 2" href="#">II</span> <span + class="sel-canto border small text-muted nowrap" + id="2_2" name="ParadisoCanto 3" href="#">III</span> <span + class="sel-canto border small text-muted nowrap" + id="2_3" name="ParadisoCanto 4" href="#">IV</span> <span + class="sel-canto border small text-muted nowrap" + id="2_4" name="ParadisoCanto 5" href="#">V</span> <span + class="sel-canto border small text-muted nowrap" + id="2_5" name="ParadisoCanto 6" href="#">VI</span> <span + class="sel-canto border small text-muted nowrap" + id="2_6" name="ParadisoCanto 7" href="#">VII</span> <span + class="sel-canto border small text-muted nowrap" + id="2_7" name="ParadisoCanto 8" href="#">VIII</span> <span + class="sel-canto border small text-muted nowrap" + id="2_8" name="ParadisoCanto 9" href="#">IX</span> <span + class="sel-canto border small text-muted nowrap" + id="2_9" name="ParadisoCanto 10" href="#">X</span> + <span + class="sel-canto border small text-muted nowrap" + id="2_10" name="ParadisoCanto 11" href="#">XI</span> <span + class="sel-canto border small text-muted nowrap" + id="2_11" name="ParadisoCanto 12" href="#">XII</span> <span + class="sel-canto border small text-muted nowrap" + id="2_12" name="ParadisoCanto 13" href="#">XIII</span> <span + class="sel-canto border small text-muted nowrap" + id="2_13" name="ParadisoCanto 14" href="#">XIV</span> <span + class="sel-canto border small text-muted nowrap" + id="2_14" name="ParadisoCanto 15" href="#">XV</span> <span + class="sel-canto border small text-muted nowrap" + id="2_15" name="ParadisoCanto 16" href="#">XVI</span> <span + class="sel-canto border small text-muted nowrap" + id="2_16" name="ParadisoCanto 17" href="#">XVII</span> <span + class="sel-canto border small text-muted nowrap" + id="2_17" name="ParadisoCanto 18" href="#">XVIII</span> <span + class="sel-canto border small text-muted nowrap" + id="2_18" name="ParadisoCanto 19" href="#">XIX</span> <span + class="sel-canto border small text-muted nowrap" + id="2_19" name="ParadisoCanto 20" href="#">XX</span> <span + class="sel-canto border small text-muted nowrap" + id="2_20" name="ParadisoCanto 21" href="#">XXI</span> <span + class="sel-canto border small text-muted nowrap" + id="2_21" name="ParadisoCanto 22" href="#">XXII</span> <span + class="sel-canto border small text-muted nowrap" + id="2_22" name="ParadisoCanto 23" href="#">XXIII</span> <span + class="sel-canto border small text-muted nowrap" + id="2_23" name="ParadisoCanto 24" href="#">XXIV</span> <span + class="sel-canto border small text-muted nowrap" + id="2_24" name="ParadisoCanto 25" href="#">XXV</span> <span + class="sel-canto border small text-muted nowrap" + id="2_25" name="ParadisoCanto 26" href="#">XXVI</span> <span + class="sel-canto border small text-muted nowrap" + id="2_26" name="ParadisoCanto 27" href="#">XXVII</span> <span + class="sel-canto border small text-muted nowrap" + id="2_27" name="ParadisoCanto 28" href="#">XXVIII</span> <span + class="sel-canto border small text-muted nowrap" + id="2_28" name="ParadisoCanto 29" href="#">XXIX</span> <span + class="sel-canto border small text-muted nowrap" + id="2_29" name="ParadisoCanto 30" href="#">XXX</span> <span + class="sel-canto border small text-muted nowrap" + id="2_30" name="ParadisoCanto 31" href="#">XXXI</span> <span + class="sel-canto border small text-muted nowrap" + id="2_31" name="ParadisoCanto 32" href="#">XXXII</span> <span + class="sel-canto border small text-muted nowrap" + id="2_32" name="ParadisoCanto 33" href="#">XXXIII</span> + </div> + </div> + </div> + </div> + </div> + + <div class="col card p-0 pt-1 ml-2 mt-1 bg-light text-muted"> + <div class="row no-gutters p-0 justify-content-end"> + <div + class="col px-2 pt-1 align-self-start align-items-start justify-content-end text-right position-absolute" + style="z-index: 1000"> + <button id="trashClaCont-xX0" + class="btn btn-sm btn-outline-success bg-light trashClaCont border rounded text-success px-1 pb-0" + style="z-index: 1000"> + <ion-icon name="refresh-circle"></ion-icon> + </button> + </div> + </div> + <div class="row no-gutters p-1 justify-content-start"> + <div + class="col-10 pr-3 pl-1 align-self-start justify-self-start text-muted small wrap" + id="contextText-xX0">Tutta l'opera</div> + <div class="col-2 m-0 p-0"> </div> + </div> + </div> + + </div> + + </div> + + </div> + </div> + </div> + + <div class="collapse" id="collapseAdvanced"> + + <!-- inizio RicercaAvanzata --> + + <div class="col-12 p-0"> + <div id="accordionSearch"> + <div + class="row card d-flex justify-content-end bg-lida10 m-0"> + <div + class="col justify-content-between d-sm-inline bg-lida10 px-2 pt-2 pb-0"> + + <div class="input-group input-group-sm px-1 pt-1" style="max-width: 280px;"> + <div class="input-group-prepend"> + <label + class="input-group-text border-right-0 border-success pr-0"><ion-icon + name="receipt-outline"></ion-icon></label> <label + class="input-group-text text-muted border-left-0 border-success" + for="unitaRicerca">Obiettivi della ricerca:</label> + </div> + <select + class="custom-select text-muted bg-light border border-success btn-outline-success " + id="unitaRicerca"> + <option value="forme">Forme</option> + <option value="frase">Frasi</option> + <option value="verso">Versi</option> + <option value="periodo">Periodi</option> + <option value="discorso">Discorsi</option> + <option value="sintagma">Sintagmi</option> + <option value="metafora">Metafore</option> + </select> + </div> + </div> + <div + class="col-12 justify-content-between d-sm-inline bg-lida10 p-2"> + <div class="col-12 p-0 pl-2"> + <span class="small text-muted align-bottom pr-2">Aggiungi + clausole o condizioni logiche: </span> + </div> + <div class="btn-group btn-group-sm p-1" role="group"> + <button id="btnAddCla1" type="button" + class="addCCbtn btn btn-sm btn-outline-success bg-light"> + <span class="text-muted">Morfologia</span> + </button> + <button id="btnAddCla2" type="button" + class="addCCbtn btn btn-sm btn-outline-success bg-light"> + <span class="text-muted">Sintassi</span> + </button> + <button id="btnAddCla3" type="button" + class="addCCbtn btn btn-sm btn-outline-success bg-light"> + <span class="text-muted">Metafore</span> + </button> + <label + class="input-group-text border-top border-bottom border-right-0 border-left-0 border-success" + style="border-radius: 0;"><ion-icon + name="extension-puzzle"></ion-icon></label> + <button id="btnAddCond" type="button" + class="addCCbtn btn btn-sm btn-outline-success bg-light"> + <span class="text-muted">AND/OR</span> + </button> + </div> + </div> + </div> + + <div id="collapseLogic" class="collapse show" + aria-labelledby="headingLogic" + data-parent="#accordionSearch"> + <div class="card-body p-0"> + + <div class="row card tab-content bg-lida10 m-0 p-0" + id="cla-TabContent"> + <div class="col-12 pt-2"> + <span class="small text-muted align-bottom pr-2" + id="tipoRicerca">Definisci i filtri modificando + le clausole e/o trascinandole nelle condizioni logiche:</span> + </div> + <div class="col-12 tab-pane fade show active pt-1 pb-2" + id="cla0" aria-labelledby="cla0-tab"> + + + <div id="cla-Advanced" style="display: d-flex"> + + <div class=" p-1 bg-light well" id="cla-list"> + <div id="cla-list-row" + class="row mx-0 justify-content-between"> + <div class="col-12 p-0"> + <ul id="sortable0" + class="condLIand list-group ui-sortable"> + <li id="li-cla0" + class="list-group-item align-items-center my-1 ui-state-default ui-state-disabled border text-muted bg-white ui-state-disabled-opacity-06 small">Nessuna + clausola aggiunta.</li> + </ul> + </div> + </div> + </div> + + </div> + + </div> + </div> + + </div> + </div> + </div> + </div> + </div> + <!-- fine RicercaAvanzata --> + + </div> + + </div> + + </form> + </div> + + </div> + + </div> + + </div> + + + <div id="rigaNascosta" class="row" style="display: none;"> + <!-- INIZIO MODELLI CLAUSOLE --> + + <!-- TIPO GRAMMATICALE --> + <div style="display: none;" + class="col-12 tab-pane px-0 bg-lida11 border-top" + id="tipogrammaticaleN" role="tabpanel" aria-labelledby="claN-tab" + data-claType="Grammaticale" data-claActive="1"> + <div + class="form-group form-inline input-group pt-3 px-2 m-0" + action=""> + <div class="input-group-prepend"> + <label class="input-group-text"><ion-icon + name="document-text"></ion-icon></label> + </div> + <select + class="form-control custom-select-sm monMe bg-light text-muted border btn-outline-success" + id="lemma_formaN"> + <option value="forma">La forma</option> + <option value="lemma">Il lemma</option> + <option disabled value="testo">Il testo</option> + </select> <input type="text" class="form-control form-control-sm monMe" + id="queryTextN" placeholder="inserisci un termine" + aria-describedby="name-desc" name="query"> <select + class="form-control custom-select-sm monMe bg-light text-muted border btn-outline-success" + id="opzioni_testoN"> + <option value="parola">come Parola</option> + <option value="sottostringa">come Sottostringa</option> + <option value="prefisso">come Prefisso</option> + <option value="suffisso">come Suffisso</option> + <option value="regexp">come Espressione regolare</option> + </select> + + </div> + + <div class="form-group px-1 pb-0 my-1"> + <label for="typeGramm0" class="text-muted control-label small pl-2 pt-2 m-0">Categoria + grammaticale:</label> + <div class="form-inline input-group px-1 pt-1" action=""> + <div class="input-group-prepend"> + <label class="input-group-text"><ion-icon name="options"></ion-icon></label> + </div> + <select + class="form-control custom-select-sm catgram monMe bg-light text-muted border btn-outline-success" + name="typeGramm0" id="grammtypesN" title="Categoria grammaticale" + value="oggetto"> + <option value="all">Tutte le categorie</option> + <optgroup label="Volgare"> + <option value="verbovolgare">Verbo volgare</option> + <option value="sostantivovolgare">Sostantivo volgare</option> + <option value="aggettivovolgare">Aggettivo volgare</option> + <option value="pronomevolgare">Pronome volgare</option> + <option value="articolovolgare">Articolo volgare</option> + <option value="avverbiovolgare">Avverbio volgare</option> + <option value="preposizionevolgare">Preposizione + volgare</option> + <option value="congiunzionevolgare">Congiunzione + volgare</option> + <option value="interiezionevolgare">Interiezione + volgare</option> + <option value="onomasticavolgare">Onomastica volgare</option> + <option value="citazionevolgare">Citazione volgare</option> + </optgroup> + <optgroup label="Latino"> + <option value="verbo_latino_v">Verbo latino</option> + <option value="sostantivo_latino_s">Sostantivo latino</option> + <option value="aggettivo_latino_a">Aggettivo latino</option> + <option value="pronome_latino_p">Pronome latino</option> + <option value="avverbio_latino_r">Avverbio latino</option> + <option value="preposizione_latino_e">Preposizione + latino</option> + <option value="congiunzione_latino_c">Congiunzione + latino</option> + <option value="interiezione_latino_i">Interiezione + latino</option> + <option value="enclitica_latino_9">Enclitica latino</option> + <option value="citazione_latino_zi">Citazione latino</option> + <option value="simbolo_latino_yy">Simbolo latino</option> + </optgroup> + </select> + </div> + </div> + <div + class="container form-group pl-3 pr-2 mb-0 pt-1 pb-0 dettaglifiltri"></div> + <div class="bg-light well m-0" id="contextDivN"></div> + </div> + <!-- FINE GRAMMATICALE --> + + <!-- TIPO SINTATTICO --> + <div style="display: none;" + class="col-12 tab-pane px-0 bg-lida11 border-top" + id="tiposintatticoN" role="tabpanel" aria-labelledby="claN-tab" + data-claType="Sintattico" data-claActive="1"> + <div + class=" form-group form-inline input-group pt-3 px-2 m-0" + action=""> + <div class="input-group-prepend"> + <label class="input-group-text"><ion-icon + name="document-text"></ion-icon></label> + </div> + <select + class="form-control custom-select-sm monMe bg-light text-muted border btn-outline-success" + id="lemma_formaN"> + <option value="forma">La forma</option> + <option value="lemma">Il lemma</option> + <option disabled value="testo">Il testo</option> + </select> <input type="text" class="form-control form-control-sm monMe" + id="queryTextN" placeholder="inserisci un termine" + aria-describedby="name-desc" name="query"> <select + class="form-control custom-select-sm monMe bg-light text-muted border btn-outline-success" + id="opzioni_testoN"> + <option value="parola">come Parola</option> + <option value="sottostringa">come Sottostringa</option> + <option value="prefisso">come Prefisso</option> + <option value="suffisso">come Suffisso</option> + <option value="regexp">come Espressione regolare</option> + </select> + </div> + + <div class="form-group px-1 pb-0 my-1"> + <label for="typeSyntax0" + class="text-muted control-label small pl-2 pt-2 m-0">Tipo + sintattico:</label> + <div class="form-inline input-group px-1 pt-1" action=""> + <div class="input-group-prepend"> + <label class="input-group-text"><ion-icon name="options"></ion-icon></label> + </div> + <select + class="form-control custom-select-sm monMe bg-light text-muted border btn-outline-success" + name="typeSyntax0" id="synttypes" title="Tipo sintattico" + value="oggetto"> + <option value=".+" class="w-10" + onclick="myformsyntax.functionSyntax0.disabled = false;">Qualsiasi + tipo sintattico</option> + + <optgroup + label="Macrotipi sintattici: principali e coordinate a una principale" + onclick="myformsyntax.functionSyntax0.disabled = true;"> + <option value="macro dich">dichiarativa</option> + <option value="macro escl">esclamativa</option> + <option value="macro inter princ">interrogativa</option> + <option value="macro iussi">iussiva</option> + <option value="macro otta">ottativa</option> + </optgroup> + + <optgroup + label="Macrotipi sintattici: subordinate e coordinate a una subordinata" + onclick="myformsyntax.functionSyntax0.disabled = true;"> + <option value="macro avv">avversativa</option> + <option value="macro causale">causale</option> + <option value="macro compar">comparativa</option> + <option value="macro conces">concessiva</option> + <option value="macro consec">consecutiva</option> + <option value="macro eccettu">eccettuativa</option> + <option value="macro epesege">epesegetica</option> + <option value="macro esclu">esclusiva</option> + <option value="macro finale">finale</option> + <option value="macro inter sub">interrogativa</option> + <option value="macro ipotet">ipotetica</option> + <option value="macro limitat">limitativa</option> + <option value="macro maniera">maniera</option> + <option value="macro modale">modale</option> + <option value="macro obliqua">obliqua</option> + <option value="macro oggettiva">oggettiva</option> + <option value="macro pred">predicativa</option> + <option value="macro rel">relativa</option> + <option value="macro sog">soggettiva</option> + <option value="macro strum">strumentale</option> + <option value="macro sub">subordinata con funzione di + ripresa</option> + <option value="macro temp">temporale</option> + </optgroup> + + <optgroup label="Macrotipi sintattici: pseudocoordinate" + onclick="myformsyntax.functionSyntax0.disabled = true;"> + <option value="macro pseudo">pseudocoordinata</option> + </optgroup> + + <optgroup + label="Macrotipi sintattici: parentetiche e coordinate a una parentetica" + onclick="myformsyntax.functionSyntax0.disabled = true;"> + <option value="macro pare sub">parentetica con valore + di subordinata</option> + <option value="macro pare mod">parentetica modalizzante</option> + </optgroup> + + <optgroup label="Tutti i tipi sintattici" + onclick="myformsyntax.functionSyntax0.disabled = false;"> + <option value="avv">avversativa</option> + <option value="caus">causale</option> + <option value="comp ipo">comparativa con valore + ipotetico</option> + <option value="comp lim">comparativa con valore + limitativo</option> + <option value="comp mod">comparativa con valore modale</option> + <option value="comp temp">comparativa con valore + temporale</option> + <option value="comp disug">comparativa di + disuguaglianza</option> + <option value="comp ug">comparativa di uguaglianza</option> + <option value="comp ug rel ind temp">comparativa di + uguaglianza con valore di relativa indipendente temporale</option> + <option value="conc acond">concessiva acondizionale</option> + <option value="conc cond">concessiva condizionale</option> + <option value="conc fatt">concessiva fattuale</option> + <option value="man rel giust">concorrenza del relativo + in frase di maniera</option> + <option value="fin rel giust">concorrenza del relativo + in frase finale</option> + <option value="cons antec">consecutiva con antecedente</option> + <option value="cons antec fin">consecutiva con + antecedente con valore finale</option> + <option value="cons antec temp">consecutiva con + antecedente con valore temporale</option> + <option value="cons antec epes">consecutiva con + antecedente epesegetica</option> + <option value="cons ell">consecutiva ellittica</option> + <option value="cons libera">consecutiva libera</option> + <option value="cons libera fin">consecutiva libera con + valore finale</option> + <option value="cons post">consecutiva posposta</option> + <option value="cong asind comp ug">coordinata + asindetica comparativa di uguaglianza</option> + <option value="cong asind cons antec">coordinata + asindetica consecutiva con antecedente</option> + <option value="cong asind man">coordinata asindetica di + maniera</option> + <option value="cong asind dich">coordinata asindetica + dichiarativa</option> + <option value="cong asind epes">coordinata asindetica + epesegetica</option> + <option value="cong asind esclam">coordinata asindetica + esclamativa</option> + <option value="cong asind fin">coordinata asindetica + finale</option> + <option value="cong asind int altern">coordinata + asindetica interrogativa alternativa</option> + <option value="cong asind int altern">coordinata + asindetica interrogativa alternativa</option> + <option value="cong asind int altern ret">coordinata + asindetica interrogativa alternativa retorica</option> + <option value="cong asind int x">coordinata asindetica + interrogativa di tipo x</option> + <option value="cong asind int x">coordinata asindetica + interrogativa di tipo x</option> + <option value="cong asind int x ret">coordinata + asindetica interrogativa di tipo x retorica</option> + <option value="cong asind int disg">coordinata + asindetica interrogativa disgiuntiva</option> + <option value="cong asind ipo">coordinata asindetica + ipotetica</option> + <option value="cong asind iuss dir">coordinata + asindetica iussiva diretta</option> + <option value="cong asind iuss indir">coordinata + asindetica iussiva indiretta</option> + <option value="cong asind ogg | cong asind ogg perc">coordinata + asindetica oggettiva</option> + <option value="cong asind ott intr">coordinata + asindetica ottativa con introduttore</option> + <option value="cong asind ott libera">coordinata + asindetica ottativa libera</option> + <option value="cong asind rel app">coordinata + asindetica relativa appositiva</option> + <option value="cong asind rel app comp disug">coordinata + asindetica relativa appositiva in costrutto comparativo</option> + <option value="cong asind rel app giust">coordinata + asindetica relativa giustapposta</option> + <option value="cong asind rel ind">coordinata + asindetica relativa indipendente</option> + <option value="cong asind rel ind temp caus">coordinata + asindetica relativa indipendente con valore temporale-causale</option> + <option value="cong asind rel restr">coordinata + asindetica relativa restrittiva</option> + <option value="cong asind rel restr comp ug">coordinata + asindetica relativa restrittiva in costrutto comparativo</option> + <option value="cong asind sogg soll">coordinata + asindetica soggettiva a sollevamento</option> + <option value="cong asind subord">coordinata asindetica + subordinata</option> + <option value="cong asind temp">coordinata asindetica + temporale</option> + <option value="avv caus">coordinata avversativa causale</option> + <option value="avv comp ug">coordinata avversativa + comparativa di uguaglianza</option> + <option value="avv cons antec">coordinata avversativa + consecutiva con antecedente</option> + <option value="avv dich">coordinata avversativa + dichiarativa</option> + <option value="avv fin">coordinata avversativa finale</option> + <option value="avv int x">coordinata avversativa + interrogativa di tipo x</option> + <option value="avv int x ret">coordinata avversativa + interrogativa di tipo x retorica</option> + <option value="avv ipo caus">coordinata avversativa + ipotetica con valore causale</option> + <option value="avv iuss dir">coordinata avversativa + iussiva diretta</option> + <option value="avv iuss indir">coordinata avversativa + iussiva indiretta</option> + <option value="avv modaliz ott intr">coordinata + avversativa modalizzante ottativa con introduttore</option> + <option value="avv ogg / avv ogg perc">coordinata + avversativa oggettiva</option> + <option value="avv rel app">coordinata avversativa + relativa appositiva</option> + <option value="avv rel app cons antec">coordinata + avversativa relativa appositiva con valore consecutivo</option> + <option value="avv rel app comp ug">coordinata + avversativa relativa appositiva in costrutto comparativo</option> + <option value="avv rel giust">coordinata avversativa + relativa giustapposta</option> + <option value="avv rel ind">coordinata avversativa + relativa indipendente</option> + <option value="avv rel ind temp">coordinata avversativa + relativa indipendente temporale</option> + <option value="avv rel restr">coordinata avversativa + relativa restrittiva</option> + <option value="avv rel restr comp ug">coordinata + avversativa relativa restrittiva in costrutto comparativo</option> + <option value="avv sogg">coordinata avversativa + soggettiva</option> + <option value="avv temp">coordinata avversativa + temporale</option> + <option value="cong concl cons antec">coordinata + conclusiva consecutiva con antecedente</option> + <option value="cong concl dich">coordinata conclusiva + dichiarativa</option> + <option value="cong concl dich ill">coordinata + conclusiva dichiarativa illocutiva</option> + <option value="cong concl iuss dir">coordinata + conclusiva iussiva diretta</option> + <option value="cong concl iuss dir perifr">coordinata + conclusiva iussiva diretta perifrastica</option> + <option value="cong concl iuss indir">coordinata + conclusiva iussiva indiretta</option> + <option value="cong caus">coordinata congiuntiva + causale</option> + <option value="cong comp ipo">coordinata congiuntiva + comparativa con valore ipotetico</option> + <option value="cong comp lim">coordinata congiuntiva + comparativa con valore limitativo</option> + <option value="cong comp mod">coordinata congiuntiva + comparativa con valore modale</option> + <option value="cong comp disug">coordinata congiuntiva + comparativa di disuguaglianza</option> + <option value="cong comp ug">coordinata congiuntiva + comparativa di uguaglianza</option> + <option value="cong rip">coordinata congiuntiva con + funzione di ripresa</option> + <option value="cong conc cond">coordinata congiuntiva + concessiva condizionale</option> + <option value="cong conc fatt">coordinata congiuntiva + concessiva fattuale</option> + <option value="cong cons antec">coordinata congiuntiva + consecutiva con antecedente</option> + <option value="cong cons antec fin">coordinata + congiuntiva consecutiva con antecedente con valore finale</option> + <option value="cong cons antec epes">coordinata + congiuntiva consecutiva con antecedente epesegetica</option> + <option value="cong cons ell">coordinata congiuntiva + consecutiva ellittica</option> + <option value="cong cons libera">coordinata congiuntiva + consecutiva libera</option> + <option value="cong cons libera fin">coordinata + congiuntiva consecutiva libera con valore finale</option> + <option value="cong cons post">coordinata congiuntiva + consecutiva posposta</option> + <option value="cong man">coordinata congiuntiva di + maniera</option> + <option value="cong dich">coordinata congiuntiva + dichiarativa</option> + <option value="cong dich ill">coordinata congiuntiva + dichiarativa illocutiva</option> + <option value="cong eccett">coordinata congiuntiva + eccettuativa</option> + <option value="cong epes">coordinata congiuntiva + epesegetica</option> + <option value="cong esclam">coordinata congiuntiva + esclamativa</option> + <option value="cong esclus">coordinata congiuntiva + esclusiva</option> + <option value="cong fin">coordinata congiuntiva finale</option> + <option value="cong int altern">coordinata congiuntiva + interrogativa alternativa</option> + <option value="cong int altern">coordinata congiuntiva + interrogativa alternativa</option> + <option value="cong int x">coordinata congiuntiva + interrogativa di tipo x</option> + <option value="cong int x">coordinata congiuntiva + interrogativa di tipo x</option> + <option value="cong int x ret">coordinata congiuntiva + interrogativa di tipo x retorica</option> + <option value="cong ipo">coordinata congiuntiva + ipotetica</option> + <option value="cong ipo caus">coordinata congiuntiva + ipotetica con valore causale</option> + <option value="cong ipo sogg">coordinata congiuntiva + ipotetica soggettiva</option> + <option value="cong iuss dir">coordinata congiuntiva + iussiva diretta</option> + <option value="cong iuss indir">coordinata congiuntiva + iussiva indiretta</option> + <option value="cong lim">coordinata congiuntiva + limitativa</option> + <option value="cong modaliz ott intr">coordinata + congiuntiva modalizzante ottativa con introduttore</option> + <option value="cong obl">coordinata congiuntiva obliqua</option> + <option value="cong ogg /cong ogg perc">coordinata + congiuntiva oggettiva</option> + <option value="cong ott libera">coordinata congiuntiva + ottativa libera</option> + <option value="cong rel pseudo">coordinata congiuntiva + pseudo-relativa</option> + <option value="cong rel app">coordinata congiuntiva + relativa appositiva</option> + <option value="cong rel app comp ug">coordinata + congiuntiva relativa appositiva comparativa di uguaglianza</option> + <option value="cong rel app cons">coordinata + congiuntiva relativa appositiva con valore consecutivo</option> + <option value="cong rel app epes">coordinata + congiuntiva relativa appositiva con valore di epesegetica</option> + <option value="cong rel app fin">coordinata congiuntiva + relativa appositiva con valore finale</option> + <option value="cong rel app temp">coordinata + congiuntiva relativa appositiva con valore temporale</option> + <option value="cong rel app comp disug">coordinata + congiuntiva relativa appositiva in costrutto comparativo di + disuguaglianza</option> + <option value="cong rel app giust">coordinata + congiuntiva relativa giustapposta</option> + <option value="cong rel app giust caus">coordinata + congiuntiva relativa giustapposta con valore causale</option> + <option value="cong rel impl">coordinata congiuntiva + relativa implicita</option> + <option value="cong rel impl lim">coordinata + congiuntiva relativa implicita con valore limitativo</option> + <option value="cong rel ind">coordinata congiuntiva + relativa indipendente</option> + <option value="cong rel ind acond">coordinata + congiuntiva relativa indipendente acondizionale</option> + <option value="cong rel ind ipo">coordinata congiuntiva + relativa indipendente con valore ipotetico</option> + <option value="cong rel ind mod">coordinata congiuntiva + relativa indipendente con valore modale</option> + <option value="cong rel ind mod comp ug">coordinata + congiuntiva relativa indipendente in costrutto + comparativo-modale</option> + <option value="cong rel ind temp">coordinata + congiuntiva relativa indipendente temporale</option> + <option value="cong rel restr">coordinata congiuntiva + relativa restrittiva</option> + <option value="cong rel restr caus">coordinata + congiuntiva relativa restrittiva con valore causale</option> + <option value="cong rel restr cons">coordinata + congiuntiva relativa restrittiva con valore consecutivo</option> + <option value="cong rel restr comp ug">coordinata + congiuntiva relativa restrittiva in costrutto comparativo</option> + <option value="cong rel restr temp">coordinata + congiuntiva relativa restrittiva temporale</option> + <option value="cong sogg">coordinata congiuntiva + soggettiva</option> + <option value="cong spec">coordinata congiuntiva + specificativa</option> + <option value="cong strum">coordinata congiuntiva + strumentale</option> + <option value="cong temp">coordinata congiuntiva + temporale</option> + <option value="cong temp caus">coordinata congiuntiva + temporale con valore causale</option> + <option value="cong cons caus">coordinata consecutiva + causale</option> + <option value="cong cons dich">coordinata consecutiva + dichiarativa</option> + <option value="cong corr dich">coordinata correlativa + dichiarativa</option> + <option value="cong corr fin">coordinata correlativa + finale</option> + <option value="cong corr lim">coordinata correlativa + limitativa</option> + <option value="cong corr sogg infinitoprep">coordinata + correlativa soggettiva a infinito preposizionale</option> + <option value="disg comp disug temp">coordinata + disgiuntiva comparativa di disuguaglianza con valore temporale</option> + <option value="disg conc acond">coordinata disgiuntiva + concessiva acondizionale</option> + <option value="disg conc cond">coordinata disgiuntiva + concessiva condizionale</option> + <option value="disg cons libera">coordinata disgiuntiva + consecutiva libera</option> + <option value="disg corr dich">coordinata disgiuntiva + correlativa dichiarativa</option> + <option value="disg man">coordinata disgiuntiva di + maniera</option> + <option value="disg dich">coordinata disgiuntiva + dichiarativa</option> + <option value="disg epes">coordinata disgiuntiva + epesegetica</option> + <option value="disg esclus">coordinata disgiuntiva + esclusiva</option> + <option value="disg int altern">coordinata disgiuntiva + interrogativa alternativa</option> + <option value="disg int altern">coordinata disgiuntiva + interrogativa alternativa</option> + <option value="disg int x">coordinata disgiuntiva + interrogativa di tipo x</option> + <option value="disg int disg">coordinata disgiuntiva + interrogativa disgiuntiva</option> + <option value="disg ipo">coordinata disgiuntiva + ipotetica</option> + <option value="disg lim">coordinata disgiuntiva + limitativa</option> + <option value="disg obl">coordinata disgiuntiva obliqua</option> + <option value="disg ogg">coordinata disgiuntiva + oggettiva</option> + <option value="disg rel ind">coordinata disgiuntiva + relativa indipendente</option> + <option value="disg rel ind acond">coordinata + disgiuntiva relativa indipendente acond</option> + <option value="disg rel ind temp">coordinata + disgiuntiva relativa indipendente temporale</option> + <option value="disg rel restr">coordinata disgiuntiva + relativa restrittiva</option> + <option value="disg rel restr cons">coordinata + disgiuntiva relativa restrittiva con valore consecutivo</option> + <option value="disg sogg">coordinata disgiuntiva + soggettiva</option> + <option value="disg temp">coordinata disgiuntiva + temporale</option> + <option value="cong espl dich">coordinata esplicativa + dichiarativa</option> + <option value="cong espl obl">coordinata esplicativa + obliqua</option> + <option value="cong espl ogg">coordinata esplicativa + oggettiva</option> + <option value="cong espl rel app antec">coordinata + esplicativa relativa appositiva con antecedente</option> + <option value="cong espl rel ind mod">coordinata + esplicativa relativa indipendente con valore modale</option> + <option value="man">di maniera</option> + <option value="man gerundioprep">di maniera a gerundio + preposizionale</option> + <option value="dich">dichiarativa</option> + <option value="dich ill">dichiarativa illocutiva</option> + <option value="eccett">eccettuativa</option> + <option value="eccett comp ug">eccettuativa con valore + di comparativa di uguaglianza</option> + <option value="epes">epesegetica</option> + <option value="esclam">esclamativa</option> + <option value="esclus">esclusiva</option> + <option value="faltern">falsa alternativa</option> + <option value="fcong">falsa congiuntiva</option> + <option value="fin">finale</option> + <option value="fin ipo">finale con valore ipotetico</option> + <option value="rip">funzione di ripresa</option> + <option value="int altern">interrogativa alternativa</option> + <option value="int altern ret">interrogativa + alternativa retorica</option> + <option value="int x">interrogativa di tipo x</option> + <option value="int x ret">interrogativa di tipo x + retorica</option> + <option value="int disg">interrogativa disgiuntiva</option> + <option value="int disg ret">interrogativa disgiuntiva + retorica</option> + <option value="ipo">ipotetica</option> + <option value="ipo biaff">ipotetica biaffermativa</option> + <option value="ipo caus">ipotetica con valore causale</option> + <option value="ipo eccett">ipotetica con valore + eccettuativo</option> + <option value="ipo obl">ipotetica obliqua</option> + <option value="ipo rel giust">ipotetica relativa + giustapposta</option> + <option value="ipo sogg">ipotetica soggettiva</option> + <option value="iuss aug">iussiva augurativa</option> + <option value="iuss dir">iussiva diretta</option> + <option value="iuss dir perifr">iussiva diretta + perifrastica</option> + <option value="iuss indir">iussiva indiretta</option> + <option value="lim">limitativa</option> + <option value="lim caus">limitativa con valore causale</option> + <option value="lim caus eccett">limitativa con valore + causale-eccettuativo</option> + <option value="lim eccett">limitativa con valore + eccettuativo</option> + <option value="mod">modale</option> + <option value="modaliz">modalizzante</option> + <option value="modaliz ott intr">modalizzante ottativa + con introduttore</option> + <option value="modaliz ott libera">modalizzante + ottativa libera</option> + <option value="obl">obliqua</option> + <option value="ogg | ogg aci | ogg perc">oggettiva</option> + <option value="ott intr">ottativa con introduttore</option> + <option value="ott libera">ottativa libera</option> + <option value="pred">predicativa</option> + <option value="rel pseudo">pseudo-relativa</option> + <option value="rel pseudo fin">pseudo-relativa con + valore finale</option> + <option value="rel pseudo scissa">pseudo-relativa + scissa</option> + <option value="rel pseudo scissa temp">pseudo-relativa + scissa con valore temporale</option> + <option value="rel app antec">relativa appositiva con + antecedente</option> + <option value="rel app antec caus">relativa appositiva + con antecedente con valore causale</option> + <option value="rel app antec cons">relativa appositiva + con antecedente con valore consecutivo</option> + <option value="rel app antec fin cons">relativa + appositiva con antecedente con valore consecutivo-finale</option> + <option value="rel app antec fin">relativa appositiva + con antecedente con valore finale</option> + <option value="rel app antec strum">relativa appositiva + con antecedente con valore strumentale</option> + <option value="rel app antec giust">relativa appositiva + con antecedente giustapposta</option> + <option value="rel app antec comp disug">relativa + appositiva con antecedente in costrutto comparativo di + disuguaglianza</option> + <option value="rel app antec comp ug">relativa + appositiva con antecedente in costrutto comparativo di + uguaglianza</option> + <option value="rel app antec eccett">relativa + appositiva con antecedente in costrutto eccettuativo</option> + <option value="rel app antec giust cons">relativa + appositiva giustapposta con valore consecutivo</option> + <option value="rel app antec giust man">relativa + appositiva giustapposta con valore di maniera</option> + <option value="rel app antec giust ipo">relativa + appositiva giustapposta con valore ipotetico</option> + <option value="rel restr antec comp ug">relativa con + antecedente in costrutto comparativo di uguaglianza</option> + <option value="rel giust">relativa giustapposta</option> + <option value="rel impl">relativa implicita</option> + <option value="rel impl cons">relativa implicita con + valore consecutivo</option> + <option value="rel impl fin">relativa implicita con + valore finale</option> + <option value="rel impl lim">relativa implicita con + valore limitativo</option> + <option value="rel impl deon">relativa implicita + deontica</option> + <option value="rel ind">relativa indipendente</option> + <option value="rel ind acond">relativa indipendente + acondizionale</option> + <option value="rel ind ipo">relativa indipendente con + valore ipotetico</option> + <option value="rel ind mod">relativa indipendente con + valore modale</option> + <option value="rel ind temp">relativa indipendente con + valore temporale</option> + <option value="rel ind temp acond">relativa + indipendente con valore temporale acondizionale</option> + <option value="rel ind temp caus">relativa indipendente + con valore temporale-causale</option> + <option value="rel ind caus">relativa indipendente in + costrutto causale</option> + <option value="rel ind comp">relativa indipendente in + costrutto comparativo</option> + <option value="rel ind temp comp ug">relativa + indipendente in costrutto comparativo di uguaglianza</option> + <option value="rel ind mod comp ug">relativa + indipendente in costrutto comparativo-modale</option> + <option value="rel restr antec">relativa restrittiva + con antecedente</option> + <option value="rel restr antec caus">relativa + restrittiva con antecedente con valore causale</option> + <option value="rel restr antec cons">relativa + restrittiva con antecedente con valore consecutivo</option> + <option value="rel restr antec conc cond">relativa + restrittiva con antecedente con valore di concessiva + condizionale</option> + <option value="rel restr antec conc fatt">relativa + restrittiva con antecedente con valore di concessiva fattuale</option> + <option value="rel restr antec fin">relativa + restrittiva con antecedente con valore finale</option> + <option value="rel restr antec ipo">relativa + restrittiva con antecedente con valore ipotetico</option> + <option value="rel restr antec temp">relativa + restrittiva con antecedente con valore temporale</option> + <option value="rel restr antec comp disug">relativa + restrittiva con antecedente in costrutto comparativo di + disuguaglianza</option> + <option value="rel restr antec comp mod">relativa + restrittiva con antecedente in costrutto comparativo-modale</option> + <option value="rel restr antec eccett">relativa + restrittiva con antecedente in costrutto eccettuativo</option> + <option value="rel restr antec lim">relativa + restrittiva con antecedente in costrutto limitativo</option> + <option value="sogg | sogg aci | sogg id | sogg infinitoprep">soggettiva</option> + <option value="sogg soll">soggettiva a sollevamento</option> + <option value="sogg scissa">soggettiva scissa</option> + <option value="spec | spec aci | sogg infinitoprep">specficativa</option> + <option value="strum">strumentale</option> + <option value="subord">subordinata</option> + <option value="temp">temporale</option> + <option value="temp comp ug">temporale con valore + comparativo</option> + <option value="temp ipo">temporale con valore ipotetico</option> + </optgroup> + + </select> + </div> + </div> + <div class="form-group px-1 pb-1 my-1"> + <label for="functionSyntax" + class="text-muted control-label small pl-2 pt-2 m-0">Livello di + subordinazione:</label> + <div class="form-inline input-group px-1 pt-1" action=""> + <div class="input-group-prepend"> + <label class="input-group-text"><ion-icon name="options"></ion-icon></label> + </div> + <select + class="form-control custom-select-sm monMe bg-light text-muted border btn-outline-success" + name="functionSyntax" id="syntfunc" + title="Livello di subordinazione"> + <option value=".+">Qualsiasi livello di subordinazione</option> + + <optgroup label="Livelli di subordinazione"> + <option value="princ">principale</option> + <option value="coord">coordinata a una principale</option> + + <option value="subord i">subordinata di I grado</option> + <option value="subord ii">subordinata di II grado</option> + <option value="subord iii">subordinata di III grado</option> + <option value="subord iv">subordinata di IV grado</option> + <option value="subord v">subordinata di V grado</option> + <option value="subord vi">subordinata di VI grado</option> + <option value="subord vii">subordinata di VII grado</option> + + <option value="coord i">coordinata a una subordinata di + I grado</option> + <option value="coord ii">coordinata a una subordinata + di II grado</option> + <option value="coord iii">coordinata a una subordinata + di III grado</option> + <option value="coord iv">coordinata a una subordinata + di IV grado</option> + <option value="coord v">coordinata a una subordinata di + V grado</option> + + <option value="pcoord">pseudo-coordinata</option> + + <option value="parent">parentetica</option> + <option value="coord 0">coordinata a una parentetica</option> + + </optgroup> + + </select> + </div> + </div> + + <div class="bg-light well m-0" id="contextDivN"></div> + </div> + <!-- FINE TIPO SINTATTICO --> + <!-- TIPO METAFORA --> + + <div style="display: none;" + class="col-12 tab-pane px-0 bg-lida11 border-top" id="tipometaforaN" + role="tabpanel" aria-labelledby="claN-tab" data-claType="Metafora" + data-claActive="1"></div> + <!-- FINE TIPO METAFORA --> + + <div style="display: none;"> + <ul> + <!-- LI CLAUSOLA --> + <li id="li-claxX1Xx" style="display: none;" + class="claLI card mx-0 my-1 py-1 px-0 list-group-item align-items-center border text-muted bg-white"> + <div class="handle container p-0 pl-1"> + <div + class="row no-gutters flex-nowrap align-items-start justify-content-between"> + <div class="col-md-auto pl-0 pr-1 align-self-start"> + <span class="ui-icon ui-icon-arrowthick-2-n-s"></span> + </div> + <div style="min-height: 64px;" + class="col-md-auto pl-0 pr-2 pb-2 flex-fill align-self-start"> + <span class="small clatext">xX2Xx<br> <br></span> + </div> + <div + class="col-md-auto px-1 align-self-start justify-content-end"> + <div class="row no-gutters flex-nowrap justify-content-end"> + <div + class="col-auto pb-0 pl-2 pr-1 pt-1 align-top flex-grow-1 align-self-start justify-content-end text-right bd-highlight text-success editCla" + id="headingCxX1Xx"> + <div style="height: 32px; width: 40px;" + class="custom-switch p-0 align-self-end text-right text-success"> + <input type="checkbox" class="custom-control-input claAct align-self-end text-success border-success btn-success" + name="cla-attiva" aria-label="attiva" id="actiClaSWxX3Xx"><label class="custom-control-label form-control-sm text-success p-0" + for="actiClaSWxX1Xx"></label> + </div> + </div> + <div + class="col-auto pb-0 pl-1 pr-2 pt-1 align-top align-self-start justify-content-end text-right bd-highlight text-success removeCla"> + <ion-icon name="close-circle"></ion-icon> + </div> + </div> + </div> + </div> + <div + class="row no-gutters flex-nowrap align-items-start justify-content-end"> + <div class="col-auto flex-fill align-self-start"></div> + <div + class="col-auto pr-1 align-self-end align-items-end justify-content-end text-right text-success position-absolute"> + <button id="claCollapsexX1Xx" + class="btn btn-sm btn-link claCollBtn collapsed mr-2 px-4 pb-0 border border-success text-success btn-outline-success bg-light" + data-toggle="collapse" data-target="#collapseClaxX1Xx" + aria-expanded="false" aria-controls="collapseClaxX1Xx"> + <ion-icon name="pencil"></ion-icon> + </button> + </div> + </div> + </div> + <div id="collapseClaxX1Xx" class="collapse" + aria-labelledby="headingCxX1Xx" data-parent="#sortable0"> + <div class="card-body p-0 mx-1 mb-1 bg-lida11 border rounded border-success" + id="claBodyxX1Xx"></div> + </div> + </li> + <!-- FINE LI CLAUSOLA --> + + <!-- LI LOGICA --> + <li id="condxX4Xx" style="display: none;" + class="condLI-xX5Xx mx-0 my-1 p-1 list-group-item align-items-center text-muted bg-xX6Xx"> + <ul id="sortablexX4Xx" class="handle list-group ui-sortable"> + <div class="row ml-0 my-1 pr-2 justify-content-between"> + <div class="small font-weight-bold text-muted"> + <select + class="p-0 custom-select-sm small text-muted bg-xX6Xx form-control condType btn-outline-success" + id="andOrSelect-xX4Xx"> + <option>AND</option> + <option>OR</option> + </select> + </div> + <div class="p-0 mr-3 mt-1 text-right text-success"> + <span class="iconClClass removeCond"><ion-icon + name="close-circle"></ion-icon></span> + </div> + </div> + <li id="placeholderSortxX4Xx" + class="mx-0 my-1 p-1 pl-3 list-group-item align-items-center border text-muted small bg-light ui-state-disabled ui-state-disabled-opacity-06">Trascina + qui almeno 2 clausole o condizioni</li> + </ul> + </li> + <!-- FINE LI LOGICA --> + </ul> + </div> + <!-- FINE MODELLI CLAUSOLE --> + </div> + + + </div> + + <script type="module" + src="https://unpkg.com/ionicons@5.5.2/dist/ionicons/ionicons.esm.js"></script> + <script nomodule + src="https://unpkg.com/ionicons@5.5.2/dist/ionicons/ionicons.js"></script> +</body> +</html> \ No newline at end of file diff --git a/js/minimap_4.3.js b/js/minimap_4.3.js new file mode 100644 index 0000000..50808a0 --- /dev/null +++ b/js/minimap_4.3.js @@ -0,0 +1,165 @@ +/** + * + */ + +const displayCantoId = '#displaycanto'; +const displayCantoWrapperId = '#displaycantoWrapper'; +const minimapviewerId = '#minimapviewer'; +const displayminimapId = '#displayminimap'; +const visCantoClass = '.visCanto'; +const fillerClass = '.filler'; +const bodyScript = '<script type="module" src="https://unpkg.com/ionicons@5.5.2/dist/ionicons/ionicons.esm.js"></script> <script nomodule src="https://unpkg.com/ionicons@5.5.2/dist/ionicons/ionicons.js"></script>' + +let minimap = document.createElement('div'); +let viewer = document.createElement('div'); +let minimapContent = document.createElement('iframe'); +let realScale; +let currentMinimap = ''; +let initOffset = ''; +let correctionFactor = 1; +let scrollCorrectionFactor = 0.997; + + +function drawMinimap(name, onlyContent = false, cantoOffset = 0){ + var cantoHeightToSet = $("body")[0].clientHeight*cssCantoHeight; + var maxCantoHeightToSet = $("body")[0].clientHeight*cssTableMainHeight-110; // 63 padding top + 47 margine bottom + $(visCantoClass).css("max-height", maxCantoHeightToSet); + $(displayCantoId).css("max-height", maxCantoHeightToSet); + + currentMinimap = name; + + if (currentMinimap == '#vistaFrasi') { + //correctionFactor = 1.003; + correctionFactor = 1.009; + scrollCorrectionFactor = 0.997; + //scrollCorrectionFactor = 1; + } else { + correctionFactor = 1; + scrollCorrectionFactor = 0.997; + }; + + initOffset = parseInt($("body").css("padding-top").replace("px", ""))+63; + + if ($(displayminimapId).lenght > 0) { + $(displayminimapId)[0].remove(); + } + + showMinimap(onlyContent); + + if (onlyContent == false) { + $(displayCantoWrapperId).scrollTop(cantoOffset); + $(minimapviewerId).offset({ top: initOffset}); + var minimapTopPos = $(minimapviewerId).offset().top; + + $(minimapviewerId).draggable({ + axis: "y", + containment: $(displayminimapId), + scroll: false, + start: function(event, ui) { minimapScrolling = true; }, + stop: function(event, ui) { + minimapScrolling = false; + latestOffset = $(displayCantoWrapperId).scrollTop() + }, + drag: function(event, ui) { + minimapScrolling = true; + $(displayCantoWrapperId).scrollTop((ui.offset.top - minimapTopPos) / (realScale*correctionFactor)); + } + }); + trackScrollCanto(); + }; +} + + +function showMinimap(onlyContent) { + viewer.className = 'minimap__viewer'; + viewer.id = 'minimapviewer'; + minimapContent.className = 'minimap__content'; + minimap.append(viewer, minimapContent); + $(displayminimapId).append(minimap); + + let html = $(currentMinimap)[0].outerHTML; + if (html == null | html == '') + return; + + let iFrameDoc = minimapContent.contentWindow.document; + + var cssLinkb = document.createElement("link"); + cssLinkb.href = $("#" + currStyle + "-Boot")[0].href; + cssLinkb.rel = "stylesheet"; + cssLinkb.type = "text/css"; + + var cssLinkscroll = document.createElement("link"); + cssLinkscroll.href = $("#" + currStyle + "-Custom")[0].href; + cssLinkscroll.rel = "stylesheet"; + cssLinkscroll.type = "text/css"; + + iFrameDoc.open(); + iFrameDoc.write('<div class="blog-main w-100 " style="display: d-flex;">'); // da pulire... + iFrameDoc.write(html); + iFrameDoc.write('</div>'); + iFrameDoc.write(bodyScript); + iFrameDoc.close(); + + iFrameDoc.head.appendChild(cssLinkb); + iFrameDoc.head.appendChild(cssLinkscroll); + + let bgCanto = $(visCantoClass).css('background-color'); + $('iframe').contents().find('body').css('background-color', bgCanto + ' !important;'); + + var infoHeightToSet = $("body")[0].clientHeight*cssTableMainHeight - $(visCantoClass)[0].clientHeight-2-63-2-46 + $("#displayinfo").css("maxHeight", infoHeightToSet+"px"); + $("#displayinfo").css("height", infoHeightToSet+"px"); + $("#displaynote").css("maxHeight", infoHeightToSet+"px"); + $("#displaynote").css("height", infoHeightToSet+"px"); + $(".visInfo").css("height", (infoHeightToSet+4)+"px"); + + getDimensionsDiv(false, onlyContent); + } + + + function getDimensionsDiv(onlyViewer = false, onlyContent = false) { + var srcCantoWidth = $(currentMinimap)[0].clientWidth; + var srcCantoHeight = $(currentMinimap)[0].clientHeight; + var maxHeight = ($("#colMinimap")[0].clientHeight)-68; //h attuale dello spazio minimap; -63 top padding, -1 bordo col, -4 bordi iframe + var maxWidth = $(displayminimapId)[0].clientWidth; //w attuale della minimap (css) + var miniCantoWidth = srcCantoWidth+64; //w prevista del canto nella minimap 64: padding pr + blank space + var miniCantoHeight = srcCantoHeight*correctionFactor; //h prevista del canto nella minimap + var resizableWidth = $(visCantoClass)[0].clientWidth; + var resizableHeight = $(visCantoClass)[0].clientHeight; + var resizableRatio = resizableHeight/resizableWidth; + var heightRatio = resizableHeight/srcCantoHeight; + + if (onlyViewer == false) { + realScale= Math.min((maxWidth/miniCantoWidth), (maxHeight/miniCantoHeight), 1); + minimapContent.style.transform = `scale(${realScale})`; + minimapContent.style.height = miniCantoHeight + "px"; + minimapContent.style.width = maxWidth/realScale + "px"; + } + + let viewerHeight = (miniCantoHeight*realScale*heightRatio/correctionFactor)-2; // -2 = bordi + let viewerWidth = Math.min(viewerHeight/resizableRatio, maxWidth-3)+2; // -3 bordi + + var displayminimapHeight = (miniCantoHeight*realScale)+6; + + $(displayminimapId).height(displayminimapHeight); + $(fillerClass).height(Math.max(maxHeight-displayminimapHeight)+2, 0); + + if (onlyContent == false) { + viewer.style.height = viewerHeight + "px"; + viewer.style.width = viewerWidth + "px"; + trackScrollCanto(); + }; + }; + + + function trackScrollCanto() { + var minimapHeight = ($(currentMinimap)[0].clientHeight+32)*realScale; + var posDbefore = $(displayCantoWrapperId).scrollTop(); + var srcCantoHeight = $(currentMinimap)[0].clientHeight; + var posAfter = (minimapHeight*posDbefore*correctionFactor)/(srcCantoHeight*scrollCorrectionFactor); + $(minimapviewerId).offset({ top: initOffset + posAfter}); + latestOffset = posDbefore; + }; + + + diff --git a/js/script_4.3.js b/js/script_4.3.js new file mode 100644 index 0000000..5cb0453 --- /dev/null +++ b/js/script_4.3.js @@ -0,0 +1,1428 @@ +/** + * + */ + +var getJsonQuery; +var currPage = 0; +var latestPhraseId = ""; +var numeroPagine = 0; +var latestOffset = 0; + +const cssCantoHeight = 0.65; +const cssTableMainHeight = 0.95; //.tableMain {height: 95%;} +const bgImgUrl1 = "./images/fefeff.png"; +const bgImgUrl2 = "./images/f8f9fa.png"; + + +$(document).ready(function() { + + window.addEventListener("resize", function() { + clearTimeout(this.id); + this.id = setTimeout(doneResizing, 300); + }, true); + + function doneResizing(){ + $("#displayminimap").empty();; + $('#displayminimap').css('height', 'auto'); + drawMinimap(currentMinimap, false, latestOffset); + }; + + $(displayCantoWrapperId).scroll(function() { + if (minimapScrolling) { + minimapScrolling = false + } + else { + trackScrollCanto() + } + }); + + // Evento: click sul cambio stile + $('.stileLink').on('click', function() { + var newStyle = $(this)[0].id; + setStyle(newStyle); + }); + + + $("#incrFontSize").click(function() { + newFontSize = incSize($('#displaycanto').css("font-size"), 10, 18, 58) + newH4FontSize = incSize($('#displaycanto h4').css("font-size"), 12, 24, 72) + //newLiFontSize = incSize($('#displaycanto li::marker').css("font-size"), 6, 12, 32) + $('#displaycanto').css("font-size", newFontSize); + $('#displaycanto h4').css("font-size", newH4FontSize); + //$('#displaycanto li::marker').css("font-size", newLiFontSize); + drawMinimap(currentMinimap, false); + $('iframe').contents().find('.blog-main').css("font-size", newFontSize); + $('iframe').contents().find('.blog-main h4').css("font-size", newH4FontSize); + }); + + + // Funzioni di gestione del comportamento dei bottoni collapse + $('#collapseLogic').on('hidden.bs.collapse', function (e) { + if (e.target.id == "collapseLogic") { + $("#showLogic").html('<span class="text-muted">Mostra</span>'); + $("#collapseAdvanced").collapse('hide'); + }; + }) + + $('#collapseLogic').on('shown.bs.collapse', function () { + $("#showLogic").html('<span class="font-weight-bold text-muted">Nascondi</span>'); + $("#collapseAdvanced").collapse('show'); + }) + + $('#collapseOptions').on('hidden.bs.collapse', function (e) { + if (e.target.id == "collapseOptions") { + $("#showOptions").html('<span class="text-muted">Opzioni</span>'); + }; + }) + + $('#collapseOptions').on('shown.bs.collapse', function () { + $("#showOptions").html('<span class="font-weight-bold text-muted">Opzioni</span>'); + }) + + $('.collapse').on('hide.bs.collapse', function (e) { + if (e.target.id.substr(0,11) == "collapseCla") { + var claIdNum = e.target.id.substr(11); + $("#claCollapse" + claIdNum)[0].removeAttribute("style"); + $("#claCollapse" + claIdNum).removeClass( "border-bottom-0" ); + $("#claCollapse" + claIdNum).addClass( "border border-success" ); + $("#claCollapse" + claIdNum).blur(); + e.stopPropagation(); + }; + }) + + $('.collapse').on('show.bs.collapse', function (e) { + if (e.target.id.substr(0,11) == "collapseCla") { + var claIdNum = e.target.id.substr(11); + $("#claCollapse" + claIdNum)[0].setAttribute("style", "border-bottom-left-radius: 0;border-bottom-right-radius: 0;"); + $("#claCollapse" + claIdNum).removeClass( "border border-success" ); + $("#claCollapse" + claIdNum).addClass( "border-bottom-0" ); + $("#claCollapse" + claIdNum).blur(); + e.stopPropagation(); + }; + }) + + // Evento: click sullo switch di ricerca avanzata + $('#searchToggle').on('change', function() { + if ($(this).prop('checked')) { + queryJson.QueryAvanzata = "1"; + $("#collapseOptions").collapse('hide'); + $("#simpleSearchDiv").fadeOut(300, function(){ + $("#simpleSearchDiv").removeClass( "d-flex" ) + $("#advancedSearchDiv").addClass( "d-flex" ) + $("#advancedSearchDiv").fadeIn(400, function(){ + $("#collapseAdvanced").collapse('show'); + $("#collapseLogic").collapse('show'); + }); + }); + } else { + queryJson.QueryAvanzata = "0"; + $("#collapseAdvanced").collapse('hide'); + $("#advancedSearchDiv").fadeOut(300, function(){ + $("#advancedSearchDiv").removeClass( "d-flex" ) + $("#simpleSearchDiv").addClass( "d-flex" ) + $("#simpleSearchDiv").fadeIn(400); + + }); + }; + }); + + // Inizializza sortable + $( "#sortable0" ).sortable({ + items: "> li", + handle: ".handle" + }); + + // Inizializza selectable-xX0 e definisce le funzioni + $("#selectable-xX0").selectable({ + filter: ".sel-canto", + selected: function(event, ui) { + window.context0[ui.selected.id.substring(0,1)][ui.selected.id.substring(2)] = 1; + var tmpFocusBtn = "#plusBtn" + ui.selected.id.substring(0,1) + "-xX" + tabID; + $(tmpFocusBtn).focus(); + } + }); + + // Inizializza resizable + $(".menuNavigazione").resizable({ + handles: "e", + minWidth: 100, + maxWidth: 350, + resize: function(event, ui) { + getDimensionsDiv(true); + }, + stop: function(event, ui) { + setWidthInPercent(ui.element); + } + }); + + $(".menuRicerca").resizable({ + handles: "w", + minWidth: 350, + resize: function(event, ui) { + ui.position.left = 0; + getDimensionsDiv(true); + }, + stop: function(event, ui) { + setWidthInPercent(ui.element); + } + }); + + $(".visCanto").resizable({ + handles: "s", + minHeight: 80, + //maxHeight: 880, + alsoResize: "#displaycanto", + resize: function(event, ui) { + $("#displaycanto").width(" min-content"); + + var infoHeightToSet = $("body")[0].clientHeight*cssTableMainHeight - $(visCantoClass)[0].clientHeight-2-63-2-46 + $("#displayinfo").css("maxHeight", infoHeightToSet+"px"); + $("#displayinfo").css("height", infoHeightToSet+"px"); + $("#displaynote").css("maxHeight", infoHeightToSet+"px"); + $("#displaynote").css("height", infoHeightToSet+"px"); + $(".visInfo").css("height", (infoHeightToSet+4)+"px"); + + getDimensionsDiv(true); + }, + stop: function(event, ui) { + $("#displaycanto").width(" min-content"); + } + }); + + // Funzioni di gestione dei bottoni di paginazione + $('#collapseZero').on('shown.bs.collapse', function () { + managePage(); + }); + + $('#paginaLista').on('change', function() { + currPage = $("#paginaLista")[0].options[$("#paginaLista")[0].selectedIndex].value; + managePage(); + }); + + $('#pagPrecedente').on('click', function() { + if (!$(this).hasClass("disabled")){ + currPage--; + $('#paginaLista option[value=' + currPage + ']').prop('selected', true); + managePage(); + }; + }); + + $('#pagSuccessiva').on('click', function() { + if (!$(this).hasClass("disabled")){ + currPage++; + $('#paginaLista option[value=' + currPage + ']').prop('selected', true); + managePage(); + }; + }); + + // Evento: modifica dell'unita di ricerca' + $("#unitaRicerca").on('change', function() { + queryJson.unitaRicerca = $("#unitaRicerca")[0].options[$("#unitaRicerca")[0].selectedIndex].value; + }); + + // Evento: modifica di un campo clausole + $("form #lemma_forma,#queryText,#opzioni_testo").on('change', function() { + if ($(this)[0].id == "queryText"){ + var orgSelection = $('#lemma_forma option:selected')[0].value + var qText = $(this)[0].value; + if (qText !== null && qText !== '') {qText = ' "' + qText + '"';} + setLemmaForma(qText,orgSelection); + }; + refreshClaList(); + }); + + $('#cla-TabContent').on('change', '.monMe', function() { + refreshClaList(); + }); + + // Evento: click sull'icona rimuovi clausola + $('#cla-TabContent').on('click', '.removeCla', function() { + var claListItemId = $(this).closest('li').attr('id'); + var claIdNum = claListItemId.substr(6); + claListLen--; + $("#" + claListItemId)[0].remove(); + delete queryJson["Clausola" + claIdNum]; + delete window["context" + claIdNum]; + refreshClaList(); + refreshSortables(); + }); + + // Evento: click sull'icona rimuovi condizione + $('#sortable0').on('click', '.removeCond', function() { + $(this).closest('ul').parent().remove(); + condListLen--; + refreshClaList(); + refreshSortables(); + refreshConnectWith(); + if (claListLen == 0 && condListLen == 0) { + $('#sortable0').html(emptyClaList); + } + }); + + // Evento: click sulla lista di clausole nel dropbox "Aggiungi clausola di tipo:" o "aggiungi condizione logica:" + $('.addCCbtn').on('click', function() { + var addCC = $(this).attr('id'); + switch (addCC) { + case "btnAddCla1": + tabID++; + addGramCla("#sortable0",1,tabID,1); + break; + case "btnAddCla2": + tabID++; + addSyntCla("#sortable0",1,tabID,1); + break; + case "btnAddCla3": + tabID++; + addMetaCla("#sortable0",0,tabID,0); + break; + case "btnAddCond": + addLogicCond("#sortable0","OR"); + break; + default: + }; + refreshClaList(); + refreshSortables(); + }); + + // Evento: clausola spostata nella lista + $('#sortable0').sortable({ + opacity: 0.6, + cursor: 'move', + update: function() { + refreshClaList(); + refreshSortables(); + } + }); + + // Evento: cambiato il tipo della condizione logica + $('#cla-TabContent').on('change', '.condType', function() { + var condtype = $(this).val(); + var condId = $(this).attr('id').substring(12); + if (condtype == "AND") { + $("#cond" + condId).removeClass( "condLI-OR bg-lida13" ) + $("#cond" + condId).addClass( "condLI-AND bg-lida12" ) + $(this).removeClass( "bg-lida13" ) + $(this).addClass( "bg-lida12" ) + } else { + $("#cond" + condId).removeClass( "condLI-AND bg-lida12" ) + $("#cond" + condId).addClass( "condLI-OR bg-lida13" ) + $(this).removeClass( "bg-lida12" ) + $(this).addClass( "bg-lida13" ) + }; + refreshClaList(); + }); + + // Evento: click sul bottone di edit delle clausole + $('#cla-TabContent').on('click', '.claAct', function() { + var claListItemId = $(this).closest('li').attr('id'); + var tabPanelId = "#" + claListItemId.substring(3); + if ($(this).prop('checked')) { + $(tabPanelId).attr("data-claActive", 1); + $(this).closest('li').find('.clatext').fadeTo( "slow", 1 ); + } else { + $(tabPanelId).attr("data-claActive", 0); + $(this).closest('li').find('.clatext').fadeTo( "slow", 0.6 ); + } + refreshSortables(); + }); + + // Evento: click sull'icona di refresh dei radio button + $('#cla-TabContent').on('click', '.radioReset', function() { + fSet = $(this).siblings('fieldset'); + if (fSet.find(":checked").length) { + radioChecked = fSet.find(":checked")[0]; + radioChecked.checked = false; + }; + refreshClaList(); + }); + + // Evento: click sull'icona di trash del contesto + $('#rigaRicerca').on('click', '.trashClaCont', function() { + var claIdNum = $(this)[0].id.substring(15); + resetContext(claIdNum); + refreshClaList(); + }); + + // Evento: click sull'icona di add del contesto + $('#rigaRicerca').on('click', '.addClaCont', function() { + var claIdNum = $(this).closest('.ui-selectable').attr('id').substr(13); + var selectedCanti = $(this).closest('.card').find('.ui-selected'); + if (selectedCanti.length == 0) { + $(this).closest('.card').find('.ui-selectee').each(function() { + $(this).addClass( "ui-selected" ); + window["context" + claIdNum][$(this).attr("id").substring(0,1)][$(this).attr("id").substring(2)] = 1; + }); + }; + parseContext(claIdNum); + hideContextCanti(claIdNum); + if ($(this).closest('.card').find('span:visible').length == 1) { + $(this).closest('.card').find('div .sel-canti-intro').text("Selezionati tutti i canti."); + }; + refreshClaList(); + }); + + // Evento: click sull'icona di save local + $('#advancedSearchDiv').on('click', 'ion-icon[name="save-outline"]', function() { + var fileA = document.createElement("a"); + fileA.href = window.URL.createObjectURL(new Blob([JSON.stringify(queryJson)], {type: "text/plain;charset=utf-8"})); + fileA.download = "LiDaQuery.txt"; + fileA.click(); + fileA.remove(); + }); + + // Evento: click sull'icona di load local + $('#advancedSearchDiv').on('click', 'ion-icon[name="folder-open-outline"]', function() { + $('#apriFile').click(); + }); + + $("#apriFile").on('change', function() { + var file = $(this).prop('files')[0]; + var reader = new FileReader(); + reader.onload = function(data){ + queryJson = JSON.parse(data.target.result) + makeUpGui(queryJson); + }; + if (file) {reader.readAsText(file);} + }); + + // Evento: SCELTA CATEGORIA GRAMMATICALE + $('#cla-TabContent').on('change', 'select.catgram', function(e) { + e.preventDefault(); + var tabPaneId = ($(this).closest('.tab-pane').attr("id")); + var selectedValue = $(this).val(); + addCatgramSubcla(tabPaneId,selectedValue); + refreshClaList(); + }); + + // Evento: Submit form + $("form").submit(function(e){ + e.preventDefault(); + }); + + // Evento: click sul bottone di reset semplice + $('#cleanresult').on('click', function() { + resetResult(); + resetSimpleGui(); + refreshClaList(); + }); + + // Evento: click sul bottone di reset azanzata + $('#cleanresult2').on('click', function() { + resetResult(); + resetAdvGui(); + refreshClaList(); + }); + + // Variabili JSON per i filtri + var verboJson = { + "filtriverbo": { + "Diatesi": ["Attivo", "Passivo"], + "Transitivita": ["Transitivo", "Intransitivo"], + "Genere": ["Femminile", "Maschile"], + "Numero": ["Singolare", "Plurale"], + "Pers": ["Impersonale"], + "Rifl": ["Riflessivo"], + "Coniugazione": ["Qualsiasi coniugazione", "Prima coniugazione", "Seconda coniugazione", "Terza coniugazione", "Essere coniugazione", "Avere coniugazione"], + "Tempi": ["Qualsiasi tempo verbale", "Indicativo presente", "Indicativo passato prossimo", "Indicativo imperfetto", "Indicativo passato remoto", + "Indicativo trapassato prossimo", "Indicativo trapassato remoto", "Indicativo futuro semplice", "Indicativo futuro anteriore", "Congiuntivo presente", + "Congiuntivo imperfetto", "Congiuntivo passato", "Congiuntivo trapassato", "Condizionale presente", "Condizionale passato", "Imperativo presente", + "Infinito presente", "Infinito passato", "Participio presente", "Participio passato", "Gerundio presente", "Gerundio passato"], + "Persona" : ["Qualsiasi persona", "1ª persona singolare", "2ª persona singolare", "3ª persona singolare", "1ª persona plurale", "2ª persona plurale", "3ª persona plurale"], + "Funzione": ["Tutte le funzioni", "Aggettivo", "Sostantivo maschile", "Sostantivo femminile"], + "Declinazione": ["Tutte le declinazioni", "Prima declinazione", "Seconda declinazione", "Terza declinazione"], + } + } + + var sostantivoJson = { + "filtrisostantivo": { + "Numero": ["Singolare", "Plurale"], + "Genere_lemma": ["Lemma femminile", "Lemma maschile"], + "Genere_forma": ["Forma femminile", "Forma maschile"], + "riflpers": ["In locuzione"], + "Declinazione_sostantivo": ["Tutte le declinazioni", "Prima declinazione", "Seconda declinazione", "Terza declinazione"], + } + } + + var aggettivoJson = { + "filtriaggettivo": { + "Classe": ["1ª", "2ª"], + "Genere": ["Femminile", "Maschile"], + "Numero": ["Singolare", "Plurale"], + "Con_oggetto_indiretto": ["Con oggetto indiretto"], + "Tipo_aggettivo": ["Qualsiasi tipo aggettivo", "Qualificativo", "Indefinito", "Interrogativo", "Esclamativo", "Numerale", "Dimostrativo", "Relativo", "Possessivo", "In locuzione"], + "Grado": ["Qualsiasi grado", "Comparativo di maggioranza", "Comparativo di minoranza", "Comparativo di uguaglianza", "Superlativo relativo", "Superlativo assoluto"], + "Tipo_di_Complemento": ["Qualsiasi tipo di Complemento", "Introdotto da A", "Introdotto da CON", "Introdotto da CONTRO", "Introdotto da DA", "Introdotto da DI", "Introdotto da IN", + "Introdotto da PER", "Introdotto da SU", "Introdotto da TRA", "Introdotto da VERSO", "Introdotto da SOPRA", + "Introdotto da SOTTO", "Introdotto da DINANZI", "Introdotto da prep.", "Oggetto ind.", "Ogg. indi. + compl. con DI", "Ogg. ind. pronom."], + "Tipo_di_frase": ["Qualsiasi tipo di frase", "Con infinito retto da A", "Con infinito retto da DA", "Con infinito retto da DI", "Con infinito retto da PER", + "Con infinito retto da SE", "Con subordinata all'indic.", "Con subordinata al cong.", "In locuzione imp.+infinito", + "In locuzione imp.+che+indic.", "In locuzione imp.+che+cong.", "In locuzione imp.+se+indic.", "In locuzione imp.+se+cong.", + "In locuzione imp.+come+indic.", "In locuzione imp.+quando+indic.", "In locuzione imp.+perché+cong.", "In locuzione imp.+a+infinito"] + } + } + + var pronomeJson = { + "filtripronome": { + "Genere": ["Femminile", "Maschile"], + "Numero": ["Singolare", "Plurale"], + "Classe_Persona": ["Qualsiasi Classe Persona", "1ª", "2ª", "3ª"], + "Tipo": ["Qualsiasi tipo", "Personale", "Riflessivo", "Interrogativo", "Esclamativo", "Dimostrativo", "Relativo", "Possessivo"], + "Forma_Personali_Riflessivi": ["Qualsiasi forma (Personali-Riflessivi)", "Libero", "Libero in Composizione", "Proclitico", "Enclitico"], + "Funzione_Personali": ["Qualsiasi funzione (Personali)", "Libero - soggetto", "Libero - soggetto impersonale", "Libero - complemento", "Libero - rafforzativo", + "Clitico - accusativo", "Clitico - dativo", "Clitico - partitivo"], + "Tipo_Riflessivi": ["Qualsiasi tipo (Riflessivi)", "Proprio", "Lessicalizzato", "Impersonale", "Passivo", "Reciproco"] + } + } + + var articoloJson = { + "filtriarticolo": { + "Genere": ["Femminile", "Maschile"], + "Numero": ["Singolare", "Plurale"], + "Tipo": ["Determinativo", "Indeterminativo"] + } + } + + var avverbioJson = { + "filtriavverbio": { + "Tipo": ["Qualsiasi tipo", "Al comparativo di maggioranza", "Al comparativo di minoranza", + "Al superlativo assoluto", "Al superlativo relativo", + "In Locuzione", "In Locuzione separato", "Proclitico", "Enclitico"] + } + } + + var preposizioneJson = { + "filtripreposizione": { + "Tipo_I": ["Propria", "Impropria"], + "Tipo_preposizione": ["Qualsiasi tipo preposizione", "Semplice", "Articolata", "In locuzione", "In locuzione separata"], + "Sintassi": ["Qualsiasi sintassi", "Soggettiva", "Oggettiva", "Dichiarativa", "Completiva obliqua", "Finale", + "Causale", "Concessiva", "Consecutiva", "Temporale", "Modale", "Eccettuativa", "Esclusiva", + "Limitativa", "Comparativa", "Avversativa"], + "Complemento_(I)": ["Qualsiasi complemento (I)", "Di stato in luogo", "Di moto a luogo", "Di moto da luogo", "Di moto per luogo", + "Di luogo", "Predicativo del soggetto", "Predicativo dell'oggetto", "Di distanza", + "Di tempo determinato", "Di tempo continuato", "Di tempo", "Di termine", "Di vantaggio", + "Di svantaggio", "Di specificazione", "Di modo", "Di mezzo", "Di compagnia", + "Di unione", "Di allontanamento-separazione", "Di materia"], + "Complemento_(II)": ["Qualsiasi complemento (II)", "Di limitazione", "Di qualità", "Di causa", "Di agente", "Di causa efficiente", "Di fine o scopo", + "Di paragone", "Di argomento", "Distributivo", "Di sostituzione", "Di estensione", "Di rapporto", + "Di esclusione", "Di peso", "Di quantità", "Di colpa", "Di denominazione", "partitivo", + "Di abbondanza-privazione", "Di origine-provenienza", "Concessivo", "Di effetto", "Di pena", + "Simmetrico", "Indiretto esperiente", "Indiretto dativo", "Indiretto oggetto", "Indiretto possessore", + "Indiretto benefattivo"] + } + } + + var congiunzioneJson = { + "filtricongiunzione": { + "Coo_sub": ["Coordinativa", "Subordinativa"], + "Tipo": ["Qualsiasi tipo", "Semplice", "Composta", "Locuzione", "Locuzione separata"], + "Coord_tipo": ["Qualsiasi coord. tipo", "Copulativa", "Disgiuntiva", "Avversativa", "Esplicativa", "Conclusiva", "Correlativa"], + "Subord_tipo": ["Qualsiasi subord. tipo", "Soggettiva", "Oggettiva", "Dichiarativa", "Completiva obliqua", "Interrogativa", + "Finali", "Causali", "Concessiva", "Consecutiva", "Temporale", "Modale", + "Eccettuativa", "Comparativa", "Condizionale", "Esclusiva", "Limitativa"] + } + } + + var onomasticacitazioneJson = { + "filtrionomastica": { + "Tipo": ["Qualsiasi tipo", "Nome proprio", "Nome proprio separato", "Titolo"] + }, + + "filtricitazione": { + "Tipo": ["Qualsiasi tipo", "Latina", "Provenzale", "Francese", "Spagnola", "Ebraica", "Greca"] + } + } + + var categorie = { + "verbovolgare": "filtriverbo", + "sostantivovolgare": "filtrisostantivo", + "pronomevolgare": "filtripronome", + "aggettivovolgare": "filtriaggettivo", + "articolovolgare": "filtriarticolo", + "avverbiovolgare": "filtriavverbio", + "preposizionevolgare": "filtripreposizione", + "congiunzionevolgare": "filtricongiunzione", + "onomasticavolgare": "filtrionomastica", + "citazionevolgare": "filtricitazione" + } + + var catGrammsenzaspec = ['all', 'interiezionevolgare'] + + var subordinazioneJson = { + "subordinazione": { + "livello": ["Qualsiasi livello di subordinazione", "principale", "coordinata a una principale", "subordinata di I grado", + "subordinata di II grado", "subordinata di III grado", "subordinata di IV grado", "subordinata di V grado", + "subordinata di VI grado", "subordinata di VII grado", "coordinata a una subordinata di I grado", + "coordinata a una subordinata di II grado", "coordinata a una subordinata di III grado", + "coordinata a una subordinata di IV grado", "coordinata a una subordinata di V grado", "pseudo-coordinata", + "parentetica", "coordinata a una parentetica"] + } + } + + var categorieJson = $.extend({}, verboJson, sostantivoJson, pronomeJson, aggettivoJson, articoloJson, avverbioJson, preposizioneJson, congiunzioneJson, onomasticacitazioneJson); + + + // Variabili testuali per compattezza + const iconReset = '<div class="text-right text-success radioReset"><ion-icon name="refresh-circle"></ion-icon></div>'; + const iconCloseCond = '<div class="p-0 mr-3 mt-0 text-right text-success"><span class="iconClClass removeCond"><ion-icon name="close-circle"></ion-icon></span></div>'; + const emptyClaList = '<li id="li-cla0" class="list-group-item align-items-center my-1 ui-state-default ui-state-disabled border text-muted bg-white ui-state-disabled-opacity-06 small">Nessuna clausola aggiunta.</li>'; + const defaultCond = '<div id="cla-defaultCond" class="col-12 p-1 small font-weight-bold text-muted"> Clausole e condizioni in AND di default</div>'; + const canticheList = ["Inferno","Purgatorio","Paradiso"]; + const cla0JsonText = '{"queryText": "", "lemma_forma": "lemma", "opzioni_testo": "parola", "TipoClausola": "0", "Attiva": "0"}'; + const condLIplaceholderText1 = 'Trascina qui almeno 1 clausola o condizione'; + const condLIplaceholderText2 = 'Trascina qui almeno 2 clausole o condizioni'; + const condLIplaceholderText1d = 'Trascina qui almeno 1 clausola o condizione, oppure attiva le clausole inattive'; + const condLIplaceholderText2d = 'Trascina qui almeno 2 clausole o condizioni, oppure attiva le clausole inattive'; + const condLIplaceholderPart1 = '<li id="placeholderSort'; + const condLIplaceholderPart2 = '" class="mx-0 my-1 p-1 pl-3 list-group-item align-items-center border text-muted small bg-light ui-state-disabled ui-state-disabled-opacity-06">'; + + // Variabili e costanti funzionali + var minimapScrolling = false; + var tabID = 0; + var claListLen = 0; + var condListLen = 0; + var logicExprString = ``; + var guiLogicString = ``; + const cc0 = new Array(34).fill(0); + const cc1 = new Array(33).fill(0); + const cc2 = new Array(33).fill(0); + const contextEmpty = [cc0,cc1,cc2]; + var queryJson = JSON.parse('{"EsprLogica":"", "LogicaGui":"", "QueryAvanzata": "0"}'); + queryJson.LiDaVersion = "1.0"; + queryJson.unitaRicerca = "verso"; + queryJson.Clausola0 = JSON.parse(cla0JsonText); + queryJson.Clausola0.contesto = JSON.stringify(contextEmpty); + window.context0 = JSON.parse(JSON.stringify(contextEmpty)); + const jsonReplacer = (key, value) => + typeof value === 'undefined' ? 0 : value; + const nRisultatiPerPag = 25; + + // Fine variabili + + + getJsonQuery = function(){ + return queryJson; + }; + + // Funzione di creazione del tab delle clausole grammaticali + function addGramCla(sortableId,active,tabID,toExpand){ + if (active > 0) { + var checkInsert = ' checked="checked"'; + } else { + var checkInsert = ''; + }; + var claText = "Categoria grammaticale: <br>"; + addLIitem(sortableId,tabID,claText,checkInsert,toExpand); + var claClone = document.getElementById("tipogrammaticaleN").cloneNode(true); + claClone.setAttribute("id","cla" + tabID); + claClone.setAttribute("data-claActive", active); + claClone.setAttribute("aria-labelledby","cla" + tabID + "-tab"); + claClone.setAttribute("style", ""); + $('#claBody' + tabID).append(claClone); + // se non cambio l'id della select react non rileva l'evento onchange: + $('#cla' + tabID + " #grammtypesN").attr("id","grammtypes" + tabID); + $('#cla' + tabID + " #lemma_formaN").attr("id","lemma_forma" + tabID); + $('#cla' + tabID + " #queryTextN").attr("id","queryText" + tabID); + $('#cla' + tabID + " #opzioni_testoN").attr("id","opzioni_testo" + tabID); + $('#cla' + tabID + " #contextDivN").attr("id","contextDiv" + tabID); + addClaContext(tabID); + } + + // Funzione di creazione delle subclausole grammaticali basate sul valore scelto + function addCatgramSubcla(tabPaneId,selectedValue){ + var dettagliBox = $("#" + tabPaneId + " .dettaglifiltri"); + dettagliBox.html(""); + if (Object.keys(categorie).includes(selectedValue)) { + var filtro = categorie[selectedValue] + var keys = Object.keys(categorieJson[filtro]) + for (var key in keys) { + var vals = categorieJson[filtro][keys[key]] + switch (vals.length) { + case 2: + var element = $('<div />'); + element.attr('class', ' d-flex flex-sm-nowrap pr-2 py-1 mb-1 form-group form-control justify-content-between bg-light'); + var rbfieldset = $('<fieldset />'); + var flexdiv1 = $('<div />'); + var flexdiv2 = $('<div />'); + var input1 = $('<input />'); + var input2 = $('<input />'); + var label1 = $('<label />'); + var label2 = $('<label />'); + + rbfieldset.attr('id', tabPaneId + keys[key].replace(/\s/g, '')); + rbfieldset.attr('class', 'custom-control-inline monMe'); + flexdiv1.attr('class', 'custom-control custom-radio custom-control-inline m-0 pb-0'); + flexdiv2.attr('class', 'custom-control custom-radio custom-control-inline m-0 pb-0'); + input1.attr('class', 'custom-control-input'); + input2.attr('class', 'custom-control-input'); + input1.attr('type', 'radio'); + input2.attr('type', 'radio'); + input1.attr('id', tabPaneId + vals[0].replace(/\s/g, '')); + input2.attr('id', tabPaneId + vals[1].replace(/\s/g, '')); + input1.attr('value', vals[0]); + input2.attr('value', vals[1]); + input1.attr('name', tabPaneId + keys[key]); + input2.attr('name', tabPaneId + keys[key]); + label1.attr('class', 'custom-control-label form-control-sm custom-control-inline m-0 pl-1 text-muted'); + label2.attr('class', 'custom-control-label form-control-sm custom-control-inline m-0 pl-1 text-muted'); + label1.attr('for', tabPaneId + vals[0].replace(/\s/g, '')); + label2.attr('for', tabPaneId + vals[1].replace(/\s/g, '')); + label1.append(vals[0]); + label2.append(vals[1]); + + input1.appendTo(flexdiv1); + input2.appendTo(flexdiv2); + label1.appendTo(flexdiv1); + label2.appendTo(flexdiv2); + flexdiv1.appendTo(rbfieldset); + flexdiv2.appendTo(rbfieldset); + rbfieldset.appendTo(element); + var iconR = $(iconReset); + iconR.appendTo(element); + element.appendTo(dettagliBox); + break; + case 1: + var element = $('<div />'); + element.attr('class', ' d-flex flex-sm-nowrap pr-2 py-1 mb-1 form-group form-control bg-light'); + var rbfieldset = $('<fieldset />'); + flexdiv1 = $('<div />'); + input1 = $('<input />'); + label1 = $('<label />'); + rbfieldset.attr('id', tabPaneId + keys[key].replace(/\s/g, '')); + rbfieldset.attr('class', 'custom-control-inline monMe'); + flexdiv1.attr('class', 'custom-control custom-checkbox custom-control-inline'); + input1.attr('class', 'custom-control-input'); + input1.attr('type', 'checkbox'); + input1.attr('id', tabPaneId + vals[0].replace(/\s/g, '')); + input1.attr('value', vals[0]); + input1.attr('name', keys[key]); + label1.attr('class', 'custom-control-label form-control-sm custom-control-inline m-0 pl-1 text-muted'); + label1.attr('for', tabPaneId + vals[0].replace(/\s/g, '')); + label1.append(vals[0]); + + input1.appendTo(flexdiv1); + label1.appendTo(flexdiv1); + flexdiv1.appendTo(rbfieldset); + rbfieldset.appendTo(element); + element.appendTo(dettagliBox); + break; + default: + var element = $('<div />'); + element.attr('class', ' form-group px-0 pb-1 m-0'); + var select = $('<select class="form-control custom-select-sm monMe bg-light text-muted border btn-outline-success"/>'); + select.attr('id', tabPaneId + keys[key].replace(/\s/g, '')); + select.attr('title', keys[key]); + select.attr('name', keys[key]); + for (var val in vals) { + var seloption = $('<option />'); + seloption.attr('value', vals[val]); + seloption.append(vals[val]); + seloption.appendTo(select); + } + select.appendTo(element); + element.appendTo(dettagliBox); + } + } + } + if (element) { + element.attr('style', "display: block;"); + element.appendTo(dettagliBox); + }; + } + + // Funzione di creazione del tab delle clausole sintattiche + function addSyntCla(sortableId,active,tabID,toExpand){ + if (active > 0) { + var checkInsert = ' checked="checked"'; + } else { + var checkInsert = ''; + }; + var claText = "Tipo sintattico: <br>"; + addLIitem(sortableId,tabID,claText,checkInsert,toExpand); + var claClone = document.getElementById("tiposintatticoN").cloneNode(true); + claClone.setAttribute("id","cla" + tabID); + claClone.setAttribute("data-claActive",active); + claClone.setAttribute("aria-labelledby","cla" + tabID + "-tab"); + claClone.setAttribute("style", ""); + $('#claBody' + tabID).append(claClone); + $('#cla' + tabID + " #lemma_formaN").attr("id","lemma_forma" + tabID); + $('#cla' + tabID + " #queryTextN").attr("id","queryText" + tabID); + $('#cla' + tabID + " #opzioni_testoN").attr("id","opzioni_testo" + tabID); + $('#cla' + tabID + " #contextDivN").attr("id","contextDiv" + tabID); + addClaContext(tabID); + } + + // Funzione di creazione del tab delle clausole metafore + function addMetaCla(sortableId,active,tabID,toExpand){ + var checkInsert = ' disabled'; + //if (active > 0) { + // var checkInsert = '" checked="checked"'; + //} else { + // var checkInsert = '"'; + //}; + var claText = "Clausola Metafore - non ancora implementata"; + addLIitem(sortableId,tabID,claText,checkInsert,toExpand); + var claClone = document.getElementById("tipometaforaN").cloneNode(true); + claClone.setAttribute("id","cla" + tabID); + claClone.setAttribute("data-claActive",active); + claClone.setAttribute("aria-labelledby","cla" + tabID + "-tab"); + claClone.setAttribute("style", ""); + $('#claBody' + tabID).append(claClone); + } + + // Funzione di creazione della parte di definizione del contesto delle clausole + function addClaContext(tabID){ + var contClone = document.getElementById("contextTable-xX0").cloneNode(true); + contClone.setAttribute("class","row no-gutters px-2 pt-0 pb-2 bg-lida11"); + contClone = contClone.outerHTML.replace(/xX0/g, "xX" + tabID) + $("#contextDiv" + tabID).append($(contClone)[0]); + resetContext(tabID); + $("#selectable-xX" + tabID).selectable({ + filter: ".sel-canto", + selected: function(event, ui) { + window["context" + tabID][ui.selected.id.substring(0,1)][ui.selected.id.substring(2)] = 1; + var tmpFocusBtn = "#plusBtn" + ui.selected.id.substring(0,1) + "-xX" + tabID; + $(tmpFocusBtn).focus(); + } + }); + }; + + // Funzione di creazione del LI delle condizioni logiche + function addLogicCond(sortableId,condtype){ + condListLen++; + var cloneLI = document.getElementById("condxX4Xx").cloneNode(true); + cloneLI.removeAttribute("style"); + cloneLI = cloneLI.outerHTML.replace(/xX4Xx/g, condListLen) + cloneLI = cloneLI.replace(/xX5Xx/g, condtype) + if (condtype == "AND") { + cloneLI = cloneLI.replace(/xX6Xx/g, "lida12") + } else { + cloneLI = cloneLI.replace(/xX6Xx/g, "lida13") + } + if ($("#li-cla0")[0]) { + $("#li-cla0")[0].remove(); + }; + $(sortableId).append($(cloneLI)[0]); + $("#andOrSelect-" + condListLen).val(condtype); + $("#sortable" + condListLen).sortable(); + $("#sortable" + condListLen).sortable( "option", "appendTo", document.body ); + $("#sortable" + condListLen).sortable({ + items: "> li", + handle: ".handle", + opacity: 0.6, + cursor: 'move', + update: function() {refreshSortables();} + }); + refreshConnectWith(); + } + + // Funzione di creazione del LI di una clausola nella lista sortable + function addLIitem(sortableId,tabID,claText,checkInsert,toExpand){ + claListLen++; + var cloneLI = document.getElementById("li-claxX1Xx").cloneNode(true); + cloneLI.setAttribute("style", "opacity: 0.1;"); + cloneLI = cloneLI.outerHTML.replace(/xX1Xx/g, tabID) + cloneLI = cloneLI.replace(/xX2Xx/g, claText) + cloneLI = cloneLI.replace(/xX3Xx"/g, tabID + '" ' + checkInsert) + $(sortableId).append($(cloneLI)[0]); + if (toExpand == 1){ + $("#claCollapse" + tabID).focus(); + $("#claCollapse" + tabID).trigger("click"); + } + $("#li-cla" + tabID).fadeTo(1000,1); + }; + + // Funzione di refresh della lista clausole nella tab principale e del json della query + function refreshClaList(){ + var l_f = $("form #lemma_forma")[0].options[$("form #lemma_forma")[0].selectedIndex].value; + var qText = $("form #queryText")[0].value; + var optText = $("form #opzioni_testo")[0].value; + if (qText == "") { //disattivo clausola 0 se il testo e' vuoto + var claActive = 0 + } else { + var claActive = 1 + }; + queryJson.Clausola0 = JSON.parse('{"queryText": "' + qText + '", "lemma_forma": "' + l_f + '", "opzioni_testo": "' + optText + '", "TipoClausola": "0", "Attiva": "' + claActive + '"}'); + queryJson.Clausola0.contesto = JSON.stringify(window.context0); + queryJson.unitaRicerca = $("#unitaRicerca")[0].options[$("#unitaRicerca")[0].selectedIndex].value; + var tabsContent = $("#sortable0").find(".claLI"); + if ($(tabsContent).length) { + if ($("#li-cla0")[0]) { + $("#li-cla0")[0].remove(); + }; + $(tabsContent).each(function(){ + var claIdNum = $(this).attr('id').substr(6); + updateClaListItem(claIdNum, "#sortable0"); + }); + } else { + if (claListLen == 0 && condListLen == 0) { + $('#sortable0').html(emptyClaList); + queryJson.EsprLogica = ""; + queryJson.LogicaGui = ""; + } + tabID = 0; + }; + if ($('#sortable0').children("li").length <= 1) { + $("#cla-defaultCond").remove(); + } else { + if ($('#cla-defaultCond').length == 0) { + $("#cla-list-row").prepend($(defaultCond)); + } + }; + } + + // Funzione di creazione del LI nella lista delle clausole nel tab principale, aggiunta della clausola nel JSON + function updateClaListItem(claIdNum, sortableId){ + var claText = ''; + var termText = ''; + var checkInsert = ''; + var claId = "cla" + claIdNum; + var claListItemId = "li-cla" + claIdNum; + var claType = $("#" + claId).attr('data-claType'); + var claActive = $("#" + claId).attr('data-claActive'); + if (claActive > 0) { + checkInsert = ' checked="checked"'; + }; + switch (claType) { + case "Grammaticale": + var l_f = $("form #lemma_forma" + claIdNum)[0].options[$("form #lemma_forma" + claIdNum)[0].selectedIndex].value; + var l_f_t = $("form #lemma_forma" + claIdNum)[0].options[$("form #lemma_forma" + claIdNum)[0].selectedIndex].text; + var qText = $("form #queryText" + claIdNum)[0].value; + var optText = $("form #opzioni_testo" + claIdNum)[0].value; + var optText_t = $("form #opzioni_testo" + claIdNum)[0].options[$("form #opzioni_testo" + claIdNum)[0].selectedIndex].text; + if (qText != "") { + termText = l_f_t + ' <span class="text-dark font-weight-bold">' + qText + '</span> ' + optText_t + '.<br>'; + }; + var jsonTextToParse = '{"queryText": "' + qText + '", "lemma_forma": "' + l_f + '", "opzioni_testo": "' + optText + '", "TipoClausola": "' + claType + '", "Attiva": "' + claActive + '"'; + var gramSelect = $("#" + claId).find(".catgram"); + var contextText = $("#contextText-xX" + claIdNum).text(); + claText = termText + "Categoria grammaticale: " + gramSelect[0].options[gramSelect[0].selectedIndex].text; + jsonTextToParse = jsonTextToParse + ', "' + gramSelect.attr('name') + '": "' + gramSelect[0].options[gramSelect[0].selectedIndex].value + '"'; + var claSubParList = $("#" + claId).children(".dettaglifiltri").find("select, fieldset"); + claSubParList.each(function(){ + var claSubParType = $(this)[0].type; + if (claSubParType == "fieldset" && $(this).find(":checked").length) { + var claSubParName = $(this).find(":checked")[0].name; + if (claSubParName.startsWith(claId)) { + claSubParName = claSubParName.replace(claId,''); + } + claText = claText + "; " + $(this).find(":checked")[0].defaultValue; + jsonTextToParse = jsonTextToParse + ', "' + claSubParName + '": "' + $(this).find(":checked")[0].value + '"'; + }; + if (claSubParType == "select-one" && $(this)[0].selectedIndex != 0) { + claText = claText + "; " + $(this)[0].options[$(this)[0].selectedIndex].text; + jsonTextToParse = jsonTextToParse + ', "' + $(this)[0].name + '": "' + $(this)[0].options[$(this)[0].selectedIndex].value + '"'; + }; + }); + claText = claText + '.<br>Contesto: ' + contextText; + break; + case "Sintattico": + var l_f = $("form #lemma_forma" + claIdNum)[0].options[$("form #lemma_forma" + claIdNum)[0].selectedIndex].value; + var l_f_t = $("form #lemma_forma" + claIdNum)[0].options[$("form #lemma_forma" + claIdNum)[0].selectedIndex].text; + var qText = $("form #queryText" + claIdNum)[0].value; + var optText = $("form #opzioni_testo" + claIdNum)[0].value; + var optText_t = $("form #opzioni_testo" + claIdNum)[0].options[$("form #opzioni_testo" + claIdNum)[0].selectedIndex].text; + if (qText != "") { + termText = l_f_t + ' <span class="text-dark font-weight-bold">' + qText + '</span> ' + optText_t + '.<br>'; + }; + var jsonTextToParse = '{"queryText": "' + qText + '", "lemma_forma": "' + l_f + '", "opzioni_testo": "' + optText + '", "TipoClausola": "' + claType + '", "Attiva": "' + claActive + '"'; + var syntSelect = $("#" + claId).find("#synttypes"); + var funcSelect = $("#" + claId).find("#syntfunc"); + var contextText = $("#contextText-xX" + claIdNum).text(); + claText = termText + "Tipo sintattico: " + syntSelect[0].options[syntSelect[0].selectedIndex].text + ';<br>Livello di subordinazione: ' + funcSelect[0].options[funcSelect[0].selectedIndex].text + '.<br>Contesto: ' + contextText; + jsonTextToParse = jsonTextToParse + ', "' + syntSelect.attr('name') + '": "' + syntSelect[0].options[syntSelect[0].selectedIndex].value + '", "' + funcSelect.attr('name') + '": "' + funcSelect[0].options[funcSelect[0].selectedIndex].value + '"'; + break; + default: + claText = $("#" + claListItemId + " .clatext").text(); + checkInsert = ' disabled'; + var jsonTextToParse = '{"queryText": "", "lemma_forma": "", "opzioni_testo": "", "TipoClausola": "' + claType + '", "Attiva": "' + claActive + '"'; + }; + if ($("#" + claListItemId)[0]) { + $("#" + claListItemId + " .clatext").replaceWith('<span class="small clatext">' + claText + '</span>'); + } else { + addLIitem(sortableId,claIdNum,claText,checkInsert,0); + }; + queryJson["Clausola" + claIdNum] = JSON.parse(jsonTextToParse + '}'); + queryJson["Clausola" + claIdNum].contesto = JSON.stringify(window["context" + claIdNum]); + }; + + // Funzione di refresh dei placeholders e attivazione/disattivazione bottoni nelle liste sortable + function refreshSortables(){ + $("#sortable0").children(".claLI").each(function() { + if ($(this).find("input")[0].checked){ + $(this).find('.clatext').css({ opacity: 1 }); + }; + if ($(this).find("input")[0].checked == false){ + $(this).find('.clatext').css({ opacity: 0.6 }); + }; + }); + $("#cla-TabContent .ui-sortable:not(:first)").each(function() { + var sortableID = $(this)[0].id; + var placeholderID = "#placeholderSort" + sortableID.slice(-1); + var iconSpan = $(this).find(".iconClClass")[0]; + var iconDiv = $(iconSpan).parent()[0]; + var activeUL = $(this).children("li").children("ul").length; + var activeLI = 0; + var inactiveLI = 0; + var condLIplaceholder = ""; + $(this).children("li .claLI").each(function() { + if ($(this).find("input")[0].checked){ + activeLI++; + $(this).find('.clatext').css({ opacity: 1 }); + }; + if ($(this).find("input")[0].checked == false){ + inactiveLI++; + $(this).find('.clatext').css({ opacity: 0.6 }); + }; + }); + switch (activeLI + activeUL) { + case 0: + if ($(placeholderID).length) { + if (inactiveLI > 0){ + $(placeholderID).text(condLIplaceholderText2d); + } else { + $(placeholderID).text(condLIplaceholderText2); + }; + } else { + if (inactiveLI > 0){ + condLIplaceholder = condLIplaceholderPart1 + sortableID.slice(-1) + condLIplaceholderPart2 + condLIplaceholderText2d + '</li>'; + } else { + condLIplaceholder = condLIplaceholderPart1 + sortableID.slice(-1) + condLIplaceholderPart2 + condLIplaceholderText2 + '</li>'; + } + $("#" + sortableID).append(condLIplaceholder); + }; + if (inactiveLI == 0){ + $(iconSpan).attr("class","iconClClass removeCond"); + $(iconDiv).attr("class","p-0 mr-3 mt-0 text-right text-success"); + }; + break; + case 1: + if ($(placeholderID).length) { + if (inactiveLI > 0){ + $(placeholderID).text(condLIplaceholderText1d); + } else { + $(placeholderID).text(condLIplaceholderText1); + }; + } else { + if (inactiveLI > 0){ + condLIplaceholder = condLIplaceholderPart1 + sortableID.slice(-1) + condLIplaceholderPart2 + condLIplaceholderText1d + '</li>'; + } else { + condLIplaceholder = condLIplaceholderPart1 + sortableID.slice(-1) + condLIplaceholderPart2 + condLIplaceholderText1 + '</li>'; + } + $("#" + sortableID).append(condLIplaceholder); + }; + $(iconSpan).attr("class","iconClClass NOremoveCond"); + $(iconDiv).attr("class","p-0 mr-3 mt-1 text-right text-muted"); + break; + case 2: + if ($(placeholderID).length) { + $(placeholderID).remove(); + }; + $(iconSpan).attr("class","iconClClass NOremoveCond"); + $(iconDiv).attr("class","p-0 mr-3 mt-1 text-right text-muted"); + break; + default: + if ($(placeholderID).length) { + $(placeholderID).remove(); + }; + }; + }); + logicExprString = parseCond("#sortable0", "AND", 0); + guiLogicString = parseCond("#sortable0", "AND", 1); + queryJson.EsprLogica = logicExprString.split(' '); + queryJson.LogicaGui = guiLogicString.split(' '); + }; + + // Funzione di refresh dei collegamenti tra elementi sortable + function refreshConnectWith(){ + for (var i=0; i <= condListLen; i++) { + var cw = ""; + for (var j=0; j <= condListLen; j++) { + if (i != j) { + cw = cw + "#sortable" + j + ", "; + }; + $( "#sortable" + i ).sortable( "option", "connectWith", cw.slice(0, -2) ); + }; + }; + }; + + // Funzione usata da resizable + function setWidthInPercent(element) { + var percentageWidth = (element.width() / element.parent().width()) * 100; + element.width(percentageWidth + '%'); + }; + + + // Funzione di parsing delle clausole e delle condizioni logiche + function parseCond(sortableList, condType, forGui){ + var condText = ""; + var items = $(sortableList).children("li"); + var itemsText = []; + $(items).each(function() { + if ($(this).hasClass("condLI-AND")) { + var andID = "#" + $(this).children("ul").attr("id"); + var andText = parseCond(andID, "AND", forGui); + if (andText.length){ + itemsText.push(andText); + }; + }; + if ($(this).hasClass("condLI-OR")) { + var orID = "#" + $(this).children("ul").attr("id"); + var orText = parseCond(orID, "OR", forGui); + if (orText.length){ + itemsText.push(orText); + }; + }; + if ($(this).hasClass("claLI")) { + var claNum = "Clausola" + $(this)[0].id.substr(6); + if (forGui || ($(this).find("input")[0].checked == true)){ + itemsText.push(claNum); + }; + }; + }); + var iTlen = itemsText.length; + switch (iTlen) { + case 0: + break; + case 1: + if (forGui) { + condText = "( " + condType + " " + itemsText[0] + " )"; + } else { + condText += itemsText[0]; + } + break; + default: + condText = "( " + condType + " "; + for (let i = 0; i < iTlen; i++) { + condText += itemsText[i] + " "; + } + condText += ")"; + }; + return condText; + }; + + function hideContextCanti(claIdNum) { + $('#selectable-xX' + claIdNum + " .ui-selected").each(function() { + $(this).attr('style', "display: none;"); + $(this).removeClass( "ui-selected" ) + }); + }; + + function makeUpGui(queryJson) { + // 1. verifica json legit --> TO DO + // ------------------- + // Pulizia ricerca avanzata: + resetAdvGui(); + // Imposta checkbox: .attr("checked", true) + if (queryJson["QueryAvanzata"] == 1) { + $("#cla-Advanced").attr('style', "display: block;"); + $("#searchToggle").prop("checked", true); + } else { + $("#cla-Advanced").attr('style', "display: none;"); + $("#searchToggle").prop("checked", false); + }; + // Rigenerazione Clausola0: + if (queryJson["Clausola0"].Attiva) { + $("#queryText").val(queryJson["Clausola0"].queryText); + $("#opzioni_testo").val(queryJson["Clausola0"].opzioni_testo); + var qText = queryJson["Clausola0"].queryText; + if (qText !== null && qText !== '') {qText = ' "' + qText + '"';} + setLemmaForma(qText,queryJson["Clausola0"].lemma_forma); + resetContext(0); + window.context0 = JSON.parse(queryJson.Clausola0.contesto); + parseContext(0); + }; + $("#unitaRicerca").val(queryJson.unitaRicerca); + // Generazione lista clausole e condizioni con elementi padre: + guiLogicString = queryJson.LogicaGui; + var clau2Make = ""; + var claParent = []; // array di coppie [elemento, elemento padre] + var treeLevel = []; // pila di elementi padre + var condNum = 0; + for (var i=0; i < guiLogicString.length; i++) { + switch (guiLogicString[i]) { + case "(": + break; + case ")": + treeLevel.pop(); + break; + case "OR": + claParent.push([guiLogicString[i], treeLevel[treeLevel.length - 1]]); + treeLevel.push("#sortable" + ++condNum); + break; + case "AND": + if (i > 1) { + claParent.push([guiLogicString[i], treeLevel[treeLevel.length - 1]]); + treeLevel.push("#sortable" + ++condNum); + } else { + treeLevel.push("#sortable0"); + }; + break; + default: + claParent.push([guiLogicString[i].replace("Clausola", ""), treeLevel[treeLevel.length - 1]]); + }; + }; + $(claParent).each(function(){ + var itm = $(this)[0] + if ($(this)[0] == "OR" || $(this)[0] == "AND") { + addLogicCond($(this)[1],$(this)[0]); + } + if (itm != "OR" && itm != "AND") { + clau2Make = queryJson["Clausola" + itm].TipoClausola; + active = queryJson["Clausola" + itm].Attiva + tabID++; + switch (clau2Make) { + case "Grammaticale": + selectedValue = queryJson["Clausola" + itm].typeGramm0; + addGramCla($(this)[1],active,tabID,0); + $("#lemma_forma" + tabID).val(queryJson["Clausola" + itm].lemma_forma); + $("#queryText" + tabID).val(queryJson["Clausola" + itm].queryText); + $("#opzioni_testo" + tabID).val(queryJson["Clausola" + itm].opzioni_testo); + if (selectedValue != "all") { + $("#grammtypes" + tabID).val(selectedValue); + addCatgramSubcla("cla" + tabID, selectedValue); + var ks = Object.keys(queryJson["Clausola" + itm]); + for (var j = 6; j < ks.length - 1; j++) { + var melID = "cla" + tabID + ks[j]; + var melement = document.getElementById(melID); + switch (melement.type) { + case "fieldset": + var sval = queryJson["Clausola" + itm][ks[j]] + $("#cla" + tabID + sval.replace(/\s/g, '')).attr("checked", true); + break; + case "select-one": + melement.value = ([queryJson["Clausola" + itm][ks[j]]]) + break; + default: + }; + }; + }; + window["context" + tabID] = JSON.parse(queryJson["Clausola" + itm].contesto); + parseContext(tabID); + break; + case "Sintattico": + addSyntCla($(this)[1],active,tabID,0); + $("#lemma_forma" + tabID).val(queryJson["Clausola" + itm].lemma_forma); + $("#queryText" + tabID).val(queryJson["Clausola" + itm].queryText); + $("#opzioni_testo" + tabID).val(queryJson["Clausola" + itm].opzioni_testo); + if (queryJson["Clausola" + itm].typeSyntax0 != ".+") { + $("#cla" + tabID + " #synttypes").val(queryJson["Clausola" + itm].typeSyntax0); + } + if (queryJson["Clausola" + itm].functionSyntax != ".+") { + $("#cla" + tabID + " #syntfunc").val(queryJson["Clausola" + itm].functionSyntax); + } + window["context" + tabID] = JSON.parse(queryJson["Clausola" + itm].contesto); + parseContext(tabID); + break; + case "Metafora": + addMetaCla($(this)[1],active,tabID,0); + break; + default: + }; + }; + }); + refreshClaList(); + refreshSortables(); + }; + + function resetSimpleGui() { + $('#queryText').val(""); + setLemmaForma("","forma"); + $('#opzioni_testo').val("parola"); + resetContext(0); + }; + + function setLemmaForma(qText,newSelection) { + var newOptions = {['La forma' + qText]: 'forma', ['Il lemma' + qText]: 'lemma', ['Il testo' + qText]: 'testo'}; + $("#lemma_forma").empty(); + $.each(newOptions, function(key,value) { + $("#lemma_forma").append($("<option></option>").attr("value", value).text(key)); + }); + $("#lemma_forma").val(newSelection); + }; + + function resetContext(claIdNum) { + $('#selectable-xX' + claIdNum + " .ui-selectee").each(function() { + $(this).attr('style', "line-height: 1.2em"); + }); + $('#selectable-xX' + claIdNum + " .ui-selected").removeClass( "ui-selected" ) + $('#selectable-xX' + claIdNum + ' .sel-canti-intro').each(function() { + $(this).text("Seleziona i canti:") + });; + $("#contextText-xX" + claIdNum).html("Tutta l'opera"); + window["context" + claIdNum] = JSON.parse(JSON.stringify(contextEmpty)); + $('#selectable-xX' + claIdNum + " .show").removeClass("show"); + }; + + function resetAdvGui() { + var tabsContent=$("#cla-TabContent").find(".tab-pane:not(:first)"); + if ($(tabsContent).length) { + var claIdNum = ''; + $(tabsContent).each(function(){ + claIdNum = $(this)[0].id.substring(3); + delete window["context" + claIdNum]; + $(this).remove(); + }); + }; + claListLen = 0; + condListLen = 0; + tabID = 0; + $('#sortable0').html(emptyClaList); + }; + + function parseContext(claIdNum) { + var context = window["context" + claIdNum]; + var contextStringParts = ["","",""]; + var contextString = []; + var rangeHolderS = 0; + var rangeHolderE = -1; + var lastElem = ""; + var totCan = 0; + for (var i=0; i < 3; i++) { + for (var j=0; j <= context[i].length; j++) { + if (context[i][j] == 1) { + if (j == (rangeHolderE+1)) { + rangeHolderE++; + } else { + rangeHolderS = j; + rangeHolderE = j; + }; + totCan++; + } else { + if (rangeHolderE >= 0) { + if ( rangeHolderS == rangeHolderE) { + lastElem = (rangeHolderE+1); + } else { + lastElem = (rangeHolderS+1) + "-" + (rangeHolderE+1); + }; + rangeHolderE = -1; + }; + }; + if (lastElem != "") { + if (contextStringParts[i] == "") { + contextStringParts[i] = " " + canticheList[i] + " [" + lastElem; + } else { + contextStringParts[i] = contextStringParts[i] + "," + lastElem; + }; + lastElem = ""; + }; + }; + rangeHolderS = 0; + rangeHolderE = -1; + if (contextStringParts[i] != "") { + contextStringParts[i] = contextStringParts[i] + "]" + contextString.push(contextStringParts[i]); + } + }; + if ((contextString.toString() != "") && (totCan < 100)) { + $("#contextText-xX" + claIdNum).html(contextString.toString()); + } else { + resetContext(claIdNum) + } + }; + + function managePage() { + if (currPage == 0){ + numeroPagine = Math.ceil(numeroContesti/nRisultatiPerPag); + $("#paginaLista option").remove(); + for (let i = 1; i <= numeroPagine; i++) { + $('#paginaLista').append(`<option value="${i}">${i+'/'+numeroPagine}</option>`); + }; + $("#pagPrecedente").addClass("disabled"); + if (numeroPagine > 1) { + $("#pagSuccessiva").removeClass("disabled") + } else { + $("#pagSuccessiva").addClass("disabled") + }; + currPage = 1; + } else { + if ((currPage == 1) && (currPage == numeroPagine)) { + $("#pagPrecedente").addClass("disabled") + $("#pagSuccessiva").addClass("disabled") + } else { + if (currPage == 1) { + $("#pagPrecedente").addClass("disabled") + $("#pagSuccessiva").removeClass("disabled") + } else { + if (currPage == numeroPagine) { + $("#pagPrecedente").removeClass("disabled") + $("#pagSuccessiva").addClass("disabled") + } else { + $("#pagPrecedente").removeClass("disabled") + $("#pagSuccessiva").removeClass("disabled") + } + } + }; + }; + $.manageResultList((currPage-1)*nRisultatiPerPag, nRisultatiPerPag); + if (latestPhraseId != "") { + document.getElementById(latestPhraseId).scrollIntoView({ + behavior: "smooth", + }); + latestPhraseId = ""; + } + }; + + function incSize(currentSize, incr, min, max) { + //fSize = (parseFloat(currentSize) + incr) % max + min; + fSize = Math.max((parseFloat(currentSize) + incr) % max, min); + //console.log("fSize: "+fSize); + return (fSize) + 'px'; + }; + + function setStyle(newStyle, fadeDuration = 700) { + if (newStyle != currStyle) { + var bgImgEl = document.createElement("IMG"); + bgImgEl.id = "bgImg"; + currStyle = newStyle; + switch (newStyle) { + case "style1": + $("body").fadeOut(fadeDuration, function() { + bgImgEl.src = bgImgUrl1; + $("#style1-Boot").prop('disabled', false); + $("#style1-Custom").prop('disabled', false); + $("#style2-Boot").prop('disabled', true); + $("#style2-Custom").prop('disabled', true); + $("body").fadeIn(fadeDuration); + }); + break; + case "style2": + $("body").fadeOut(fadeDuration, function() { + bgImgEl.src = bgImgUrl2; + $("#style2-Boot").prop('disabled', false); + $("#style2-Custom").prop('disabled', false); + $("#style1-Boot").prop('disabled', true); + $("#style1-Custom").prop('disabled', true); + $("body").fadeIn(fadeDuration); + }); + break; + default: + }; + $('#bgImg').replaceWith(bgImgEl); + drawMinimap(currentMinimap, false, 0); + Cookies.set('LiDa_style', newStyle); }; + }; + + +}); + +$(window).on('load', function() { + var cantoHeightToSet = $("body")[0].clientHeight*cssCantoHeight; + var maxCantoHeightToSet = $("body")[0].clientHeight*cssTableMainHeight-110; // 63 padding top + 47 margine bottom + $(visCantoClass).css("max-height", maxCantoHeightToSet); + $(visCantoClass).css("height", cantoHeightToSet); + $(displayCantoId).css("max-height", maxCantoHeightToSet); + $(displayCantoId).css("height", cantoHeightToSet); + var bgImgEl = document.createElement("IMG"); + bgImgEl.id = "bgImg"; + switch (currStyle) { + case "style1": + bgImgEl.src = bgImgUrl1; + break; + case "style2": + bgImgEl.src = bgImgUrl2; + break; + default: + }; + $('#bgImg').replaceWith(bgImgEl); +}); +