diff --git a/views/css/item-creator.css b/views/css/item-creator.css index 89c0dc63bf..2d382ac312 100644 --- a/views/css/item-creator.css +++ b/views/css/item-creator.css @@ -1,3 +1,3 @@ .widget-rubricBlock [data-html-editable]:before,.widget-textBlock [data-html-editable]:before,.item-editor-item .colrow:before,#item-editor-interaction-bar .tool-list:before,.widget-rubricBlock [data-html-editable]:after,.widget-textBlock [data-html-editable]:after,.item-editor-item .colrow:after,#item-editor-interaction-bar .tool-list:after{content:" ";display:table}.widget-rubricBlock [data-html-editable]:after,.widget-textBlock [data-html-editable]:after,.item-editor-item .colrow:after,#item-editor-interaction-bar .tool-list:after{clear:both}.farbtastic{position:relative;width:160px;height:160px;margin:5px auto}.farbtastic .color,.farbtastic .overlay{top:38.5641025641px;left:38.5641025641px;width:82.8717948718px;height:82.8717948718px}.farbtastic .wheel{background:url(data:image/png;base64,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) no-repeat;background-size:100%;width:100%;height:100%}.farbtastic .overlay{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGUAAABlCAYAAABUfC3PAAAHmElEQVR42u1d21LkOgxsqQb+/4uP9wkKBtvqluRkOMVUUcvGN6lbNzuZAPx9Xu5jf/r8KXFSDvu/EGovNNcd4+3F+l8ORHffK/tcRshdAp1ou3re8XS9FUc7CPCu/UrSOsdcsUa7krs+dnD9DIhj0m6HZJHmtQZgq8Kxc1bW7upzybXHgUSfAeAkaCfJPaLXXQLaYeWfwxOj58vocyf4rwJC1GZPFVdkALOxkkyqBWWVtWR/BHMo4I6NTIOc14rGR41XSLlCoKvXqIy3wIBWRmELr7Ndolc2RXbR7yZ4TRcBrBws+c7K8DiwT7CitzF9O0JjxhPsALmmkIKOBQpKdq5ZAdkOGF+ZFCOEZcBUgVcJyrTNZBybPipRlumT2TyaELpahEzMm5nfFr+jcc0UKZWj/JPAvcLcJ+X89q81WXyXopYIPb/532nbV09Z7VjRtdiLjM0YykmZt6QwRw0MUVeDGPU1otiwRKQ4RtaKlOdjhxEoWCVLSbpGzvF1wxZdi9qy+qTmeASEqLtaJgSwlltRcCaPB9dOeEPqmrJ5HAWAuq1JJSbySoVII4oSqxhZdPbFlsuqJ0AEelUlepKErPHs+qvGSZES5QlWGCWksRs5hawIIJ+QOssnHpBfAd4y4cuCo+kB7QaZKrwlQ4EnLLkiIwq/L+dhw5cRZ1lWaMu0s2TuKizfkDrzngxZ6v/DRJ99CEEBOKtIBhiGBCOJqHr+co7M5jEqie3ia7bIBXfJBNGwjCUlC35UGJwghCkKPLhmohfS+SGjlxq+VkCDtOKMYpm2yngXLPyEQX2SUn0mODofU0m0BlI8AMgL5KlkSUStjlmYygkNyfgKQDKksHJmPCOU/xFUTYMoApgcggOE+FPFlE2sVVK6Qi+d6HeWoBxdREpAIA5NHuQHwS+RfOLBCWZTiEarRDF3VH++rmMNa0kPTgxys8ica6khrQoYs04G1COEPwhwVC9CEnA0zNHx40nynwlaEeaTcSlPMdITqsBio8AqofsEFF8ofJqUiiF86vDYlMPMPkMJY1XSsIjhSohhrPcUcfR8D8EjAH6XDiGOs3ugaNfdacl+iBBn8HhMvGT1GH90I4n1rOj2K5t7fBcCFiDM4n7VIzq9zKOSmCmBLVFVVRI4E7pW5FbAy5CXJvxBlKsjuek7VT25UI56MjQxxDqRtNU55c3jCE6OlZtc7P37nfAQKrQKQbOQ56L1u0L0I1EZMffe1eLg5HGIJ8OSJ695ISdRpDBfCDXCU5R77U4e8eySdkeMZ/6PhVd5hdhIISdjLquAJ8FTrHGnCxrni+RzMoRNc8pjw2xWICsA5Q1hxAMwTujZESY/9ylviwm+WjaSYDlZ2aiVjhPJOap4Kvmky0CnBcqOlNMJECIwjvx+wokTYRZQT5bTLNkUKShaxq7EzJSWmRK26xjFC3IDwjHLmwiuspgH1ZJDP5/qJhKNkQDCmr4j5Z2oFNBsFY7aOVF1/OqsrGvvUpLpw1Mqp5rdx90rg3Chf/cprzfrt8tn0/CFJlA7j7szR+9IENYJdlbeEXkKo2h0VJIFAcT6KJB2121lMHce3y544uOU0hlScBEpVvWU7H1p+/tpuw/0+W4YhpSoClMtE8QxeycQdxDAPBewfe7rbZIIsSGltGBxfAcJVSNTv46h5rDxnFMgVhFoeLBBfcIQib64wMu6ntKcJvpOBdAMAKNkN1GZ56KdlBcrUt6TIaDjawmnvvaAG40Jwe3oyPg/PQWbw0gIwqHg4lVSkPSabo9Ece3xcZOrCiSSY5lQgoJBZMZicVCq4oAslquSGATYKIQTNIUiVJQ/ECY7SNkes0BQKKswiIqqe+2MXl6QA5tHdGcvT/iR6LtelzGrRhhSIMpQJS5j6Z58QpT1ouXRPYgwhiY3RsH9IQBe8f6ONna9afhC0ppUJbEpEzvWBFFYqPMqDyf65hm4XdsPT0HBkjvHVoHvfNMQivqpsk1L4uxCAP9OrY6XpCnjkAh/HYYWeczSU94TAikCsC9pqwCBog7KGCYElq6twpedXFRou0Ielgi7SMah5BQUAKwSkGnrNBJFbiD3St2jpODAXN3zXvaK9ESfkBQUFuoGRg1B7NiMDCf1H7NEn5kYDSB3WWrnvBWDzBrA1FO6Ae0Cg80hHcQ/f89zCAZRxQLP+xSQSneRggPG0E2+GjGqsn0LXxmlGUuLxu5cftV/JBQfYphWgY9yEP03BL56SsZquqyv24oz7aMYFrvGfHpKl2Id7buEmfmLFbvrnfooMuyMYEoKRFddAceAyK7b0e+3/P4jfF0FRNf4lQHsvGv3Z66Yt/2BDIEjqf+3s69oIOOK2CRYpY0hBYWxbNsda4xnUiLlowpm11cZiwIBVaBV49x54sjMPyOlw3qGIPgHYc8hJwtYB2mnxjB9pvsUdrKdZWcF7lT2hB4VmdlrY5bo1Rg+iByTUQovMgcbUttkXnlKRajfPOYV5Nt6SmXiK9pPjd0BPK7A5evmsSJ8VNqy8+/C3mgg+e5+TN8RkRLlD2bBQZahINZg5agCd+c4KnxdKdDJ+axh7LhA37Hap7zix24whjs+wwD8h7/PS33+Aco5c+VlzzVbAAAAAElFTkSuQmCC) no-repeat;background-size:100%}.farbtastic .marker{width:13.9487179487px;height:13.9487179487px;margin:-6.5641025641px 0 0 -6.5641025641px;overflow:hidden;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAYAAAA7bUf6AAABvklEQVR42rWUv0sCYRjHO0zFOCoSSUFsq1AHoSkaisAGbXCRlsAtWiSD1v6AoMUtUAQnSRGkpNGoIWjMoU0qInSRTNGwunv6PvAeHKbm4guf4R64zz2/3puYGNchIgksggg4BodgE0yNKnCDC9ABClAF3+AZ7IHJYYIQqPJLrVaLSqUSpVIpymazVKlUSJwuyPTNSmRQVVWVCoUC+Xy+rizL9waDIWM2my/tdnstGo1SvV5n0Q846dcDLkHN5/Nks9leEQ6DGWAAZrAE4Xk4HKZ2u82iFljRS7iJnUajQR6P5xOhEJD6VDxvMpnu0uk0iT7F9RKeglIsFslisdwgJA/p/W4gEND686CX8BjVeDxOeEz8M0C3y+XSJB96yRFLkskkcSNFHwadVa/Xq0ne9JIt3oNyuUxWq/UJoYUBApafxmIxTXKll8hsVRSFIpEISZLEJc31EWw7HI53/phYxP3eMR+Ar1qtRsFgUDUajdcI74BlLoEzYEEul9Mmwya5V2ICBf5Cs9mkRCJBfr+fnE4ncQ+4BJEBC3jj1gat/Sw4E/dGpb+HS3gE66Ncwg3AG/UiVrwJbsVtnh7Lr+MXM921rfVCPpAAAAAASUVORK5CYII=) no-repeat;background-size:100%}.farbtastic *{position:absolute;cursor:crosshair}span.dragging,img.dragging.ui-draggable-dragging{opacity:.8 !important;z-index:999999;font-size:5rem;padding:20px 80px;position:absolute;background:#f3f1ef;-webkit-box-shadow:1px 1px 6px 2px #777;box-shadow:1px 1px 6px 2px #777}img.dragging.ui-draggable-dragging{max-height:90px}#modalFeedbacks .widget-inline.hover,.item-editor-item .qti-textEntryInteraction td[contenteditable]:hover,.item-editor-item .textEntryInteraction-placeholder.hover,.item-editor-item .qti-inlineChoiceInteraction td[contenteditable]:hover,.item-editor-item .inlineChoiceInteraction-placeholder.hover,.item-editor-item .hoverable .widget-box.widget-blockInteraction.edit-question .qti-choice:not(th).hover,.item-editor-item .hoverable .widget-box.widget-blockInteraction.edit-question th.qti-choice.hover .inner-wrapper,.item-editor-item .hoverable .widget-box.widget-blockInteraction.hover,.item-editor-item .hoverable .widget-box.widget-rubricBlock.hover .qti-rubricBlock-body,.item-editor-item .hoverable .widget-box.widget-block.hover,.item-editor-item .hoverable .widget-box.widget-inline.hover{cursor:pointer;border:1px solid #87aec8}#modalFeedbacks .widget-inline.edit-active,.item-editor-item .qti-textEntryInteraction td[contenteditable]:focus,.item-editor-item .qti-inlineChoiceInteraction td[contenteditable]:focus,.item-editor-item .hoverable .widget-box.widget-blockInteraction.edit-question .qti-choice:not(th).edit-choice,.item-editor-item .hoverable .widget-box.widget-blockInteraction.edit-question th.qti-choice.edit-choice .inner-wrapper,.item-editor-item .hoverable .widget-box.widget-blockInteraction.edit-active,.item-editor-item .hoverable .widget-box.widget-rubricBlock.edit-active .qti-rubricBlock-body,.item-editor-item .hoverable .widget-box.widget-block.edit-active,.item-editor-item .hoverable .widget-box.widget-inline.edit-active{cursor:default;z-index:9;border:1px solid #3e7da7;-webkit-box-shadow:1px 1px 3px 1px #3e7da7;box-shadow:1px 1px 3px 1px #3e7da7}#modalFeedbacks .mini-tlb,.item-editor-item [data-edit].mini-tlb,#item-editor-panel .table-tlb{display:none;position:absolute;top:0;right:0;padding:0;margin-bottom:5px;overflow:hidden;font-size:13px !important;font-size:1.3rem !important;border:1px #3e7da7 solid !important;list-style-type:none;cursor:pointer !important;border-radius:0;background-color:#f3f7fa}#modalFeedbacks .mini-tlb [class^=icon-],.item-editor-item [data-edit].mini-tlb [class^=icon-],#item-editor-panel .table-tlb [class^=icon-],#modalFeedbacks .mini-tlb [class*=" icon-"],.item-editor-item [data-edit].mini-tlb [class*=" icon-"],#item-editor-panel .table-tlb [class*=" icon-"]{font-size:16px;font-size:1.6rem;position:relative;top:4px;color:#0e5d91}#modalFeedbacks .mini-tlb .tlb-button:hover,.item-editor-item [data-edit].mini-tlb .tlb-button:hover,#item-editor-panel .table-tlb .tlb-button:hover{background-color:#0e5d91}#modalFeedbacks .mini-tlb .tlb-button:hover [class^=icon-],.item-editor-item [data-edit].mini-tlb .tlb-button:hover [class^=icon-],#item-editor-panel .table-tlb .tlb-button:hover [class^=icon-],#modalFeedbacks .mini-tlb .tlb-button:hover [class*=" icon-"],.item-editor-item [data-edit].mini-tlb .tlb-button:hover [class*=" icon-"],#item-editor-panel .table-tlb .tlb-button:hover [class*=" icon-"]{color:#f3f7fa}#modalFeedbacks [data-edit=answer].mini-tlb .tlb-button:hover,.item-editor-item [data-edit=answer][data-edit].mini-tlb .tlb-button:hover,#item-editor-panel [data-edit=answer].table-tlb .tlb-button:hover{background-color:#f3f7fa}#modalFeedbacks [data-edit=answer].mini-tlb .tlb-button:hover [class^=icon-],.item-editor-item [data-edit=answer][data-edit].mini-tlb .tlb-button:hover [class^=icon-],#item-editor-panel [data-edit=answer].table-tlb .tlb-button:hover [class^=icon-],#modalFeedbacks [data-edit=answer].mini-tlb .tlb-button:hover [class*=" icon-"],.item-editor-item [data-edit=answer][data-edit].mini-tlb .tlb-button:hover [class*=" icon-"],#item-editor-panel [data-edit=answer].table-tlb .tlb-button:hover [class*=" icon-"]{color:inherit}#modalFeedbacks .mini-tlb .tlb-button,.item-editor-item [data-edit].mini-tlb .tlb-button,#item-editor-panel .table-tlb .tlb-button{width:26px;height:24px;text-align:center;position:relative;cursor:pointer;margin:0;display:inline-block;color:#0e5d91 !important}#modalFeedbacks .mini-tlb .tlb-button [class^=icon-],.item-editor-item [data-edit].mini-tlb .tlb-button [class^=icon-],#item-editor-panel .table-tlb .tlb-button [class^=icon-],#modalFeedbacks .mini-tlb .tlb-button [class*=" icon-"],.item-editor-item [data-edit].mini-tlb .tlb-button [class*=" icon-"],#item-editor-panel .table-tlb .tlb-button [class*=" icon-"]{font-size:14px !important;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-family:"tao" !important}#modalFeedbacks .mini-tlb .tlb-button:hover,.item-editor-item [data-edit].mini-tlb .tlb-button:hover,#item-editor-panel .table-tlb .tlb-button:hover{color:#3e7da7 !important}#modalFeedbacks .mini-tlb .tlb-button.active,.item-editor-item [data-edit].mini-tlb .tlb-button.active,#item-editor-panel .table-tlb .tlb-button.active{color:#0e5d91 !important}#modalFeedbacks .mini-tlb .tlb-button .score,.item-editor-item [data-edit].mini-tlb .tlb-button .score,#item-editor-panel .table-tlb .tlb-button .score{left:0;min-width:0;width:35px !important;position:relative;top:1px;height:22px;padding:0px 4px}#modalFeedbacks .mini-tlb .tlb-button[data-role=cke-launcher],.item-editor-item [data-edit].mini-tlb .tlb-button[data-role=cke-launcher],#item-editor-panel .table-tlb .tlb-button[data-role=cke-launcher]{display:none}#modalFeedbacks .mini-tlb .tlb-button ul[data-button-group],.item-editor-item [data-edit].mini-tlb .tlb-button ul[data-button-group],#item-editor-panel .table-tlb .tlb-button ul[data-button-group]{background:rgba(0,0,0,0) !important;border:none}#modalFeedbacks .mini-tlb .tlb-button ul[data-button-group]>li,.item-editor-item [data-edit].mini-tlb .tlb-button ul[data-button-group]>li,#item-editor-panel .table-tlb .tlb-button ul[data-button-group]>li{display:none;background:rgba(0,0,0,0) !important;min-width:0;padding:0;float:none}#modalFeedbacks .mini-tlb .tlb-button ul[data-button-group]>li span,.item-editor-item [data-edit].mini-tlb .tlb-button ul[data-button-group]>li span,#item-editor-panel .table-tlb .tlb-button ul[data-button-group]>li span{color:#222;text-shadow:none !important}#modalFeedbacks .mini-tlb .tlb-button ul[data-button-group]>li.active,.item-editor-item [data-edit].mini-tlb .tlb-button ul[data-button-group]>li.active,#item-editor-panel .table-tlb .tlb-button ul[data-button-group]>li.active{display:inline-block}.item-editor-item .qti-inlineChoiceInteraction .add-option,.item-editor-item .widget-box.widget-blockInteraction .qti-interaction .add-option{color:#0e5d91;border:1px #3e7da7 dashed !important;list-style-type:none;cursor:pointer !important;border-radius:3px;background-color:#e7eff4}.item-editor-item .qti-inlineChoiceInteraction .add-option [class^=icon-],.item-editor-item .widget-box.widget-blockInteraction .qti-interaction .add-option [class^=icon-],.item-editor-item .qti-inlineChoiceInteraction .add-option [class*=" icon-"],.item-editor-item .widget-box.widget-blockInteraction .qti-interaction .add-option [class*=" icon-"]{font-size:16px;font-size:1.6rem;position:relative;top:2px;left:2px;color:#0e5d91;margin-right:8px}.item-editor-item .qti-inlineChoiceInteraction .add-option:hover,.item-editor-item .widget-box.widget-blockInteraction .qti-interaction .add-option:hover{opacity:.8}.font-selector optgroup{font-style:normal;line-height:1.5;font-weight:normal;font-size:1.4rem;color:#6f6359;padding:2px}.font-selector option{font-size:1.2rem;color:#222}#appearance-trigger .icon-item{display:none}#item-editor-widget-bar{display:none}#panel-authoring{height:calc(100vh - 135px)}#panel-authoring.context-structure-tests{height:inherit}#item-editor-scope{height:calc(100% - 35px)}#item-editor-scope>nav.action-bar{z-index:15;padding:0;display:-ms-flex;display:-webkit-flex;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:flex-start;align-content:flex-start;-webkit-align-items:stretch;align-items:stretch}#item-editor-scope>nav.action-bar .action-group{padding:5px;position:relative}#item-editor-scope>nav.action-bar .menu-left{-ms-order:0;-webkit-order:0;order:0;flex-item-align:stretch;-ms-flex-item-align:stretch;-webkit-align-self:stretch;align-self:stretch;-ms-flex:0 0 195px;-webkit-flex:0 0 195px;flex:0 0 195px;border-right:1px solid #ddd}#item-editor-scope>nav.action-bar .menu-right{-ms-order:0;-webkit-order:0;order:0;flex-item-align:stretch;-ms-flex-item-align:stretch;-webkit-align-self:stretch;align-self:stretch;-ms-flex:0 0 195px;-webkit-flex:0 0 195px;flex:0 0 195px;border-left:1px solid #ddd}#item-editor-scope>nav.action-bar .menu{-ms-order:0;-webkit-order:0;order:0;flex-item-align:stretch;-ms-flex-item-align:stretch;-webkit-align-self:stretch;align-self:stretch;-ms-flex:1 1 auto;-webkit-flex:1 1 auto;flex:1 1 auto;-ms-flex:1 1;-webkit-flex:1 1;flex:1 1}#panel-authoring{height:calc(100vh - 135px)}#panel-authoring.context-structure-tests{height:inherit}#panel-authoring #item-editor-scope{height:100%}#item-editor-wrapper{margin:0;position:relative;background-color:#f3f1ef;height:100%;display:-ms-flex;display:-webkit-flex;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:flex-start;align-content:flex-start;-webkit-align-items:stretch;align-items:stretch}#item-editor-wrapper .item-editor-item{position:relative}#item-editor-wrapper .item-editor-item [class*=" col-"],#item-editor-wrapper .item-editor-item [class^=col-]{padding:3px}.item-editor-response-related .response-mapping-info .feedback-info,.item-editor-response-related .response-matchmax-info .feedback-info,.item-editor-choice-related .response-mapping-info .feedback-info,.item-editor-choice-related .response-matchmax-info .feedback-info{padding:5px}.item-editor-css-editor select{min-width:0 !important;width:auto !important}.sidebar-right-section-box{display:none}.widget-rubricBlock [data-html-editable]:before,.widget-textBlock [data-html-editable]:before,.item-editor-item .colrow:before,#item-editor-interaction-bar .tool-list:before,.widget-rubricBlock [data-html-editable]:after,.widget-textBlock [data-html-editable]:after,.item-editor-item .colrow:after,#item-editor-interaction-bar .tool-list:after{content:" ";display:table}.widget-rubricBlock [data-html-editable]:after,.widget-textBlock [data-html-editable]:after,.item-editor-item .colrow:after,#item-editor-interaction-bar .tool-list:after{clear:both}.item-editor-sidebar .tool-group .qti-outcome-editor .outcome-container label,.item-editor-sidebar .tool-group .qti-outcome-editor .outcome-container .label{cursor:default}.item-editor-sidebar .tool-group .qti-outcome-editor .outcome-container .trigger{color:#0e5d91;float:right;padding:3px;margin-left:3px;cursor:pointer}.item-editor-sidebar .tool-group .qti-outcome-editor .outcome-container .trigger:hover{color:#6e9ebd}.item-editor-sidebar .tool-group .qti-outcome-editor .outcome-container .trigger:active{color:#9fbed3}.item-editor-sidebar .tool-group .qti-outcome-editor .outcome-container.readonly .trigger{color:#b7b1ac !important;cursor:not-allowed}.item-editor-sidebar .tool-group .qti-outcome-editor .outcome-container .identifier-label{font-size:12.5px;font-size:1.25rem;display:inline-block;margin:0;width:calc(100% - 44px);overflow:hidden;text-overflow:ellipsis}.item-editor-sidebar .tool-group .qti-outcome-editor .outcome-container .identifier-label input.identifier{min-width:80px;display:none;margin-bottom:6px}.item-editor-sidebar .tool-group .qti-outcome-editor .outcome-container h3{display:block}.item-editor-sidebar .tool-group .qti-outcome-editor .outcome-container .outcome-properties-form{display:none}.item-editor-sidebar .tool-group .qti-outcome-editor .outcome-container .minimum-maximum label{display:inline}.item-editor-sidebar .tool-group .qti-outcome-editor .outcome-container .minimum-maximum label.has-icon{display:inline-block;min-width:140px;width:140px}.item-editor-sidebar .tool-group .qti-outcome-editor .outcome-container .minimum-maximum .incrementer-ctrl-wrapper{margin:0 2px}.item-editor-sidebar .tool-group .qti-outcome-editor .outcome-container .minimum-maximum .incrementer-ctrl-wrapper .incrementer{width:46px !important}.item-editor-sidebar .tool-group .qti-outcome-editor .outcome-container.editing .icon-edit{font-weight:bold;color:#0e5d91}.item-editor-sidebar .tool-group .qti-outcome-editor .outcome-container.editing .icon-edit:hover{color:#3e7da7}.item-editor-sidebar .tool-group .qti-outcome-editor .outcome-container.editing .outcome-properties-form{display:block}.item-editor-sidebar .tool-group .qti-outcome-editor .outcome-container.editing .identifier-label{margin-bottom:12px}.item-editor-sidebar .tool-group .qti-outcome-editor .outcome-container.editing .identifier-label span.label{display:none}.item-editor-sidebar .tool-group .qti-outcome-editor .outcome-container.editing .identifier-label input.identifier{display:inline-block}.widget-rubricBlock [data-html-editable]:before,.widget-textBlock [data-html-editable]:before,.item-editor-item .colrow:before,#item-editor-interaction-bar .tool-list:before,.widget-rubricBlock [data-html-editable]:after,.widget-textBlock [data-html-editable]:after,.item-editor-item .colrow:after,#item-editor-interaction-bar .tool-list:after{content:" ";display:table}.widget-rubricBlock [data-html-editable]:after,.widget-textBlock [data-html-editable]:after,.item-editor-item .colrow:after,#item-editor-interaction-bar .tool-list:after{clear:both}#item-editor-interaction-bar img.interaction-sidebar-icon{width:28px;height:28px;display:block;margin:5px auto 8px;opacity:.8}#item-editor-interaction-bar .tool-group .panel.sub-group{position:relative;padding-top:0 !important;padding-bottom:4px}#item-editor-interaction-bar .tool-group .panel.sub-group .tool-list{position:relative;z-index:4}#item-editor-interaction-bar .tool-group .panel.sub-group .sub-group-cover{position:absolute;left:0;top:-7px;width:96%;height:100%;background-color:rgba(243,241,239,.3) !important;z-index:2;border:1px #8d949e solid;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;margin:2%;cursor:no-drop !important}#item-editor-interaction-bar .tool-group .panel.sub-group .sub-group-cover.blocking{z-index:10}#item-editor-interaction-bar .tool-group .panel.sub-group .sub-group-cover:after,#item-editor-interaction-bar .tool-group .panel.sub-group .sub-group-cover:before{bottom:100%;left:35%;border:solid rgba(0,0,0,0);content:" ";height:0;width:0;position:absolute;pointer-events:none}#item-editor-interaction-bar .tool-group .panel.sub-group .sub-group-cover:after{border-color:rgba(0,0,0,0);border-bottom-color:#f3f1ef;border-width:8px;margin-left:-8px}#item-editor-interaction-bar .tool-group .panel.sub-group .sub-group-cover:before{border-color:rgba(0,0,0,0);border-bottom-color:#8d949e;border-width:9px;margin-left:-9px}#item-editor-interaction-bar .tool-list{margin-top:-3px;display:flex;flex-wrap:wrap}#item-editor-interaction-bar .tool-list li{width:100%;margin:0;padding:9px 3px;font-size:12px;font-size:1.2rem;border:1px dotted rgba(0,0,0,0);cursor:move;display:flex;align-items:center}#item-editor-interaction-bar .tool-list li:hover{background:rgba(255,255,255,.6);border:1px dotted #aaa}#item-editor-interaction-bar .tool-list li span{display:block;margin:5px;font-size:25px;font-size:2.5rem;opacity:.9}#item-editor-interaction-bar .tool-list li .tool-name{display:inline-block}#item-editor-interaction-bar .tool-list li img.icon{max-height:28px;margin:5px}#item-editor-interaction-bar .tool-list li.disabled{cursor:default;background-color:#eee !important}#item-editor-interaction-bar .tool-list li.disabled:hover{background:rgba(255,255,255,.6);border:1px dotted rgba(0,0,0,0)}#item-editor-interaction-bar .tool-list li.dev{background:#f3f7fa;color:#0e5d91}#item-editor-interaction-bar .tool-list li.dev:hover{background:rgba(255,255,255,.6)}.widget-rubricBlock [data-html-editable]:before,.widget-textBlock [data-html-editable]:before,.item-editor-item .colrow:before,#item-editor-interaction-bar .tool-list:before,.widget-rubricBlock [data-html-editable]:after,.widget-textBlock [data-html-editable]:after,.item-editor-item .colrow:after,#item-editor-interaction-bar .tool-list:after{content:" ";display:table}.widget-rubricBlock [data-html-editable]:after,.widget-textBlock [data-html-editable]:after,.item-editor-item .colrow:after,#item-editor-interaction-bar .tool-list:after{clear:both}.window-popup .window-component-body{display:flex}.window-popup .window-component-body .math-popup-input{width:100%;max-width:none;resize:none}.window-popup .window-component-body .math-input{display:flex;flex-direction:column}.window-popup .window-component-body .math-input .math-input-toolbar .math-input-toolgroup{float:left;border-right:1px solid #a4bbc5;margin-right:10px;padding-right:10px;margin-bottom:5px}.window-popup .window-component-body .math-input .math-input-toolbar .math-input-toolgroup:last-child{margin-right:0;padding-right:0;border-right:none}.window-popup .window-component-body .math-input .math-input-toolbar .math-input-toolgroup .math-input-tool{margin:1px}.window-popup .window-component-body .math-input .math-input-form{clear:both;flex:1;margin-top:10px}.window-popup .window-component-body .math-input .math-input-form .math-input-mathquill{width:100%;height:100%;border-color:#ddd;background:#fff}.widget-rubricBlock [data-html-editable]:before,.widget-textBlock [data-html-editable]:before,.item-editor-item .colrow:before,#item-editor-interaction-bar .tool-list:before,.widget-rubricBlock [data-html-editable]:after,.widget-textBlock [data-html-editable]:after,.item-editor-item .colrow:after,#item-editor-interaction-bar .tool-list:after{content:" ";display:table}.widget-rubricBlock [data-html-editable]:after,.widget-textBlock [data-html-editable]:after,.item-editor-item .colrow:after,#item-editor-interaction-bar .tool-list:after{clear:both}.item-editor-sidebar .tool-group .panel .panel.autostart-subpanel{margin:-10px 0 10px 20px}.item-editor-sidebar-wrapper{background:#f3f1ef;padding-bottom:35px;-ms-order:0;-webkit-order:0;order:0;flex-item-align:stretch;-ms-flex-item-align:stretch;-webkit-align-self:stretch;align-self:stretch;-ms-flex:0 0 195px;-webkit-flex:0 0 195px;flex:0 0 195px;overflow-y:auto;overflow-x:hidden}.item-editor-sidebar-wrapper.left-bar .item-editor-sidebar{border-right:1px solid #fff}.item-editor-sidebar-wrapper.right-bar .item-editor-sidebar{border-left:1px solid #fff}.item-editor-sidebar-wrapper.right-bar .tooltip{max-width:200px}.item-editor-sidebar .tool-group h2{font-size:14px;font-size:1.4rem;border-top:1px #fff solid;font-weight:normal;line-height:30px;padding:0 6px;letter-spacing:.06rem;clear:left;margin:0 0 0 0;color:#000;position:relative;background:#dddfe2;cursor:pointer}.item-editor-sidebar .tool-group h2 .icon-down{display:none}.item-editor-sidebar .tool-group h2 .icon-up{display:block}.item-editor-sidebar .tool-group h2.closed .icon-down{display:block}.item-editor-sidebar .tool-group h2.closed .icon-up{display:none}.item-editor-sidebar .tool-group h2 span{position:absolute;top:9px;right:9px}.item-editor-sidebar .tool-group h2.toggler:after{float:right;top:0}.item-editor-sidebar .tool-group hr{margin:6px 8px 4px 8px}.item-editor-sidebar .tool-group .panel{padding:15px 5px 8px 5px}.item-editor-sidebar .tool-group .panel .panel{padding:0;margin-bottom:15px}.item-editor-sidebar .tool-group .panel hr{margin-bottom:15px}.item-editor-sidebar .tool-group .panel h3{padding:0 0 12px 0;margin:0;font-size:14px;font-size:1.4rem;max-width:450px;display:inline-block}.item-editor-sidebar .tool-group .panel h3.full-width{max-width:none;display:block}.item-editor-sidebar .tool-group .panel select,.item-editor-sidebar .tool-group .panel input[type=text],.item-editor-sidebar .tool-group .panel textarea{width:100%}.item-editor-sidebar .tool-group .panel select.has-icon,.item-editor-sidebar .tool-group .panel input[type=text].has-icon,.item-editor-sidebar .tool-group .panel textarea.has-icon{width:140px;min-width:140px;max-width:140px}.item-editor-sidebar .tool-group .panel select.short{width:auto;min-width:100px}.item-editor-sidebar .tool-group .panel .icon-help.tooltipstered{cursor:pointer;float:right}.item-editor-sidebar .tool-group .panel:last-child,.item-editor-sidebar .tool-group .panel .panel-row{margin-bottom:7px}.item-editor-sidebar .tool-group .panel label{padding:0;font-size:13px;font-size:1.3rem}.item-editor-sidebar .tool-group .panel label.has-icon{width:140px;min-width:140px;max-width:140px;display:inline-block}.item-editor-sidebar .tool-group .panel input.score{width:40px;min-width:40px}.item-editor-sidebar .tool-group .panel button.block{width:100%;margin-top:5px}.item-editor-sidebar .tool-group .panel .feedbackRule-panel .adder :before{font-size:1.4rem}.item-editor-sidebar .tool-group .panel.subpanel{border:1px solid #ddd;border-radius:2px;-webkit-border-radius:2px;background-color:rgba(255,255,255,.8);padding:8px;margin:5px 0;font-size:13px;font-size:1.3rem}.item-editor-sidebar .tool-group .panel .icon-help.tooltipstered{color:#0e5d91}.item-editor-sidebar .tool-group .panel.choice-min-max{margin-left:20px}.item-editor-sidebar .tool-group .panel.choice-min-max .spinner{min-width:80px}.item-editor-sidebar .inset{margin-left:6px;margin-right:6px}.item-editor-sidebar:first-child{right:auto;left:0}.item-editor-sidebar .reset-group select{width:140px;min-width:140px;max-width:140px}.item-editor-sidebar .reset-group .reset-button{position:relative;top:6px;right:3px;float:right;padding:0;height:20px;width:20px;text-align:right;cursor:pointer}.item-editor-sidebar .reset-group .reset-button:hover{color:#3e7da7}.item-editor-sidebar .item-editor-unit-input-box{position:relative;display:inline}.item-editor-sidebar .item-editor-unit-input-box input{padding-right:28px}.item-editor-sidebar .item-editor-unit-input-box .unit-indicator{width:28px;line-height:28px;height:28px;color:#919191;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px}.item-editor-sidebar #item-editor-item-resizer .reset-group{display:none}.item-editor-sidebar .cbr-right{width:100%}.item-editor-sidebar .cbr-right span.icon-checkbox,.item-editor-sidebar .cbr-right span.icon-radio{float:right}.item-editor-sidebar .spinner{min-width:100px;line-height:22px}.item-editor-sidebar .spinner~.tooltipstered{top:6px}.item-editor-sidebar .spinner.short{padding-right:10px}.item-editor-sidebar .min-max-panel .spinner{min-width:90px}.item-editor-sidebar .incrementer.large{min-width:55px !important}.item-editor-sidebar .incrementer-ctrl{top:-3px}.item-editor-sidebar #item-editor-font-size-changer{padding-top:1px;overflow:hidden;display:table;width:140px;float:left}.item-editor-sidebar #item-editor-font-size-changer a{display:table-cell;padding:0 10px;color:#222;text-decoration:none !important;width:70px;line-height:21px;text-align:left}.item-editor-sidebar #item-editor-font-size-changer a.icon-smaller{text-align:right}.item-editor-sidebar #item-editor-font-size-changer .icon-smaller{font-size:12px;font-size:1.2rem}.item-editor-sidebar #item-editor-font-size-changer .icon-larger{font-size:18px;font-size:1.8rem}.item-editor-sidebar #style-sheet-toggler .style-sheet-toggler{font-size:11px;font-size:1.1rem;border:1px solid #ccc;border-radius:2px;-webkit-border-radius:2px;display:inline-block;width:20px;height:18px;padding:2px 0 1px 3px;cursor:pointer !important;margin:0 4px 0 2px}.item-editor-sidebar #style-sheet-toggler .style-sheet-toggler.disabled:before{font-family:"tao" !important;speak:never;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:""}.item-editor-sidebar #style-sheet-toggler .style-sheet-label-editor{display:none;width:100px;min-width:100px;padding:0px 3px;font-size:13px;font-size:1.3rem;position:relative;top:1px}.item-editor-sidebar #style-sheet-toggler .icon-download,.item-editor-sidebar #style-sheet-toggler .icon-bin{float:right;cursor:pointer;margin-left:5px;position:relative;top:2px}.item-editor-sidebar #style-sheet-toggler .not-available,.item-editor-sidebar #style-sheet-toggler .not-available *{color:#919191;cursor:default !important}.item-editor-sidebar #style-sheet-toggler .file-label{display:inline-block;cursor:pointer;width:100px;line-height:.9;position:relative;font-size:13px;font-size:1.3rem;top:2px}.item-editor-sidebar #style-sheet-toggler .file-label:hover{color:#3e7da7}.item-editor-sidebar #stylesheet-uploader{width:100%}.item-editor-sidebar .item-editor-color-picker .color-trigger{width:40px;display:inline-block;height:18px;float:right;font-size:9px;cursor:pointer;-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;border:1px solid #ddd;border-radius:2px;-webkit-border-radius:2px}.item-editor-sidebar .item-editor-color-picker .reset-button{font-size:13px;font-size:1.3rem;top:5px}.item-editor-sidebar .item-editor-color-picker #color-picker-container{top:-235px}.item-editor-sidebar .item-editor-color-picker #color-picker-container label{max-width:60% !important}.item-editor-sidebar .item-editor-color-picker .color-picker{margin-top:-5px}.item-editor-sidebar .compass{position:relative;width:100px;margin:auto}.item-editor-sidebar .compass span{display:block;font-size:25px;font-size:2.5rem;line-height:1.1;width:33%;background:#fff;text-align:center;cursor:pointer;border:1px dotted #aaa}.item-editor-sidebar .compass span:hover{background:#3e7da7;color:#fff}.item-editor-sidebar .compass span.icon-up,.item-editor-sidebar .compass span.icon-down{margin:auto}.item-editor-sidebar .compass span.icon-left{float:left}.item-editor-sidebar .compass span.icon-right{float:right}.sidebar-popup{background:#f3f1ef;padding:1px;position:absolute;right:182px;top:37px;width:180px;-webkit-box-shadow:0 0 2px 0px rgba(141, 148, 158, 0.75);-moz-box-shadow:0 0 2px 0px rgba(141, 148, 158, 0.75);box-shadow:0 0 2px 0px rgba(141, 148, 158, 0.75);display:none;z-index:15000}.sidebar-popup .sidebar-popup-content{overflow-y:auto}.sidebar-popup .sidebar-popup-content>.panel{padding-left:5px !important;padding-right:5px !important}.sidebar-popup .sidebar-popup-title{color:#fff;background:#3e7da7;margin-bottom:2px;cursor:move}.sidebar-popup .sidebar-popup-title a{color:#fff}.sidebar-popup .sidebar-popup-title .closer{position:absolute;top:1px;right:2px}.sidebar-popup .sidebar-popup-title h3{padding:0 5px !important}.sidebar-popup input,.sidebar-popup textarea{width:100%;max-width:none;display:block}.sidebar-popup.one-twenty-five{width:225px}.sidebar-popup.one-fifty{width:270px}.sidebar-popup.two{width:360px}.sidebar-popup.two-twenty-five{width:405px}.sidebar-popup.two-fifty{width:450px}.sidebar-popup.three{width:540px}.sidebar-popup.three-twenty-five{width:585px}.sidebar-popup.three-fifty{width:630px}.sidebar-popup.mathml input{display:none;font-family:Consolas,"Andale Mono WT","Andale Mono","Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L",Monaco,"Courier New",Courier,monospace}.sidebar-popup.mathml textarea{height:250px;font-family:Consolas,"Andale Mono WT","Andale Mono","Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L",Monaco,"Courier New",Courier,monospace}.sidebar-popup.latex textarea{display:none;font-family:Consolas,"Andale Mono WT","Andale Mono","Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L",Monaco,"Courier New",Courier,monospace}.sidebar-popup.color-picker-container{right:0}.item-viewer-panel,#item-editor-panel{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAAAAAA7VNdtAAAFQElEQVR42iXWW45kSREEUDN/xM3M6h4GJCT2vyl2gVBPV1XeCHc3PjirOPFvQE0HWecC3rZ4D9JFcpqSEy4MRO2Cw6M7y6xFY/xaz9fuThJGVSVNpvK7jL3Ggoyp4NsDzjd8dYJS+H8/HtNCo1HjRoNxoto8Wj1xntjG41srvQ7S67JC9UN30vz3snNpfBrEyNaOi5g3ctJFeluZra4rgwJIpMema9qCmEWtsK/I+fpbeDfSXe+AlQMoSxlwreFXRifYhNd4DL6erzoImTTg83iJFbCoM2Z3QqoGeLSmix3Hcvp11yzyax6ujkMEaV02MD/xYB1j2/SoK+IOi738OidmWCrfzwa2zy975XQeOMxNu1+kFS2esEGHrU+vR48LNyVTyQnrz4WK6oVmkaProfD3o1bvRcfywb4/Xsf9IBi70Ethc9qdj2dJXrNiazeN1XDJ+rdbtHkNE/b6/v6JAALjhrn1YHy9A68JGAQCZ/IfIMyaz7OZZjjBQbg0mo3Hd8RnXKSp348L3cdc+6qF6ePCvPPPniFkFIka9P7jn9GVhx5WeT7jB+qOmTRD0xzec/OaovsMn1/TDyBk8/2Rfnq5E0debzcsHwgqNNkS2ylitYcsytui5a14jaCrYp1kjxPHTa/9zqRGxOd6lqgw79pJoX01SPCpW1edJSW3aiwJVifmfk77O1Lx6ESH4Nh5m8e46RzDxYMnzLBd49Lj7u44gRtXb99uRqoTJlicX/FY7O1mU2QjOfIXH7/19zhujmIxUeU+Y1QKf6YTLa8Oo6YHwLmkaAszyLJfczoMUJK0Ssfo6KM+OetMDtBI2/NUhw3uDJi2X7px2XGNqcjTafYRezNhNrERruMnbpiZXFwxjBmQaEouS1RfvtrwJmjhkNe7Yruln4DMBIEDOQ4uFA/O9jLTjJs1j7tcEYZK2NhqsD6f+5rqyB4ddCnj/R2ewSHpjuOPHdf00AChWR4EYtu0hRXEq97FqHFqbFTz/FZs9/eHVIYJpKPdeVdYw/DE8AKNFyGU7E7MBFDZ5kQ1zX0KzEDPwC7zz35dN4ygpi67/DaP19ij7ycgo6M3hZOvrnzPC4pq0F0wFaCAeYWFYFadZibt79fomJg38vbsoV2ghpuL3RO00EC6vjsc1sRrlaJbpnTUODAa2poFTr0XnfHuH7qtftuDGJPB5vfPPM6AQou7fIzWM4p4XMDEG2D1j8Bk70tqWVqbOzTHDco5l4rs4RA8O5aG6z62mfY6CIgvb8OACvvGIgC1Qx7Y1ExcLWmlHb0t8QBcYYAoeY/Y5t7lbY9uu+7xZwANoTKzaoYO63EvBFqYtK3rasyS/Db5ZIfPROCMjQlJoLuYBNkTENIk9JnLtGBdZwUQGvNmPRxdEfdb50cLevs1Elk7c50Rre4n/vOvQPqRPIRDmbEjsuAiImQDk9gpdlKw/fyh8K4JSMxmGXFfD3doyOvux32enindFoDMb3MF0IGK8gHTZgxoqggpTInvH9ao9B6Td9oo5qyBw8eBBntCRj5GOuTktVxz//XHk+p2mXrifiMokq5BR94DNkPCsJBt3f4071kDOQwd/hPz/rnHgbGRns3vxTOOy2ff5uf7mReOgQ4K8gDID62De5VRZe/rfuSMYKOrdsczymEhx4hTJyZvrbYYie0QBj/1V4agcVV4JXqmYgFb8sxYQ95BFdsNyPPHoadIqM1fLYdiT4gQ+P00xZfZih5YtkFn7Xdw7P/FIeltYjSfW+Q1IZ7wcQgU4DupThfe9aN3wtCUjJoLktqBD27/HztqGm4EFwGoAAAAAElFTkSuQmCC)}.item-viewer-panel{background-position:100%;border-right:2px solid #266d9c;position:relative;overflow:visible;padding:31px 0 0 0;width:40%;height:100%}.item-viewer-panel.has-item .item-viewer-scroll-outer{background-image:none}.item-viewer-panel h1{font-weight:300;margin:0}.item-viewer-panel .item-viewer-bar{position:absolute;top:0;left:0;width:100%;min-height:31px;z-index:100;background:#dddfe2;border-top:1px solid #fff;border-bottom:0;-webkit-box-shadow:0px 6px 10px -5px #b7b1ac;-moz-box-shadow:0px 6px 10px -5px #b7b1ac;-ms-box-shadow:0px 6px 10px -5px #b7b1ac;-o-box-shadow:0px 6px 10px -5px #b7b1ac;box-shadow:0px 6px 10px -5px #b7b1ac}.item-viewer-panel .item-viewer-bar>h1{position:absolute;width:100%;text-align:center;font-size:15px;font-size:1.5rem;line-height:28px;padding:0 10px;margin:0}.item-viewer-panel .item-viewer-scroll-container{position:relative;height:100%;-ms-order:0;-webkit-order:0;order:0;flex-item-align:stretch;-ms-flex-item-align:stretch;-webkit-align-self:stretch;align-self:stretch;-ms-flex:1 1 auto;-webkit-flex:1 1 auto;flex:1 1 auto;-ms-flex:1 1;-webkit-flex:1 1;flex:1 1;overflow:auto}.item-viewer-panel .item-viewer-scroll-container .item-viewer-scroll-inner{padding:50px 20px 20px}.item-viewer-panel .item-viewer-scroll-container .item-viewer-scroll-outer{position:relative}.item-viewer-panel .item-viewer{-webkit-box-shadow:0px 6px 8px 0px #b7b1ac;-moz-box-shadow:0px 6px 8px 0px #b7b1ac;-ms-box-shadow:0px 6px 8px 0px #b7b1ac;-o-box-shadow:0px 6px 8px 0px #b7b1ac;box-shadow:0px 6px 8px 0px #b7b1ac;max-width:1024px;margin:auto}.item-viewer-separator-handle{background:#fff;color:#266d9c;border:2px solid #266d9c;border-radius:50%;width:36px;height:36px;line-height:36px;font-size:20px;font-size:2rem;text-align:center;position:absolute;top:50%;right:-18px;z-index:10;cursor:pointer;user-select:none}.item-viewer-separator-handle:hover{background:#e7eff4}.item-viewer-separator-handle span{position:relative;top:-2px}.side-by-side-authoring .item-viewer-scroll-inner{min-width:600px}.side-by-side-authoring #item-editor-scoll-container #item-editor-scroll-inner{min-width:700px;padding:80px 20px 20px}.side-by-side-authoring #item-editor-scoll-container #item-editor-scroll-outer{background:rgba(0,0,0,0)}#item-editor-panel{padding:0;position:relative;overflow:hidden;height:100%;-ms-order:0;-webkit-order:0;order:0;flex-item-align:stretch;-ms-flex-item-align:stretch;-webkit-align-self:stretch;align-self:stretch;-ms-flex:1 1 auto;-webkit-flex:1 1 auto;flex:1 1 auto;-ms-flex:1 1;-webkit-flex:1 1;flex:1 1}#item-editor-panel .widget-rubricBlock [data-html-editable]:before,.widget-rubricBlock #item-editor-panel [data-html-editable]:before,#item-editor-panel .widget-textBlock [data-html-editable]:before,.widget-textBlock #item-editor-panel [data-html-editable]:before,#item-editor-panel .item-editor-item .colrow:before,.item-editor-item #item-editor-panel .colrow:before,#item-editor-panel #item-editor-interaction-bar .tool-list:before,#item-editor-interaction-bar #item-editor-panel .tool-list:before,#item-editor-panel .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock #item-editor-panel [data-html-editable]:after,#item-editor-panel .widget-textBlock [data-html-editable]:after,.widget-textBlock #item-editor-panel [data-html-editable]:after,#item-editor-panel .item-editor-item .colrow:after,.item-editor-item #item-editor-panel .colrow:after,#item-editor-panel #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar #item-editor-panel .tool-list:after{content:" ";display:table}#item-editor-panel .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock #item-editor-panel [data-html-editable]:after,#item-editor-panel .widget-textBlock [data-html-editable]:after,.widget-textBlock #item-editor-panel [data-html-editable]:after,#item-editor-panel .item-editor-item .colrow:after,.item-editor-item #item-editor-panel .colrow:after,#item-editor-panel #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar #item-editor-panel .tool-list:after{clear:both}#item-editor-panel .item-editor-bar{position:absolute;width:100%;min-height:31px;z-index:100;background:#dddfe2;border-top:1px solid #fff;border-bottom:0;-webkit-box-shadow:0px 6px 10px -5px #b7b1ac;-moz-box-shadow:0px 6px 10px -5px #b7b1ac;-ms-box-shadow:0px 6px 10px -5px #b7b1ac;-o-box-shadow:0px 6px 10px -5px #b7b1ac;box-shadow:0px 6px 10px -5px #b7b1ac}#item-editor-panel .item-editor-bar>h1{position:absolute;width:100%;text-align:center;font-size:15px;font-size:1.5rem;line-height:28px;padding:0 10px;margin:0}#item-editor-panel .item-editor-bar .cke .cke_top{border:none;border-radius:0;padding:0;margin:0;width:100%;background:#dddfe2;box-shadow:unset}#item-editor-panel .item-editor-bar .cke .cke_top .cke_toolbar .cke_combo_disabled .cke_combo_button:hover,#item-editor-panel .item-editor-bar .cke .cke_top .cke_toolbar .cke_button_disabled:hover{background:rgba(0,0,0,0) !important;color:#222 !important;cursor:default}#item-editor-panel .item-editor-bar .cke .cke_top .cke_toolbar .cke_button_icon,#item-editor-panel .item-editor-bar .cke .cke_top .cke_toolbar .cke_button{height:21px;font-size:14px;line-height:16px}#item-editor-panel .item-editor-bar .cke .cke_top .cke_toolbar .cke_toolgroup{background:rgba(0,0,0,0);border:none}#item-editor-panel .item-editor-bar .cke .cke_top .cke_toolbar .cke_toolbar_end{border-right:1px solid #b2b2b2;top:4px;position:relative;margin:0px 5px}#item-editor-panel .item-editor-bar .cke .cke_top .cke_toolbar .cke_combo{height:18px;padding-top:2px}#item-editor-panel .item-editor-bar .cke .cke_top .cke_toolbar .cke_combo .cke_combo_text{height:20px;line-height:22px;padding-top:0px}#item-editor-panel .item-editor-bar .cke .cke_top .cke_toolbar .cke_combo .cke_combo_open{height:17px}#item-editor-panel .item-editor-bar .cke .cke_top .cke_toolbar .cke_combo .cke_combo_open .cke_combo_arrow{margin:6px 0 0}#item-editor-panel .item-editor-bar .invalid-info-box{border-color:#dcb66b;background-color:#f7efde;margin-top:28px;height:28px;padding-top:5px;padding-left:10px}#item-editor-panel .widget-rubricBlock [data-html-editable]:before,.widget-rubricBlock #item-editor-panel [data-html-editable]:before,#item-editor-panel .widget-textBlock [data-html-editable]:before,.widget-textBlock #item-editor-panel [data-html-editable]:before,#item-editor-panel .item-editor-item .colrow:before,.item-editor-item #item-editor-panel .colrow:before,#item-editor-panel #item-editor-interaction-bar .tool-list:before,#item-editor-interaction-bar #item-editor-panel .tool-list:before,#item-editor-panel .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock #item-editor-panel [data-html-editable]:after,#item-editor-panel .widget-textBlock [data-html-editable]:after,.widget-textBlock #item-editor-panel [data-html-editable]:after,#item-editor-panel .item-editor-item .colrow:after,.item-editor-item #item-editor-panel .colrow:after,#item-editor-panel #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar #item-editor-panel .tool-list:after{content:" ";display:table}#item-editor-panel .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock #item-editor-panel [data-html-editable]:after,#item-editor-panel .widget-textBlock [data-html-editable]:after,.widget-textBlock #item-editor-panel [data-html-editable]:after,#item-editor-panel .item-editor-item .colrow:after,.item-editor-item #item-editor-panel .colrow:after,#item-editor-panel #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar #item-editor-panel .tool-list:after{clear:both}#item-editor-panel .widget-table{display:table;margin:0 auto 0 0}#item-editor-panel .widget-table.table-center{display:table;margin:0 auto}#item-editor-panel .widget-table.table-right{display:table;margin:0 0 0 auto}#item-editor-panel .widget-table .qti-table-container{border:0}#item-editor-panel .widget-table table.qti-table th.hoverDelete,#item-editor-panel .widget-table table.qti-table td.hoverDelete{background-color:#f9f3e6}#item-editor-panel .widget-table table.qti-table th.insertColAfter,#item-editor-panel .widget-table table.qti-table td.insertColAfter{border-right-color:#87aec8;border-right-width:3px}#item-editor-panel .widget-table table.qti-table th.insertRowAfter,#item-editor-panel .widget-table table.qti-table td.insertRowAfter{border-bottom-color:#87aec8;border-bottom-width:3px}#item-editor-panel .widget-table .mini-tlb{width:28px;right:-32px}#item-editor-panel .table-tlb{display:block;right:auto;top:auto}#item-editor-panel .window-component.widget-popup{border:0;z-index:99;background-color:rgba(243,241,239,.9)}#item-editor-panel .window-component.widget-popup .window-component-title-bar{background-color:#266d9c;color:#fff;text-shadow:1px 1px 0 #0b4a74}#item-editor-panel .window-component.widget-popup .window-component-title-bar .window-component-title{padding:auto}#item-editor-panel .window-component.widget-popup .window-component-body{padding:20px 20px 0;background-color:rgba(0,0,0,0)}#item-editor-panel .window-component.widget-popup .widget-popup-controls-area{padding:10px 10px;display:flex;justify-content:flex-end}#item-editor-panel .widget-rubricBlock [data-html-editable]:before,.widget-rubricBlock #item-editor-panel [data-html-editable]:before,#item-editor-panel .widget-textBlock [data-html-editable]:before,.widget-textBlock #item-editor-panel [data-html-editable]:before,#item-editor-panel .item-editor-item .colrow:before,.item-editor-item #item-editor-panel .colrow:before,#item-editor-panel #item-editor-interaction-bar .tool-list:before,#item-editor-interaction-bar #item-editor-panel .tool-list:before,#item-editor-panel .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock #item-editor-panel [data-html-editable]:after,#item-editor-panel .widget-textBlock [data-html-editable]:after,.widget-textBlock #item-editor-panel [data-html-editable]:after,#item-editor-panel .item-editor-item .colrow:after,.item-editor-item #item-editor-panel .colrow:after,#item-editor-panel #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar #item-editor-panel .tool-list:after{content:" ";display:table}#item-editor-panel .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock #item-editor-panel [data-html-editable]:after,#item-editor-panel .widget-textBlock [data-html-editable]:after,.widget-textBlock #item-editor-panel [data-html-editable]:after,#item-editor-panel .item-editor-item .colrow:after,.item-editor-item #item-editor-panel .colrow:after,#item-editor-panel #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar #item-editor-panel .tool-list:after{clear:both}#item-editor-panel .qti-tooltip-editor{min-width:250px;max-width:350px}#item-editor-panel .qti-tooltip-editor .tooltip-editor-target-container{margin-bottom:5px}#item-editor-panel .qti-tooltip-editor .tooltip-editor-target-container .tooltip-editor-target{border:1px #ddd solid;text-align:center;cursor:text;padding:3px 5px;background-color:#fff;margin-bottom:2px}#item-editor-panel .qti-tooltip-editor .tooltip-editor-content-container{position:relative;margin-bottom:10px}#item-editor-panel .qti-tooltip-editor .tooltip-editor-content-container .tooltip-editor-content{background-color:#ffffa3;border:1px solid #f1d031;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;width:90%;margin:0 auto;padding:5px;font-size:1.3rem;font-weight:normal;color:#222;cursor:text}#item-editor-panel .qti-tooltip-editor .tooltip-editor-content-container .tooltip-editor-tip{transform:rotate(45deg) skew(20deg, 20deg);position:absolute;bottom:-5px;left:calc(50% - 5px);width:10px;height:10px;background-color:#ffffa3;border-right:1px solid #f1d031;border-bottom:1px solid #f1d031}#item-editor-panel.has-item #item-editor-scroll-outer{background-image:none}#item-editor-panel h1{font-weight:300;margin:0}#item-editor-panel .item-editor-drop-area{min-height:300px;padding-bottom:20px;margin-top:20px;position:relative;z-index:10}#item-editor-panel .item-editor-row{min-height:100px;overflow-x:hidden;overflow-y:visible}#item-editor-scoll-container{position:relative;height:100%;-ms-order:0;-webkit-order:0;order:0;flex-item-align:stretch;-ms-flex-item-align:stretch;-webkit-align-self:stretch;align-self:stretch;-ms-flex:1 1 auto;-webkit-flex:1 1 auto;flex:1 1 auto;-ms-flex:1 1;-webkit-flex:1 1;flex:1 1;overflow:auto}#item-editor-scoll-container #item-editor-scroll-inner{padding:80px 60px 20px}#item-editor-scoll-container #item-editor-scroll-outer{background-image:url(data:image/gif;base64,R0lGODlhKwALAPEAAN3d3TMzM4mJiTMzMyH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAKwALAAACMoSOCMuW2diD88UKG95W88uF4DaGWFmhZid93pq+pwxnLUnXh8ou+sSz+T64oCAyTBUAACH5BAkKAAAALAAAAAArAAsAAAI9xI4IyyAPYWOxmoTHrHzzmGHe94xkmJifyqFKQ0pwLLgHa82xrekkDrIBZRQab1jyfY7KTtPimixiUsevAAAh+QQJCgAAACwAAAAAKwALAAACPYSOCMswD2FjqZpqW9xv4g8KE7d54XmMpNSgqLoOpgvC60xjNonnyc7p+VKamKw1zDCMR8rp8pksYlKorgAAIfkECQoAAAAsAAAAACsACwAAAkCEjgjLltnYmJS6Bxt+sfq5ZUyoNJ9HHlEqdCfFrqn7DrE2m7Wdj/2y45FkQ13t5itKdshFExC8YCLOEBX6AhQAADsAAAAAAAAAAAA=);background-position:center 250px;background-repeat:no-repeat;position:relative}.item-editor-item{border:1px solid #ddd;border-radius:2px;-webkit-border-radius:2px;-webkit-box-shadow:0px 6px 8px 0px #b7b1ac;-moz-box-shadow:0px 6px 8px 0px #b7b1ac;-ms-box-shadow:0px 6px 8px 0px #b7b1ac;-o-box-shadow:0px 6px 8px 0px #b7b1ac;box-shadow:0px 6px 8px 0px #b7b1ac}.item-editor-item [class*=" col-"],.item-editor-item [class^=col-]{position:relative}.item-editor-item .inserting .widget-block,.item-editor-item .inserting .widget-blockInteraction{border:1px dashed #ddd}.item-editor-item .inserting .widget-img img{display:flex;height:100%}.item-editor-item .hoverable .widget-box.edit-sleep{position:relative}.item-editor-item .hoverable .widget-box.edit-sleep::after{content:"";display:block;position:absolute;left:0;top:0;width:100%;height:100%}.item-editor-item .hoverable .widget-box.widget-inline{display:inline-block}.item-editor-item .hoverable .widget-box.widget-inline.tao-centered{display:block}.item-editor-item .hoverable .widget-box.widget-block{display:block}.item-editor-item .hoverable .widget-box.widget-blockInteraction.edit-active{padding-top:24px}.item-editor-item .hoverable .widget-box.widget-img img{display:flex;height:100%}.item-editor-item .widget-box{border:1px solid rgba(0,0,0,0);position:relative}.item-editor-item .widget-box .overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(243,241,239,.5)}.item-editor-item .widget-box .overlay .message{padding:10px;background:rgba(243,241,239,.6);margin:auto;position:absolute;top:40%;left:0;bottom:auto;right:auto;display:block;min-height:30px;width:100%}.item-editor-item .widget-box .tlb-bar{z-index:99}.item-editor-item .widget-box .tlb-wrapper{position:absolute;width:100%;left:0;top:0px;display:block;cursor:default;color:#fff;background:#266d9c;text-shadow:1px 1px 0 #0b4a74;z-index:999;-webkit-box-shadow:0 0 0 1px #3e7da7;box-shadow:0 0 0 1px #3e7da7}.item-editor-item .widget-box .tlb-wrapper .tlb-title{margin-top:3px;line-height:1.4;font-size:14px !important;font-size:1.4rem !important}.item-editor-item .widget-box .tlb-wrapper .tlb{position:relative}.item-editor-item .widget-box .tlb-wrapper .tlb:before{content:"";height:100%;width:10px;position:absolute;right:100%;top:0;background:linear-gradient(left, transparent, #3e7da7)}.item-editor-item .widget-box .tlb-wrapper .tlb .state-switcher{float:right;padding:0;font-size:14px !important;font-size:1.4rem !important}.item-editor-item .widget-box .tlb-wrapper .tlb>div{margin:3px 0 2px}.item-editor-item .widget-box .tlb-wrapper .tlb .state-switcher{margin-right:15px}.item-editor-item .widget-box .tlb-wrapper .tlb .state-switcher .selected{font-size:1.4rem;font-weight:bold}.item-editor-item .widget-box .tlb-wrapper .tlb .state-switcher .link{font-size:1.4rem}.item-editor-item .widget-box .tlb-wrapper .tlb .state-switcher .link:hover{cursor:pointer;text-decoration:underline}.item-editor-item .widget-box .tlb-wrapper .tlb .state-switcher .separator{font-size:1.4rem}.item-editor-item .widget-box .tlb-wrapper .tlb .tlb-button{padding:3px 6px 0px;opacity:.8;font-size:13px;font-size:1.3rem}.item-editor-item .widget-box .tlb-wrapper .tlb .tlb-button:hover{cursor:pointer;font-weight:bold;opacity:1}.item-editor-item .widget-box .tlb-wrapper .tlb .tlb-button [class^=icon-],.item-editor-item .widget-box .tlb-wrapper .tlb .tlb-button [class*=" icon-"]{font-size:inherit;text-shadow:1px 1px 0 #0b4a74}.item-editor-item .widget-box>.common-tlb{overflow:hidden;margin:auto;width:20px;display:none;position:absolute;top:10px;left:0;right:0;padding:0;background:rgba(243,241,239,.5)}.item-editor-item .widget-box.hover>.common-tlb{display:inline-block;cursor:move}.item-editor-item .widget-box .float-space-top.cke_nose{display:block;right:5px;bottom:-6px}.item-editor-item .widget-box .float-space-bottom.cke_nose{display:block;top:-6px}.item-editor-item .widget-box.invalid{border:1px solid #d8ae5b !important}.item-editor-item .widget-box.widget-blockInteraction .qti-choice:not(th){border:1px solid rgba(0,0,0,0)}.item-editor-item .widget-box.widget-blockInteraction .qti-choice .inner-wrapper{min-width:1rem;border:1px solid rgba(0,0,0,0)}.item-editor-item .widget-box.widget-blockInteraction .qti-choice .inner-wrapper>div>div{display:flex}.item-editor-item .widget-box.widget-blockInteraction .qti-interaction .add-option>div{display:table;width:100%;height:100%}.item-editor-item .widget-box.widget-blockInteraction .qti-interaction .add-option>div [class^=icon-],.item-editor-item .widget-box.widget-blockInteraction .qti-interaction .add-option>div [class*=" icon-"]{display:table-cell;font-size:60px;font-size:6rem;position:static !important;vertical-align:middle;width:100%;height:100%;text-align:center;top:0;left:auto;padding:0}.item-editor-item .widget-box.widget-blockInteraction .qti-interaction .qti-prompt .cke_editable{margin-top:1px}.item-editor-item .widget-box.widget-blockInteraction .qti-interaction.qti-orderInteraction .qti-choice.edit-answer.active{cursor:default;z-index:9;border:1px solid #3e7da7}.item-editor-item .widget-box .widget-ok{display:none;float:right;margin:5px;position:relative;z-index:1}.item-editor-item .widget-box-placeholder{display:inline-block;margin:0;min-width:150px;position:relative;vertical-align:middle;background-color:#eee}.item-editor-item [data-edit]{display:none}.item-editor-item [data-edit]>[class*=" col-"],.item-editor-item [data-edit] [class^=col-]{margin-bottom:0 !important}.item-editor-item [data-edit].mini-tlb-label{position:absolute;top:-30px;left:-10px;background:#f3f1ef}.item-editor-item [data-edit].mini-tlb-label label{color:#0e5d91;cursor:default;font-size:12px;font-size:1.2rem;padding:2px 4px;margin:0}.item-editor-item .inner-wrapper{position:relative}.item-editor-item .dummy-element{min-width:50px;border:1px solid #ddd;border-radius:2px;-webkit-border-radius:2px;background-color:#eee;font-style:italic;color:#fff;padding:0;display:inline-block;line-height:24px;cursor:default}.item-editor-item .dummy-element [class^=icon-],.item-editor-item .dummy-element [class*=" icon-"]{font-size:inherit;line-height:inherit}.item-editor-item .widget-inline,.item-editor-item .widget-table,.item-editor-item .widget-figure{z-index:20}.item-editor-item .widget-inline,.item-editor-item .inline-text-wrapper{position:relative;display:inline-block}.item-editor-item .widget-inline [class^=icon-],.item-editor-item .widget-inline [class*=" icon-"],.item-editor-item .inline-text-wrapper [class^=icon-],.item-editor-item .inline-text-wrapper [class*=" icon-"]{width:100%;top:-2px}.item-editor-item .widget-inline~span.mini-tlb[data-edit],.item-editor-item .inline-text-wrapper~span.mini-tlb[data-edit]{position:absolute !important;top:-2px !important;right:-32px !important}.item-editor-item .widget-inline~span.mini-tlb[data-edit] .tlb-button,.item-editor-item .inline-text-wrapper~span.mini-tlb[data-edit] .tlb-button{margin:0 !important;padding:0 !important;height:24px !important;width:24px !important}.item-editor-item .widget-inline .mini-tlb[data-edit],.item-editor-item .inline-text-wrapper .mini-tlb[data-edit]{right:-32px !important}.item-editor-item .widget-inline.tao-centered,.item-editor-item .inline-text-wrapper.tao-centered{display:block}.item-editor-item .widget-include,.item-editor-item .qti-hottext,.item-editor-item .qti-gap,.item-editor-item .dummy-element{position:relative;display:inline-block}.item-editor-item .widget-include [class^=icon-],.item-editor-item .widget-include [class*=" icon-"],.item-editor-item .qti-hottext [class^=icon-],.item-editor-item .qti-hottext [class*=" icon-"],.item-editor-item .qti-gap [class^=icon-],.item-editor-item .qti-gap [class*=" icon-"],.item-editor-item .dummy-element [class^=icon-],.item-editor-item .dummy-element [class*=" icon-"]{display:inline-block;text-align:center;width:100%;position:relative;top:-2px}.item-editor-item .widget-include~span.mini-tlb[data-edit],.item-editor-item .qti-hottext~span.mini-tlb[data-edit],.item-editor-item .qti-gap~span.mini-tlb[data-edit],.item-editor-item .dummy-element~span.mini-tlb[data-edit]{position:absolute !important;top:-2px !important;right:-30px !important}.item-editor-item .widget-include~span.mini-tlb[data-edit] .tlb-button,.item-editor-item .qti-hottext~span.mini-tlb[data-edit] .tlb-button,.item-editor-item .qti-gap~span.mini-tlb[data-edit] .tlb-button,.item-editor-item .dummy-element~span.mini-tlb[data-edit] .tlb-button{margin:0 !important;padding:0 !important;height:24px !important;width:24px !important}.item-editor-item .widget-include .mini-tlb[data-edit],.item-editor-item .qti-hottext .mini-tlb[data-edit],.item-editor-item .qti-gap .mini-tlb[data-edit],.item-editor-item .dummy-element .mini-tlb[data-edit]{right:-32px !important}.item-editor-item .qti-hottext .hottext-content{user-select:none}.item-editor-item .qti-gap{margin-right:30px}.item-editor-item .widget-rubricBlock [data-html-editable]:before,.widget-rubricBlock .item-editor-item [data-html-editable]:before,.item-editor-item .widget-textBlock [data-html-editable]:before,.widget-textBlock .item-editor-item [data-html-editable]:before,.item-editor-item .colrow:before,.item-editor-item #item-editor-interaction-bar .tool-list:before,#item-editor-interaction-bar .item-editor-item .tool-list:before,.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{content:" ";display:table}.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{clear:both}.item-editor-item .widget-box.widget-block.widget-object{display:inline-block;vertical-align:bottom;max-width:100%}.item-editor-item .widget-box.widget-block.widget-object.previewer{max-width:100%}.item-editor-item .widget-rubricBlock [data-html-editable]:before,.widget-rubricBlock .item-editor-item [data-html-editable]:before,.item-editor-item .widget-textBlock [data-html-editable]:before,.widget-textBlock .item-editor-item [data-html-editable]:before,.item-editor-item .colrow:before,.item-editor-item #item-editor-interaction-bar .tool-list:before,#item-editor-interaction-bar .item-editor-item .tool-list:before,.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{content:" ";display:table}.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{clear:both}.item-editor-item .qti-choiceInteraction .real-label input[disabled]~[class^=icon-]{cursor:pointer !important}.item-editor-item .qti-choiceInteraction .choice-area .label-content{display:block}.item-editor-item [dir=rtl] .qti-choiceInteraction .choice-area .mini-tlb{right:auto !important;left:-2.2em}.item-editor-item [dir=rtl] .qti-choiceInteraction .choice-area .widget-math.edit-active span.mini-tlb{margin-right:6.3em;left:-2.2em;right:auto !important}.item-editor-item .qti-choiceInteraction .mini-tlb{right:-38px}.item-editor-item .qti-choiceInteraction .mini-tlb[data-edit=answer]{width:38px;background:rgba(0,0,0,0);border-color:rgba(0,0,0,0) !important}.item-editor-item .qti-choiceInteraction .mini-tlb[data-edit=answer] .tlb-button{margin:0;padding:0}.item-editor-item .qti-choiceInteraction .mini-tlb[data-edit=answer] .tlb-button:hover{background:rgba(0,0,0,0)}.item-editor-item .qti-choiceInteraction .horizontal .mini-tlb{top:-28px;right:0}.item-editor-item [dir=rtl] .qti-choiceInteraction .horizontal .mini-tlb{right:auto !important;left:-1px}.item-editor-item [dir=rtl] .qti-choiceInteraction .horizontal .widget-box.edit-active .mini-tlb{left:-2.2em;right:auto !important;top:0}.item-editor-item [dir=rtl] .qti-choiceInteraction .horizontal .widget-math.edit-active{margin-left:2.25em}.item-editor-item [dir=rtl] .qti-choiceInteraction .horizontal .widget-math.edit-active span.mini-tlb{margin-right:6.3em;left:-2.2em;right:auto;top:-2px !important}.item-editor-item .qti-choiceInteraction .horizontal .qti-choice.edit-choice{padding-top:5px}.item-editor-item .widget-rubricBlock [data-html-editable]:before,.widget-rubricBlock .item-editor-item [data-html-editable]:before,.item-editor-item .widget-textBlock [data-html-editable]:before,.widget-textBlock .item-editor-item [data-html-editable]:before,.item-editor-item .colrow:before,.item-editor-item #item-editor-interaction-bar .tool-list:before,#item-editor-interaction-bar .item-editor-item .tool-list:before,.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{content:" ";display:table}.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{clear:both}.item-editor-item .qti-orderInteraction .mini-tlb{right:-38px;top:4px}.item-editor-item [dir=rtl] .qti-orderInteraction .choice-area .mini-tlb{right:auto !important;left:-2.2em}.item-editor-item [dir=rtl] .qti-orderInteraction .widget-math.edit-active span.mini-tlb{margin-right:6.3em;left:-2.2em;right:auto !important}.item-editor-item .qti-orderInteraction.qti-horizontal .qti-choice .mini-tlb{right:-1px;top:-28px;left:auto;margin-left:-2em}.item-editor-item [dir=rtl] .qti-orderInteraction.qti-horizontal .qti-choice .mini-tlb{right:auto !important;left:2em}.item-editor-item [dir=rtl] .qti-orderInteraction.qti-horizontal .widget-box.edit-active .mini-tlb{left:-2.2em;right:auto !important;top:0;margin:0}.item-editor-item [dir=rtl] .qti-orderInteraction.qti-horizontal .widget-math.edit-active{margin-left:2.25em}.item-editor-item [dir=rtl] .qti-orderInteraction.qti-horizontal .widget-math.edit-active span.mini-tlb{margin:0 6.3em 0 -2em;left:0;right:auto;top:-2px !important}.item-editor-item [data-qti-class=orderInteraction].edit-question .arrow-bar{visibility:hidden}.item-editor-item .widget-rubricBlock [data-html-editable]:before,.widget-rubricBlock .item-editor-item [data-html-editable]:before,.item-editor-item .widget-textBlock [data-html-editable]:before,.widget-textBlock .item-editor-item [data-html-editable]:before,.item-editor-item .colrow:before,.item-editor-item #item-editor-interaction-bar .tool-list:before,#item-editor-interaction-bar .item-editor-item .tool-list:before,.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{content:" ";display:table}.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{clear:both}.item-editor-item .qti-associateInteraction .add-option{position:relative;padding:5px 5px 5px 6px}.item-editor-item .qti-associateInteraction .add-option .icon-add{font-size:1.8rem;left:6px;position:absolute;top:5px}.item-editor-item .qti-associateInteraction .choice-area .qti-choice:not(th){azimuth:nonsense;border:1px solid #ddd;border-radius:2px;-webkit-border-radius:2px}.item-editor-item .qti-associateInteraction .choice-area .qti-choice:not(th):hover{border-color:#3e7da7}.item-editor-item .qti-associateInteraction .choice-area .qti-choice .mini-tlb[data-edit]{top:-33px !important;right:-7px !important}.item-editor-item .qti-associateInteraction .result-area>li>.mini-tlb[data-edit]{top:22%;right:-80px;width:70px}.item-editor-item .qti-associateInteraction .result-area>li>.target[data-edit]{float:none;position:absolute;right:-230px;outline:none;width:200px;border:none;cursor:default}.item-editor-item .qti-associateInteraction .result-area>li>.target[data-edit] .col-3,.item-editor-item .qti-associateInteraction .result-area>li>.target[data-edit] .col-4,.item-editor-item .qti-associateInteraction .result-area>li>.target[data-edit] .col-5{text-align:center}.item-editor-item .qti-associateInteraction .result-area>li>.target[data-edit] .col-3 label,.item-editor-item .qti-associateInteraction .result-area>li>.target[data-edit] .col-4 label,.item-editor-item .qti-associateInteraction .result-area>li>.target[data-edit] .col-5 label{position:relative;top:5px}.item-editor-item .widget-rubricBlock [data-html-editable]:before,.widget-rubricBlock .item-editor-item [data-html-editable]:before,.item-editor-item .widget-textBlock [data-html-editable]:before,.widget-textBlock .item-editor-item [data-html-editable]:before,.item-editor-item .colrow:before,.item-editor-item #item-editor-interaction-bar .tool-list:before,#item-editor-interaction-bar .item-editor-item .tool-list:before,.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{content:" ";display:table}.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{clear:both}.item-editor-item .edit-question .match-interaction-area{margin-top:32px}.item-editor-item .qti-matchInteraction .qti-prompt-container{margin:5px 0 15px}.item-editor-item .qti-matchInteraction table.matrix th{padding:0;background-clip:padding-box}.item-editor-item .qti-matchInteraction table.matrix thead .mini-tlb{top:-32px;left:auto}.item-editor-item [dir=rtl] .qti-matchInteraction table.matrix thead .mini-tlb{left:0;right:auto}.item-editor-item .qti-matchInteraction table.matrix tbody .mini-tlb{position:absolute;top:-1px;left:-7px;right:auto;transform:translateX(-100%)}.item-editor-item [dir=rtl] .qti-matchInteraction table.matrix tbody .mini-tlb{right:-7px;transform:translateX(100%)}.item-editor-item .qti-matchInteraction table.matrix tbody [contenteditable=false] .mini-tlb{right:-32px !important;left:auto !important}.item-editor-item .qti-matchInteraction table.matrix td input[disabled]~[class^=icon-]{cursor:default !important}.item-editor-item .qti-matchInteraction table.matrix .mini-tlb{width:auto;margin:0;padding:0}.item-editor-item [dir=rtl] .qti-matchInteraction table.matrix .mini-tlb{left:auto}.item-editor-item .qti-matchInteraction table.matrix .mini-tlb .tlb-button{margin:0;padding:0;display:flex;align-items:center;justify-content:center}.item-editor-item .qti-matchInteraction table.matrix .mini-tlb .tlb-button [class^=icon-],.item-editor-item .qti-matchInteraction table.matrix .mini-tlb .tlb-button [class*=" icon-"]{top:initial;left:initial;transform:initial}.item-editor-item .qti-matchInteraction table.matrix .score{left:30px;min-width:0;width:35px !important;height:20px;position:relative;top:0}.item-editor-item [dir=rtl] .qti-matchInteraction .rgt{float:left}.item-editor-item .widget-rubricBlock [data-html-editable]:before,.widget-rubricBlock .item-editor-item [data-html-editable]:before,.item-editor-item .widget-textBlock [data-html-editable]:before,.widget-textBlock .item-editor-item [data-html-editable]:before,.item-editor-item .colrow:before,.item-editor-item #item-editor-interaction-bar .tool-list:before,#item-editor-interaction-bar .item-editor-item .tool-list:before,.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{content:" ";display:table}.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{clear:both}.item-editor-item .widget-box.widget-inlineChoiceInteraction{display:none;background:rgba(243,241,239,.9)}.item-editor-item .widget-box.widget-inlineChoiceInteraction .tlb-wrapper{top:-26px}.item-editor-item .widget-box.widget-inlineChoiceInteraction.edit-norp .qti-inlineChoiceInteraction{padding:20px 30px 10px 30px}.item-editor-item .inlineChoiceInteraction-placeholder{border:1px solid #ddd;border-radius:2px;-webkit-border-radius:2px;display:inline-block;width:150px;line-height:24px;position:relative;padding:0;margin-right:1px;cursor:pointer}.item-editor-item .inlineChoiceInteraction-placeholder label{padding:0 10px;margin:0}.item-editor-item .inlineChoiceInteraction-placeholder .icon-down{position:absolute;font-size:11px;font-size:1.1rem;right:6px;top:6px}.item-editor-item [dir=rtl] .inlineChoiceInteraction-placeholder .icon-down{right:auto;left:6px}.item-editor-item .qti-inlineChoiceInteraction{padding:20px 10px 5px 30px}.item-editor-item .qti-inlineChoiceInteraction [data-edit]{display:none}.item-editor-item .qti-inlineChoiceInteraction table{border-collapse:separate}.item-editor-item .qti-inlineChoiceInteraction tr{height:27px;white-space:nowrap}.item-editor-item .qti-inlineChoiceInteraction .icon-bin,.item-editor-item .qti-inlineChoiceInteraction .icon-pin,.item-editor-item .qti-inlineChoiceInteraction .icon-shuffle{color:#0e5d91;text-align:center;padding:0 5px;cursor:pointer;vertical-align:middle}.item-editor-item .qti-inlineChoiceInteraction .icon-bin:hover,.item-editor-item .qti-inlineChoiceInteraction .icon-pin:hover,.item-editor-item .qti-inlineChoiceInteraction .icon-shuffle:hover{color:#87aec8}.item-editor-item .qti-inlineChoiceInteraction .icon-down{text-align:center;position:absolute;right:-18px;font-size:11px;width:20px;height:20px;padding-top:3px;cursor:default}.item-editor-item .qti-inlineChoiceInteraction td.option,.item-editor-item .qti-inlineChoiceInteraction .main-option{padding:0 18px 0 10px;border-left:1px #ddd solid;border-right:1px #ddd solid;background:#fff}.item-editor-item .qti-inlineChoiceInteraction td.option:last,.item-editor-item .qti-inlineChoiceInteraction .main-option:last{border-bottom:1px #ddd solid}.item-editor-item .qti-inlineChoiceInteraction td.option[dir=rtl] .icon-down,.item-editor-item .qti-inlineChoiceInteraction .main-option[dir=rtl] .icon-down{right:90%;margin-top:3%}.item-editor-item .qti-inlineChoiceInteraction .main-option{border-top:1px #ddd solid;border-bottom:1px #ddd solid;min-width:150px}.item-editor-item .qti-inlineChoiceInteraction .main-option>div{padding:0;position:relative}.item-editor-item .qti-inlineChoiceInteraction td.icon-title{font-size:12px;color:#0e5d91;padding:0 5px}.item-editor-item .qti-inlineChoiceInteraction td[contenteditable]{cursor:text !important}.item-editor-item .qti-inlineChoiceInteraction .widget-inlineChoice .mini-tlb{text-align:center}.item-editor-item .qti-inlineChoiceInteraction .widget-inlineChoice .mini-tlb input{width:30px}.item-editor-item .qti-inlineChoiceInteraction .widget-inlineChoice .mini-tlb .icon-radio{left:10px;top:8px}.item-editor-item .qti-inlineChoiceInteraction .add-option{width:100%;padding:0;margin:4px 0 0 0}.item-editor-item .widget-response .qti-inlineChoiceInteraction{padding:0;margin-bottom:10px}.item-editor-item .widget-rubricBlock [data-html-editable]:before,.widget-rubricBlock .item-editor-item [data-html-editable]:before,.item-editor-item .widget-textBlock [data-html-editable]:before,.widget-textBlock .item-editor-item [data-html-editable]:before,.item-editor-item .colrow:before,.item-editor-item #item-editor-interaction-bar .tool-list:before,#item-editor-interaction-bar .item-editor-item .tool-list:before,.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{content:" ";display:table}.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{clear:both}.item-editor-item .widget-box.widget-textEntryInteraction{display:none;background:rgba(243,241,239,.9)}.item-editor-item .widget-box.widget-textEntryInteraction .tlb-wrapper{top:-26px}.item-editor-item .widget-box.widget-textEntryInteraction .overlay .message{top:0}.item-editor-item .widget-box.widget-textEntryInteraction.edit-norp .qti-textEntryInteraction,.item-editor-item .widget-box.widget-textEntryInteraction.edit-question .qti-textEntryInteraction{padding:20px 30px 10px 30px}.item-editor-item .textEntryInteraction-placeholder{border:1px solid #ddd;border-radius:2px;-webkit-border-radius:2px;display:inline-block;width:150px;line-height:24px;position:relative;padding:0;margin-right:1px;cursor:pointer}.item-editor-item .textEntryInteraction-placeholder label{padding:0 10px;margin:0}.item-editor-item .textEntryInteraction-placeholder .icon-down{position:absolute;font-size:11px;font-size:1.1rem;right:6px;top:6px}.item-editor-item .qti-textEntryInteraction{padding:20px 10px 5px 30px}.item-editor-item .qti-textEntryInteraction [data-edit]{display:none}.item-editor-item .qti-textEntryInteraction table{border-collapse:separate}.item-editor-item .qti-textEntryInteraction tr{height:27px;white-space:nowrap}.item-editor-item .qti-textEntryInteraction .icon-radio{top:3px;left:8px}.item-editor-item .qti-textEntryInteraction .icon-bin{text-align:center;width:auto;top:0;padding:0 5px;cursor:pointer;vertical-align:middle}.item-editor-item .qti-textEntryInteraction .icon-bin:hover{color:#3e7da7}.item-editor-item .qti-textEntryInteraction td.option,.item-editor-item .qti-textEntryInteraction .main-option{padding:0 18px 0 10px;border-left:1px #ddd solid;border-right:1px #ddd solid;background:#fff}.item-editor-item .qti-textEntryInteraction td.option:last,.item-editor-item .qti-textEntryInteraction .main-option:last{border-bottom:1px #ddd solid}.item-editor-item .qti-textEntryInteraction .main-option{border-top:1px #ddd solid;border-bottom:1px #ddd solid;min-width:150px}.item-editor-item .qti-textEntryInteraction .main-option>div{padding:0;position:relative}.item-editor-item .qti-textEntryInteraction td.icon-title{font-size:12px;color:#0e5d91;padding:0 5px}.item-editor-item .qti-textEntryInteraction td input{width:122px;height:28px}.item-editor-item .qti-textEntryInteraction td[contenteditable]{cursor:text !important}.item-editor-item .qti-textEntryInteraction input.score{width:30px}.item-editor-item .qti-textEntryInteraction .add-option .icon-add{width:auto;left:3px;top:1px}.item-editor-item .widget-rubricBlock [data-html-editable]:before,.widget-rubricBlock .item-editor-item [data-html-editable]:before,.item-editor-item .widget-textBlock [data-html-editable]:before,.widget-textBlock .item-editor-item [data-html-editable]:before,.item-editor-item .colrow:before,.item-editor-item #item-editor-interaction-bar .tool-list:before,#item-editor-interaction-bar .item-editor-item .tool-list:before,.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{content:" ";display:table}.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{clear:both}.item-editor-item .widget-box.widget-endAttemptInteraction{display:none;background:rgba(243,241,239,.9);padding:20px 30px 60px}.item-editor-item .widget-box.widget-endAttemptInteraction .widget-ok{position:absolute;bottom:10px;right:10px}.item-editor-item .widget-box.widget-endAttemptInteraction .tlb-wrapper{top:-26px}.item-editor-item .endAttemptInteraction-placeholder{padding:0 15px;min-width:80px;border:none}.item-editor-item .widget-rubricBlock [data-html-editable]:before,.widget-rubricBlock .item-editor-item [data-html-editable]:before,.item-editor-item .widget-textBlock [data-html-editable]:before,.widget-textBlock .item-editor-item [data-html-editable]:before,.item-editor-item .colrow:before,.item-editor-item #item-editor-interaction-bar .tool-list:before,#item-editor-interaction-bar .item-editor-item .tool-list:before,.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{content:" ";display:table}.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{clear:both}.item-editor-item .edit-sleep textarea{cursor:pointer}.item-editor-item .qti-extendedTextInteraction .cke .cke_toolbar .cke_button_icon{line-height:1.5rem !important}.item-editor-item .qti-extendedTextInteraction .cke .cke_toolbar .cke_combo_disabled .cke_combo_button:hover,.item-editor-item .qti-extendedTextInteraction .cke .cke_toolbar .cke_combo_disabled .cke_combo_button:hover .cke_combo_text,.item-editor-item .qti-extendedTextInteraction .cke .cke_toolbar .cke_combo_disabled .cke_combo_button:hover .cke_combo_open,.item-editor-item .qti-extendedTextInteraction .cke .cke_toolbar .cke_combo_disabled .cke_combo_button:hover .cke_combo_arrow,.item-editor-item .qti-extendedTextInteraction .cke .cke_toolbar .cke_combo_disabled .cke_combo_open:hover,.item-editor-item .qti-extendedTextInteraction .cke .cke_toolbar .cke_button_disabled:hover{background:rgba(0,0,0,0) !important;color:#222 !important;cursor:default}.item-editor-item .qti-extendedTextInteraction .cke .cke_toolbar .cke_button_on{background:#3e7da7 !important}.item-editor-item .widget-rubricBlock [data-html-editable]:before,.widget-rubricBlock .item-editor-item [data-html-editable]:before,.item-editor-item .widget-textBlock [data-html-editable]:before,.widget-textBlock .item-editor-item [data-html-editable]:before,.item-editor-item .colrow:before,.item-editor-item #item-editor-interaction-bar .tool-list:before,#item-editor-interaction-bar .item-editor-item .tool-list:before,.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{content:" ";display:table}.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{clear:both}.item-editor-item .widget-rubricBlock [data-html-editable]:before,.widget-rubricBlock .item-editor-item [data-html-editable]:before,.item-editor-item .widget-textBlock [data-html-editable]:before,.widget-textBlock .item-editor-item [data-html-editable]:before,.item-editor-item .colrow:before,.item-editor-item #item-editor-interaction-bar .tool-list:before,#item-editor-interaction-bar .item-editor-item .tool-list:before,.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{content:" ";display:table}.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{clear:both}.item-editor-item .response-pair-editor{min-width:350px;background:rgba(243,241,239,.85);padding:20px 30px 20px 30px}.item-editor-item .response-pair-editor .title{position:relative;top:-5px;left:-10px}.item-editor-item .response-pair-editor .indicator{color:#3e7da7;position:relative;top:10px;font-size:13px;font-size:1.3rem}.item-editor-item .response-pair-editor .col-2{text-align:center}.item-editor-item .response-pair-editor .icon-bin{position:relative;top:7px;cursor:pointer}.item-editor-item .response-pair-editor .cb{top:5px}.item-editor-item .qti-gapMatchInteraction .qti-flow-container{position:relative}.item-editor-item .qti-gapMatchInteraction .qti-flow-container [data-html-editable]{min-height:3rem}.item-editor-item .qti-gapMatchInteraction .qti-flow-container .mini-tlb[data-role=create-gap-tlb]{postion:absolute;right:-30px}.item-editor-item .qti-gapMatchInteraction .qti-flow-container #selection-wrapper{z-index:1000;position:relative}.item-editor-item .qti-gapMatchInteraction .choice-area .qti-choice{border:1px solid #ddd;border-radius:2px;-webkit-border-radius:2px;border-color:#ddd !important;min-width:80px}.item-editor-item .qti-gapMatchInteraction .gap-info{color:#0e5d91;font-style:italic}.item-editor-item .qti-gapMatchInteraction .qti-gap span.mini-tlb[data-edit]{position:absolute !important;top:-4px !important;right:-30px !important}.item-editor-item .edit-question .qti-gapMatchInteraction .horizontal .qti-choice{margin-top:3px}.item-editor-item .edit-question .qti-gapMatchInteraction .horizontal .qti-choice .mini-tlb{margin-bottom:0;height:31px;border:0 !important}.item-editor-item .edit-question .qti-gapMatchInteraction .horizontal .qti-choice .mini-tlb .tlb-button{height:100%;border:1px #3e7da7 solid}.item-editor-item .edit-question .qti-gapMatchInteraction .horizontal .qti-choice .dummy-element~span.mini-tlb[data-edit]{height:26px}.item-editor-item .edit-question .qti-gapMatchInteraction [data-html-editable]{margin-right:2em}.item-editor-item .widget-rubricBlock [data-html-editable]:before,.widget-rubricBlock .item-editor-item [data-html-editable]:before,.item-editor-item .widget-textBlock [data-html-editable]:before,.widget-textBlock .item-editor-item [data-html-editable]:before,.item-editor-item .colrow:before,.item-editor-item #item-editor-interaction-bar .tool-list:before,#item-editor-interaction-bar .item-editor-item .tool-list:before,.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{content:" ";display:table}.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{clear:both}.item-editor-item .qti-hottextInteraction .qti-hottext input[disabled]~[class^=icon-]{cursor:pointer !important}.item-editor-item .qti-hottextInteraction .qti-hottext .mini-tlb{display:inline-block;postion:absolute;right:-30px;z-index:1000}.item-editor-item .qti-hottextInteraction .qti-hottext .mini-tlb[data-edit]{top:-2px}.item-editor-item .qti-hottextInteraction .qti-hottext .mini-tlb[data-edit].icon-undo{padding-right:8px}.item-editor-item .qti-hottextInteraction .qti-hottext .mini-tlb[data-edit] label{padding:0 3px}.item-editor-item .qti-hottextInteraction .qti-hottext .mini-tlb[data-edit] [data-role=score]{width:30px}.item-editor-item .qti-hottextInteraction .qti-flow-container{position:relative}.item-editor-item .qti-hottextInteraction .qti-flow-container [data-html-editable]{min-height:3rem}.item-editor-item .qti-hottextInteraction .qti-flow-container .mini-tlb[data-role=create-hottext-tlb]{position:absolute;right:-30px}.item-editor-item .qti-hottextInteraction .qti-flow-container #selection-wrapper{z-index:1000;position:relative}.item-editor-item .qti-hottextInteraction input.score{width:30px;min-width:30px;padding:0 2px}.item-editor-item .qti-hottextInteraction .hottext-content{padding-right:5px}.item-editor-item .qti-hottextInteraction .hottext-checkmark{margin-bottom:0;width:20px}.item-editor-item .widget-rubricBlock [data-html-editable]:before,.widget-rubricBlock .item-editor-item [data-html-editable]:before,.item-editor-item .widget-textBlock [data-html-editable]:before,.widget-textBlock .item-editor-item [data-html-editable]:before,.item-editor-item .colrow:before,.item-editor-item #item-editor-interaction-bar .tool-list:before,#item-editor-interaction-bar .item-editor-item .tool-list:before,.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{content:" ";display:table}.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{clear:both}.item-editor-item .qti-rubricBlock .mini-tlb{top:7px;right:7px}.item-editor-item .widget-rubricBlock [data-html-editable]:before,.widget-rubricBlock .item-editor-item [data-html-editable]:before,.item-editor-item .widget-textBlock [data-html-editable]:before,.widget-textBlock .item-editor-item [data-html-editable]:before,.item-editor-item .colrow:before,.item-editor-item #item-editor-interaction-bar .tool-list:before,#item-editor-interaction-bar .item-editor-item .tool-list:before,.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{content:" ";display:table}.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{clear:both}.item-editor-item .widget-math .mini-tlb{top:-1px;right:-29px;padding:0;margin:0}.item-editor-item .widget-rubricBlock [data-html-editable]:before,.widget-rubricBlock .item-editor-item [data-html-editable]:before,.item-editor-item .widget-textBlock [data-html-editable]:before,.widget-textBlock .item-editor-item [data-html-editable]:before,.item-editor-item .colrow:before,.item-editor-item #item-editor-interaction-bar .tool-list:before,#item-editor-interaction-bar .item-editor-item .tool-list:before,.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{content:" ";display:table}.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{clear:both}.item-editor-item .mapping-editor{position:absolute;left:15px;top:15px;color:#222;background:#f3f1ef;padding:15px 15px 15px 15px;-webkit-box-shadow:0px 0px 10px 0px rgba(50,50,50,.75);-moz-box-shadow:0px 0px 10px 0px rgba(50,50,50,.75);box-shadow:0px 0px 10px 0px rgba(50,50,50,.75);z-index:300;min-width:150px}.item-editor-item .mapping-editor .closer{position:absolute;top:10px;right:8px}.item-editor-item .mapping-editor h2{font-size:15px;font-size:1.5rem;margin-bottom:0}.item-editor-item .mapping-editor hr{margin:0}.item-editor-item .mapping-editor .heading{font-weight:bold}.item-editor-item .mapping-editor .arrow{position:absolute;z-index:301;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-o-transform:rotate(45deg);-ms-transform:rotate(45deg);border:1px #f3f1ef solid;border-left:none;border-top:none;width:12px;height:12px;background:#f3f1ef;-webkit-box-shadow:0px 0px 10px 0px rgba(50,50,50,.75);-moz-box-shadow:0px 0px 10px 0px rgba(50,50,50,.75);box-shadow:0px 0px 10px 0px rgba(50,50,50,.75)}.item-editor-item .mapping-editor .arrow-cover{background:#f3f1ef;position:absolute;z-index:302}.item-editor-item .mapping-editor.arrow-left-top .arrow{left:-6px;top:10px}.item-editor-item .mapping-editor.arrow-left-top .arrow-cover{left:0;top:2px;width:15px;height:30px}.item-editor-item .mapping-editor.arrow-top-left .arrow{top:-6px}.item-editor-item .mapping-editor.arrow-top-left .arrow-cover{left:6px;top:0;width:30px;height:15px}.item-editor-item .mapping-editor.arrow-right-top .arrow{right:-6px;top:10px}.item-editor-item .mapping-editor.arrow-right-top .arrow-cover{right:0;top:2px;width:15px;height:30px}.item-editor-item .mapping-editor .score{border:1px solid #ddd;border-radius:2px;-webkit-border-radius:2px;text-align:right;min-width:40px;max-width:40px;position:relative;top:-5px}.item-editor-item .mapping-editor .grid-row{line-height:1.6;padding-top:8px}.item-editor-item .mapping-editor .tooltipstered{text-align:right}.item-editor-item .mapping-editor .icon-checkbox{margin-left:20px}.item-editor-item .mapping-editor .pairs img{max-width:100%}.item-editor-item .widget-rubricBlock [data-html-editable]:before,.widget-rubricBlock .item-editor-item [data-html-editable]:before,.item-editor-item .widget-textBlock [data-html-editable]:before,.widget-textBlock .item-editor-item [data-html-editable]:before,.item-editor-item .colrow:before,.item-editor-item #item-editor-interaction-bar .tool-list:before,#item-editor-interaction-bar .item-editor-item .tool-list:before,.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{content:" ";display:table}.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{clear:both}.item-editor-item .qti-graphicInteraction .add-option>div [class^=icon-]{line-height:.9}.item-editor-item .qti-graphicInteraction .dummy-element{cursor:pointer}.item-editor-item .qti-graphicInteraction .image-sidebar{position:absolute;left:-45px;top:2px;z-index:1000;background:#f9f8f7;border:1px solid #ddd;border-radius:2px;-webkit-border-radius:2px;padding:5px}.item-editor-item .qti-graphicInteraction .image-sidebar .forms{overflow:hidden;background:#fff}.item-editor-item .qti-graphicInteraction .image-sidebar .forms [class^=icon-],.item-editor-item .qti-graphicInteraction .image-sidebar .forms [class*=" icon-"]{font-size:26px !important;font-size:2.6rem !important;line-height:1.2;padding:0 5px}.item-editor-item .qti-graphicInteraction .image-sidebar .forms li{border:1px solid rgba(0,0,0,0);cursor:pointer;text-align:center}.item-editor-item .qti-graphicInteraction .image-sidebar .forms li.active{color:#3e7da7}.item-editor-item .qti-graphicInteraction .image-sidebar .forms li:hover{background:#3e7da7;color:#fff}.item-editor-item .qti-graphicInteraction .image-sidebar .forms li.separator{height:1px;background-color:#ccc;padding:0;margin:10px 3px}.item-editor-item .qti-graphicInteraction .image-sidebar .forms li.disabled{background:#fff !important;color:#ccc !important}.item-editor-item .qti-graphicInteraction .image-sidebar .forms li.bin{color:#c84155}.item-editor-item .qti-graphicInteraction .image-sidebar .forms li.bin:hover{background:#ba122b;color:#fff}.item-editor-item .qti-graphicInteraction .image-sidebar~.image-editor{min-height:292px}.item-editor-item .qti-graphicInteraction .image-sidebar.tall{min-height:320px}.item-editor-item .qti-graphicInteraction .image-sidebar.tall .forms{min-height:320px}.item-editor-item .qti-graphicInteraction .image-sidebar.tall~.image-editor{min-height:332px}.item-editor-item .widget-rubricBlock [data-html-editable]:before,.widget-rubricBlock .item-editor-item [data-html-editable]:before,.item-editor-item .widget-textBlock [data-html-editable]:before,.widget-textBlock .item-editor-item [data-html-editable]:before,.item-editor-item .colrow:before,.item-editor-item #item-editor-interaction-bar .tool-list:before,#item-editor-interaction-bar .item-editor-item .tool-list:before,.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{content:" ";display:table}.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{clear:both}.item-editor-item .qti-graphicGapMatchInteraction ul.source>li img{height:auto}.item-editor-item .qti-graphicGapMatchInteraction ul.source>li.empty,.item-editor-item .qti-graphicGapMatchInteraction ul.source>li.placeholder{margin:0 3px 3px 0 !important;width:60px;height:60px;max-height:60px}.item-editor-item .qti-graphicGapMatchInteraction ul.source>li .dummy-element{cursor:pointer}.item-editor-item .qti-graphicGapMatchInteraction ul.source>li .dummy-element~span.mini-tlb[data-edit]{right:0 !important;top:0 !important}.item-editor-item .qti-graphicGapMatchInteraction ul.source>li .dummy-element~span.mini-tlb[data-edit] .tlb-button{line-height:18px}.item-editor-item .qti-graphicGapMatchInteraction ul.source>li img~span.mini-tlb[data-edit]{top:0;right:0}.item-editor-item .qti-graphicGapMatchInteraction ul.source>li img~span.mini-tlb[data-edit] .tlb-button{line-height:18px}.item-editor-item .qti-graphicGapMatchInteraction ul.source>li.add-option.empty>div>span[class^=icon-]{font-size:50px;font-size:5rem;float:none}.item-editor-item .widget-rubricBlock [data-html-editable]:before,.widget-rubricBlock .item-editor-item [data-html-editable]:before,.item-editor-item .widget-textBlock [data-html-editable]:before,.widget-textBlock .item-editor-item [data-html-editable]:before,.item-editor-item .colrow:before,.item-editor-item #item-editor-interaction-bar .tool-list:before,#item-editor-interaction-bar .item-editor-item .tool-list:before,.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{content:" ";display:table}.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item .colrow:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after{clear:both}.item-editor-item .qti-droppable-block-hover{min-height:30px;width:100%;border:2px dashed #3e7da7;background-color:#e6eef4;margin:0;opacity:.5}.item-editor-item .grid-edit-resizable-zone{position:absolute;cursor:col-resize;text-align:center;outline:0 dotted blue}.item-editor-item .grid-edit-resizable-handle{position:relative;display:inline-block;width:1px;height:100%}.item-editor-item .grid-edit-resizable-zone-active:hover .grid-edit-resizable-handle{border-width:0 1px;border-color:#ccc;border-style:solid}.item-editor-item .grid-edit-resizable-active{width:0;border:0 dashed #3e7da7;border-left-width:1px}.item-editor-item .grid-edit-resizable-outline{position:absolute;top:0;left:0;height:100%;border:1px solid #3e7da7;background-color:#e4ecef;opacity:.5;z-index:9}.item-editor-item .grid-edit-insert-box{position:absolute;height:100%;text-align:center;opacity:.5;z-index:9}.item-editor-item .grid-edit-insert-box:hover{opacity:.3}.item-editor-item .grid-edit-insert-square{position:relative;width:20px;height:20px;background-color:#3e7da7;border-top-left-radius:3px;border-top-right-radius:3px}.item-editor-item .grid-edit-insert-triangle{position:relative;width:0;height:0;border-left:10px solid rgba(0,0,0,0);border-right:10px solid rgba(0,0,0,0);border-top:12px solid #3e7da7}.item-editor-item .grid-edit-insert-line{position:absolute;top:0;left:10px;height:100%;border-left:1px dashed #3e7da7}.item-editor-item .grid-draggable-helper{z-index:99;max-height:200px;max-width:50%;overflow:hidden;border:1px solid #ddd;padding:6px}.item-editor-item .grid-draggable-helper:after{content:"...";position:absolute;bottom:0;right:6px}.item-editor-item .grid-draggable{cursor:pointer}.item-editor-item .grid-draggable:hover{opacity:.8}.item-editor-item .grid-draggable:active,.item-editor-item .grid-draggable-active{cursor:all-scroll}.item-editor-item .dropping{margin-left:-1.42857%;margin-right:1.42857%}.item-editor-item .new-col:first-child{margin-left:1.42857%}.item-editor-item .drop-target[data-html-editable]{border:2px dashed #87c8a5 !important}.item-editor-item .drop-target[data-html-editable]:hover{background:rgba(14,145,75,.1) !important}.item-editor-item .drop-target #qti-inline-element-placeholder{position:relative;display:inline-block;width:8px;height:14px;margin:0px 2px;background-color:rgba(0,0,0,0)}.item-editor-item .drop-target #qti-inline-element-placeholder .cursor-h{width:100%;height:100%;display:inline-block;position:absolute;top:2px;left:0;border-top:2px solid #0e5d91;border-bottom:2px solid #0e5d91}.item-editor-item .drop-target #qti-inline-element-placeholder .cursor-v{width:0px;height:100%;display:inline-block;position:absolute;top:2px;left:3px;border-left:2px solid #0e5d91}.item-editor-item .widget-box .html-editable-shield{background:rgba(243,241,239,.5);position:absolute;top:0;left:0;width:100%;height:100%;z-index:999;padding:0}.item-editor-item .add-block-element{position:absolute;bottom:-4px;width:100%}.item-editor-item .add-block-element .line{position:absolute;border-top:1px dashed #5c91b4;top:8px;width:100%}.item-editor-item .add-block-element .circle{display:block;width:16px;height:16px;background:#fff;-moz-border-radius:30px;-webkit-border-radius:30px;border-radius:30px;position:absolute;margin-left:50%;margin-right:50%;cursor:pointer;border:1px solid #5c91b4}.item-editor-item .add-block-element .circle:hover{border-color:#266d9c}.item-editor-item .add-block-element .circle span{font-weight:bold;font-size:14px !important;color:#5c91b4 !important;line-height:14px;display:table-cell;vertical-align:middle;text-align:center;width:14px;height:14px}.item-editor-item .add-block-element .circle span:hover{color:#266d9c}.item-editor-item .edit-inserting .add-block-element{display:none}.item-editor-item .colrow{position:relative;margin-top:18px;padding:3px}.item-editor-item .colrow:first-child{margin-top:0}.item-editor-item .widget-rubricBlock [data-html-editable]:before,.widget-rubricBlock .item-editor-item [data-html-editable]:before,.item-editor-item .widget-textBlock [data-html-editable]:before,.widget-textBlock .item-editor-item [data-html-editable]:before,.item-editor-item #item-editor-interaction-bar .tool-list:before,#item-editor-interaction-bar .item-editor-item .tool-list:before,.item-editor-item .colrow:before,.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after,.item-editor-item .colrow:after{content:" ";display:table}.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after,.item-editor-item .colrow:after{clear:both}.item-editor-item .qti-customInteraction~.overlay{background:rgba(0,0,0,0)}.item-editor-item .qti-customInteraction .simple-editable{border:solid 1px rgba(0,0,0,0);min-height:1.8rem;min-width:3rem}.item-editor-item .qti-customInteraction .simple-editable:hover{border-color:#87aec8}.item-editor-item .widget-rubricBlock [data-html-editable]:before,.widget-rubricBlock .item-editor-item [data-html-editable]:before,.item-editor-item .widget-textBlock [data-html-editable]:before,.widget-textBlock .item-editor-item [data-html-editable]:before,.item-editor-item #item-editor-interaction-bar .tool-list:before,#item-editor-interaction-bar .item-editor-item .tool-list:before,.item-editor-item .colrow:before,.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after,.item-editor-item .colrow:after{content:" ";display:table}.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after,.item-editor-item .colrow:after{clear:both}.item-editor-item .contextual-popup{position:absolute;left:15px;top:0px;width:500px;color:#222;background:#f3f1ef;padding:15px 15px 0;-webkit-box-shadow:0px 0px 10px 0px rgba(50,50,50,.75);-moz-box-shadow:0px 0px 10px 0px rgba(50,50,50,.75);box-shadow:0px 0px 10px 0px rgba(50,50,50,.75);z-index:300}.item-editor-item .contextual-popup h2{font-size:15px;font-size:1.5rem;margin-bottom:0}.item-editor-item .contextual-popup .heading{font-weight:bold}.item-editor-item .contextual-popup .arrow{position:absolute;top:-6px;z-index:301;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-o-transform:rotate(45deg);-ms-transform:rotate(45deg);border:1px #f3f1ef solid;border-left:none;border-top:none;width:12px;height:12px;background:#f3f1ef;-webkit-box-shadow:0px 0px 10px 0px rgba(50,50,50,.75);-moz-box-shadow:0px 0px 10px 0px rgba(50,50,50,.75);box-shadow:0px 0px 10px 0px rgba(50,50,50,.75)}.item-editor-item .contextual-popup .arrow-cover{background:#f3f1ef;position:absolute;z-index:302;left:6px;top:0;width:30px;height:15px}.item-editor-item .contextual-popup .tooltipstered{text-align:right}.item-editor-item .contextual-popup .footer{margin-top:10px}.item-editor-item .contextual-popup .footer .btn{float:right;margin-left:20px;margin-bottom:7px}.item-editor-item .contextual-popup .footer .btn.cancel{position:relative;top:3px}.item-editor-item .contextual-popup .elementSelector ul.group-list{box-sizing:border-box;width:100%;line-height:20px;padding:0;margin:0;list-style:none;border-bottom:1px solid #ddd}.item-editor-item .contextual-popup .elementSelector ul.group-list:after{clear:both}.item-editor-item .contextual-popup .elementSelector ul.group-list:after,.item-editor-item .contextual-popup .elementSelector ul.group-list:before{content:"";display:table}.item-editor-item .contextual-popup .elementSelector ul.group-list li{padding:0;margin-bottom:-1px;float:left;position:relative}.item-editor-item .contextual-popup .elementSelector ul.group-list li a{display:block;padding:8px 12px;border-width:1px 1px 0px;border-style:solid;border-color:rgba(0,0,0,0);-moz-border-top-colors:none;-moz-border-right-colors:none;-moz-border-bottom-colors:none;-moz-border-left-colors:none;border-image:none;color:#1d8acb;text-decoration:none;border-radius:4px 4px 0px 0px;text-shadow:0px 1px 0px #fff;cursor:pointer;outline:0px none}.item-editor-item .contextual-popup .elementSelector ul.group-list li.active a{border-color:#ddd #ddd rgba(0,0,0,0);color:#222;background:#f8f7f5;cursor:default}.item-editor-item .contextual-popup .elementSelector ul.group-list li:not(.active) a:hover{border-color:#ddd;background:#f1f1f1;color:#0b5f90;outline:0px none;margin-bottom:1px;padding-bottom:7px}.item-editor-item .contextual-popup .elementSelector ul.group-list li:nth-child(n+2)>a{margin-left:3px}.item-editor-item .contextual-popup .elementSelector ul.group-list li:hover{background:rgba(0,0,0,0)}.item-editor-item .contextual-popup .elementSelector ul.element-list:after{clear:both}.item-editor-item .contextual-popup .elementSelector ul.element-list:after,.item-editor-item .contextual-popup .elementSelector ul.element-list:before{content:"";display:table}.item-editor-item .contextual-popup .elementSelector ul.element-list li{width:50%;margin:0px;float:left;padding:10px 18px;font-size:1.2rem;cursor:pointer;position:relative;border:1px solid rgba(0,0,0,0)}.item-editor-item .contextual-popup .elementSelector ul.element-list li .icon{font-size:2rem;display:inline-block;width:24px;height:24px;text-align:center;position:relative;top:2px}.item-editor-item .contextual-popup .elementSelector ul.element-list li .label{position:relative;left:6px;display:inline-block;max-width:160px}.item-editor-item .contextual-popup .elementSelector ul.element-list li:hover{border-color:#87aec8}.item-editor-item .contextual-popup .elementSelector ul.element-list li.active{border-color:#3e7da7;background:#fff;cursor:default}.item-editor-item .contextual-popup .elementSelector .element-group{display:none;background:#f8f7f5;min-height:200px;padding-top:5px}.item-editor-item .colrow.tmp{border:3px dashed #87aec8}.item-editor-item .colrow.tmp .placeholder{min-height:160px;background:#f3f7fa}.item-editor-item .widget-rubricBlock [data-html-editable]:before,.widget-rubricBlock .item-editor-item [data-html-editable]:before,.item-editor-item .widget-textBlock [data-html-editable]:before,.widget-textBlock .item-editor-item [data-html-editable]:before,.item-editor-item #item-editor-interaction-bar .tool-list:before,#item-editor-interaction-bar .item-editor-item .tool-list:before,.item-editor-item .colrow:before,.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after,.item-editor-item .colrow:after{content:" ";display:table}.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after,.item-editor-item .colrow:after{clear:both}.item-editor-item .widget-include{min-height:2rem}.item-editor-item .add-options{margin:15px 5px 8px 0}.item-editor-item .add-option{display:inline-block;vertical-align:top;position:relative;margin-left:2px;padding:5px 16px 5px 6px;overflow:hidden}.item-editor-item [dir=rtl] .add-option{padding-right:6px;padding-left:16px}.item-editor-item .add-option .icon-add{font-size:1.8rem;left:6px;position:absolute;top:5px}.item-editor-item [dir=rtl] .add-option .icon-add{margin-right:0;margin-left:8px;float:right}.item-editor-item .widget-rubricBlock [data-html-editable]:before,.widget-rubricBlock .item-editor-item [data-html-editable]:before,.item-editor-item .widget-textBlock [data-html-editable]:before,.widget-textBlock .item-editor-item [data-html-editable]:before,.item-editor-item #item-editor-interaction-bar .tool-list:before,#item-editor-interaction-bar .item-editor-item .tool-list:before,.item-editor-item .colrow:before,.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after,.item-editor-item .colrow:after{content:" ";display:table}.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after,.item-editor-item .colrow:after{clear:both}.item-editor-item .widget-box.widget-block.widget-figure img{display:block}.item-editor-item .widget-box.widget-block.widget-figure.edit-figcaption img:last-child{margin-bottom:30px}.item-editor-item .widget-box.widget-block.widget-figure.edit-figcaption figcaption{min-height:30px}.item-editor-item .widget-rubricBlock [data-html-editable]:before,.widget-rubricBlock .item-editor-item [data-html-editable]:before,.item-editor-item .widget-textBlock [data-html-editable]:before,.widget-textBlock .item-editor-item [data-html-editable]:before,.item-editor-item #item-editor-interaction-bar .tool-list:before,#item-editor-interaction-bar .item-editor-item .tool-list:before,.item-editor-item .colrow:before,.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after,.item-editor-item .colrow:after{content:" ";display:table}.item-editor-item .widget-rubricBlock [data-html-editable]:after,.widget-rubricBlock .item-editor-item [data-html-editable]:after,.item-editor-item .widget-textBlock [data-html-editable]:after,.widget-textBlock .item-editor-item [data-html-editable]:after,.item-editor-item #item-editor-interaction-bar .tool-list:after,#item-editor-interaction-bar .item-editor-item .tool-list:after,.item-editor-item .colrow:after{clear:both}.item-editor-item .widget-box.widget-blockInteraction .qti-interaction.dimmed{opacity:.5}.item-editor-item .qti-hottextInteraction .mini-tlb{right:-31px !important}.item-editor-item .qti-hottextInteraction .mini-tlb:has(div.multiple:not([style*="display: none"])){right:-58px !important}.item-editor-item .qti-hottextInteraction .mini-tlb>div:nth-last-child(2){border-left:1px solid #3e7da7}.item-editor-item [dir=rtl] .qti-interaction .qti-prompt{margin-right:0}.item-editor-item .qti-interaction .qti-prompt~.mini-tlb{right:-31px !important;top:1px}.item-editor-item .widget-textBlock .mini-tlb{right:-36px;top:-2px}.item-editor-item .qti-flow-container .mini-tlb{right:-31px !important}.widget-rubricBlock [data-html-editable]:before,.widget-textBlock [data-html-editable]:before,#item-editor-interaction-bar .tool-list:before,.item-editor-item .colrow:before,.widget-rubricBlock [data-html-editable]:after,.widget-textBlock [data-html-editable]:after,#item-editor-interaction-bar .tool-list:after,.item-editor-item .colrow:after{content:" ";display:table}.widget-rubricBlock [data-html-editable]:after,.widget-textBlock [data-html-editable]:after,#item-editor-interaction-bar .tool-list:after,.item-editor-item .colrow:after{clear:both}#modalFeedbacks{color:#222 !important;background:#fff !important}#modalFeedbacks .mini-tlb{top:-2px;right:-2px;z-index:5000}#modalFeedbacks .modal-body{position:relative}#modalFeedbacks .widget-ok{margin:30px 0px 0px;display:none}#modalFeedbacks .widget-inline{display:inline-block}#modalFeedbacks .qti-modalFeedback .modal-title{border:solid 1px rgba(0,0,0,0)}#modalFeedbacks .qti-modalFeedback .modal-title.inplace:hover,#modalFeedbacks .qti-modalFeedback .modal-title.inplace:focus{border:dotted 1px #3e7da7}#modalFeedbacks .qti-modalFeedback .modal-title.inplace input{font-size:2rem;width:100% !important;max-width:100%;border:none;padding:0}.feedbackRules .feedbackRule-container{position:relative;margin:5px 0;padding:8px;border:1px solid #ddd;border-radius:2px;-webkit-border-radius:2px;background-color:rgba(255,255,255,.8);max-width:500px}.feedbackRules .feedbackRule-container select{width:190px}.feedbackRules .feedbackRule-container .feedbackRule-condition{width:86px !important;min-width:86px !important}.feedbackRules .feedbackRule-container .feedbackRule-desc{margin-bottom:5px;width:35px;display:inline-block}.feedbackRules .feedbackRule-container .feedbackRule-then-else{position:relative;margin-top:5px}.feedbackRules .feedbackRule-container .feedbackRule-then-else .feedbackRule-button-delete{top:5px;right:2px}.feedbackRules .feedbackRule-container .feedbackRule-button-delete{color:#0e5d91;position:absolute;top:12px;right:10px;cursor:pointer;font-size:13px;font-size:1.3rem}.feedbackRules .feedbackRule-container .feedbackRule-button-delete:hover{color:#87aec8}.feedbackRules .feedbackRule-container .feedbackRule-compared-value{min-width:35px;width:35px}.feedbackRules .feedbackRule-add,.feedbackRules .feedbackRule-add-else{display:block;margin-top:5px}.feedbackRules .choices-selector{margin:4px 0;font-size:13px;font-size:1.3rem}.feedbackRules .choices-selector input{font-size:inherit;width:100% !important;max-width:unset}.edit-question [data-html-editable]{min-height:20px;margin-top:2px}[data-html-editable]{border:1px solid rgba(0,0,0,0);outline:1px solid rgba(0,0,0,0) !important}[data-html-editable] [html-editable-shield]{padding:0;min-width:0;margin:0}.edit-question .qti-interaction [data-html-editable-container]:hover [data-html-editable][contenteditable=true],.qti-modalFeedback.edit-active [data-html-editable-container]:hover [data-html-editable][contenteditable=true]{border:1px dotted #0e5d91}.edit-question .qti-interaction [data-html-editable],.qti-modalFeedback.edit-active [data-html-editable]{margin-right:0}.edit-question .qti-interaction [data-html-editable][contenteditable=true]:focus,.qti-modalFeedback.edit-active [data-html-editable][contenteditable=true]:focus{border:1px dotted #0e5d91}.edit-question .qti-blockInteraction .horizontal{margin-top:28px}.edit-question .qti-blockInteraction .horizontal .qti-choice .mini-tlb{white-space:nowrap}.edit-question .qti-blockInteraction .horizontal .qti-choice .mini-tlb .tlb-button{display:block;margin:0}.edit-question .qti-blockInteraction .horizontal .qti-choice .widget-box .mini-tlb{top:0 !important;right:-30px !important}.widget-rubricBlock [data-html-editable],.widget-textBlock [data-html-editable]{min-height:3rem}.cke-cover-up{padding:0 !important;margin:0 !important;position:absolute !important;cursor:pointer !important;border:none !important;background:#000 !important;opacity:.05 !important;display:inline-block !important}.cke-qti-wrapper{position:relative !important;display:inline-block !important;padding:0 !important;margin:0 !important}.cke-placeholder:not(:focus)::before{content:attr(data-placeholder);color:#999}.extendedText .incrementer-ctrl-wrapper{right:10px}.extendedText .incrementer-ctrl-wrapper .incrementer{width:50px !important}.select2-result.rtl-lang{position:relative}.select2-chosen .rtl-lang:after,.select2-result.rtl-lang span.select2-match:after{content:"RTL";display:block;color:#ada194;border:#ada194 1px solid;border-radius:2px;font-size:10px;top:3px;line-height:12px;padding:0 4px;position:relative}.select2-chosen .rtl-lang:after{position:absolute;top:6px;right:20px}.select2-container .select2-choice>.select2-chosen{margin-right:50px}.select2-result.rtl-lang .select2-result-label{display:flex;justify-content:space-between;flex-direction:row-reverse}.select2-result.rtl-lang.select2-highlighted span.select2-match:after{color:#fff;border-color:#fff}.qti-itemBody [contenteditable=true] hr{position:relative;overflow:visible}.qti-itemBody [contenteditable=true] hr.text-selected:after{content:" ";position:absolute;height:12px;top:-6px;left:0;right:0;background-color:#b3d4fc;z-index:-1}.qti-itemBody.separator-between-columns>.grid-row>[class^=col-]{position:relative}.qti-itemBody.separator-between-columns>.grid-row>[class^=col-]+[class^=col-]::before{content:"";position:absolute;top:0;bottom:0;left:-8px;width:2px;background:#121212}.qti-itemBody[dir=rtl] .grid-row{direction:ltr}.qti-itemBody[dir=rtl] .grid-row .widget-box{direction:rtl}body>.modal,#mediaManager>.modal{z-index:105002;height:auto}body>.modal-bg,#mediaManager>.modal-bg{z-index:100001}#mediaManager .file-preview .previewer iframe{height:100%}#mediaManager .stylesheets .file-selector ul{display:flex;flex-direction:column-reverse;justify-content:flex-end}#mediaManager .stylesheets .file-selector li{order:2;box-sizing:initial;margin:0 0 5px 0}#mediaManager .stylesheets .file-selector li .actions{text-align:right}#mediaManager .stylesheets .file-selector li[data-file*="/tao-user-styles.css"]{order:1;margin:5px 0}#mediaManager .stylesheets .file-selector li[data-file*="/tao-user-styles.css"]:before{border-top:1px solid #ddd;width:100%;left:0;text-indent:8px;top:-5px;line-height:2.8}#mediaManager .stylesheets .file-selector li[data-file*="/tao-user-styles.css"] .actions a.tlb-button-off{display:none}#mediaManager .stylesheets .file-selector li[data-file*="/tao-user-styles.css"] .actions a.download{display:block}#mediaManager .stylesheets .file-selector .files>li[data-file*="/tao-user-styles.css"]:only-child:before{border:none}#mediaManager .stylesheets .file-preview h2[data-toggle*=".actions"]{display:none}#mediaManager .stylesheets .file-preview h2[data-toggle*=".actions"]+.actions{display:none}@media print{html body #tabs{margin:0 !important;min-height:0 !important;width:auto !important;padding:0 !important;border:none !important}html body .item-editor-sidebar-wrapper{display:none !important}html body .item-no-print{display:none !important}html body #item-editor-scroll-inner{padding:0 !important}html body .action-bar{display:none !important}html body #item-editor-panel{margin:0 !important;padding:0 !important}html body .item-editor-row{border:none !important;background:none !important}html body .qti-item{border-radius:0;box-shadow:none;margin:0 !important;border:none !important;width:100% !important}html body .qti-item [class*=col-]{border-color:rgba(0,0,0,0) !important}html body [data-edit],html body .mini-tlb{display:none !important}html body [class^=btn-],html body [class*=" btn-"],html body button,html body input[type=submit],html body input[type=reset]{color:#222 !important;border:1px solid #ddd !important;border-radius:2px !important;-webkit-border-radius:2px !important}}@media screen and (min-width: 1366px){.item-editor-sidebar-wrapper.left-bar{-ms-order:0;-webkit-order:0;order:0;flex-item-align:stretch;-ms-flex-item-align:stretch;-webkit-align-self:stretch;align-self:stretch;-ms-flex:0 0 262px;-webkit-flex:0 0 262px;flex:0 0 262px}.item-editor-sidebar-wrapper.left-bar #item-editor-interaction-bar .sub-group-cover:after,.item-editor-sidebar-wrapper.left-bar #item-editor-interaction-bar .sub-group-cover:before{left:17% !important}#item-editor-scope>nav.action-bar .menu-left{-ms-order:0;-webkit-order:0;order:0;flex-item-align:stretch;-ms-flex-item-align:stretch;-webkit-align-self:stretch;align-self:stretch;-ms-flex:0 0 262px;-webkit-flex:0 0 262px;flex:0 0 262px}}@media screen and (min-width: 1920px){.item-editor-sidebar-wrapper.left-bar{-ms-order:0;-webkit-order:0;order:0;flex-item-align:stretch;-ms-flex-item-align:stretch;-webkit-align-self:stretch;align-self:stretch;-ms-flex:0 0 344px;-webkit-flex:0 0 344px;flex:0 0 344px}.item-editor-sidebar-wrapper.left-bar #item-editor-interaction-bar .tool-list li{width:50%}.item-editor-sidebar-wrapper.left-bar #item-editor-interaction-bar .sub-group-cover:after,.item-editor-sidebar-wrapper.left-bar #item-editor-interaction-bar .sub-group-cover:before{left:12% !important}#item-editor-scope>nav.action-bar .menu-left{-ms-order:0;-webkit-order:0;order:0;flex-item-align:stretch;-ms-flex-item-align:stretch;-webkit-align-self:stretch;align-self:stretch;-ms-flex:0 0 344px;-webkit-flex:0 0 344px;flex:0 0 344px}}body.solar-design .item-viewer-panel{background:var(--sub-form-background);border-color:var(--form-color)}body.solar-design .item-viewer-panel .item-viewer-bar{color:var(--form-color);background:var(--form-background);border:none;border-bottom:var(--border-thin) solid var(--color-gs-light-secondary);box-shadow:none;min-height:var(--label-height)}body.solar-design .item-viewer-panel .item-viewer-bar>h1{font-size:var(--fontsize-heading);font-weight:bold;height:var(--label-height);line-height:var(--label-height);position:static;padding:0;margin:0}body.solar-design .item-viewer-separator-handle{background:var(--form-background);color:var(--form-color);border-color:var(--form-color)}body.solar-design .item-viewer-separator-handle:hover{background:var(--color-gs-light-hover-bg)}body.solar-design #item-editor-panel{background:var(--sub-form-background)}body.solar-design #item-editor-panel .item-editor-bar{color:var(--form-color);background:var(--form-background);border:none;border-bottom:var(--border-thin) solid var(--color-gs-light-secondary);box-shadow:none;min-height:var(--label-height)}body.solar-design #item-editor-panel .item-editor-bar>h1{font-size:var(--fontsize-heading);font-weight:bold;height:var(--label-height);line-height:var(--label-height);position:static;padding:0;margin:0}body.solar-design #item-editor-panel .item-editor-bar .cke .cke_top{color:var(--form-color);background:var(--color-gs-light);border-color:var(--color-gs-light);box-shadow:none}body.solar-design #item-editor-panel .item-editor-bar .cke .cke_top .cke_toolbar a.cke_button_on{color:var(--form-color);background:var(--color-brand-light);border-bottom:var(--border-thick) solid var(--color-brand)}body.solar-design #item-editor-panel .item-editor-bar .cke .cke_top .cke_toolbar .cke_button{color:var(--form-color);border-bottom:var(--border-thick) solid rgba(0,0,0,0)}body.solar-design #item-editor-panel .item-editor-bar .cke .cke_top .cke_toolbar .cke_button:hover{color:var(--form-color) !important;background:var(--color-gs-light-hover-bg) !important}body.solar-design #item-editor-panel .item-editor-bar .cke .cke_top .cke_toolbar .cke_combo_disabled .cke_combo_button:hover,body.solar-design #item-editor-panel .item-editor-bar .cke .cke_top .cke_toolbar .cke_button_disabled:hover{color:var(--form-color) !important;background:var(--color-gs-light) !important}body.solar-design #item-editor-panel .item-editor-bar .cke .cke_top .cke_toolbar .cke_toolbar_end{border-right:var(--border-thin) solid var(--color-gs-light-secondary)}body.solar-design #item-editor-panel .table-tlb{color:var(--form-color);background:var(--color-gs-light);border:var(--border-thin) solid var(--color-gs-light-secondary) !important}body.solar-design #item-editor-panel .table-tlb .tlb-button{color:var(--form-color) !important}body.solar-design #item-editor-panel .table-tlb .tlb-button [class^=icon-],body.solar-design #item-editor-panel .table-tlb .tlb-button [class*=" icon-"]{color:var(--form-color)}body.solar-design #item-editor-panel .table-tlb .tlb-button:hover{color:var(--form-color) !important;background:var(--color-gs-light-hover-bg) !important}body.solar-design #item-editor-panel .table-tlb .tlb-button.active{color:var(--form-color) !important;background:var(--color-brand-light)}body.solar-design #item-editor-panel .table-tlb .tlb-button ul[data-button-group]>li span{color:var(--form-color)}body.solar-design #item-editor-panel .table-tlb .tlb-button .icon-bin:before{content:url("data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2212%22%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M14.8571%201.14286H10.2857C10.2857%200.514286%209.77143%200%209.14286%200H6.85714C6.22857%200%205.71429%200.514286%205.71429%201.14286H1.14286C0.514286%201.14286%200%201.65714%200%202.28571V3.42857C0%204.05714%200.514286%204.57143%201.14286%204.57143H2.28571V14.2857C2.28571%2015.2343%203.05143%2016%204%2016H12C12.9486%2016%2013.7143%2015.2343%2013.7143%2014.2857V4.57143H14.8571C15.4857%204.57143%2016%204.05714%2016%203.42857V2.28571C16%201.65714%2015.4857%201.14286%2014.8571%201.14286ZM12.5714%2014.2857C12.5714%2014.6057%2012.32%2014.8571%2012%2014.8571H10.2857V10.2857H9.14286V14.8571H6.85714V10.2857H5.71429V14.8571H4C3.68%2014.8571%203.42857%2014.6057%203.42857%2014.2857V4.57143H12.5714V14.2857ZM14.8571%203.42857H13.7143H2.28571H1.14286V2.28571H5.71429H6.85714V1.14286H9.14286V2.28571H10.2857H14.8571V3.42857Z%22%20fill%3D%22%23121212%22%20%2F%3E%3C%2Fsvg%3E")}body.solar-design #item-editor-scope{--side-bar-width: 300px;--input-width-text: 210px}body.solar-design #item-editor-scope>.action-bar .menu-right{text-align:center;flex:0 0 var(--side-bar-width)}body.solar-design #item-editor-scope>.action-bar .menu-right [class^=btn-],body.solar-design #item-editor-scope>.action-bar .menu-right [class*=" btn-"]{border:none;float:none}body.solar-design #item-editor-scope .tooltip[role=tooltip]{border-radius:0;border:var(--border-thin) solid var(--feedback-info-border-color);background-color:var(--feedback-info-background);color:var(--form-color);padding:8px 16px}body.solar-design #item-editor-scope .tooltip[role=tooltip] .tooltip-content{line-height:1.5;font-size:var(--fontsize-body-xs)}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper{background:var(--form-background);padding-bottom:var(--action-bar-height)}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.left-bar{border-right:var(--border-thin) solid var(--color-gs-light-secondary)}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.left-bar .item-editor-sidebar .tool-group .panel{padding:8px}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar{flex:0 0 var(--side-bar-width);border-left:var(--border-thin) solid var(--color-gs-light-secondary)}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar [class^=btn-],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar [class*=" btn-"]{border:var(--button-border) solid var(--button-secondary-border-color);color:var(--button-secondary-color);background-color:var(--button-secondary-background);text-shadow:none}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar [class^=btn-]:hover,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar [class^=btn-] .li-inner:hover,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar [class*=" btn-"]:hover,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar [class*=" btn-"] .li-inner:hover{color:var(--button-secondary-color);background-color:var(--button-secondary-hover-background)}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar a.adder{display:block;text-align:center;border-radius:var(--radius-pill);padding:0 16px;font-family:var(--font-ui);font-size:var(--fontsize-body-xs) !important;font-weight:bold;text-transform:uppercase;white-space:nowrap;line-height:var(--button-height);height:var(--button-height);min-width:var(--button-height);border:var(--button-border) solid var(--button-secondary-border-color);color:var(--button-secondary-color);background-color:var(--button-secondary-background);text-shadow:none}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar a.adder:hover,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar a.adder .li-inner:hover{color:var(--button-secondary-color);background-color:var(--button-secondary-hover-background)}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar a.adder:before{margin-right:8px;position:relative;top:2px;content:""}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar label,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar h3{font-family:var(--font-ui);font-size:var(--fontsize-body);font-weight:normal;line-height:var(--input-height);margin:0;padding:0}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar label .icon-radio,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar label .icon-checkbox,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar h3 .icon-radio,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar h3 .icon-checkbox{margin-inline-end:8px}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=color],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=date],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=datetime],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=datetime-local],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=email],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=month],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=number],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=range],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=search],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=tel],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=time],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=text],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=password],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=url],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=week],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar textarea,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar select{border:var(--border-thin) solid var(--input-border-color);border-radius:0;height:var(--input-height);font-family:var(--font-ui);font-size:var(--fontsize-body);color:var(--input-color);padding:0 12px}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=color]:focus,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=color]:active,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=date]:focus,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=date]:active,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=datetime]:focus,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=datetime]:active,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=datetime-local]:focus,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=datetime-local]:active,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=email]:focus,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=email]:active,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=month]:focus,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=month]:active,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=number]:focus,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=number]:active,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=range]:focus,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=range]:active,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=search]:focus,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=search]:active,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=tel]:focus,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=tel]:active,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=time]:focus,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=time]:active,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=text]:focus,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=text]:active,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=password]:focus,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=password]:active,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=url]:focus,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=url]:active,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=week]:focus,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=week]:active,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar textarea:focus,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar textarea:active,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar select:focus,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar select:active{border-radius:0;border:var(--border-thin) solid var(--input-active-border-color);box-shadow:0 0 0 var(--border-thin) var(--input-active-border-color) inset;outline:none}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=color]::placeholder,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=date]::placeholder,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=datetime]::placeholder,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=datetime-local]::placeholder,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=email]::placeholder,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=month]::placeholder,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=number]::placeholder,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=range]::placeholder,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=search]::placeholder,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=tel]::placeholder,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=time]::placeholder,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=text]::placeholder,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=password]::placeholder,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=url]::placeholder,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=week]::placeholder,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar textarea::placeholder,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar select::placeholder{color:var(--input-placeholder) !important}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=color].disabled,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=color][disabled],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=color][readonly],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=date].disabled,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=date][disabled],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=date][readonly],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=datetime].disabled,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=datetime][disabled],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=datetime][readonly],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=datetime-local].disabled,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=datetime-local][disabled],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=datetime-local][readonly],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=email].disabled,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=email][disabled],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=email][readonly],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=month].disabled,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=month][disabled],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=month][readonly],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=number].disabled,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=number][disabled],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=number][readonly],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=range].disabled,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=range][disabled],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=range][readonly],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=search].disabled,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=search][disabled],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=search][readonly],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=tel].disabled,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=tel][disabled],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=tel][readonly],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=time].disabled,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=time][disabled],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=time][readonly],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=text].disabled,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=text][disabled],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=text][readonly],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=password].disabled,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=password][disabled],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=password][readonly],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=url].disabled,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=url][disabled],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=url][readonly],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=week].disabled,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=week][disabled],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar input[type=week][readonly],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar textarea.disabled,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar textarea[disabled],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar textarea[readonly],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar select.disabled,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar select[disabled],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar select[readonly]{color:var(--input-disabled-color);background:var(--input-disabled-background);border-color:var(--input-disabled-border-color);opacity:1 !important}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .duration-ctrl-wrapper input[type=text],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .incrementer-ctrl-wrapper input[type=text]{width:calc(var(--input-height) + 16px) !important;min-width:var(--input-height) !important}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .tool-group .panel{padding:0}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .tool-group .panel .icon-help.tooltipstered{position:relative;top:12px}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .tool-group .panel>div{font-family:var(--font-ui);font-size:var(--fontsize-body);line-height:var(--label-height);min-height:var(--label-height)}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .tool-group .panel label.has-icon,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .tool-group .panel select.has-icon,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .tool-group .panel input[type=text].has-icon,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .tool-group .panel textarea.has-icon{width:var(--input-width-text);min-width:var(--input-width-text);max-width:var(--input-width-text)}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .tool-group>.panel{padding:16px}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .tool-group>.panel>.panel{padding:8px 0}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .tool-group>.panel .min-max label{margin-bottom:16px}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .reset-group .reset-button,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .item-editor-color-picker .color-trigger{padding:0;width:var(--label-height);height:var(--label-height);line-height:var(--label-height);text-align:center}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .reset-group .reset-button:hover,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .item-editor-color-picker .color-trigger:hover{color:var(--form-color);background:var(--color-gs-light-hover-bg)}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .reset-group .reset-button{border:var(--border-thin) solid rgba(0,0,0,0);top:0;right:0}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .item-editor-color-picker .color-trigger{border:var(--border-thin) solid var(--color-gs-light-secondary)}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .item-editor-color-picker .color-picker-container input[type=text]{border:none}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar #item-editor-font-size-changer a,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar #item-editor-font-size-changer button{display:inline-block}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar #item-editor-font-size-changer a:hover,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar #item-editor-font-size-changer button:hover{color:var(--form-color);background:var(--color-gs-light-hover-bg)}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar #item-editor-font-size-changer a[class^=icon-],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar #item-editor-font-size-changer a[class*=" icon-"],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar #item-editor-font-size-changer button[class^=icon-],body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar #item-editor-font-size-changer button[class*=" icon-"]{font-size:var(--fontsize-body);margin:0;width:var(--label-height);height:var(--label-height);line-height:var(--label-height);text-align:center}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .item-editor-unit-input-box{display:inline-block;position:relative}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .item-editor-unit-input-box input[type=text]{padding-inline-end:var(--label-height)}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .item-editor-unit-input-box .unit-indicator{position:absolute;width:var(--label-height);height:var(--label-height);line-height:var(--label-height);text-align:center;color:var(--color-gs-light-secondary);top:0;right:0}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .sidebar-popup{color:var(--form-color);background:var(--color-gs-light);border:var(--border-thin) solid var(--color-gs-light-secondary);border-radius:0;box-shadow:none;width:100%;max-width:var(--side-bar-width);padding:0}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .sidebar-popup .sidebar-popup-title{font-size:var(--fontsize-heading);font-weight:normal;height:var(--label-height);line-height:var(--label-height);padding:0;margin:0;color:var(--form-color);background:var(--color-gs-light-alternative-bg)}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .sidebar-popup .sidebar-popup-title .closer{color:var(--form-color);width:var(--label-height);height:var(--label-height);padding:10px;content:url("data:image/svg+xml,%3Csvg%20width%3D%2216%22%20height%3D%2217%22%20viewBox%3D%220%200%2016%2017%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M1%200.5L8%207.5L15%200.5L16%201.5L9%208.5L16%2015.5L15%2016.5L8%209.5L1%2016.5L0%2015.5L7%208.5L0%201.5L1%200.5Z%22%20fill%3D%22%23121212%22%20%2F%3E%3C%2Fsvg%3E")}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .sidebar-popup .sidebar-popup-title .closer:hover{color:var(--form-color);background:var(--color-gs-light-hover-bg)}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .noUi-target{margin:32px 0}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .noUi-horizontal{height:8px}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .noUi-horizontal .noUi-handle{top:-6px}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .selectMediaFile,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar button[data-role=upload-trigger]{margin:16px 0}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .media-sizer .item-editor-unit-input-box{position:relative}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .media-sizer .item-editor-unit-input-box,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .media-sizer .item-editor-unit-input-box input[type=text]{width:calc(var(--input-height)*2) !important;min-width:none !important}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .media-sizer .unit-indicator{top:27px;right:24px}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .media-sizer .media-sizer-reset{width:var(--label-height);height:var(--label-height);line-height:var(--label-height);text-align:center;color:var(--form-color);background:var(--color-gs-light);opacity:1;left:auto;right:0;top:2px}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .media-sizer .media-sizer-reset:hover{color:var(--form-color);background:var(--color-gs-light-hover-bg)}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .media-sizer .media-sizer-reset span{background:rgba(0,0,0,0);top:9px;right:9px}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .outcomes .outcome-container{border:var(--border-thin) solid var(--input-border-color);height:var(--input-height);min-height:var(--input-height);line-height:var(--input-height);font-family:var(--font-ui);font-size:var(--fontsize-body);color:var(--input-color);margin:8px 0;padding:0 0 0 12px;position:relative}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .outcomes .outcome-container.editing{height:auto;padding-top:8px}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .outcomes .outcome-container.editing .trigger{top:8px}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .outcomes .outcome-container.editing .outcome-properties-form{padding:0 12px 8px 0;display:flex;flex-direction:column;gap:16px}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .outcomes .outcome-container .trigger{position:absolute;top:0;width:var(--label-height);height:var(--label-height);line-height:var(--label-height);text-align:center;color:var(--form-color);background:var(--color-gs-light)}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .outcomes .outcome-container .trigger:hover{color:var(--form-color);background:var(--color-gs-light-hover-bg)}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .outcomes .outcome-container .trigger.icon-bin{right:0}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .outcomes .outcome-container .trigger.icon-edit{right:var(--label-height)}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .outcomes .outcome-container .identifier-label{width:calc(100% - var(--label-height)*2);height:var(--input-height);margin:0}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .outcomes .outcome-container .identifier-label input{margin:0}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .outcomes .outcome-container .minimum-maximum .incrementer-ctrl-wrapper .incrementer{width:calc(var(--input-height) + 16px) !important;min-width:var(--input-height) !important}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .feedbackRule-panel i,body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .feedbackRule-panel .i{font-style:normal}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .feedbackRule-panel p i{font-size:var(--fontsize-body);font-weight:bold}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .feedbackRule-panel .feedbackRule-container{border-radius:0;border:var(--border-thin) solid var(--color-gs-light-secondary);margin:8px 0;background:var(--form-background)}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .feedbackRule-panel .feedbackRule-container .feedbackRule-desc{min-height:var(--input-height);line-height:var(--input-height);font-family:var(--font-ui);font-size:var(--fontsize-body);text-transform:capitalize;width:25%}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .feedbackRule-panel .feedbackRule-container .feedbackRule-condition{width:50% !important;min-width:50% !important}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .feedbackRule-panel .feedbackRule-container .feedbackRule-then-else button{width:50%}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .feedbackRule-panel .feedbackRule-container .select2-container .select2-choice>.select2-chosen{margin:0}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .feedbackRule-panel .feedbackRule-button-delete{width:var(--label-height);height:var(--label-height);line-height:var(--label-height);text-align:center;color:var(--form-color);background:var(--color-gs-light)}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .feedbackRule-panel .feedbackRule-button-delete:hover{color:var(--form-color);background:var(--color-gs-light-hover-bg)}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .feedbackRule-panel .feedbackRule-button-delete:before{content:url("data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2212%22%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M14.8571%201.14286H10.2857C10.2857%200.514286%209.77143%200%209.14286%200H6.85714C6.22857%200%205.71429%200.514286%205.71429%201.14286H1.14286C0.514286%201.14286%200%201.65714%200%202.28571V3.42857C0%204.05714%200.514286%204.57143%201.14286%204.57143H2.28571V14.2857C2.28571%2015.2343%203.05143%2016%204%2016H12C12.9486%2016%2013.7143%2015.2343%2013.7143%2014.2857V4.57143H14.8571C15.4857%204.57143%2016%204.05714%2016%203.42857V2.28571C16%201.65714%2015.4857%201.14286%2014.8571%201.14286ZM12.5714%2014.2857C12.5714%2014.6057%2012.32%2014.8571%2012%2014.8571H10.2857V10.2857H9.14286V14.8571H6.85714V10.2857H5.71429V14.8571H4C3.68%2014.8571%203.42857%2014.6057%203.42857%2014.2857V4.57143H12.5714V14.2857ZM14.8571%203.42857H13.7143H2.28571H1.14286V2.28571H5.71429H6.85714V1.14286H9.14286V2.28571H10.2857H14.8571V3.42857Z%22%20fill%3D%22%23121212%22%20%2F%3E%3C%2Fsvg%3E")}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .feedbackRule-panel a.adder.feedbackRule-add-else{display:inline-block;border:none}body.solar-design #item-editor-scope .item-editor-sidebar-wrapper.right-bar .item-editor-sidebar .feedbackRule-panel a.adder.feedbackRule-add{margin-top:16px}body.solar-design .item-editor-sidebar .tool-group{border-bottom:var(--border-thin) solid var(--color-gs-light-secondary)}body.solar-design .item-editor-sidebar .tool-group h2{font-size:var(--fontsize-heading);font-weight:bold;color:var(--form-color);background:var(--form-background);height:var(--label-height);line-height:var(--label-height);padding:0 8px;margin:0}body.solar-design .item-editor-sidebar .tool-group h2 span{font-weight:bold;font-size:var(--fontsize-heading-l);top:8px;right:8px}body.solar-design .item-editor-sidebar .tool-group h2.toggler:after{float:right;top:0}body.solar-design .item-editor-sidebar .tool-group .panel{margin:0}body.solar-design .item-editor-sidebar .tool-group .panel .icon-help.tooltipstered{color:var(--form-color);font-size:var(--fontsize-body)}body.solar-design #item-editor-interaction-bar .tool-list{margin:0;gap:5px 0}body.solar-design #item-editor-interaction-bar .tool-list li{font-size:var(--fontsize-body-xs);border:none;border-radius:var(--radius-large);height:var(--label-height);line-height:var(--label-height);padding:0 8px}body.solar-design #item-editor-interaction-bar .tool-list li:hover{background:var(--color-gs-light-hover-bg);border:none}body.solar-design #item-editor-interaction-bar .tool-list li span{margin:0 8px;font-size:var(--fontsize-heading-l);opacity:1}body.solar-design #item-editor-interaction-bar .tool-list li img.icon{max-height:32px;margin:0 8px}body.solar-design #item-editor-interaction-bar .tool-list li.disabled{background-color:var(--color-bg-disabled) !important}body.solar-design #item-editor-interaction-bar .tool-list li.disabled:hover{background:var(--color-gs-light-hover-bg);border:none}body.solar-design #item-editor-interaction-bar .tool-list li.dev{color:var(--color-brand);background-color:var(--color-brand-light)}body.solar-design #item-editor-interaction-bar .tool-list li.dev:hover{background:var(--color-gs-light-hover-bg);border:none}body.solar-design #item-editor-interaction-bar .tool-group .panel.sub-group{padding:0 8px;margin:0 0 8px 0}body.solar-design #item-editor-interaction-bar .tool-group .panel.sub-group .tool-list{padding:8px}body.solar-design #item-editor-interaction-bar .tool-group .panel.sub-group .sub-group-cover{background:var(--sub-form-background);border-radius:var(--radius-large);border:var(--border-thin) solid var(--color-gs-light-secondary)}body.solar-design .qti-item .qti-itemBody .qti-modalFeedback,body.solar-design .qti-item #modalFeedbacks .qti-modalFeedback{color:var(--modal-color);background:var(--modal-background);border:var(--border-thick) solid var(--color-brand);border-radius:var(--radius-large);padding:16px}body.solar-design .qti-item .qti-itemBody .qti-modalFeedback.positive,body.solar-design .qti-item #modalFeedbacks .qti-modalFeedback.positive{border-color:var(--color-success)}body.solar-design .qti-item .qti-itemBody .qti-modalFeedback.negative,body.solar-design .qti-item #modalFeedbacks .qti-modalFeedback.negative{border-color:var(--color-alert)}body.solar-design .qti-item .qti-itemBody .qti-modalFeedback.edit-active [data-html-editable-container],body.solar-design .qti-item #modalFeedbacks .qti-modalFeedback.edit-active [data-html-editable-container]{border:var(--border-thin) solid rgba(0,0,0,0)}body.solar-design .qti-item .qti-itemBody .qti-modalFeedback.edit-active [data-html-editable-container]:hover,body.solar-design .qti-item #modalFeedbacks .qti-modalFeedback.edit-active [data-html-editable-container]:hover{border:var(--border-thin) dotted var(--modal-button-focus-border-color)}body.solar-design .qti-item .qti-itemBody .qti-modalFeedback.edit-active [data-html-editable-container]:hover [data-html-editable][contenteditable=true],body.solar-design .qti-item #modalFeedbacks .qti-modalFeedback.edit-active [data-html-editable-container]:hover [data-html-editable][contenteditable=true]{border:var(--border-thin) solid rgba(0,0,0,0)}body.solar-design .qti-item .qti-itemBody .qti-modalFeedback.edit-active [data-html-editable][contenteditable=true]:focus,body.solar-design .qti-item #modalFeedbacks .qti-modalFeedback.edit-active [data-html-editable][contenteditable=true]:focus{border:var(--border-thin) solid var(--input-border-color);border-radius:0;height:var(--input-height);font-family:var(--font-ui);font-size:var(--fontsize-body);color:var(--input-color);padding:0 12px;color:var(--form-color);background:var(--form-background);padding:8px}body.solar-design .qti-item .qti-itemBody .qti-modalFeedback.edit-active [data-html-editable][contenteditable=true]:focus:focus,body.solar-design .qti-item .qti-itemBody .qti-modalFeedback.edit-active [data-html-editable][contenteditable=true]:focus:active,body.solar-design .qti-item #modalFeedbacks .qti-modalFeedback.edit-active [data-html-editable][contenteditable=true]:focus:focus,body.solar-design .qti-item #modalFeedbacks .qti-modalFeedback.edit-active [data-html-editable][contenteditable=true]:focus:active{border-radius:0;border:var(--border-thin) solid var(--input-active-border-color);box-shadow:0 0 0 var(--border-thin) var(--input-active-border-color) inset;outline:none}body.solar-design .qti-item .qti-itemBody .qti-modalFeedback.edit-active [data-html-editable][contenteditable=true]:focus::placeholder,body.solar-design .qti-item #modalFeedbacks .qti-modalFeedback.edit-active [data-html-editable][contenteditable=true]:focus::placeholder{color:var(--input-placeholder) !important}body.solar-design .qti-item .qti-itemBody .qti-modalFeedback.edit-active [data-html-editable][contenteditable=true]:focus.disabled,body.solar-design .qti-item .qti-itemBody .qti-modalFeedback.edit-active [data-html-editable][contenteditable=true]:focus[disabled],body.solar-design .qti-item .qti-itemBody .qti-modalFeedback.edit-active [data-html-editable][contenteditable=true]:focus[readonly],body.solar-design .qti-item #modalFeedbacks .qti-modalFeedback.edit-active [data-html-editable][contenteditable=true]:focus.disabled,body.solar-design .qti-item #modalFeedbacks .qti-modalFeedback.edit-active [data-html-editable][contenteditable=true]:focus[disabled],body.solar-design .qti-item #modalFeedbacks .qti-modalFeedback.edit-active [data-html-editable][contenteditable=true]:focus[readonly]{color:var(--input-disabled-color);background:var(--input-disabled-background);border-color:var(--input-disabled-border-color);opacity:1 !important}body.solar-design .qti-item .qti-itemBody .qti-modalFeedback .qti-title,body.solar-design .qti-item #modalFeedbacks .qti-modalFeedback .qti-title{margin-right:var(--button-height)}body.solar-design .qti-item .qti-itemBody .qti-modalFeedback .qti-title.inplace:hover,body.solar-design .qti-item .qti-itemBody .qti-modalFeedback .qti-title.inplace:focus,body.solar-design .qti-item #modalFeedbacks .qti-modalFeedback .qti-title.inplace:hover,body.solar-design .qti-item #modalFeedbacks .qti-modalFeedback .qti-title.inplace:focus{border:var(--border-thin) dotted var(--modal-button-focus-border-color)}body.solar-design .qti-item .qti-itemBody .qti-modalFeedback .qti-title.inplace input[type=text],body.solar-design .qti-item #modalFeedbacks .qti-modalFeedback .qti-title.inplace input[type=text]{border:var(--border-thin) solid var(--input-border-color);border-radius:0;height:var(--input-height);font-family:var(--font-ui);font-size:var(--fontsize-body);color:var(--input-color);padding:0 12px;font-size:var(--fontsize-heading-l);font-weight:bold;width:100%}body.solar-design .qti-item .qti-itemBody .qti-modalFeedback .qti-title.inplace input[type=text]:focus,body.solar-design .qti-item .qti-itemBody .qti-modalFeedback .qti-title.inplace input[type=text]:active,body.solar-design .qti-item #modalFeedbacks .qti-modalFeedback .qti-title.inplace input[type=text]:focus,body.solar-design .qti-item #modalFeedbacks .qti-modalFeedback .qti-title.inplace input[type=text]:active{border-radius:0;border:var(--border-thin) solid var(--input-active-border-color);box-shadow:0 0 0 var(--border-thin) var(--input-active-border-color) inset;outline:none}body.solar-design .qti-item .qti-itemBody .qti-modalFeedback .qti-title.inplace input[type=text]::placeholder,body.solar-design .qti-item #modalFeedbacks .qti-modalFeedback .qti-title.inplace input[type=text]::placeholder{color:var(--input-placeholder) !important}body.solar-design .qti-item .qti-itemBody .qti-modalFeedback .qti-title.inplace input[type=text].disabled,body.solar-design .qti-item .qti-itemBody .qti-modalFeedback .qti-title.inplace input[type=text][disabled],body.solar-design .qti-item .qti-itemBody .qti-modalFeedback .qti-title.inplace input[type=text][readonly],body.solar-design .qti-item #modalFeedbacks .qti-modalFeedback .qti-title.inplace input[type=text].disabled,body.solar-design .qti-item #modalFeedbacks .qti-modalFeedback .qti-title.inplace input[type=text][disabled],body.solar-design .qti-item #modalFeedbacks .qti-modalFeedback .qti-title.inplace input[type=text][readonly]{color:var(--input-disabled-color);background:var(--input-disabled-background);border-color:var(--input-disabled-border-color);opacity:1 !important}body.solar-design .qti-item .qti-itemBody .qti-modalFeedback .modal-close,body.solar-design .qti-item #modalFeedbacks .qti-modalFeedback .modal-close{display:inline-block;top:16px;right:16px}body.solar-design .qti-item .qti-itemBody .qti-modalFeedback .modal-close .icon-close,body.solar-design .qti-item #modalFeedbacks .qti-modalFeedback .modal-close .icon-close{top:0}body.solar-design .qti-item .qti-itemBody .qti-modalFeedback .modal-close .icon-close:before,body.solar-design .qti-item #modalFeedbacks .qti-modalFeedback .modal-close .icon-close:before{filter:invert(100%)}body.solar-design .qti-item .qti-itemBody .qti-modalFeedback .modal-close:hover .icon-close:before,body.solar-design .qti-item #modalFeedbacks .qti-modalFeedback .modal-close:hover .icon-close:before{filter:none}body.solar-design .item-editor-item{border:var(--border-thin) solid var(--color-gs-light-secondary);border-radius:0;padding:16px}body.solar-design .item-editor-item .hoverable .widget-box.widget-inline.hover,body.solar-design .item-editor-item .hoverable .widget-box.widget-block.hover,body.solar-design .item-editor-item .hoverable .widget-box.widget-blockInteraction.hover{border-color:var(--color-brand)}body.solar-design .item-editor-item .hoverable .widget-box.widget-inline.edit-active,body.solar-design .item-editor-item .hoverable .widget-box.widget-block.edit-active,body.solar-design .item-editor-item .hoverable .widget-box.widget-blockInteraction.edit-active{border:var(--border-medium) solid var(--color-gs-dark);box-shadow:none}body.solar-design .item-editor-item .hoverable .widget-box.widget-include.edit-active,body.solar-design .item-editor-item .hoverable .widget-box.widget-figure.edit-active,body.solar-design .item-editor-item .hoverable .widget-box.widget-math.edit-active,body.solar-design .item-editor-item .hoverable .widget-box.widget-object.edit-active,body.solar-design .item-editor-item .hoverable .widget-box.widget-_tooltip.edit-active{border:var(--border-thin) solid var(--color-gs-dark);box-shadow:1px 1px 3px 1px var(--color-gs-dark)}body.solar-design .item-editor-item .hoverable .widget-box.widget-blockInteraction.edit-question th.qti-choice.hover .inner-wrapper{border:var(--border-thin) solid var(--color-gs-light-secondary) !important}body.solar-design .item-editor-item .hoverable .widget-box.widget-blockInteraction.edit-question th.qti-choice.edit-choice .inner-wrapper{border:var(--border-medium) solid var(--color-gs-dark) !important;box-shadow:none}body.solar-design .item-editor-item .hoverable .widget-box.widget-blockInteraction.edit-question .qti-choice:not(th).hover{border:var(--border-thin) solid var(--color-gs-light-secondary) !important}body.solar-design .item-editor-item .hoverable .widget-box.widget-blockInteraction.edit-question .qti-choice:not(th).edit-choice{border:var(--border-medium) solid var(--color-gs-dark) !important;box-shadow:none}body.solar-design .item-editor-item .hoverable .widget-box.widget-blockInteraction.edit-question .qti-choice:not(th).edit-choice.qti-hottext{border:var(--border-thin) solid var(--color-gs-dark) !important}body.solar-design .item-editor-item .hoverable .widget-box.widget-rubricBlock.hover .qti-rubricBlock-body{border-color:var(--color-brand)}body.solar-design .item-editor-item .hoverable .widget-box.widget-rubricBlock.edit-active .qti-rubricBlock-body{border:var(--border-medium) solid var(--color-gs-dark);box-shadow:none}body.solar-design .item-editor-item .widget-box{--widget-padding: 8px;border:var(--border-thin) solid var(--color-gs-light-secondary);border-radius:var(--radius-large);padding:var(--widget-padding)}body.solar-design .item-editor-item .widget-box.widget-inline.edit-active{padding-top:calc(var(--label-height) + var(--widget-padding)*3)}body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-active{display:flex;flex-direction:column;padding:0;padding-bottom:var(--widget-padding)}body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-active .tlb-wrapper{position:static;order:0}body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-active .qti-interaction{padding:var(--widget-padding);padding-bottom:0;order:1}body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-active>.widget-ok{order:2;align-self:flex-end;flex:0 0 auto}body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-active,body.solar-design .item-editor-item .widget-box.widget-inline.edit-active{border:var(--border-medium) solid var(--color-gs-dark)}body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-active:before,body.solar-design .item-editor-item .widget-box.widget-inline.edit-active:before{content:"";position:absolute;left:0;bottom:calc(var(--button-height) + var(--widget-padding)*2);width:100%;border-top:var(--border-thin) solid var(--color-gs-dark)}body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-active .qti-inlineChoiceInteraction,body.solar-design .item-editor-item .widget-box.widget-inline.edit-active .qti-inlineChoiceInteraction{padding:0}body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-active .qti-inlineChoiceInteraction .main-option,body.solar-design .item-editor-item .widget-box.widget-inline.edit-active .qti-inlineChoiceInteraction .main-option{min-width:255px}body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-active .qti-inlineChoiceInteraction .select2-container,body.solar-design .item-editor-item .widget-box.widget-inline.edit-active .qti-inlineChoiceInteraction .select2-container{width:100% !important}body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-active .qti-textEntryInteraction,body.solar-design .item-editor-item .widget-box.widget-inline.edit-active .qti-textEntryInteraction{padding:0}body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-active .qti-textEntryInteraction .main-option,body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-active .qti-textEntryInteraction input[type=text],body.solar-design .item-editor-item .widget-box.widget-inline.edit-active .qti-textEntryInteraction .main-option,body.solar-design .item-editor-item .widget-box.widget-inline.edit-active .qti-textEntryInteraction input[type=text]{width:100%;max-width:100%;border:var(--border-thin) solid var(--input-border-color);border-radius:0;height:var(--input-height);font-family:var(--font-ui);font-size:var(--fontsize-body);color:var(--input-color);padding:0 12px}body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-active .qti-textEntryInteraction .main-option:focus,body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-active .qti-textEntryInteraction .main-option:active,body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-active .qti-textEntryInteraction input[type=text]:focus,body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-active .qti-textEntryInteraction input[type=text]:active,body.solar-design .item-editor-item .widget-box.widget-inline.edit-active .qti-textEntryInteraction .main-option:focus,body.solar-design .item-editor-item .widget-box.widget-inline.edit-active .qti-textEntryInteraction .main-option:active,body.solar-design .item-editor-item .widget-box.widget-inline.edit-active .qti-textEntryInteraction input[type=text]:focus,body.solar-design .item-editor-item .widget-box.widget-inline.edit-active .qti-textEntryInteraction input[type=text]:active{border-radius:0;border:var(--border-thin) solid var(--input-active-border-color);box-shadow:0 0 0 var(--border-thin) var(--input-active-border-color) inset;outline:none}body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-active .qti-textEntryInteraction .main-option::placeholder,body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-active .qti-textEntryInteraction input[type=text]::placeholder,body.solar-design .item-editor-item .widget-box.widget-inline.edit-active .qti-textEntryInteraction .main-option::placeholder,body.solar-design .item-editor-item .widget-box.widget-inline.edit-active .qti-textEntryInteraction input[type=text]::placeholder{color:var(--input-placeholder) !important}body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-active .qti-textEntryInteraction .main-option.disabled,body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-active .qti-textEntryInteraction .main-option[disabled],body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-active .qti-textEntryInteraction .main-option[readonly],body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-active .qti-textEntryInteraction input[type=text].disabled,body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-active .qti-textEntryInteraction input[type=text][disabled],body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-active .qti-textEntryInteraction input[type=text][readonly],body.solar-design .item-editor-item .widget-box.widget-inline.edit-active .qti-textEntryInteraction .main-option.disabled,body.solar-design .item-editor-item .widget-box.widget-inline.edit-active .qti-textEntryInteraction .main-option[disabled],body.solar-design .item-editor-item .widget-box.widget-inline.edit-active .qti-textEntryInteraction .main-option[readonly],body.solar-design .item-editor-item .widget-box.widget-inline.edit-active .qti-textEntryInteraction input[type=text].disabled,body.solar-design .item-editor-item .widget-box.widget-inline.edit-active .qti-textEntryInteraction input[type=text][disabled],body.solar-design .item-editor-item .widget-box.widget-inline.edit-active .qti-textEntryInteraction input[type=text][readonly]{color:var(--input-disabled-color);background:var(--input-disabled-background);border-color:var(--input-disabled-border-color);opacity:1 !important}body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-question .qti-interaction .add-option,body.solar-design .item-editor-item .widget-box.widget-inline.edit-question .qti-interaction .add-option{color:var(--color-brand);background-color:var(--color-brand-light);border:var(--border-thin) dashed var(--color-brand) !important;border-radius:var(--radius-medium)}body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-question .qti-interaction .add-option:hover,body.solar-design .item-editor-item .widget-box.widget-inline.edit-question .qti-interaction .add-option:hover{color:var(--form-color);background:var(--color-gs-light-hover-bg)}body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-question .qti-hottextInteraction .qti-hottext,body.solar-design .item-editor-item .widget-box.widget-inline.edit-question .qti-hottextInteraction .qti-hottext{margin-top:26px}body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-question .qti-hottextInteraction .qti-hottext .mini-tlb[data-edit],body.solar-design .item-editor-item .widget-box.widget-inline.edit-question .qti-hottextInteraction .qti-hottext .mini-tlb[data-edit]{top:-26px;right:0 !important;height:26px}body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-question .qti-inlineChoiceInteraction .icon-bin,body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-question .qti-inlineChoiceInteraction .icon-pin,body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-question .qti-inlineChoiceInteraction .icon-shuffle,body.solar-design .item-editor-item .widget-box.widget-inline.edit-question .qti-inlineChoiceInteraction .icon-bin,body.solar-design .item-editor-item .widget-box.widget-inline.edit-question .qti-inlineChoiceInteraction .icon-pin,body.solar-design .item-editor-item .widget-box.widget-inline.edit-question .qti-inlineChoiceInteraction .icon-shuffle{color:var(--form-color);background:var(--color-gs-light);padding:5px}body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-question .qti-inlineChoiceInteraction .icon-bin:hover,body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-question .qti-inlineChoiceInteraction .icon-pin:hover,body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-question .qti-inlineChoiceInteraction .icon-shuffle:hover,body.solar-design .item-editor-item .widget-box.widget-inline.edit-question .qti-inlineChoiceInteraction .icon-bin:hover,body.solar-design .item-editor-item .widget-box.widget-inline.edit-question .qti-inlineChoiceInteraction .icon-pin:hover,body.solar-design .item-editor-item .widget-box.widget-inline.edit-question .qti-inlineChoiceInteraction .icon-shuffle:hover{color:var(--form-color);background:var(--color-gs-light-hover-bg)}body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-question .qti-inlineChoiceInteraction .icon-bin:before,body.solar-design .item-editor-item .widget-box.widget-inline.edit-question .qti-inlineChoiceInteraction .icon-bin:before{content:url("data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2212%22%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M14.8571%201.14286H10.2857C10.2857%200.514286%209.77143%200%209.14286%200H6.85714C6.22857%200%205.71429%200.514286%205.71429%201.14286H1.14286C0.514286%201.14286%200%201.65714%200%202.28571V3.42857C0%204.05714%200.514286%204.57143%201.14286%204.57143H2.28571V14.2857C2.28571%2015.2343%203.05143%2016%204%2016H12C12.9486%2016%2013.7143%2015.2343%2013.7143%2014.2857V4.57143H14.8571C15.4857%204.57143%2016%204.05714%2016%203.42857V2.28571C16%201.65714%2015.4857%201.14286%2014.8571%201.14286ZM12.5714%2014.2857C12.5714%2014.6057%2012.32%2014.8571%2012%2014.8571H10.2857V10.2857H9.14286V14.8571H6.85714V10.2857H5.71429V14.8571H4C3.68%2014.8571%203.42857%2014.6057%203.42857%2014.2857V4.57143H12.5714V14.2857ZM14.8571%203.42857H13.7143H2.28571H1.14286V2.28571H5.71429H6.85714V1.14286H9.14286V2.28571H10.2857H14.8571V3.42857Z%22%20fill%3D%22%23121212%22%20%2F%3E%3C%2Fsvg%3E")}body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-question .qti-gapMatchInteraction .qti-choice .mini-tlb .tlb-button,body.solar-design .item-editor-item .widget-box.widget-inline.edit-question .qti-gapMatchInteraction .qti-choice .mini-tlb .tlb-button{border:none}body.solar-design .item-editor-item .widget-box.widget-blockInteraction.edit-answer .qti-inlineChoiceInteraction .padding,body.solar-design .item-editor-item .widget-box.widget-inline.edit-answer .qti-inlineChoiceInteraction .padding{display:none}body.solar-design .item-editor-item .widget-box.widget-include,body.solar-design .item-editor-item .widget-box.widget-figure,body.solar-design .item-editor-item .widget-box.widget-math,body.solar-design .item-editor-item .widget-box.widget-object,body.solar-design .item-editor-item .widget-box.widget-_tooltip{padding:0;border-radius:0}body.solar-design .item-editor-item .widget-box.widget-include.edit-active,body.solar-design .item-editor-item .widget-box.widget-figure.edit-active,body.solar-design .item-editor-item .widget-box.widget-math.edit-active,body.solar-design .item-editor-item .widget-box.widget-object.edit-active,body.solar-design .item-editor-item .widget-box.widget-_tooltip.edit-active{padding:0}body.solar-design .item-editor-item .widget-box.widget-include.edit-active:before,body.solar-design .item-editor-item .widget-box.widget-figure.edit-active:before,body.solar-design .item-editor-item .widget-box.widget-math.edit-active:before,body.solar-design .item-editor-item .widget-box.widget-object.edit-active:before,body.solar-design .item-editor-item .widget-box.widget-_tooltip.edit-active:before{content:none}body.solar-design .item-editor-item .widget-box.widget-inline .tlb-wrapper .tlb,body.solar-design .item-editor-item .widget-box.widget-inline .tlb-wrapper .tlb .state-switcher{float:none}body.solar-design .item-editor-item .widget-box.widget-inlineChoiceInteraction,body.solar-design .item-editor-item .widget-box.widget-textEntryInteraction,body.solar-design .item-editor-item .widget-box.widget-endAttemptInteraction{background:var(--color-gs-light);min-width:var(--side-bar-width)}body.solar-design .item-editor-item .widget-box.widget-inlineChoiceInteraction .tlb-wrapper,body.solar-design .item-editor-item .widget-box.widget-textEntryInteraction .tlb-wrapper,body.solar-design .item-editor-item .widget-box.widget-endAttemptInteraction .tlb-wrapper{top:0}body.solar-design .item-editor-item .widget-box.widget-endAttemptInteraction.edit-active .endAttemptInteraction-placeholder{display:inline-block;margin:0 auto calc(var(--button-height) + var(--widget-padding)*2) auto;border:var(--button-border) solid var(--button-secondary-border-color);color:var(--button-secondary-color);background-color:var(--button-secondary-background);text-shadow:none}body.solar-design .item-editor-item .widget-box.widget-endAttemptInteraction.edit-active .endAttemptInteraction-placeholder:hover,body.solar-design .item-editor-item .widget-box.widget-endAttemptInteraction.edit-active .endAttemptInteraction-placeholder .li-inner:hover{color:var(--button-secondary-color);background-color:var(--button-secondary-hover-background)}body.solar-design .item-editor-item .widget-box .endAttemptInteraction-placeholder{background-color:var(--button-disabled-background) !important;text-shadow:none !important;opacity:1 !important;color:var(--button-disabled-color) !important}body.solar-design .item-editor-item .widget-box .endAttemptInteraction-placeholder:hover,body.solar-design .item-editor-item .widget-box .endAttemptInteraction-placeholder .li-inner:hover{color:var(--button-disabled-color);background-color:var(--button-disabled-background)}body.solar-design .item-editor-item .widget-box [class^=btn-],body.solar-design .item-editor-item .widget-box [class*=" btn-"]{border:var(--button-border) solid var(--button-secondary-border-color);color:var(--button-secondary-color);background-color:var(--button-secondary-background);text-shadow:none}body.solar-design .item-editor-item .widget-box [class^=btn-]:hover,body.solar-design .item-editor-item .widget-box [class^=btn-] .li-inner:hover,body.solar-design .item-editor-item .widget-box [class*=" btn-"]:hover,body.solar-design .item-editor-item .widget-box [class*=" btn-"] .li-inner:hover{color:var(--button-secondary-color);background-color:var(--button-secondary-hover-background)}body.solar-design .item-editor-item .widget-box .widget-ok{border:none;color:var(--button-primary-info-color);background-color:var(--button-primary-info-background);text-shadow:none;margin:16px 0 0 0}body.solar-design .item-editor-item .widget-box .widget-ok:hover,body.solar-design .item-editor-item .widget-box .widget-ok .li-inner:hover{color:var(--button-primary-info-color);background-color:var(--button-primary-info-hover-background)}body.solar-design .item-editor-item .widget-box .tlb-wrapper{color:var(--form-color);background:rgba(0,0,0,0);text-shadow:none;box-shadow:none;border-bottom:var(--border-thin) solid var(--color-gs-dark);padding:8px}body.solar-design .item-editor-item .widget-box .tlb-wrapper .tlb-title{font-size:var(--fontsize-body) !important;font-weight:bold;margin:0;padding:0;height:var(--label-height);line-height:var(--label-height)}body.solar-design .item-editor-item .widget-box .tlb-wrapper .tlb{display:flex;flex-direction:row-reverse;justify-content:space-between}body.solar-design .item-editor-item .widget-box .tlb-wrapper .tlb:before{content:none}body.solar-design .item-editor-item .widget-box .tlb-wrapper .tlb .state-switcher{font-size:var(--fontsize-body-s) !important}body.solar-design .item-editor-item .widget-box .tlb-wrapper .tlb>div{margin:0}body.solar-design .item-editor-item .widget-box .tlb-wrapper .tlb .state-switcher{height:var(--label-height);line-height:var(--label-height);display:flex;gap:8px;margin:0;float:none}body.solar-design .item-editor-item .widget-box .tlb-wrapper .tlb .state-switcher .selected,body.solar-design .item-editor-item .widget-box .tlb-wrapper .tlb .state-switcher .link{font-size:var(--fontsize-heading);font-weight:bold;padding:0 8px}body.solar-design .item-editor-item .widget-box .tlb-wrapper .tlb .state-switcher .selected:hover,body.solar-design .item-editor-item .widget-box .tlb-wrapper .tlb .state-switcher .link:hover{background:var(--color-gs-light-hover-bg);text-decoration:none}body.solar-design .item-editor-item .widget-box .tlb-wrapper .tlb .state-switcher .selected{border-bottom:var(--border-thick) solid var(--color-brand)}body.solar-design .item-editor-item .widget-box .tlb-wrapper .tlb .state-switcher .link{border-bottom:var(--border-thick) solid rgba(0,0,0,0)}body.solar-design .item-editor-item .widget-box .tlb-wrapper .tlb .state-switcher .separator{display:none}body.solar-design .item-editor-item .widget-box .tlb-wrapper .tlb .tlb-button{font-size:var(--fontsize-body-s);opacity:1;width:var(--label-height);height:var(--label-height);line-height:var(--label-height);text-align:center;padding:0;float:none}body.solar-design .item-editor-item .widget-box .tlb-wrapper .tlb .tlb-button:hover{color:var(--form-color);background:var(--color-gs-light-hover-bg)}body.solar-design .item-editor-item .widget-box .tlb-wrapper .tlb .tlb-button [class^=icon-],body.solar-design .item-editor-item .widget-box .tlb-wrapper .tlb .tlb-button [class*=" icon-"]{font-size:var(--fontsize-heading);text-shadow:none;line-height:var(--label-height)}body.solar-design .item-editor-item .widget-box .tlb-wrapper .tlb .tlb-button .icon-bin:before{content:url("data:image/svg+xml,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M14.8571%201.14286H10.2857C10.2857%200.514286%209.77143%200%209.14286%200H6.85714C6.22857%200%205.71429%200.514286%205.71429%201.14286H1.14286C0.514286%201.14286%200%201.65714%200%202.28571V3.42857C0%204.05714%200.514286%204.57143%201.14286%204.57143H2.28571V14.2857C2.28571%2015.2343%203.05143%2016%204%2016H12C12.9486%2016%2013.7143%2015.2343%2013.7143%2014.2857V4.57143H14.8571C15.4857%204.57143%2016%204.05714%2016%203.42857V2.28571C16%201.65714%2015.4857%201.14286%2014.8571%201.14286ZM12.5714%2014.2857C12.5714%2014.6057%2012.32%2014.8571%2012%2014.8571H10.2857V10.2857H9.14286V14.8571H6.85714V10.2857H5.71429V14.8571H4C3.68%2014.8571%203.42857%2014.6057%203.42857%2014.2857V4.57143H12.5714V14.2857ZM14.8571%203.42857H13.7143H2.28571H1.14286V2.28571H5.71429H6.85714V1.14286H9.14286V2.28571H10.2857H14.8571V3.42857Z%22%20fill%3D%22%23121212%22%20%2F%3E%3C%2Fsvg%3E")}body.solar-design .item-editor-item .widget-box [data-edit].mini-tlb{color:var(--form-color);background:var(--color-gs-light);border:var(--border-thin) solid var(--color-gs-light-secondary) !important}body.solar-design .item-editor-item .widget-box [data-edit].mini-tlb .tlb-button{color:var(--form-color) !important}body.solar-design .item-editor-item .widget-box [data-edit].mini-tlb .tlb-button [class^=icon-],body.solar-design .item-editor-item .widget-box [data-edit].mini-tlb .tlb-button [class*=" icon-"]{color:var(--form-color)}body.solar-design .item-editor-item .widget-box [data-edit].mini-tlb .tlb-button:hover{color:var(--form-color) !important;background:var(--color-gs-light-hover-bg) !important}body.solar-design .item-editor-item .widget-box [data-edit].mini-tlb .tlb-button.active{color:var(--form-color) !important;background:var(--color-brand-light)}body.solar-design .item-editor-item .widget-box [data-edit].mini-tlb .tlb-button ul[data-button-group]>li span{color:var(--form-color)}body.solar-design .item-editor-item .widget-box [data-edit].mini-tlb .tlb-button .icon-bin:before{content:url("data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2212%22%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M14.8571%201.14286H10.2857C10.2857%200.514286%209.77143%200%209.14286%200H6.85714C6.22857%200%205.71429%200.514286%205.71429%201.14286H1.14286C0.514286%201.14286%200%201.65714%200%202.28571V3.42857C0%204.05714%200.514286%204.57143%201.14286%204.57143H2.28571V14.2857C2.28571%2015.2343%203.05143%2016%204%2016H12C12.9486%2016%2013.7143%2015.2343%2013.7143%2014.2857V4.57143H14.8571C15.4857%204.57143%2016%204.05714%2016%203.42857V2.28571C16%201.65714%2015.4857%201.14286%2014.8571%201.14286ZM12.5714%2014.2857C12.5714%2014.6057%2012.32%2014.8571%2012%2014.8571H10.2857V10.2857H9.14286V14.8571H6.85714V10.2857H5.71429V14.8571H4C3.68%2014.8571%203.42857%2014.6057%203.42857%2014.2857V4.57143H12.5714V14.2857ZM14.8571%203.42857H13.7143H2.28571H1.14286V2.28571H5.71429H6.85714V1.14286H9.14286V2.28571H10.2857H14.8571V3.42857Z%22%20fill%3D%22%23121212%22%20%2F%3E%3C%2Fsvg%3E")}body.solar-design .item-editor-item .qti-hottextInteraction .widget-box.qti-hottext{color:var(--form-color);background:var(--color-gs-light-alternative-bg);border:solid var(--border-thin) var(--color-gs-light-alternative-bg) !important;border-radius:var(--radius-medium);padding:0 8px}body.solar-design .item-editor-item .qti-hottextInteraction .widget-box.qti-hottext:hover{color:var(--form-color) !important;background:var(--color-gs-light-hover-bg) !important;border:var(--border-thin) solid var(--color-gs-light-secondary) !important}body.solar-design .item-editor-item .qti-matchInteraction table.matrix th.qti-choice,body.solar-design .item-editor-item .qti-matchInteraction table.matrix td{border:solid var(--border-thin) var(--color-border-info);height:auto;line-height:normal;padding:16px 20px}body.solar-design .item-editor-item .qti-matchInteraction table.matrix thead .mini-tlb{top:-26px}body.solar-design .item-editor-item .qti-matchInteraction table.matrix tbody .mini-tlb{top:0;left:0}body.solar-design .item-editor-item [dir=rtl] .qti-matchInteraction table.matrix tbody .mini-tlb,.item-editor-item body.solar-design [dir=rtl] .qti-matchInteraction table.matrix tbody .mini-tlb{right:0;left:auto}body.solar-design .item-editor-item .qti-matchInteraction table.matrix .score{top:-2px}body.solar-design .tao-xml-editor.qti-creator-source{height:calc(100vh - var(--header-bar-height) - var(--action-bar-height) - var(--footer-bar-height) - var(--border-thin));top:calc(var(--header-bar-height) + var(--action-bar-height) + var(--border-thin))}@media screen and (min-width: 1920px){body.solar-design .item-editor-sidebar-wrapper.left-bar #item-editor-interaction-bar .tool-list li{font-size:var(--fontsize-body-s);display:flex;flex-direction:column;align-items:center;width:50%;height:calc(var(--label-height)*2);padding:8px}body.solar-design .item-editor-sidebar-wrapper.left-bar #item-editor-interaction-bar .tool-list li span{font-size:var(--fontsize-heading-xl)}body.solar-design .item-editor-sidebar-wrapper.left-bar #item-editor-interaction-bar .tool-group .panel.sub-group .sub-group-cover:after{margin-left:33px}body.solar-design .item-editor-sidebar-wrapper.left-bar #item-editor-interaction-bar .tool-group .panel.sub-group .sub-group-cover:before{margin-left:32px}} -/*# sourceMappingURL=item-creator.css.map */ \ No newline at end of file +/*# sourceMappingURL=item-creator.css.map */ diff --git a/views/css/item-creator.css.map b/views/css/item-creator.css.map index 39d07f0b19..07103b796c 100644 --- a/views/css/item-creator.css.map +++ b/views/css/item-creator.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../../../tao/views/node_modules/@oat-sa/tao-core-ui/scss/inc/_variables.scss","../../../tao/views/scss/inc/_farbtastic.scss","../scss/item-creator.scss","../../../tao/views/node_modules/@oat-sa/tao-core-ui/scss/inc/_functions.scss","../../../tao/views/node_modules/@oat-sa/tao-core-ui/scss/inc/_colors.scss","../scss/qtiCreator/_outcome-editor.scss","../scss/qtiCreator/_interaction-sidebar.scss","../scss/qtiCreator/_math-input.scss","../scss/qtiCreator/_media-sidebar.scss","../../../tao/views/scss/inc/fonts/_tao-icon-vars.scss","../scss/qtiCreator/_editor-bar.scss","../scss/qtiCreator/_table.scss","../scss/qtiCreator/_widget-popup.scss","../scss/qtiCreator/_tooltip.scss","../scss/qtiCreator/_object.scss","../scss/qtiCreator/_choice.scss","../scss/shared/_functions.scss","../scss/qtiCreator/_order.scss","../scss/qtiCreator/_associate.scss","../scss/qtiCreator/_match.scss","../scss/qtiCreator/_inline-choice.scss","../scss/qtiCreator/_text-entry.scss","../scss/qtiCreator/_end-attempt.scss","../scss/qtiCreator/_extended-text.scss","../scss/qtiCreator/_response-pairs.scss","../scss/qtiCreator/_gap-match.scss","../scss/qtiCreator/_hottext.scss","../scss/qtiCreator/_rubric-block.scss","../scss/qtiCreator/_math.scss","../scss/qtiCreator/_mapping-editor.scss","../scss/qtiCreator/_graphic.scss","../scss/qtiCreator/_graphic-gap.scss","../scss/qtiCreator/_grid-editor.scss","../scss/qtiCreator/_custom.scss","../scss/qtiCreator/_element-selector.scss","../scss/qtiCreator/_include.scss","../scss/qtiCreator/_item_buttons.scss","../scss/qtiCreator/_figure.scss","../scss/qtiCreator/_media.scss","../scss/qtiCreator/_modal-feedback.scss","../scss/inc/solar/_creator.scss","../../../tao/views/scss/inc/solar/mixins/_toolbars.scss","../../../tao/views/scss/inc/solar/mixins/_icons.scss","../../../tao/views/scss/inc/solar/mixins/_buttons.scss","../../../tao/views/scss/inc/solar/mixins/_forms.scss"],"names":[],"mappings":"CAaI,wVACI,YACA,cAEJ,0KACI,WCGR,YACI,kBACA,YACA,aACA,gBACA,wCACI,oBACA,qBACA,sBACA,uBAEJ,mBACI,qzeACA,qBACA,WACA,YAEJ,qBACI,6pFACA,qBAEJ,oBACI,sBACA,uBACA,2CACA,gBACA,itBACA,qBAEJ,cACI,kBACA,iBC1BR,iDACI,sBACA,eACA,eACA,kBACA,kBACA,mBACA,wCACA,gCAGJ,mCACI,gBAGJ,8xBACI,eACA,yBAIJ,itBACI,eACA,UACA,yBACA,2CACA,mCAGJ,+FACI,aACA,kBACA,MACA,QACA,UACA,kBACA,gBCsJI,0BACA,4BDpJJ,oCACA,qBACA,0BACA,gBACA,iBA7DgB,QA+DhB,iSCiJI,eACA,iBDhJA,kBACA,QACA,MEzED,QF4EH,qJACI,iBE7ED,QF8EC,6YACI,MAzEQ,QA8EZ,2MACI,iBA/EQ,QAgFR,yfACI,cAKZ,mIACI,WACA,YACA,kBACA,kBACA,eACA,SACA,qBACA,yBACA,yWACI,0BACA,kBACA,QACA,SACA,gCACA,6BAEJ,qJACI,yBAEJ,wJACI,yBAEJ,wJACI,OACA,YACA,sBACA,kBACA,QACA,YACA,gBAEJ,2MACI,aAEJ,qMACI,oCACA,YACA,8MACI,aACA,oCACA,YACA,UACA,WACA,6NACI,MEtHR,KFuHQ,4BAEJ,mOACI,qBAOpB,8IACI,MErJG,QFsJH,qCACA,qBACA,0BACA,kBACA,iBArJgB,QAsJhB,8VC2DI,eACA,iBD1DA,kBACA,QACA,SACA,MEhKD,QFiKC,iBAEJ,0JACI,WAKJ,wBACI,kBACA,gBACA,mBACA,iBACA,MEjKI,QFkKJ,YAEJ,sBACI,iBACA,WAKJ,+BACI,aAIR,wBACI,aAEJ,iBACI,2BACA,yCACI,eAGR,mBACI,yBACA,kCACI,WACA,UC9II,mDALA,4SDsJJ,gDACI,YACA,kBAEJ,6CC1JI,oCAyBR,wBACA,4BA1BQ,uGD4JA,4BAEJ,8CC9JI,oCAyBR,wBACA,4BA1BQ,uGDgKA,2BAEJ,wCClKI,oCAyBR,wBACA,4BA1BQ,2IDwKZ,iBACI,2BACA,yCACI,eAEJ,oCACI,YAIR,qBACI,SACA,kBACA,iBAlOwB,QAmOxB,YCjLQ,mDALA,4SDyLR,uCACI,kBACA,6GACI,YAUJ,8QACI,YAMR,+BACI,uBACA,sBAMR,2BACI,aFlQA,wVACI,YACA,cAEJ,0KACI,WKdA,6JACI,eAEJ,iFACI,MDNL,QCOK,YACA,YACA,gBACA,eACA,uFACI,cAEJ,wFACI,cAIJ,0FACI,yBACA,mBAGR,0FF8LA,iBACA,kBE7LI,qBACA,SACA,wBACA,gBACA,uBACA,2GACI,eACA,aACA,kBAGR,2EACI,cAEJ,iGACI,aAGA,+FACI,eACA,wGACI,qBACA,gBACA,YAGR,mHACI,aACA,gIACI,sBAKR,2FACI,iBACA,MD9DT,QC+DS,iGACI,cAGR,yGACI,cAEJ,kGACI,mBACA,6GACI,aAEJ,mHACI,qBLjEhB,wVACI,YACA,cAEJ,0KACI,WMdJ,0DACI,WACA,YACA,cACA,oBACA,WAIA,0DACI,kBACA,yBACA,mBACA,qEACI,kBACA,UAEJ,2EACI,kBACA,OACA,SACA,UACA,YACA,iDACA,UACA,yBHsFZ,uBACA,0BACA,kBGtFY,UACA,0BACA,oFACI,WAIR,mKACI,YACA,SACA,2BACA,YACA,SACA,QACA,kBACA,oBAGJ,iFACI,2BACA,4BACA,iBACA,iBAGJ,kFACI,2BACA,oBF1CA,QE2CA,iBACA,iBAKZ,wCACI,gBACA,aACA,eAEA,2CACI,WACA,SACA,gBH+IJ,eACA,iBG9II,gCACA,YACA,aACA,mBACA,iDACI,gCACA,uBAEJ,gDACI,cACA,WHmIR,eACA,iBGlIQ,WAEJ,sDACI,qBAEJ,oDACG,gBACA,WAEH,oDACI,eACA,iCACA,0DACI,gCACA,gCAGR,+CACI,mBACA,MFxGT,QEyGS,qDACI,gCN/FhB,wVACI,YACA,cAEJ,0KACI,WOdJ,qCACI,aAIA,uDACI,WACA,eACA,YAIJ,iDACI,aACA,sBAGI,2FACI,WACA,+BACA,kBACA,mBACA,kBAEA,sGACI,eACA,gBACA,kBAGJ,4GACI,WAKZ,kEACI,WACA,OACA,gBAEA,wFACI,WACA,YAEA,aHnBK,KGoBL,gBPrChB,wVACI,YACA,cAEJ,0KACI,WQbI,kEACI,yBNiRhB,6BACI,WEhOK,QFiOL,oBChOQ,oCAyBR,wBACA,4BA1BQ,uGDmOR,gBACA,kBAGI,2DACI,4BAIJ,4DACI,2BAEJ,gDACI,gBAQJ,oCCzFA,eACA,iBD0FI,0BACA,mBACA,iBACA,cACA,sBACA,WACA,eACA,WACA,kBACA,WA/SoB,QAgTpB,eACA,+CACI,aAEJ,6CACI,cAGA,sDACI,cAEJ,oDACI,aAGR,yCACI,kBACA,QACA,UAEJ,kDACI,YACA,MAGR,oCACI,uBAGJ,wCACI,yBACA,+CACI,UACA,mBAEJ,2CACI,mBAEJ,2CACI,mBACA,SC7IR,eACA,iBD8IQ,gBACA,qBACA,sDACI,eACA,cAGR,yJACI,WACA,oLACI,YACA,gBACA,gBAIR,qDACI,WACA,gBAEJ,iEACI,eACA,YAEJ,sGACI,kBAEJ,8CACI,UC3KR,eACA,iBD4KQ,uDACI,YACA,gBACA,gBACA,qBAIR,oDACI,WACA,eAEJ,qDACI,WACA,eAII,2EACI,iBAIZ,iDC/SR,sBACA,kBACA,0BD+SY,sCACA,YACA,aCxMR,eACA,iBD0MI,iEACI,MElaT,QFoaK,uDACI,iBACA,gEACI,eAMhB,4BACI,gBACA,iBAEJ,iCACI,WACA,OAKA,yCACI,YACA,gBACA,gBAEJ,gDACI,kBACA,QACA,UACA,YACA,UACA,YACA,WACA,iBACA,eACA,sDACI,MEvaK,QF4ajB,iDACI,kBACA,eACA,uDACI,mBAEJ,iEACI,WACA,iBACA,YACA,cCtWR,uBACA,0BACA,kBD0WI,4DACI,aAIR,gCACI,WAEI,mGAEI,YAIZ,8BACI,gBACA,iBACA,6CACI,QAEJ,oCACI,mBAGR,6CACI,eAEJ,wCACI,0BAEJ,uCACI,SAGJ,oDACI,gBACA,gBACA,cACA,YACA,WACA,sDACI,mBACA,eACA,MErfA,KFsfA,gCACA,WACA,iBACA,gBACA,mEACI,iBAGR,kEC3TA,eACA,iBD6TA,iEC9TA,eACA,iBDoUA,+DCrUA,eACA,iBA5GJ,sBACA,kBACA,0BDibQ,qBACA,WACA,YACA,sBACA,0BACA,mBAEI,+EOriBd,6BACA,YACA,kBACA,mBACA,oBACA,oBACA,cAGA,mCACA,kCAmHsB,YP8ahB,oEACI,aACA,YACA,gBACA,gBCzVJ,eACA,iBD0VI,kBACA,QAEJ,6GACI,YACA,eACA,gBACA,kBACA,QAEJ,oHACI,cACA,0BAGJ,sDACI,qBACA,eACA,YACA,eACA,kBC/WJ,eACA,iBDgXI,QACA,4DACI,MExiBK,QF6iBjB,0CACI,WAIA,8DACI,WACA,qBACA,YACA,YACA,cACA,eCxeR,uBACA,0BACA,kBARA,sBACA,kBACA,0BDgfI,6DCvYA,eACA,iBDwYI,QAEJ,uEACI,WACA,6EACI,yBAGR,6DACI,gBAIR,8BACI,kBACA,YACA,YACA,mCACI,cC3ZJ,eACA,iBD4ZI,gBACA,UACA,WE1lBS,KF2lBT,kBACA,eACA,uBACA,yCACI,WEzlBK,QF0lBL,MEvmBA,KFymBJ,wFACI,YAEJ,6CACI,WAEJ,8CACI,YAShB,eACI,WExlBK,QFylBL,YACA,kBACA,YACA,SACA,YC5lBQ,gKD8lBR,aACA,cACA,sCACI,gBACA,6CACI,4BACA,6BAGR,oCACI,ME3oBQ,KF4oBR,mBACA,kBACA,YACA,sCACI,MEhpBI,KFkpBR,4CACI,kBACA,QACA,UAEJ,uCACI,yBAGR,6CACI,WACA,eACA,cAEJ,+BACI,YAEJ,yBACI,YAEJ,mBACI,YAEJ,+BACI,YAEJ,yBACI,YAEJ,qBACI,YAEJ,iCACI,YAEJ,2BACI,YAGA,4BACI,aACA,YF1sBI,yME4sBR,+BACI,aACA,YF9sBI,yMEktBR,8BACI,aACA,YFptBI,yMEutBZ,sCACI,QAMR,sCACI,m3DAGJ,mBACI,yBACA,+BACA,kBACA,iBACA,mBACA,UACA,YAGI,sDACI,sBAIR,sBACI,gBACA,SAGJ,oCACI,kBACA,MACA,OACA,WACA,gBACA,YACA,WAvvBwB,QAwvBxB,0BACA,gBC7sBI,6MDgtBJ,uCACI,kBACA,WACA,kBCpjBJ,eACA,iBDqjBI,iBACA,eACA,SAIR,iDACI,kBACA,YC7tBI,oCAyBR,wBACA,4BA1BQ,2ID+tBJ,cAEA,2EACI,uBAEJ,2EACI,kBAGR,gCCxuBQ,mMD0uBJ,iBACA,YAGR,8BACI,WE3wBiB,KF4wBjB,MAvxBsB,QAwxBtB,yBACA,kBACA,MArxBuB,KAsxBvB,OAtxBuB,KAuxBvB,YAvxBuB,KCiMnB,eACA,eDulBJ,kBACA,kBACA,QACA,YACA,WACA,eACA,iBAEA,oCACI,WE/wBc,QFkxBlB,mCACI,kBACA,SAKJ,kDACI,gBAGA,+EACI,gBACA,uBAEJ,+EACI,yBAKZ,mBAOI,UACA,kBACA,gBACA,YClyBQ,oCAyBR,wBACA,4BA1BQ,2IH5CR,g+BACI,YACA,cAEJ,4eACI,WUhBR,oCACI,kBACA,WACA,gBACA,YACA,WRM4B,QQL5B,0BACA,gBPgDQ,6MO9CR,uCACI,kBACA,WACA,kBP0MA,eACA,iBOzMA,iBACA,eACA,SAGA,kDACI,YACA,gBACA,UACA,SACA,WACA,WRdoB,QQepB,iBAEI,qMACI,oCACA,sBACA,eAEJ,2JACI,YACA,eACA,iBAEJ,8EACI,yBACA,YAEJ,gFACI,+BACA,QACA,kBACA,eAEJ,0EACI,YACA,gBACA,0FACI,YACA,iBACA,gBAEJ,0FACI,YACA,2GACI,eAOxB,sDACI,qBACA,yBACA,gBACA,YACA,gBACA,kBV7DJ,g+BACI,YACA,cAEJ,4eACI,WWhBR,iCACI,cACA,kBAEA,8CACI,cACA,cAGJ,6CACI,cACA,kBAGJ,sDACI,SAKI,gIAEI,yBAGJ,sIAEI,2BACA,uBAGJ,sIAEI,4BACA,wBAIZ,2CACI,WACA,YAIR,8BAEI,cACA,WACA,SC7CJ,kDACI,SACA,WACA,iBALK,qBAOL,8EACI,iBATK,QAUL,MAZM,KAaN,YAZY,kBAcZ,sGACI,aAQR,yEACI,oBACA,+BAGJ,8EACI,kBACA,aACA,yBZnBJ,g+BACI,YACA,cAEJ,4eACI,WabR,uCACI,gBACA,gBAEA,wEACI,kBAEA,+FACI,sBACA,kBACA,YACA,gBACA,sBACA,kBAIR,yEACI,kBACA,mBAEA,iGACI,iBAzBA,QA0BA,yBVuFR,uBACA,0BACA,kBUvFQ,UACA,cACA,YAEA,iBACA,mBACA,MTfA,KSiBA,YAGJ,6FACI,2CACA,kBACA,YACA,qBACA,WACA,YACA,iBA9CA,QA+CA,+BACA,gCX6yBJ,sDACI,sBAGR,sBACI,gBACA,SAEJ,0CACI,iBACA,oBACA,gBACA,kBACA,WAEJ,oCACI,iBACA,kBACA,mBAKR,6BACI,kBACA,YC/zBQ,oCAyBR,wBACA,4BA1BQ,2IDi0BR,cACA,uDACI,uBAEJ,uDACI,ykBACA,iCACA,4BACA,kBAIR,kBCzxBI,sBACA,kBACA,0BAtDQ,mMDg1BR,mEACI,kBAIA,iGACI,uBAGA,6CACI,aACA,YAOJ,oDACI,kBAEA,2DACI,WACA,cACA,kBACA,OACA,MACA,WACA,YAGR,uDACI,qBAOA,oEACI,cAGR,sDACI,cAoBA,6EAEI,iBA0BJ,wDACI,aACA,YAMhB,8BACI,+BACA,kBACA,uCACI,kBACA,MACA,OACA,WACA,YACA,gCACA,gDACI,aACA,gCACA,YACA,kBACA,QACA,OACA,YACA,WACA,cACA,gBACA,WAIR,uCACI,WAEJ,2CACI,kBACA,WACA,OACA,QACA,cACA,eACA,WACA,mBACA,8BACA,YAEA,qCACA,6BAEA,sDACI,eACA,gBCt0BR,0BACA,4BDw0BI,gDACI,kBAEA,uDACI,WACA,YACA,WACA,kBACA,WACA,MACA,uDAEJ,gEACI,YACA,UCv1BZ,0BACA,4BDy1BQ,oDACI,iBAEJ,gEACI,kBAEA,0EACI,iBACA,iBAEJ,sEACI,iBACA,4EACI,eACA,0BAGR,2EACI,iBAIR,4DACI,oBACA,WC92BZ,eACA,iBD+2BY,kEACI,eACA,iBACA,UAGJ,yJACI,kBACA,8BAMhB,0CACI,gBACA,YACA,WACA,aACA,kBACA,SACA,OACA,QACA,UACA,gCAEJ,gDACI,qBACA,YAEJ,wDACI,cACA,UACA,YAEJ,2DACI,cACA,SAEJ,sCACI,oCAII,0EACI,+BAEJ,iFACI,eACA,+BACA,yFACI,aAOJ,uFACI,cACA,WACA,YACA,+MACI,mBC/6BpB,eACA,eDg7BoB,2BACA,sBACA,WACA,YACA,kBACA,MACA,UACA,UAIZ,iGACI,eAGA,2HACI,eACA,UACA,yBAKhB,yCACI,aACA,YACA,WACA,kBACA,UAGR,0CACI,qBACA,SACA,gBACA,kBACA,sBACA,sBAEJ,8BACI,aACA,2FACI,2BAKJ,6CACI,kBACA,UACA,WACA,WE1pCW,QF2pCX,mDACI,ME5rCT,QF6rCS,eCv+BR,eACA,iBDw+BQ,gBACA,SAKZ,iCACI,kBAGJ,iCACI,eC/lCJ,sBACA,kBACA,0BD+lCI,sBACA,kBACA,WACA,UACA,qBACA,iBACA,eACA,mGACI,kBACA,oBAIR,kGACI,WAGJ,wEAEI,kBACA,qBACA,kNACI,WACA,SAEJ,0HACI,6BACA,oBACA,uBACA,kJACI,oBACA,qBACA,uBACA,sBAGR,kHACI,uBAEJ,kGACI,cAIR,6HAII,kBACA,qBACA,8XACI,qBACA,kBACA,WACA,kBACA,SAEJ,iOACI,6BACA,oBACA,uBACA,iRACI,oBACA,qBACA,uBACA,sBAGR,iNACI,uBAIJ,gDACI,iBAGR,2BACI,kBF/wCJ,u0BACI,YACA,cAEJ,gaACI,WchBR,yDACI,qBACA,sBACA,eACA,mEACI,edMJ,u0BACI,YACA,cAEJ,gaACI,WefJ,oFACI,0BAGA,qEACI,cCLJ,0EDSQ,sBACA,YCVR,uGDgBQ,mBACA,YACA,sBAMZ,mDACI,YAEA,qEACI,WACA,yBACA,sCAEA,iFACI,SACA,UACA,uFACI,yBAQZ,+DACI,UACA,QC9CJ,yEDgDQ,sBACA,UAKA,iGACI,YACA,sBACA,MCzDZ,wFD+DQ,mBAEA,sGACI,mBACA,YACA,WACA,oBAIZ,6EACI,gBfhER,u0BACI,YACA,cAEJ,gaACI,WiBfJ,kDACI,YACA,QDFA,yECOQ,sBACA,YDRR,yFCeQ,mBACA,YACA,sBAQJ,6EACI,WACA,UACA,UACA,iBD7BR,uFC+BY,sBACA,SAMJ,mGACI,YACA,sBACA,MACA,SD1CZ,0FCgDQ,mBACA,wGACI,sBACA,OACA,WACA,oBAOhB,6EACI,kBjBnDJ,u0BACI,YACA,cAEJ,gaACI,WkBdJ,wDACI,kBACA,wBACA,kEACI,iBACA,SACA,kBACA,QAMA,6EACI,iBf2FZ,sBACA,kBACA,0Be3FY,mFACI,ahBZC,QgBeT,0FACI,qBACA,sBAMR,iFACI,QACA,YACA,WAEJ,+EACI,WACA,kBACA,aACA,aACA,YACA,YACA,eACA,kQACI,kBACA,oRACI,kBACA,QlBpChB,u0BACI,YACA,cAEJ,gaACI,WmBfJ,yDACI,gBAMJ,8DACI,kBAIA,wDACI,UACA,4BAIA,qEACI,UACA,UHpBR,+EGuBY,OACA,WAMR,qEACI,kBACA,SACA,UACA,WACA,4BHnCR,+EGsCY,WACA,2BAIR,6FACI,uBACA,qBAKJ,uFACI,0BAIR,+DACI,WACA,SACA,UH1DJ,yEG6DQ,UAGJ,2EACI,SACA,UACA,aACA,mBACA,uBAEA,uLACI,YACA,aACA,kBAKZ,4DACI,UACA,YACA,sBACA,YACA,kBACA,MAKJ,uDACI,WnBjFR,u0BACI,YACA,cAEJ,gaACI,WoBhBR,6DACI,aACA,gCACA,0EACI,UAGA,oGACI,4BAKZ,uDjB8FI,sBACA,kBACA,0BiB9FA,qBACA,YACA,iBACA,kBACA,UACA,iBACA,eACA,6DACI,eACA,SAEJ,kEACI,kBjB2LA,eACA,iBiB1LA,UACA,QJ7BA,4EI+BI,WACA,SASZ,+CAMI,2BAJA,2DACI,aAKJ,qDACI,yBAGJ,kDACI,YACA,mBAGJ,+KACI,MhB5DD,QgB6DC,kBACA,cACA,eACA,sBACA,iMACI,cAIR,0DACI,kBACA,kBACA,YACA,eACA,WACA,YACA,gBACA,eAGJ,qHACI,sBACA,2BACA,4BACA,gBACA,+HACI,6BAGD,6JACG,UACC,cAKX,4DACI,0BACA,6BACA,gBACA,gEACI,UACA,kBAIR,6DACI,eACA,MhB7GD,QgB8GC,cAGJ,mEAOI,uBAGJ,8EACI,kBACA,oFACI,WAEJ,0FACI,UACA,QAGR,2DAEI,WACA,UACA,iBAIR,gEACI,UACA,mBpBpIA,u0BACI,YACA,cAEJ,gaACI,WqBhBR,0DACI,aACA,gCACA,uEACI,UAGA,4EACI,MAIJ,gMACI,4BAKZ,oDlByFI,sBAC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G5BmLA,eACA,e4BlLI,W/B1BR,u0BACI,YACA,cAEJ,gaACI,WgChBR,6CACI,gBACA,WACA,0BACA,yBACA,SACA,WAGJ,4CACI,kBACA,kBACA,kBACA,sBAGJ,8CACI,kBACA,qBACA,UACA,YAGJ,qFACI,mBACA,kBACA,mBAGJ,8CACI,QACA,wBACA,sBAGJ,+CACI,kBACA,MACA,OACA,YACA,yBACA,yBACA,WACA,UAGJ,wCACI,kBACA,YACA,kBACA,WACA,UAGJ,8CACI,WAGJ,2CACI,kBACA,WACA,YACA,yBACA,2BACA,4BAGJ,6CACI,kBACA,QACA,SACA,qCACA,sCACA,8BAGJ,yCACI,kBACA,MACA,UACA,YACA,+BAGJ,yCACI,WACA,iBACA,cACA,gBACA,sBACA,YAGJ,+CACI,cACA,kBACA,SACA,UAGJ,kCACI,eAGJ,wCACI,WAGJ,kFAEI,kBAIJ,4BACI,sBACA,sBAEJ,uCACI,qBAKA,mDACI,qCACA,yDACI,yCAGR,+DACI,kBACA,qBACA,UACA,YACA,eACA,+BACA,yEACI,WACA,YACA,qBACA,kBACA,QACA,OACA,6BACA,gCAEJ,yEACI,UACA,YACA,qBACA,kBACA,QACA,SACA,8BAMR,oDACI,gCACA,kBACA,MACA,OACA,WACA,YACA,YACA,UAIR,qCACI,kBACA,YACA,WACA,2CACI,kBACA,8BACA,QACA,WAEJ,6CACI,cACA,WACA,YACA,gBACA,wBACA,2BACA,mBACA,kBACA,gBACA,iBACA,eACA,yBACA,mDACI,qBAEJ,kDACI,iBACA,0BACA,yBACA,iBACA,mBACA,sBACA,kBACA,WACA,YACA,wDACI,cAOZ,qDACI,aAIR,0BACI,kBACA,gBACA,YAEA,sCACI,ahCxNJ,u0BACI,YACA,cAEJ,gaACI,WiCfJ,kDACI,yBAEJ,0DACI,+BACA,kBACA,eACA,gEACI,qBjCER,u0BACI,YACA,cAEJ,gaACI,WkChBR,oCACI,kBACA,UACA,QACA,YACA,M9BcQ,K8BbR,mBACA,oBACA,uDACA,oDACA,+CACA,YACA,uC/B0MI,eACA,iB+BzMA,gBAEJ,6CACI,iBAEJ,2CACI,kBACA,SACA,YACA,gCACA,6BACA,2BACA,4BACA,yBACA,iBACA,gBACA,WACA,YACA,mBACA,uDACA,oDACA,+CAEJ,iDACI,W9BNe,Q8BOf,kBACA,YACA,SACA,MACA,WACA,YAEJ,mDACI,iBAEJ,4CACI,gBACA,iDACI,YACA,iBACA,kBACA,wDACI,kBACA,QAKR,mEACI,sBACA,WACA,iBACA,UACA,SACA,gBACA,6BACA,yEACI,WAEJ,mJACI,yBAEJ,sEACI,UACA,mBACA,WACA,kBACA,wEACI,cACA,iBACA,yBACA,mBACA,2BACA,4BACA,8BACA,+BACA,6BACA,kBACA,cACA,qBACA,8BACA,6BACA,eACA,iBAEJ,+EACI,qCACA,M9BlFR,K8BmFQ,mBACA,eAEJ,2FACI,kBACA,mBACA,cACA,iBACA,kBACA,mBAEJ,uFACI,gBAEJ,4EACI,yBAMR,2EACI,WAEJ,uJACI,yBAEJ,wEACI,UACA,WACA,WACA,kBACA,iBACA,eACA,kBAgBA,+BAfA,8EACI,eACA,qBACA,WACA,YACA,kBACA,kBACA,QAEJ,+EACI,kBACA,SACA,qBACA,gBAGJ,8EACI,qBAEJ,+EACI,qBACA,gBACA,eAKZ,oEACI,aACA,mBACA,iBACA,gBAMZ,8BACI,0BACA,2CACI,iBACA,mBlCvKJ,u0BACI,YACA,cAEJ,gaACI,WmCjBR,kCACI,gBCDJ,+BACI,sBAEJ,8BACI,qBACA,mBACA,kBACA,gBACA,yBACA,gBpBPI,wCoBUA,kBACA,kBAGJ,wCACI,iBACA,SACA,kBACA,QpBlBA,kDoBqBI,eACA,gBACA,YpCbR,u0BACI,YACA,cAEJ,gaACI,WqCfJ,6DACI,cAGA,wFACI,mBAEJ,oFACI,gBrCER,u0BACI,YACA,cAEJ,gaACI,WsCbI,8EACI,WpCmzCR,oDACI,uBAEA,oGACI,uBAEJ,0EACI,8Bc7zCR,yDds0CQ,eAEJ,yDACI,uBACA,QAMR,8CACI,YACA,SAKJ,gDACI,uBF90CR,wVACI,YACA,cAEJ,0KACI,WuChBR,gBACI,sBACA,2BACA,0BAEI,SACA,WACA,aAEJ,4BACI,kBAEJ,2BACI,oBACA,aAEJ,+BACI,qBASA,gDACI,+BAEI,4HACI,0BAEJ,8DACI,eACA,sBACA,eACA,YACA,UAQhB,uCAII,kBACA,aACA,YpCwDJ,sBACA,kBACA,0BoCxDI,sCACA,gBARA,8CACI,YAQJ,+DACI,sBACA,0BAEJ,0DACI,kBACA,WACA,qBAEJ,+DACI,kBACA,eACA,2FACI,QACA,UAGR,mEACI,MnCzEL,QmC0EK,kBACA,SACA,WACA,epCyIJ,eACA,iBoCxII,yEACI,cAGR,oEACI,eACA,WAGR,uEAEI,cACA,eAGJ,iCACI,apCuHA,eACA,iBoCtHA,uCACI,kBACA,sBACA,gBrCgwCZ,oCACI,gBACA,eAEJ,qBACI,+BACA,2CACA,4CACI,UACA,YACA,SAOA,+NACI,0BAGR,yGACI,eACA,iKACI,0BAKZ,iDACI,gBAEI,uEACI,mBACA,mFACI,cACA,SAMJ,mFACI,iBACA,uBAOZ,gFAEI,gBAIR,cACI,qBACA,oBACA,6BACA,0BACA,uBACA,2BACA,uBACA,gCAGJ,iBACI,6BACA,gCACA,qBACA,oBAGJ,qCACI,+BACA,WAIA,wCACI,WACA,qDACI,sBAIZ,yBACI,kBAIA,kFACI,cACA,cACA,ME57CD,QF67CC,yBACA,kBACA,eACA,QACA,iBACA,cACA,kBAIJ,gCACI,kBACA,QACA,WAGR,mDACI,kBAGA,+CACI,aACA,8BACA,2BAII,sEACI,WACA,kBAOhB,wCACI,kBACA,iBAEA,4DACI,YACA,kBACA,YACA,SACA,OACA,QACA,yBACA,WAKA,gEACI,kBAIJ,sFACI,WACA,kBACA,MACA,SACA,UACA,UACA,WAn/CE,QA0/Cd,iCACI,cAEA,6CACI,cAMJ,iCACI,eACA,YAEJ,uCACI,eAMI,8CACI,YAQJ,6CACI,aACA,8BACA,yBAGJ,6CACI,QACA,mBACA,iBAEA,sDACI,iBAIR,gFACI,QACA,aAEA,uFACI,0BACA,WACA,OACA,gBACA,SACA,gBAIA,0GACI,aAGJ,oGACI,cAMR,yGACI,YAMR,qEACI,aAEA,8EACI,aAMpB,aAEI,gBACI,oBACA,wBACA,sBACA,qBACA,uBAGJ,uCACI,wBAGJ,yBACI,wBAGJ,oCACI,qBAGJ,sBACI,wBAGJ,6BACI,oBACA,qBAGJ,2BACI,uBACA,2BAEJ,oBACI,gBACA,gBACA,oBACA,uBACA,sBACA,kCACI,sCAIR,0CACI,wBAEJ,6HAKI,sBACA,iCACA,6BACA,sCAMR,sCAEI,sCC/mDQ,oCAyBR,wBACA,4BA1BQ,uGDknDA,qLACI,oBAIZ,6CCvnDQ,oCAyBR,wBACA,4BA1BQ,wGD6nDZ,sCAEI,sCC/nDQ,oCAyBR,wBACA,4BA1BQ,uGDmoDI,iFACI,UAGR,qLACI,oBAIZ,6CC5oDQ,oCAyBR,wBACA,4BA1BQ,wGqCER,qCACI,sCACA,+BAEA,sDACI,wBACA,kCACA,YACA,uEACA,gBACA,+BAEA,yDACI,kCACA,iBACA,2BACA,gCACA,gBACA,UACA,SAIZ,gDACI,kCACA,wBACA,+BACA,sDACI,0CAIR,qCACI,sCAEA,sDACI,wBACA,kCACA,YACA,uEACA,gBACA,+BAEA,yDACI,kCACA,iBACA,2BACA,gCACA,gBACA,UACA,SAGA,oEACI,wBACA,iCACA,mCACA,gBClHZ,iGACI,wBACA,oCACA,2DAEJ,6FACI,wBACA,sDAEA,mGACI,mCACA,qDAGR,yOAEI,mCACA,4CAEJ,kGACI,sEDmGJ,gDAtHJ,wBACA,iCACA,2EAEA,4DACI,mCAEA,yJAEI,wBAGJ,kEACI,mCACA,qDAGJ,mEACI,mCACA,oCAKI,0FACI,wBAKZ,6EEpBmB,ojCFgHvB,qCACI,wBACA,0BAGI,6DACI,kBACA,+BAEA,yJACI,YACA,WAIZ,4DACI,gBACA,kEACA,iDACA,wBACA,iBACA,6EACI,gBACA,kCAGR,kEACI,kCACA,wCAEA,2EACI,sEAIQ,mHACI,YAKhB,4EACI,+BACA,qEAEA,uLG5HZ,uEACA,oCACA,oDACA,iBAEA,0ZACI,oCACA,0DHwHQ,oFACI,cACA,kBG9KhB,iCACA,eAIA,2BACA,6CACA,iBACA,yBACA,mBAWA,iCACA,4BACA,+BAuBA,uEACA,oCACA,oDACA,iBAEA,8LACI,oCACA,0DHgIY,2FACI,iBACA,kBACA,Q/BnKL,Y+BuKH,iKACI,2BACA,+BACA,mBACA,gCACA,SACA,UAEA,wXACI,sBAGR,mjDIxLZ,0DACA,gBACA,2BACA,2BACA,+BACA,yBACA,eArBA,m0GACI,gBACA,iEACA,2EACA,aAKJ,gxDACI,0CAeJ,soKACI,kCACA,4CACA,gDACA,qBJ8LY,2OACI,kDACA,yCAKA,oHACI,UAEA,6IACI,kBACA,SAEJ,wHACI,2BACA,+BACA,gCACA,+BAGA,2hBACI,8BACA,kCACA,kCAIZ,oHACI,aAEA,2HACI,cAGA,mIACI,mBAKhB,sQAEI,UAnNpB,0BACA,2BACA,gCACA,kBAVA,kRACI,wBACA,0CA6NgB,4HACI,8CACA,MACA,QAIJ,0IACI,gEAGA,oKACI,YAKR,yQACI,qBAjPxB,qRACI,wBACA,0CAkPoB,glBACI,+BACA,SA/O5B,0BACA,2BACA,gCACA,kBAiPgB,6HACI,qBACA,kBAEA,8IACI,uCAEJ,6IACI,kBA5PxB,0BACA,2BACA,gCACA,kBA2PwB,sCACA,MACA,QAGR,gHACI,wBACA,iCACA,gEACA,gBACA,gBACA,WACA,gCACA,UAEA,qIACI,kCACA,mBACA,2BACA,gCACA,UACA,SACA,wBACA,gDAEA,6IACI,wBACA,0BACA,2BACA,aE1UT,iXFwCnB,mJACI,wBACA,0CAsSY,8GACI,cAEJ,kHACI,WAEA,+HACI,SAGR,oPACI,cAGA,0IACI,kBAEA,qSACI,6CACA,0BAGR,8HACI,SACA,WAEJ,iIA3TpB,0BACA,2BACA,gCACA,kBAfA,wBACA,iCA0UwB,UACA,UACA,QACA,QAzUxB,uIACI,wBACA,0CAyUoB,sIACI,yBACA,QACA,UAKR,8HACI,0DACA,2BACA,+BACA,gCACA,2BACA,+BACA,yBACA,aACA,mBACA,kBAEA,sIACI,YACA,gBAEA,+IACI,QAEJ,+JACI,qBACA,aACA,sBACA,SAGR,uIACI,kBACA,MAxW5B,0BACA,2BACA,gCACA,kBAfA,wBACA,iCAIA,6IACI,wBACA,0CAkXwB,gJACI,QAEJ,iJACI,0BAGR,gJACI,yCACA,2BACA,SAEA,sJACI,SAKA,sLACI,kDACA,yCAOhB,+OACI,kBAEJ,yHACI,+BACA,iBAEJ,6IACI,gBACA,gEACA,aACA,kCAEA,gKACI,+BACA,gCACA,2BACA,+BACA,0BACA,UAEJ,qKACI,qBACA,yBAGA,4KACI,UAGR,gMACI,SAGR,iJA1apB,0BACA,2BACA,gCACA,kBAfA,wBACA,iCAIA,uJACI,wBACA,0CAoboB,wJEtdD,ojCF2dC,mJACI,qBACA,YAEJ,8IACI,gBASxB,mDACI,uEAEA,sDACI,kCACA,iBACA,wBACA,kCACA,2BACA,gCACA,cACA,SAEA,2DACI,iBACA,oCACA,QACA,UAEJ,oEACI,YACA,MAGR,0DACI,SAEA,mFACI,wBACA,+BAMZ,0DACI,SACA,UAEA,6DACI,kCACA,YACA,kCACA,2BACA,gCACA,cAEA,mEACI,0CACA,YAEJ,kEACI,aACA,oCACA,UAEJ,sEACI,gBACA,aAEJ,sEACI,qDAEA,4EACI,0CACA,YAGR,iEACI,yBACA,0CAEA,uEACI,0CACA,YAMZ,4EACI,cACA,iBAEA,uFACI,YAEJ,6FACI,sCACA,kCACA,gEAOR,4HACI,yBACA,mCACA,oDACA,kCACA,aAEA,8IACI,kCAEJ,8IACI,gCAGA,kNACI,8CAEA,8NACI,wEAEA,oTACI,8CAIZ,sPIhmBhB,0DACA,gBACA,2BACA,2BACA,+BACA,yBACA,eJ4lBoB,wBACA,kCACA,YInnBpB,sgBACI,gBACA,iEACA,2EACA,aAKJ,gRACI,0CAeJ,4xBACI,kCACA,4CACA,gDACA,qBJylBQ,kJACI,kCAGI,4VACI,wEAEJ,oMI9mBpB,0DACA,gBACA,2BACA,2BACA,+BACA,yBACA,eJ0mBwB,oCACA,iBACA,WIjoBxB,kaACI,gBACA,iEACA,2EACA,aAKJ,8NACI,0CAeJ,soBACI,kCACA,4CACA,gDACA,qBJwmBQ,sJACI,qBACA,SACA,WAEA,8KACI,MAEA,4LACI,oBAIJ,wMACI,YAOxB,oCACI,gEACA,gBACA,aAKY,sPACI,gCAEJ,wQACI,uDACA,gBAIJ,0aACI,qDACA,gDAOQ,oIACI,2EAIJ,0IACI,kEACA,gBAKR,2HACI,2EAEJ,iIACI,kEACA,gBAEA,6IACI,gEAOhB,0GACI,gCAEJ,gHACI,uDACA,gBAKhB,gDACI,sBACA,gEACA,kCACA,8BAGI,0EAEI,gEAIJ,oFACI,aACA,sBACA,UACA,qCAEA,iGACI,gBACA,QAEJ,qGACI,8BACA,iBACA,QAEJ,+FACI,QACA,oBACA,cAKR,8JACI,uDAEA,4KACI,WACA,kBACA,OACA,4DACA,WACA,yDAEJ,wNACI,UAEA,kPACI,gBAEJ,8PACI,sBAGR,kNACI,UAEA,geACI,WACA,eIxwBxB,0DACA,gBACA,2BACA,2BACA,+BACA,yBACA,eArBA,o/BACI,gBACA,iEACA,2EACA,aAKJ,ohBACI,0CAeJ,ohDACI,kCACA,4CACA,gDACA,qBJiwBgB,4NACI,yBACA,0CACA,+DACA,mCAtvBxB,wOACI,wBACA,0CA0vBgB,4OACI,gBAEA,sRACI,UACA,mBACA,YAKR,wtBA5wBpB,wBACA,iCA8wBwB,YA1wBxB,4vBACI,wBACA,0CA0wBgB,8PE5yBG,ojCFmzBK,wRACI,YAQZ,0OACI,aAKhB,uTACI,UACA,gBAEA,mXACI,UAEA,sZACI,aAOA,gLACI,WAKhB,wOAGI,iCACA,gCAEA,+QACI,MAKA,4HACI,qBACA,wEGp0BpB,uEACA,oCACA,oDACA,iBAEA,8QACI,oCACA,0DHk0BI,mFG3tBR,8DACA,4BACA,qBACA,8CAEA,4LACI,mCACA,mDHutBI,+HG50BR,uEACA,oCACA,oDACA,iBAEA,0SACI,oCACA,0DHw0BI,2DGn0BR,YACA,uCACA,uDACA,iBHk0BY,kBGh0BZ,4IACI,uCACA,6DHg0BI,6DACI,wBACA,yBACA,iBACA,gBACA,4DACA,YAEA,wEACI,0CACA,iBACA,SACA,UACA,2BACA,gCAGJ,kEACI,aACA,2BACA,8BAEA,yEACI,aAEJ,kFACI,4CAEJ,sEACI,SAEJ,kFACI,2BACA,gCACA,aACA,QACA,SACA,WAEA,oLACI,kCACA,iBACA,cAEA,gMACI,0CACA,qBAGR,4FACI,2DAEJ,wFACI,sDAEJ,6FACI,aAGR,8EACI,iCACA,UACA,0BACA,2BACA,gCACA,kBACA,UACA,WAv5BpB,oFACI,wBACA,0CAw5BgB,6LACI,kCACA,iBACA,gCAEJ,+FEh8BH,ojCFs8BT,qEA/8BR,wBACA,iCACA,2EAEA,iFACI,mCAEA,mMAEI,wBAGJ,uFACI,mCACA,qDAGJ,wFACI,mCACA,oCAKI,+GACI,wBAKZ,kGEpBmB,ojCF08Bf,oFACI,wBACA,gDACA,gFACA,mCACA,cAEA,0FACI,mCACA,qDACA,2EAMJ,+JACI,yDACA,YACA,mBACA,kBAGA,uFACI,UAIJ,uFACI,MACA,OxBl/BhB,kMwBq/BoB,QACA,UAIZ,8EACI,SAKhB,qDACI,yHACA,mFAIR,sCAMoB,mGACI,iCACA,aACA,sBACA,mBACA,UACA,mCACA,YAEA,wGACI,qCAMJ,yIACI,iBAGJ,0IACI","file":"item-creator.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../../../tao/views/node_modules/@oat-sa/tao-core-ui/scss/inc/_variables.scss","../../../tao/views/scss/inc/_farbtastic.scss","../scss/item-creator.scss","../../../tao/views/node_modules/@oat-sa/tao-core-ui/scss/inc/_functions.scss","../../../tao/views/node_modules/@oat-sa/tao-core-ui/scss/inc/_colors.scss","../scss/qtiCreator/_outcome-editor.scss","../scss/qtiCreator/_interaction-sidebar.scss","../scss/qtiCreator/_math-input.scss","../scss/qtiCreator/_media-sidebar.scss","../../../tao/views/scss/inc/fonts/_tao-icon-vars.scss","../scss/qtiCreator/_editor-bar.scss","../scss/qtiCreator/_table.scss","../scss/qtiCreator/_widget-popup.scss","../scss/qtiCreator/_tooltip.scss","../scss/qtiCreator/_object.scss","../scss/qtiCreator/_choice.scss","../scss/shared/_functions.scss","../scss/qtiCreator/_order.scss","../scss/qtiCreator/_associate.scss","../scss/qtiCreator/_match.scss","../scss/qtiCreator/_inline-choice.scss","../scss/qtiCreator/_text-entry.scss","../scss/qtiCreator/_end-attempt.scss","../scss/qtiCreator/_extended-text.scss","../scss/qtiCreator/_response-pairs.scss","../scss/qtiCreator/_gap-match.scss","../scss/qtiCreator/_hottext.scss","../scss/qtiCreator/_rubric-block.scss","../scss/qtiCreator/_math.scss","../scss/qtiCreator/_mapping-editor.scss","../scss/qtiCreator/_graphic.scss","../scss/qtiCreator/_graphic-gap.scss","../scss/qtiCreator/_grid-editor.scss","../scss/qtiCreator/_custom.scss","../scss/qtiCreator/_element-selector.scss","../scss/qtiCreator/_include.scss","../scss/qtiCreator/_item_buttons.scss","../scss/qtiCreator/_figure.scss","../scss/qtiCreator/_media.scss","../scss/qtiCreator/_modal-feedback.scss","../scss/inc/solar/_creator.scss","../../../tao/views/scss/inc/solar/mixins/_toolbars.scss","../../../tao/views/scss/inc/solar/mixins/_icons.scss","../../../tao/views/scss/inc/solar/mixins/_buttons.scss","../../../tao/views/scss/inc/solar/mixins/_forms.scss"],"names":[],"mappings":"CAaI,wVACI,YACA,cAEJ,0KACI,WCGR,YACI,kBACA,YACA,aACA,gBACA,wCACI,oBACA,qBACA,sBACA,uBAEJ,mBACI,qzeACA,qBACA,WACA,YAEJ,qBACI,6pFACA,qBAEJ,oBACI,sBACA,uBACA,2CACA,gBACA,itBACA,qBAEJ,cACI,kBACA,iBC1BR,iDACI,sBACA,eACA,eACA,kBACA,kBACA,mBACA,wCACA,gCAGJ,mCACI,gBAGJ,8xBACI,eACA,yBAIJ,itBACI,eACA,UACA,yBACA,2CACA,mCAGJ,+FACI,aACA,kBACA,MACA,QACA,UACA,kBACA,gBCsJI,0BACA,4BDpJJ,oCACA,qBACA,0BACA,gBACA,iBA7DgB,QA+DhB,iSCiJI,eACA,iBDhJA,kBACA,QACA,MEzED,QF4EH,qJACI,iBE7ED,QF8EC,6YACI,MAzEQ,QA8EZ,2MACI,iBA/EQ,QAgFR,yfACI,cAKZ,mIACI,WACA,YACA,kBACA,kBACA,eACA,SACA,qBACA,yBACA,yWACI,0BACA,kBACA,QACA,SACA,gCACA,6BAEJ,qJACI,yBAEJ,wJACI,yBAEJ,wJACI,OACA,YACA,sBACA,kBACA,QACA,YACA,gBAEJ,2MACI,aAEJ,qMACI,oCACA,YACA,8MACI,aACA,oCACA,YACA,UACA,WACA,6NACI,MEtHR,KFuHQ,4BAEJ,mOACI,qBAOpB,8IACI,MErJG,QFsJH,qCACA,qBACA,0BACA,kBACA,iBArJgB,QAsJhB,8VC2DI,eACA,iBD1DA,kBACA,QACA,SACA,MEhKD,QFiKC,iBAEJ,0JACI,WAKJ,wBACI,kBACA,gBACA,mBACA,iBACA,MEjKI,QFkKJ,YAEJ,sBACI,iBACA,WAKJ,+BACI,aAIR,wBACI,aAEJ,iBACI,2BACA,yCACI,eAGR,mBACI,yBACA,kCACI,WACA,UC9II,mDALA,4SDsJJ,gDACI,YACA,kBAEJ,6CC1JI,oCAyBR,wBACA,4BA1BQ,uGD4JA,4BAEJ,8CC9JI,oCAyBR,wBACA,4BA1BQ,uGDgKA,2BAEJ,wCClKI,oCAyBR,wBACA,4BA1BQ,2IDwKZ,iBACI,2BACA,yCACI,eAEJ,oCACI,YAIR,qBACI,SACA,kBACA,iBAlOwB,QAmOxB,YCjLQ,mDALA,4SDyLR,uCACI,kBACA,6GACI,YAUJ,8QACI,YAMR,+BACI,uBACA,sBAMR,2BACI,aFlQA,wVACI,YACA,cAEJ,0KACI,WKdA,6JACI,eAEJ,iFACI,MDNL,QCOK,YACA,YACA,gBACA,eACA,uFACI,cAEJ,wFACI,cAIJ,0FACI,yBACA,mBAGR,0FF8LA,iBACA,kBE7LI,qBACA,SACA,wBACA,gBACA,uBACA,2GACI,eACA,aACA,kBAGR,2EACI,cAEJ,iGACI,aAGA,+FACI,eACA,wGACI,qBACA,gBACA,YAGR,mHACI,aACA,gIACI,sBAKR,2FACI,iBACA,MD9DT,QC+DS,iGACI,cAGR,yGACI,cAEJ,kGACI,mBACA,6GACI,aAEJ,mHACI,qBLjEhB,wVACI,YACA,cAEJ,0KACI,WMdJ,0DACI,WACA,YACA,cACA,oBACA,WAIA,0DACI,kBACA,yBACA,mBACA,qEACI,kBACA,UAEJ,2EACI,kBACA,OACA,SACA,UACA,YACA,iDACA,UACA,yBHsFZ,uBACA,0BACA,kBGtFY,UACA,0BACA,oFACI,WAIR,mKACI,YACA,SACA,2BACA,YACA,SACA,QACA,kBACA,oBAGJ,iFACI,2BACA,4BACA,iBACA,iBAGJ,kFACI,2BACA,oBF1CA,QE2CA,iBACA,iBAKZ,wCACI,gBACA,aACA,eAEA,2CACI,WACA,SACA,gBH+IJ,eACA,iBG9II,gCACA,YACA,aACA,mBACA,iDACI,gCACA,uBAEJ,gDACI,cACA,WHmIR,eACA,iBGlIQ,WAEJ,sDACI,qBAEJ,oDACG,gBACA,WAEH,oDACI,eACA,iCACA,0DACI,gCACA,gCAGR,+CACI,mBACA,MFxGT,QEyGS,qDACI,gCN/FhB,wVACI,YACA,cAEJ,0KACI,WOdJ,qCACI,aAIA,uDACI,WACA,eACA,YAIJ,iDACI,aACA,sBAGI,2FACI,WACA,+BACA,kBACA,mBACA,kBAEA,sGACI,eACA,gBACA,kBAGJ,4GACI,WAKZ,kEACI,WACA,OACA,gBAEA,wFACI,WACA,YAEA,aHnBK,KGoBL,gBPrChB,wVACI,YACA,cAEJ,0KACI,WQbI,kEACI,yBNiRhB,6BACI,WEhOK,QFiOL,oBChOQ,oCAyBR,wBACA,4BA1BQ,uGDmOR,gBACA,kBAGI,2DACI,4BAIJ,4DACI,2BAEJ,gDACI,gBAQJ,oCCzFA,eACA,iBD0FI,0BACA,mBACA,iBACA,cACA,sBACA,WACA,eACA,WACA,kBACA,WA/SoB,QAgTpB,eACA,+CACI,aAEJ,6CACI,cAGA,sDACI,cAEJ,oDACI,aAGR,yCACI,kBACA,QACA,UAEJ,kDACI,YACA,MAGR,oCACI,uBAGJ,wCACI,yBACA,+CACI,UACA,mBAEJ,2CACI,mBAEJ,2CACI,mBACA,SC7IR,eACA,iBD8IQ,gBACA,qBACA,sDACI,eACA,cAGR,yJACI,WACA,oLACI,YACA,gBACA,gBAIR,qDACI,WACA,gBAEJ,iEACI,eACA,YAEJ,sGACI,kBAEJ,8CACI,UC3KR,eACA,iBD4KQ,uDACI,YACA,gBACA,gBACA,qBAIR,oDACI,WACA,eAEJ,qDACI,WACA,eAII,2EACI,iBAIZ,iDC/SR,sBACA,kBACA,0BD+SY,sCACA,YACA,aCxMR,eACA,iBD0MI,iEACI,MElaT,QFoaK,uDACI,iBACA,gEACI,eAMhB,4BACI,gBACA,iBAEJ,iCACI,WACA,OAKA,yCACI,YACA,gBACA,gBAEJ,gDACI,kBACA,QACA,UACA,YACA,UACA,YACA,WACA,iBACA,eACA,sDACI,MEvaK,QF4ajB,iDACI,kBACA,eACA,uDACI,mBAEJ,iEACI,WACA,iBACA,YACA,cCtWR,uBACA,0BACA,kBD0WI,4DACI,aAIR,gCACI,WAEI,mGAEI,YAIZ,8BACI,gBACA,iBACA,6CACI,QAEJ,oCACI,mBAGR,6CACI,eAEJ,wCACI,0BAEJ,uCACI,SAGJ,oDACI,gBACA,gBACA,cACA,YACA,WACA,sDACI,mBACA,eACA,MErfA,KFsfA,gCACA,WACA,iBACA,gBACA,mEACI,iBAGR,kEC3TA,eACA,iBD6TA,iEC9TA,eACA,iBDoUA,+DCrUA,eACA,iBA5GJ,sBACA,kBACA,0BDibQ,qBACA,WACA,YACA,sBACA,0BACA,mBAEI,+EOriBd,6BACA,YACA,kBACA,mBACA,oBACA,oBACA,cAGA,mCACA,kCAmHsB,YP8ahB,oEACI,aACA,YACA,gBACA,gBCzVJ,eACA,iBD0VI,kBACA,QAEJ,6GACI,YACA,eACA,gBACA,kBACA,QAEJ,oHACI,cACA,0BAGJ,sDACI,qBACA,eACA,YACA,eACA,kBC/WJ,eACA,iBDgXI,QACA,4DACI,MExiBK,QF6iBjB,0CACI,WAIA,8DACI,WACA,qBACA,YACA,YACA,cACA,eCxeR,uBACA,0BACA,kBARA,sBACA,kBACA,0BDgfI,6DCvYA,eACA,iBDwYI,QAEJ,uEACI,WACA,6EACI,yBAGR,6DACI,gBAIR,8BACI,kBACA,YACA,YACA,mCACI,cC3ZJ,eACA,iBD4ZI,gBACA,UACA,WE1lBS,KF2lBT,kBACA,eACA,uBACA,yCACI,WEzlBK,QF0lBL,MEvmBA,KFymBJ,wFACI,YAEJ,6CACI,WAEJ,8CACI,YAShB,eACI,WExlBK,QFylBL,YACA,kBACA,YACA,SACA,YC5lBQ,gKD8lBR,aACA,cACA,sCACI,gBACA,6CACI,4BACA,6BAGR,oCACI,ME3oBQ,KF4oBR,mBACA,kBACA,YACA,sCACI,MEhpBI,KFkpBR,4CACI,kBACA,QACA,UAEJ,uCACI,yBAGR,6CACI,WACA,eACA,cAEJ,+BACI,YAEJ,yBACI,YAEJ,mBACI,YAEJ,+BACI,YAEJ,yBACI,YAEJ,qBACI,YAEJ,iCACI,YAEJ,2BACI,YAGA,4BACI,aACA,YF1sBI,yME4sBR,+BACI,aACA,YF9sBI,yMEktBR,8BACI,aACA,YFptBI,yMEutBZ,sCACI,QAMR,sCACI,m3DAGJ,mBACI,yBACA,+BACA,kBACA,iBACA,mBACA,UACA,YAGI,sDACI,sBAIR,sBACI,gBACA,SAGJ,oCACI,kBACA,MACA,OACA,WACA,gBACA,YACA,WAvvBwB,QAwvBxB,0BACA,gBC7sBI,6MDgtBJ,uCACI,kBACA,WACA,kBCpjBJ,eACA,iBDqjBI,iBACA,eACA,SAIR,iDACI,kBACA,YC7tBI,oCAyBR,wBACA,4BA1BQ,2ID+tBJ,cAEA,2EACI,uBAEJ,2EACI,kBAGR,gCCxuBQ,mMD0uBJ,iBACA,YAGR,8BACI,WE3wBiB,KF4wBjB,MAvxBsB,QAwxBtB,yBACA,kBACA,MArxBuB,KAsxBvB,OAtxBuB,KAuxBvB,YAvxBuB,KCiMnB,eACA,eDulBJ,kBACA,kBACA,QACA,YACA,WACA,eACA,iBAEA,oCACI,WE/wBc,QFkxBlB,mCACI,kBACA,SAKJ,kDACI,gBAGA,+EACI,gBACA,uBAEJ,+EACI,yBAKZ,mBAOI,UACA,kBACA,gBACA,YClyBQ,oCAyBR,wBACA,4BA1BQ,2IH5CR,g+BACI,YACA,cAEJ,4eACI,WUhBR,oCACI,kBACA,WACA,gBACA,YACA,WRM4B,QQL5B,0BACA,gBPgDQ,6MO9CR,uCACI,kBACA,WACA,kBP0MA,eACA,iBOzMA,iBACA,eACA,SAGA,kDACI,YACA,gBACA,UACA,SACA,WACA,WRdoB,QQepB,iBAEI,qMACI,oCACA,sBACA,eAEJ,2JACI,YACA,eACA,iBAEJ,8EACI,yBACA,YAEJ,gFACI,+BACA,QACA,kBACA,eAEJ,0EACI,YACA,gBACA,0FACI,YACA,iBACA,gBAEJ,0FACI,YACA,2GACI,eAOxB,sDACI,qBACA,yBACA,gBACA,YACA,gBACA,kBV7DJ,g+BACI,YACA,cAEJ,4eACI,WWhBR,iCACI,cACA,kBAEA,8CACI,cACA,cAGJ,6CACI,cACA,kBAGJ,sDACI,SAKI,gIAEI,yBAGJ,sIAEI,2BACA,uBAGJ,sIAEI,4BACA,wBAIZ,2CACI,WACA,YAIR,8BAEI,cACA,WACA,SC7CJ,kDACI,SACA,WACA,iBALK,qBAOL,8EACI,iBATK,QAUL,MAZM,KAaN,YAZY,kBAcZ,sGACI,aAQR,yEACI,oBACA,+BAGJ,8EACI,kBACA,aACA,yBZnBJ,g+BACI,YACA,cAEJ,4eACI,WabR,uCACI,gBACA,gBAEA,wEACI,kBAEA,+FACI,sBACA,kBACA,YACA,gBACA,sBACA,kBAIR,yEACI,kBACA,mBAEA,iGACI,iBAzBA,QA0BA,yBVuFR,uBACA,0BACA,kBUvFQ,UACA,cACA,YAEA,iBACA,mBACA,MTfA,KSiBA,YAGJ,6FACI,2CACA,kBACA,YACA,qBACA,WACA,YACA,iBA9CA,QA+CA,+BACA,gCX6yBJ,sDACI,sBAGR,sBACI,gBACA,SAEJ,0CACI,iBACA,oBACA,gBACA,kBACA,WAEJ,oCACI,iBACA,kBACA,mBAKR,6BACI,kBACA,YC/zBQ,oCAyBR,wBACA,4BA1BQ,2IDi0BR,cACA,uDACI,uBAEJ,uDACI,ykBACA,iCACA,4BACA,kBAIR,kBCzxBI,sBACA,kBACA,0BAtDQ,mMDg1BR,mEACI,kBAIA,iGACI,uBAGA,6CACI,aACA,YAOJ,oDACI,kBAEA,2DACI,WACA,cACA,kBACA,OACA,MACA,WACA,YAGR,uDACI,qBAOA,oEACI,cAGR,sDACI,cAoBA,6EAEI,iBA0BJ,wDACI,aACA,YAMhB,8BACI,+BACA,kBACA,uCACI,kBACA,MACA,OACA,WACA,YACA,gCACA,gDACI,aACA,gCACA,YACA,kBACA,QACA,OACA,YACA,WACA,cACA,gBACA,WAIR,uCACI,WAEJ,2CACI,kBACA,WACA,OACA,QACA,cACA,eACA,WACA,mBACA,8BACA,YAEA,qCACA,6BAEA,sDACI,eACA,gBCt0BR,0BACA,4BDw0BI,gDACI,kBAEA,uDACI,WACA,YACA,WACA,kBACA,WACA,MACA,uDAEJ,gEACI,YACA,UCv1BZ,0BACA,4BDy1BQ,oDACI,iBAEJ,gEACI,kBAEA,0EACI,iBACA,iBAEJ,sEACI,iBACA,4EACI,eACA,0BAGR,2EACI,iBAIR,4DACI,oBACA,WC92BZ,eACA,iBD+2BY,kEACI,eACA,iBACA,UAGJ,yJACI,kBACA,8BAMhB,0CACI,gBACA,YACA,WACA,aACA,kBACA,SACA,OACA,QACA,UACA,gCAEJ,gDACI,qBACA,YAEJ,wDACI,cACA,UACA,YAEJ,2DACI,cACA,SAEJ,sCACI,oCAII,0EACI,+BAEJ,iFACI,eACA,+BACA,yFACI,aAOJ,uFACI,cACA,WACA,YACA,+MACI,mBC/6BpB,eACA,eDg7BoB,2BACA,sBACA,WACA,YACA,kBACA,MACA,UACA,UAIZ,iGACI,eAGA,2HACI,eACA,UACA,yBAKhB,yCACI,aACA,YACA,WACA,kBACA,UAGR,0CACI,qBACA,SACA,gBACA,kBACA,sBACA,sBAEJ,8BACI,aACA,2FACI,2BAKJ,6CACI,kBACA,UACA,WACA,WE1pCW,QF2pCX,mDACI,ME5rCT,QF6rCS,eCv+BR,eACA,iBDw+BQ,gBACA,SAKZ,iCACI,kBAGJ,iCACI,eC/lCJ,sBACA,kBACA,0BD+lCI,sBACA,kBACA,WACA,UACA,qBACA,iBACA,eACA,mGACI,kBACA,oBAIR,kGACI,WAGJ,wEAEI,kBACA,qBACA,kNACI,WACA,SAEJ,0HACI,6BACA,oBACA,uBACA,kJACI,oBACA,qBACA,uBACA,sBAGR,kHACI,uBAEJ,kGACI,cAIR,6HAII,kBACA,qBACA,8XACI,qBACA,kBACA,WACA,kBACA,SAEJ,iOACI,6BACA,oBACA,uBACA,iRACI,oBACA,qBACA,uBACA,sBAGR,iNACI,uBAIJ,gDACI,iBAGR,2BACI,kBF/wCJ,u0BACI,YACA,cAEJ,gaACI,WchBR,yDACI,qBACA,sBACA,eACA,mEACI,edMJ,u0BACI,YACA,cAEJ,gaACI,WefJ,oFACI,0BAGA,qEACI,cCLJ,0EDSQ,sBACA,YCVR,uGDgBQ,mBACA,YACA,sBAMZ,mDACI,YAEA,qEACI,WACA,yBACA,sCAEA,iFACI,SACA,UACA,uFACI,yBAQZ,+DACI,UACA,QC9CJ,yEDgDQ,sBACA,UAKA,iGACI,YACA,sBACA,MCzDZ,wFD+DQ,mBAEA,sGACI,mBACA,YACA,WACA,oBAIZ,6EACI,gBfhER,u0BACI,YACA,cAEJ,gaACI,WiBfJ,kDACI,YACA,QDFA,yECOQ,sBACA,YDRR,yFCeQ,mBACA,YACA,sBAQJ,6EACI,WACA,UACA,UACA,iBD7BR,uFC+BY,sBACA,SAMJ,mGACI,YACA,sBACA,MACA,SD1CZ,0FCgDQ,mBACA,wGACI,sBACA,OACA,WACA,oBAOhB,6EACI,kBjBnDJ,u0BACI,YACA,cAEJ,gaACI,WkBdJ,wDACI,kBACA,wBACA,kEACI,iBACA,SACA,kBACA,QAMA,6EACI,iBf2FZ,sBACA,kBACA,0Be3FY,mFACI,ahBZC,QgBeT,0FACI,qBACA,sBAMR,iFACI,QACA,YACA,WAEJ,+EACI,WACA,kBACA,aACA,aACA,YACA,YACA,eACA,kQACI,kBACA,oRACI,kBACA,QlBpChB,u0BACI,YACA,cAEJ,gaACI,WmBfJ,yDACI,gBAMJ,8DACI,kBAIA,wDACI,UACA,4BAIA,qEACI,UACA,UHpBR,+EGuBY,OACA,WAMR,qEACI,kBACA,SACA,UACA,WACA,4BHnCR,+EGsCY,WACA,2BAIR,6FACI,uBACA,qBAKJ,uFACI,0BAIR,+DACI,WACA,SACA,UH1DJ,yEG6DQ,UAGJ,2EACI,SACA,UACA,aACA,mBACA,uBAEA,uLACI,YACA,aACA,kBAKZ,4DACI,UACA,YACA,sBACA,YACA,kBACA,MAKJ,uDACI,WnBjFR,u0BACI,YACA,cAEJ,gaACI,WoBhBR,6DACI,aACA,gCACA,0EACI,UAGA,oGACI,4BAKZ,uDjB8FI,sBACA,kBACA,0BiB9FA,qBACA,YACA,iBACA,kBACA,UACA,iBACA,eACA,6DACI,eACA,SAEJ,kEACI,kBjB2LA,eACA,iBiB1LA,UACA,QJ7BA,4EI+BI,WACA,SASZ,+CAMI,2BAJA,2DACI,aAKJ,qDACI,yBAGJ,kDACI,YACA,mBAGJ,+KACI,MhB5DD,QgB6DC,kBACA,cACA,eACA,sBACA,iMACI,cAIR,0DACI,kBACA,kBACA,YACA,eACA,WACA,YACA,gBACA,eAGJ,qHACI,sBACA,2BACA,4BACA,gBACA,+HACI,6BAGD,6JACG,UACC,cAKX,4DACI,0BACA,6BACA,gBACA,gEACI,UACA,kBAIR,6DACI,eACA,MhB7GD,QgB8GC,cAGJ,mEAOI,uBAGJ,8EACI,kBACA,oFACI,WAEJ,0FACI,UACA,QAGR,2DAEI,WACA,UACA,iBAIR,gEACI,UACA,mBpBpIA,u0BACI,YACA,cAEJ,gaACI,WqBhBR,0DACI,aACA,gCACA,uEACI,UAGA,4EACI,MAIJ,gMACI,4BAKZ,oDlByFI,sBAC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G5BmLA,eACA,e4BlLI,W/B1BR,u0BACI,YACA,cAEJ,gaACI,WgChBR,6CACI,gBACA,WACA,0BACA,yBACA,SACA,WAGJ,4CACI,kBACA,kBACA,kBACA,sBAGJ,8CACI,kBACA,qBACA,UACA,YAGJ,qFACI,mBACA,kBACA,mBAGJ,8CACI,QACA,wBACA,sBAGJ,+CACI,kBACA,MACA,OACA,YACA,yBACA,yBACA,WACA,UAGJ,wCACI,kBACA,YACA,kBACA,WACA,UAGJ,8CACI,WAGJ,2CACI,kBACA,WACA,YACA,yBACA,2BACA,4BAGJ,6CACI,kBACA,QACA,SACA,qCACA,sCACA,8BAGJ,yCACI,kBACA,MACA,UACA,YACA,+BAGJ,yCACI,WACA,iBACA,cACA,gBACA,sBACA,YAGJ,+CACI,cACA,kBACA,SACA,UAGJ,kCACI,eAGJ,wCACI,WAGJ,kFAEI,kBAIJ,4BACI,sBACA,sBAEJ,uCACI,qBAKA,mDACI,qCACA,yDACI,yCAGR,+DACI,kBACA,qBACA,UACA,YACA,eACA,+BACA,yEACI,WACA,YACA,qBACA,kBACA,QACA,OACA,6BACA,gCAEJ,yEACI,UACA,YACA,qBACA,kBACA,QACA,SACA,8BAMR,oDACI,gCACA,kBACA,MACA,OACA,WACA,YACA,YACA,UAIR,qCACI,kBACA,YACA,WACA,2CACI,kBACA,8BACA,QACA,WAEJ,6CACI,cACA,WACA,YACA,gBACA,wBACA,2BACA,mBACA,kBACA,gBACA,iBACA,eACA,yBACA,mDACI,qBAEJ,kDACI,iBACA,0BACA,yBACA,iBACA,mBACA,sBACA,kBACA,WACA,YACA,wDACI,cAOZ,qDACI,aAIR,0BACI,kBACA,gBACA,YAEA,sCACI,ahCxNJ,u0BACI,YACA,cAEJ,gaACI,WiCfJ,kDACI,yBAEJ,0DACI,+BACA,kBACA,eACA,gEACI,qBjCER,u0BACI,YACA,cAEJ,gaACI,WkChBR,oCACI,kBACA,UACA,QACA,YACA,M9BcQ,K8BbR,mBACA,oBACA,uDACA,oDACA,+CACA,YACA,uC/B0MI,eACA,iB+BzMA,gBAEJ,6CACI,iBAEJ,2CACI,kBACA,SACA,YACA,gCACA,6BACA,2BACA,4BACA,yBACA,iBACA,gBACA,WACA,YACA,mBACA,uDACA,oDACA,+CAEJ,iDACI,W9BNe,Q8BOf,kBACA,YACA,SACA,MACA,WACA,YAEJ,mDACI,iBAEJ,4CACI,gBACA,iDACI,YACA,iBACA,kBACA,wDACI,kBACA,QAKR,mEACI,sBACA,WACA,iBACA,UACA,SACA,gBACA,6BACA,yEACI,WAEJ,mJACI,yBAEJ,sEACI,UACA,mBACA,WACA,kBACA,wEACI,cACA,iBACA,yBACA,mBACA,2BACA,4BACA,8BACA,+BACA,6BACA,kBACA,cACA,qBACA,8BACA,6BACA,eACA,iBAEJ,+EACI,qCACA,M9BlFR,K8BmFQ,mBACA,eAEJ,2FACI,kBACA,mBACA,cACA,iBACA,kBACA,mBAEJ,uFACI,gBAEJ,4EACI,yBAMR,2EACI,WAEJ,uJACI,yBAEJ,wEACI,UACA,WACA,WACA,kBACA,iBACA,eACA,kBAgBA,+BAfA,8EACI,eACA,qBACA,WACA,YACA,kBACA,kBACA,QAEJ,+EACI,kBACA,SACA,qBACA,gBAGJ,8EACI,qBAEJ,+EACI,qBACA,gBACA,eAKZ,oEACI,aACA,mBACA,iBACA,gBAMZ,8BACI,0BACA,2CACI,iBACA,mBlCvKJ,u0BACI,YACA,cAEJ,gaACI,WmCjBR,kCACI,gBCDJ,+BACI,sBAEJ,8BACI,qBACA,mBACA,kBACA,gBACA,yBACA,gBpBPI,wCoBUA,kBACA,kBAGJ,wCACI,iBACA,SACA,kBACA,QpBlBA,kDoBqBI,eACA,gBACA,YpCbR,u0BACI,YACA,cAEJ,gaACI,WqCfJ,6DACI,cAGA,wFACI,mBAEJ,oFACI,gBrCER,u0BACI,YACA,cAEJ,gaACI,WsCbI,8EACI,WpCmzCR,oDACI,uBAEA,oGACI,uBAEJ,0EACI,8Bc7zCR,yDds0CQ,eAEJ,yDACI,uBACA,QAMR,8CACI,YACA,SAKJ,gDACI,uBF90CR,wVACI,YACA,cAEJ,0KACI,WuChBR,gBACI,sBACA,2BACA,0BAEI,SACA,WACA,aAEJ,4BACI,kBAEJ,2BACI,oBACA,aAEJ,+BACI,qBASA,gDACI,+BAEI,4HACI,0BAEJ,8DACI,eACA,sBACA,eACA,YACA,UAQhB,uCAII,kBACA,aACA,YpCwDJ,sBACA,kBACA,0BoCxDI,sCACA,gBARA,8CACI,YAQJ,+DACI,sBACA,0BAEJ,0DACI,kBACA,WACA,qBAEJ,+DACI,kBACA,eACA,2FACI,QACA,UAGR,mEACI,MnCzEL,QmC0EK,kBACA,SACA,WACA,epCyIJ,eACA,iBoCxII,yEACI,cAGR,oEACI,eACA,WAGR,uEAEI,cACA,eAGJ,iCACI,apCuHA,eACA,iBoCtHA,uCACI,kBACA,sBACA,gBrCgwCZ,oCACI,gBACA,eAEJ,qBACI,+BACA,2CACA,4CACI,UACA,YACA,SAOA,+NACI,0BAGR,yGACI,eACA,iKACI,0BAKZ,iDACI,gBAEI,uEACI,mBACA,mFACI,cACA,SAMJ,mFACI,iBACA,uBAOZ,gFAEI,gBAIR,cACI,qBACA,oBACA,6BACA,0BACA,uBACA,2BACA,uBACA,gCAGJ,iBACI,6BACA,gCACA,qBACA,oBAGJ,qCACI,+BACA,WAIA,wCACI,WACA,qDACI,sBAIZ,yBACI,kBAIA,kFACI,cACA,cACA,ME57CD,QF67CC,yBACA,kBACA,eACA,QACA,iBACA,cACA,kBAIJ,gCACI,kBACA,QACA,WAGR,mDACI,kBAGA,+CACI,aACA,8BACA,2BAII,sEACI,WACA,kBAOhB,wCACI,kBACA,iBAEA,4DACI,YACA,kBACA,YACA,SACA,OACA,QACA,yBACA,WAKA,gEACI,kBAIJ,sFACI,WACA,kBACA,MACA,SACA,UACA,UACA,WAn/CE,QA0/Cd,iCACI,cAEA,6CACI,cAMJ,iCACI,eACA,YAEJ,uCACI,eAMI,8CACI,YAQJ,6CACI,aACA,8BACA,yBAGJ,6CACI,QACA,mBACA,iBAEA,sDACI,iBAIR,gFACI,QACA,aAEA,uFACI,0BACA,WACA,OACA,gBACA,SACA,gBAIA,0GACI,aAGJ,oGACI,cAMR,yGACI,YAMR,qEACI,aAEA,8EACI,aAMpB,aAEI,gBACI,oBACA,wBACA,sBACA,qBACA,uBAGJ,uCACI,wBAGJ,yBACI,wBAGJ,oCACI,qBAGJ,sBACI,wBAGJ,6BACI,oBACA,qBAGJ,2BACI,uBACA,2BAEJ,oBACI,gBACA,gBACA,oBACA,uBACA,sBACA,kCACI,sCAIR,0CACI,wBAEJ,6HAKI,sBACA,iCACA,6BACA,sCAMR,sCAEI,sCC/mDQ,oCAyBR,wBACA,4BA1BQ,uGDknDA,qLACI,oBAIZ,6CCvnDQ,oCAyBR,wBACA,4BA1BQ,wGD6nDZ,sCAEI,sCC/nDQ,oCAyBR,wBACA,4BA1BQ,uGDmoDI,iFACI,UAGR,qLACI,oBAIZ,6CC5oDQ,oCAyBR,wBACA,4BA1BQ,wGqCER,qCACI,sCACA,+BAEA,sDACI,wBACA,kCACA,YACA,uEACA,gBACA,+BAEA,yDACI,kCACA,iBACA,2BACA,gCACA,gBACA,UACA,SAIZ,gDACI,kCACA,wBACA,+BACA,sDACI,0CAIR,qCACI,sCAEA,sDACI,wBACA,kCACA,YACA,uEACA,gBACA,+BAEA,yDACI,kCACA,iBACA,2BACA,gCACA,gBACA,UACA,SAGA,oEACI,wBACA,iCACA,mCACA,gBClHZ,iGACI,wBACA,oCACA,2DAEJ,6FACI,wBACA,sDAEA,mGACI,mCACA,qDAGR,yOAEI,mCACA,4CAEJ,kGACI,sEDmGJ,gDAtHJ,wBACA,iCACA,2EAEA,4DACI,mCAEA,yJAEI,wBAGJ,kEACI,mCACA,qDAGJ,mEACI,mCACA,oCAKI,0FACI,wBAKZ,6EEpBmB,ojCFgHvB,qCACI,wBACA,0BAGI,6DACI,kBACA,+BAEA,yJACI,YACA,WAIZ,4DACI,gBACA,kEACA,iDACA,wBACA,iBACA,6EACI,gBACA,kCAGR,kEACI,kCACA,wCAEA,2EACI,sEAIQ,mHACI,YAKhB,4EACI,+BACA,qEAEA,uLG5HZ,uEACA,oCACA,oDACA,iBAEA,0ZACI,oCACA,0DHwHQ,oFACI,cACA,kBG9KhB,iCACA,eAIA,2BACA,6CACA,iBACA,yBACA,mBAWA,iCACA,4BACA,+BAuBA,uEACA,oCACA,oDACA,iBAEA,8LACI,oCACA,0DHgIY,2FACI,iBACA,kBACA,Q/BnKL,Y+BuKH,iKACI,2BACA,+BACA,mBACA,gCACA,SACA,UAEA,wXACI,sBAGR,mjDIxLZ,0DACA,gBACA,2BACA,2BACA,+BACA,yBACA,eArBA,m0GACI,gBACA,iEACA,2EACA,aAKJ,gxDACI,0CAeJ,soKACI,kCACA,4CACA,gDACA,qBJ8LY,2OACI,kDACA,yCAKA,oHACI,UAEA,6IACI,kBACA,SAEJ,wHACI,2BACA,+BACA,gCACA,+BAGA,2hBACI,8BACA,kCACA,kCAIZ,oHACI,aAEA,2HACI,cAGA,mIACI,mBAKhB,sQAEI,UAnNpB,0BACA,2BACA,gCACA,kBAVA,kRACI,wBACA,0CA6NgB,4HACI,8CACA,MACA,QAIJ,0IACI,gEAGA,oKACI,YAKR,yQACI,qBAjPxB,qRACI,wBACA,0CAkPoB,glBACI,+BACA,SA/O5B,0BACA,2BACA,gCACA,kBAiPgB,6HACI,qBACA,kBAEA,8IACI,uCAEJ,6IACI,kBA5PxB,0BACA,2BACA,gCACA,kBA2PwB,sCACA,MACA,QAGR,gHACI,wBACA,iCACA,gEACA,gBACA,gBACA,WACA,gCACA,UAEA,qIACI,kCACA,mBACA,2BACA,gCACA,UACA,SACA,wBACA,gDAEA,6IACI,wBACA,0BACA,2BACA,aE1UT,iXFwCnB,mJACI,wBACA,0CAsSY,8GACI,cAEJ,kHACI,WAEA,+HACI,SAGR,oPACI,cAGA,0IACI,kBAEA,qSACI,6CACA,0BAGR,8HACI,SACA,WAEJ,iIA3TpB,0BACA,2BACA,gCACA,kBAfA,wBACA,iCA0UwB,UACA,UACA,QACA,QAzUxB,uIACI,wBACA,0CAyUoB,sIACI,yBACA,QACA,UAKR,8HACI,0DACA,2BACA,+BACA,gCACA,2BACA,+BACA,yBACA,aACA,mBACA,kBAEA,sIACI,YACA,gBAEA,+IACI,QAEJ,+JACI,qBACA,aACA,sBACA,SAGR,uIACI,kBACA,MAxW5B,0BACA,2BACA,gCACA,kBAfA,wBACA,iCAIA,6IACI,wBACA,0CAkXwB,gJACI,QAEJ,iJACI,0BAGR,gJACI,yCACA,2BACA,SAEA,sJACI,SAKA,sLACI,kDACA,yCAOhB,+OACI,kBAEJ,yHACI,+BACA,iBAEJ,6IACI,gBACA,gEACA,aACA,kCAEA,gKACI,+BACA,gCACA,2BACA,+BACA,0BACA,UAEJ,qKACI,qBACA,yBAGA,4KACI,UAGR,gMACI,SAGR,iJA1apB,0BACA,2BACA,gCACA,kBAfA,wBACA,iCAIA,uJACI,wBACA,0CAoboB,wJEtdD,ojCF2dC,mJACI,qBACA,YAEJ,8IACI,gBASxB,mDACI,uEAEA,sDACI,kCACA,iBACA,wBACA,kCACA,2BACA,gCACA,cACA,SAEA,2DACI,iBACA,oCACA,QACA,UAEJ,oEACI,YACA,MAGR,0DACI,SAEA,mFACI,wBACA,+BAMZ,0DACI,SACA,UAEA,6DACI,kCACA,YACA,kCACA,2BACA,gCACA,cAEA,mEACI,0CACA,YAEJ,kEACI,aACA,oCACA,UAEJ,sEACI,gBACA,aAEJ,sEACI,qDAEA,4EACI,0CACA,YAGR,iEACI,yBACA,0CAEA,uEACI,0CACA,YAMZ,4EACI,cACA,iBAEA,uFACI,YAEJ,6FACI,sCACA,kCACA,gEAOR,4HACI,yBACA,mCACA,oDACA,kCACA,aAEA,8IACI,kCAEJ,8IACI,gCAGA,kNACI,8CAEA,8NACI,wEAEA,oTACI,8CAIZ,sPIhmBhB,0DACA,gBACA,2BACA,2BACA,+BACA,yBACA,eJ4lBoB,wBACA,kCACA,YInnBpB,sgBACI,gBACA,iEACA,2EACA,aAKJ,gRACI,0CAeJ,4xBACI,kCACA,4CACA,gDACA,qBJylBQ,kJACI,kCAGI,4VACI,wEAEJ,oMI9mBpB,0DACA,gBACA,2BACA,2BACA,+BACA,yBACA,eJ0mBwB,oCACA,iBACA,WIjoBxB,kaACI,gBACA,iEACA,2EACA,aAKJ,8NACI,0CAeJ,soBACI,kCACA,4CACA,gDACA,qBJwmBQ,sJACI,qBACA,SACA,WAEA,8KACI,MAEA,4LACI,oBAIJ,wMACI,YAOxB,oCACI,gEACA,gBACA,aAKY,sPACI,gCAEJ,wQACI,uDACA,gBAIJ,0aACI,qDACA,gDAOQ,oIACI,2EAIJ,0IACI,kEACA,gBAKR,2HACI,2EAEJ,iIACI,kEACA,gBAEA,6IACI,gEAOhB,0GACI,gCAEJ,gHACI,uDACA,gBAKhB,gDACI,sBACA,gEACA,kCACA,8BAGI,0EAEI,gEAIJ,oFACI,aACA,sBACA,UACA,qCAEA,iGACI,gBACA,QAEJ,qGACI,8BACA,iBACA,QAEJ,+FACI,QACA,oBACA,cAKR,8JACI,uDAEA,4KACI,WACA,kBACA,OACA,4DACA,WACA,yDAEJ,wNACI,UAEA,kPACI,gBAEJ,8PACI,sBAGR,kNACI,UAEA,geACI,WACA,eIxwBxB,0DACA,gBACA,2BACA,2BACA,+BACA,yBACA,eArBA,o/BACI,gBACA,iEACA,2EACA,aAKJ,ohBACI,0CAeJ,ohDACI,kCACA,4CACA,gDACA,qBJiwBgB,4NACI,yBACA,0CACA,+DACA,mCAtvBxB,wOACI,wBACA,0CA0vBgB,4OACI,gBAEA,sRACI,UACA,mBACA,YAKR,wtBA5wBpB,wBACA,iCA8wBwB,YA1wBxB,4vBACI,wBACA,0CA0wBgB,8PE5yBG,ojCFmzBK,wRACI,YAQZ,0OACI,aAKhB,uTACI,UACA,gBAEA,mXACI,UAEA,sZACI,aAOA,gLACI,WAKhB,wOAGI,iCACA,gCAEA,+QACI,MAKA,4HACI,qBACA,wEGp0BpB,uEACA,oCACA,oDACA,iBAEA,8QACI,oCACA,0DHk0BI,mFG3tBR,8DACA,4BACA,qBACA,8CAEA,4LACI,mCACA,mDHutBI,+HG50BR,uEACA,oCACA,oDACA,iBAEA,0SACI,oCACA,0DHw0BI,2DGn0BR,YACA,uCACA,uDACA,iBHk0BY,kBGh0BZ,4IACI,uCACA,6DHg0BI,6DACI,wBACA,yBACA,iBACA,gBACA,4DACA,YAEA,wEACI,0CACA,iBACA,SACA,UACA,2BACA,gCAGJ,kEACI,aACA,2BACA,8BAEA,yEACI,aAEJ,kFACI,4CAEJ,sEACI,SAEJ,kFACI,2BACA,gCACA,aACA,QACA,SACA,WAEA,oLACI,kCACA,iBACA,cAEA,gMACI,0CACA,qBAGR,4FACI,2DAEJ,wFACI,sDAEJ,6FACI,aAGR,8EACI,iCACA,UACA,0BACA,2BACA,gCACA,kBACA,UACA,WAv5BpB,oFACI,wBACA,0CAw5BgB,6LACI,kCACA,iBACA,gCAEJ,+FEh8BH,ojCFs8BT,qEA/8BR,wBACA,iCACA,2EAEA,iFACI,mCAEA,mMAEI,wBAGJ,uFACI,mCACA,qDAGJ,wFACI,mCACA,oCAKI,+GACI,wBAKZ,kGEpBmB,ojCF08Bf,oFACI,wBACA,gDACA,gFACA,mCACA,cAEA,0FACI,mCACA,qDACA,2EAMJ,+JACI,yDACA,YACA,mBACA,kBAGA,uFACI,UAIJ,uFACI,MACA,OxBl/BhB,kMwBq/BoB,QACA,UAIZ,8EACI,SAKhB,qDACI,yHACA,mFAIR,sCAMoB,mGACI,iCACA,aACA,sBACA,mBACA,UACA,mCACA,YAEA,wGACI,qCAMJ,yIACI,iBAGJ,0IACI","file":"item-creator.css"} diff --git a/views/js/loader/qtiLoader.min.js.map b/views/js/loader/qtiLoader.min.js.map index 0c1f532baf..15a71c0880 100644 --- a/views/js/loader/qtiLoader.min.js.map +++ b/views/js/loader/qtiLoader.min.js.map @@ -1 +1 @@ -{"version":3,"names":["loaderScript","document","getElementById","configUrl","getAttribute","bundle","loadController","controllerOptions","controllerPath","params","JSON","parse","err","window","require","controller","startController","started","start","addEventListener","readyState","loadBundles","loaded","bundles","concat","filter","item","index","indexOf","forEach","length","define","qtiClasses","_container","assessmentItem","responseProcessing","_simpleFeedbackRule","stylesheet","math","figure","img","figcaption","object","outcomeDeclaration","responseDeclaration","rubricBlock","associableHotspot","gap","gapImg","gapText","hotspotChoice","hottext","inlineChoice","simpleAssociableChoice","simpleChoice","associateInteraction","choiceInteraction","endAttemptInteraction","extendedTextInteraction","gapMatchInteraction","graphicAssociateInteraction","graphicGapMatchInteraction","graphicOrderInteraction","hotspotInteraction","hottextInteraction","inlineChoiceInteraction","matchInteraction","mediaInteraction","orderInteraction","prompt","selectPointInteraction","sliderInteraction","textEntryInteraction","uploadInteraction","feedbackBlock","feedbackInline","modalFeedback","customInteraction","infoControl","include","table","printedVariable","_tooltip","_","Object","prototype","hasOwnProperty","call","util","buildSerial","prefix","id","chars","i","charAt","Math","floor","random","buildId","usedIds","suffix","exists","TypeError","getUsedIds","includes","buildIdentifier","useSuffix","getUsedIdentifiers","isUndefined","replace","findInCollection","element","collectionNames","searchedSerial","found","isString","isArray","collectionName","collection","split","nameToken","elt","parent","isFunction","find","Error","addMarkupNamespace","markup","ns","$0","$1","$2","$3","$4","removeMarkupNamespaces","removeMarkupNamespace","getMarkupUsedNamespaces","namespaces","original","slash","node","push","uniq","$","rendererConfigHelper","getOptionsFromArguments","args","options","data","placeholder","subclass","renderer","arg","isRenderer","isPlainObject","console","log","_class","loggerFactory","rendererConfig","_instances","logger","Element","Class","extend","qtiClass","serial","rootElement","init","attributes","metaData","match","setAttributes","initContainer","arguments","initObject","is","getSerial","elts","getComposingElements","attr","name","value","prop","trigger","key","removeData","removeAttr","removeAttributes","warn","getAttributes","clone","attrNames","append","getBody","getObject","v","isA","getUsedClasses","ret","composingElts","body","location","getRootElement","setRelatedItem","setRootElement","getRelatedItem","setRenderer","getRenderer","render","rendering","_renderer","tplData","defaultData","tag","resolveUrl","merge","getData","renderTpl","replaceWith","postRender","altClassName","postRenderers","compact","getContainer","$scope","toArray","arr","type","isEmpty","addClass","className","clazz","_containClass","hasClass","removeClass","regex","RegExp","trim","toggleClass","state","isset","issetElement","unset","unsetElement","allClassStr","test","qtiElement","getElementBySerial","composingElements","getPrefix","html5Ns","prefixed","xmlNsHandler","stripNs","pattern","openRegEx","closeRegEx","restoreNs","xml","ignoreMarkup","xmlCopy","xmlRe","tagRe","xmlMatch","imsXsd","prefixAtt","tagMatch","responseRules","MATCH_CORRECT","responseIdentifier","outcomeIdentifier","responseIf","expression","expressions","identifier","baseType","MAP_RESPONSE","MAP_RESPONSE_POINT","responseRulesHelper","_templateNames","NONE","response","isUsingTemplate","tpl","template","isValidTemplateName","tplName","getTemplateUriFromName","getTemplateNameFromUri","tplUri","forIn","uri","getTemplateNameFromResponseRules","outcomeRules","keys","isEqual","itemScore","responseIdentifiers","outcomeExpressions","map","moduleLoader","responseHelper","itemScoreHelper","loadPortableCustomElementProperties","portableElement","rawProperties","properties","forOwn","e","loadPortableCustomElementData","typeIdentifier","entryPoint","libraries","setNamespace","xmlns","Loader","classesLocation","qti","setClassesLocation","qtiClassesList","getRequiredClasses","union","loadRequiredClasses","callback","reload","requiredClass","requiredClasses","required","module","category","addList","load","then","loadeded","QtiClass","getLoadedClasses","loadItemData","Qti","loadContainer","outcomes","outcome","buildOutcome","addOutcomeDeclaration","feedbacks","feedback","buildElement","addModalFeedback","stylesheets","addStylesheet","responses","responseRuleItemIndex","findIndex","_ref","responseRule","splice","buildResponse","addResponseDeclaration","feedbackRules","fbData","feedbackOutcomeIdentifier","feedbackOutcome","buildSimpleFeedbackRule","feedbackResponseRuleIndex","_ref2","setOutcomeResponseRule","responseKey","customResponseProcessing","some","setResponseProcessing","buildResponseProcessing","setNamespaces","setSchemaLocations","schemaLocations","setApipAccessibility","apipAccessibility","loadAndBuildElement","loadElement","loadElementData","loadElements","allElements","elementData","howMatch","defaultValue","correctResponse","correctResponses","mapEntries","size","mapping","areaMapping","mappingAttributes","feedbackRule","setCondition","condition","comparedValue","feedbackThen","modalFeedbacks","feedbackElse","comparedOutcome","rp","processingType","bodyObject","bodyData","elements","defaults","eltData","setElement","text","bdy","loadObjectData","loadInteractionData","loadChoiceData","loadMathData","loadPicData","loadTooltipData","interaction","buildInteractionChoices","loadPciData","choices","set","matchSet","choice","addChoice","gapImgs","addGapImg","val","_alt","setMathML","mathML","annotations","encoding","setAnnotation","tooltip","content","pci","pic","getRawValues","pciVar","base","values","list","_checkContainerType","_getBodyDom","html","_setBodyDomClass","newClass","oldClass","$wrapper","_setDomClass","$bodyDom","wrapInner","setEncodedDataToDom","dataName","newValue","oldValue","_getEncodedDataString","setEncodedData","getEncodedData","removeEncodedData","hasEncodedData","$body","matches","_prefix","container","$$1","context","containerHelper","Handlebars","Helpers0","iframeNotifier","previewOkBtn","asString","Template","deliveryOkBtn","Template$1","showFeedbacks","loader","itemSession","onCloseCallback","onShowCallback","firstFeedback","interactionsDisplayInfo","getInteractionsDisplayInfo","messages","renderedFeebacks","renderingQueue","$itemContainer","$itemBody","children","feedbackIds","message","$container","_currentMessageGroupId","interactionInfo","order","getFeedbackMessageSignature","displayContainer","messageGroupId","sortBy","clearModalFeedbacks","renderingToken","renderModalFeedback","renderingData","dom","on","autoscroll","replaceControl","getQtiContainer","me","max","__knownParent__","currentScrollTop","minScrollTop","maxScrollTop","scrollTop","$element","offset","top","height","outerHeight","min","animate","extractDisplayInfo","$displayContainer","$interactionContainer","closest","uniqueId","interactionContainer","interactionOrder","each","_interactionInfo","remove","renderedCallback","$modalFeedback","inline","done","Promise","race","all","pop","resolve","reject","delay","timeout","catch","$controls","$toggleContainer","parents","initControlToggle","toggleButtonTemplate","$ok","click","fb","hide","uncover","show","cover","interactionContainers","$cover","$interaction","toLowerCase","__initialized","depth0","helpers","partials","compilerInfo","helper","buffer","helperMissing","escapeExpression","__","hash","inlineRenderer","async","count","feedbacksToBeDisplayed","callstack","forEachRight","endCallback","cb","series","closeCallback","$feedback","$feedbackBox","modal","modalRenderer","ItemLoader","modalFeedbackInline","modalFeedbackModal","QtiRunner","rpEngine","itemApi","updateItemApi","getResponses","states","getStates","variables","property","file","mime","setVariables","saveResponses","resultApi","setQtiRunner","setItemApi","that","oldStateVariables","stringify","stateVariables","onKill","killCallback","newStateVariables","serviceApi","getHasBeenPaused","submit","setHasBeenPaused","getLoader","self","renderItem","noop","initInteractionsResponse","listenForThemeChange","interactions","getInteractions","responseId","getVariable","setState","setVariable","off","themeName","themeLoader","getThemeLoader","originalEvent","detail","change","validate","finish","getResponse","error","getState","inlineDisplay","config","inlineModalFeedback","_Mathfloor","interactionHelper","convertChoices","outputType","_this","c","findChoices","inputType","getChoice","getChoiceByIdentifier","shuffleChoices","r","f","j","n","k","tmp","serialToIdentifier","choiceSerial","themesHelper","getDocumentBaseUrl","protocol","host","pathname","hb","compile","_renderableClasses","_dependencies","_renderableSubclasses","_defaults","_isValidRenderer","valid","classCorrect","pos","slice","subClass","Renderer","registerRendererClass","success","_locations","_renderers","shuffledChoices","_getClassRenderer","setOption","setOptions","opts","getOption","getCustomMessage","elementName","messageKey","getAssetManager","assetManager","qtiSubclass","res","decorators","isObject","before","after","renderDirect","setResponse","qtiInteraction","resetResponse","destroy","getLoadedRenderers","register","renderersLocations","themeData","getCurrentThemeData","themes","available","theme","path","preload","intersection","reqClass","deps","requiredSubClasses","unload","setShuffledChoices","identificationType","getShuffledChoices","reshuffle","returnedType","getChoices","getRenderers","getLocations","url","getAbsoluteUrl","relUrl","absUrl","runtimeLocations","runtimeLocation","baseUrl","setAreaBroker","areaBroker","_areaBroker","getAreaBroker","getItemCreator","Renderer$1","build","defaultOptions","NewRenderer","apply","eventifier","_requirejs","_defaultLoadingOptions","loadModuleConfig","manifest","requireConfigAliases","reqConfigs","modules","runtime","pciConfig","paths","runtimeModules","model","reduce","acc","conf","isPortableElementProvider","provider","portableElementRegistry","methods","_loaded","__providers","_registry","get","version","last","registerProvider","moduleName","resetProviders","loadProviders","loadPromise","providerLoadingStack","shift","getAllVersions","versions","getRuntime","assign","label","getCreator","creator","getLatestCreators","lastVersion","hook","enabled","getBaseUrl","loadRuntimes","providers","loadStack","results","configLoadingStack","_pcis","moduleConfigs","loadCreators","requiredCreatorHooks","portableElementModel","creators","creatorHook","getTypeIdentifier","enable","disable","isEnabled","featuresService","QtiElements","classes","itemBody","contains","abstract","atomicBlock","atomicInline","simpleBlock","simpleInline","flowStatic","blockStatic","inlineStatic","flow","tableCell","caption","xhtml","col","colgroup","div","dl","dt","dd","hr","li","ol","ul","param","tbody","tfoot","thead","td","th","tr","a","abbr","acronym","b","big","cite","code","dfn","em","kbd","q","samp","small","span","strong","sub","sup","tt","var","blockquote","address","h1","h2","h3","h4","h5","h6","p","pre","br","textRun","blockInteraction","inlineInteraction","templateElement","templateBlock","templateInline","drawingInteraction","graphicInteraction","cache","containable","getAllowedContainersElements","getAllowedContainers","jqSelector","substring","getParentClasses","aClass","intersect","getChildClasses","getAllowedContents","recursive","checked","contain","child","isAllowedClass","qtiContainerClass","qtiContentClass","allowedClasses","cacheType","isBlock","isInline","topClass","isVisible","getAvailableAuthoringElements","tagTitles","commonInteractions","inlineInteractions","graphicInteractions","authoringElements","description","icon","short","tags","group","availableElements","elementId","entries","qtiElements","customInteractionRegistry","getAuthoringData","enabledOnly","pciModel","ciRegistry","registry","infoControlRegistry","icRegistry","getBaseUrlByIdentifier","handle","handlePortableElementLocation","source","relative","fullmatch","relPath","assetManagerFactory","assetStrategies","portableAssetStrategy","itemThemes","moduleConfig","handleTheme","root_url","toString","taomedia","external","base64","itemCssNoCache","locations","\"simpleChoice.choiceInteraction\"","\"simpleChoice.orderInteraction\"","\"simpleAssociableChoice.matchInteraction\"","\"simpleAssociableChoice.associateInteraction\"","enableDragAndDrop","associate","associateDragAndDrop","gapMatch","gapMatchDragAndDrop","graphicGapMatch","graphicGapMatchDragAndDrop","orderDragAndDrop","userModules","dependency","exec","history","fixBrokenBrowsers","bootstrap","runnerContext","onItemApiReady","qtiRunner","coreItemData","itemData","variableElementsData","variableElements","contentVariables","userModulesOverride","userScripts","userVars","defer","focus","qtiBootstrap","tao","qtiRunnerContext"],"sources":["/github/workspace/tao/views/build/config-wrap-start-default.js","../../loader/bootstrap.js","../qtiItem/core/qtiClasses.js","../qtiItem/helper/util.js","../qtiItem/helper/rendererConfig.js","../qtiItem/core/Element.js","../qtiItem/helper/xmlNsHandler.js","../qtiItem/helper/responseRules.js","../qtiItem/helper/response.js","../qtiItem/helper/itemScore.js","../qtiItem/core/Loader.js","../qtiItem/helper/pci.js","../qtiItem/helper/container.js","../qtiRunner/modalFeedback/inlineRenderer.js","../qtiRunner/modalFeedback/modalRenderer.js","../qtiRunner/core/QtiRunner.js","../qtiItem/helper/interactionHelper.js","../qtiRunner/core/Renderer.js","../portableElementRegistry/factory/factory.js","../qtiCreator/helper/qtiElements.js","../portableElementRegistry/factory/ciRegistry.js","../portableElementRegistry/ciRegistry.js","../portableElementRegistry/factory/icRegistry.js","../portableElementRegistry/icRegistry.js","../portableElementRegistry/assetManager/portableAssetStrategy.js","../qtiCommonRenderer/renderers/config.js","../qtiCommonRenderer/renderers/Renderer.js","../runner/provider/manager/userModules.js","../runtime/qtiBootstrap.js","../runtime/qtiLoader.js","module-create.js","/github/workspace/tao/views/build/config-wrap-end-default.js"],"sourcesContent":["\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016-2018 (original work) Open Assessment Technologies SA ;\n */\n\n/**\n * Bootstrap the app, start the entry controller\n * @author Bertrand Chevrier \n */\n(function(){\n 'use strict';\n\n\n\n var loaderScript = document.getElementById('amd-loader');\n var configUrl = loaderScript.getAttribute('data-config');\n var bundle = loaderScript.getAttribute('data-bundle');\n\n var loadController = function loadController(){\n var controllerOptions = {};\n var controllerPath = loaderScript.getAttribute('data-controller');\n var params = loaderScript.getAttribute('data-params');\n try{\n controllerOptions = JSON.parse(params);\n } catch(err){\n controllerOptions = {};\n }\n window.require([controllerPath], function(controller) {\n var startController = function startController(){\n if(!window.started){\n window.started = true;\n controller.start(controllerOptions);\n }\n };\n document.addEventListener('readystatechange', startController, false);\n if (document.readyState === 'complete') {\n startController();\n }\n });\n };\n\n //always start to load the config\n window.require([configUrl], function() {\n\n //define the global loading mechanism\n if(!window.loadBundles){\n //keep tracl of loaded bundles, even if require does it,\n //this prevent some unecessary cycles\n window.loaded = {};\n\n /**\n * Loading entry point for inter bundle dependency,\n * always take the bundles from the params and window.bundles\n * @param {String[]} [bundles] - an optional list of bundle to load\n */\n window.loadBundles = function loadBundles(bundles){\n bundles = bundles || [];\n bundles = bundles.concat(window.bundles)\n bundles = bundles.filter( function(item, index){\n return item && bundles.indexOf(item) === index && window.loaded[item] !== true;\n });\n require(bundles, function(){\n bundles.forEach( function( item ) {\n window.loaded[item] = true;\n });\n loadController();\n });\n }\n }\n\n if(bundle || (window.bundles && window.bundles.length)) {\n window.loadBundles([bundle]);\n } else {\n loadController();\n }\n });\n})();\n\ndefine(\"loader/bootstrap\", function(){});\n\n","define('taoQtiItem/qtiItem/core/qtiClasses',[],function () { 'use strict';\n\n var qtiClasses = {\n _container: 'taoQtiItem/qtiItem/core/Container',\n assessmentItem: 'taoQtiItem/qtiItem/core/Item',\n responseProcessing: 'taoQtiItem/qtiItem/core/ResponseProcessing',\n _simpleFeedbackRule: 'taoQtiItem/qtiItem/core/response/SimpleFeedbackRule',\n stylesheet: 'taoQtiItem/qtiItem/core/Stylesheet',\n math: 'taoQtiItem/qtiItem/core/Math',\n figure: 'taoQtiItem/qtiItem/core/Figure',\n img: 'taoQtiItem/qtiItem/core/Img',\n figcaption: 'taoQtiItem/qtiItem/core/Figcaption',\n object: 'taoQtiItem/qtiItem/core/Object',\n outcomeDeclaration: 'taoQtiItem/qtiItem/core/variables/OutcomeDeclaration',\n responseDeclaration: 'taoQtiItem/qtiItem/core/variables/ResponseDeclaration',\n rubricBlock: 'taoQtiItem/qtiItem/core/RubricBlock',\n associableHotspot: 'taoQtiItem/qtiItem/core/choices/AssociableHotspot',\n gap: 'taoQtiItem/qtiItem/core/choices/Gap',\n gapImg: 'taoQtiItem/qtiItem/core/choices/GapImg',\n gapText: 'taoQtiItem/qtiItem/core/choices/GapText',\n hotspotChoice: 'taoQtiItem/qtiItem/core/choices/HotspotChoice',\n hottext: 'taoQtiItem/qtiItem/core/choices/Hottext',\n inlineChoice: 'taoQtiItem/qtiItem/core/choices/InlineChoice',\n simpleAssociableChoice: 'taoQtiItem/qtiItem/core/choices/SimpleAssociableChoice',\n simpleChoice: 'taoQtiItem/qtiItem/core/choices/SimpleChoice',\n associateInteraction: 'taoQtiItem/qtiItem/core/interactions/AssociateInteraction',\n choiceInteraction: 'taoQtiItem/qtiItem/core/interactions/ChoiceInteraction',\n endAttemptInteraction: 'taoQtiItem/qtiItem/core/interactions/EndAttemptInteraction',\n extendedTextInteraction: 'taoQtiItem/qtiItem/core/interactions/ExtendedTextInteraction',\n gapMatchInteraction: 'taoQtiItem/qtiItem/core/interactions/GapMatchInteraction',\n graphicAssociateInteraction: 'taoQtiItem/qtiItem/core/interactions/GraphicAssociateInteraction',\n graphicGapMatchInteraction: 'taoQtiItem/qtiItem/core/interactions/GraphicGapMatchInteraction',\n graphicOrderInteraction: 'taoQtiItem/qtiItem/core/interactions/GraphicOrderInteraction',\n hotspotInteraction: 'taoQtiItem/qtiItem/core/interactions/HotspotInteraction',\n hottextInteraction: 'taoQtiItem/qtiItem/core/interactions/HottextInteraction',\n inlineChoiceInteraction: 'taoQtiItem/qtiItem/core/interactions/InlineChoiceInteraction',\n matchInteraction: 'taoQtiItem/qtiItem/core/interactions/MatchInteraction',\n mediaInteraction: 'taoQtiItem/qtiItem/core/interactions/MediaInteraction',\n orderInteraction: 'taoQtiItem/qtiItem/core/interactions/OrderInteraction',\n prompt: 'taoQtiItem/qtiItem/core/interactions/Prompt',\n selectPointInteraction: 'taoQtiItem/qtiItem/core/interactions/SelectPointInteraction',\n sliderInteraction: 'taoQtiItem/qtiItem/core/interactions/SliderInteraction',\n textEntryInteraction: 'taoQtiItem/qtiItem/core/interactions/TextEntryInteraction',\n uploadInteraction: 'taoQtiItem/qtiItem/core/interactions/UploadInteraction',\n feedbackBlock: 'taoQtiItem/qtiItem/core/feedbacks/FeedbackBlock',\n feedbackInline: 'taoQtiItem/qtiItem/core/feedbacks/FeedbackInline',\n modalFeedback: 'taoQtiItem/qtiItem/core/feedbacks/ModalFeedback',\n customInteraction: 'taoQtiItem/qtiItem/core/interactions/CustomInteraction',\n infoControl: 'taoQtiItem/qtiItem/core/PortableInfoControl',\n include: 'taoQtiItem/qtiItem/core/Include',\n table: 'taoQtiItem/qtiItem/core/Table',\n printedVariable: 'taoQtiItem/qtiItem/core/PrintedVariable',\n _tooltip: 'taoQtiItem/qtiItem/core/Tooltip'\n };\n\n return qtiClasses;\n\n});\n\n","define('taoQtiItem/qtiItem/helper/util',['lodash'], function (_) { 'use strict';\n\n _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;\n\n /*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA\n *\n */\n\n var util = {\n buildSerial: function buildSerial(prefix) {\n var id = prefix || '';\n var chars = 'abcdefghijklmnopqrstuvwxyz0123456789';\n for (var i = 0; i < 22; i++) {\n id += chars.charAt(Math.floor(Math.random() * chars.length));\n }\n return id;\n },\n\n /**\n * Generates an id for a Qti element (the generation is different from identifier)\n * @param {Object} item - the element related item\n * @param {String} prefix - identifier prefix\n * @returns {String} the identifier\n * @throws {TypeError} if there is no item\n */\n buildId: function buildId(item, prefix) {\n var id;\n var usedIds;\n var i = 1;\n var suffix = '';\n var exists = false;\n\n if (!item) {\n throw new TypeError('A item is required to generate a unique identifier');\n }\n\n usedIds = item.getUsedIds();\n\n do {\n exists = false;\n id = prefix + suffix;\n if (usedIds && usedIds.includes(id)) {\n exists = true;\n suffix = '_' + i;\n i++;\n }\n } while (exists);\n\n return id;\n },\n\n /**\n * Generates an identifier for a Qti element\n * @param {Object} item - the element related item\n * @param {String} prefix - identifier prefix\n * @param {Boolean} [useSuffix = true] - add a \"_ + index\" to the identifier\n * @returns {String} the identifier\n * @throws {TypeError} if there is no item\n */\n buildIdentifier: function buildIdentifier(item, prefix, useSuffix) {\n var id;\n var usedIds;\n var suffix = '';\n var i = 1;\n var exists = false;\n\n if (!item) {\n throw new TypeError('A item is required to generate a unique identifier');\n }\n\n if (!prefix) {\n throw new TypeError('Prefix is required to build an identifier');\n }\n\n usedIds = item.getUsedIdentifiers();\n useSuffix = _.isUndefined(useSuffix) ? true : useSuffix;\n\n if (prefix) {\n prefix = prefix\n .replace(/_[0-9]+$/gi, '_') //detect incremental id of type choice_12, response_3, etc.\n .replace(/[^a-zA-Z0-9_]/gi, '_')\n .replace(/(_)+/gi, '_');\n if (useSuffix) {\n suffix = '_' + i;\n }\n }\n\n do {\n exists = false;\n id = prefix + suffix;\n if (usedIds[id]) {\n exists = true;\n suffix = '_' + i;\n i++;\n }\n } while (exists);\n\n return id;\n },\n\n findInCollection: function findInCollection(element, collectionNames, searchedSerial) {\n var found = null;\n\n if (_.isString(collectionNames)) {\n collectionNames = [collectionNames];\n }\n\n if (_.isArray(collectionNames)) {\n _.forEach(collectionNames, function (collectionName) {\n //get collection to search in (resolving case like interaction.choices.0\n var collection = element;\n _.forEach(collectionName.split('.'), function (nameToken) {\n collection = collection[nameToken];\n });\n var elt = collection[searchedSerial];\n\n if (elt) {\n found = { parent: element, element: elt };\n return false; //break the each loop\n }\n\n //search inside each elements:\n _.forEach(collection, function (elt) {\n if (_.isFunction(elt.find)) {\n found = elt.find(searchedSerial);\n if (found) {\n return false; //break the each loop\n }\n }\n });\n\n if (found) {\n return false; //break the each loop\n }\n });\n } else {\n throw new Error('invalid argument : collectionNames must be an array or a string');\n }\n\n return found;\n },\n addMarkupNamespace: function addMarkupNamespace(markup, ns) {\n if (ns) {\n markup = markup.replace(/<(\\/)?([a-z:]+)(\\s?)([^><]*)>/g, function ($0, $1, $2, $3, $4) {\n if ($2.indexOf(':') > 0) {\n return $0;\n }\n $1 = $1 || '';\n $3 = $3 || '';\n return '<' + $1 + ns + ':' + $2 + $3 + $4 + '>';\n });\n return markup;\n }\n return markup;\n },\n removeMarkupNamespaces: function removeMarkupNamespace(markup) {\n return markup.replace(/<(\\/)?(\\w*):([^>]*)>/g, '<$1$3>');\n },\n getMarkupUsedNamespaces: function getMarkupUsedNamespaces(markup) {\n var namespaces = [];\n markup.replace(/<(\\/)?(\\w*):([^>]*)>/g, function (original, slash, ns, node) {\n namespaces.push(ns);\n return '<' + slash + node + '>';\n });\n return _.uniq(namespaces);\n }\n };\n\n return util;\n\n});\n\n","define('taoQtiItem/qtiItem/helper/rendererConfig',['lodash', 'jquery'], function (_, $) { 'use strict';\n\n _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;\n $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;\n\n var rendererConfigHelper = {};\n\n rendererConfigHelper.getOptionsFromArguments = function (args) {\n var options = {\n data: {},\n placeholder: null,\n subclass: '',\n renderer: null\n };\n\n _.forEach(args, function (arg) {\n if (arg) {\n if (arg.isRenderer) {\n options.renderer = arg;\n } else if (arg instanceof $ && arg.length) {\n options.placeholder = arg;\n } else if (_.isString(arg)) {\n options.subclass = arg;\n } else if (_.isPlainObject(arg)) {\n options.data = arg;\n } else {\n console.log('invalid arg', arg, args);\n }\n }\n });\n\n return options;\n };\n\n return rendererConfigHelper;\n\n});\n\n","define('taoQtiItem/qtiItem/core/Element',['jquery', 'lodash', 'class', 'core/logger', 'taoQtiItem/qtiItem/helper/util', 'taoQtiItem/qtiItem/helper/rendererConfig'], function ($, _, _class, loggerFactory, util, rendererConfig) { 'use strict';\n\n $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;\n _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;\n loggerFactory = loggerFactory && Object.prototype.hasOwnProperty.call(loggerFactory, 'default') ? loggerFactory['default'] : loggerFactory;\n util = util && Object.prototype.hasOwnProperty.call(util, 'default') ? util['default'] : util;\n rendererConfig = rendererConfig && Object.prototype.hasOwnProperty.call(rendererConfig, 'default') ? rendererConfig['default'] : rendererConfig;\n\n /*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA\n *\n */\n\n var _instances = {};\n\n /**\n * Create a logger\n */\n var logger = loggerFactory('taoQtiItem/qtiItem/core/Element');\n\n var Element = Class.extend({\n qtiClass: '',\n serial: '',\n rootElement: null,\n init: function (serial, attributes) {\n //init own attributes\n this.attributes = {};\n\n //system properties, for item creator internal use only\n this.metaData = {};\n\n //init call in the format init(attributes)\n if (typeof serial === 'object') {\n attributes = serial;\n serial = '';\n }\n\n if (!serial) {\n serial = util.buildSerial(this.qtiClass + '_');\n }\n\n if (serial && (typeof serial !== 'string' || !serial.match(/^[a-z_0-9]*$/i))) {\n throw 'invalid QTI serial : (' + typeof serial + ') ' + serial;\n }\n\n if (!_instances[serial]) {\n _instances[serial] = this;\n this.serial = serial;\n this.setAttributes(attributes || {});\n } else {\n throw 'a QTI Element with the same serial already exists ' + serial;\n }\n\n if (typeof this.initContainer === 'function') {\n this.initContainer(arguments[2] || '');\n }\n if (typeof this.initObject === 'function') {\n this.initObject();\n }\n },\n is: function (qtiClass) {\n return qtiClass === this.qtiClass;\n },\n placeholder: function () {\n return '{{' + this.serial + '}}';\n },\n getSerial: function () {\n return this.serial;\n },\n getUsedIdentifiers: function () {\n var usedIds = {};\n var elts = this.getComposingElements();\n for (var i in elts) {\n var elt = elts[i];\n var id = elt.attr('identifier');\n if (id) {\n //warning: simplistic implementation, allow only one unique identifier in the item no matter the element class/type\n usedIds[id] = elt;\n }\n }\n return usedIds;\n },\n\n /**\n * Get the ids in use. (id is different from identifier)\n * @returns {Array} of the ids in use\n */\n getUsedIds: function getUsedIds() {\n var usedIds = [];\n _.forEach(this.getComposingElements(), function (elt) {\n var id = elt.attr('id');\n if (id && !usedIds.includes(id)) {\n usedIds.push(id);\n }\n });\n return usedIds;\n },\n\n attr: function (name, value) {\n if (name) {\n if (value !== undefined) {\n this.attributes[name] = value;\n } else {\n if (typeof name === 'object') {\n for (var prop in name) {\n this.attr(prop, name[prop]);\n }\n } else if (typeof name === 'string') {\n if (this.attributes[name] === undefined) {\n return undefined;\n } else {\n return this.attributes[name];\n }\n }\n }\n }\n return this;\n },\n data: function (name, value) {\n if (name) {\n if (value !== undefined) {\n this.metaData[name] = value;\n $(document).trigger('metaChange.qti-widget', { element: this, key: name, value: value });\n } else {\n if (typeof name === 'object') {\n for (var prop in name) {\n this.data(prop, name[prop]);\n }\n } else if (typeof name === 'string') {\n if (this.metaData[name] === undefined) {\n return undefined;\n } else {\n return this.metaData[name];\n }\n }\n }\n }\n return this;\n },\n removeData: function (name) {\n delete this.metaData[name];\n return this;\n },\n removeAttr: function (name) {\n return this.removeAttributes(name);\n },\n setAttributes: function (attributes) {\n if (!_.isPlainObject(attributes)) {\n logger.warn('attributes should be a plain object');\n }\n this.attributes = attributes;\n return this;\n },\n getAttributes: function () {\n return _.clone(this.attributes);\n },\n removeAttributes: function (attrNames) {\n if (typeof attrNames === 'string') {\n attrNames = [attrNames];\n }\n for (var i in attrNames) {\n delete this.attributes[attrNames[i]];\n }\n return this;\n },\n getComposingElements: function () {\n var elts = {};\n function append(element) {\n elts[element.getSerial()] = element; //pass individual object by ref, instead of the whole list(object)\n elts = _.extend(elts, element.getComposingElements());\n }\n if (typeof this.initContainer === 'function') {\n append(this.getBody());\n }\n if (typeof this.initObject === 'function') {\n append(this.getObject());\n }\n _.forEach(this.metaData, function (v) {\n if (Element.isA(v, '_container')) {\n append(v);\n } else if (_.isArray(v)) {\n _.forEach(v, function (v) {\n if (Element.isA(v, '_container')) {\n append(v);\n }\n });\n }\n });\n return elts;\n },\n getUsedClasses: function () {\n var ret = [this.qtiClass],\n composingElts = this.getComposingElements();\n\n _.forEach(composingElts, function (elt) {\n ret.push(elt.qtiClass);\n });\n\n return _.uniq(ret);\n },\n find: function (serial) {\n var found = null;\n var object, body;\n\n if (typeof this.initObject === 'function') {\n object = this.getObject();\n if (object.serial === serial) {\n found = { parent: this, element: object, location: 'object' };\n }\n }\n\n if (!found && typeof this.initContainer === 'function') {\n body = this.getBody();\n if (body.serial === serial) {\n found = { parent: this, element: body, location: 'body' };\n } else {\n found = this.getBody().find(serial, this);\n }\n }\n\n return found;\n },\n parent: function () {\n var item = this.getRootElement();\n if (item) {\n var found = item.find(this.getSerial());\n if (found) {\n return found.parent;\n }\n }\n return null;\n },\n /**\n * @deprecated - use setRootElement() instead\n */\n setRelatedItem: function (item) {\n logger.warn('Deprecated use of setRelatedItem()');\n this.setRootElement(item);\n },\n setRootElement: function (item) {\n var composingElts, i;\n\n if (Element.isA(item, 'assessmentItem')) {\n this.rootElement = item;\n composingElts = this.getComposingElements();\n for (i in composingElts) {\n composingElts[i].setRootElement(item);\n }\n }\n },\n /**\n * @deprecated - use getRootElement() instead\n */\n getRelatedItem: function () {\n logger.warn('Deprecated use of getRelatedItem()');\n return this.getRootElement();\n },\n getRootElement: function () {\n var ret = null;\n if (Element.isA(this.rootElement, 'assessmentItem')) {\n ret = this.rootElement;\n }\n return ret;\n },\n setRenderer: function (renderer) {\n if (renderer && renderer.isRenderer) {\n this.renderer = renderer;\n var elts = this.getComposingElements();\n for (var serial in elts) {\n elts[serial].setRenderer(renderer);\n }\n } else {\n throw 'invalid qti rendering engine';\n }\n },\n getRenderer: function () {\n return this.renderer;\n },\n /**\n * Render the element. Arguments are all optional and can be given in any order.\n * Argument parsing is based on argument type and is done by taoQtiItem/qtiItem/core/helpers/rendererConfig\n * @param {Renderer} renderer - specify which renderer to use\n * @param {jQuery} placeholder - DOM element that will be replaced by the rendered element\n * @param {Object} data - template data for the rendering\n * @param {String} subclass - subclass enables different behaviour of the same qti class in different contexts (eg. we could have different rendering for simpleChoice according to where it is being used: simpleChoice.orderInteraction, simpleChoice.choiceInteraction...)\n * @returns {String} - the rendered element as an HTML string\n */\n render: function render() {\n var args = rendererConfig.getOptionsFromArguments(arguments);\n var _renderer = args.renderer || this.getRenderer();\n var rendering;\n\n var tplData = {},\n defaultData = {\n tag: this.qtiClass,\n serial: this.serial,\n attributes: this.getAttributes()\n };\n\n if (!_renderer) {\n throw new Error('render: no renderer found for the element ' + this.qtiClass + ':' + this.serial);\n }\n\n if (typeof this.initContainer === 'function') {\n //allow body to have a different renderer if it has its own renderer set\n defaultData.body = this.getBody().render(args.renderer);\n }\n if (typeof this.initObject === 'function') {\n defaultData.object = {\n attributes: this.object.getAttributes()\n };\n defaultData.object.attributes.data = _renderer.resolveUrl(this.object.attr('data'));\n }\n\n tplData = _.merge(defaultData, args.data || {});\n tplData = _renderer.getData(this, tplData, args.subclass);\n rendering = _renderer.renderTpl(this, tplData, args.subclass);\n if (args.placeholder) {\n args.placeholder.replaceWith(rendering);\n }\n\n return rendering;\n },\n postRender: function (data, altClassName, renderer) {\n var postRenderers = [];\n var _renderer = renderer || this.getRenderer();\n\n if (typeof this.initContainer === 'function') {\n //allow body to have a different renderer if it has its own renderer set\n postRenderers = this.getBody().postRender(data, '', renderer);\n }\n\n if (_renderer) {\n postRenderers.push(_renderer.postRender(this, data, altClassName));\n } else {\n throw 'postRender: no renderer found for the element ' + this.qtiClass + ':' + this.serial;\n }\n\n return _.compact(postRenderers);\n },\n getContainer: function ($scope, subclass) {\n var renderer = this.getRenderer();\n if (renderer) {\n return renderer.getContainer(this, $scope, subclass);\n } else {\n throw 'getContainer: no renderer found for the element ' + this.qtiClass + ':' + this.serial;\n }\n },\n toArray: function () {\n var arr = {\n serial: this.serial,\n type: this.qtiClass,\n attributes: this.getAttributes()\n };\n\n if (typeof this.initContainer === 'function') {\n arr.body = this.getBody().toArray();\n }\n if (typeof this.initObject === 'function') {\n arr.object = this.object.toArray();\n }\n\n return arr;\n },\n isEmpty: function () {\n //tells whether the element should be considered empty or not, from the rendering point of view\n return false;\n },\n addClass: function (className) {\n var clazz = this.attr('class') || '';\n if (!_containClass(clazz, className)) {\n this.attr('class', clazz + (clazz.length ? ' ' : '') + className);\n }\n },\n hasClass: function (className) {\n return _containClass(this.attr('class'), className);\n },\n removeClass: function (className) {\n var clazz = this.attr('class') || '';\n if (clazz) {\n var regex = new RegExp('(?:^|\\\\s)' + className + '(?:\\\\s|$)');\n clazz = clazz.replace(regex, ' ').trim();\n\n if (clazz) {\n this.attr('class', clazz);\n } else {\n this.removeAttr('class');\n }\n }\n },\n /**\n * Add or remove class. Setting the optional state will force addition/removal.\n * State is here to keep the jQuery syntax\n *\n * @param {String} className\n * @param {Boolean} [state]\n */\n toggleClass: function (className, state) {\n if (typeof state === 'boolean') {\n return state ? this.addClass(className) : this.removeClass(className);\n }\n\n if (this.hasClass(className)) {\n return this.removeClass(className);\n }\n return this.addClass(className);\n },\n isset: function () {\n return Element.issetElement(this.serial);\n },\n unset: function () {\n return Element.unsetElement(this.serial);\n }\n });\n\n var _containClass = function (allClassStr, className) {\n var regex = new RegExp('(?:^|\\\\s)' + className + '(?:\\\\s|$)', '');\n return allClassStr && regex.test(allClassStr);\n };\n\n //helpers\n Element.isA = function (qtiElement, qtiClass) {\n return qtiElement instanceof Element && qtiElement.is(qtiClass);\n };\n\n Element.getElementBySerial = function (serial) {\n return _instances[serial];\n };\n\n Element.issetElement = function (serial) {\n return !!_instances[serial];\n };\n\n /**\n * Unset a registered element from it's serial\n * @param {String} serial - the element serial\n * @returns {Boolean} true if unset\n */\n Element.unsetElement = function (serial) {\n var element = Element.getElementBySerial(serial);\n\n if (element) {\n var composingElements = element.getComposingElements();\n _.forEach(composingElements, function (elt) {\n delete _instances[elt.serial];\n });\n delete _instances[element.serial];\n\n return true;\n }\n return false;\n };\n\n return Element;\n\n});\n\n","define('taoQtiItem/qtiItem/helper/xmlNsHandler',[],function () { 'use strict';\n\n /*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2017-2022 (original work) Open Assessment Technologies SA\n */\n\n /**\n * XML namespace handling\n */\n\n /**\n * Elements that need to be prefixed\n *\n * @see http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2.xsd\n * @type {string}\n */\n const prefixed = 'article|aside|bdi|figure|footer|header|nav|rb|rp|rt|rtc|ruby|section';\n\n /**\n * Find a possibly existing prefix\n *\n * @param namespaces\n * @param html5Ns\n * @returns {*}\n */\n function getPrefix(namespaces, html5Ns) {\n let key;\n for (key in namespaces) {\n if (namespaces[key] === html5Ns) {\n return key;\n }\n }\n return 'qh5';\n }\n\n var xmlNsHandler = {\n /**\n * Remove prefix to make sure elements are properly displayed\n *\n * @param body\n */\n stripNs: function stripNs(body) {\n const pattern = '([\\\\w]+)\\\\:(' + prefixed + ')';\n const openRegEx = new RegExp('(<' + pattern + ')', 'gi');\n const closeRegEx = new RegExp('(<\\\\/' + pattern + '>)', 'gi');\n return body.replace(openRegEx, '<$3').replace(closeRegEx, '');\n },\n\n /**\n * Add a prefix to those elements that require one\n *\n * @param xml\n * @param namespaces\n * @returns {*}\n */\n restoreNs: function restoreNs(xml, namespaces, ignoreMarkup = false) {\n let xmlCopy = xml;\n if (ignoreMarkup) {\n // cut from xmlCopy ...\n // because markup should be html without namespace qh5\n xmlCopy = xml.replace(/((?=)+)/gim, '');\n }\n const xmlRe = new RegExp('(<(' + prefixed + ')[^>]*>|<\\\\/(' + prefixed + ')>)', 'gi');\n const tagRe = new RegExp('((<)(' + prefixed + ')([^>]*)(>)|(<\\\\/)(' + prefixed + ')(>))', 'i');\n const xmlMatch = xmlCopy.match(xmlRe);\n const imsXsd = 'http://www.imsglobal.org/xsd';\n const html5Ns = imsXsd + '/imsqtiv2p2_html5_v1p0';\n const prefix = getPrefix(namespaces, html5Ns);\n const prefixAtt = 'xmlns:' + prefix + '=\"' + html5Ns + '\"';\n let i = xmlMatch ? xmlMatch.length : 0;\n\n if (!xmlMatch) {\n return xml;\n }\n\n while (i--) {\n const tagMatch = xmlMatch[i].match(tagRe);\n xml = xml.replace(\n xmlMatch[i],\n tagMatch[5]\n ? '<' + prefix + ':' + tagMatch[3] + tagMatch[4] + '>'\n : ''\n );\n }\n\n // we found matches but no namespace has been set\n if (xmlMatch.length && xml.indexOf(prefixAtt) === -1) {\n xml = xml.replace(' ({\n qtiClass: 'responseCondition',\n responseIf: {\n qtiClass: 'responseIf',\n expression: {\n qtiClass: 'match',\n expressions: [\n {\n qtiClass: 'variable',\n attributes: {\n identifier: responseIdentifier,\n },\n },\n {\n qtiClass: 'correct',\n attributes: {\n identifier: responseIdentifier,\n },\n },\n ],\n },\n responseRules: [\n {\n qtiClass: 'setOutcomeValue',\n attributes: {\n identifier: outcomeIdentifier,\n },\n expression: {\n qtiClass: 'sum',\n expressions: [\n {\n qtiClass: 'variable',\n attributes: {\n identifier: outcomeIdentifier,\n },\n },\n {\n qtiClass: 'baseValue',\n attributes: {\n baseType: 'integer'\n },\n value: '1',\n },\n ],\n },\n },\n ],\n },\n }),\n MAP_RESPONSE: (responseIdentifier, outcomeIdentifier) => ({\n qtiClass: 'responseCondition',\n responseIf: {\n qtiClass: 'responseIf',\n expression: {\n qtiClass: 'not',\n expressions: [\n {\n qtiClass: 'isNull',\n expressions: [{\n qtiClass: 'variable',\n attributes: {\n identifier: responseIdentifier,\n },\n }],\n },\n ],\n },\n responseRules: [\n {\n qtiClass: 'setOutcomeValue',\n attributes: {\n identifier: outcomeIdentifier,\n },\n expression: {\n qtiClass: 'sum',\n expressions: [\n {\n qtiClass: 'variable',\n attributes: {\n identifier: outcomeIdentifier,\n }\n },\n {\n qtiClass: 'mapResponse',\n attributes: {\n identifier: responseIdentifier,\n },\n },\n ],\n },\n },\n ],\n },\n }),\n MAP_RESPONSE_POINT: (responseIdentifier, outcomeIdentifier) => ({\n qtiClass: 'responseCondition',\n responseIf: {\n qtiClass: 'responseIf',\n expression: {\n qtiClass: 'not',\n expressions: [\n {\n qtiClass: 'isNull',\n expressions: [{\n qtiClass: 'variable',\n attributes: {\n identifier: responseIdentifier,\n },\n }],\n },\n ],\n },\n responseRules: [\n {\n qtiClass: 'setOutcomeValue',\n attributes: {\n identifier: outcomeIdentifier,\n },\n expression: {\n qtiClass: 'sum',\n expressions: [\n {\n qtiClass: 'variable',\n attributes: {\n identifier: outcomeIdentifier,\n }\n },\n {\n qtiClass: 'mapResponsePoint',\n attributes: {\n identifier: responseIdentifier,\n },\n },\n ],\n },\n },\n ],\n },\n }),\n };\n\n return responseRules;\n\n});\n\n","define('taoQtiItem/qtiItem/helper/response',['lodash', 'taoQtiItem/qtiItem/helper/responseRules'], function (_, responseRulesHelper) { 'use strict';\n\n _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;\n responseRulesHelper = responseRulesHelper && Object.prototype.hasOwnProperty.call(responseRulesHelper, 'default') ? responseRulesHelper['default'] : responseRulesHelper;\n\n /*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014-2020 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);\n *\n */\n\n const _templateNames = {\n MATCH_CORRECT: 'http://www.imsglobal.org/question/qti_v2p1/rptemplates/match_correct',\n MAP_RESPONSE: 'http://www.imsglobal.org/question/qti_v2p1/rptemplates/map_response',\n MAP_RESPONSE_POINT: 'http://www.imsglobal.org/question/qti_v2p1/rptemplates/map_response_point',\n NONE: 'no_response_processing'\n };\n\n\n var response = {\n isUsingTemplate(response, tpl) {\n if (_.isString(tpl)) {\n if (tpl === response.template || _templateNames[tpl] === response.template) {\n return true;\n }\n }\n\n return false;\n },\n isValidTemplateName(tplName) {\n return !!this.getTemplateUriFromName(tplName);\n },\n getTemplateUriFromName(tplName) {\n return _templateNames[tplName] || '';\n },\n getTemplateNameFromUri(tplUri) {\n let tplName = '';\n\n _.forIn(_templateNames, (uri, name) => {\n if (uri === tplUri) {\n tplName = name;\n return false;\n }\n });\n\n return tplName;\n },\n getTemplateNameFromResponseRules(responseIdentifier, responseRules) {\n if (!responseRules) {\n return 'NONE';\n }\n\n const {\n responseIf: {\n responseRules: [outcomeRules = {}] = [],\n } = {}\n } = responseRules;\n const {\n attributes: {\n identifier: outcomeIdentifier,\n } = {},\n } = outcomeRules;\n\n if (!outcomeIdentifier) {\n return '';\n }\n\n return Object.keys(responseRulesHelper).find(\n (key) => _.isEqual(responseRules, responseRulesHelper[key](responseIdentifier, outcomeIdentifier))\n );\n }\n };\n\n return response;\n\n});\n\n","define('taoQtiItem/qtiItem/helper/itemScore',[],function () { 'use strict';\n\n /*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2020 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);\n *\n */\n\n /**\n * Returns iteraction score response rule object\n *\n * @param {String} responseIdentifiers interactions reponse indentifiers\n * @returns {Obeject}\n */\n var itemScore = (responseIdentifiers) => {\n const outcomeExpressions = responseIdentifiers.map((outcomeIdentifier) => ({\n qtiClass: 'variable',\n attributes: {\n identifier: `SCORE_${outcomeIdentifier}`,\n },\n }));\n\n return {\n qtiClass: 'setOutcomeValue',\n attributes: {\n identifier: 'SCORE',\n },\n expression: {\n qtiClass: 'sum',\n expressions: outcomeExpressions,\n },\n };\n };\n\n return itemScore;\n\n});\n\n","define('taoQtiItem/qtiItem/core/Loader',['lodash', 'class', 'taoQtiItem/qtiItem/core/qtiClasses', 'taoQtiItem/qtiItem/core/Element', 'taoQtiItem/qtiItem/helper/xmlNsHandler', 'core/moduleLoader', 'taoQtiItem/qtiItem/helper/response', 'taoQtiItem/qtiItem/helper/itemScore'], function (_, _class, qtiClasses, Element, xmlNsHandler, moduleLoader, responseHelper, itemScoreHelper) { 'use strict';\n\n _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;\n qtiClasses = qtiClasses && Object.prototype.hasOwnProperty.call(qtiClasses, 'default') ? qtiClasses['default'] : qtiClasses;\n Element = Element && Object.prototype.hasOwnProperty.call(Element, 'default') ? Element['default'] : Element;\n xmlNsHandler = xmlNsHandler && Object.prototype.hasOwnProperty.call(xmlNsHandler, 'default') ? xmlNsHandler['default'] : xmlNsHandler;\n moduleLoader = moduleLoader && Object.prototype.hasOwnProperty.call(moduleLoader, 'default') ? moduleLoader['default'] : moduleLoader;\n responseHelper = responseHelper && Object.prototype.hasOwnProperty.call(responseHelper, 'default') ? responseHelper['default'] : responseHelper;\n itemScoreHelper = itemScoreHelper && Object.prototype.hasOwnProperty.call(itemScoreHelper, 'default') ? itemScoreHelper['default'] : itemScoreHelper;\n\n /*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015-2020 (original work) Open Assessment Technologies SA ;\n *\n */\n\n /**\n * If a property is given as a serialized JSON object, parse it directly to a JS object\n */\n const loadPortableCustomElementProperties = (portableElement, rawProperties) => {\n var properties = {};\n\n _.forOwn(rawProperties, (value, key) => {\n try {\n properties[key] = JSON.parse(value);\n } catch (e) {\n properties[key] = value;\n }\n });\n portableElement.properties = properties;\n };\n\n const loadPortableCustomElementData = (portableElement, data) => {\n portableElement.typeIdentifier = data.typeIdentifier;\n portableElement.markup = data.markup;\n portableElement.entryPoint = data.entryPoint;\n portableElement.libraries = data.libraries;\n portableElement.setNamespace('', data.xmlns);\n\n loadPortableCustomElementProperties(portableElement, data.properties);\n };\n\n var Loader = Class.extend({\n init(item, classesLocation) {\n this.qti = {}; //loaded qti classes are store here\n this.classesLocation = {};\n this.item = item || null; //starts either from scratch or with an existing item object\n\n this.setClassesLocation(classesLocation || qtiClasses); //load default location for qti classes model\n },\n setClassesLocation(qtiClassesList) {\n _.extend(this.classesLocation, qtiClassesList);\n\n return this;\n },\n getRequiredClasses(data) {\n let ret = [];\n\n for (let i in data) {\n if (i === 'qtiClass' && data[i] !== '_container' && i !== 'rootElement') {\n //although a _container is a concrete class in TAO, it is not defined in QTI standard\n ret.push(data[i]);\n } else if (typeof data[i] === 'object' && i !== 'responseRules') {\n //responseRules should'nt be part of the parsing\n ret = _.union(ret, this.getRequiredClasses(data[i]));\n }\n }\n\n return ret;\n },\n loadRequiredClasses(data, callback, reload) {\n let requiredClass;\n const requiredClasses = this.getRequiredClasses(data, reload);\n const required = [];\n\n for (let i in requiredClasses) {\n requiredClass = requiredClasses[i];\n if (this.classesLocation[requiredClass]) {\n required.push({\n module: this.classesLocation[requiredClass],\n category: 'qti'\n });\n } else {\n throw new Error(`missing qti class location declaration : ${requiredClass}`);\n }\n }\n\n moduleLoader([], () => true).addList(required).load().then(loadeded => {\n loadeded.forEach(QtiClass => {\n this.qti[QtiClass.prototype.qtiClass] = QtiClass;\n });\n callback.call(this, this.qti);\n });\n },\n getLoadedClasses() {\n return _.keys(this.qti);\n },\n loadItemData(data, callback) {\n this.loadRequiredClasses(data, Qti => {\n if (typeof data === 'object' && data.qtiClass === 'assessmentItem') {\n //unload an item from it's serial (in case of a reload)\n if (data.serial) {\n Element.unsetElement(data.serial);\n }\n\n this.item = new Qti.assessmentItem(data.serial, data.attributes || {});\n this.loadContainer(this.item.getBody(), data.body);\n\n for (let i in data.outcomes) {\n const outcome = this.buildOutcome(data.outcomes[i]);\n\n if (outcome) {\n this.item.addOutcomeDeclaration(outcome);\n }\n }\n\n for (let i in data.feedbacks) {\n const feedback = this.buildElement(data.feedbacks[i]);\n\n if (feedback) {\n this.item.addModalFeedback(feedback);\n }\n }\n\n for (let i in data.stylesheets) {\n const stylesheet = this.buildElement(data.stylesheets[i]);\n\n if (stylesheet) {\n this.item.addStylesheet(stylesheet);\n }\n }\n\n //important : build responses after all modal feedbacks and outcomes has been loaded, because the simple feedback rules need to reference them\n let responseRules = data.responseProcessing && data.responseProcessing.responseRules\n ? [...data.responseProcessing.responseRules]\n : [];\n for (let i in data.responses) {\n const responseIdentifier = data.responses[i].identifier;\n const responseRuleItemIndex = responseRules.findIndex(({ responseIf: {\n expression: {\n expressions: [expression = {}] = [],\n } = {}\n } = {} }) => expression.attributes\n && expression.attributes.identifier === responseIdentifier\n || (\n expression.expressions\n && expression.expressions[0]\n && expression.expressions[0].attributes\n && expression.expressions[0].attributes.identifier === responseIdentifier\n )\n );\n const [responseRule] = responseRuleItemIndex !== -1\n ? responseRules.splice(responseRuleItemIndex, 1)\n : [];\n\n const response = this.buildResponse(\n data.responses[i],\n responseRule\n );\n\n if (response) {\n this.item.addResponseDeclaration(response);\n\n const feedbackRules = data.responses[i].feedbackRules;\n\n if (feedbackRules) {\n _.forIn(feedbackRules, (fbData, serial) => {\n const {\n attributes: {\n identifier: feedbackOutcomeIdentifier,\n } = {}\n } = data.outcomes[fbData.feedbackOutcome] || {};\n response.feedbackRules[serial] = this.buildSimpleFeedbackRule(fbData, response);\n\n // remove feedback response rule from response rules array\n const feedbackResponseRuleIndex = responseRules.findIndex(({\n responseIf: {\n responseRules: [setOutcomeResponseRule = {}] = [],\n } = {}\n }) => {\n const { attributes = {}, qtiClass } = setOutcomeResponseRule;\n const outcomeIdentifier = attributes.identifier;\n\n return feedbackOutcomeIdentifier === outcomeIdentifier\n && qtiClass === 'setOutcomeValue';\n });\n\n if (feedbackResponseRuleIndex !== -1) {\n responseRules.splice(feedbackResponseRuleIndex, 1);\n }\n });\n }\n }\n }\n\n const responseIdentifiers = Object.keys(this.item.responses || {})\n .map((responseKey) => this.item.responses[responseKey].attributes.identifier);\n\n if (data.responseProcessing) {\n const customResponseProcessing =\n (\n responseRules.length > 0\n && !(\n responseRules.length === 1\n && _.isEqual(\n responseRules[0],\n itemScoreHelper(\n responseIdentifiers\n )\n )\n )\n )\n || (\n this.item.responses\n && Object.keys(this.item.responses)\n .some((responseKey) => !this.item.responses[responseKey].template)\n );\n\n this.item.setResponseProcessing(this.buildResponseProcessing(data.responseProcessing, customResponseProcessing));\n }\n this.item.setNamespaces(data.namespaces);\n this.item.setSchemaLocations(data.schemaLocations);\n this.item.setApipAccessibility(data.apipAccessibility);\n }\n\n if (typeof callback === 'function') {\n callback.call(this, this.item);\n }\n });\n },\n loadAndBuildElement(data, callback) {\n this.loadRequiredClasses(data, () => {\n const element = this.buildElement(data);\n\n if (typeof callback === 'function') {\n callback.call(this, element);\n }\n });\n },\n loadElement(element, data, callback) {\n this.loadRequiredClasses(data, () => {\n this.loadElementData(element, data);\n\n if (typeof callback === 'function') {\n callback.call(this, element);\n }\n });\n },\n /**\n * Load ALL given elements into existing loaded item\n *\n * @todo to be renamed to loadItemElements\n * @param {object} data\n * @param {function} callback\n * @returns {undefined}\n */\n loadElements(data, callback) {\n if (!this.item) {\n throw new Error('QtiLoader : cannot load elements in empty item');\n }\n\n this.loadRequiredClasses(data, () => {\n const allElements = this.item.getComposingElements();\n\n for (let i in data) {\n const elementData = data[i];\n\n if (elementData && elementData.qtiClass && elementData.serial) {\n //find and update element\n if (allElements[elementData.serial]) {\n this.loadElementData(allElements[elementData.serial], elementData);\n }\n }\n }\n\n if (typeof callback === 'function') {\n callback.call(this, this.item);\n }\n });\n },\n buildResponse(data, responseRule) {\n const response = this.buildElement(data);\n\n response.template = responseHelper.getTemplateUriFromName(\n responseHelper.getTemplateNameFromResponseRules(data.identifier, responseRule)\n )\n || data.howMatch\n || null;\n\n response.defaultValue = data.defaultValue || null;\n response.correctResponse = data.correctResponses || null;\n\n if (_.size(data.mapping)) {\n response.mapEntries = data.mapping;\n } else if (_.size(data.areaMapping)) {\n response.mapEntries = data.areaMapping;\n } else {\n response.mapEntries = {};\n }\n\n response.mappingAttributes = data.mappingAttributes || {};\n\n return response;\n },\n buildSimpleFeedbackRule(data, response) {\n const feedbackRule = this.buildElement(data);\n\n feedbackRule.setCondition(response, data.condition, data.comparedValue || null);\n\n // feedbackRule.comparedOutcome = this.item.responses[data.comparedOutcome] || null;\n feedbackRule.feedbackOutcome = this.item.outcomes[data.feedbackOutcome] || null;\n feedbackRule.feedbackThen = this.item.modalFeedbacks[data.feedbackThen] || null;\n feedbackRule.feedbackElse = this.item.modalFeedbacks[data.feedbackElse] || null;\n\n //associate the compared outcome to the feedbacks if applicable\n const comparedOutcome = feedbackRule.comparedOutcome;\n\n if (feedbackRule.feedbackThen) {\n feedbackRule.feedbackThen.data('relatedResponse', comparedOutcome);\n }\n\n if (feedbackRule.feedbackElse) {\n feedbackRule.feedbackElse.data('relatedResponse', comparedOutcome);\n }\n\n return feedbackRule;\n },\n buildOutcome(data) {\n const outcome = this.buildElement(data);\n outcome.defaultValue = data.defaultValue || null;\n\n return outcome;\n },\n buildResponseProcessing(data, customResponseProcessing) {\n const rp = this.buildElement(data);\n\n if (customResponseProcessing) {\n rp.xml = data.data;\n rp.processingType = 'custom';\n } else {\n rp.processingType = 'templateDriven';\n }\n\n return rp;\n },\n loadContainer(bodyObject, bodyData) {\n if (!Element.isA(bodyObject, '_container')) {\n throw new Error('bodyObject must be a QTI Container');\n }\n\n if (!(bodyData && typeof bodyData.body === 'string' && typeof bodyData.elements === 'object')) {\n throw new Error('wrong bodydata format');\n }\n //merge attributes when loading element data\n const attributes = _.defaults(bodyData.attributes || {}, bodyObject.attributes || {});\n bodyObject.setAttributes(attributes);\n\n for (let serial in bodyData.elements) {\n const eltData = bodyData.elements[serial];\n const element = this.buildElement(eltData);\n\n //check if class is loaded:\n if (element) {\n bodyObject.setElement(element, bodyData.body);\n }\n }\n\n bodyObject.body(xmlNsHandler.stripNs(bodyData.body));\n },\n buildElement(elementData) {\n if (!(elementData && elementData.qtiClass && elementData.serial)) {\n throw new Error('wrong elementData format');\n }\n\n const className = elementData.qtiClass;\n\n if (!this.qti[className]) {\n throw new Error(`the qti element class does not exist: ${className}`);\n }\n\n const elt = new this.qti[className](elementData.serial);\n this.loadElementData(elt, elementData);\n\n return elt;\n },\n loadElementData(element, data) {\n //merge attributes when loading element data\n const attributes = _.defaults(data.attributes || {}, element.attributes || {});\n element.setAttributes(attributes);\n\n let body = data.body;\n if (!body && data.text && data.qtiClass === 'inlineChoice') {\n body = { body: data.text, elements: {} };\n }\n if (element.body && body) {\n if (element.bdy) {\n this.loadContainer(element.getBody(), body);\n }\n }\n\n if (element.object && data.object) {\n if (element.object) {\n this.loadObjectData(element.object, data.object);\n }\n }\n\n if (Element.isA(element, 'interaction')) {\n this.loadInteractionData(element, data);\n } else if (Element.isA(element, 'choice')) {\n this.loadChoiceData(element, data);\n } else if (Element.isA(element, 'math')) {\n this.loadMathData(element, data);\n } else if (Element.isA(element, 'infoControl')) {\n this.loadPicData(element, data);\n } else if (Element.isA(element, '_tooltip')) {\n this.loadTooltipData(element, data);\n }\n\n return element;\n },\n loadInteractionData(interaction, data) {\n if (Element.isA(interaction, 'blockInteraction')) {\n if (data.prompt) {\n this.loadContainer(interaction.prompt.getBody(), data.prompt);\n }\n }\n\n this.buildInteractionChoices(interaction, data);\n\n if (Element.isA(interaction, 'customInteraction')) {\n this.loadPciData(interaction, data);\n }\n },\n buildInteractionChoices(interaction, data) {\n // note: Qti.ContainerInteraction (Qti.GapMatchInteraction and Qti.HottextInteraction) has already been parsed by builtElement(interacionData);\n if (data.choices) {\n if (Element.isA(interaction, 'matchInteraction')) {\n for (let set = 0; set < 2; set++) {\n if (!data.choices[set]) {\n throw new Error(`missing match set #${set}`);\n }\n\n const matchSet = data.choices[set];\n\n for (let serial in matchSet) {\n const choice = this.buildElement(matchSet[serial]);\n\n if (choice) {\n interaction.addChoice(choice, set);\n }\n }\n }\n } else {\n for (let serial in data.choices) {\n const choice = this.buildElement(data.choices[serial]);\n\n if (choice) {\n interaction.addChoice(choice);\n }\n }\n }\n\n if (Element.isA(interaction, 'graphicGapMatchInteraction')) {\n if (data.gapImgs) {\n for (let serial in data.gapImgs) {\n const gapImg = this.buildElement(data.gapImgs[serial]);\n\n if (gapImg) {\n interaction.addGapImg(gapImg);\n }\n }\n }\n }\n }\n },\n loadChoiceData(choice, data) {\n if (Element.isA(choice, 'textVariableChoice')) {\n choice.val(data.text);\n } else if (Element.isA(choice, 'gapImg')) ; else if (Element.isA(choice, 'gapText')) {\n // this ensure compatibility of Qti 2.1 items\n if (!choice.body()) {\n choice.body(data.text);\n }\n } else if (Element.isA(choice, 'containerChoice')) ;\n },\n loadObjectData(object, data) {\n object.setAttributes(data.attributes);\n\n //@todo: manage object like a container\n if (data._alt) {\n if (data._alt.qtiClass === 'object') {\n object._alt = Loader.buildElement(data._alt);\n } else {\n object._alt = data._alt;\n }\n }\n },\n loadMathData(math, data) {\n math.ns = data.ns || {};\n math.setMathML(data.mathML || '');\n _.forIn(data.annotations || {}, (value, encoding) => {\n math.setAnnotation(encoding, value);\n });\n },\n loadTooltipData(tooltip, data) {\n tooltip.content(data.content);\n },\n loadPciData(pci, data) {\n loadPortableCustomElementData(pci, data);\n },\n loadPicData(pic, data) {\n loadPortableCustomElementData(pic, data);\n }\n });\n\n return Loader;\n\n});\n\n","define('taoQtiItem/qtiItem/helper/pci',['lodash'], function (_) { 'use strict';\n\n _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;\n\n var pci = {\n getRawValues: function (pciVar) {\n if (_.isPlainObject(pciVar)) {\n if (typeof pciVar.base !== 'undefined') {\n return _.values(pciVar.base);\n } else if (pciVar.list) {\n return _.values(pciVar.list);\n }\n }\n throw new Error('unsupported type ');\n }\n };\n\n return pci;\n\n});\n\n","define('taoQtiItem/qtiItem/helper/container',['lodash', 'jquery'], function (_, $) { 'use strict';\n\n _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;\n $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;\n\n /*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA\n **/\n\n /**\n * Prefix used to the variable storage\n * @type String\n */\n var _prefix = 'x-tao-';\n\n /**\n * Check if the element is of a qti container type\n *\n * @private\n * @param {Object} element\n * @returns {Boolean}\n */\n function _checkContainerType(element) {\n if (_.isFunction(element.initContainer) && _.isFunction(element.body)) {\n return true;\n } else {\n throw 'the element is not of a container type';\n }\n }\n\n /**\n * Get the body element of the container\n *\n * @private\n * @param {Object} element\n * @returns {JQuery}\n */\n function _getBodyDom(element) {\n if (_checkContainerType(element)) {\n return $('
')\n .html(element.body())\n .find('.x-tao-wrapper');\n }\n }\n\n /**\n * Add a class to the body element of the qti container\n *\n * @private\n * @param {Object} element\n * @param {String} newClass\n * @param {String} [oldClass]\n */\n function _setBodyDomClass(element, newClass, oldClass) {\n if (_checkContainerType(element) && (oldClass || newClass)) {\n var $wrapper = $('
').html(element.body());\n //set css class to element\n _setDomClass($wrapper, newClass, oldClass);\n //set to the model\n element.body($wrapper.html());\n }\n }\n\n /**\n * Switch class to the wrapped DOM\n *\n * @param {JQuery} $wrapper\n * @param {String} newClass\n * @param {String} oldClass\n * @returns {undefined}\n */\n function _setDomClass($wrapper, newClass, oldClass) {\n var $bodyDom = $wrapper.find('.x-tao-wrapper');\n if (!$bodyDom.length) {\n //create one\n $wrapper.wrapInner('
');\n $bodyDom = $wrapper.find('.x-tao-wrapper');\n }\n if (oldClass) {\n $bodyDom.removeClass(oldClass);\n }\n if (newClass) {\n $bodyDom.addClass(newClass);\n }\n }\n\n /**\n * Add manually the encoded information to a dom element\n *\n * @param {JQuery} $wrapper - the wrapper of the element that will holds the information\n * @param {String} dataName - the name of the information\n * @param {String} newValue - the new value to be added\n * @param {String} [oldValue] - the old value to be removed\n * @returns {undefined}\n */\n function setEncodedDataToDom($wrapper, dataName, newValue, oldValue) {\n _setDomClass($wrapper, _getEncodedDataString(dataName, newValue), _getEncodedDataString(dataName, oldValue));\n }\n\n /**\n * Get the full variable name for the data store\n *\n * @param {String} dataName\n * @param {String} value\n * @returns {String}\n */\n function _getEncodedDataString(dataName, value) {\n if (dataName && value) {\n return _prefix + dataName + '-' + value;\n }\n return '';\n }\n\n /**\n * Set a data string to the element identified by its dataName\n *\n * @param {Object} element\n * @param {String} dataName\n * @param {String} newValue\n * @returns {undefined}\n */\n function setEncodedData(element, dataName, newValue) {\n var oldValue = getEncodedData(element, dataName);\n return _setBodyDomClass(\n element,\n _getEncodedDataString(dataName, newValue),\n _getEncodedDataString(dataName, oldValue)\n );\n }\n\n /**\n * Remove the stored data from the element by its dataName\n *\n * @param {Object} element\n * @param {String} dataName\n * @returns {unresolved}\n */\n function removeEncodedData(element, dataName) {\n var oldValue = getEncodedData(element, dataName);\n if (dataName && oldValue) {\n _setBodyDomClass(element, '', _getEncodedDataString(dataName, oldValue));\n }\n }\n\n /**\n * Check if the stored data exist\n *\n * @param {Object} element\n * @param {String} dataName\n * @param {String} value\n * @returns {Boolean}\n */\n function hasEncodedData(element, dataName, value) {\n var $body = _getBodyDom(element);\n if ($body && $body.length && dataName && value) {\n return $body.hasClass(_getEncodedDataString(dataName, value));\n }\n return false;\n }\n\n /**\n * Get the encoded data identified by its dataName\n *\n * @param {Object} element\n * @param {String} dataName\n * @returns {String}\n */\n function getEncodedData(element, dataName) {\n var regex, matches;\n var $body = _getBodyDom(element);\n if (dataName && $body && $body.length && $body.attr('class')) {\n regex = new RegExp(_prefix + dataName + '-([a-zA-Z0-9-._]*)');\n matches = $body.attr('class').match(regex);\n if (matches) {\n return matches[1];\n }\n }\n }\n\n /**\n * Provide a set of helper functions to set,retirve and manage string data to a container type qti element.\n */\n var container = {\n setEncodedData: setEncodedData,\n hasEncodedData: hasEncodedData,\n getEncodedData: getEncodedData,\n removeEncodedData: removeEncodedData,\n setEncodedDataToDom: setEncodedDataToDom\n };\n\n return container;\n\n});\n\n","define('taoQtiItem/qtiRunner/modalFeedback/inlineRenderer',['lodash', 'jquery', 'context', 'taoQtiItem/qtiItem/helper/pci', 'taoQtiItem/qtiItem/helper/container', 'handlebars', 'lib/handlebars/helpers', 'iframeNotifier'], function (_, $$1, context, pci, containerHelper, Handlebars, Helpers0, iframeNotifier) { 'use strict';\n\n _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;\n $$1 = $$1 && Object.prototype.hasOwnProperty.call($$1, 'default') ? $$1['default'] : $$1;\n context = context && Object.prototype.hasOwnProperty.call(context, 'default') ? context['default'] : context;\n pci = pci && Object.prototype.hasOwnProperty.call(pci, 'default') ? pci['default'] : pci;\n containerHelper = containerHelper && Object.prototype.hasOwnProperty.call(containerHelper, 'default') ? containerHelper['default'] : containerHelper;\n Handlebars = Handlebars && Object.prototype.hasOwnProperty.call(Handlebars, 'default') ? Handlebars['default'] : Handlebars;\n Helpers0 = Helpers0 && Object.prototype.hasOwnProperty.call(Helpers0, 'default') ? Helpers0['default'] : Helpers0;\n iframeNotifier = iframeNotifier && Object.prototype.hasOwnProperty.call(iframeNotifier, 'default') ? iframeNotifier['default'] : iframeNotifier;\n\n if (!Helpers0.__initialized) {\n Helpers0(Handlebars);\n Helpers0.__initialized = true;\n }\n var Template = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\n helpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", helper, options, helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;\n\n\n buffer += \"
  • \\n \\n \"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"OK\", options) : helperMissing.call(depth0, \"__\", \"OK\", options)))\n + \"\\n \\n
  • \";\n return buffer;\n });\n function previewOkBtn(data, options, asString) {\n var html = Template(data, options);\n return (asString || true) ? html : $(html);\n }\n\n if (!Helpers0.__initialized) {\n Helpers0(Handlebars);\n Helpers0.__initialized = true;\n }\n var Template$1 = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\n helpers = this.merge(helpers, Handlebars.helpers); \n\n\n return \"
  • \\n \\n \\n OK\\n \\n
  • \";\n });\n function deliveryOkBtn(data, options, asString) {\n var html = Template$1(data, options);\n return (asString || true) ? html : $(html);\n }\n\n /*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Techonologies SA;\n *\n */\n\n var timeout = (context.timeout > 0 ? context.timeout + 1 : 30) * 1000;\n\n /**\n * Main function for the module. It loads and render the feedbacks accodring to the given itemSession variables\n *\n * @param {Object} item - the standard tao qti item object\n * @param {Object} loader - the item loader instance\n * @param {Object} renderer - the item render instance\n * @param {Object} itemSession - session information containing the list of feedbacks to display\n * @param {Function} onCloseCallback - the callback to be executed when the feedbacks are closed\n * @param {Function} [onShowCallback] - the callback to be executed when the feedbacks are shown\n * @returns {Number} Number of feedbacks to be displayed\n */\n function showFeedbacks(item, loader, renderer, itemSession, onCloseCallback, onShowCallback) {\n var interactionsDisplayInfo = getInteractionsDisplayInfo(item);\n var messages = {};\n var renderedFeebacks = [];\n var renderingQueue = [];\n var $itemContainer = item.getContainer();\n var $itemBody = $itemContainer.children('.qti-itemBody');\n var firstFeedback;\n\n _.forEach(item.modalFeedbacks, function (feedback) {\n var feedbackIds, message, $container, comparedOutcome, _currentMessageGroupId, interactionInfo;\n var outcomeIdentifier = feedback.attr('outcomeIdentifier');\n var order = -1;\n\n //verify if the feedback should be displayed\n if (itemSession[outcomeIdentifier]) {\n //is the feedback in the list of feedbacks to be displayed ?\n feedbackIds = pci.getRawValues(itemSession[outcomeIdentifier]);\n if (_.indexOf(feedbackIds, feedback.id()) === -1) {\n return true; //continue with next feedback\n }\n\n //which group of feedbacks (interaction related) the feedback belongs to ?\n message = getFeedbackMessageSignature(feedback);\n comparedOutcome = containerHelper.getEncodedData(feedback, 'relatedOutcome');\n interactionInfo = _.find(interactionsDisplayInfo, { responseIdentifier: comparedOutcome });\n if (comparedOutcome && interactionInfo) {\n $container = interactionInfo.displayContainer;\n _currentMessageGroupId = interactionInfo.messageGroupId;\n order = interactionInfo.order;\n } else {\n $container = $itemBody;\n _currentMessageGroupId = '__item__';\n }\n //is this message already displayed ?\n if (!messages[_currentMessageGroupId]) {\n messages[_currentMessageGroupId] = [];\n }\n if (_.indexOf(messages[_currentMessageGroupId], message) >= 0) {\n return true; //continue\n } else {\n messages[_currentMessageGroupId].push(message);\n }\n\n //ok, display feedback\n renderingQueue.push({\n feedback: feedback,\n $container: $container,\n order: order\n });\n }\n });\n\n if (renderingQueue.length) {\n renderingQueue = _.sortBy(renderingQueue, 'order');\n\n //clear previously displayed feedbacks\n clearModalFeedbacks($itemContainer);\n\n //process rendering queue\n _.forEach(renderingQueue, function (renderingToken) {\n renderModalFeedback(\n renderingToken.feedback,\n loader,\n renderer,\n renderingToken.$container,\n $itemContainer,\n function (renderingData) {\n // keep the first feedback to force focus on it if needed\n if (!firstFeedback) {\n firstFeedback = $$1(renderingData.dom);\n }\n\n $$1('img', renderingData.dom).on('load', function () {\n iframeNotifier.parent('itemcontentchange');\n });\n\n //record rendered feedback for later reference\n renderedFeebacks.push(renderingData);\n if (renderedFeebacks.length === renderingQueue.length) {\n //rendering processing queue completed\n iframeNotifier.parent('itemcontentchange');\n\n // set the focus on the first feedback if needed\n // TODO: this is heavily related to the old TestRunner, with the ugly iframes.\n // To make this working, a search is made accross parent frames.\n // When the InlineFeedbacks will be ported to the new TestRunner, a strong improvement will be needed!\n if (firstFeedback) {\n autoscroll(firstFeedback);\n }\n\n //if an optional \"on show modal\" callback has been provided, execute it\n if (_.isFunction(onShowCallback)) {\n onShowCallback();\n }\n }\n }\n );\n });\n\n //if any feedback is displayed, replace the controls by a \"ok\" button\n replaceControl(renderedFeebacks, $itemContainer, onCloseCallback);\n }\n\n return renderingQueue.length;\n }\n\n /**\n * Gets the QTI Container element\n * @returns {jQuery|null}\n */\n function getQtiContainer() {\n var me = window;\n var $container = null;\n var max = 10;\n\n while (me && me.__knownParent__ && max--) {\n me = me.parent;\n if (me && me.$) {\n $container = me.$('#qti-content');\n if ($container.length) {\n return $container;\n }\n }\n }\n return null;\n }\n\n /**\n * Keeps an element visible inside the QTI container.\n * If the element is outside the container viewport, scroll to display it.\n * @param {String|jQuery|HTMLElement} element\n */\n function autoscroll(element) {\n var $element = $$1(element);\n var $container = getQtiContainer();\n var currentScrollTop, minScrollTop, maxScrollTop, scrollTop;\n\n if ($element.length && $container) {\n currentScrollTop = $container.scrollTop();\n maxScrollTop = $element.offset().top;\n minScrollTop = maxScrollTop - $container.height() + $element.outerHeight();\n scrollTop = Math.max(Math.min(maxScrollTop, currentScrollTop), minScrollTop);\n if (scrollTop !== currentScrollTop) {\n $container.animate({ scrollTop: scrollTop });\n }\n }\n }\n\n /**\n * Extract the display information for an interaction-related feedback\n *\n * @private\n * @param {Object} interaction - a qti interaction object\n * @returns {Object} Object containing useful display information\n */\n function extractDisplayInfo(interaction) {\n var $interactionContainer = interaction.getContainer();\n var responseIdentifier = interaction.attr('responseIdentifier');\n var messageGroupId, $displayContainer;\n\n if (interaction.is('inlineInteraction')) {\n $displayContainer = $interactionContainer.closest('[class*=\" col-\"], [class^=\"col-\"]');\n messageGroupId = $displayContainer.attr('data-messageGroupId');\n if (!messageGroupId) {\n //generate a messageFroupId\n messageGroupId = _.uniqueId('inline_message_group_');\n $displayContainer.attr('data-messageGroupId', messageGroupId);\n }\n } else {\n messageGroupId = responseIdentifier;\n $displayContainer = $interactionContainer;\n }\n\n return {\n responseIdentifier: responseIdentifier,\n interactionContainer: $interactionContainer,\n displayContainer: $displayContainer,\n messageGroupId: messageGroupId,\n order: -1\n };\n }\n\n /**\n * Get interaction display information sorted in the order of appearance within the item\n *\n * @param {Object} item\n * @returns {Array}\n */\n function getInteractionsDisplayInfo(item) {\n var interactionsDisplayInfo = [];\n var $itemContainer = item.getContainer();\n var interactionOrder = 0;\n\n //extract all interction related information needed to display their\n _.forEach(item.getComposingElements(), function (element) {\n var responseIdentifier;\n if (element.is('interaction')) {\n responseIdentifier = element.attr('responseIdentifier');\n interactionsDisplayInfo.push(extractDisplayInfo(element));\n }\n });\n\n //sort interactionsDisplayInfo on the item level\n $itemContainer.find('.qti-interaction').each(function () {\n var interactionContainer = this;\n _.forEach(interactionsDisplayInfo, function (_interactionInfo) {\n if (_interactionInfo.interactionContainer[0] === interactionContainer) {\n _interactionInfo.order = interactionOrder;\n return false;\n }\n });\n interactionOrder++;\n });\n interactionsDisplayInfo = _.sortBy(interactionsDisplayInfo, 'order');\n\n return interactionsDisplayInfo;\n }\n\n /**\n * Remove previously displayed feedbacks contained in the given container element\n *\n * @param {JQuery} $itemContainer\n */\n function clearModalFeedbacks($itemContainer) {\n $itemContainer.find('.qti-modalFeedback').remove();\n }\n\n /**\n * Render a modal feedback into a given container, scoped within an item container\n *\n * @private\n * @param {type} feedback - feedback object\n * @param {type} loader - loader instance\n * @param {type} renderer - renderer instance\n * @param {JQuery} $container - the targeted feedback container\n * @param {JQuery} $itemContainer - the item container\n * @param {type} renderedCallback - callback when the feedback has been rendered\n * @returns {undefined}\n */\n function renderModalFeedback(feedback, loader, renderer, $container, $itemContainer, renderedCallback) {\n //load (potential) new qti classes used in the modal feedback (e.g. math, img)\n renderer.load(function () {\n //render the modal feedback\n var $modalFeedback = $$1(\n feedback.render({\n inline: true\n })\n );\n var done = function done() {\n renderedCallback({\n identifier: feedback.id(),\n serial: feedback.getSerial(),\n dom: $modalFeedback\n });\n };\n $container.append($modalFeedback);\n\n // Race between postRendering and timeout\n // postRendering waits for everything to be resolved or one reject\n Promise.race([\n Promise.all(\n _.map(feedback.getComposingElements(), function (elt) {\n //render also internal elements, such as math or img\n return elt.postRender({}, '', renderer).pop();\n })\n ),\n new Promise(function (resolve, reject) {\n _.delay(reject, timeout, new Error('Post rendering ran out of time.'));\n })\n ])\n .then(done)\n .catch(function (err) {\n //in case of postRendering issue, we are also done\n done();\n throw new Error('Error in post rendering : ' + err);\n });\n }, loader.getLoadedClasses());\n }\n\n /**\n * Replace the controls in the running environment with an \"OK\" button to trigger the end of the feedback state\n *\n * @private\n * @todo FIX ME ! replace the hack to preview and delivery toolbar with a proper plugin in the new test runner is ready\n * @param {Array} renderedFeebacks\n * @param {JQuery} $itemContainer\n * @param {Function} callback\n */\n function replaceControl(renderedFeebacks, $itemContainer, callback) {\n var $scope, $controls, $toggleContainer;\n if (window.parent && window.parent.parent && window.parent.parent.$) {\n if ($itemContainer.parents('.tao-preview-scope').length) {\n //preview mode\n $scope = window.parent.parent.$('#preview-console');\n $controls = $scope.find('.preview-console-header .action-bar li:visible');\n $toggleContainer = $scope.find('.console-button-action-bar');\n initControlToggle(renderedFeebacks, $itemContainer, $controls, $toggleContainer, previewOkBtn, callback);\n } else {\n //delivery delivery\n $scope = window.parent.parent.$('body.qti-test-scope .bottom-action-bar');\n $controls = $scope.find('li:visible');\n $toggleContainer = $scope.find('.navi-box-list');\n initControlToggle(renderedFeebacks, $itemContainer, $controls, $toggleContainer, deliveryOkBtn, callback);\n }\n } else {\n //not in an iframe, add to item body for now\n $scope = $itemContainer.find('#modalFeedbacks');\n initControlToggle(renderedFeebacks, $itemContainer, $$1(), $scope, previewOkBtn, callback);\n }\n }\n\n /**\n * Initialize the \"OK\" button to trigger the end of the feedback mode\n *\n * @private\n * @param {Array} renderedFeebacks\n * @param {JQuery} $itemContainer\n * @param {JQuery} $controls\n * @param {JQuery} $toggleContainer\n * @param {Function} toggleButtonTemplate\n * @param {Function} callback\n */\n function initControlToggle(\n renderedFeebacks,\n $itemContainer,\n $controls,\n $toggleContainer,\n toggleButtonTemplate,\n callback\n ) {\n var $ok = $$1(toggleButtonTemplate()).click(function () {\n //end feedback mode, hide feedbacks\n _.forEach(renderedFeebacks, function (fb) {\n fb.dom.hide();\n });\n\n //restore controls\n uncover([$itemContainer]);\n $ok.remove();\n $controls.show();\n\n //exec callback\n callback();\n });\n\n $controls.hide();\n $toggleContainer.append($ok);\n cover([$itemContainer]);\n }\n\n /**\n * Cover the given interaction containers with a transparent layer to prevent user interacting with the item\n * @private\n * @param {Array} interactionContainers\n */\n function cover(interactionContainers) {\n var $cover = $$1('
    ');\n _.forEach(interactionContainers, function ($interaction) {\n $interaction.append($cover);\n });\n }\n\n /**\n * Remove the layer set by the function cover()\n * @private\n * @param {Array} interactionContainers\n */\n function uncover(interactionContainers) {\n _.forEach(interactionContainers, function ($interaction) {\n $interaction.find('.interaction-cover').remove();\n });\n }\n\n /**\n * Provide the feedbackMessage signature to check if the feedback contents should be considered equals\n *\n * @param {type} feedback\n * @returns {String}\n */\n function getFeedbackMessageSignature(feedback) {\n return ('' + feedback.body() + feedback.attr('title'))\n .toLowerCase()\n .trim()\n .replace(/x-tao-[a-zA-Z0-9\\-._\\s]*/g, '');\n }\n\n var inlineRenderer = {\n showFeedbacks: showFeedbacks\n };\n\n return inlineRenderer;\n\n});\n\n","define('taoQtiItem/qtiRunner/modalFeedback/modalRenderer',['lodash', 'jquery', 'async', 'taoQtiItem/qtiItem/helper/pci'], function (_, $, async, pci) { 'use strict';\n\n _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;\n $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;\n async = async && Object.prototype.hasOwnProperty.call(async, 'default') ? async['default'] : async;\n pci = pci && Object.prototype.hasOwnProperty.call(pci, 'default') ? pci['default'] : pci;\n\n /*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Techonologies SA;\n *\n */\n\n /**\n * Main function for the module. It loads and render the feedbacks accodring to the given itemSession variables\n *\n * @param {Object} item - the standard tao qti item object\n * @param {Object} loader - the item loader instance\n * @param {Object} renderer - the item render instance\n * @param {Object} itemSession - session information containing the list of feedbacks to display\n * @param {Function} onCloseCallback - the callback to be executed when the feedbacks are closed\n * @param {Function} [onShowCallback] - the callback to be executed when the feedbacks are shown\n * @returns {Number} Number of feedbacks to be displayed\n */\n function showFeedbacks(item, loader, renderer, itemSession, onCloseCallback, onShowCallback) {\n var count,\n messages = [],\n feedbacksToBeDisplayed = [];\n\n //find which modal feedbacks should be displayed according to the current item session:\n _.forEach(item.modalFeedbacks, function (feedback) {\n var feedbackIds, message;\n var outcomeIdentifier = feedback.attr('outcomeIdentifier');\n\n if (itemSession[outcomeIdentifier]) {\n feedbackIds = pci.getRawValues(itemSession[outcomeIdentifier]);\n message = getFeedbackMessageSignature(feedback);\n if (_.indexOf(feedbackIds, feedback.id()) >= 0 && _.indexOf(messages, message) === -1) {\n //check content if is already in the display queue\n feedbacksToBeDisplayed.push(feedback);\n messages.push(message);\n }\n }\n });\n\n //record the number of feedbacks to be displayed:\n count = feedbacksToBeDisplayed.length;\n if (count) {\n //show in reverse order\n var callstack = [];\n\n //iterate from the right because the modal popup will pile up.\n _.forEachRight(feedbacksToBeDisplayed, function (feedback) {\n //the end callback should be executed to the last displayed modal, which is the last displayed one\n var endCallback;\n if (callstack.length === 0) {\n endCallback = function () {\n onCloseCallback();\n };\n }\n\n callstack.push(function (cb) {\n renderModalFeedback(\n feedback,\n loader,\n renderer,\n function () {\n cb(null);\n },\n endCallback\n );\n });\n });\n\n async.series(callstack, function () {\n //all modal are ready and displayed\n if (_.isFunction(onShowCallback)) {\n onShowCallback();\n }\n });\n }\n\n return count;\n }\n\n /**\n * Render modal feedback as a modal popup\n *\n * @param {Object} feedback - object\n * @param {Object} loader - loader instance\n * @param {Object} renderer - renderer instance\n * @param {Function} [closeCallback] - feedback to be executed when the popop closes\n * @returns {undefined}\n */\n function renderModalFeedback(feedback, loader, renderer, renderedCallback, closeCallback) {\n var $feedback,\n $feedbackBox = $('#modalFeedbacks'); //feedback.getItem().getContainer().find('#')\n\n if (feedback.is('modalFeedback')) {\n //load (potential) new qti classes used in the modal feedback (e.g. math, img)\n renderer.load(function () {\n $feedback = $feedbackBox.find('#' + feedback.getSerial());\n if (!$feedback.length) {\n //render the modal feedback\n $feedback = feedback.render();\n $feedbackBox.append($feedback);\n } else {\n $feedback.modal();\n }\n\n renderedCallback();\n\n feedback.postRender({\n callback: closeCallback\n });\n }, loader.getLoadedClasses());\n }\n }\n\n /**\n * Provide the feedbackMessage signature to check if the feedback contents should be considered equals\n *\n * @param {type} feedback\n * @returns {String}\n */\n function getFeedbackMessageSignature(feedback) {\n return ('' + feedback.body() + feedback.attr('title'))\n .toLowerCase()\n .trim()\n .replace(/x-tao-[a-zA-Z0-9\\-._\\s]*/g, '');\n }\n\n var modalRenderer = {\n showFeedbacks: showFeedbacks\n };\n\n return modalRenderer;\n\n});\n\n","define('taoQtiItem/qtiRunner/core/QtiRunner',['jquery', 'lodash', 'context', 'module', 'iframeNotifier', 'taoQtiItem/qtiItem/core/Loader', 'taoQtiItem/qtiRunner/modalFeedback/inlineRenderer', 'taoQtiItem/qtiRunner/modalFeedback/modalRenderer'], function ($, _, context, module, iframeNotifier, ItemLoader, modalFeedbackInline, modalFeedbackModal) { 'use strict';\n\n $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;\n _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;\n context = context && Object.prototype.hasOwnProperty.call(context, 'default') ? context['default'] : context;\n module = module && Object.prototype.hasOwnProperty.call(module, 'default') ? module['default'] : module;\n iframeNotifier = iframeNotifier && Object.prototype.hasOwnProperty.call(iframeNotifier, 'default') ? iframeNotifier['default'] : iframeNotifier;\n ItemLoader = ItemLoader && Object.prototype.hasOwnProperty.call(ItemLoader, 'default') ? ItemLoader['default'] : ItemLoader;\n modalFeedbackInline = modalFeedbackInline && Object.prototype.hasOwnProperty.call(modalFeedbackInline, 'default') ? modalFeedbackInline['default'] : modalFeedbackInline;\n modalFeedbackModal = modalFeedbackModal && Object.prototype.hasOwnProperty.call(modalFeedbackModal, 'default') ? modalFeedbackModal['default'] : modalFeedbackModal;\n\n /*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2013 (original work) Open Assessment Techonologies SA (under the project TAO-PRODUCT);\n *\n *\n */\n\n var timeout = (context.timeout > 0 ? context.timeout + 1 : 30) * 1000;\n\n var QtiRunner = function() {\n this.item = null;\n this.rpEngine = null;\n this.renderer = null;\n this.loader = null;\n this.itemApi = undefined;\n };\n\n QtiRunner.prototype.updateItemApi = function() {\n var responses = this.getResponses();\n var states = this.getStates();\n var variables = [];\n // Transform responses into state variables.\n for (var key in states) {\n var value = states[key];\n // This is where we set variables that will be collected and stored\n // as the Item State. We do not want to store large files into\n // the state, and force the client to download these files\n // all over again. We then transform them as a place holder, that will\n // simply indicate that a file composes the state.\n\n if (value.response && typeof value.response.base !== 'undefined') {\n for (var property in value.response.base) {\n if (property === 'file') {\n var file = value.response.base.file;\n // QTI File found! Replace it with an appropriate placeholder.\n // The data is base64('qti_file_datatype_placeholder_data')\n value.response = {\n base: {\n file: {\n name: file.name,\n mime: 'qti+application/octet-stream',\n data: 'cXRpX2ZpbGVfZGF0YXR5cGVfcGxhY2Vob2xkZXJfZGF0YQ=='\n }\n }\n };\n }\n }\n }\n\n variables[key] = value;\n }\n\n //set all variables at once\n this.itemApi.setVariables(variables);\n\n // Save the responses that will be used for response processing.\n this.itemApi.saveResponses(responses);\n this.itemApi.resultApi.setQtiRunner(this);\n };\n\n QtiRunner.prototype.setItemApi = function(itemApi) {\n this.itemApi = itemApi;\n var that = this;\n var oldStateVariables = JSON.stringify(itemApi.stateVariables);\n\n itemApi.onKill(function(killCallback) {\n // If the responses did not change,\n // just close gracefully.\n\n // Collect new responses and update item API.\n that.updateItemApi();\n var newStateVariables = JSON.stringify(itemApi.stateVariables);\n\n // Store the results.\n if (oldStateVariables !== newStateVariables || itemApi.serviceApi.getHasBeenPaused()) {\n itemApi.submit(function() {\n // Send successful signal.\n itemApi.serviceApi.setHasBeenPaused(false);\n killCallback(0);\n });\n } else {\n killCallback(0);\n }\n });\n };\n\n QtiRunner.prototype.setRenderer = function(renderer) {\n if (renderer.isRenderer) {\n this.renderer = renderer;\n } else {\n throw 'invalid renderer';\n }\n };\n\n QtiRunner.prototype.getLoader = function() {\n if (!this.loader) {\n this.loader = new ItemLoader();\n }\n return this.loader;\n };\n\n QtiRunner.prototype.loadItemData = function(data, callback) {\n var self = this;\n this.getLoader().loadItemData(data, function(item) {\n self.item = item;\n callback(self.item);\n });\n };\n\n QtiRunner.prototype.loadElements = function(elements, callback) {\n if (this.getLoader().item) {\n this.getLoader().loadElements(elements, callback);\n } else {\n throw 'QtiRunner : cannot load elements in empty item';\n }\n };\n\n QtiRunner.prototype.renderItem = function(data, done) {\n var self = this;\n\n done = _.isFunction(done) ? done : _.noop;\n\n var render = function() {\n if (!self.item) {\n throw 'cannot render item: empty item';\n }\n if (self.renderer) {\n self.renderer.load(function() {\n self.item.setRenderer(self.renderer);\n self.item.render({}, $('#qti_item'));\n\n // Race between postRendering and timeout\n // postRendering waits for everything to be resolved or one reject\n Promise.race([\n Promise.all(self.item.postRender()),\n new Promise(function(resolve, reject) {\n _.delay(reject, timeout, new Error('Post rendering ran out of time.'));\n })\n ])\n .then(function() {\n self.item.getContainer().on('responseChange', function(e, data) {\n if (data.interaction && data.interaction.attr('responseIdentifier') && data.response) {\n iframeNotifier.parent('responsechange', [\n data.interaction.attr('responseIdentifier'),\n data.response\n ]);\n }\n });\n\n self.initInteractionsResponse();\n self.listenForThemeChange();\n done();\n })\n .catch(function(err) {\n //in case of postRendering issue, we are also done\n done();\n\n throw new Error('Error in post rendering : ' + err);\n });\n }, self.getLoader().getLoadedClasses());\n } else {\n throw 'cannot render item: no rendered set';\n }\n };\n\n if (typeof data === 'object') {\n this.loadItemData(data, render);\n } else {\n render();\n }\n };\n\n QtiRunner.prototype.initInteractionsResponse = function() {\n var self = this;\n if (self.item) {\n var interactions = self.item.getInteractions();\n for (var i in interactions) {\n var interaction = interactions[i];\n var responseId = interaction.attr('responseIdentifier');\n self.itemApi.getVariable(responseId, function(values) {\n if (values) {\n interaction.setState(values);\n iframeNotifier.parent('stateready', [responseId, values]);\n } else {\n var states = self.getStates();\n if (_.indexOf(states, responseId)) {\n self.itemApi.setVariable(responseId, states[responseId]);\n interaction.setState(states[responseId]);\n iframeNotifier.parent('stateready', [responseId, states[responseId]]);\n }\n }\n });\n }\n }\n };\n\n /**\n * If an event 'themechange' bubbles to \"#qti_item\" node\n * then we tell the renderer to switch the theme.\n */\n QtiRunner.prototype.listenForThemeChange = function listenForThemeChange() {\n var self = this;\n var $container = this.renderer.getContainer(this.item);\n if (!$container.length) {\n $container = $('.qti-item');\n }\n $container.off('themechange').on('themechange', function(e, themeName) {\n var themeLoader = self.renderer.getThemeLoader();\n themeName = themeName || e.originalEvent.detail;\n if (themeLoader) {\n themeLoader.change(themeName);\n }\n });\n };\n\n QtiRunner.prototype.validate = function() {\n this.updateItemApi();\n this.itemApi.finish();\n };\n\n QtiRunner.prototype.getResponses = function() {\n var responses = {};\n var interactions = this.item.getInteractions();\n\n _.forEach(interactions, function(interaction) {\n var response = {};\n try {\n response = interaction.getResponse();\n } catch (e) {\n console.error(e);\n }\n responses[interaction.attr('responseIdentifier')] = response;\n });\n\n return responses;\n };\n\n QtiRunner.prototype.getStates = function() {\n var states = {};\n var interactions = this.item.getInteractions();\n\n _.forEach(interactions, function(interaction) {\n var state = {};\n try {\n state = interaction.getState();\n } catch (e) {\n console.error(e);\n }\n states[interaction.attr('responseIdentifier')] = state;\n });\n\n return states;\n };\n\n QtiRunner.prototype.setResponseProcessing = function(callback) {\n this.rpEngine = callback;\n };\n\n QtiRunner.prototype.showFeedbacks = function(itemSession, callback, onShowCallback) {\n var inlineDisplay = !!module.config().inlineModalFeedback;\n\n //currently only modal feedbacks are available\n if (inlineDisplay) {\n return modalFeedbackInline.showFeedbacks(\n this.item,\n this.getLoader(),\n this.renderer,\n itemSession,\n callback,\n onShowCallback\n );\n } else {\n return modalFeedbackModal.showFeedbacks(\n this.item,\n this.getLoader(),\n this.renderer,\n itemSession,\n callback,\n onShowCallback\n );\n }\n };\n\n return QtiRunner;\n\n});\n\n","define('taoQtiItem/qtiItem/helper/interactionHelper',['lodash', 'taoQtiItem/qtiItem/core/Element'], function (_, Element) { 'use strict';\n\n _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;\n Element = Element && Object.prototype.hasOwnProperty.call(Element, 'default') ? Element['default'] : Element;\n\n /**\n * Common helper functions\n */\n var interactionHelper = {\n convertChoices: function (choices, outputType) {\n var ret = [],\n _this = this;\n\n _.forEach(choices, function (c) {\n if (Element.isA(c, 'choice')) {\n switch (outputType) {\n case 'serial':\n ret.push(c.getSerial());\n break;\n case 'identifier':\n ret.push(c.id());\n break;\n default:\n ret.push(c);\n }\n } else if (_.isArray(c)) {\n ret.push(_this.convertChoices(c, outputType));\n }\n });\n\n return ret;\n },\n findChoices: function (interaction, choices, inputType) {\n var ret = [],\n _this = this;\n\n _.forEach(choices, function (c) {\n var choice;\n if (_.isString(c)) {\n if (inputType === 'serial') {\n choice = interaction.getChoice(c);\n if (choice) {\n ret.push(choice);\n }\n } else if (inputType === 'identifier') {\n choice = interaction.getChoiceByIdentifier(c);\n if (choice) {\n ret.push(choice);\n }\n } else {\n ret.push(c);\n }\n } else if (_.isArray(c)) {\n ret.push(_this.findChoices(interaction, c, inputType));\n } else {\n ret.push(c);\n }\n });\n\n return ret;\n },\n shuffleChoices: function (choices) {\n var r = [], //returned array\n f = {}, //fixed choices array\n j = 0;\n\n for (var i in choices) {\n if (Element.isA(choices[i], 'choice')) {\n var choice = choices[i];\n if (choice.attr('fixed')) {\n f[j] = choice;\n }\n r.push(choice);\n j++;\n } else {\n throw 'invalid element in array: is not a qti choice';\n }\n }\n\n for (var n = 0; n < r.length - 1; n++) {\n if (f[n]) {\n continue;\n }\n var k = -1;\n do {\n k = n + Math.floor(Math.random() * (r.length - n));\n } while (f[k]);\n var tmp = r[k];\n r[k] = r[n];\n r[n] = tmp;\n }\n\n return r;\n },\n serialToIdentifier: function (interaction, choiceSerial) {\n var choice = interaction.getChoice(choiceSerial);\n if (choice) {\n return choice.id();\n } else {\n return '';\n }\n }\n };\n\n return interactionHelper;\n\n});\n\n","define('taoQtiItem/qtiRunner/core/Renderer',['lodash', 'jquery', 'taoQtiItem/qtiItem/core/Element', 'taoQtiItem/qtiItem/helper/interactionHelper', 'ui/themeLoader', 'ui/themes', 'core/moduleLoader', 'handlebars'], function (_, $, Element, interactionHelper, themeLoader, themesHelper, moduleLoader, Handlebars) { 'use strict';\n\n _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;\n $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;\n Element = Element && Object.prototype.hasOwnProperty.call(Element, 'default') ? Element['default'] : Element;\n interactionHelper = interactionHelper && Object.prototype.hasOwnProperty.call(interactionHelper, 'default') ? interactionHelper['default'] : interactionHelper;\n themeLoader = themeLoader && Object.prototype.hasOwnProperty.call(themeLoader, 'default') ? themeLoader['default'] : themeLoader;\n themesHelper = themesHelper && Object.prototype.hasOwnProperty.call(themesHelper, 'default') ? themesHelper['default'] : themesHelper;\n moduleLoader = moduleLoader && Object.prototype.hasOwnProperty.call(moduleLoader, 'default') ? moduleLoader['default'] : moduleLoader;\n Handlebars = Handlebars && Object.prototype.hasOwnProperty.call(Handlebars, 'default') ? Handlebars['default'] : Handlebars;\n\n /*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014-2022 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n //webpack trick : handlebar is usale only from cjs.\n //but anyway we should deprecate the practice to invoke\n //directly Handlebars at runtimej\n let hb = Handlebars;\n if (typeof hb.compile !== 'function') {\n hb = require('handlebars');\n }\n\n const _renderableClasses = [\n '_container',\n 'assessmentItem',\n 'stylesheet',\n 'responseDeclaration',\n 'outcomeDeclaration',\n 'responseProcessing',\n '_simpleFeedbackRule',\n '_tooltip',\n 'figure',\n 'img',\n 'figcaption',\n 'math',\n 'object',\n 'table',\n 'modalFeedback',\n 'rubricBlock',\n 'associateInteraction',\n 'choiceInteraction',\n 'extendedTextInteraction',\n 'gapMatchInteraction',\n 'graphicAssociateInteraction',\n 'graphicGapMatchInteraction',\n 'graphicOrderInteraction',\n 'hotspotInteraction',\n 'hottextInteraction',\n 'inlineChoiceInteraction',\n 'matchInteraction',\n 'mediaInteraction',\n 'orderInteraction',\n 'selectPointInteraction',\n 'sliderInteraction',\n 'textEntryInteraction',\n 'uploadInteraction',\n 'endAttemptInteraction',\n 'customInteraction',\n 'prompt',\n 'associableHotspot',\n 'gap',\n 'gapImg',\n 'gapText',\n 'hotspotChoice',\n 'hottext',\n 'inlineChoice',\n 'simpleAssociableChoice',\n 'simpleChoice',\n 'infoControl',\n 'include',\n 'printedVariable'\n ];\n\n /**\n * The list of qti element dependencies. It is used internally to load dependent qti classes\n */\n const _dependencies = {\n assessmentItem: ['stylesheet', '_container', 'prompt', 'modalFeedback'],\n rubricBlock: ['_container'],\n associateInteraction: ['simpleAssociableChoice'],\n choiceInteraction: ['simpleChoice'],\n gapMatchInteraction: ['gap', 'gapText'],\n graphicAssociateInteraction: ['associableHotspot'],\n graphicGapMatchInteraction: ['associableHotspot', 'gapImg'],\n graphicOrderInteraction: ['hotspotChoice'],\n hotspotInteraction: ['hotspotChoice'],\n hottextInteraction: ['hottext'],\n inlineChoiceInteraction: ['inlineChoice'],\n matchInteraction: ['simpleAssociableChoice'],\n orderInteraction: ['simpleChoice']\n };\n\n /**\n * The list of supported qti subclasses.\n */\n const _renderableSubclasses = {\n simpleAssociableChoice: ['associateInteraction', 'matchInteraction'],\n simpleChoice: ['choiceInteraction', 'orderInteraction']\n };\n\n /**\n * List of the default properties for the item\n */\n const _defaults = {\n shuffleChoices: true\n };\n\n const _isValidRenderer = function (renderer) {\n let valid = true;\n\n if (typeof renderer !== 'object') {\n return false;\n }\n\n let classCorrect = false;\n if (renderer.qtiClass) {\n if (_.indexOf(_renderableClasses, renderer.qtiClass) >= 0) {\n classCorrect = true;\n } else {\n const pos = renderer.qtiClass.indexOf('.');\n if (pos > 0) {\n const qtiClass = renderer.qtiClass.slice(0, pos);\n const subClass = renderer.qtiClass.slice(pos + 1);\n if (_renderableSubclasses[qtiClass] && _.indexOf(_renderableSubclasses[qtiClass], subClass) >= 0) {\n classCorrect = true;\n }\n }\n }\n }\n if (!classCorrect) {\n valid = false;\n throw new Error('invalid qti class name in renderer declaration : ' + renderer.qtiClass);\n }\n\n if (!renderer.template) {\n valid = false;\n throw new Error('missing template in renderer declaration : ' + renderer.qtiClass);\n }\n\n return valid;\n };\n\n /**\n * Get the location of the document, useful to define a baseUrl for the required context\n * @returns {String}\n */\n function getDocumentBaseUrl() {\n return window.location.protocol + '//' + window.location.host + window.location.pathname.replace(/([^\\/]*)$/, '');\n }\n\n /**\n * The built Renderer class\n * @constructor\n * @param {Object} [options] - the renderer options\n * @param {AssetManager} [options.assetManager] - The renderer needs an AssetManager to resolve URLs (see {@link taoItems/assets/manager})\n * @param {Boolean} [options.shuffleChoices = true] - Does the renderer take care of the shuffling\n * @param {Object} [options.decorators] - to set up rendering decorator\n * @param {preRenderDecorator} [options.decorators.before] - to set up a pre decorator\n * @param {postRenderDecorator} [options.decorators.after] - to set up a post decorator\n */\n const Renderer = function (options) {\n /**\n * Store the registered renderer location\n */\n const _locations = {};\n\n /**\n * Store loaded renderers\n */\n const _renderers = {};\n\n options = _.defaults(options || {}, _defaults);\n\n this.isRenderer = true;\n\n this.name = '';\n\n //store shuffled choice here\n this.shuffledChoices = [];\n\n /**\n * Get the actual renderer of the give qti class or subclass:\n * e.g. simplceChoice, simpleChoice.choiceInteraction, simpleChoice.orderInteraction\n */\n const _getClassRenderer = function (qtiClass) {\n let ret = null;\n if (_renderers[qtiClass]) {\n ret = _renderers[qtiClass];\n } else {\n const pos = qtiClass.indexOf('.');\n if (pos > 0) {\n qtiClass = qtiClass.slice(0, pos);\n if (_renderers[qtiClass]) {\n ret = _renderers[qtiClass];\n }\n }\n }\n return ret;\n };\n\n /**\n * Registers a QTI renderer class\n * @param {String} qtiClass\n * @param {Array} list\n * @returns {Boolean} `true` if the class has been successfully registered\n */\n function registerRendererClass(qtiClass, list) {\n let success = false;\n if (_locations[qtiClass] === false) {\n //mark this class as not renderable\n _renderers[qtiClass] = false;\n success = true;\n } else if (_locations[qtiClass]) {\n list.push(_locations[qtiClass]);\n success = true;\n }\n return success;\n }\n\n /**\n * Set the renderer options\n * @param {String} key - the name of the option\n * @param {*} value - the option vallue\n * @returns {Renderer} for chaining\n */\n this.setOption = function (key, value) {\n if (typeof key === 'string') {\n options[key] = value;\n }\n return this;\n };\n\n /**\n * Set the renderer options\n * @param {Object} opts - the options\n * @returns {Renderer} for chaining\n */\n this.setOptions = function (opts) {\n options = _.extend(options, opts);\n return this;\n };\n\n /**\n * Get the renderer option\n * @param {String} key - the name of the option\n * @returns {*|null} the option vallue\n */\n this.getOption = function (key) {\n if (typeof key === 'string' && options[key]) {\n return options[key];\n }\n return null;\n };\n\n this.getCustomMessage = function getCustomMessage(elementName, messageKey) {\n const messages = this.getOption('messages');\n if (messages && elementName && messages[elementName] && _.isString(messages[elementName][messageKey])) {\n //currently not translatable but potentially could be if the need raises\n return hb.compile(messages[elementName][messageKey]);\n } else {\n return null;\n }\n };\n\n /**\n * Get the bound assetManager\n * @returns {AssetManager} the assetManager\n */\n this.getAssetManager = function getAssetManager() {\n return options.assetManager;\n };\n\n /**\n * Get the bound theme loader\n * @returns {Object} the themeLoader\n */\n this.getThemeLoader = function getThemeLoader() {\n return this.themeLoader;\n };\n\n /**\n * Renders the template\n * @param {Object} element - the QTI model element\n * @param {Object} data - the data to give to the template\n * @param {String} [qtiSubclass] - to get the render of the element subclass (when element's qtiClass is abstract)\n * @returns {String} the template results\n * @throws {Error} if the renderer is not set or has no template bound\n */\n this.renderTpl = function (element, data, qtiSubclass) {\n let res;\n let ret = '';\n const qtiClass = qtiSubclass || element.qtiClass;\n const renderer = _getClassRenderer(qtiClass);\n const decorators = this.getOption('decorators');\n\n if (!renderer || !_.isFunction(renderer.template)) {\n throw new Error('no renderer template loaded under the class name : ' + qtiClass);\n }\n\n //pre rendering decoration\n if (_.isObject(decorators) && _.isFunction(decorators.before)) {\n /**\n * @callback preRenderDecoractor\n * @param {Object} element - the QTI model element\n * @param {String} [qtiSubclass] - to get the render of the element subclass (when element's qtiClass is abstract)\n * @returns {String} the decorator result\n */\n res = decorators.before(element, qtiSubclass);\n if (_.isString(res)) {\n ret += res;\n }\n }\n\n //render the template\n ret += renderer.template(data);\n\n //post rendering decoration\n if (_.isObject(decorators) && _.isFunction(decorators.after)) {\n /**\n * @callback postRenderDecoractor\n * @param {Object} element - the QTI model element\n * @param {String} [qtiSubclass] - to get the render of the element subclass (when element's qtiClass is abstract)\n * @returns {String} the decorator result\n */\n res = decorators.after(element, qtiSubclass);\n if (_.isString(res)) {\n ret += res;\n }\n }\n return ret;\n };\n\n this.getData = function (element, data, qtiSubclass) {\n let ret = data;\n const qtiClass = qtiSubclass || element.qtiClass;\n const renderer = _getClassRenderer(qtiClass);\n\n if (renderer) {\n if (typeof renderer.getData === 'function') {\n ret = renderer.getData.call(this, element, data);\n }\n }\n\n return ret;\n };\n\n this.renderDirect = function (tpl, data) {\n return hb.compile(tpl)(data);\n };\n\n this.getContainer = function (qtiElement, $scope, qtiSubclass) {\n let ret = null;\n const qtiClass = qtiSubclass || qtiElement.qtiClass;\n const renderer = _getClassRenderer(qtiClass);\n\n if (renderer) {\n ret = renderer.getContainer(qtiElement, $scope);\n } else {\n throw new Error('no renderer found for the class : ' + qtiElement.qtiClass);\n }\n return ret;\n };\n\n this.postRender = function (qtiElement, data, qtiSubclass) {\n const qtiClass = qtiSubclass || qtiElement.qtiClass;\n const renderer = _getClassRenderer(qtiClass);\n\n if (renderer && typeof renderer.render === 'function') {\n return renderer.render.call(this, qtiElement, data);\n }\n };\n\n this.setResponse = function (qtiInteraction, response, qtiSubclass) {\n let ret = false;\n const qtiClass = qtiSubclass || qtiInteraction.qtiClass;\n const renderer = _getClassRenderer(qtiClass);\n\n if (renderer) {\n if (typeof renderer.setResponse === 'function') {\n ret = renderer.setResponse.call(this, qtiInteraction, response);\n const $container = renderer.getContainer.call(this, qtiInteraction);\n if ($container instanceof $ && $container.length) {\n $container.trigger('responseSet', [qtiInteraction, response]);\n }\n }\n } else {\n throw new Error('no renderer registered under the name : ' + qtiClass);\n }\n return ret;\n };\n\n this.getResponse = function (qtiInteraction, qtiSubclass) {\n let ret = false;\n const qtiClass = qtiSubclass || qtiInteraction.qtiClass;\n const renderer = _getClassRenderer(qtiClass);\n\n if (renderer) {\n if (typeof renderer.getResponse === 'function') {\n ret = renderer.getResponse.call(this, qtiInteraction);\n }\n } else {\n throw new Error('no renderer registered under the name : ' + qtiClass);\n }\n return ret;\n };\n\n this.resetResponse = function (qtiInteraction, qtiSubclass) {\n let ret = false;\n const qtiClass = qtiSubclass || qtiInteraction.qtiClass;\n const renderer = _getClassRenderer(qtiClass);\n\n if (renderer) {\n if (typeof renderer.resetResponse === 'function') {\n ret = renderer.resetResponse.call(this, qtiInteraction);\n }\n } else {\n throw new Error('no renderer registered under the name : ' + qtiClass);\n }\n return ret;\n };\n\n /**\n * Retrieve the state of the interaction.\n * If the renderer has no state management, it falls back to the response management.\n *\n * @param {Object} qtiInteraction - the interaction\n * @param {String} [qtiSubClass] - (not sure of the type and how it is used - Sam ? )\n * @returns {Object} the interaction's state\n *\n * @throws {Error} if no renderer is registered\n */\n this.getState = function (qtiInteraction, qtiSubclass) {\n let ret = false;\n const qtiClass = qtiSubclass || qtiInteraction.qtiClass;\n const renderer = _getClassRenderer(qtiClass);\n\n if (renderer) {\n if (_.isFunction(renderer.getState)) {\n ret = renderer.getState.call(this, qtiInteraction);\n } else {\n ret = renderer.getResponse.call(this, qtiInteraction);\n }\n } else {\n throw new Error('no renderer registered under the name : ' + qtiClass);\n }\n return ret;\n };\n\n /**\n * Retrieve the state of the interaction.\n * If the renderer has no state management, it falls back to the response management.\n *\n * @param {Object} qtiInteraction - the interaction\n * @param {Object} state - the interaction's state\n * @param {String} [qtiSubClass] - (not sure of the type and how it is used - Sam ? )\n *\n * @throws {Error} if no renderer is found\n */\n this.setState = function (qtiInteraction, state, qtiSubclass) {\n const qtiClass = qtiSubclass || qtiInteraction.qtiClass;\n const renderer = _getClassRenderer(qtiClass);\n\n if (renderer) {\n if (_.isFunction(renderer.setState)) {\n renderer.setState.call(this, qtiInteraction, state);\n } else {\n renderer.resetResponse.call(this, qtiInteraction);\n renderer.setResponse.call(this, qtiInteraction, state);\n }\n } else {\n throw new Error('no renderer registered under the name : ' + qtiClass);\n }\n };\n\n /**\n * Calls the renderer destroy.\n * Ask the renderer to run destroy if exists.\n *\n * @throws {Error} if no renderer is found\n */\n this.destroy = function (qtiInteraction, qtiSubclass) {\n let ret = false;\n const qtiClass = qtiSubclass || qtiInteraction.qtiClass;\n const renderer = _getClassRenderer(qtiClass);\n\n if (renderer) {\n if (_.isFunction(renderer.destroy)) {\n ret = renderer.destroy.call(this, qtiInteraction);\n }\n } else {\n throw new Error('no renderer registered under the name : ' + qtiClass);\n }\n return ret;\n };\n\n this.getLoadedRenderers = function () {\n return _renderers;\n };\n\n this.register = function (renderersLocations) {\n _.extend(_locations, renderersLocations);\n };\n\n this.load = function (callback, requiredClasses) {\n const self = this;\n let required = [];\n\n const themeData = themesHelper.getCurrentThemeData();\n if (themeData) {\n options.themes = themeData;\n }\n if (options.themes) {\n //resolve themes paths\n options.themes.base = this.resolveUrl(options.themes.base);\n _.forEach(options.themes.available, function (theme, index) {\n options.themes.available[index].path = self.resolveUrl(theme.path);\n });\n this.themeLoader = themeLoader(options.themes).load(options.preload);\n }\n\n if (requiredClasses) {\n if (_.isArray(requiredClasses)) {\n //exclude abstract classes\n requiredClasses = _.intersection(requiredClasses, _renderableClasses);\n\n //add dependencies\n _.forEach(requiredClasses, function (reqClass) {\n const deps = _dependencies[reqClass];\n if (deps) {\n requiredClasses = _.union(requiredClasses, deps);\n }\n });\n\n _.forEach(requiredClasses, function (qtiClass) {\n let requiredSubClasses;\n if (_renderableSubclasses[qtiClass]) {\n requiredSubClasses = _.intersection(requiredClasses, _renderableSubclasses[qtiClass]);\n _.forEach(requiredSubClasses, function (subclass) {\n if (\n !registerRendererClass(qtiClass + '.' + subclass, required) &&\n !registerRendererClass(qtiClass, required)\n ) {\n throw new Error(\n self.name +\n ' : missing qti class location declaration: ' +\n qtiClass +\n ', subclass: ' +\n subclass\n );\n }\n });\n } else {\n if (!registerRendererClass(qtiClass, required)) {\n throw new Error(self.name + ' : missing qti class location declaration: ' + qtiClass);\n }\n }\n });\n } else {\n throw new Error('invalid argument type: expected array for arg \"requireClasses\"');\n }\n } else {\n required = _.values(_locations);\n }\n\n moduleLoader([], () => true)\n .addList(required.map(module => ({ module, category: 'qti' })))\n .load()\n .then(loaded => {\n loaded.forEach(clazz => {\n if (_isValidRenderer(clazz)) {\n _renderers[clazz.qtiClass] = clazz;\n }\n });\n if (typeof callback === 'function') {\n callback.call(self, _renderers);\n }\n });\n\n return this;\n };\n\n /**\n * Unload the renderer\n */\n this.unload = function unload() {\n if (this.themeLoader) {\n themeLoader(options.themes).unload();\n }\n return this;\n };\n\n /**\n * Define the shuffling manually\n *\n * @param {Object} interaction - the interaction\n * @param {Array} choices - the shuffled choices\n * @param {String} identificationType -\n */\n this.setShuffledChoices = function (interaction, choices, identificationType) {\n if (Element.isA(interaction, 'interaction')) {\n this.shuffledChoices[interaction.getSerial()] = interactionHelper\n .findChoices(interaction, choices, identificationType)\n .map(val => val.serial);\n }\n };\n\n /**\n * Get the choices shuffled for this interaction.\n *\n * @param {Object} interaction - the interaction\n * @param {Boolean} reshuffle - by default choices are shuffled only once and store, but if true you can force shuffling again\n * @param {String} returnedType - the choice type\n * @returns {Array} the choices\n */\n this.getShuffledChoices = function (interaction, reshuffle, returnedType) {\n let choices = [];\n let serial, i;\n\n if (Element.isA(interaction, 'interaction')) {\n serial = interaction.getSerial();\n\n //1st time, we shuffle (or asked to force shuffling)\n if (!this.shuffledChoices[serial] || reshuffle) {\n if (Element.isA(interaction, 'matchInteraction')) {\n this.shuffledChoices[serial] = [];\n for (i = 0; i < 2; i++) {\n choices[i] = interactionHelper.shuffleChoices(interaction.getChoices(i));\n this.shuffledChoices[serial][i] = choices[i].map(val => val.serial);\n }\n } else {\n choices = interactionHelper.shuffleChoices(interaction.getChoices());\n this.shuffledChoices[serial] = choices.map(val => val.serial);\n }\n\n //otherwise get the choices from the serials\n } else {\n if (Element.isA(interaction, 'matchInteraction')) {\n _.forEach(choices, function (choice, index) {\n if (index < 2) {\n _.forEach(this.shuffledChoices[serial][i], function (choiceSerial) {\n choice.push(interaction.getChoice(choiceSerial));\n });\n }\n });\n } else {\n _.forEach(this.shuffledChoices[serial], function (choiceSerial) {\n choices.push(interaction.getChoice(choiceSerial));\n });\n }\n }\n\n //do some type convertion\n if (returnedType === 'serial' || returnedType === 'identifier') {\n return interactionHelper.convertChoices(choices, returnedType);\n }\n\n //pass value only, not ref\n return _.clone(choices);\n }\n\n return [];\n };\n\n this.getRenderers = function () {\n return _renderers;\n };\n\n this.getLocations = function () {\n return _locations;\n };\n\n /**\n * Resolve URLs using the defined assetManager's strategies\n * @param {String} url - the URL to resolve\n * @returns {String} the resolved URL\n */\n this.resolveUrl = function resolveUrl(url) {\n if (!options.assetManager) {\n return url;\n }\n if (typeof url === 'string' && url.length > 0) {\n return options.assetManager.resolve(url);\n }\n };\n\n /**\n * @deprecated in favor of resolveUrl\n */\n this.getAbsoluteUrl = function (relUrl) {\n //let until method is removed\n console.warn('DEPRECATED used getAbsoluteUrl with ', arguments);\n\n //allow relative url output only if explicitely said so\n if (this.getOption('userRelativeUrl')) {\n return relUrl.replace(/^\\.?\\//, '');\n }\n\n if (/^http(s)?:\\/\\//i.test(relUrl) || /^data:[^\\/]+\\/[^;]+(;charset=[\\w]+)?;base64,/.test(relUrl)) {\n //already absolute or base64 encoded\n return relUrl;\n } else {\n let absUrl = '';\n const runtimeLocations = this.getOption('runtimeLocations');\n\n if (runtimeLocations && _.size(runtimeLocations)) {\n _.forIn(runtimeLocations, function (runtimeLocation, typeIdentifier) {\n if (relUrl.indexOf(typeIdentifier) === 0) {\n absUrl = relUrl.replace(typeIdentifier, runtimeLocation);\n return false; //break\n }\n });\n }\n\n if (absUrl) {\n return absUrl;\n } else {\n const baseUrl = this.getOption('baseUrl') || getDocumentBaseUrl();\n return baseUrl + relUrl;\n }\n }\n };\n\n this.setAreaBroker = function setAreaBroker(areaBroker) {\n this._areaBroker = areaBroker;\n };\n\n this.getAreaBroker = function getAreaBroker() {\n if (this._areaBroker) {\n return this._areaBroker;\n }\n };\n\n this.getItemCreator = function getItemCreator() {\n return this.getOption('itemCreator');\n };\n };\n\n /**\n * Expose the renderer's factory\n * @exports taoQtiItem/qtiRunner/core/Renderer\n */\n var Renderer$1 = {\n /**\n * Creates a new Renderer by extending the Renderer's prototype\n * @param {Object} renderersLocations -\n * @param {String} [name] - the new renderer name\n * @param {Object} [defaultOptions] - the renderer options\n */\n build: function (renderersLocations, name, defaultOptions) {\n const NewRenderer = function () {\n const options = _.isPlainObject(arguments[0]) ? arguments[0] : {};\n\n Renderer.apply(this);\n\n this.register(renderersLocations);\n this.name = name || '';\n this.setOptions(_.defaults(options, defaultOptions || {}));\n };\n NewRenderer.prototype = Renderer.prototype;\n return NewRenderer;\n }\n };\n\n return Renderer$1;\n\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA;\n *\n */\ndefine('taoQtiItem/portableElementRegistry/factory/factory',['lodash', 'core/promise', 'core/eventifier'], function (_, Promise, eventifier){\n 'use strict';\n\n var _requirejs = window.require;\n var _defaultLoadingOptions = {\n reload: false\n };\n\n var loadModuleConfig = function loadModuleConfig(manifest){\n return new Promise(function(resolve, reject){\n var requireConfigAliases = {};\n var baseUrl;\n var reqConfigs = [];\n var modules = {};\n\n if(!manifest || !manifest.runtime){\n return reject('invalid manifest');\n }\n\n baseUrl = manifest.baseUrl;\n\n if(_.isArray(manifest.runtime.config) && manifest.runtime.config.length){\n _.forEach(manifest.runtime.config, function(pciConfig){\n if(_.isString(pciConfig)){\n reqConfigs.push('json!' + baseUrl + '/' + pciConfig);\n }else{\n if(pciConfig.data){\n modules = _.defaults(modules, pciConfig.data.paths || {});\n }else if(pciConfig.file){\n reqConfigs.push('json!' + baseUrl + '/' + pciConfig.file);\n }\n }\n });\n }\n\n require(reqConfigs, function(){\n\n var runtimeModules = {};\n\n requireConfigAliases[manifest.typeIdentifier] = baseUrl;\n\n if(manifest.model === 'IMSPCI'){\n\n modules = _.reduce(arguments, function(acc, conf){\n return _.defaults(acc, conf.paths || {});\n }, modules);\n\n _.forEach(manifest.runtime.modules || {}, function(paths, id){\n if(paths && (_.isString(paths) || (_.isArray(paths) && paths.length))){\n runtimeModules[id] = paths;\n }\n });\n\n modules = _.merge(modules, runtimeModules);\n\n _.forEach(modules, function(paths, id){\n paths = _.isArray(paths) ? paths : [paths];\n requireConfigAliases[id] = _.map(paths, function(path){\n return baseUrl+'/'+path.replace(/\\.js$/, '');\n });\n });\n }\n\n resolve(requireConfigAliases);\n\n }, reject);\n\n\n });\n };\n\n /**\n * Evaluate if the given object is a proper portable element provider\n * @param {Object} provider\n * @returns {Boolean}\n */\n var isPortableElementProvider = function isPortableElementProvider(provider){\n return (provider && _.isFunction(provider.load));\n };\n\n return function portableElementRegistry(methods){\n\n var _loaded = false;\n var __providers = {};\n\n /**\n * The portable element registry instance\n * @typedef {portableElementRegistry}\n */\n return eventifier(_.defaults(methods || {}, {\n _registry : {},\n\n /**\n * Get a register portable element\n * @param {String} typeIdentifier\n * @param {String} version\n * @returns {Object}\n */\n get : function get(typeIdentifier, version){\n\n if(this._registry[typeIdentifier]){\n //check version\n if(version){\n return _.find(this._registry[typeIdentifier], {version : version});\n }else{\n //latest\n return _.last(this._registry[typeIdentifier]);\n }\n }\n },\n\n /**\n * Register a portable element provider\n * @param moduleName\n * @param {String|Object }provider - the portable provider object or module name\n * @returns {portableElementRegistry}\n */\n registerProvider : function registerProvider(moduleName, provider){\n __providers[moduleName] = isPortableElementProvider(provider) ? provider : null;\n _loaded = false;\n return this;\n },\n\n /**\n * Clear all previously registered providers\n * @returns {portableElementRegistry}\n */\n resetProviders : function resetProviders(){\n __providers = {};\n _loaded = false;\n return this;\n },\n\n /**\n * Load the providers\n * @param {Object} [options]\n * @param {Boolean} [options.reload] - force to reload the registered providers\n * @returns {Promise}\n */\n loadProviders : function loadProviders(options){\n var self = this;\n var loadPromise;\n\n if(_loaded && !options.reload){\n loadPromise = Promise.resolve([]);\n } else {\n loadPromise = new Promise(function(resolve, reject) {\n var providerLoadingStack = [];\n _.forIn(__providers, function(provider, id){\n if(provider === null){\n providerLoadingStack.push(id);\n }\n });\n _requirejs(providerLoadingStack, function(){\n _.forEach([].slice.call(arguments), function(provider){\n if(isPortableElementProvider(provider)){\n __providers[providerLoadingStack.shift()] = provider;\n }\n });\n resolve(__providers);\n _loaded = true;\n self.trigger('providersloaded', __providers);\n }, reject);\n });\n }\n\n return loadPromise;\n },\n\n /**\n * Get all versions of all portable elements registered\n * @returns {Object} - all portable elements and their versions\n */\n getAllVersions : function getAllVersions(){\n var all = {};\n _.forIn(this._registry, function (versions, id){\n all[id] = _.map(versions, 'version');\n });\n return all;\n },\n\n /**\n * Get the runtime for a given portable element\n * @param {String} typeIdentifier\n * @param {String} [version] - if the version is provided, the method will try to find that version\n * @returns {Object} the runtime model\n */\n getRuntime : function getRuntime(typeIdentifier, version){\n var portableElement = this.get(typeIdentifier, version);\n if(portableElement){\n return _.assign(portableElement.runtime, {\n id : portableElement.typeIdentifier,\n label : portableElement.label,\n baseUrl : portableElement.baseUrl,\n model : portableElement.model\n });\n }else{\n this.trigger('error', {\n message : 'no portable element runtime found',\n typeIdentifier : typeIdentifier,\n version : version\n });\n }\n },\n\n /**\n * Get the creator model for a given portable element\n * @param {String} typeIdentifier\n * @param {String} [version] - if the version is provided, the method will try to find that version\n * @returns {Object} the creator model\n */\n getCreator : function getCreator(typeIdentifier, version){\n var portableElement = this.get(typeIdentifier, version);\n if(portableElement && portableElement.creator){\n return _.assign(portableElement.creator, {\n id : portableElement.typeIdentifier,\n label : portableElement.label,\n baseUrl : portableElement.baseUrl,\n response : portableElement.response,\n model : portableElement.model,\n xmlns : portableElement.xmlns\n });\n }else{\n this.trigger('error', {\n message : 'no portable element runtime found',\n typeIdentifier : typeIdentifier,\n version : version\n });\n }\n },\n\n /**\n * Returned all enabled created from the registry\n * @returns {Object} the collection of creators\n */\n getLatestCreators : function getLatestCreators(){\n var all = {};\n _.forIn(this._registry, function (versions, id){\n var lastVersion = _.last(versions);\n\n //check if the portable element is creatable:\n if(lastVersion.creator && lastVersion.creator.hook && lastVersion.enabled){\n all[id] = lastVersion;\n }\n });\n return all;\n },\n\n /**\n * Get the baseUrl for a given portable element\n * @param {String} typeIdentifier\n * @param {String} [version] - if the version is provided, the method will try to find that version\n * @returns {String} the base url\n */\n getBaseUrl : function getBaseUrl(typeIdentifier, version){\n var runtime = this.get(typeIdentifier, version);\n if(runtime){\n return runtime.baseUrl;\n }\n return '';\n },\n\n /**\n * Load the runtimes from registered portable element provider(s)\n *\n * @param {Object} [options]\n * @param {Array} [options.include] - the exact list of portable element typeIdentifier that should be loaded\n * @param {Boolean} [options.reload] - tells if all interactions should be reloaded\n * @returns {Promise}\n */\n loadRuntimes : function loadRuntimes(options){\n var self = this;\n var loadPromise;\n\n options = _.defaults(options||{}, _defaultLoadingOptions);\n\n loadPromise = self.loadProviders(options).then(function(providers){\n\n var loadStack = [];\n\n _.forEach(providers, function (provider){\n if(provider){//check that the provider is loaded\n loadStack.push(provider.load());\n }\n });\n\n //performs the loadings in parallel\n return Promise.all(loadStack).then(function (results){//TODO could remove one level of promise\n\n var configLoadingStack = [];\n\n //update registry\n self._registry = _.reduce(results, function (acc, _pcis){\n return _.merge(acc, _pcis);\n }, self._registry || {});//incremental loading\n\n //pre-configuring the baseUrl of the portable element's source\n _.forIn(self._registry, function (versions, typeIdentifier){\n if(_.isArray(options.include) && _.indexOf(options.include, typeIdentifier) < 0){\n return true;\n }\n configLoadingStack.push(loadModuleConfig(self.get(typeIdentifier)));\n });\n\n return Promise.all(configLoadingStack).then(function(moduleConfigs){\n var requireConfigAliases = _.reduce(moduleConfigs, function(acc, paths){\n return _.merge(acc, paths);\n }, {});\n\n //save the required libs name => path to global require alias\n //TODO in future planned user story : change this to a local require context to solve conflicts in third party module naming\n _requirejs.config({paths : requireConfigAliases});\n });\n });\n\n });\n\n\n loadPromise\n .then(function() {\n self.trigger('runtimesloaded');\n })\n .catch(function(err) {\n self.trigger('error', err);\n });\n\n return loadPromise;\n },\n\n /**\n * Load the creators from registered portable element provider(s)\n *\n * @param {Object} [options]\n * @param {Array} [options.include] - the exact list of portable element typeIdentifier that should be loaded\n * @param {Boolean} [options.reload] - tells if all interactions should be reloaded\n * @returns {Promise}\n */\n loadCreators : function loadCreators(options){\n var loadPromise;\n var self = this;\n\n options = _.defaults(options||{}, _defaultLoadingOptions);\n\n loadPromise = self.loadRuntimes(options).then(function(){\n var requiredCreatorHooks = [];\n\n _.forIn(self._registry, function (versions, typeIdentifier){\n var portableElementModel = self.get(typeIdentifier);//currently use the latest version only\n if(portableElementModel.creator && portableElementModel.creator.hook){\n if(portableElementModel.enabled){\n if(_.isArray(options.include) && _.indexOf(options.include, typeIdentifier) < 0){\n return true;\n }\n }else{\n if(!_.isArray(options.include) || _.indexOf(options.include, typeIdentifier) < 0){\n return true;\n }\n }\n requiredCreatorHooks.push(portableElementModel.creator.hook.replace(/\\.js$/, ''));\n }\n });\n\n if(requiredCreatorHooks.length){\n return new Promise(function(resolve, reject){\n //@todo support caching?\n _requirejs(requiredCreatorHooks, function (){\n var creators = {};\n _.forEach(arguments, function (creatorHook){\n var id = creatorHook.getTypeIdentifier();\n var portableElementModel = self.get(id);\n var i = _.findIndex(self._registry[id], {version : portableElementModel.version});\n if(i < 0){\n self.trigger('error', 'no creator found for id/version ' + id + '/' + portableElementModel.version);\n }else{\n self._registry[id][i].creator.module = creatorHook;\n creators[id] = creatorHook;\n }\n });\n resolve(creators);\n }, reject);\n });\n }else{\n return Promise.resolve({});\n }\n\n });\n\n loadPromise\n .then(function(creators) {\n self.trigger('creatorsloaded', creators);\n return creators;\n })\n .catch(function(err) {\n self.trigger('error', err);\n });\n\n return loadPromise;\n },\n\n /**\n * enable a portable element\n * @param {String} typeIdentifier\n * @param {String} [version] - if the version is provided, the method will try to find that version\n * @returns {portableElementRegistry}\n */\n enable: function enable(typeIdentifier, version){\n var portableElement = this.get(typeIdentifier, version);\n if(portableElement){\n portableElement.enabled = true;\n }\n return this;\n },\n\n /**\n * disable a portable element\n * @param {String} typeIdentifier\n * @param {String} [version] - if the version is provided, the method will try to find that version\n * @returns {portableElementRegistry}\n */\n disable: function disable(typeIdentifier, version){\n var portableElement = this.get(typeIdentifier, version);\n if(portableElement){\n portableElement.enabled = false;\n }\n return this;\n },\n\n /**\n * check is a portable element is enabled\n * @param {String} typeIdentifier\n * @param {String} [version] - if the version is provided, the method will try to find that version\n * @returns {portableElementRegistry}\n */\n isEnabled: function isEnabled(typeIdentifier, version){\n var portableElement = this.get(typeIdentifier, version);\n return (portableElement && portableElement.enabled === true);\n }\n }));\n };\n});\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015-2022 (original work) Open Assessment Technologies SA ;\n */\n/**\n * Utility to retrieve and manipualte QTI Elements\n */\ndefine('taoQtiItem/qtiCreator/helper/qtiElements',['jquery', 'lodash', 'i18n', 'services/features'], function ($, _, __, featuresService) {\n 'use strict';\n\n const QtiElements = {\n classes: {\n //abstract classes:\n itemBody: { parents: ['bodyElement'], contains: ['block'], abstract: true },\n atomicBlock: {\n parents: ['blockStatic', 'bodyElement', 'flowStatic'],\n contains: ['inline'],\n abstract: true\n },\n atomicInline: {\n parents: ['bodyElement', 'flowStatic', 'inlineStatic'],\n contains: ['inline'],\n abstract: true\n },\n simpleBlock: { parents: ['blockStatic', 'bodyElement', 'flowStatic'], contains: ['block'], abstract: true },\n simpleInline: {\n parents: ['bodyElement', 'flowStatic', 'inlineStatic'],\n contains: ['inline'],\n abstract: true\n },\n flowStatic: { parents: ['flow'], abstract: true },\n blockStatic: { parents: ['block'], abstract: true },\n inlineStatic: { parents: ['inline'], abstract: true },\n flow: { parents: ['objectFlow'], abstract: true },\n tableCell: { parents: ['bodyElement'], contains: ['flow'], abstract: true },\n //html-derived qti elements:\n caption: { parents: ['bodyElement'], contains: ['inline'], xhtml: true },\n col: { parents: ['bodyElement'], xhtml: true },\n colgroup: { parents: ['bodyElement'], contains: ['col'], xhtml: true },\n div: { parents: ['blockStatic', 'bodyElement', 'flowStatic'], contains: ['flow'], xhtml: true },\n dl: { parents: ['blockStatic', 'bodyElement', 'flowStatic'], contains: ['dlElement'], xhtml: true },\n dt: { parents: ['dlElement'], contains: ['inline'], xhtml: true },\n dd: { parents: ['dlElement'], contains: ['flow'], xhtml: true },\n hr: { parents: ['blockStatic', 'bodyElement', 'flowStatic'], xhtml: true },\n math: { parents: ['blockStatic', 'flowStatic', 'inlineStatic'], xhtml: true },\n li: { parents: ['bodyElement'], contains: ['flow'], xhtml: true },\n ol: { parents: ['blockStatic', 'bodyElement', 'flowStatic'], contains: ['li'], xhtml: true },\n ul: { parents: ['blockStatic', 'bodyElement', 'flowStatic'], contains: ['li'], xhtml: true },\n object: { parents: ['bodyElement', 'flowStatic', 'inlineStatic'], contains: ['objectFlow'], xhtml: true },\n param: { parents: ['objectFlow'], xhtml: true },\n table: {\n parents: ['blockStatic', 'bodyElement', 'flowStatic'],\n contains: ['caption', 'col', 'colgroup', 'thead', 'tfoot', 'tbody'],\n xhtml: true\n },\n tbody: { parents: ['bodyElement'], contains: ['tr'], xhtml: true },\n tfoot: { parents: ['bodyElement'], contains: ['tr'], xhtml: true },\n thead: { parents: ['bodyElement'], contains: ['tr'], xhtml: true },\n td: { parents: ['tableCell'], xhtml: true },\n th: { parents: ['tableCell'], xhtml: true },\n tr: { parents: ['bodyElement'], contains: ['tableCell'], xhtml: true },\n a: { parents: ['simpleInline'], xhtml: true },\n abbr: { parents: ['simpleInline'], xhtml: true },\n acronym: { parents: ['simpleInline'], xhtml: true },\n b: { parents: ['simpleInline'], xhtml: true },\n big: { parents: ['simpleInline'], xhtml: true },\n cite: { parents: ['simpleInline'], xhtml: true },\n code: { parents: ['simpleInline'], xhtml: true },\n dfn: { parents: ['simpleInline'], xhtml: true },\n em: { parents: ['simpleInline'], xhtml: true },\n i: { parents: ['simpleInline'], xhtml: true },\n kbd: { parents: ['simpleInline'], xhtml: true },\n q: { parents: ['simpleInline'], xhtml: true },\n samp: { parents: ['simpleInline'], xhtml: true },\n small: { parents: ['simpleInline'], xhtml: true },\n span: { parents: ['simpleInline'], xhtml: true },\n strong: { parents: ['simpleInline'], xhtml: true },\n sub: { parents: ['simpleInline'], xhtml: true },\n sup: { parents: ['simpleInline'], xhtml: true },\n tt: { parents: ['simpleInline'], xhtml: true },\n var: { parents: ['simpleInline'], xhtml: true },\n blockquote: { parents: ['simpleBlock'], xhtml: true },\n address: { parents: ['atomicBlock'], xhtml: true },\n h1: { parents: ['atomicBlock'], xhtml: true },\n h2: { parents: ['atomicBlock'], xhtml: true },\n h3: { parents: ['atomicBlock'], xhtml: true },\n h4: { parents: ['atomicBlock'], xhtml: true },\n h5: { parents: ['atomicBlock'], xhtml: true },\n h6: { parents: ['atomicBlock'], xhtml: true },\n p: { parents: ['atomicBlock'], xhtml: true },\n pre: { parents: ['atomicBlock'], xhtml: true },\n img: { parents: ['atomicInline'], xhtml: true, attributes: ['src', 'alt', 'longdesc', 'height', 'width'] },\n br: { parents: ['atomicInline'], xhtml: true },\n //qti elements:\n infoControl: { parents: ['blockStatic', 'bodyElement', 'flowStatic'], qti: true },\n textRun: { parents: ['inlineStatic', 'flowstatic'], qti: true },\n feedbackInline: { parents: ['simpleInline', 'feedbackElement'], qti: true },\n feedbackBlock: { parents: ['simpleBlock'], qti: true },\n rubricBlock: { parents: ['simpleBlock'], qti: true }, //strange qti 2.1 exception, marked as simpleBlock instead of\n blockInteraction: { parents: ['block', 'flow', 'interaction'], qti: true },\n inlineInteraction: { parents: ['inline', 'flow', 'interaction'], qti: true },\n gap: { parents: ['inlineStatic'], qti: true },\n hottext: { parents: ['flowstatic', 'inlineStatic'], contains: ['inlineStatic'], qti: true },\n printedVariable: { parents: ['bodyElement', 'flowStatic', 'inlineStatic', 'textOrVariable'], qti: true },\n prompt: { parents: ['bodyElement'], contains: ['inlineStatic'], qti: true },\n templateElement: { parents: ['bodyElement'], qti: true },\n templateBlock: {\n parents: ['blockStatic', 'flowStatic', 'templateElement'],\n contains: ['blockStatic'],\n qti: true\n },\n templateInline: {\n parents: ['inlineStatic', 'flowStatic', 'templateElement'],\n contains: ['inlineStatic'],\n qti: true\n },\n choiceInteraction: { parents: ['blockInteraction'], qti: true },\n associateInteraction: { parents: ['blockInteraction'], qti: true },\n orderInteraction: { parents: ['blockInteraction'], qti: true },\n matchInteraction: { parents: ['blockInteraction'], qti: true },\n hottextInteraction: { parents: ['blockInteraction'], qti: true },\n gapMatchInteraction: { parents: ['blockInteraction'], qti: true },\n mediaInteraction: { parents: ['blockInteraction'], qti: true },\n sliderInteraction: { parents: ['blockInteraction'], qti: true },\n uploadInteraction: { parents: ['blockInteraction'], qti: true },\n drawingInteraction: { parents: ['blockInteraction'], qti: true },\n graphicInteraction: { parents: ['blockInteraction'], qti: true },\n hotspotInteraction: { parents: ['graphicInteraction'], qti: true },\n graphicAssociateInteraction: { parents: ['graphicInteraction'], qti: true },\n graphicOrderInteraction: { parents: ['graphicInteraction'], qti: true },\n graphicGapMatchInteraction: { parents: ['graphicInteraction'], qti: true },\n selectPointInteraction: { parents: ['graphicInteraction'], qti: true },\n textEntryInteraction: { parents: ['stringInteraction', 'inlineInteraction'], qti: true },\n extendedTextInteraction: { parents: ['stringInteraction', 'blockInteraction'], qti: true },\n inlineChoiceInteraction: { parents: ['inlineInteraction'], qti: true },\n endAttemptInteraction: { parents: ['inlineInteraction'], qti: true },\n customInteraction: { parents: ['block', 'flow', 'interaction'], qti: true },\n _container: { parents: ['block'], qti: true } //a pseudo class introduced in TAO\n },\n\n cache: { containable: {}, children: {}, parents: {} },\n\n getAllowedContainersElements(qtiClass, $container) {\n const classes = QtiElements.getAllowedContainers(qtiClass);\n let jqSelector = '';\n for (let i in classes) {\n if (!classes[i].qti) {\n //html element:\n jqSelector += `${classes[i]}, `;\n }\n }\n\n if (jqSelector) {\n jqSelector = jqSelector.substring(0, jqSelector.length - 2);\n }\n\n return $(jqSelector, $container ? $container : $(document)).filter(':not([data-qti-type])');\n },\n\n getAllowedContainers(qtiClass) {\n let ret;\n if (QtiElements.cache.containable[qtiClass]) {\n ret = QtiElements.cache.containable[qtiClass];\n } else {\n ret = [];\n const parents = QtiElements.getParentClasses(qtiClass, true);\n for (let aClass in QtiElements.classes) {\n const model = QtiElements.classes[aClass];\n if (model.contains) {\n const intersect = _.intersection(model.contains, parents);\n if (intersect.length) {\n if (!model.abstract) {\n ret.push(aClass);\n }\n ret = _.union(ret, QtiElements.getChildClasses(aClass, true));\n }\n }\n }\n QtiElements.cache.containable[qtiClass] = ret;\n }\n\n return ret;\n },\n\n getAllowedContents(qtiClass, recursive, checked) {\n let ret = [];\n checked = checked || {};\n\n const model = QtiElements.classes[qtiClass];\n if (model && model.contains) {\n for (let i in model.contains) {\n const contain = model.contains[i];\n if (!checked[contain]) {\n checked[contain] = true;\n\n //qtiClass can contain everything defined as its contents\n ret.push(contain);\n\n //qtiClass can also contain subclass of its contents\n const children = QtiElements.getChildClasses(contain, true);\n for (let j in children) {\n const child = children[j];\n if (!checked[child]) {\n checked[child] = true;\n\n ret.push(child);\n\n //adding children allowed contents depends on the option \"recursive\"\n if (recursive) {\n ret = _.union(ret, QtiElements.getAllowedContents(child, true, checked));\n }\n }\n }\n\n //adding allowed contents of qtiClass' allowed contents depends on the option \"recursive\"\n if (recursive) {\n ret = _.union(ret, QtiElements.getAllowedContents(contain, true, checked));\n }\n }\n }\n }\n\n //qtiClass can contain all allowed contents of its parents:\n const parents = QtiElements.getParentClasses(qtiClass, true);\n for (let i in parents) {\n ret = _.union(ret, QtiElements.getAllowedContents(parents[i], recursive, checked));\n }\n\n return _.uniq(ret);\n },\n\n isAllowedClass(qtiContainerClass, qtiContentClass) {\n const allowedClasses = QtiElements.getAllowedContents(qtiContainerClass);\n return _.indexOf(allowedClasses, qtiContentClass) >= 0;\n },\n\n getParentClasses(qtiClass, recursive) {\n let ret;\n if (recursive && QtiElements.cache.parents[qtiClass]) {\n ret = QtiElements.cache.parents[qtiClass];\n } else {\n ret = [];\n if (QtiElements.classes[qtiClass]) {\n ret = QtiElements.classes[qtiClass].parents;\n if (recursive) {\n for (let i in ret) {\n ret = _.union(ret, QtiElements.getParentClasses(ret[i], recursive));\n }\n ret = _.uniq(ret);\n }\n }\n QtiElements.cache.parents[qtiClass] = ret;\n }\n\n return ret;\n },\n\n getChildClasses(qtiClass, recursive, type) {\n let ret;\n const cacheType = type ? type : 'all';\n if (recursive && QtiElements.cache.children[qtiClass] && QtiElements.cache.children[qtiClass][cacheType]) {\n ret = QtiElements.cache.children[qtiClass][cacheType];\n } else {\n ret = [];\n for (let aClass in QtiElements.classes) {\n const model = QtiElements.classes[aClass];\n if (_.indexOf(model.parents, qtiClass) >= 0) {\n if (type) {\n if (model[type]) {\n ret.push(aClass);\n }\n } else {\n ret.push(aClass);\n }\n if (recursive) {\n ret = _.union(ret, QtiElements.getChildClasses(aClass, recursive, type));\n }\n }\n }\n if (!QtiElements.cache.children[qtiClass]) {\n QtiElements.cache.children[qtiClass] = {};\n }\n QtiElements.cache.children[qtiClass][cacheType] = ret;\n }\n\n return ret;\n },\n\n isBlock(qtiClass) {\n return QtiElements.is(qtiClass, 'block');\n },\n\n isInline(qtiClass) {\n return QtiElements.is(qtiClass, 'inline');\n },\n\n is(qtiClass, topClass) {\n if (qtiClass === topClass) {\n return true;\n } else {\n const parents = QtiElements.getParentClasses(qtiClass, true);\n return _.indexOf(parents, topClass) >= 0;\n }\n },\n\n /**\n * Check wether an element is visible, using the feature viibility service\n * @param {string} qtiClass - see the list of available classes\n * @returns {boolean} true by default and false only if the element is explicitely registered as hidden\n */\n isVisible(qtiClass) {\n if (this.is(qtiClass, 'customInteraction')) {\n return featuresService.isVisible(`taoQtiItem/creator/customInteraction/${qtiClass.replace(/Interaction$/, '').replace(/^customInteraction\\./, '')}`);\n }\n if (this.is(qtiClass, 'interaction')) {\n return featuresService.isVisible(`taoQtiItem/creator/interaction/${qtiClass.replace(/Interaction$/, '')}`);\n }\n return true;\n },\n\n /**\n * Get the list of available elements for the authoring side\n * The list of those element is statically defined, but we filter out elements that should be visible\n * @returns {Object} the available elements\n */\n getAvailableAuthoringElements() {\n const tagTitles = {\n commonInteractions: __('Common Interactions'),\n inlineInteractions: __('Inline Interactions'),\n graphicInteractions: __('Graphic Interactions')\n };\n\n const authoringElements = {\n choiceInteraction: {\n label: __('Choice Interaction'),\n description: __(\n 'Select a single (radio buttons) or multiple (check boxes) responses among a set of choices.'\n ),\n icon: 'icon-choice',\n short: __('Choice'),\n qtiClass: 'choiceInteraction',\n tags: [tagTitles.commonInteractions, 'mcq'],\n group: 'common-interactions'\n },\n orderInteraction: {\n label: __('Order Interaction'),\n icon: 'icon-order',\n description: __('Arrange a list of choices in the correct order.'),\n short: __('Order'),\n qtiClass: 'orderInteraction',\n tags: [tagTitles.commonInteractions, 'ordering'],\n group: 'common-interactions'\n },\n associateInteraction: {\n label: __('Associate Interaction'),\n icon: 'icon-associate',\n description: __('Create pair(s) from a series of choices.'),\n short: __('Associate'),\n qtiClass: 'associateInteraction',\n tags: [tagTitles.commonInteractions, 'association'],\n group: 'common-interactions'\n },\n matchInteraction: {\n label: __('Match Interaction'),\n icon: 'icon-match',\n description: __(\n 'Create association(s) between two sets of choices displayed in a table (row and column).'\n ),\n short: __('Match'),\n qtiClass: 'matchInteraction',\n tags: [tagTitles.commonInteractions, 'association'],\n group: 'common-interactions'\n },\n hottextInteraction: {\n label: __('Hottext Interaction'),\n icon: 'icon-hottext',\n description: __('Select one or more text parts (hottext) within a text.'),\n short: __('Hottext'),\n qtiClass: 'hottextInteraction',\n tags: [tagTitles.commonInteractions, 'text'],\n group: 'common-interactions'\n },\n gapMatchInteraction: {\n label: __('Gap Match Interaction'),\n icon: 'icon-gap-match',\n description: __(' Fill in the gaps in a text from a set of choices.'),\n short: __('Gap Match'),\n qtiClass: 'gapMatchInteraction',\n tags: [tagTitles.commonInteractions, 'text', 'association'],\n group: 'common-interactions'\n },\n sliderInteraction: {\n label: __('Slider Interaction'),\n icon: 'icon-slider',\n description: __('Select a value within a numerical range.'),\n short: __('Slider'),\n qtiClass: 'sliderInteraction',\n tags: [tagTitles.commonInteractions, 'special'],\n group: 'common-interactions'\n },\n extendedTextInteraction: {\n label: __('Extended Text Interaction'),\n icon: 'icon-extended-text',\n description: __(\n 'Collect open-ended information in one or more text area(s) (strings or numeric values).'\n ),\n short: __('Extended Text'),\n qtiClass: 'extendedTextInteraction',\n tags: [tagTitles.commonInteractions, 'text'],\n group: 'common-interactions'\n },\n uploadInteraction: {\n label: __('File Upload Interaction'),\n icon: 'icon-upload',\n description: __('Upload a file (e.g. document, picture...) as a response.'),\n short: __('File Upload'),\n qtiClass: 'uploadInteraction',\n tags: [tagTitles.commonInteractions, 'special'],\n group: 'common-interactions'\n },\n mediaInteraction: {\n label: __('Media Interaction'),\n icon: 'icon-media',\n description: __(\n 'Control the playing parameters (auto-start, loop) of a video or audio file and report the number of time it has been played.'\n ),\n short: __('Media'),\n qtiClass: 'mediaInteraction',\n tags: [tagTitles.commonInteractions, 'media'],\n group: 'common-interactions'\n },\n _container: {\n label: __('Text Block'),\n icon: 'icon-font',\n description: __(\n 'Block contains the content (stimulus) of the item such as text or image. It is also required for Inline Interactions.'\n ),\n short: __('Block'),\n qtiClass: '_container',\n tags: [tagTitles.inlineInteractions, 'text'],\n group: 'inline-interactions'\n },\n inlineChoiceInteraction: {\n label: __('Inline Choice Interaction'),\n icon: 'icon-inline-choice',\n description: __('Select a choice from a drop-down list.'),\n short: __('Inline Choice'),\n qtiClass: 'inlineChoiceInteraction',\n tags: [tagTitles.inlineInteractions, 'inline-interactions', 'mcq'],\n group: 'inline-interactions'\n },\n textEntryInteraction: {\n label: __('Text Entry Interaction'),\n icon: 'icon-text-entry',\n description: __(\n 'Collect open-ended information in a short text input (strings or numeric values).'\n ),\n short: __('Text Entry'),\n qtiClass: 'textEntryInteraction',\n tags: [tagTitles.inlineInteractions, 'inline-interactions', 'text'],\n group: 'inline-interactions'\n },\n endAttemptInteraction: {\n label: __('End Attempt Interaction'),\n icon: 'icon-end-attempt',\n description: __('Trigger the end of the item attempt.'),\n short: __('End Attempt'),\n qtiClass: 'endAttemptInteraction',\n tags: [tagTitles.inlineInteractions, 'inline-interactions', 'button', 'submit'],\n group: 'inline-interactions'\n },\n hotspotInteraction: {\n label: __('Hotspot Interaction'),\n icon: 'icon-hotspot',\n description: __('Select one or more areas (hotspots) displayed on an picture.'),\n short: __('Hotspot'),\n qtiClass: 'hotspotInteraction',\n tags: [tagTitles.graphicInteractions, 'mcq'],\n group: 'graphic-interactions'\n },\n graphicOrderInteraction: {\n label: __('Graphic Order Interaction'),\n icon: 'icon-graphic-order',\n description: __('Order the areas (hotspots) displayed on a picture.'),\n short: __('Order'),\n qtiClass: 'graphicOrderInteraction',\n tags: [tagTitles.graphicInteractions, 'ordering'],\n group: 'graphic-interactions'\n },\n graphicAssociateInteraction: {\n label: __('Graphic Associate Interaction'),\n icon: 'icon-graphic-associate',\n description: __('Create association(s) between areas (hotspots) displayed on a picture.'),\n short: __('Associate'),\n qtiClass: 'graphicAssociateInteraction',\n tags: [tagTitles.graphicInteractions, 'association'],\n group: 'graphic-interactions'\n },\n graphicGapMatchInteraction: {\n label: __('Graphic Gap Match Interaction'),\n icon: 'icon-graphic-gap',\n description: __('Fill in the gaps on a picture with a set of image choices.'),\n short: __('Gap Match'),\n qtiClass: 'graphicGapMatchInteraction',\n tags: [tagTitles.graphicInteractions, 'association'],\n group: 'graphic-interactions'\n },\n selectPointInteraction: {\n label: __('Select Point Interaction'),\n icon: 'icon-select-point',\n description: __('Position one or more points on a picture (response areas are not displayed).'),\n short: __('Select Point'),\n qtiClass: 'selectPointInteraction',\n tags: [tagTitles.graphicInteractions],\n group: 'graphic-interactions'\n }\n };\n\n //filter out hidden elements\n const availableElements = {};\n for (const [elementId, element] of Object.entries(authoringElements)) {\n if (this.isVisible(elementId)) {\n availableElements[elementId] = element;\n }\n }\n return availableElements;\n }\n };\n\n return QtiElements;\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016-2022 (original work) Open Assessment Technologies SA;\n *\n */\ndefine('taoQtiItem/portableElementRegistry/factory/ciRegistry',[\n 'lodash',\n 'i18n',\n 'taoQtiItem/portableElementRegistry/factory/factory',\n 'taoQtiItem/qtiCreator/helper/qtiElements'\n], function (_, __, portableElementRegistry, qtiElements) {\n 'use strict';\n\n /**\n * Create a new interaction registry instance\n * interaction registry need to register newly loaded creator hooks in the list of available qti authoring elements\n *\n * @returns {Object} registry instance\n */\n return function customInteractionRegistry() {\n return portableElementRegistry({\n /**\n * Get the authoring information for a given custom interaction\n * @param {string} typeIdentifier - the interaction type identifier\n * @param {Object} [options]\n * @param {string|number} [options.version] - the interaction version\n * @param {boolean} [options.enabledOnly] - to only get interaction enabled && visible\n * @returns {Object} the authoring info\n */\n getAuthoringData(typeIdentifier, options = {}) {\n options = _.defaults(options || {}, { version: 0, enabledOnly: false });\n const pciModel = this.get(typeIdentifier, options.version);\n const qtiClass = `customInteraction.${pciModel.typeIdentifier}`;\n if (\n pciModel &&\n pciModel.creator &&\n pciModel.creator.hook &&\n pciModel.creator.icon &&\n ((pciModel.enabled && qtiElements.isVisible(qtiClass)) || !options.enabledOnly)\n ) {\n return {\n label: pciModel.label, //currently no translation available\n icon: pciModel.creator.icon.replace(new RegExp(`^${typeIdentifier}/`), pciModel.baseUrl),\n short: pciModel.short,\n description: pciModel.description,\n qtiClass, //custom interaction is block type\n tags: _.union([__('Custom Interactions')], pciModel.tags),\n group: 'custom-interactions'\n };\n }\n }\n }).on('creatorsloaded', function () {\n const creators = this.getLatestCreators();\n _.forEach(creators, function (creator, typeIdentifier) {\n qtiElements.classes[`customInteraction.${typeIdentifier}`] = {\n parents: ['customInteraction'],\n qti: true\n };\n });\n });\n };\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA;\n *\n */\ndefine('taoQtiItem/portableElementRegistry/ciRegistry',['lodash', 'taoQtiItem/portableElementRegistry/factory/ciRegistry', 'module'], function (_, ciRegistry, module){\n 'use strict';\n\n //create a preregistered singleton of ciRegistry\n var registry = ciRegistry();\n var providers = [];\n var config = module.config();\n\n if(config && config.providers){\n providers = config.providers;\n }\n\n _.forEach(providers, function(provider){\n if(provider.name && provider.module){\n registry.registerProvider(provider.module);\n }\n });\n\n return registry;\n});\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA;\n *\n */\ndefine('taoQtiItem/portableElementRegistry/factory/icRegistry',[\n 'lodash',\n 'taoQtiItem/portableElementRegistry/factory/factory'\n], function (_, portableElementRegistry){\n 'use strict';\n\n /**\n * Info control registry has currently no additonal fonctionalities than the basic portable element registry\n *\n * @returns {Object} registry instance\n */\n return function infoControlRegistry(){\n return portableElementRegistry();\n }\n\n});\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA;\n *\n */\ndefine('taoQtiItem/portableElementRegistry/icRegistry',['lodash', 'taoQtiItem/portableElementRegistry/factory/icRegistry', 'module'], function (_, icRegistry, module){\n 'use strict';\n\n //create a preregistered singleton of icRegistry\n var registry = icRegistry();\n var providers = [];\n var config = module.config();\n\n if(config && config.providers){\n providers = config.providers;\n }\n\n _.forEach(providers, function(provider){\n if(provider.name && provider.module){\n registry.registerProvider(provider.module);\n }\n });\n\n return registry;\n});\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA;\n */\n\ndefine('taoQtiItem/portableElementRegistry/assetManager/portableAssetStrategy',[\n 'taoQtiItem/portableElementRegistry/ciRegistry',\n 'taoQtiItem/portableElementRegistry/icRegistry'\n], function (ciRegistry, icRegistry) {\n 'use strict';\n\n function getBaseUrlByIdentifier(typeIdentifier) {\n if (ciRegistry.get(typeIdentifier)) {\n return ciRegistry.getBaseUrl(typeIdentifier);\n }\n if (icRegistry.get(typeIdentifier)) {\n return icRegistry.getBaseUrl(typeIdentifier);\n }\n return typeIdentifier;\n }\n\n //strategy to resolve portable info control and portable interactions paths.\n //It should never be reached in the stack the usual way and should be called only using resolveBy.\n return {\n name: 'portableElementLocation',\n handle: function handlePortableElementLocation(url) {\n\n if (url.file === url.path) {\n return getBaseUrlByIdentifier(url.file);\n } else if (url.source === url.relative) {\n return url.relative.replace(/^(\\.\\/)?([a-z_0-9]+)\\/(.*)/i, function (fullmatch, $1, typeIdentifier, relPath) {\n var runtimeLocation = getBaseUrlByIdentifier(typeIdentifier);\n if (runtimeLocation) {\n return runtimeLocation + '/' + relPath;\n }\n return fullmatch;\n });\n }\n }\n };\n});\n","define('taoQtiItem/qtiCommonRenderer/renderers/config',['context', 'ui/themes', 'taoItems/assets/manager', 'taoItems/assets/strategies', 'module', 'taoQtiItem/portableElementRegistry/assetManager/portableAssetStrategy'], function (context, themes, assetManagerFactory, assetStrategies, module, portableAssetStrategy) { 'use strict';\n\n context = context && Object.prototype.hasOwnProperty.call(context, 'default') ? context['default'] : context;\n themes = themes && Object.prototype.hasOwnProperty.call(themes, 'default') ? themes['default'] : themes;\n assetManagerFactory = assetManagerFactory && Object.prototype.hasOwnProperty.call(assetManagerFactory, 'default') ? assetManagerFactory['default'] : assetManagerFactory;\n assetStrategies = assetStrategies && Object.prototype.hasOwnProperty.call(assetStrategies, 'default') ? assetStrategies['default'] : assetStrategies;\n module = module && Object.prototype.hasOwnProperty.call(module, 'default') ? module['default'] : module;\n portableAssetStrategy = portableAssetStrategy && Object.prototype.hasOwnProperty.call(portableAssetStrategy, 'default') ? portableAssetStrategy['default'] : portableAssetStrategy;\n\n /**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technologies SA;\n */\n\n var itemThemes = themes.get('items');\n var moduleConfig = module.config();\n\n //Create asset manager stack\n var assetManager = assetManagerFactory(\n [\n {\n name: 'theme',\n handle: function handleTheme(url) {\n if (\n itemThemes &&\n url.path &&\n (url.path === itemThemes.base ||\n (itemThemes.available && itemThemes.available.map(val => val.path).includes(url.path)))\n ) {\n return context.root_url + url.toString();\n }\n }\n },\n assetStrategies.taomedia,\n assetStrategies.external,\n assetStrategies.base64,\n assetStrategies.itemCssNoCache,\n assetStrategies.baseUrl,\n portableAssetStrategy\n ],\n { baseUrl: '' }\n ); //baseUrl is not predefined in the config, but should be set upon renderer instantiating\n\n //renderers locations\n var locations = {\n assessmentItem: 'taoQtiItem/qtiCommonRenderer/renderers/Item',\n _container: 'taoQtiItem/qtiCommonRenderer/renderers/Container',\n _simpleFeedbackRule: false,\n _tooltip: 'taoQtiItem/qtiCommonRenderer/renderers/Tooltip',\n stylesheet: 'taoQtiItem/qtiCommonRenderer/renderers/Stylesheet',\n outcomeDeclaration: false,\n responseDeclaration: false,\n responseProcessing: false,\n figure: 'taoQtiItem/qtiCommonRenderer/renderers/Figure',\n img: 'taoQtiItem/qtiCommonRenderer/renderers/Img',\n figcaption: 'taoQtiItem/qtiCommonRenderer/renderers/Figcaption',\n math: 'taoQtiItem/qtiCommonRenderer/renderers/Math',\n object: 'taoQtiItem/qtiCommonRenderer/renderers/Object',\n table: 'taoQtiItem/qtiCommonRenderer/renderers/Table',\n printedVariable: 'taoQtiItem/qtiCommonRenderer/renderers/PrintedVariable',\n rubricBlock: 'taoQtiItem/qtiCommonRenderer/renderers/RubricBlock',\n modalFeedback: 'taoQtiItem/qtiCommonRenderer/renderers/ModalFeedback',\n prompt: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/Prompt',\n choiceInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/ChoiceInteraction',\n extendedTextInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/ExtendedTextInteraction',\n orderInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/OrderInteraction',\n associateInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/AssociateInteraction',\n matchInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/MatchInteraction',\n textEntryInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/TextEntryInteraction',\n sliderInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/SliderInteraction',\n inlineChoiceInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/InlineChoiceInteraction',\n 'simpleChoice.choiceInteraction': 'taoQtiItem/qtiCommonRenderer/renderers/choices/SimpleChoice.ChoiceInteraction',\n 'simpleChoice.orderInteraction': 'taoQtiItem/qtiCommonRenderer/renderers/choices/SimpleChoice.OrderInteraction',\n hottext: 'taoQtiItem/qtiCommonRenderer/renderers/choices/Hottext',\n gap: 'taoQtiItem/qtiCommonRenderer/renderers/choices/Gap',\n gapText: 'taoQtiItem/qtiCommonRenderer/renderers/choices/GapText',\n 'simpleAssociableChoice.matchInteraction':\n 'taoQtiItem/qtiCommonRenderer/renderers/choices/SimpleAssociableChoice.MatchInteraction',\n 'simpleAssociableChoice.associateInteraction':\n 'taoQtiItem/qtiCommonRenderer/renderers/choices/SimpleAssociableChoice.AssociateInteraction',\n inlineChoice: 'taoQtiItem/qtiCommonRenderer/renderers/choices/InlineChoice',\n hottextInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/HottextInteraction',\n hotspotInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/HotspotInteraction',\n hotspotChoice: false,\n gapMatchInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/GapMatchInteraction',\n selectPointInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/SelectPointInteraction',\n graphicOrderInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/GraphicOrderInteraction',\n mediaInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/MediaInteraction',\n uploadInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/UploadInteraction',\n graphicGapMatchInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/GraphicGapMatchInteraction',\n gapImg: 'taoQtiItem/qtiCommonRenderer/renderers/choices/GapImg',\n graphicAssociateInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/GraphicAssociateInteraction',\n associableHotspot: false,\n customInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/PortableCustomInteraction',\n infoControl: 'taoQtiItem/qtiCommonRenderer/renderers/PortableInfoControl',\n include: 'taoQtiItem/qtiCommonRenderer/renderers/Include',\n endAttemptInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/EndAttemptInteraction'\n };\n\n var config = {\n name: 'commonRenderer',\n locations: locations,\n options: {\n assetManager: assetManager,\n themes: itemThemes,\n enableDragAndDrop: {\n associate: !!moduleConfig.associateDragAndDrop,\n gapMatch: !!moduleConfig.gapMatchDragAndDrop,\n graphicGapMatch: !!moduleConfig.graphicGapMatchDragAndDrop,\n order: !!moduleConfig.orderDragAndDrop\n },\n messages: moduleConfig.messages\n }\n };\n\n return config;\n\n});\n\n","define('taoQtiItem/qtiCommonRenderer/renderers/Renderer',['taoQtiItem/qtiRunner/core/Renderer', 'taoQtiItem/qtiCommonRenderer/renderers/config'], function (Renderer$1, config) { 'use strict';\n\n\tRenderer$1 = Renderer$1 && Object.prototype.hasOwnProperty.call(Renderer$1, 'default') ? Renderer$1['default'] : Renderer$1;\n\tconfig = config && Object.prototype.hasOwnProperty.call(config, 'default') ? config['default'] : config;\n\n\t/**\n\t * This program is free software; you can redistribute it and/or\n\t * modify it under the terms of the GNU General Public License\n\t * as published by the Free Software Foundation; under version 2\n\t * of the License (non-upgradable).\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU General Public License\n\t * along with this program; if not, write to the Free Software\n\t * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n\t *\n\t * Copyright (c) 2014 (original work) Open Assessment Technologies SA;\n\t */\n\n\tvar Renderer = Renderer$1.build(config.locations, config.name, config.options);\n\n\treturn Renderer;\n\n});\n\n","define('taoQtiItem/runner/provider/manager/userModules',['lodash', 'module'], function (_, module) { 'use strict';\n\n _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;\n module = module && Object.prototype.hasOwnProperty.call(module, 'default') ? module['default'] : module;\n\n /**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n\n var userModules = {\n /**\n * Load user modules defined in the module config\n * @param {Array} [userModules] - manually specify user modules to load instead of getting them from the module config\n * @returns {Promise}\n */\n load: function load(userModules) {\n var config = module.config();\n\n if (!userModules || !_.isArray(userModules)) {\n if (config && config.userModules && _.isArray(config.userModules)) {\n userModules = config.userModules;\n } else {\n userModules = [];\n }\n }\n if(!userModules.length){\n return Promise.resolve();\n }\n return new Promise(function(resolve, reject) {\n window.require(userModules, function() {\n _.forEach(arguments, function(dependency) {\n if (dependency && _.isFunction(dependency.exec)) {\n dependency.exec();\n }\n });\n resolve();\n }, function(err) {\n reject(err.message);\n });\n });\n }\n };\n\n return userModules;\n\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);\n */\ndefine('taoQtiItem/runtime/qtiBootstrap',[\n 'jquery',\n 'lodash',\n 'module',\n 'taoQtiItem/qtiRunner/core/QtiRunner',\n 'taoQtiItem/qtiCommonRenderer/renderers/Renderer',\n 'iframeNotifier',\n 'core/history',\n 'taoQtiItem/runner/provider/manager/userModules'\n], function($, _, module, QtiRunner, Renderer, iframeNotifier, history, userModules){\n 'use strict';\n\n //fix backspace going back into the history\n history.fixBrokenBrowsers();\n\n /**\n * The bootstrap is used to set up a QTI item at runtime. It connects to the itemApi.\n *\n * @author Bertrand Chevrier \n * @exports taoQtiItem/runtime/qtiBootstrap\n *\n * @param {Object} runnerContext - the item context\n */\n return function bootstrap (runnerContext){\n\n //reconnect to global itemApi function\n window.onItemApiReady = function onItemApiReady(itemApi) {\n var qtiRunner = new QtiRunner();\n var coreItemData = runnerContext.itemData;\n var variableElementsData = _.merge(runnerContext.variableElements, itemApi.params.contentVariables || {});\n\n var renderer = new Renderer();\n\n // Makes the runner interface available from outside the frame\n // for preview.\n window.qtiRunner = qtiRunner;\n\n qtiRunner.setItemApi(itemApi);\n qtiRunner.setRenderer(renderer);\n\n qtiRunner.loadItemData(coreItemData, function() {\n\n qtiRunner.loadElements(variableElementsData, function() {\n\n qtiRunner.renderItem(undefined, function() {\n\n //userModules loading\n //we use any user modules bound to this module configuration instead of the ones bound to the new test runner\n var userModulesOverride;\n var config = module.config();\n if (config && config.userModules && _.isArray(config.userModules) && config.userModules.length > 0) {\n userModulesOverride = config.userModules;\n }\n userModules.load(userModulesOverride)\n .then(function() {\n\n //exec user scripts\n if (_.isArray(runnerContext.userScripts)) {\n require(runnerContext.userScripts, function() {\n _.forEach(arguments, function(dependency) {\n if (_.isFunction(dependency.exec)) {\n dependency.exec.call(null, runnerContext.userVars);\n }\n });\n });\n }\n\n iframeNotifier.parent('itemloaded');\n\n //IE9/10 loose the iframe focus, so we force getting it back.\n _.defer(function(){\n window.focus();\n });\n })\n .catch(function(err) {\n throw new Error('Error in user modules : ' + err.message);\n });\n\n });\n });\n });\n };\n\n //if the item is longer to load,\n _.defer(function(){\n //tell the parent to connect the item api\n iframeNotifier.parent('itemready');\n });\n\n };\n});\n\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);\n */\n\ndefine('taoQtiItem/runtime/qtiLoader',[\n 'taoQtiItem/runtime/qtiBootstrap',\n 'css!taoCss/tao-main-style'\n], function(qtiBootstrap){\n 'use strict';\n\n return {\n start : function start(){\n //the context is set into the template and bound to the tao namespace in global scope\n var runnerContext = window.tao.qtiRunnerContext;\n qtiBootstrap(runnerContext);\n }\n };\n});\n\n","\ndefine(\"taoQtiItem/loader/qtiLoader.bundle\", function(){});\n","window.bundles = (window.bundles || []).concat([\"taoQtiItem/loader/taoQtiItem.min\"]);\n"],"mappings":"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"} \ No newline at end of file +{"version":3,"names":["loaderScript","document","getElementById","configUrl","getAttribute","bundle","loadController","controllerOptions","controllerPath","params","JSON","parse","err","window","require","controller","startController","started","start","addEventListener","readyState","loadBundles","loaded","bundles","concat","filter","item","index","indexOf","forEach","length","define","qtiClasses","_container","assessmentItem","responseProcessing","_simpleFeedbackRule","stylesheet","math","figure","img","figcaption","object","outcomeDeclaration","responseDeclaration","rubricBlock","associableHotspot","gap","gapImg","gapText","hotspotChoice","hottext","inlineChoice","simpleAssociableChoice","simpleChoice","associateInteraction","choiceInteraction","endAttemptInteraction","extendedTextInteraction","gapMatchInteraction","graphicAssociateInteraction","graphicGapMatchInteraction","graphicOrderInteraction","hotspotInteraction","hottextInteraction","inlineChoiceInteraction","matchInteraction","mediaInteraction","orderInteraction","prompt","selectPointInteraction","sliderInteraction","textEntryInteraction","uploadInteraction","feedbackBlock","feedbackInline","modalFeedback","customInteraction","infoControl","include","table","printedVariable","_tooltip","_","Object","prototype","hasOwnProperty","call","util","buildSerial","prefix","id","chars","i","charAt","Math","floor","random","buildId","usedIds","suffix","exists","TypeError","getUsedIds","includes","buildIdentifier","useSuffix","getUsedIdentifiers","isUndefined","replace","findInCollection","element","collectionNames","searchedSerial","found","isString","isArray","collectionName","collection","split","nameToken","elt","parent","isFunction","find","Error","addMarkupNamespace","markup","ns","$0","$1","$2","$3","$4","removeMarkupNamespaces","removeMarkupNamespace","getMarkupUsedNamespaces","namespaces","original","slash","node","push","uniq","$","rendererConfigHelper","getOptionsFromArguments","args","options","data","placeholder","subclass","renderer","arg","isRenderer","isPlainObject","console","log","_class","loggerFactory","rendererConfig","_instances","logger","Element","Class","extend","qtiClass","serial","rootElement","init","attributes","metaData","match","setAttributes","initContainer","arguments","initObject","is","getSerial","elts","getComposingElements","attr","name","value","prop","trigger","key","removeData","removeAttr","removeAttributes","warn","getAttributes","clone","attrNames","append","getBody","getObject","v","isA","getUsedClasses","ret","composingElts","body","location","getRootElement","setRelatedItem","setRootElement","getRelatedItem","setRenderer","getRenderer","render","rendering","_renderer","tplData","defaultData","tag","resolveUrl","merge","getData","renderTpl","replaceWith","postRender","altClassName","postRenderers","compact","getContainer","$scope","toArray","arr","type","isEmpty","addClass","className","clazz","_containClass","hasClass","removeClass","regex","RegExp","trim","toggleClass","state","isset","issetElement","unset","unsetElement","allClassStr","test","qtiElement","getElementBySerial","composingElements","getPrefix","html5Ns","prefixed","xmlNsHandler","stripNs","pattern","openRegEx","closeRegEx","restoreNs","xml","ignoreMarkup","xmlCopy","xmlRe","tagRe","xmlMatch","imsXsd","prefixAtt","tagMatch","responseRules","MATCH_CORRECT","responseIdentifier","outcomeIdentifier","responseIf","expression","expressions","identifier","baseType","MAP_RESPONSE","MAP_RESPONSE_POINT","responseRulesHelper","_templateNames","NONE","response","isUsingTemplate","tpl","template","isValidTemplateName","tplName","getTemplateUriFromName","getTemplateNameFromUri","tplUri","forIn","uri","getTemplateNameFromResponseRules","outcomeRules","keys","isEqual","itemScore","responseIdentifiers","outcomeExpressions","map","moduleLoader","responseHelper","itemScoreHelper","loadPortableCustomElementProperties","portableElement","rawProperties","properties","forOwn","e","loadPortableCustomElementData","typeIdentifier","entryPoint","libraries","setNamespace","xmlns","Loader","classesLocation","qti","setClassesLocation","qtiClassesList","getRequiredClasses","union","loadRequiredClasses","callback","reload","requiredClass","requiredClasses","required","module","category","addList","load","then","loadeded","QtiClass","getLoadedClasses","loadItemData","Qti","loadContainer","outcomes","outcome","buildOutcome","addOutcomeDeclaration","feedbacks","feedback","buildElement","addModalFeedback","stylesheets","addStylesheet","responses","responseRuleItemIndex","findIndex","_ref","responseRule","splice","buildResponse","addResponseDeclaration","feedbackRules","fbData","feedbackOutcomeIdentifier","feedbackOutcome","buildSimpleFeedbackRule","feedbackResponseRuleIndex","_ref2","setOutcomeResponseRule","responseKey","customResponseProcessing","some","setResponseProcessing","buildResponseProcessing","setNamespaces","setSchemaLocations","schemaLocations","setApipAccessibility","apipAccessibility","loadAndBuildElement","loadElement","loadElementData","loadElements","allElements","elementData","howMatch","defaultValue","correctResponse","correctResponses","mapEntries","size","mapping","areaMapping","mappingAttributes","feedbackRule","setCondition","condition","comparedValue","feedbackThen","modalFeedbacks","feedbackElse","comparedOutcome","rp","processingType","bodyObject","bodyData","elements","defaults","eltData","setElement","text","bdy","loadObjectData","loadInteractionData","loadChoiceData","loadMathData","loadPicData","loadTooltipData","interaction","buildInteractionChoices","loadPciData","choices","set","matchSet","choice","addChoice","gapImgs","addGapImg","val","_alt","setMathML","mathML","annotations","encoding","setAnnotation","tooltip","content","pci","pic","getRawValues","pciVar","base","values","list","_checkContainerType","_getBodyDom","html","_setBodyDomClass","newClass","oldClass","$wrapper","_setDomClass","$bodyDom","wrapInner","setEncodedDataToDom","dataName","newValue","oldValue","_getEncodedDataString","setEncodedData","getEncodedData","removeEncodedData","hasEncodedData","$body","matches","_prefix","container","$$1","context","containerHelper","Handlebars","Helpers0","iframeNotifier","previewOkBtn","asString","Template","deliveryOkBtn","Template$1","showFeedbacks","loader","itemSession","onCloseCallback","onShowCallback","firstFeedback","interactionsDisplayInfo","getInteractionsDisplayInfo","messages","renderedFeebacks","renderingQueue","$itemContainer","$itemBody","children","feedbackIds","message","$container","_currentMessageGroupId","interactionInfo","order","getFeedbackMessageSignature","displayContainer","messageGroupId","sortBy","clearModalFeedbacks","renderingToken","renderModalFeedback","renderingData","dom","on","autoscroll","replaceControl","getQtiContainer","me","max","__knownParent__","currentScrollTop","minScrollTop","maxScrollTop","scrollTop","$element","offset","top","height","outerHeight","min","animate","extractDisplayInfo","$displayContainer","$interactionContainer","closest","uniqueId","interactionContainer","interactionOrder","each","_interactionInfo","remove","renderedCallback","$modalFeedback","inline","done","Promise","race","all","pop","resolve","reject","delay","timeout","catch","$controls","$toggleContainer","parents","initControlToggle","toggleButtonTemplate","$ok","click","fb","hide","uncover","show","cover","interactionContainers","$cover","$interaction","toLowerCase","__initialized","depth0","helpers","partials","compilerInfo","helper","buffer","helperMissing","escapeExpression","__","hash","inlineRenderer","async","count","feedbacksToBeDisplayed","callstack","forEachRight","endCallback","cb","series","closeCallback","$feedback","$feedbackBox","modal","modalRenderer","ItemLoader","modalFeedbackInline","modalFeedbackModal","QtiRunner","rpEngine","itemApi","updateItemApi","getResponses","states","getStates","variables","property","file","mime","setVariables","saveResponses","resultApi","setQtiRunner","setItemApi","that","oldStateVariables","stringify","stateVariables","onKill","killCallback","newStateVariables","serviceApi","getHasBeenPaused","submit","setHasBeenPaused","getLoader","self","renderItem","noop","initInteractionsResponse","listenForThemeChange","interactions","getInteractions","responseId","getVariable","setState","setVariable","off","themeName","themeLoader","getThemeLoader","originalEvent","detail","change","validate","finish","getResponse","error","getState","inlineDisplay","config","inlineModalFeedback","_Mathfloor","interactionHelper","convertChoices","outputType","_this","c","findChoices","inputType","getChoice","getChoiceByIdentifier","shuffleChoices","r","f","j","n","k","tmp","serialToIdentifier","choiceSerial","themesHelper","getDocumentBaseUrl","protocol","host","pathname","hb","compile","_renderableClasses","_dependencies","_renderableSubclasses","_defaults","_isValidRenderer","valid","classCorrect","pos","slice","subClass","Renderer","registerRendererClass","success","_locations","_renderers","shuffledChoices","_getClassRenderer","setOption","setOptions","opts","getOption","getCustomMessage","elementName","messageKey","getAssetManager","assetManager","qtiSubclass","res","decorators","isObject","before","after","renderDirect","setResponse","qtiInteraction","resetResponse","destroy","getLoadedRenderers","register","renderersLocations","themeData","getCurrentThemeData","themes","available","theme","path","preload","intersection","reqClass","deps","requiredSubClasses","unload","setShuffledChoices","identificationType","getShuffledChoices","reshuffle","returnedType","getChoices","getRenderers","getLocations","url","getAbsoluteUrl","relUrl","absUrl","runtimeLocations","runtimeLocation","baseUrl","setAreaBroker","areaBroker","_areaBroker","getAreaBroker","getItemCreator","Renderer$1","build","defaultOptions","NewRenderer","apply","eventifier","_requirejs","_defaultLoadingOptions","loadModuleConfig","manifest","requireConfigAliases","reqConfigs","modules","runtime","pciConfig","paths","runtimeModules","model","reduce","acc","conf","isPortableElementProvider","provider","portableElementRegistry","methods","_loaded","__providers","_registry","get","version","last","registerProvider","moduleName","resetProviders","loadProviders","loadPromise","providerLoadingStack","shift","getAllVersions","versions","getRuntime","assign","label","getCreator","creator","getLatestCreators","lastVersion","hook","enabled","getBaseUrl","loadRuntimes","providers","loadStack","results","configLoadingStack","_pcis","moduleConfigs","loadCreators","requiredCreatorHooks","portableElementModel","creators","creatorHook","getTypeIdentifier","enable","disable","isEnabled","featuresService","QtiElements","classes","itemBody","contains","abstract","atomicBlock","atomicInline","simpleBlock","simpleInline","flowStatic","blockStatic","inlineStatic","flow","tableCell","caption","xhtml","col","colgroup","div","dl","dt","dd","hr","li","ol","ul","param","tbody","tfoot","thead","td","th","tr","a","abbr","acronym","b","big","cite","code","dfn","em","kbd","q","samp","small","span","strong","sub","sup","tt","var","blockquote","address","h1","h2","h3","h4","h5","h6","p","pre","br","textRun","blockInteraction","inlineInteraction","templateElement","templateBlock","templateInline","drawingInteraction","graphicInteraction","cache","containable","getAllowedContainersElements","getAllowedContainers","jqSelector","substring","getParentClasses","aClass","intersect","getChildClasses","getAllowedContents","recursive","checked","contain","child","isAllowedClass","qtiContainerClass","qtiContentClass","allowedClasses","cacheType","isBlock","isInline","topClass","isVisible","getAvailableAuthoringElements","tagTitles","commonInteractions","inlineInteractions","graphicInteractions","authoringElements","description","icon","short","tags","group","availableElements","elementId","entries","qtiElements","customInteractionRegistry","getAuthoringData","enabledOnly","pciModel","ciRegistry","registry","infoControlRegistry","icRegistry","getBaseUrlByIdentifier","handle","handlePortableElementLocation","source","relative","fullmatch","relPath","assetManagerFactory","assetStrategies","portableAssetStrategy","itemThemes","moduleConfig","handleTheme","root_url","toString","taomedia","external","base64","itemCssNoCache","locations","\"simpleChoice.choiceInteraction\"","\"simpleChoice.orderInteraction\"","\"simpleAssociableChoice.matchInteraction\"","\"simpleAssociableChoice.associateInteraction\"","enableDragAndDrop","associate","associateDragAndDrop","gapMatch","gapMatchDragAndDrop","graphicGapMatch","graphicGapMatchDragAndDrop","orderDragAndDrop","userModules","dependency","exec","history","fixBrokenBrowsers","bootstrap","runnerContext","onItemApiReady","qtiRunner","coreItemData","itemData","variableElementsData","variableElements","contentVariables","userModulesOverride","userScripts","userVars","defer","focus","qtiBootstrap","tao","qtiRunnerContext"],"sources":["/mnt/d/oat/currgen/tao-community-new/tao/views/build/config-wrap-start-default.js","../../loader/bootstrap.js","../qtiItem/core/qtiClasses.js","../qtiItem/helper/util.js","../qtiItem/helper/rendererConfig.js","../qtiItem/core/Element.js","../qtiItem/helper/xmlNsHandler.js","../qtiItem/helper/responseRules.js","../qtiItem/helper/response.js","../qtiItem/helper/itemScore.js","../qtiItem/core/Loader.js","../qtiItem/helper/pci.js","../qtiItem/helper/container.js","../qtiRunner/modalFeedback/inlineRenderer.js","../qtiRunner/modalFeedback/modalRenderer.js","../qtiRunner/core/QtiRunner.js","../qtiItem/helper/interactionHelper.js","../qtiRunner/core/Renderer.js","../portableElementRegistry/factory/factory.js","../qtiCreator/helper/qtiElements.js","../portableElementRegistry/factory/ciRegistry.js","../portableElementRegistry/ciRegistry.js","../portableElementRegistry/factory/icRegistry.js","../portableElementRegistry/icRegistry.js","../portableElementRegistry/assetManager/portableAssetStrategy.js","../qtiCommonRenderer/renderers/config.js","../qtiCommonRenderer/renderers/Renderer.js","../runner/provider/manager/userModules.js","../runtime/qtiBootstrap.js","../runtime/qtiLoader.js","module-create.js","/mnt/d/oat/currgen/tao-community-new/tao/views/build/config-wrap-end-default.js"],"sourcesContent":["\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016-2018 (original work) Open Assessment Technologies SA ;\n */\n\n/**\n * Bootstrap the app, start the entry controller\n * @author Bertrand Chevrier \n */\n(function(){\n 'use strict';\n\n\n\n var loaderScript = document.getElementById('amd-loader');\n var configUrl = loaderScript.getAttribute('data-config');\n var bundle = loaderScript.getAttribute('data-bundle');\n\n var loadController = function loadController(){\n var controllerOptions = {};\n var controllerPath = loaderScript.getAttribute('data-controller');\n var params = loaderScript.getAttribute('data-params');\n try{\n controllerOptions = JSON.parse(params);\n } catch(err){\n controllerOptions = {};\n }\n window.require([controllerPath], function(controller) {\n var startController = function startController(){\n if(!window.started){\n window.started = true;\n controller.start(controllerOptions);\n }\n };\n document.addEventListener('readystatechange', startController, false);\n if (document.readyState === 'complete') {\n startController();\n }\n });\n };\n\n //always start to load the config\n window.require([configUrl], function() {\n\n //define the global loading mechanism\n if(!window.loadBundles){\n //keep tracl of loaded bundles, even if require does it,\n //this prevent some unecessary cycles\n window.loaded = {};\n\n /**\n * Loading entry point for inter bundle dependency,\n * always take the bundles from the params and window.bundles\n * @param {String[]} [bundles] - an optional list of bundle to load\n */\n window.loadBundles = function loadBundles(bundles){\n bundles = bundles || [];\n bundles = bundles.concat(window.bundles)\n bundles = bundles.filter( function(item, index){\n return item && bundles.indexOf(item) === index && window.loaded[item] !== true;\n });\n require(bundles, function(){\n bundles.forEach( function( item ) {\n window.loaded[item] = true;\n });\n loadController();\n });\n }\n }\n\n if(bundle || (window.bundles && window.bundles.length)) {\n window.loadBundles([bundle]);\n } else {\n loadController();\n }\n });\n})();\n\ndefine(\"loader/bootstrap\", function(){});\n\n","define('taoQtiItem/qtiItem/core/qtiClasses',[],function () { 'use strict';\n\n var qtiClasses = {\n _container: 'taoQtiItem/qtiItem/core/Container',\n assessmentItem: 'taoQtiItem/qtiItem/core/Item',\n responseProcessing: 'taoQtiItem/qtiItem/core/ResponseProcessing',\n _simpleFeedbackRule: 'taoQtiItem/qtiItem/core/response/SimpleFeedbackRule',\n stylesheet: 'taoQtiItem/qtiItem/core/Stylesheet',\n math: 'taoQtiItem/qtiItem/core/Math',\n figure: 'taoQtiItem/qtiItem/core/Figure',\n img: 'taoQtiItem/qtiItem/core/Img',\n figcaption: 'taoQtiItem/qtiItem/core/Figcaption',\n object: 'taoQtiItem/qtiItem/core/Object',\n outcomeDeclaration: 'taoQtiItem/qtiItem/core/variables/OutcomeDeclaration',\n responseDeclaration: 'taoQtiItem/qtiItem/core/variables/ResponseDeclaration',\n rubricBlock: 'taoQtiItem/qtiItem/core/RubricBlock',\n associableHotspot: 'taoQtiItem/qtiItem/core/choices/AssociableHotspot',\n gap: 'taoQtiItem/qtiItem/core/choices/Gap',\n gapImg: 'taoQtiItem/qtiItem/core/choices/GapImg',\n gapText: 'taoQtiItem/qtiItem/core/choices/GapText',\n hotspotChoice: 'taoQtiItem/qtiItem/core/choices/HotspotChoice',\n hottext: 'taoQtiItem/qtiItem/core/choices/Hottext',\n inlineChoice: 'taoQtiItem/qtiItem/core/choices/InlineChoice',\n simpleAssociableChoice: 'taoQtiItem/qtiItem/core/choices/SimpleAssociableChoice',\n simpleChoice: 'taoQtiItem/qtiItem/core/choices/SimpleChoice',\n associateInteraction: 'taoQtiItem/qtiItem/core/interactions/AssociateInteraction',\n choiceInteraction: 'taoQtiItem/qtiItem/core/interactions/ChoiceInteraction',\n endAttemptInteraction: 'taoQtiItem/qtiItem/core/interactions/EndAttemptInteraction',\n extendedTextInteraction: 'taoQtiItem/qtiItem/core/interactions/ExtendedTextInteraction',\n gapMatchInteraction: 'taoQtiItem/qtiItem/core/interactions/GapMatchInteraction',\n graphicAssociateInteraction: 'taoQtiItem/qtiItem/core/interactions/GraphicAssociateInteraction',\n graphicGapMatchInteraction: 'taoQtiItem/qtiItem/core/interactions/GraphicGapMatchInteraction',\n graphicOrderInteraction: 'taoQtiItem/qtiItem/core/interactions/GraphicOrderInteraction',\n hotspotInteraction: 'taoQtiItem/qtiItem/core/interactions/HotspotInteraction',\n hottextInteraction: 'taoQtiItem/qtiItem/core/interactions/HottextInteraction',\n inlineChoiceInteraction: 'taoQtiItem/qtiItem/core/interactions/InlineChoiceInteraction',\n matchInteraction: 'taoQtiItem/qtiItem/core/interactions/MatchInteraction',\n mediaInteraction: 'taoQtiItem/qtiItem/core/interactions/MediaInteraction',\n orderInteraction: 'taoQtiItem/qtiItem/core/interactions/OrderInteraction',\n prompt: 'taoQtiItem/qtiItem/core/interactions/Prompt',\n selectPointInteraction: 'taoQtiItem/qtiItem/core/interactions/SelectPointInteraction',\n sliderInteraction: 'taoQtiItem/qtiItem/core/interactions/SliderInteraction',\n textEntryInteraction: 'taoQtiItem/qtiItem/core/interactions/TextEntryInteraction',\n uploadInteraction: 'taoQtiItem/qtiItem/core/interactions/UploadInteraction',\n feedbackBlock: 'taoQtiItem/qtiItem/core/feedbacks/FeedbackBlock',\n feedbackInline: 'taoQtiItem/qtiItem/core/feedbacks/FeedbackInline',\n modalFeedback: 'taoQtiItem/qtiItem/core/feedbacks/ModalFeedback',\n customInteraction: 'taoQtiItem/qtiItem/core/interactions/CustomInteraction',\n infoControl: 'taoQtiItem/qtiItem/core/PortableInfoControl',\n include: 'taoQtiItem/qtiItem/core/Include',\n table: 'taoQtiItem/qtiItem/core/Table',\n printedVariable: 'taoQtiItem/qtiItem/core/PrintedVariable',\n _tooltip: 'taoQtiItem/qtiItem/core/Tooltip'\n };\n\n return qtiClasses;\n\n});\n\n","define('taoQtiItem/qtiItem/helper/util',['lodash'], function (_) { 'use strict';\n\n _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;\n\n /*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA\n *\n */\n\n var util = {\n buildSerial: function buildSerial(prefix) {\n var id = prefix || '';\n var chars = 'abcdefghijklmnopqrstuvwxyz0123456789';\n for (var i = 0; i < 22; i++) {\n id += chars.charAt(Math.floor(Math.random() * chars.length));\n }\n return id;\n },\n\n /**\n * Generates an id for a Qti element (the generation is different from identifier)\n * @param {Object} item - the element related item\n * @param {String} prefix - identifier prefix\n * @returns {String} the identifier\n * @throws {TypeError} if there is no item\n */\n buildId: function buildId(item, prefix) {\n var id;\n var usedIds;\n var i = 1;\n var suffix = '';\n var exists = false;\n\n if (!item) {\n throw new TypeError('A item is required to generate a unique identifier');\n }\n\n usedIds = item.getUsedIds();\n\n do {\n exists = false;\n id = prefix + suffix;\n if (usedIds && usedIds.includes(id)) {\n exists = true;\n suffix = '_' + i;\n i++;\n }\n } while (exists);\n\n return id;\n },\n\n /**\n * Generates an identifier for a Qti element\n * @param {Object} item - the element related item\n * @param {String} prefix - identifier prefix\n * @param {Boolean} [useSuffix = true] - add a \"_ + index\" to the identifier\n * @returns {String} the identifier\n * @throws {TypeError} if there is no item\n */\n buildIdentifier: function buildIdentifier(item, prefix, useSuffix) {\n var id;\n var usedIds;\n var suffix = '';\n var i = 1;\n var exists = false;\n\n if (!item) {\n throw new TypeError('A item is required to generate a unique identifier');\n }\n\n if (!prefix) {\n throw new TypeError('Prefix is required to build an identifier');\n }\n\n usedIds = item.getUsedIdentifiers();\n useSuffix = _.isUndefined(useSuffix) ? true : useSuffix;\n\n if (prefix) {\n prefix = prefix\n .replace(/_[0-9]+$/gi, '_') //detect incremental id of type choice_12, response_3, etc.\n .replace(/[^a-zA-Z0-9_]/gi, '_')\n .replace(/(_)+/gi, '_');\n if (useSuffix) {\n suffix = '_' + i;\n }\n }\n\n do {\n exists = false;\n id = prefix + suffix;\n if (usedIds[id]) {\n exists = true;\n suffix = '_' + i;\n i++;\n }\n } while (exists);\n\n return id;\n },\n\n findInCollection: function findInCollection(element, collectionNames, searchedSerial) {\n var found = null;\n\n if (_.isString(collectionNames)) {\n collectionNames = [collectionNames];\n }\n\n if (_.isArray(collectionNames)) {\n _.forEach(collectionNames, function (collectionName) {\n //get collection to search in (resolving case like interaction.choices.0\n var collection = element;\n _.forEach(collectionName.split('.'), function (nameToken) {\n collection = collection[nameToken];\n });\n var elt = collection[searchedSerial];\n\n if (elt) {\n found = { parent: element, element: elt };\n return false; //break the each loop\n }\n\n //search inside each elements:\n _.forEach(collection, function (elt) {\n if (_.isFunction(elt.find)) {\n found = elt.find(searchedSerial);\n if (found) {\n return false; //break the each loop\n }\n }\n });\n\n if (found) {\n return false; //break the each loop\n }\n });\n } else {\n throw new Error('invalid argument : collectionNames must be an array or a string');\n }\n\n return found;\n },\n addMarkupNamespace: function addMarkupNamespace(markup, ns) {\n if (ns) {\n markup = markup.replace(/<(\\/)?([a-z:]+)(\\s?)([^><]*)>/g, function ($0, $1, $2, $3, $4) {\n if ($2.indexOf(':') > 0) {\n return $0;\n }\n $1 = $1 || '';\n $3 = $3 || '';\n return '<' + $1 + ns + ':' + $2 + $3 + $4 + '>';\n });\n return markup;\n }\n return markup;\n },\n removeMarkupNamespaces: function removeMarkupNamespace(markup) {\n return markup.replace(/<(\\/)?(\\w*):([^>]*)>/g, '<$1$3>');\n },\n getMarkupUsedNamespaces: function getMarkupUsedNamespaces(markup) {\n var namespaces = [];\n markup.replace(/<(\\/)?(\\w*):([^>]*)>/g, function (original, slash, ns, node) {\n namespaces.push(ns);\n return '<' + slash + node + '>';\n });\n return _.uniq(namespaces);\n }\n };\n\n return util;\n\n});\n\n","define('taoQtiItem/qtiItem/helper/rendererConfig',['lodash', 'jquery'], function (_, $) { 'use strict';\n\n _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;\n $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;\n\n var rendererConfigHelper = {};\n\n rendererConfigHelper.getOptionsFromArguments = function (args) {\n var options = {\n data: {},\n placeholder: null,\n subclass: '',\n renderer: null\n };\n\n _.forEach(args, function (arg) {\n if (arg) {\n if (arg.isRenderer) {\n options.renderer = arg;\n } else if (arg instanceof $ && arg.length) {\n options.placeholder = arg;\n } else if (_.isString(arg)) {\n options.subclass = arg;\n } else if (_.isPlainObject(arg)) {\n options.data = arg;\n } else {\n console.log('invalid arg', arg, args);\n }\n }\n });\n\n return options;\n };\n\n return rendererConfigHelper;\n\n});\n\n","define('taoQtiItem/qtiItem/core/Element',['jquery', 'lodash', 'class', 'core/logger', 'taoQtiItem/qtiItem/helper/util', 'taoQtiItem/qtiItem/helper/rendererConfig'], function ($, _, _class, loggerFactory, util, rendererConfig) { 'use strict';\n\n $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;\n _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;\n loggerFactory = loggerFactory && Object.prototype.hasOwnProperty.call(loggerFactory, 'default') ? loggerFactory['default'] : loggerFactory;\n util = util && Object.prototype.hasOwnProperty.call(util, 'default') ? util['default'] : util;\n rendererConfig = rendererConfig && Object.prototype.hasOwnProperty.call(rendererConfig, 'default') ? rendererConfig['default'] : rendererConfig;\n\n /*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Technologies SA\n *\n */\n\n var _instances = {};\n\n /**\n * Create a logger\n */\n var logger = loggerFactory('taoQtiItem/qtiItem/core/Element');\n\n var Element = Class.extend({\n qtiClass: '',\n serial: '',\n rootElement: null,\n init: function (serial, attributes) {\n //init own attributes\n this.attributes = {};\n\n //system properties, for item creator internal use only\n this.metaData = {};\n\n //init call in the format init(attributes)\n if (typeof serial === 'object') {\n attributes = serial;\n serial = '';\n }\n\n if (!serial) {\n serial = util.buildSerial(this.qtiClass + '_');\n }\n\n if (serial && (typeof serial !== 'string' || !serial.match(/^[a-z_0-9]*$/i))) {\n throw 'invalid QTI serial : (' + typeof serial + ') ' + serial;\n }\n\n if (!_instances[serial]) {\n _instances[serial] = this;\n this.serial = serial;\n this.setAttributes(attributes || {});\n } else {\n throw 'a QTI Element with the same serial already exists ' + serial;\n }\n\n if (typeof this.initContainer === 'function') {\n this.initContainer(arguments[2] || '');\n }\n if (typeof this.initObject === 'function') {\n this.initObject();\n }\n },\n is: function (qtiClass) {\n return qtiClass === this.qtiClass;\n },\n placeholder: function () {\n return '{{' + this.serial + '}}';\n },\n getSerial: function () {\n return this.serial;\n },\n getUsedIdentifiers: function () {\n var usedIds = {};\n var elts = this.getComposingElements();\n for (var i in elts) {\n var elt = elts[i];\n var id = elt.attr('identifier');\n if (id) {\n //warning: simplistic implementation, allow only one unique identifier in the item no matter the element class/type\n usedIds[id] = elt;\n }\n }\n return usedIds;\n },\n\n /**\n * Get the ids in use. (id is different from identifier)\n * @returns {Array} of the ids in use\n */\n getUsedIds: function getUsedIds() {\n var usedIds = [];\n _.forEach(this.getComposingElements(), function (elt) {\n var id = elt.attr('id');\n if (id && !usedIds.includes(id)) {\n usedIds.push(id);\n }\n });\n return usedIds;\n },\n\n attr: function (name, value) {\n if (name) {\n if (value !== undefined) {\n this.attributes[name] = value;\n } else {\n if (typeof name === 'object') {\n for (var prop in name) {\n this.attr(prop, name[prop]);\n }\n } else if (typeof name === 'string') {\n if (this.attributes[name] === undefined) {\n return undefined;\n } else {\n return this.attributes[name];\n }\n }\n }\n }\n return this;\n },\n data: function (name, value) {\n if (name) {\n if (value !== undefined) {\n this.metaData[name] = value;\n $(document).trigger('metaChange.qti-widget', { element: this, key: name, value: value });\n } else {\n if (typeof name === 'object') {\n for (var prop in name) {\n this.data(prop, name[prop]);\n }\n } else if (typeof name === 'string') {\n if (this.metaData[name] === undefined) {\n return undefined;\n } else {\n return this.metaData[name];\n }\n }\n }\n }\n return this;\n },\n removeData: function (name) {\n delete this.metaData[name];\n return this;\n },\n removeAttr: function (name) {\n return this.removeAttributes(name);\n },\n setAttributes: function (attributes) {\n if (!_.isPlainObject(attributes)) {\n logger.warn('attributes should be a plain object');\n }\n this.attributes = attributes;\n return this;\n },\n getAttributes: function () {\n return _.clone(this.attributes);\n },\n removeAttributes: function (attrNames) {\n if (typeof attrNames === 'string') {\n attrNames = [attrNames];\n }\n for (var i in attrNames) {\n delete this.attributes[attrNames[i]];\n }\n return this;\n },\n getComposingElements: function () {\n var elts = {};\n function append(element) {\n elts[element.getSerial()] = element; //pass individual object by ref, instead of the whole list(object)\n elts = _.extend(elts, element.getComposingElements());\n }\n if (typeof this.initContainer === 'function') {\n append(this.getBody());\n }\n if (typeof this.initObject === 'function') {\n append(this.getObject());\n }\n _.forEach(this.metaData, function (v) {\n if (Element.isA(v, '_container')) {\n append(v);\n } else if (_.isArray(v)) {\n _.forEach(v, function (v) {\n if (Element.isA(v, '_container')) {\n append(v);\n }\n });\n }\n });\n return elts;\n },\n getUsedClasses: function () {\n var ret = [this.qtiClass],\n composingElts = this.getComposingElements();\n\n _.forEach(composingElts, function (elt) {\n ret.push(elt.qtiClass);\n });\n\n return _.uniq(ret);\n },\n find: function (serial) {\n var found = null;\n var object, body;\n\n if (typeof this.initObject === 'function') {\n object = this.getObject();\n if (object.serial === serial) {\n found = { parent: this, element: object, location: 'object' };\n }\n }\n\n if (!found && typeof this.initContainer === 'function') {\n body = this.getBody();\n if (body.serial === serial) {\n found = { parent: this, element: body, location: 'body' };\n } else {\n found = this.getBody().find(serial, this);\n }\n }\n\n return found;\n },\n parent: function () {\n var item = this.getRootElement();\n if (item) {\n var found = item.find(this.getSerial());\n if (found) {\n return found.parent;\n }\n }\n return null;\n },\n /**\n * @deprecated - use setRootElement() instead\n */\n setRelatedItem: function (item) {\n logger.warn('Deprecated use of setRelatedItem()');\n this.setRootElement(item);\n },\n setRootElement: function (item) {\n var composingElts, i;\n\n if (Element.isA(item, 'assessmentItem')) {\n this.rootElement = item;\n composingElts = this.getComposingElements();\n for (i in composingElts) {\n composingElts[i].setRootElement(item);\n }\n }\n },\n /**\n * @deprecated - use getRootElement() instead\n */\n getRelatedItem: function () {\n logger.warn('Deprecated use of getRelatedItem()');\n return this.getRootElement();\n },\n getRootElement: function () {\n var ret = null;\n if (Element.isA(this.rootElement, 'assessmentItem')) {\n ret = this.rootElement;\n }\n return ret;\n },\n setRenderer: function (renderer) {\n if (renderer && renderer.isRenderer) {\n this.renderer = renderer;\n var elts = this.getComposingElements();\n for (var serial in elts) {\n elts[serial].setRenderer(renderer);\n }\n } else {\n throw 'invalid qti rendering engine';\n }\n },\n getRenderer: function () {\n return this.renderer;\n },\n /**\n * Render the element. Arguments are all optional and can be given in any order.\n * Argument parsing is based on argument type and is done by taoQtiItem/qtiItem/core/helpers/rendererConfig\n * @param {Renderer} renderer - specify which renderer to use\n * @param {jQuery} placeholder - DOM element that will be replaced by the rendered element\n * @param {Object} data - template data for the rendering\n * @param {String} subclass - subclass enables different behaviour of the same qti class in different contexts (eg. we could have different rendering for simpleChoice according to where it is being used: simpleChoice.orderInteraction, simpleChoice.choiceInteraction...)\n * @returns {String} - the rendered element as an HTML string\n */\n render: function render() {\n var args = rendererConfig.getOptionsFromArguments(arguments);\n var _renderer = args.renderer || this.getRenderer();\n var rendering;\n\n var tplData = {},\n defaultData = {\n tag: this.qtiClass,\n serial: this.serial,\n attributes: this.getAttributes()\n };\n\n if (!_renderer) {\n throw new Error('render: no renderer found for the element ' + this.qtiClass + ':' + this.serial);\n }\n\n if (typeof this.initContainer === 'function') {\n //allow body to have a different renderer if it has its own renderer set\n defaultData.body = this.getBody().render(args.renderer);\n }\n if (typeof this.initObject === 'function') {\n defaultData.object = {\n attributes: this.object.getAttributes()\n };\n defaultData.object.attributes.data = _renderer.resolveUrl(this.object.attr('data'));\n }\n\n tplData = _.merge(defaultData, args.data || {});\n tplData = _renderer.getData(this, tplData, args.subclass);\n rendering = _renderer.renderTpl(this, tplData, args.subclass);\n if (args.placeholder) {\n args.placeholder.replaceWith(rendering);\n }\n\n return rendering;\n },\n postRender: function (data, altClassName, renderer) {\n var postRenderers = [];\n var _renderer = renderer || this.getRenderer();\n\n if (typeof this.initContainer === 'function') {\n //allow body to have a different renderer if it has its own renderer set\n postRenderers = this.getBody().postRender(data, '', renderer);\n }\n\n if (_renderer) {\n postRenderers.push(_renderer.postRender(this, data, altClassName));\n } else {\n throw 'postRender: no renderer found for the element ' + this.qtiClass + ':' + this.serial;\n }\n\n return _.compact(postRenderers);\n },\n getContainer: function ($scope, subclass) {\n var renderer = this.getRenderer();\n if (renderer) {\n return renderer.getContainer(this, $scope, subclass);\n } else {\n throw 'getContainer: no renderer found for the element ' + this.qtiClass + ':' + this.serial;\n }\n },\n toArray: function () {\n var arr = {\n serial: this.serial,\n type: this.qtiClass,\n attributes: this.getAttributes()\n };\n\n if (typeof this.initContainer === 'function') {\n arr.body = this.getBody().toArray();\n }\n if (typeof this.initObject === 'function') {\n arr.object = this.object.toArray();\n }\n\n return arr;\n },\n isEmpty: function () {\n //tells whether the element should be considered empty or not, from the rendering point of view\n return false;\n },\n addClass: function (className) {\n var clazz = this.attr('class') || '';\n if (!_containClass(clazz, className)) {\n this.attr('class', clazz + (clazz.length ? ' ' : '') + className);\n }\n },\n hasClass: function (className) {\n return _containClass(this.attr('class'), className);\n },\n removeClass: function (className) {\n var clazz = this.attr('class') || '';\n if (clazz) {\n var regex = new RegExp('(?:^|\\\\s)' + className + '(?:\\\\s|$)');\n clazz = clazz.replace(regex, ' ').trim();\n\n if (clazz) {\n this.attr('class', clazz);\n } else {\n this.removeAttr('class');\n }\n }\n },\n /**\n * Add or remove class. Setting the optional state will force addition/removal.\n * State is here to keep the jQuery syntax\n *\n * @param {String} className\n * @param {Boolean} [state]\n */\n toggleClass: function (className, state) {\n if (typeof state === 'boolean') {\n return state ? this.addClass(className) : this.removeClass(className);\n }\n\n if (this.hasClass(className)) {\n return this.removeClass(className);\n }\n return this.addClass(className);\n },\n isset: function () {\n return Element.issetElement(this.serial);\n },\n unset: function () {\n return Element.unsetElement(this.serial);\n }\n });\n\n var _containClass = function (allClassStr, className) {\n var regex = new RegExp('(?:^|\\\\s)' + className + '(?:\\\\s|$)', '');\n return allClassStr && regex.test(allClassStr);\n };\n\n //helpers\n Element.isA = function (qtiElement, qtiClass) {\n return qtiElement instanceof Element && qtiElement.is(qtiClass);\n };\n\n Element.getElementBySerial = function (serial) {\n return _instances[serial];\n };\n\n Element.issetElement = function (serial) {\n return !!_instances[serial];\n };\n\n /**\n * Unset a registered element from it's serial\n * @param {String} serial - the element serial\n * @returns {Boolean} true if unset\n */\n Element.unsetElement = function (serial) {\n var element = Element.getElementBySerial(serial);\n\n if (element) {\n var composingElements = element.getComposingElements();\n _.forEach(composingElements, function (elt) {\n delete _instances[elt.serial];\n });\n delete _instances[element.serial];\n\n return true;\n }\n return false;\n };\n\n return Element;\n\n});\n\n","define('taoQtiItem/qtiItem/helper/xmlNsHandler',[],function () { 'use strict';\n\n /*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2017-2022 (original work) Open Assessment Technologies SA\n */\n\n /**\n * XML namespace handling\n */\n\n /**\n * Elements that need to be prefixed\n *\n * @see http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2.xsd\n * @type {string}\n */\n const prefixed = 'article|aside|bdi|figure|footer|header|nav|rb|rp|rt|rtc|ruby|section';\n\n /**\n * Find a possibly existing prefix\n *\n * @param namespaces\n * @param html5Ns\n * @returns {*}\n */\n function getPrefix(namespaces, html5Ns) {\n let key;\n for (key in namespaces) {\n if (namespaces[key] === html5Ns) {\n return key;\n }\n }\n return 'qh5';\n }\n\n var xmlNsHandler = {\n /**\n * Remove prefix to make sure elements are properly displayed\n *\n * @param body\n */\n stripNs: function stripNs(body) {\n const pattern = '([\\\\w]+)\\\\:(' + prefixed + ')';\n const openRegEx = new RegExp('(<' + pattern + ')', 'gi');\n const closeRegEx = new RegExp('(<\\\\/' + pattern + '>)', 'gi');\n return body.replace(openRegEx, '<$3').replace(closeRegEx, '');\n },\n\n /**\n * Add a prefix to those elements that require one\n *\n * @param xml\n * @param namespaces\n * @returns {*}\n */\n restoreNs: function restoreNs(xml, namespaces, ignoreMarkup = false) {\n let xmlCopy = xml;\n if (ignoreMarkup) {\n // cut from xmlCopy ...\n // because markup should be html without namespace qh5\n xmlCopy = xml.replace(/((?=)+)/gim, '');\n }\n const xmlRe = new RegExp('(<(' + prefixed + ')[^>]*>|<\\\\/(' + prefixed + ')>)', 'gi');\n const tagRe = new RegExp('((<)(' + prefixed + ')([^>]*)(>)|(<\\\\/)(' + prefixed + ')(>))', 'i');\n const xmlMatch = xmlCopy.match(xmlRe);\n const imsXsd = 'http://www.imsglobal.org/xsd';\n const html5Ns = imsXsd + '/imsqtiv2p2_html5_v1p0';\n const prefix = getPrefix(namespaces, html5Ns);\n const prefixAtt = 'xmlns:' + prefix + '=\"' + html5Ns + '\"';\n let i = xmlMatch ? xmlMatch.length : 0;\n\n if (!xmlMatch) {\n return xml;\n }\n\n while (i--) {\n const tagMatch = xmlMatch[i].match(tagRe);\n xml = xml.replace(\n xmlMatch[i],\n tagMatch[5]\n ? '<' + prefix + ':' + tagMatch[3] + tagMatch[4] + '>'\n : ''\n );\n }\n\n // we found matches but no namespace has been set\n if (xmlMatch.length && xml.indexOf(prefixAtt) === -1) {\n xml = xml.replace(' ({\n qtiClass: 'responseCondition',\n responseIf: {\n qtiClass: 'responseIf',\n expression: {\n qtiClass: 'match',\n expressions: [\n {\n qtiClass: 'variable',\n attributes: {\n identifier: responseIdentifier,\n },\n },\n {\n qtiClass: 'correct',\n attributes: {\n identifier: responseIdentifier,\n },\n },\n ],\n },\n responseRules: [\n {\n qtiClass: 'setOutcomeValue',\n attributes: {\n identifier: outcomeIdentifier,\n },\n expression: {\n qtiClass: 'sum',\n expressions: [\n {\n qtiClass: 'variable',\n attributes: {\n identifier: outcomeIdentifier,\n },\n },\n {\n qtiClass: 'baseValue',\n attributes: {\n baseType: 'integer'\n },\n value: '1',\n },\n ],\n },\n },\n ],\n },\n }),\n MAP_RESPONSE: (responseIdentifier, outcomeIdentifier) => ({\n qtiClass: 'responseCondition',\n responseIf: {\n qtiClass: 'responseIf',\n expression: {\n qtiClass: 'not',\n expressions: [\n {\n qtiClass: 'isNull',\n expressions: [{\n qtiClass: 'variable',\n attributes: {\n identifier: responseIdentifier,\n },\n }],\n },\n ],\n },\n responseRules: [\n {\n qtiClass: 'setOutcomeValue',\n attributes: {\n identifier: outcomeIdentifier,\n },\n expression: {\n qtiClass: 'sum',\n expressions: [\n {\n qtiClass: 'variable',\n attributes: {\n identifier: outcomeIdentifier,\n }\n },\n {\n qtiClass: 'mapResponse',\n attributes: {\n identifier: responseIdentifier,\n },\n },\n ],\n },\n },\n ],\n },\n }),\n MAP_RESPONSE_POINT: (responseIdentifier, outcomeIdentifier) => ({\n qtiClass: 'responseCondition',\n responseIf: {\n qtiClass: 'responseIf',\n expression: {\n qtiClass: 'not',\n expressions: [\n {\n qtiClass: 'isNull',\n expressions: [{\n qtiClass: 'variable',\n attributes: {\n identifier: responseIdentifier,\n },\n }],\n },\n ],\n },\n responseRules: [\n {\n qtiClass: 'setOutcomeValue',\n attributes: {\n identifier: outcomeIdentifier,\n },\n expression: {\n qtiClass: 'sum',\n expressions: [\n {\n qtiClass: 'variable',\n attributes: {\n identifier: outcomeIdentifier,\n }\n },\n {\n qtiClass: 'mapResponsePoint',\n attributes: {\n identifier: responseIdentifier,\n },\n },\n ],\n },\n },\n ],\n },\n }),\n };\n\n return responseRules;\n\n});\n\n","define('taoQtiItem/qtiItem/helper/response',['lodash', 'taoQtiItem/qtiItem/helper/responseRules'], function (_, responseRulesHelper) { 'use strict';\n\n _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;\n responseRulesHelper = responseRulesHelper && Object.prototype.hasOwnProperty.call(responseRulesHelper, 'default') ? responseRulesHelper['default'] : responseRulesHelper;\n\n /*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014-2020 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);\n *\n */\n\n const _templateNames = {\n MATCH_CORRECT: 'http://www.imsglobal.org/question/qti_v2p1/rptemplates/match_correct',\n MAP_RESPONSE: 'http://www.imsglobal.org/question/qti_v2p1/rptemplates/map_response',\n MAP_RESPONSE_POINT: 'http://www.imsglobal.org/question/qti_v2p1/rptemplates/map_response_point',\n NONE: 'no_response_processing'\n };\n\n\n var response = {\n isUsingTemplate(response, tpl) {\n if (_.isString(tpl)) {\n if (tpl === response.template || _templateNames[tpl] === response.template) {\n return true;\n }\n }\n\n return false;\n },\n isValidTemplateName(tplName) {\n return !!this.getTemplateUriFromName(tplName);\n },\n getTemplateUriFromName(tplName) {\n return _templateNames[tplName] || '';\n },\n getTemplateNameFromUri(tplUri) {\n let tplName = '';\n\n _.forIn(_templateNames, (uri, name) => {\n if (uri === tplUri) {\n tplName = name;\n return false;\n }\n });\n\n return tplName;\n },\n getTemplateNameFromResponseRules(responseIdentifier, responseRules) {\n if (!responseRules) {\n return 'NONE';\n }\n\n const {\n responseIf: {\n responseRules: [outcomeRules = {}] = [],\n } = {}\n } = responseRules;\n const {\n attributes: {\n identifier: outcomeIdentifier,\n } = {},\n } = outcomeRules;\n\n if (!outcomeIdentifier) {\n return '';\n }\n\n return Object.keys(responseRulesHelper).find(\n (key) => _.isEqual(responseRules, responseRulesHelper[key](responseIdentifier, outcomeIdentifier))\n );\n }\n };\n\n return response;\n\n});\n\n","define('taoQtiItem/qtiItem/helper/itemScore',[],function () { 'use strict';\n\n /*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2020 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);\n *\n */\n\n /**\n * Returns iteraction score response rule object\n *\n * @param {String} responseIdentifiers interactions reponse indentifiers\n * @returns {Obeject}\n */\n var itemScore = (responseIdentifiers) => {\n const outcomeExpressions = responseIdentifiers.map((outcomeIdentifier) => ({\n qtiClass: 'variable',\n attributes: {\n identifier: `SCORE_${outcomeIdentifier}`,\n },\n }));\n\n return {\n qtiClass: 'setOutcomeValue',\n attributes: {\n identifier: 'SCORE',\n },\n expression: {\n qtiClass: 'sum',\n expressions: outcomeExpressions,\n },\n };\n };\n\n return itemScore;\n\n});\n\n","define('taoQtiItem/qtiItem/core/Loader',['lodash', 'class', 'taoQtiItem/qtiItem/core/qtiClasses', 'taoQtiItem/qtiItem/core/Element', 'taoQtiItem/qtiItem/helper/xmlNsHandler', 'core/moduleLoader', 'taoQtiItem/qtiItem/helper/response', 'taoQtiItem/qtiItem/helper/itemScore'], function (_, _class, qtiClasses, Element, xmlNsHandler, moduleLoader, responseHelper, itemScoreHelper) { 'use strict';\n\n _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;\n qtiClasses = qtiClasses && Object.prototype.hasOwnProperty.call(qtiClasses, 'default') ? qtiClasses['default'] : qtiClasses;\n Element = Element && Object.prototype.hasOwnProperty.call(Element, 'default') ? Element['default'] : Element;\n xmlNsHandler = xmlNsHandler && Object.prototype.hasOwnProperty.call(xmlNsHandler, 'default') ? xmlNsHandler['default'] : xmlNsHandler;\n moduleLoader = moduleLoader && Object.prototype.hasOwnProperty.call(moduleLoader, 'default') ? moduleLoader['default'] : moduleLoader;\n responseHelper = responseHelper && Object.prototype.hasOwnProperty.call(responseHelper, 'default') ? responseHelper['default'] : responseHelper;\n itemScoreHelper = itemScoreHelper && Object.prototype.hasOwnProperty.call(itemScoreHelper, 'default') ? itemScoreHelper['default'] : itemScoreHelper;\n\n /*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015-2020 (original work) Open Assessment Technologies SA ;\n *\n */\n\n /**\n * If a property is given as a serialized JSON object, parse it directly to a JS object\n */\n const loadPortableCustomElementProperties = (portableElement, rawProperties) => {\n var properties = {};\n\n _.forOwn(rawProperties, (value, key) => {\n try {\n properties[key] = JSON.parse(value);\n } catch (e) {\n properties[key] = value;\n }\n });\n portableElement.properties = properties;\n };\n\n const loadPortableCustomElementData = (portableElement, data) => {\n portableElement.typeIdentifier = data.typeIdentifier;\n portableElement.markup = data.markup;\n portableElement.entryPoint = data.entryPoint;\n portableElement.libraries = data.libraries;\n portableElement.setNamespace('', data.xmlns);\n\n loadPortableCustomElementProperties(portableElement, data.properties);\n };\n\n var Loader = Class.extend({\n init(item, classesLocation) {\n this.qti = {}; //loaded qti classes are store here\n this.classesLocation = {};\n this.item = item || null; //starts either from scratch or with an existing item object\n\n this.setClassesLocation(classesLocation || qtiClasses); //load default location for qti classes model\n },\n setClassesLocation(qtiClassesList) {\n _.extend(this.classesLocation, qtiClassesList);\n\n return this;\n },\n getRequiredClasses(data) {\n let ret = [];\n\n for (let i in data) {\n if (i === 'qtiClass' && data[i] !== '_container' && i !== 'rootElement') {\n //although a _container is a concrete class in TAO, it is not defined in QTI standard\n ret.push(data[i]);\n } else if (typeof data[i] === 'object' && i !== 'responseRules') {\n //responseRules should'nt be part of the parsing\n ret = _.union(ret, this.getRequiredClasses(data[i]));\n }\n }\n\n return ret;\n },\n loadRequiredClasses(data, callback, reload) {\n let requiredClass;\n const requiredClasses = this.getRequiredClasses(data, reload);\n const required = [];\n\n for (let i in requiredClasses) {\n requiredClass = requiredClasses[i];\n if (this.classesLocation[requiredClass]) {\n required.push({\n module: this.classesLocation[requiredClass],\n category: 'qti'\n });\n } else {\n throw new Error(`missing qti class location declaration : ${requiredClass}`);\n }\n }\n\n moduleLoader([], () => true).addList(required).load().then(loadeded => {\n loadeded.forEach(QtiClass => {\n this.qti[QtiClass.prototype.qtiClass] = QtiClass;\n });\n callback.call(this, this.qti);\n });\n },\n getLoadedClasses() {\n return _.keys(this.qti);\n },\n loadItemData(data, callback) {\n this.loadRequiredClasses(data, Qti => {\n if (typeof data === 'object' && data.qtiClass === 'assessmentItem') {\n //unload an item from it's serial (in case of a reload)\n if (data.serial) {\n Element.unsetElement(data.serial);\n }\n\n this.item = new Qti.assessmentItem(data.serial, data.attributes || {});\n this.loadContainer(this.item.getBody(), data.body);\n\n for (let i in data.outcomes) {\n const outcome = this.buildOutcome(data.outcomes[i]);\n\n if (outcome) {\n this.item.addOutcomeDeclaration(outcome);\n }\n }\n\n for (let i in data.feedbacks) {\n const feedback = this.buildElement(data.feedbacks[i]);\n\n if (feedback) {\n this.item.addModalFeedback(feedback);\n }\n }\n\n for (let i in data.stylesheets) {\n const stylesheet = this.buildElement(data.stylesheets[i]);\n\n if (stylesheet) {\n this.item.addStylesheet(stylesheet);\n }\n }\n\n //important : build responses after all modal feedbacks and outcomes has been loaded, because the simple feedback rules need to reference them\n let responseRules = data.responseProcessing && data.responseProcessing.responseRules\n ? [...data.responseProcessing.responseRules]\n : [];\n for (let i in data.responses) {\n const responseIdentifier = data.responses[i].identifier;\n const responseRuleItemIndex = responseRules.findIndex(({ responseIf: {\n expression: {\n expressions: [expression = {}] = [],\n } = {}\n } = {} }) => expression.attributes\n && expression.attributes.identifier === responseIdentifier\n || (\n expression.expressions\n && expression.expressions[0]\n && expression.expressions[0].attributes\n && expression.expressions[0].attributes.identifier === responseIdentifier\n )\n );\n const [responseRule] = responseRuleItemIndex !== -1\n ? responseRules.splice(responseRuleItemIndex, 1)\n : [];\n\n const response = this.buildResponse(\n data.responses[i],\n responseRule\n );\n\n if (response) {\n this.item.addResponseDeclaration(response);\n\n const feedbackRules = data.responses[i].feedbackRules;\n\n if (feedbackRules) {\n _.forIn(feedbackRules, (fbData, serial) => {\n const {\n attributes: {\n identifier: feedbackOutcomeIdentifier,\n } = {}\n } = data.outcomes[fbData.feedbackOutcome] || {};\n response.feedbackRules[serial] = this.buildSimpleFeedbackRule(fbData, response);\n\n // remove feedback response rule from response rules array\n const feedbackResponseRuleIndex = responseRules.findIndex(({\n responseIf: {\n responseRules: [setOutcomeResponseRule = {}] = [],\n } = {}\n }) => {\n const { attributes = {}, qtiClass } = setOutcomeResponseRule;\n const outcomeIdentifier = attributes.identifier;\n\n return feedbackOutcomeIdentifier === outcomeIdentifier\n && qtiClass === 'setOutcomeValue';\n });\n\n if (feedbackResponseRuleIndex !== -1) {\n responseRules.splice(feedbackResponseRuleIndex, 1);\n }\n });\n }\n }\n }\n\n const responseIdentifiers = Object.keys(this.item.responses || {})\n .map((responseKey) => this.item.responses[responseKey].attributes.identifier);\n\n if (data.responseProcessing) {\n const customResponseProcessing =\n (\n responseRules.length > 0\n && !(\n responseRules.length === 1\n && _.isEqual(\n responseRules[0],\n itemScoreHelper(\n responseIdentifiers\n )\n )\n )\n )\n || (\n this.item.responses\n && Object.keys(this.item.responses)\n .some((responseKey) => !this.item.responses[responseKey].template)\n );\n\n this.item.setResponseProcessing(this.buildResponseProcessing(data.responseProcessing, customResponseProcessing));\n }\n this.item.setNamespaces(data.namespaces);\n this.item.setSchemaLocations(data.schemaLocations);\n this.item.setApipAccessibility(data.apipAccessibility);\n }\n\n if (typeof callback === 'function') {\n callback.call(this, this.item);\n }\n });\n },\n loadAndBuildElement(data, callback) {\n this.loadRequiredClasses(data, () => {\n const element = this.buildElement(data);\n\n if (typeof callback === 'function') {\n callback.call(this, element);\n }\n });\n },\n loadElement(element, data, callback) {\n this.loadRequiredClasses(data, () => {\n this.loadElementData(element, data);\n\n if (typeof callback === 'function') {\n callback.call(this, element);\n }\n });\n },\n /**\n * Load ALL given elements into existing loaded item\n *\n * @todo to be renamed to loadItemElements\n * @param {object} data\n * @param {function} callback\n * @returns {undefined}\n */\n loadElements(data, callback) {\n if (!this.item) {\n throw new Error('QtiLoader : cannot load elements in empty item');\n }\n\n this.loadRequiredClasses(data, () => {\n const allElements = this.item.getComposingElements();\n\n for (let i in data) {\n const elementData = data[i];\n\n if (elementData && elementData.qtiClass && elementData.serial) {\n //find and update element\n if (allElements[elementData.serial]) {\n this.loadElementData(allElements[elementData.serial], elementData);\n }\n }\n }\n\n if (typeof callback === 'function') {\n callback.call(this, this.item);\n }\n });\n },\n buildResponse(data, responseRule) {\n const response = this.buildElement(data);\n\n response.template = responseHelper.getTemplateUriFromName(\n responseHelper.getTemplateNameFromResponseRules(data.identifier, responseRule)\n )\n || data.howMatch\n || null;\n\n response.defaultValue = data.defaultValue || null;\n response.correctResponse = data.correctResponses || null;\n\n if (_.size(data.mapping)) {\n response.mapEntries = data.mapping;\n } else if (_.size(data.areaMapping)) {\n response.mapEntries = data.areaMapping;\n } else {\n response.mapEntries = {};\n }\n\n response.mappingAttributes = data.mappingAttributes || {};\n\n return response;\n },\n buildSimpleFeedbackRule(data, response) {\n const feedbackRule = this.buildElement(data);\n\n feedbackRule.setCondition(response, data.condition, data.comparedValue || null);\n\n // feedbackRule.comparedOutcome = this.item.responses[data.comparedOutcome] || null;\n feedbackRule.feedbackOutcome = this.item.outcomes[data.feedbackOutcome] || null;\n feedbackRule.feedbackThen = this.item.modalFeedbacks[data.feedbackThen] || null;\n feedbackRule.feedbackElse = this.item.modalFeedbacks[data.feedbackElse] || null;\n\n //associate the compared outcome to the feedbacks if applicable\n const comparedOutcome = feedbackRule.comparedOutcome;\n\n if (feedbackRule.feedbackThen) {\n feedbackRule.feedbackThen.data('relatedResponse', comparedOutcome);\n }\n\n if (feedbackRule.feedbackElse) {\n feedbackRule.feedbackElse.data('relatedResponse', comparedOutcome);\n }\n\n return feedbackRule;\n },\n buildOutcome(data) {\n const outcome = this.buildElement(data);\n outcome.defaultValue = data.defaultValue || null;\n\n return outcome;\n },\n buildResponseProcessing(data, customResponseProcessing) {\n const rp = this.buildElement(data);\n\n if (customResponseProcessing) {\n rp.xml = data.data;\n rp.processingType = 'custom';\n } else {\n rp.processingType = 'templateDriven';\n }\n\n return rp;\n },\n loadContainer(bodyObject, bodyData) {\n if (!Element.isA(bodyObject, '_container')) {\n throw new Error('bodyObject must be a QTI Container');\n }\n\n if (!(bodyData && typeof bodyData.body === 'string' && typeof bodyData.elements === 'object')) {\n throw new Error('wrong bodydata format');\n }\n //merge attributes when loading element data\n const attributes = _.defaults(bodyData.attributes || {}, bodyObject.attributes || {});\n bodyObject.setAttributes(attributes);\n\n for (let serial in bodyData.elements) {\n const eltData = bodyData.elements[serial];\n const element = this.buildElement(eltData);\n\n //check if class is loaded:\n if (element) {\n bodyObject.setElement(element, bodyData.body);\n }\n }\n\n bodyObject.body(xmlNsHandler.stripNs(bodyData.body));\n },\n buildElement(elementData) {\n if (!(elementData && elementData.qtiClass && elementData.serial)) {\n throw new Error('wrong elementData format');\n }\n\n const className = elementData.qtiClass;\n\n if (!this.qti[className]) {\n throw new Error(`the qti element class does not exist: ${className}`);\n }\n\n const elt = new this.qti[className](elementData.serial);\n this.loadElementData(elt, elementData);\n\n return elt;\n },\n loadElementData(element, data) {\n //merge attributes when loading element data\n const attributes = _.defaults(data.attributes || {}, element.attributes || {});\n element.setAttributes(attributes);\n\n let body = data.body;\n if (!body && data.text && data.qtiClass === 'inlineChoice') {\n body = { body: data.text, elements: {} };\n }\n if (element.body && body) {\n if (element.bdy) {\n this.loadContainer(element.getBody(), body);\n }\n }\n\n if (element.object && data.object) {\n if (element.object) {\n this.loadObjectData(element.object, data.object);\n }\n }\n\n if (Element.isA(element, 'interaction')) {\n this.loadInteractionData(element, data);\n } else if (Element.isA(element, 'choice')) {\n this.loadChoiceData(element, data);\n } else if (Element.isA(element, 'math')) {\n this.loadMathData(element, data);\n } else if (Element.isA(element, 'infoControl')) {\n this.loadPicData(element, data);\n } else if (Element.isA(element, '_tooltip')) {\n this.loadTooltipData(element, data);\n }\n\n return element;\n },\n loadInteractionData(interaction, data) {\n if (Element.isA(interaction, 'blockInteraction')) {\n if (data.prompt) {\n this.loadContainer(interaction.prompt.getBody(), data.prompt);\n }\n }\n\n this.buildInteractionChoices(interaction, data);\n\n if (Element.isA(interaction, 'customInteraction')) {\n this.loadPciData(interaction, data);\n }\n },\n buildInteractionChoices(interaction, data) {\n // note: Qti.ContainerInteraction (Qti.GapMatchInteraction and Qti.HottextInteraction) has already been parsed by builtElement(interacionData);\n if (data.choices) {\n if (Element.isA(interaction, 'matchInteraction')) {\n for (let set = 0; set < 2; set++) {\n if (!data.choices[set]) {\n throw new Error(`missing match set #${set}`);\n }\n\n const matchSet = data.choices[set];\n\n for (let serial in matchSet) {\n const choice = this.buildElement(matchSet[serial]);\n\n if (choice) {\n interaction.addChoice(choice, set);\n }\n }\n }\n } else {\n for (let serial in data.choices) {\n const choice = this.buildElement(data.choices[serial]);\n\n if (choice) {\n interaction.addChoice(choice);\n }\n }\n }\n\n if (Element.isA(interaction, 'graphicGapMatchInteraction')) {\n if (data.gapImgs) {\n for (let serial in data.gapImgs) {\n const gapImg = this.buildElement(data.gapImgs[serial]);\n\n if (gapImg) {\n interaction.addGapImg(gapImg);\n }\n }\n }\n }\n }\n },\n loadChoiceData(choice, data) {\n if (Element.isA(choice, 'textVariableChoice')) {\n choice.val(data.text);\n } else if (Element.isA(choice, 'gapImg')) ; else if (Element.isA(choice, 'gapText')) {\n // this ensure compatibility of Qti 2.1 items\n if (!choice.body()) {\n choice.body(data.text);\n }\n } else if (Element.isA(choice, 'containerChoice')) ;\n },\n loadObjectData(object, data) {\n object.setAttributes(data.attributes);\n\n //@todo: manage object like a container\n if (data._alt) {\n if (data._alt.qtiClass === 'object') {\n object._alt = Loader.buildElement(data._alt);\n } else {\n object._alt = data._alt;\n }\n }\n },\n loadMathData(math, data) {\n math.ns = data.ns || {};\n math.setMathML(data.mathML || '');\n _.forIn(data.annotations || {}, (value, encoding) => {\n math.setAnnotation(encoding, value);\n });\n },\n loadTooltipData(tooltip, data) {\n tooltip.content(data.content);\n },\n loadPciData(pci, data) {\n loadPortableCustomElementData(pci, data);\n },\n loadPicData(pic, data) {\n loadPortableCustomElementData(pic, data);\n }\n });\n\n return Loader;\n\n});\n\n","define('taoQtiItem/qtiItem/helper/pci',['lodash'], function (_) { 'use strict';\n\n _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;\n\n var pci = {\n getRawValues: function (pciVar) {\n if (_.isPlainObject(pciVar)) {\n if (typeof pciVar.base !== 'undefined') {\n return _.values(pciVar.base);\n } else if (pciVar.list) {\n return _.values(pciVar.list);\n }\n }\n throw new Error('unsupported type ');\n }\n };\n\n return pci;\n\n});\n\n","define('taoQtiItem/qtiItem/helper/container',['lodash', 'jquery'], function (_, $) { 'use strict';\n\n _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;\n $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;\n\n /*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA\n **/\n\n /**\n * Prefix used to the variable storage\n * @type String\n */\n var _prefix = 'x-tao-';\n\n /**\n * Check if the element is of a qti container type\n *\n * @private\n * @param {Object} element\n * @returns {Boolean}\n */\n function _checkContainerType(element) {\n if (_.isFunction(element.initContainer) && _.isFunction(element.body)) {\n return true;\n } else {\n throw 'the element is not of a container type';\n }\n }\n\n /**\n * Get the body element of the container\n *\n * @private\n * @param {Object} element\n * @returns {JQuery}\n */\n function _getBodyDom(element) {\n if (_checkContainerType(element)) {\n return $('
    ')\n .html(element.body())\n .find('.x-tao-wrapper');\n }\n }\n\n /**\n * Add a class to the body element of the qti container\n *\n * @private\n * @param {Object} element\n * @param {String} newClass\n * @param {String} [oldClass]\n */\n function _setBodyDomClass(element, newClass, oldClass) {\n if (_checkContainerType(element) && (oldClass || newClass)) {\n var $wrapper = $('
    ').html(element.body());\n //set css class to element\n _setDomClass($wrapper, newClass, oldClass);\n //set to the model\n element.body($wrapper.html());\n }\n }\n\n /**\n * Switch class to the wrapped DOM\n *\n * @param {JQuery} $wrapper\n * @param {String} newClass\n * @param {String} oldClass\n * @returns {undefined}\n */\n function _setDomClass($wrapper, newClass, oldClass) {\n var $bodyDom = $wrapper.find('.x-tao-wrapper');\n if (!$bodyDom.length) {\n //create one\n $wrapper.wrapInner('
    ');\n $bodyDom = $wrapper.find('.x-tao-wrapper');\n }\n if (oldClass) {\n $bodyDom.removeClass(oldClass);\n }\n if (newClass) {\n $bodyDom.addClass(newClass);\n }\n }\n\n /**\n * Add manually the encoded information to a dom element\n *\n * @param {JQuery} $wrapper - the wrapper of the element that will holds the information\n * @param {String} dataName - the name of the information\n * @param {String} newValue - the new value to be added\n * @param {String} [oldValue] - the old value to be removed\n * @returns {undefined}\n */\n function setEncodedDataToDom($wrapper, dataName, newValue, oldValue) {\n _setDomClass($wrapper, _getEncodedDataString(dataName, newValue), _getEncodedDataString(dataName, oldValue));\n }\n\n /**\n * Get the full variable name for the data store\n *\n * @param {String} dataName\n * @param {String} value\n * @returns {String}\n */\n function _getEncodedDataString(dataName, value) {\n if (dataName && value) {\n return _prefix + dataName + '-' + value;\n }\n return '';\n }\n\n /**\n * Set a data string to the element identified by its dataName\n *\n * @param {Object} element\n * @param {String} dataName\n * @param {String} newValue\n * @returns {undefined}\n */\n function setEncodedData(element, dataName, newValue) {\n var oldValue = getEncodedData(element, dataName);\n return _setBodyDomClass(\n element,\n _getEncodedDataString(dataName, newValue),\n _getEncodedDataString(dataName, oldValue)\n );\n }\n\n /**\n * Remove the stored data from the element by its dataName\n *\n * @param {Object} element\n * @param {String} dataName\n * @returns {unresolved}\n */\n function removeEncodedData(element, dataName) {\n var oldValue = getEncodedData(element, dataName);\n if (dataName && oldValue) {\n _setBodyDomClass(element, '', _getEncodedDataString(dataName, oldValue));\n }\n }\n\n /**\n * Check if the stored data exist\n *\n * @param {Object} element\n * @param {String} dataName\n * @param {String} value\n * @returns {Boolean}\n */\n function hasEncodedData(element, dataName, value) {\n var $body = _getBodyDom(element);\n if ($body && $body.length && dataName && value) {\n return $body.hasClass(_getEncodedDataString(dataName, value));\n }\n return false;\n }\n\n /**\n * Get the encoded data identified by its dataName\n *\n * @param {Object} element\n * @param {String} dataName\n * @returns {String}\n */\n function getEncodedData(element, dataName) {\n var regex, matches;\n var $body = _getBodyDom(element);\n if (dataName && $body && $body.length && $body.attr('class')) {\n regex = new RegExp(_prefix + dataName + '-([a-zA-Z0-9-._]*)');\n matches = $body.attr('class').match(regex);\n if (matches) {\n return matches[1];\n }\n }\n }\n\n /**\n * Provide a set of helper functions to set,retirve and manage string data to a container type qti element.\n */\n var container = {\n setEncodedData: setEncodedData,\n hasEncodedData: hasEncodedData,\n getEncodedData: getEncodedData,\n removeEncodedData: removeEncodedData,\n setEncodedDataToDom: setEncodedDataToDom\n };\n\n return container;\n\n});\n\n","define('taoQtiItem/qtiRunner/modalFeedback/inlineRenderer',['lodash', 'jquery', 'context', 'taoQtiItem/qtiItem/helper/pci', 'taoQtiItem/qtiItem/helper/container', 'handlebars', 'lib/handlebars/helpers', 'iframeNotifier'], function (_, $$1, context, pci, containerHelper, Handlebars, Helpers0, iframeNotifier) { 'use strict';\n\n _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;\n $$1 = $$1 && Object.prototype.hasOwnProperty.call($$1, 'default') ? $$1['default'] : $$1;\n context = context && Object.prototype.hasOwnProperty.call(context, 'default') ? context['default'] : context;\n pci = pci && Object.prototype.hasOwnProperty.call(pci, 'default') ? pci['default'] : pci;\n containerHelper = containerHelper && Object.prototype.hasOwnProperty.call(containerHelper, 'default') ? containerHelper['default'] : containerHelper;\n Handlebars = Handlebars && Object.prototype.hasOwnProperty.call(Handlebars, 'default') ? Handlebars['default'] : Handlebars;\n Helpers0 = Helpers0 && Object.prototype.hasOwnProperty.call(Helpers0, 'default') ? Helpers0['default'] : Helpers0;\n iframeNotifier = iframeNotifier && Object.prototype.hasOwnProperty.call(iframeNotifier, 'default') ? iframeNotifier['default'] : iframeNotifier;\n\n if (!Helpers0.__initialized) {\n Helpers0(Handlebars);\n Helpers0.__initialized = true;\n }\n var Template = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\n helpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n var buffer = \"\", helper, options, helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;\n\n\n buffer += \"
  • \\n \\n \"\n + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, \"OK\", options) : helperMissing.call(depth0, \"__\", \"OK\", options)))\n + \"\\n \\n
  • \";\n return buffer;\n });\n function previewOkBtn(data, options, asString) {\n var html = Template(data, options);\n return (asString || true) ? html : $(html);\n }\n\n if (!Helpers0.__initialized) {\n Helpers0(Handlebars);\n Helpers0.__initialized = true;\n }\n var Template$1 = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {\n this.compilerInfo = [4,'>= 1.0.0'];\n helpers = this.merge(helpers, Handlebars.helpers); \n\n\n return \"
  • \\n \\n \\n OK\\n \\n
  • \";\n });\n function deliveryOkBtn(data, options, asString) {\n var html = Template$1(data, options);\n return (asString || true) ? html : $(html);\n }\n\n /*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Techonologies SA;\n *\n */\n\n var timeout = (context.timeout > 0 ? context.timeout + 1 : 30) * 1000;\n\n /**\n * Main function for the module. It loads and render the feedbacks accodring to the given itemSession variables\n *\n * @param {Object} item - the standard tao qti item object\n * @param {Object} loader - the item loader instance\n * @param {Object} renderer - the item render instance\n * @param {Object} itemSession - session information containing the list of feedbacks to display\n * @param {Function} onCloseCallback - the callback to be executed when the feedbacks are closed\n * @param {Function} [onShowCallback] - the callback to be executed when the feedbacks are shown\n * @returns {Number} Number of feedbacks to be displayed\n */\n function showFeedbacks(item, loader, renderer, itemSession, onCloseCallback, onShowCallback) {\n var interactionsDisplayInfo = getInteractionsDisplayInfo(item);\n var messages = {};\n var renderedFeebacks = [];\n var renderingQueue = [];\n var $itemContainer = item.getContainer();\n var $itemBody = $itemContainer.children('.qti-itemBody');\n var firstFeedback;\n\n _.forEach(item.modalFeedbacks, function (feedback) {\n var feedbackIds, message, $container, comparedOutcome, _currentMessageGroupId, interactionInfo;\n var outcomeIdentifier = feedback.attr('outcomeIdentifier');\n var order = -1;\n\n //verify if the feedback should be displayed\n if (itemSession[outcomeIdentifier]) {\n //is the feedback in the list of feedbacks to be displayed ?\n feedbackIds = pci.getRawValues(itemSession[outcomeIdentifier]);\n if (_.indexOf(feedbackIds, feedback.id()) === -1) {\n return true; //continue with next feedback\n }\n\n //which group of feedbacks (interaction related) the feedback belongs to ?\n message = getFeedbackMessageSignature(feedback);\n comparedOutcome = containerHelper.getEncodedData(feedback, 'relatedOutcome');\n interactionInfo = _.find(interactionsDisplayInfo, { responseIdentifier: comparedOutcome });\n if (comparedOutcome && interactionInfo) {\n $container = interactionInfo.displayContainer;\n _currentMessageGroupId = interactionInfo.messageGroupId;\n order = interactionInfo.order;\n } else {\n $container = $itemBody;\n _currentMessageGroupId = '__item__';\n }\n //is this message already displayed ?\n if (!messages[_currentMessageGroupId]) {\n messages[_currentMessageGroupId] = [];\n }\n if (_.indexOf(messages[_currentMessageGroupId], message) >= 0) {\n return true; //continue\n } else {\n messages[_currentMessageGroupId].push(message);\n }\n\n //ok, display feedback\n renderingQueue.push({\n feedback: feedback,\n $container: $container,\n order: order\n });\n }\n });\n\n if (renderingQueue.length) {\n renderingQueue = _.sortBy(renderingQueue, 'order');\n\n //clear previously displayed feedbacks\n clearModalFeedbacks($itemContainer);\n\n //process rendering queue\n _.forEach(renderingQueue, function (renderingToken) {\n renderModalFeedback(\n renderingToken.feedback,\n loader,\n renderer,\n renderingToken.$container,\n $itemContainer,\n function (renderingData) {\n // keep the first feedback to force focus on it if needed\n if (!firstFeedback) {\n firstFeedback = $$1(renderingData.dom);\n }\n\n $$1('img', renderingData.dom).on('load', function () {\n iframeNotifier.parent('itemcontentchange');\n });\n\n //record rendered feedback for later reference\n renderedFeebacks.push(renderingData);\n if (renderedFeebacks.length === renderingQueue.length) {\n //rendering processing queue completed\n iframeNotifier.parent('itemcontentchange');\n\n // set the focus on the first feedback if needed\n // TODO: this is heavily related to the old TestRunner, with the ugly iframes.\n // To make this working, a search is made accross parent frames.\n // When the InlineFeedbacks will be ported to the new TestRunner, a strong improvement will be needed!\n if (firstFeedback) {\n autoscroll(firstFeedback);\n }\n\n //if an optional \"on show modal\" callback has been provided, execute it\n if (_.isFunction(onShowCallback)) {\n onShowCallback();\n }\n }\n }\n );\n });\n\n //if any feedback is displayed, replace the controls by a \"ok\" button\n replaceControl(renderedFeebacks, $itemContainer, onCloseCallback);\n }\n\n return renderingQueue.length;\n }\n\n /**\n * Gets the QTI Container element\n * @returns {jQuery|null}\n */\n function getQtiContainer() {\n var me = window;\n var $container = null;\n var max = 10;\n\n while (me && me.__knownParent__ && max--) {\n me = me.parent;\n if (me && me.$) {\n $container = me.$('#qti-content');\n if ($container.length) {\n return $container;\n }\n }\n }\n return null;\n }\n\n /**\n * Keeps an element visible inside the QTI container.\n * If the element is outside the container viewport, scroll to display it.\n * @param {String|jQuery|HTMLElement} element\n */\n function autoscroll(element) {\n var $element = $$1(element);\n var $container = getQtiContainer();\n var currentScrollTop, minScrollTop, maxScrollTop, scrollTop;\n\n if ($element.length && $container) {\n currentScrollTop = $container.scrollTop();\n maxScrollTop = $element.offset().top;\n minScrollTop = maxScrollTop - $container.height() + $element.outerHeight();\n scrollTop = Math.max(Math.min(maxScrollTop, currentScrollTop), minScrollTop);\n if (scrollTop !== currentScrollTop) {\n $container.animate({ scrollTop: scrollTop });\n }\n }\n }\n\n /**\n * Extract the display information for an interaction-related feedback\n *\n * @private\n * @param {Object} interaction - a qti interaction object\n * @returns {Object} Object containing useful display information\n */\n function extractDisplayInfo(interaction) {\n var $interactionContainer = interaction.getContainer();\n var responseIdentifier = interaction.attr('responseIdentifier');\n var messageGroupId, $displayContainer;\n\n if (interaction.is('inlineInteraction')) {\n $displayContainer = $interactionContainer.closest('[class*=\" col-\"], [class^=\"col-\"]');\n messageGroupId = $displayContainer.attr('data-messageGroupId');\n if (!messageGroupId) {\n //generate a messageFroupId\n messageGroupId = _.uniqueId('inline_message_group_');\n $displayContainer.attr('data-messageGroupId', messageGroupId);\n }\n } else {\n messageGroupId = responseIdentifier;\n $displayContainer = $interactionContainer;\n }\n\n return {\n responseIdentifier: responseIdentifier,\n interactionContainer: $interactionContainer,\n displayContainer: $displayContainer,\n messageGroupId: messageGroupId,\n order: -1\n };\n }\n\n /**\n * Get interaction display information sorted in the order of appearance within the item\n *\n * @param {Object} item\n * @returns {Array}\n */\n function getInteractionsDisplayInfo(item) {\n var interactionsDisplayInfo = [];\n var $itemContainer = item.getContainer();\n var interactionOrder = 0;\n\n //extract all interction related information needed to display their\n _.forEach(item.getComposingElements(), function (element) {\n var responseIdentifier;\n if (element.is('interaction')) {\n responseIdentifier = element.attr('responseIdentifier');\n interactionsDisplayInfo.push(extractDisplayInfo(element));\n }\n });\n\n //sort interactionsDisplayInfo on the item level\n $itemContainer.find('.qti-interaction').each(function () {\n var interactionContainer = this;\n _.forEach(interactionsDisplayInfo, function (_interactionInfo) {\n if (_interactionInfo.interactionContainer[0] === interactionContainer) {\n _interactionInfo.order = interactionOrder;\n return false;\n }\n });\n interactionOrder++;\n });\n interactionsDisplayInfo = _.sortBy(interactionsDisplayInfo, 'order');\n\n return interactionsDisplayInfo;\n }\n\n /**\n * Remove previously displayed feedbacks contained in the given container element\n *\n * @param {JQuery} $itemContainer\n */\n function clearModalFeedbacks($itemContainer) {\n $itemContainer.find('.qti-modalFeedback').remove();\n }\n\n /**\n * Render a modal feedback into a given container, scoped within an item container\n *\n * @private\n * @param {type} feedback - feedback object\n * @param {type} loader - loader instance\n * @param {type} renderer - renderer instance\n * @param {JQuery} $container - the targeted feedback container\n * @param {JQuery} $itemContainer - the item container\n * @param {type} renderedCallback - callback when the feedback has been rendered\n * @returns {undefined}\n */\n function renderModalFeedback(feedback, loader, renderer, $container, $itemContainer, renderedCallback) {\n //load (potential) new qti classes used in the modal feedback (e.g. math, img)\n renderer.load(function () {\n //render the modal feedback\n var $modalFeedback = $$1(\n feedback.render({\n inline: true\n })\n );\n var done = function done() {\n renderedCallback({\n identifier: feedback.id(),\n serial: feedback.getSerial(),\n dom: $modalFeedback\n });\n };\n $container.append($modalFeedback);\n\n // Race between postRendering and timeout\n // postRendering waits for everything to be resolved or one reject\n Promise.race([\n Promise.all(\n _.map(feedback.getComposingElements(), function (elt) {\n //render also internal elements, such as math or img\n return elt.postRender({}, '', renderer).pop();\n })\n ),\n new Promise(function (resolve, reject) {\n _.delay(reject, timeout, new Error('Post rendering ran out of time.'));\n })\n ])\n .then(done)\n .catch(function (err) {\n //in case of postRendering issue, we are also done\n done();\n throw new Error('Error in post rendering : ' + err);\n });\n }, loader.getLoadedClasses());\n }\n\n /**\n * Replace the controls in the running environment with an \"OK\" button to trigger the end of the feedback state\n *\n * @private\n * @todo FIX ME ! replace the hack to preview and delivery toolbar with a proper plugin in the new test runner is ready\n * @param {Array} renderedFeebacks\n * @param {JQuery} $itemContainer\n * @param {Function} callback\n */\n function replaceControl(renderedFeebacks, $itemContainer, callback) {\n var $scope, $controls, $toggleContainer;\n if (window.parent && window.parent.parent && window.parent.parent.$) {\n if ($itemContainer.parents('.tao-preview-scope').length) {\n //preview mode\n $scope = window.parent.parent.$('#preview-console');\n $controls = $scope.find('.preview-console-header .action-bar li:visible');\n $toggleContainer = $scope.find('.console-button-action-bar');\n initControlToggle(renderedFeebacks, $itemContainer, $controls, $toggleContainer, previewOkBtn, callback);\n } else {\n //delivery delivery\n $scope = window.parent.parent.$('body.qti-test-scope .bottom-action-bar');\n $controls = $scope.find('li:visible');\n $toggleContainer = $scope.find('.navi-box-list');\n initControlToggle(renderedFeebacks, $itemContainer, $controls, $toggleContainer, deliveryOkBtn, callback);\n }\n } else {\n //not in an iframe, add to item body for now\n $scope = $itemContainer.find('#modalFeedbacks');\n initControlToggle(renderedFeebacks, $itemContainer, $$1(), $scope, previewOkBtn, callback);\n }\n }\n\n /**\n * Initialize the \"OK\" button to trigger the end of the feedback mode\n *\n * @private\n * @param {Array} renderedFeebacks\n * @param {JQuery} $itemContainer\n * @param {JQuery} $controls\n * @param {JQuery} $toggleContainer\n * @param {Function} toggleButtonTemplate\n * @param {Function} callback\n */\n function initControlToggle(\n renderedFeebacks,\n $itemContainer,\n $controls,\n $toggleContainer,\n toggleButtonTemplate,\n callback\n ) {\n var $ok = $$1(toggleButtonTemplate()).click(function () {\n //end feedback mode, hide feedbacks\n _.forEach(renderedFeebacks, function (fb) {\n fb.dom.hide();\n });\n\n //restore controls\n uncover([$itemContainer]);\n $ok.remove();\n $controls.show();\n\n //exec callback\n callback();\n });\n\n $controls.hide();\n $toggleContainer.append($ok);\n cover([$itemContainer]);\n }\n\n /**\n * Cover the given interaction containers with a transparent layer to prevent user interacting with the item\n * @private\n * @param {Array} interactionContainers\n */\n function cover(interactionContainers) {\n var $cover = $$1('
    ');\n _.forEach(interactionContainers, function ($interaction) {\n $interaction.append($cover);\n });\n }\n\n /**\n * Remove the layer set by the function cover()\n * @private\n * @param {Array} interactionContainers\n */\n function uncover(interactionContainers) {\n _.forEach(interactionContainers, function ($interaction) {\n $interaction.find('.interaction-cover').remove();\n });\n }\n\n /**\n * Provide the feedbackMessage signature to check if the feedback contents should be considered equals\n *\n * @param {type} feedback\n * @returns {String}\n */\n function getFeedbackMessageSignature(feedback) {\n return ('' + feedback.body() + feedback.attr('title'))\n .toLowerCase()\n .trim()\n .replace(/x-tao-[a-zA-Z0-9\\-._\\s]*/g, '');\n }\n\n var inlineRenderer = {\n showFeedbacks: showFeedbacks\n };\n\n return inlineRenderer;\n\n});\n\n","define('taoQtiItem/qtiRunner/modalFeedback/modalRenderer',['lodash', 'jquery', 'async', 'taoQtiItem/qtiItem/helper/pci'], function (_, $, async, pci) { 'use strict';\n\n _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;\n $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;\n async = async && Object.prototype.hasOwnProperty.call(async, 'default') ? async['default'] : async;\n pci = pci && Object.prototype.hasOwnProperty.call(pci, 'default') ? pci['default'] : pci;\n\n /*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015 (original work) Open Assessment Techonologies SA;\n *\n */\n\n /**\n * Main function for the module. It loads and render the feedbacks accodring to the given itemSession variables\n *\n * @param {Object} item - the standard tao qti item object\n * @param {Object} loader - the item loader instance\n * @param {Object} renderer - the item render instance\n * @param {Object} itemSession - session information containing the list of feedbacks to display\n * @param {Function} onCloseCallback - the callback to be executed when the feedbacks are closed\n * @param {Function} [onShowCallback] - the callback to be executed when the feedbacks are shown\n * @returns {Number} Number of feedbacks to be displayed\n */\n function showFeedbacks(item, loader, renderer, itemSession, onCloseCallback, onShowCallback) {\n var count,\n messages = [],\n feedbacksToBeDisplayed = [];\n\n //find which modal feedbacks should be displayed according to the current item session:\n _.forEach(item.modalFeedbacks, function (feedback) {\n var feedbackIds, message;\n var outcomeIdentifier = feedback.attr('outcomeIdentifier');\n\n if (itemSession[outcomeIdentifier]) {\n feedbackIds = pci.getRawValues(itemSession[outcomeIdentifier]);\n message = getFeedbackMessageSignature(feedback);\n if (_.indexOf(feedbackIds, feedback.id()) >= 0 && _.indexOf(messages, message) === -1) {\n //check content if is already in the display queue\n feedbacksToBeDisplayed.push(feedback);\n messages.push(message);\n }\n }\n });\n\n //record the number of feedbacks to be displayed:\n count = feedbacksToBeDisplayed.length;\n if (count) {\n //show in reverse order\n var callstack = [];\n\n //iterate from the right because the modal popup will pile up.\n _.forEachRight(feedbacksToBeDisplayed, function (feedback) {\n //the end callback should be executed to the last displayed modal, which is the last displayed one\n var endCallback;\n if (callstack.length === 0) {\n endCallback = function () {\n onCloseCallback();\n };\n }\n\n callstack.push(function (cb) {\n renderModalFeedback(\n feedback,\n loader,\n renderer,\n function () {\n cb(null);\n },\n endCallback\n );\n });\n });\n\n async.series(callstack, function () {\n //all modal are ready and displayed\n if (_.isFunction(onShowCallback)) {\n onShowCallback();\n }\n });\n }\n\n return count;\n }\n\n /**\n * Render modal feedback as a modal popup\n *\n * @param {Object} feedback - object\n * @param {Object} loader - loader instance\n * @param {Object} renderer - renderer instance\n * @param {Function} [closeCallback] - feedback to be executed when the popop closes\n * @returns {undefined}\n */\n function renderModalFeedback(feedback, loader, renderer, renderedCallback, closeCallback) {\n var $feedback,\n $feedbackBox = $('#modalFeedbacks'); //feedback.getItem().getContainer().find('#')\n\n if (feedback.is('modalFeedback')) {\n //load (potential) new qti classes used in the modal feedback (e.g. math, img)\n renderer.load(function () {\n $feedback = $feedbackBox.find('#' + feedback.getSerial());\n if (!$feedback.length) {\n //render the modal feedback\n $feedback = feedback.render();\n $feedbackBox.append($feedback);\n } else {\n $feedback.modal();\n }\n\n renderedCallback();\n\n feedback.postRender({\n callback: closeCallback\n });\n }, loader.getLoadedClasses());\n }\n }\n\n /**\n * Provide the feedbackMessage signature to check if the feedback contents should be considered equals\n *\n * @param {type} feedback\n * @returns {String}\n */\n function getFeedbackMessageSignature(feedback) {\n return ('' + feedback.body() + feedback.attr('title'))\n .toLowerCase()\n .trim()\n .replace(/x-tao-[a-zA-Z0-9\\-._\\s]*/g, '');\n }\n\n var modalRenderer = {\n showFeedbacks: showFeedbacks\n };\n\n return modalRenderer;\n\n});\n\n","define('taoQtiItem/qtiRunner/core/QtiRunner',['jquery', 'lodash', 'context', 'module', 'iframeNotifier', 'taoQtiItem/qtiItem/core/Loader', 'taoQtiItem/qtiRunner/modalFeedback/inlineRenderer', 'taoQtiItem/qtiRunner/modalFeedback/modalRenderer'], function ($, _, context, module, iframeNotifier, ItemLoader, modalFeedbackInline, modalFeedbackModal) { 'use strict';\n\n $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;\n _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;\n context = context && Object.prototype.hasOwnProperty.call(context, 'default') ? context['default'] : context;\n module = module && Object.prototype.hasOwnProperty.call(module, 'default') ? module['default'] : module;\n iframeNotifier = iframeNotifier && Object.prototype.hasOwnProperty.call(iframeNotifier, 'default') ? iframeNotifier['default'] : iframeNotifier;\n ItemLoader = ItemLoader && Object.prototype.hasOwnProperty.call(ItemLoader, 'default') ? ItemLoader['default'] : ItemLoader;\n modalFeedbackInline = modalFeedbackInline && Object.prototype.hasOwnProperty.call(modalFeedbackInline, 'default') ? modalFeedbackInline['default'] : modalFeedbackInline;\n modalFeedbackModal = modalFeedbackModal && Object.prototype.hasOwnProperty.call(modalFeedbackModal, 'default') ? modalFeedbackModal['default'] : modalFeedbackModal;\n\n /*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2013 (original work) Open Assessment Techonologies SA (under the project TAO-PRODUCT);\n *\n *\n */\n\n var timeout = (context.timeout > 0 ? context.timeout + 1 : 30) * 1000;\n\n var QtiRunner = function() {\n this.item = null;\n this.rpEngine = null;\n this.renderer = null;\n this.loader = null;\n this.itemApi = undefined;\n };\n\n QtiRunner.prototype.updateItemApi = function() {\n var responses = this.getResponses();\n var states = this.getStates();\n var variables = [];\n // Transform responses into state variables.\n for (var key in states) {\n var value = states[key];\n // This is where we set variables that will be collected and stored\n // as the Item State. We do not want to store large files into\n // the state, and force the client to download these files\n // all over again. We then transform them as a place holder, that will\n // simply indicate that a file composes the state.\n\n if (value.response && typeof value.response.base !== 'undefined') {\n for (var property in value.response.base) {\n if (property === 'file') {\n var file = value.response.base.file;\n // QTI File found! Replace it with an appropriate placeholder.\n // The data is base64('qti_file_datatype_placeholder_data')\n value.response = {\n base: {\n file: {\n name: file.name,\n mime: 'qti+application/octet-stream',\n data: 'cXRpX2ZpbGVfZGF0YXR5cGVfcGxhY2Vob2xkZXJfZGF0YQ=='\n }\n }\n };\n }\n }\n }\n\n variables[key] = value;\n }\n\n //set all variables at once\n this.itemApi.setVariables(variables);\n\n // Save the responses that will be used for response processing.\n this.itemApi.saveResponses(responses);\n this.itemApi.resultApi.setQtiRunner(this);\n };\n\n QtiRunner.prototype.setItemApi = function(itemApi) {\n this.itemApi = itemApi;\n var that = this;\n var oldStateVariables = JSON.stringify(itemApi.stateVariables);\n\n itemApi.onKill(function(killCallback) {\n // If the responses did not change,\n // just close gracefully.\n\n // Collect new responses and update item API.\n that.updateItemApi();\n var newStateVariables = JSON.stringify(itemApi.stateVariables);\n\n // Store the results.\n if (oldStateVariables !== newStateVariables || itemApi.serviceApi.getHasBeenPaused()) {\n itemApi.submit(function() {\n // Send successful signal.\n itemApi.serviceApi.setHasBeenPaused(false);\n killCallback(0);\n });\n } else {\n killCallback(0);\n }\n });\n };\n\n QtiRunner.prototype.setRenderer = function(renderer) {\n if (renderer.isRenderer) {\n this.renderer = renderer;\n } else {\n throw 'invalid renderer';\n }\n };\n\n QtiRunner.prototype.getLoader = function() {\n if (!this.loader) {\n this.loader = new ItemLoader();\n }\n return this.loader;\n };\n\n QtiRunner.prototype.loadItemData = function(data, callback) {\n var self = this;\n this.getLoader().loadItemData(data, function(item) {\n self.item = item;\n callback(self.item);\n });\n };\n\n QtiRunner.prototype.loadElements = function(elements, callback) {\n if (this.getLoader().item) {\n this.getLoader().loadElements(elements, callback);\n } else {\n throw 'QtiRunner : cannot load elements in empty item';\n }\n };\n\n QtiRunner.prototype.renderItem = function(data, done) {\n var self = this;\n\n done = _.isFunction(done) ? done : _.noop;\n\n var render = function() {\n if (!self.item) {\n throw 'cannot render item: empty item';\n }\n if (self.renderer) {\n self.renderer.load(function() {\n self.item.setRenderer(self.renderer);\n self.item.render({}, $('#qti_item'));\n\n // Race between postRendering and timeout\n // postRendering waits for everything to be resolved or one reject\n Promise.race([\n Promise.all(self.item.postRender()),\n new Promise(function(resolve, reject) {\n _.delay(reject, timeout, new Error('Post rendering ran out of time.'));\n })\n ])\n .then(function() {\n self.item.getContainer().on('responseChange', function(e, data) {\n if (data.interaction && data.interaction.attr('responseIdentifier') && data.response) {\n iframeNotifier.parent('responsechange', [\n data.interaction.attr('responseIdentifier'),\n data.response\n ]);\n }\n });\n\n self.initInteractionsResponse();\n self.listenForThemeChange();\n done();\n })\n .catch(function(err) {\n //in case of postRendering issue, we are also done\n done();\n\n throw new Error('Error in post rendering : ' + err);\n });\n }, self.getLoader().getLoadedClasses());\n } else {\n throw 'cannot render item: no rendered set';\n }\n };\n\n if (typeof data === 'object') {\n this.loadItemData(data, render);\n } else {\n render();\n }\n };\n\n QtiRunner.prototype.initInteractionsResponse = function() {\n var self = this;\n if (self.item) {\n var interactions = self.item.getInteractions();\n for (var i in interactions) {\n var interaction = interactions[i];\n var responseId = interaction.attr('responseIdentifier');\n self.itemApi.getVariable(responseId, function(values) {\n if (values) {\n interaction.setState(values);\n iframeNotifier.parent('stateready', [responseId, values]);\n } else {\n var states = self.getStates();\n if (_.indexOf(states, responseId)) {\n self.itemApi.setVariable(responseId, states[responseId]);\n interaction.setState(states[responseId]);\n iframeNotifier.parent('stateready', [responseId, states[responseId]]);\n }\n }\n });\n }\n }\n };\n\n /**\n * If an event 'themechange' bubbles to \"#qti_item\" node\n * then we tell the renderer to switch the theme.\n */\n QtiRunner.prototype.listenForThemeChange = function listenForThemeChange() {\n var self = this;\n var $container = this.renderer.getContainer(this.item);\n if (!$container.length) {\n $container = $('.qti-item');\n }\n $container.off('themechange').on('themechange', function(e, themeName) {\n var themeLoader = self.renderer.getThemeLoader();\n themeName = themeName || e.originalEvent.detail;\n if (themeLoader) {\n themeLoader.change(themeName);\n }\n });\n };\n\n QtiRunner.prototype.validate = function() {\n this.updateItemApi();\n this.itemApi.finish();\n };\n\n QtiRunner.prototype.getResponses = function() {\n var responses = {};\n var interactions = this.item.getInteractions();\n\n _.forEach(interactions, function(interaction) {\n var response = {};\n try {\n response = interaction.getResponse();\n } catch (e) {\n console.error(e);\n }\n responses[interaction.attr('responseIdentifier')] = response;\n });\n\n return responses;\n };\n\n QtiRunner.prototype.getStates = function() {\n var states = {};\n var interactions = this.item.getInteractions();\n\n _.forEach(interactions, function(interaction) {\n var state = {};\n try {\n state = interaction.getState();\n } catch (e) {\n console.error(e);\n }\n states[interaction.attr('responseIdentifier')] = state;\n });\n\n return states;\n };\n\n QtiRunner.prototype.setResponseProcessing = function(callback) {\n this.rpEngine = callback;\n };\n\n QtiRunner.prototype.showFeedbacks = function(itemSession, callback, onShowCallback) {\n var inlineDisplay = !!module.config().inlineModalFeedback;\n\n //currently only modal feedbacks are available\n if (inlineDisplay) {\n return modalFeedbackInline.showFeedbacks(\n this.item,\n this.getLoader(),\n this.renderer,\n itemSession,\n callback,\n onShowCallback\n );\n } else {\n return modalFeedbackModal.showFeedbacks(\n this.item,\n this.getLoader(),\n this.renderer,\n itemSession,\n callback,\n onShowCallback\n );\n }\n };\n\n return QtiRunner;\n\n});\n\n","define('taoQtiItem/qtiItem/helper/interactionHelper',['lodash', 'taoQtiItem/qtiItem/core/Element'], function (_, Element) { 'use strict';\n\n _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;\n Element = Element && Object.prototype.hasOwnProperty.call(Element, 'default') ? Element['default'] : Element;\n\n /**\n * Common helper functions\n */\n var interactionHelper = {\n convertChoices: function (choices, outputType) {\n var ret = [],\n _this = this;\n\n _.forEach(choices, function (c) {\n if (Element.isA(c, 'choice')) {\n switch (outputType) {\n case 'serial':\n ret.push(c.getSerial());\n break;\n case 'identifier':\n ret.push(c.id());\n break;\n default:\n ret.push(c);\n }\n } else if (_.isArray(c)) {\n ret.push(_this.convertChoices(c, outputType));\n }\n });\n\n return ret;\n },\n findChoices: function (interaction, choices, inputType) {\n var ret = [],\n _this = this;\n\n _.forEach(choices, function (c) {\n var choice;\n if (_.isString(c)) {\n if (inputType === 'serial') {\n choice = interaction.getChoice(c);\n if (choice) {\n ret.push(choice);\n }\n } else if (inputType === 'identifier') {\n choice = interaction.getChoiceByIdentifier(c);\n if (choice) {\n ret.push(choice);\n }\n } else {\n ret.push(c);\n }\n } else if (_.isArray(c)) {\n ret.push(_this.findChoices(interaction, c, inputType));\n } else {\n ret.push(c);\n }\n });\n\n return ret;\n },\n shuffleChoices: function (choices) {\n var r = [], //returned array\n f = {}, //fixed choices array\n j = 0;\n\n for (var i in choices) {\n if (Element.isA(choices[i], 'choice')) {\n var choice = choices[i];\n if (choice.attr('fixed')) {\n f[j] = choice;\n }\n r.push(choice);\n j++;\n } else {\n throw 'invalid element in array: is not a qti choice';\n }\n }\n\n for (var n = 0; n < r.length - 1; n++) {\n if (f[n]) {\n continue;\n }\n var k = -1;\n do {\n k = n + Math.floor(Math.random() * (r.length - n));\n } while (f[k]);\n var tmp = r[k];\n r[k] = r[n];\n r[n] = tmp;\n }\n\n return r;\n },\n serialToIdentifier: function (interaction, choiceSerial) {\n var choice = interaction.getChoice(choiceSerial);\n if (choice) {\n return choice.id();\n } else {\n return '';\n }\n }\n };\n\n return interactionHelper;\n\n});\n\n","define('taoQtiItem/qtiRunner/core/Renderer',['lodash', 'jquery', 'taoQtiItem/qtiItem/core/Element', 'taoQtiItem/qtiItem/helper/interactionHelper', 'ui/themeLoader', 'ui/themes', 'core/moduleLoader', 'handlebars'], function (_, $, Element, interactionHelper, themeLoader, themesHelper, moduleLoader, Handlebars) { 'use strict';\n\n _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;\n $ = $ && Object.prototype.hasOwnProperty.call($, 'default') ? $['default'] : $;\n Element = Element && Object.prototype.hasOwnProperty.call(Element, 'default') ? Element['default'] : Element;\n interactionHelper = interactionHelper && Object.prototype.hasOwnProperty.call(interactionHelper, 'default') ? interactionHelper['default'] : interactionHelper;\n themeLoader = themeLoader && Object.prototype.hasOwnProperty.call(themeLoader, 'default') ? themeLoader['default'] : themeLoader;\n themesHelper = themesHelper && Object.prototype.hasOwnProperty.call(themesHelper, 'default') ? themesHelper['default'] : themesHelper;\n moduleLoader = moduleLoader && Object.prototype.hasOwnProperty.call(moduleLoader, 'default') ? moduleLoader['default'] : moduleLoader;\n Handlebars = Handlebars && Object.prototype.hasOwnProperty.call(Handlebars, 'default') ? Handlebars['default'] : Handlebars;\n\n /*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014-2022 (original work) Open Assessment Technlogies SA (under the project TAO-PRODUCT);\n *\n */\n\n //webpack trick : handlebar is usale only from cjs.\n //but anyway we should deprecate the practice to invoke\n //directly Handlebars at runtimej\n let hb = Handlebars;\n if (typeof hb.compile !== 'function') {\n hb = require('handlebars');\n }\n\n const _renderableClasses = [\n '_container',\n 'assessmentItem',\n 'stylesheet',\n 'responseDeclaration',\n 'outcomeDeclaration',\n 'responseProcessing',\n '_simpleFeedbackRule',\n '_tooltip',\n 'figure',\n 'img',\n 'figcaption',\n 'math',\n 'object',\n 'table',\n 'modalFeedback',\n 'rubricBlock',\n 'associateInteraction',\n 'choiceInteraction',\n 'extendedTextInteraction',\n 'gapMatchInteraction',\n 'graphicAssociateInteraction',\n 'graphicGapMatchInteraction',\n 'graphicOrderInteraction',\n 'hotspotInteraction',\n 'hottextInteraction',\n 'inlineChoiceInteraction',\n 'matchInteraction',\n 'mediaInteraction',\n 'orderInteraction',\n 'selectPointInteraction',\n 'sliderInteraction',\n 'textEntryInteraction',\n 'uploadInteraction',\n 'endAttemptInteraction',\n 'customInteraction',\n 'prompt',\n 'associableHotspot',\n 'gap',\n 'gapImg',\n 'gapText',\n 'hotspotChoice',\n 'hottext',\n 'inlineChoice',\n 'simpleAssociableChoice',\n 'simpleChoice',\n 'infoControl',\n 'include',\n 'printedVariable'\n ];\n\n /**\n * The list of qti element dependencies. It is used internally to load dependent qti classes\n */\n const _dependencies = {\n assessmentItem: ['stylesheet', '_container', 'prompt', 'modalFeedback'],\n rubricBlock: ['_container'],\n associateInteraction: ['simpleAssociableChoice'],\n choiceInteraction: ['simpleChoice'],\n gapMatchInteraction: ['gap', 'gapText'],\n graphicAssociateInteraction: ['associableHotspot'],\n graphicGapMatchInteraction: ['associableHotspot', 'gapImg'],\n graphicOrderInteraction: ['hotspotChoice'],\n hotspotInteraction: ['hotspotChoice'],\n hottextInteraction: ['hottext'],\n inlineChoiceInteraction: ['inlineChoice'],\n matchInteraction: ['simpleAssociableChoice'],\n orderInteraction: ['simpleChoice']\n };\n\n /**\n * The list of supported qti subclasses.\n */\n const _renderableSubclasses = {\n simpleAssociableChoice: ['associateInteraction', 'matchInteraction'],\n simpleChoice: ['choiceInteraction', 'orderInteraction']\n };\n\n /**\n * List of the default properties for the item\n */\n const _defaults = {\n shuffleChoices: true\n };\n\n const _isValidRenderer = function (renderer) {\n let valid = true;\n\n if (typeof renderer !== 'object') {\n return false;\n }\n\n let classCorrect = false;\n if (renderer.qtiClass) {\n if (_.indexOf(_renderableClasses, renderer.qtiClass) >= 0) {\n classCorrect = true;\n } else {\n const pos = renderer.qtiClass.indexOf('.');\n if (pos > 0) {\n const qtiClass = renderer.qtiClass.slice(0, pos);\n const subClass = renderer.qtiClass.slice(pos + 1);\n if (_renderableSubclasses[qtiClass] && _.indexOf(_renderableSubclasses[qtiClass], subClass) >= 0) {\n classCorrect = true;\n }\n }\n }\n }\n if (!classCorrect) {\n valid = false;\n throw new Error('invalid qti class name in renderer declaration : ' + renderer.qtiClass);\n }\n\n if (!renderer.template) {\n valid = false;\n throw new Error('missing template in renderer declaration : ' + renderer.qtiClass);\n }\n\n return valid;\n };\n\n /**\n * Get the location of the document, useful to define a baseUrl for the required context\n * @returns {String}\n */\n function getDocumentBaseUrl() {\n return window.location.protocol + '//' + window.location.host + window.location.pathname.replace(/([^\\/]*)$/, '');\n }\n\n /**\n * The built Renderer class\n * @constructor\n * @param {Object} [options] - the renderer options\n * @param {AssetManager} [options.assetManager] - The renderer needs an AssetManager to resolve URLs (see {@link taoItems/assets/manager})\n * @param {Boolean} [options.shuffleChoices = true] - Does the renderer take care of the shuffling\n * @param {Object} [options.decorators] - to set up rendering decorator\n * @param {preRenderDecorator} [options.decorators.before] - to set up a pre decorator\n * @param {postRenderDecorator} [options.decorators.after] - to set up a post decorator\n */\n const Renderer = function (options) {\n /**\n * Store the registered renderer location\n */\n const _locations = {};\n\n /**\n * Store loaded renderers\n */\n const _renderers = {};\n\n options = _.defaults(options || {}, _defaults);\n\n this.isRenderer = true;\n\n this.name = '';\n\n //store shuffled choice here\n this.shuffledChoices = [];\n\n /**\n * Get the actual renderer of the give qti class or subclass:\n * e.g. simplceChoice, simpleChoice.choiceInteraction, simpleChoice.orderInteraction\n */\n const _getClassRenderer = function (qtiClass) {\n let ret = null;\n if (_renderers[qtiClass]) {\n ret = _renderers[qtiClass];\n } else {\n const pos = qtiClass.indexOf('.');\n if (pos > 0) {\n qtiClass = qtiClass.slice(0, pos);\n if (_renderers[qtiClass]) {\n ret = _renderers[qtiClass];\n }\n }\n }\n return ret;\n };\n\n /**\n * Registers a QTI renderer class\n * @param {String} qtiClass\n * @param {Array} list\n * @returns {Boolean} `true` if the class has been successfully registered\n */\n function registerRendererClass(qtiClass, list) {\n let success = false;\n if (_locations[qtiClass] === false) {\n //mark this class as not renderable\n _renderers[qtiClass] = false;\n success = true;\n } else if (_locations[qtiClass]) {\n list.push(_locations[qtiClass]);\n success = true;\n }\n return success;\n }\n\n /**\n * Set the renderer options\n * @param {String} key - the name of the option\n * @param {*} value - the option vallue\n * @returns {Renderer} for chaining\n */\n this.setOption = function (key, value) {\n if (typeof key === 'string') {\n options[key] = value;\n }\n return this;\n };\n\n /**\n * Set the renderer options\n * @param {Object} opts - the options\n * @returns {Renderer} for chaining\n */\n this.setOptions = function (opts) {\n options = _.extend(options, opts);\n return this;\n };\n\n /**\n * Get the renderer option\n * @param {String} key - the name of the option\n * @returns {*|null} the option vallue\n */\n this.getOption = function (key) {\n if (typeof key === 'string' && options[key]) {\n return options[key];\n }\n return null;\n };\n\n this.getCustomMessage = function getCustomMessage(elementName, messageKey) {\n const messages = this.getOption('messages');\n if (messages && elementName && messages[elementName] && _.isString(messages[elementName][messageKey])) {\n //currently not translatable but potentially could be if the need raises\n return hb.compile(messages[elementName][messageKey]);\n } else {\n return null;\n }\n };\n\n /**\n * Get the bound assetManager\n * @returns {AssetManager} the assetManager\n */\n this.getAssetManager = function getAssetManager() {\n return options.assetManager;\n };\n\n /**\n * Get the bound theme loader\n * @returns {Object} the themeLoader\n */\n this.getThemeLoader = function getThemeLoader() {\n return this.themeLoader;\n };\n\n /**\n * Renders the template\n * @param {Object} element - the QTI model element\n * @param {Object} data - the data to give to the template\n * @param {String} [qtiSubclass] - to get the render of the element subclass (when element's qtiClass is abstract)\n * @returns {String} the template results\n * @throws {Error} if the renderer is not set or has no template bound\n */\n this.renderTpl = function (element, data, qtiSubclass) {\n let res;\n let ret = '';\n const qtiClass = qtiSubclass || element.qtiClass;\n const renderer = _getClassRenderer(qtiClass);\n const decorators = this.getOption('decorators');\n\n if (!renderer || !_.isFunction(renderer.template)) {\n throw new Error('no renderer template loaded under the class name : ' + qtiClass);\n }\n\n //pre rendering decoration\n if (_.isObject(decorators) && _.isFunction(decorators.before)) {\n /**\n * @callback preRenderDecoractor\n * @param {Object} element - the QTI model element\n * @param {String} [qtiSubclass] - to get the render of the element subclass (when element's qtiClass is abstract)\n * @returns {String} the decorator result\n */\n res = decorators.before(element, qtiSubclass);\n if (_.isString(res)) {\n ret += res;\n }\n }\n\n //render the template\n ret += renderer.template(data);\n\n //post rendering decoration\n if (_.isObject(decorators) && _.isFunction(decorators.after)) {\n /**\n * @callback postRenderDecoractor\n * @param {Object} element - the QTI model element\n * @param {String} [qtiSubclass] - to get the render of the element subclass (when element's qtiClass is abstract)\n * @returns {String} the decorator result\n */\n res = decorators.after(element, qtiSubclass);\n if (_.isString(res)) {\n ret += res;\n }\n }\n return ret;\n };\n\n this.getData = function (element, data, qtiSubclass) {\n let ret = data;\n const qtiClass = qtiSubclass || element.qtiClass;\n const renderer = _getClassRenderer(qtiClass);\n\n if (renderer) {\n if (typeof renderer.getData === 'function') {\n ret = renderer.getData.call(this, element, data);\n }\n }\n\n return ret;\n };\n\n this.renderDirect = function (tpl, data) {\n return hb.compile(tpl)(data);\n };\n\n this.getContainer = function (qtiElement, $scope, qtiSubclass) {\n let ret = null;\n const qtiClass = qtiSubclass || qtiElement.qtiClass;\n const renderer = _getClassRenderer(qtiClass);\n\n if (renderer) {\n ret = renderer.getContainer(qtiElement, $scope);\n } else {\n throw new Error('no renderer found for the class : ' + qtiElement.qtiClass);\n }\n return ret;\n };\n\n this.postRender = function (qtiElement, data, qtiSubclass) {\n const qtiClass = qtiSubclass || qtiElement.qtiClass;\n const renderer = _getClassRenderer(qtiClass);\n\n if (renderer && typeof renderer.render === 'function') {\n return renderer.render.call(this, qtiElement, data);\n }\n };\n\n this.setResponse = function (qtiInteraction, response, qtiSubclass) {\n let ret = false;\n const qtiClass = qtiSubclass || qtiInteraction.qtiClass;\n const renderer = _getClassRenderer(qtiClass);\n\n if (renderer) {\n if (typeof renderer.setResponse === 'function') {\n ret = renderer.setResponse.call(this, qtiInteraction, response);\n const $container = renderer.getContainer.call(this, qtiInteraction);\n if ($container instanceof $ && $container.length) {\n $container.trigger('responseSet', [qtiInteraction, response]);\n }\n }\n } else {\n throw new Error('no renderer registered under the name : ' + qtiClass);\n }\n return ret;\n };\n\n this.getResponse = function (qtiInteraction, qtiSubclass) {\n let ret = false;\n const qtiClass = qtiSubclass || qtiInteraction.qtiClass;\n const renderer = _getClassRenderer(qtiClass);\n\n if (renderer) {\n if (typeof renderer.getResponse === 'function') {\n ret = renderer.getResponse.call(this, qtiInteraction);\n }\n } else {\n throw new Error('no renderer registered under the name : ' + qtiClass);\n }\n return ret;\n };\n\n this.resetResponse = function (qtiInteraction, qtiSubclass) {\n let ret = false;\n const qtiClass = qtiSubclass || qtiInteraction.qtiClass;\n const renderer = _getClassRenderer(qtiClass);\n\n if (renderer) {\n if (typeof renderer.resetResponse === 'function') {\n ret = renderer.resetResponse.call(this, qtiInteraction);\n }\n } else {\n throw new Error('no renderer registered under the name : ' + qtiClass);\n }\n return ret;\n };\n\n /**\n * Retrieve the state of the interaction.\n * If the renderer has no state management, it falls back to the response management.\n *\n * @param {Object} qtiInteraction - the interaction\n * @param {String} [qtiSubClass] - (not sure of the type and how it is used - Sam ? )\n * @returns {Object} the interaction's state\n *\n * @throws {Error} if no renderer is registered\n */\n this.getState = function (qtiInteraction, qtiSubclass) {\n let ret = false;\n const qtiClass = qtiSubclass || qtiInteraction.qtiClass;\n const renderer = _getClassRenderer(qtiClass);\n\n if (renderer) {\n if (_.isFunction(renderer.getState)) {\n ret = renderer.getState.call(this, qtiInteraction);\n } else {\n ret = renderer.getResponse.call(this, qtiInteraction);\n }\n } else {\n throw new Error('no renderer registered under the name : ' + qtiClass);\n }\n return ret;\n };\n\n /**\n * Retrieve the state of the interaction.\n * If the renderer has no state management, it falls back to the response management.\n *\n * @param {Object} qtiInteraction - the interaction\n * @param {Object} state - the interaction's state\n * @param {String} [qtiSubClass] - (not sure of the type and how it is used - Sam ? )\n *\n * @throws {Error} if no renderer is found\n */\n this.setState = function (qtiInteraction, state, qtiSubclass) {\n const qtiClass = qtiSubclass || qtiInteraction.qtiClass;\n const renderer = _getClassRenderer(qtiClass);\n\n if (renderer) {\n if (_.isFunction(renderer.setState)) {\n renderer.setState.call(this, qtiInteraction, state);\n } else {\n renderer.resetResponse.call(this, qtiInteraction);\n renderer.setResponse.call(this, qtiInteraction, state);\n }\n } else {\n throw new Error('no renderer registered under the name : ' + qtiClass);\n }\n };\n\n /**\n * Calls the renderer destroy.\n * Ask the renderer to run destroy if exists.\n *\n * @throws {Error} if no renderer is found\n */\n this.destroy = function (qtiInteraction, qtiSubclass) {\n let ret = false;\n const qtiClass = qtiSubclass || qtiInteraction.qtiClass;\n const renderer = _getClassRenderer(qtiClass);\n\n if (renderer) {\n if (_.isFunction(renderer.destroy)) {\n ret = renderer.destroy.call(this, qtiInteraction);\n }\n } else {\n throw new Error('no renderer registered under the name : ' + qtiClass);\n }\n return ret;\n };\n\n this.getLoadedRenderers = function () {\n return _renderers;\n };\n\n this.register = function (renderersLocations) {\n _.extend(_locations, renderersLocations);\n };\n\n this.load = function (callback, requiredClasses) {\n const self = this;\n let required = [];\n\n const themeData = themesHelper.getCurrentThemeData();\n if (themeData) {\n options.themes = themeData;\n }\n if (options.themes) {\n //resolve themes paths\n options.themes.base = this.resolveUrl(options.themes.base);\n _.forEach(options.themes.available, function (theme, index) {\n options.themes.available[index].path = self.resolveUrl(theme.path);\n });\n this.themeLoader = themeLoader(options.themes).load(options.preload);\n }\n\n if (requiredClasses) {\n if (_.isArray(requiredClasses)) {\n //exclude abstract classes\n requiredClasses = _.intersection(requiredClasses, _renderableClasses);\n\n //add dependencies\n _.forEach(requiredClasses, function (reqClass) {\n const deps = _dependencies[reqClass];\n if (deps) {\n requiredClasses = _.union(requiredClasses, deps);\n }\n });\n\n _.forEach(requiredClasses, function (qtiClass) {\n let requiredSubClasses;\n if (_renderableSubclasses[qtiClass]) {\n requiredSubClasses = _.intersection(requiredClasses, _renderableSubclasses[qtiClass]);\n _.forEach(requiredSubClasses, function (subclass) {\n if (\n !registerRendererClass(qtiClass + '.' + subclass, required) &&\n !registerRendererClass(qtiClass, required)\n ) {\n throw new Error(\n self.name +\n ' : missing qti class location declaration: ' +\n qtiClass +\n ', subclass: ' +\n subclass\n );\n }\n });\n } else {\n if (!registerRendererClass(qtiClass, required)) {\n throw new Error(self.name + ' : missing qti class location declaration: ' + qtiClass);\n }\n }\n });\n } else {\n throw new Error('invalid argument type: expected array for arg \"requireClasses\"');\n }\n } else {\n required = _.values(_locations);\n }\n\n moduleLoader([], () => true)\n .addList(required.map(module => ({ module, category: 'qti' })))\n .load()\n .then(loaded => {\n loaded.forEach(clazz => {\n if (_isValidRenderer(clazz)) {\n _renderers[clazz.qtiClass] = clazz;\n }\n });\n if (typeof callback === 'function') {\n callback.call(self, _renderers);\n }\n });\n\n return this;\n };\n\n /**\n * Unload the renderer\n */\n this.unload = function unload() {\n if (this.themeLoader) {\n themeLoader(options.themes).unload();\n }\n return this;\n };\n\n /**\n * Define the shuffling manually\n *\n * @param {Object} interaction - the interaction\n * @param {Array} choices - the shuffled choices\n * @param {String} identificationType -\n */\n this.setShuffledChoices = function (interaction, choices, identificationType) {\n if (Element.isA(interaction, 'interaction')) {\n this.shuffledChoices[interaction.getSerial()] = interactionHelper\n .findChoices(interaction, choices, identificationType)\n .map(val => val.serial);\n }\n };\n\n /**\n * Get the choices shuffled for this interaction.\n *\n * @param {Object} interaction - the interaction\n * @param {Boolean} reshuffle - by default choices are shuffled only once and store, but if true you can force shuffling again\n * @param {String} returnedType - the choice type\n * @returns {Array} the choices\n */\n this.getShuffledChoices = function (interaction, reshuffle, returnedType) {\n let choices = [];\n let serial, i;\n\n if (Element.isA(interaction, 'interaction')) {\n serial = interaction.getSerial();\n\n //1st time, we shuffle (or asked to force shuffling)\n if (!this.shuffledChoices[serial] || reshuffle) {\n if (Element.isA(interaction, 'matchInteraction')) {\n this.shuffledChoices[serial] = [];\n for (i = 0; i < 2; i++) {\n choices[i] = interactionHelper.shuffleChoices(interaction.getChoices(i));\n this.shuffledChoices[serial][i] = choices[i].map(val => val.serial);\n }\n } else {\n choices = interactionHelper.shuffleChoices(interaction.getChoices());\n this.shuffledChoices[serial] = choices.map(val => val.serial);\n }\n\n //otherwise get the choices from the serials\n } else {\n if (Element.isA(interaction, 'matchInteraction')) {\n _.forEach(choices, function (choice, index) {\n if (index < 2) {\n _.forEach(this.shuffledChoices[serial][i], function (choiceSerial) {\n choice.push(interaction.getChoice(choiceSerial));\n });\n }\n });\n } else {\n _.forEach(this.shuffledChoices[serial], function (choiceSerial) {\n choices.push(interaction.getChoice(choiceSerial));\n });\n }\n }\n\n //do some type convertion\n if (returnedType === 'serial' || returnedType === 'identifier') {\n return interactionHelper.convertChoices(choices, returnedType);\n }\n\n //pass value only, not ref\n return _.clone(choices);\n }\n\n return [];\n };\n\n this.getRenderers = function () {\n return _renderers;\n };\n\n this.getLocations = function () {\n return _locations;\n };\n\n /**\n * Resolve URLs using the defined assetManager's strategies\n * @param {String} url - the URL to resolve\n * @returns {String} the resolved URL\n */\n this.resolveUrl = function resolveUrl(url) {\n if (!options.assetManager) {\n return url;\n }\n if (typeof url === 'string' && url.length > 0) {\n return options.assetManager.resolve(url);\n }\n };\n\n /**\n * @deprecated in favor of resolveUrl\n */\n this.getAbsoluteUrl = function (relUrl) {\n //let until method is removed\n console.warn('DEPRECATED used getAbsoluteUrl with ', arguments);\n\n //allow relative url output only if explicitely said so\n if (this.getOption('userRelativeUrl')) {\n return relUrl.replace(/^\\.?\\//, '');\n }\n\n if (/^http(s)?:\\/\\//i.test(relUrl) || /^data:[^\\/]+\\/[^;]+(;charset=[\\w]+)?;base64,/.test(relUrl)) {\n //already absolute or base64 encoded\n return relUrl;\n } else {\n let absUrl = '';\n const runtimeLocations = this.getOption('runtimeLocations');\n\n if (runtimeLocations && _.size(runtimeLocations)) {\n _.forIn(runtimeLocations, function (runtimeLocation, typeIdentifier) {\n if (relUrl.indexOf(typeIdentifier) === 0) {\n absUrl = relUrl.replace(typeIdentifier, runtimeLocation);\n return false; //break\n }\n });\n }\n\n if (absUrl) {\n return absUrl;\n } else {\n const baseUrl = this.getOption('baseUrl') || getDocumentBaseUrl();\n return baseUrl + relUrl;\n }\n }\n };\n\n this.setAreaBroker = function setAreaBroker(areaBroker) {\n this._areaBroker = areaBroker;\n };\n\n this.getAreaBroker = function getAreaBroker() {\n if (this._areaBroker) {\n return this._areaBroker;\n }\n };\n\n this.getItemCreator = function getItemCreator() {\n return this.getOption('itemCreator');\n };\n };\n\n /**\n * Expose the renderer's factory\n * @exports taoQtiItem/qtiRunner/core/Renderer\n */\n var Renderer$1 = {\n /**\n * Creates a new Renderer by extending the Renderer's prototype\n * @param {Object} renderersLocations -\n * @param {String} [name] - the new renderer name\n * @param {Object} [defaultOptions] - the renderer options\n */\n build: function (renderersLocations, name, defaultOptions) {\n const NewRenderer = function () {\n const options = _.isPlainObject(arguments[0]) ? arguments[0] : {};\n\n Renderer.apply(this);\n\n this.register(renderersLocations);\n this.name = name || '';\n this.setOptions(_.defaults(options, defaultOptions || {}));\n };\n NewRenderer.prototype = Renderer.prototype;\n return NewRenderer;\n }\n };\n\n return Renderer$1;\n\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA;\n *\n */\ndefine('taoQtiItem/portableElementRegistry/factory/factory',['lodash', 'core/promise', 'core/eventifier'], function (_, Promise, eventifier){\n 'use strict';\n\n var _requirejs = window.require;\n var _defaultLoadingOptions = {\n reload: false\n };\n\n var loadModuleConfig = function loadModuleConfig(manifest){\n return new Promise(function(resolve, reject){\n var requireConfigAliases = {};\n var baseUrl;\n var reqConfigs = [];\n var modules = {};\n\n if(!manifest || !manifest.runtime){\n return reject('invalid manifest');\n }\n\n baseUrl = manifest.baseUrl;\n\n if(_.isArray(manifest.runtime.config) && manifest.runtime.config.length){\n _.forEach(manifest.runtime.config, function(pciConfig){\n if(_.isString(pciConfig)){\n reqConfigs.push('json!' + baseUrl + '/' + pciConfig);\n }else{\n if(pciConfig.data){\n modules = _.defaults(modules, pciConfig.data.paths || {});\n }else if(pciConfig.file){\n reqConfigs.push('json!' + baseUrl + '/' + pciConfig.file);\n }\n }\n });\n }\n\n require(reqConfigs, function(){\n\n var runtimeModules = {};\n\n requireConfigAliases[manifest.typeIdentifier] = baseUrl;\n\n if(manifest.model === 'IMSPCI'){\n\n modules = _.reduce(arguments, function(acc, conf){\n return _.defaults(acc, conf.paths || {});\n }, modules);\n\n _.forEach(manifest.runtime.modules || {}, function(paths, id){\n if(paths && (_.isString(paths) || (_.isArray(paths) && paths.length))){\n runtimeModules[id] = paths;\n }\n });\n\n modules = _.merge(modules, runtimeModules);\n\n _.forEach(modules, function(paths, id){\n paths = _.isArray(paths) ? paths : [paths];\n requireConfigAliases[id] = _.map(paths, function(path){\n return baseUrl+'/'+path.replace(/\\.js$/, '');\n });\n });\n }\n\n resolve(requireConfigAliases);\n\n }, reject);\n\n\n });\n };\n\n /**\n * Evaluate if the given object is a proper portable element provider\n * @param {Object} provider\n * @returns {Boolean}\n */\n var isPortableElementProvider = function isPortableElementProvider(provider){\n return (provider && _.isFunction(provider.load));\n };\n\n return function portableElementRegistry(methods){\n\n var _loaded = false;\n var __providers = {};\n\n /**\n * The portable element registry instance\n * @typedef {portableElementRegistry}\n */\n return eventifier(_.defaults(methods || {}, {\n _registry : {},\n\n /**\n * Get a register portable element\n * @param {String} typeIdentifier\n * @param {String} version\n * @returns {Object}\n */\n get : function get(typeIdentifier, version){\n\n if(this._registry[typeIdentifier]){\n //check version\n if(version){\n return _.find(this._registry[typeIdentifier], {version : version});\n }else{\n //latest\n return _.last(this._registry[typeIdentifier]);\n }\n }\n },\n\n /**\n * Register a portable element provider\n * @param moduleName\n * @param {String|Object }provider - the portable provider object or module name\n * @returns {portableElementRegistry}\n */\n registerProvider : function registerProvider(moduleName, provider){\n __providers[moduleName] = isPortableElementProvider(provider) ? provider : null;\n _loaded = false;\n return this;\n },\n\n /**\n * Clear all previously registered providers\n * @returns {portableElementRegistry}\n */\n resetProviders : function resetProviders(){\n __providers = {};\n _loaded = false;\n return this;\n },\n\n /**\n * Load the providers\n * @param {Object} [options]\n * @param {Boolean} [options.reload] - force to reload the registered providers\n * @returns {Promise}\n */\n loadProviders : function loadProviders(options){\n var self = this;\n var loadPromise;\n\n if(_loaded && !options.reload){\n loadPromise = Promise.resolve([]);\n } else {\n loadPromise = new Promise(function(resolve, reject) {\n var providerLoadingStack = [];\n _.forIn(__providers, function(provider, id){\n if(provider === null){\n providerLoadingStack.push(id);\n }\n });\n _requirejs(providerLoadingStack, function(){\n _.forEach([].slice.call(arguments), function(provider){\n if(isPortableElementProvider(provider)){\n __providers[providerLoadingStack.shift()] = provider;\n }\n });\n resolve(__providers);\n _loaded = true;\n self.trigger('providersloaded', __providers);\n }, reject);\n });\n }\n\n return loadPromise;\n },\n\n /**\n * Get all versions of all portable elements registered\n * @returns {Object} - all portable elements and their versions\n */\n getAllVersions : function getAllVersions(){\n var all = {};\n _.forIn(this._registry, function (versions, id){\n all[id] = _.map(versions, 'version');\n });\n return all;\n },\n\n /**\n * Get the runtime for a given portable element\n * @param {String} typeIdentifier\n * @param {String} [version] - if the version is provided, the method will try to find that version\n * @returns {Object} the runtime model\n */\n getRuntime : function getRuntime(typeIdentifier, version){\n var portableElement = this.get(typeIdentifier, version);\n if(portableElement){\n return _.assign(portableElement.runtime, {\n id : portableElement.typeIdentifier,\n label : portableElement.label,\n baseUrl : portableElement.baseUrl,\n model : portableElement.model\n });\n }else{\n this.trigger('error', {\n message : 'no portable element runtime found',\n typeIdentifier : typeIdentifier,\n version : version\n });\n }\n },\n\n /**\n * Get the creator model for a given portable element\n * @param {String} typeIdentifier\n * @param {String} [version] - if the version is provided, the method will try to find that version\n * @returns {Object} the creator model\n */\n getCreator : function getCreator(typeIdentifier, version){\n var portableElement = this.get(typeIdentifier, version);\n if(portableElement && portableElement.creator){\n return _.assign(portableElement.creator, {\n id : portableElement.typeIdentifier,\n label : portableElement.label,\n baseUrl : portableElement.baseUrl,\n response : portableElement.response,\n model : portableElement.model,\n xmlns : portableElement.xmlns\n });\n }else{\n this.trigger('error', {\n message : 'no portable element runtime found',\n typeIdentifier : typeIdentifier,\n version : version\n });\n }\n },\n\n /**\n * Returned all enabled created from the registry\n * @returns {Object} the collection of creators\n */\n getLatestCreators : function getLatestCreators(){\n var all = {};\n _.forIn(this._registry, function (versions, id){\n var lastVersion = _.last(versions);\n\n //check if the portable element is creatable:\n if(lastVersion.creator && lastVersion.creator.hook && lastVersion.enabled){\n all[id] = lastVersion;\n }\n });\n return all;\n },\n\n /**\n * Get the baseUrl for a given portable element\n * @param {String} typeIdentifier\n * @param {String} [version] - if the version is provided, the method will try to find that version\n * @returns {String} the base url\n */\n getBaseUrl : function getBaseUrl(typeIdentifier, version){\n var runtime = this.get(typeIdentifier, version);\n if(runtime){\n return runtime.baseUrl;\n }\n return '';\n },\n\n /**\n * Load the runtimes from registered portable element provider(s)\n *\n * @param {Object} [options]\n * @param {Array} [options.include] - the exact list of portable element typeIdentifier that should be loaded\n * @param {Boolean} [options.reload] - tells if all interactions should be reloaded\n * @returns {Promise}\n */\n loadRuntimes : function loadRuntimes(options){\n var self = this;\n var loadPromise;\n\n options = _.defaults(options||{}, _defaultLoadingOptions);\n\n loadPromise = self.loadProviders(options).then(function(providers){\n\n var loadStack = [];\n\n _.forEach(providers, function (provider){\n if(provider){//check that the provider is loaded\n loadStack.push(provider.load());\n }\n });\n\n //performs the loadings in parallel\n return Promise.all(loadStack).then(function (results){//TODO could remove one level of promise\n\n var configLoadingStack = [];\n\n //update registry\n self._registry = _.reduce(results, function (acc, _pcis){\n return _.merge(acc, _pcis);\n }, self._registry || {});//incremental loading\n\n //pre-configuring the baseUrl of the portable element's source\n _.forIn(self._registry, function (versions, typeIdentifier){\n if(_.isArray(options.include) && _.indexOf(options.include, typeIdentifier) < 0){\n return true;\n }\n configLoadingStack.push(loadModuleConfig(self.get(typeIdentifier)));\n });\n\n return Promise.all(configLoadingStack).then(function(moduleConfigs){\n var requireConfigAliases = _.reduce(moduleConfigs, function(acc, paths){\n return _.merge(acc, paths);\n }, {});\n\n //save the required libs name => path to global require alias\n //TODO in future planned user story : change this to a local require context to solve conflicts in third party module naming\n _requirejs.config({paths : requireConfigAliases});\n });\n });\n\n });\n\n\n loadPromise\n .then(function() {\n self.trigger('runtimesloaded');\n })\n .catch(function(err) {\n self.trigger('error', err);\n });\n\n return loadPromise;\n },\n\n /**\n * Load the creators from registered portable element provider(s)\n *\n * @param {Object} [options]\n * @param {Array} [options.include] - the exact list of portable element typeIdentifier that should be loaded\n * @param {Boolean} [options.reload] - tells if all interactions should be reloaded\n * @returns {Promise}\n */\n loadCreators : function loadCreators(options){\n var loadPromise;\n var self = this;\n\n options = _.defaults(options||{}, _defaultLoadingOptions);\n\n loadPromise = self.loadRuntimes(options).then(function(){\n var requiredCreatorHooks = [];\n\n _.forIn(self._registry, function (versions, typeIdentifier){\n var portableElementModel = self.get(typeIdentifier);//currently use the latest version only\n if(portableElementModel.creator && portableElementModel.creator.hook){\n if(portableElementModel.enabled){\n if(_.isArray(options.include) && _.indexOf(options.include, typeIdentifier) < 0){\n return true;\n }\n }else{\n if(!_.isArray(options.include) || _.indexOf(options.include, typeIdentifier) < 0){\n return true;\n }\n }\n requiredCreatorHooks.push(portableElementModel.creator.hook.replace(/\\.js$/, ''));\n }\n });\n\n if(requiredCreatorHooks.length){\n return new Promise(function(resolve, reject){\n //@todo support caching?\n _requirejs(requiredCreatorHooks, function (){\n var creators = {};\n _.forEach(arguments, function (creatorHook){\n var id = creatorHook.getTypeIdentifier();\n var portableElementModel = self.get(id);\n var i = _.findIndex(self._registry[id], {version : portableElementModel.version});\n if(i < 0){\n self.trigger('error', 'no creator found for id/version ' + id + '/' + portableElementModel.version);\n }else{\n self._registry[id][i].creator.module = creatorHook;\n creators[id] = creatorHook;\n }\n });\n resolve(creators);\n }, reject);\n });\n }else{\n return Promise.resolve({});\n }\n\n });\n\n loadPromise\n .then(function(creators) {\n self.trigger('creatorsloaded', creators);\n return creators;\n })\n .catch(function(err) {\n self.trigger('error', err);\n });\n\n return loadPromise;\n },\n\n /**\n * enable a portable element\n * @param {String} typeIdentifier\n * @param {String} [version] - if the version is provided, the method will try to find that version\n * @returns {portableElementRegistry}\n */\n enable: function enable(typeIdentifier, version){\n var portableElement = this.get(typeIdentifier, version);\n if(portableElement){\n portableElement.enabled = true;\n }\n return this;\n },\n\n /**\n * disable a portable element\n * @param {String} typeIdentifier\n * @param {String} [version] - if the version is provided, the method will try to find that version\n * @returns {portableElementRegistry}\n */\n disable: function disable(typeIdentifier, version){\n var portableElement = this.get(typeIdentifier, version);\n if(portableElement){\n portableElement.enabled = false;\n }\n return this;\n },\n\n /**\n * check is a portable element is enabled\n * @param {String} typeIdentifier\n * @param {String} [version] - if the version is provided, the method will try to find that version\n * @returns {portableElementRegistry}\n */\n isEnabled: function isEnabled(typeIdentifier, version){\n var portableElement = this.get(typeIdentifier, version);\n return (portableElement && portableElement.enabled === true);\n }\n }));\n };\n});\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2015-2022 (original work) Open Assessment Technologies SA ;\n */\n/**\n * Utility to retrieve and manipualte QTI Elements\n */\ndefine('taoQtiItem/qtiCreator/helper/qtiElements',['jquery', 'lodash', 'i18n', 'services/features'], function ($, _, __, featuresService) {\n 'use strict';\n\n const QtiElements = {\n classes: {\n //abstract classes:\n itemBody: { parents: ['bodyElement'], contains: ['block'], abstract: true },\n atomicBlock: {\n parents: ['blockStatic', 'bodyElement', 'flowStatic'],\n contains: ['inline'],\n abstract: true\n },\n atomicInline: {\n parents: ['bodyElement', 'flowStatic', 'inlineStatic'],\n contains: ['inline'],\n abstract: true\n },\n simpleBlock: { parents: ['blockStatic', 'bodyElement', 'flowStatic'], contains: ['block'], abstract: true },\n simpleInline: {\n parents: ['bodyElement', 'flowStatic', 'inlineStatic'],\n contains: ['inline'],\n abstract: true\n },\n flowStatic: { parents: ['flow'], abstract: true },\n blockStatic: { parents: ['block'], abstract: true },\n inlineStatic: { parents: ['inline'], abstract: true },\n flow: { parents: ['objectFlow'], abstract: true },\n tableCell: { parents: ['bodyElement'], contains: ['flow'], abstract: true },\n //html-derived qti elements:\n caption: { parents: ['bodyElement'], contains: ['inline'], xhtml: true },\n col: { parents: ['bodyElement'], xhtml: true },\n colgroup: { parents: ['bodyElement'], contains: ['col'], xhtml: true },\n div: { parents: ['blockStatic', 'bodyElement', 'flowStatic'], contains: ['flow'], xhtml: true },\n dl: { parents: ['blockStatic', 'bodyElement', 'flowStatic'], contains: ['dlElement'], xhtml: true },\n dt: { parents: ['dlElement'], contains: ['inline'], xhtml: true },\n dd: { parents: ['dlElement'], contains: ['flow'], xhtml: true },\n hr: { parents: ['blockStatic', 'bodyElement', 'flowStatic'], xhtml: true },\n math: { parents: ['blockStatic', 'flowStatic', 'inlineStatic'], xhtml: true },\n li: { parents: ['bodyElement'], contains: ['flow'], xhtml: true },\n ol: { parents: ['blockStatic', 'bodyElement', 'flowStatic'], contains: ['li'], xhtml: true },\n ul: { parents: ['blockStatic', 'bodyElement', 'flowStatic'], contains: ['li'], xhtml: true },\n object: { parents: ['bodyElement', 'flowStatic', 'inlineStatic'], contains: ['objectFlow'], xhtml: true },\n param: { parents: ['objectFlow'], xhtml: true },\n table: {\n parents: ['blockStatic', 'bodyElement', 'flowStatic'],\n contains: ['caption', 'col', 'colgroup', 'thead', 'tfoot', 'tbody'],\n xhtml: true\n },\n tbody: { parents: ['bodyElement'], contains: ['tr'], xhtml: true },\n tfoot: { parents: ['bodyElement'], contains: ['tr'], xhtml: true },\n thead: { parents: ['bodyElement'], contains: ['tr'], xhtml: true },\n td: { parents: ['tableCell'], xhtml: true },\n th: { parents: ['tableCell'], xhtml: true },\n tr: { parents: ['bodyElement'], contains: ['tableCell'], xhtml: true },\n a: { parents: ['simpleInline'], xhtml: true },\n abbr: { parents: ['simpleInline'], xhtml: true },\n acronym: { parents: ['simpleInline'], xhtml: true },\n b: { parents: ['simpleInline'], xhtml: true },\n big: { parents: ['simpleInline'], xhtml: true },\n cite: { parents: ['simpleInline'], xhtml: true },\n code: { parents: ['simpleInline'], xhtml: true },\n dfn: { parents: ['simpleInline'], xhtml: true },\n em: { parents: ['simpleInline'], xhtml: true },\n i: { parents: ['simpleInline'], xhtml: true },\n kbd: { parents: ['simpleInline'], xhtml: true },\n q: { parents: ['simpleInline'], xhtml: true },\n samp: { parents: ['simpleInline'], xhtml: true },\n small: { parents: ['simpleInline'], xhtml: true },\n span: { parents: ['simpleInline'], xhtml: true },\n strong: { parents: ['simpleInline'], xhtml: true },\n sub: { parents: ['simpleInline'], xhtml: true },\n sup: { parents: ['simpleInline'], xhtml: true },\n tt: { parents: ['simpleInline'], xhtml: true },\n var: { parents: ['simpleInline'], xhtml: true },\n blockquote: { parents: ['simpleBlock'], xhtml: true },\n address: { parents: ['atomicBlock'], xhtml: true },\n h1: { parents: ['atomicBlock'], xhtml: true },\n h2: { parents: ['atomicBlock'], xhtml: true },\n h3: { parents: ['atomicBlock'], xhtml: true },\n h4: { parents: ['atomicBlock'], xhtml: true },\n h5: { parents: ['atomicBlock'], xhtml: true },\n h6: { parents: ['atomicBlock'], xhtml: true },\n p: { parents: ['atomicBlock'], xhtml: true },\n pre: { parents: ['atomicBlock'], xhtml: true },\n img: { parents: ['atomicInline'], xhtml: true, attributes: ['src', 'alt', 'longdesc', 'height', 'width'] },\n br: { parents: ['atomicInline'], xhtml: true },\n //qti elements:\n infoControl: { parents: ['blockStatic', 'bodyElement', 'flowStatic'], qti: true },\n textRun: { parents: ['inlineStatic', 'flowstatic'], qti: true },\n feedbackInline: { parents: ['simpleInline', 'feedbackElement'], qti: true },\n feedbackBlock: { parents: ['simpleBlock'], qti: true },\n rubricBlock: { parents: ['simpleBlock'], qti: true }, //strange qti 2.1 exception, marked as simpleBlock instead of\n blockInteraction: { parents: ['block', 'flow', 'interaction'], qti: true },\n inlineInteraction: { parents: ['inline', 'flow', 'interaction'], qti: true },\n gap: { parents: ['inlineStatic'], qti: true },\n hottext: { parents: ['flowstatic', 'inlineStatic'], contains: ['inlineStatic'], qti: true },\n printedVariable: { parents: ['bodyElement', 'flowStatic', 'inlineStatic', 'textOrVariable'], qti: true },\n prompt: { parents: ['bodyElement'], contains: ['inlineStatic'], qti: true },\n templateElement: { parents: ['bodyElement'], qti: true },\n templateBlock: {\n parents: ['blockStatic', 'flowStatic', 'templateElement'],\n contains: ['blockStatic'],\n qti: true\n },\n templateInline: {\n parents: ['inlineStatic', 'flowStatic', 'templateElement'],\n contains: ['inlineStatic'],\n qti: true\n },\n choiceInteraction: { parents: ['blockInteraction'], qti: true },\n associateInteraction: { parents: ['blockInteraction'], qti: true },\n orderInteraction: { parents: ['blockInteraction'], qti: true },\n matchInteraction: { parents: ['blockInteraction'], qti: true },\n hottextInteraction: { parents: ['blockInteraction'], qti: true },\n gapMatchInteraction: { parents: ['blockInteraction'], qti: true },\n mediaInteraction: { parents: ['blockInteraction'], qti: true },\n sliderInteraction: { parents: ['blockInteraction'], qti: true },\n uploadInteraction: { parents: ['blockInteraction'], qti: true },\n drawingInteraction: { parents: ['blockInteraction'], qti: true },\n graphicInteraction: { parents: ['blockInteraction'], qti: true },\n hotspotInteraction: { parents: ['graphicInteraction'], qti: true },\n graphicAssociateInteraction: { parents: ['graphicInteraction'], qti: true },\n graphicOrderInteraction: { parents: ['graphicInteraction'], qti: true },\n graphicGapMatchInteraction: { parents: ['graphicInteraction'], qti: true },\n selectPointInteraction: { parents: ['graphicInteraction'], qti: true },\n textEntryInteraction: { parents: ['stringInteraction', 'inlineInteraction'], qti: true },\n extendedTextInteraction: { parents: ['stringInteraction', 'blockInteraction'], qti: true },\n inlineChoiceInteraction: { parents: ['inlineInteraction'], qti: true },\n endAttemptInteraction: { parents: ['inlineInteraction'], qti: true },\n customInteraction: { parents: ['block', 'flow', 'interaction'], qti: true },\n _container: { parents: ['block'], qti: true } //a pseudo class introduced in TAO\n },\n\n cache: { containable: {}, children: {}, parents: {} },\n\n getAllowedContainersElements(qtiClass, $container) {\n const classes = QtiElements.getAllowedContainers(qtiClass);\n let jqSelector = '';\n for (let i in classes) {\n if (!classes[i].qti) {\n //html element:\n jqSelector += `${classes[i]}, `;\n }\n }\n\n if (jqSelector) {\n jqSelector = jqSelector.substring(0, jqSelector.length - 2);\n }\n\n return $(jqSelector, $container ? $container : $(document)).filter(':not([data-qti-type])');\n },\n\n getAllowedContainers(qtiClass) {\n let ret;\n if (QtiElements.cache.containable[qtiClass]) {\n ret = QtiElements.cache.containable[qtiClass];\n } else {\n ret = [];\n const parents = QtiElements.getParentClasses(qtiClass, true);\n for (let aClass in QtiElements.classes) {\n const model = QtiElements.classes[aClass];\n if (model.contains) {\n const intersect = _.intersection(model.contains, parents);\n if (intersect.length) {\n if (!model.abstract) {\n ret.push(aClass);\n }\n ret = _.union(ret, QtiElements.getChildClasses(aClass, true));\n }\n }\n }\n QtiElements.cache.containable[qtiClass] = ret;\n }\n\n return ret;\n },\n\n getAllowedContents(qtiClass, recursive, checked) {\n let ret = [];\n checked = checked || {};\n\n const model = QtiElements.classes[qtiClass];\n if (model && model.contains) {\n for (let i in model.contains) {\n const contain = model.contains[i];\n if (!checked[contain]) {\n checked[contain] = true;\n\n //qtiClass can contain everything defined as its contents\n ret.push(contain);\n\n //qtiClass can also contain subclass of its contents\n const children = QtiElements.getChildClasses(contain, true);\n for (let j in children) {\n const child = children[j];\n if (!checked[child]) {\n checked[child] = true;\n\n ret.push(child);\n\n //adding children allowed contents depends on the option \"recursive\"\n if (recursive) {\n ret = _.union(ret, QtiElements.getAllowedContents(child, true, checked));\n }\n }\n }\n\n //adding allowed contents of qtiClass' allowed contents depends on the option \"recursive\"\n if (recursive) {\n ret = _.union(ret, QtiElements.getAllowedContents(contain, true, checked));\n }\n }\n }\n }\n\n //qtiClass can contain all allowed contents of its parents:\n const parents = QtiElements.getParentClasses(qtiClass, true);\n for (let i in parents) {\n ret = _.union(ret, QtiElements.getAllowedContents(parents[i], recursive, checked));\n }\n\n return _.uniq(ret);\n },\n\n isAllowedClass(qtiContainerClass, qtiContentClass) {\n const allowedClasses = QtiElements.getAllowedContents(qtiContainerClass);\n return _.indexOf(allowedClasses, qtiContentClass) >= 0;\n },\n\n getParentClasses(qtiClass, recursive) {\n let ret;\n if (recursive && QtiElements.cache.parents[qtiClass]) {\n ret = QtiElements.cache.parents[qtiClass];\n } else {\n ret = [];\n if (QtiElements.classes[qtiClass]) {\n ret = QtiElements.classes[qtiClass].parents;\n if (recursive) {\n for (let i in ret) {\n ret = _.union(ret, QtiElements.getParentClasses(ret[i], recursive));\n }\n ret = _.uniq(ret);\n }\n }\n QtiElements.cache.parents[qtiClass] = ret;\n }\n\n return ret;\n },\n\n getChildClasses(qtiClass, recursive, type) {\n let ret;\n const cacheType = type ? type : 'all';\n if (recursive && QtiElements.cache.children[qtiClass] && QtiElements.cache.children[qtiClass][cacheType]) {\n ret = QtiElements.cache.children[qtiClass][cacheType];\n } else {\n ret = [];\n for (let aClass in QtiElements.classes) {\n const model = QtiElements.classes[aClass];\n if (_.indexOf(model.parents, qtiClass) >= 0) {\n if (type) {\n if (model[type]) {\n ret.push(aClass);\n }\n } else {\n ret.push(aClass);\n }\n if (recursive) {\n ret = _.union(ret, QtiElements.getChildClasses(aClass, recursive, type));\n }\n }\n }\n if (!QtiElements.cache.children[qtiClass]) {\n QtiElements.cache.children[qtiClass] = {};\n }\n QtiElements.cache.children[qtiClass][cacheType] = ret;\n }\n\n return ret;\n },\n\n isBlock(qtiClass) {\n return QtiElements.is(qtiClass, 'block');\n },\n\n isInline(qtiClass) {\n return QtiElements.is(qtiClass, 'inline');\n },\n\n is(qtiClass, topClass) {\n if (qtiClass === topClass) {\n return true;\n } else {\n const parents = QtiElements.getParentClasses(qtiClass, true);\n return _.indexOf(parents, topClass) >= 0;\n }\n },\n\n /**\n * Check wether an element is visible, using the feature viibility service\n * @param {string} qtiClass - see the list of available classes\n * @returns {boolean} true by default and false only if the element is explicitely registered as hidden\n */\n isVisible(qtiClass) {\n if (this.is(qtiClass, 'customInteraction')) {\n return featuresService.isVisible(`taoQtiItem/creator/customInteraction/${qtiClass.replace(/Interaction$/, '').replace(/^customInteraction\\./, '')}`);\n }\n if (this.is(qtiClass, 'interaction')) {\n return featuresService.isVisible(`taoQtiItem/creator/interaction/${qtiClass.replace(/Interaction$/, '')}`);\n }\n return true;\n },\n\n /**\n * Get the list of available elements for the authoring side\n * The list of those element is statically defined, but we filter out elements that should be visible\n * @returns {Object} the available elements\n */\n getAvailableAuthoringElements() {\n const tagTitles = {\n commonInteractions: __('Common Interactions'),\n inlineInteractions: __('Inline Interactions'),\n graphicInteractions: __('Graphic Interactions')\n };\n\n const authoringElements = {\n choiceInteraction: {\n label: __('Choice Interaction'),\n description: __(\n 'Select a single (radio buttons) or multiple (check boxes) responses among a set of choices.'\n ),\n icon: 'icon-choice',\n short: __('Choice'),\n qtiClass: 'choiceInteraction',\n tags: [tagTitles.commonInteractions, 'mcq'],\n group: 'common-interactions'\n },\n orderInteraction: {\n label: __('Order Interaction'),\n icon: 'icon-order',\n description: __('Arrange a list of choices in the correct order.'),\n short: __('Order'),\n qtiClass: 'orderInteraction',\n tags: [tagTitles.commonInteractions, 'ordering'],\n group: 'common-interactions'\n },\n associateInteraction: {\n label: __('Associate Interaction'),\n icon: 'icon-associate',\n description: __('Create pair(s) from a series of choices.'),\n short: __('Associate'),\n qtiClass: 'associateInteraction',\n tags: [tagTitles.commonInteractions, 'association'],\n group: 'common-interactions'\n },\n matchInteraction: {\n label: __('Match Interaction'),\n icon: 'icon-match',\n description: __(\n 'Create association(s) between two sets of choices displayed in a table (row and column).'\n ),\n short: __('Match'),\n qtiClass: 'matchInteraction',\n tags: [tagTitles.commonInteractions, 'association'],\n group: 'common-interactions'\n },\n hottextInteraction: {\n label: __('Hottext Interaction'),\n icon: 'icon-hottext',\n description: __('Select one or more text parts (hottext) within a text.'),\n short: __('Hottext'),\n qtiClass: 'hottextInteraction',\n tags: [tagTitles.commonInteractions, 'text'],\n group: 'common-interactions'\n },\n gapMatchInteraction: {\n label: __('Gap Match Interaction'),\n icon: 'icon-gap-match',\n description: __(' Fill in the gaps in a text from a set of choices.'),\n short: __('Gap Match'),\n qtiClass: 'gapMatchInteraction',\n tags: [tagTitles.commonInteractions, 'text', 'association'],\n group: 'common-interactions'\n },\n sliderInteraction: {\n label: __('Slider Interaction'),\n icon: 'icon-slider',\n description: __('Select a value within a numerical range.'),\n short: __('Slider'),\n qtiClass: 'sliderInteraction',\n tags: [tagTitles.commonInteractions, 'special'],\n group: 'common-interactions'\n },\n extendedTextInteraction: {\n label: __('Extended Text Interaction'),\n icon: 'icon-extended-text',\n description: __(\n 'Collect open-ended information in one or more text area(s) (strings or numeric values).'\n ),\n short: __('Extended Text'),\n qtiClass: 'extendedTextInteraction',\n tags: [tagTitles.commonInteractions, 'text'],\n group: 'common-interactions'\n },\n uploadInteraction: {\n label: __('File Upload Interaction'),\n icon: 'icon-upload',\n description: __('Upload a file (e.g. document, picture...) as a response.'),\n short: __('File Upload'),\n qtiClass: 'uploadInteraction',\n tags: [tagTitles.commonInteractions, 'special'],\n group: 'common-interactions'\n },\n mediaInteraction: {\n label: __('Media Interaction'),\n icon: 'icon-media',\n description: __(\n 'Control the playing parameters (auto-start, loop) of a video or audio file and report the number of time it has been played.'\n ),\n short: __('Media'),\n qtiClass: 'mediaInteraction',\n tags: [tagTitles.commonInteractions, 'media'],\n group: 'common-interactions'\n },\n _container: {\n label: __('Text Block'),\n icon: 'icon-font',\n description: __(\n 'Block contains the content (stimulus) of the item such as text or image. It is also required for Inline Interactions.'\n ),\n short: __('Block'),\n qtiClass: '_container',\n tags: [tagTitles.inlineInteractions, 'text'],\n group: 'inline-interactions'\n },\n inlineChoiceInteraction: {\n label: __('Inline Choice Interaction'),\n icon: 'icon-inline-choice',\n description: __('Select a choice from a drop-down list.'),\n short: __('Inline Choice'),\n qtiClass: 'inlineChoiceInteraction',\n tags: [tagTitles.inlineInteractions, 'inline-interactions', 'mcq'],\n group: 'inline-interactions'\n },\n textEntryInteraction: {\n label: __('Text Entry Interaction'),\n icon: 'icon-text-entry',\n description: __(\n 'Collect open-ended information in a short text input (strings or numeric values).'\n ),\n short: __('Text Entry'),\n qtiClass: 'textEntryInteraction',\n tags: [tagTitles.inlineInteractions, 'inline-interactions', 'text'],\n group: 'inline-interactions'\n },\n endAttemptInteraction: {\n label: __('End Attempt Interaction'),\n icon: 'icon-end-attempt',\n description: __('Trigger the end of the item attempt.'),\n short: __('End Attempt'),\n qtiClass: 'endAttemptInteraction',\n tags: [tagTitles.inlineInteractions, 'inline-interactions', 'button', 'submit'],\n group: 'inline-interactions'\n },\n hotspotInteraction: {\n label: __('Hotspot Interaction'),\n icon: 'icon-hotspot',\n description: __('Select one or more areas (hotspots) displayed on an picture.'),\n short: __('Hotspot'),\n qtiClass: 'hotspotInteraction',\n tags: [tagTitles.graphicInteractions, 'mcq'],\n group: 'graphic-interactions'\n },\n graphicOrderInteraction: {\n label: __('Graphic Order Interaction'),\n icon: 'icon-graphic-order',\n description: __('Order the areas (hotspots) displayed on a picture.'),\n short: __('Order'),\n qtiClass: 'graphicOrderInteraction',\n tags: [tagTitles.graphicInteractions, 'ordering'],\n group: 'graphic-interactions'\n },\n graphicAssociateInteraction: {\n label: __('Graphic Associate Interaction'),\n icon: 'icon-graphic-associate',\n description: __('Create association(s) between areas (hotspots) displayed on a picture.'),\n short: __('Associate'),\n qtiClass: 'graphicAssociateInteraction',\n tags: [tagTitles.graphicInteractions, 'association'],\n group: 'graphic-interactions'\n },\n graphicGapMatchInteraction: {\n label: __('Graphic Gap Match Interaction'),\n icon: 'icon-graphic-gap',\n description: __('Fill in the gaps on a picture with a set of image choices.'),\n short: __('Gap Match'),\n qtiClass: 'graphicGapMatchInteraction',\n tags: [tagTitles.graphicInteractions, 'association'],\n group: 'graphic-interactions'\n },\n selectPointInteraction: {\n label: __('Select Point Interaction'),\n icon: 'icon-select-point',\n description: __('Position one or more points on a picture (response areas are not displayed).'),\n short: __('Select Point'),\n qtiClass: 'selectPointInteraction',\n tags: [tagTitles.graphicInteractions],\n group: 'graphic-interactions'\n }\n };\n\n //filter out hidden elements\n const availableElements = {};\n for (const [elementId, element] of Object.entries(authoringElements)) {\n if (this.isVisible(elementId)) {\n availableElements[elementId] = element;\n }\n }\n return availableElements;\n }\n };\n\n return QtiElements;\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016-2022 (original work) Open Assessment Technologies SA;\n *\n */\ndefine('taoQtiItem/portableElementRegistry/factory/ciRegistry',[\n 'lodash',\n 'i18n',\n 'taoQtiItem/portableElementRegistry/factory/factory',\n 'taoQtiItem/qtiCreator/helper/qtiElements'\n], function (_, __, portableElementRegistry, qtiElements) {\n 'use strict';\n\n /**\n * Create a new interaction registry instance\n * interaction registry need to register newly loaded creator hooks in the list of available qti authoring elements\n *\n * @returns {Object} registry instance\n */\n return function customInteractionRegistry() {\n return portableElementRegistry({\n /**\n * Get the authoring information for a given custom interaction\n * @param {string} typeIdentifier - the interaction type identifier\n * @param {Object} [options]\n * @param {string|number} [options.version] - the interaction version\n * @param {boolean} [options.enabledOnly] - to only get interaction enabled && visible\n * @returns {Object} the authoring info\n */\n getAuthoringData(typeIdentifier, options = {}) {\n options = _.defaults(options || {}, { version: 0, enabledOnly: false });\n const pciModel = this.get(typeIdentifier, options.version);\n const qtiClass = `customInteraction.${pciModel.typeIdentifier}`;\n if (\n pciModel &&\n pciModel.creator &&\n pciModel.creator.hook &&\n pciModel.creator.icon &&\n ((pciModel.enabled && qtiElements.isVisible(qtiClass)) || !options.enabledOnly)\n ) {\n return {\n label: pciModel.label, //currently no translation available\n icon: pciModel.creator.icon.replace(new RegExp(`^${typeIdentifier}/`), pciModel.baseUrl),\n short: pciModel.short,\n description: pciModel.description,\n qtiClass, //custom interaction is block type\n tags: _.union([__('Custom Interactions')], pciModel.tags),\n group: 'custom-interactions'\n };\n }\n }\n }).on('creatorsloaded', function () {\n const creators = this.getLatestCreators();\n _.forEach(creators, function (creator, typeIdentifier) {\n qtiElements.classes[`customInteraction.${typeIdentifier}`] = {\n parents: ['customInteraction'],\n qti: true\n };\n });\n });\n };\n});\n\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA;\n *\n */\ndefine('taoQtiItem/portableElementRegistry/ciRegistry',['lodash', 'taoQtiItem/portableElementRegistry/factory/ciRegistry', 'module'], function (_, ciRegistry, module){\n 'use strict';\n\n //create a preregistered singleton of ciRegistry\n var registry = ciRegistry();\n var providers = [];\n var config = module.config();\n\n if(config && config.providers){\n providers = config.providers;\n }\n\n _.forEach(providers, function(provider){\n if(provider.name && provider.module){\n registry.registerProvider(provider.module);\n }\n });\n\n return registry;\n});\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA;\n *\n */\ndefine('taoQtiItem/portableElementRegistry/factory/icRegistry',[\n 'lodash',\n 'taoQtiItem/portableElementRegistry/factory/factory'\n], function (_, portableElementRegistry){\n 'use strict';\n\n /**\n * Info control registry has currently no additonal fonctionalities than the basic portable element registry\n *\n * @returns {Object} registry instance\n */\n return function infoControlRegistry(){\n return portableElementRegistry();\n }\n\n});\n","/*\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA;\n *\n */\ndefine('taoQtiItem/portableElementRegistry/icRegistry',['lodash', 'taoQtiItem/portableElementRegistry/factory/icRegistry', 'module'], function (_, icRegistry, module){\n 'use strict';\n\n //create a preregistered singleton of icRegistry\n var registry = icRegistry();\n var providers = [];\n var config = module.config();\n\n if(config && config.providers){\n providers = config.providers;\n }\n\n _.forEach(providers, function(provider){\n if(provider.name && provider.module){\n registry.registerProvider(provider.module);\n }\n });\n\n return registry;\n});\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA;\n */\n\ndefine('taoQtiItem/portableElementRegistry/assetManager/portableAssetStrategy',[\n 'taoQtiItem/portableElementRegistry/ciRegistry',\n 'taoQtiItem/portableElementRegistry/icRegistry'\n], function (ciRegistry, icRegistry) {\n 'use strict';\n\n function getBaseUrlByIdentifier(typeIdentifier) {\n if (ciRegistry.get(typeIdentifier)) {\n return ciRegistry.getBaseUrl(typeIdentifier);\n }\n if (icRegistry.get(typeIdentifier)) {\n return icRegistry.getBaseUrl(typeIdentifier);\n }\n return typeIdentifier;\n }\n\n //strategy to resolve portable info control and portable interactions paths.\n //It should never be reached in the stack the usual way and should be called only using resolveBy.\n return {\n name: 'portableElementLocation',\n handle: function handlePortableElementLocation(url) {\n\n if (url.file === url.path) {\n return getBaseUrlByIdentifier(url.file);\n } else if (url.source === url.relative) {\n return url.relative.replace(/^(\\.\\/)?([a-z_0-9]+)\\/(.*)/i, function (fullmatch, $1, typeIdentifier, relPath) {\n var runtimeLocation = getBaseUrlByIdentifier(typeIdentifier);\n if (runtimeLocation) {\n return runtimeLocation + '/' + relPath;\n }\n return fullmatch;\n });\n }\n }\n };\n});\n","define('taoQtiItem/qtiCommonRenderer/renderers/config',['context', 'ui/themes', 'taoItems/assets/manager', 'taoItems/assets/strategies', 'module', 'taoQtiItem/portableElementRegistry/assetManager/portableAssetStrategy'], function (context, themes, assetManagerFactory, assetStrategies, module, portableAssetStrategy) { 'use strict';\n\n context = context && Object.prototype.hasOwnProperty.call(context, 'default') ? context['default'] : context;\n themes = themes && Object.prototype.hasOwnProperty.call(themes, 'default') ? themes['default'] : themes;\n assetManagerFactory = assetManagerFactory && Object.prototype.hasOwnProperty.call(assetManagerFactory, 'default') ? assetManagerFactory['default'] : assetManagerFactory;\n assetStrategies = assetStrategies && Object.prototype.hasOwnProperty.call(assetStrategies, 'default') ? assetStrategies['default'] : assetStrategies;\n module = module && Object.prototype.hasOwnProperty.call(module, 'default') ? module['default'] : module;\n portableAssetStrategy = portableAssetStrategy && Object.prototype.hasOwnProperty.call(portableAssetStrategy, 'default') ? portableAssetStrategy['default'] : portableAssetStrategy;\n\n /**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technologies SA;\n */\n\n var itemThemes = themes.get('items');\n var moduleConfig = module.config();\n\n //Create asset manager stack\n var assetManager = assetManagerFactory(\n [\n {\n name: 'theme',\n handle: function handleTheme(url) {\n if (\n itemThemes &&\n url.path &&\n (url.path === itemThemes.base ||\n (itemThemes.available && itemThemes.available.map(val => val.path).includes(url.path)))\n ) {\n return context.root_url + url.toString();\n }\n }\n },\n assetStrategies.taomedia,\n assetStrategies.external,\n assetStrategies.base64,\n assetStrategies.itemCssNoCache,\n assetStrategies.baseUrl,\n portableAssetStrategy\n ],\n { baseUrl: '' }\n ); //baseUrl is not predefined in the config, but should be set upon renderer instantiating\n\n //renderers locations\n var locations = {\n assessmentItem: 'taoQtiItem/qtiCommonRenderer/renderers/Item',\n _container: 'taoQtiItem/qtiCommonRenderer/renderers/Container',\n _simpleFeedbackRule: false,\n _tooltip: 'taoQtiItem/qtiCommonRenderer/renderers/Tooltip',\n stylesheet: 'taoQtiItem/qtiCommonRenderer/renderers/Stylesheet',\n outcomeDeclaration: false,\n responseDeclaration: false,\n responseProcessing: false,\n figure: 'taoQtiItem/qtiCommonRenderer/renderers/Figure',\n img: 'taoQtiItem/qtiCommonRenderer/renderers/Img',\n figcaption: 'taoQtiItem/qtiCommonRenderer/renderers/Figcaption',\n math: 'taoQtiItem/qtiCommonRenderer/renderers/Math',\n object: 'taoQtiItem/qtiCommonRenderer/renderers/Object',\n table: 'taoQtiItem/qtiCommonRenderer/renderers/Table',\n printedVariable: 'taoQtiItem/qtiCommonRenderer/renderers/PrintedVariable',\n rubricBlock: 'taoQtiItem/qtiCommonRenderer/renderers/RubricBlock',\n modalFeedback: 'taoQtiItem/qtiCommonRenderer/renderers/ModalFeedback',\n prompt: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/Prompt',\n choiceInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/ChoiceInteraction',\n extendedTextInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/ExtendedTextInteraction',\n orderInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/OrderInteraction',\n associateInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/AssociateInteraction',\n matchInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/MatchInteraction',\n textEntryInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/TextEntryInteraction',\n sliderInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/SliderInteraction',\n inlineChoiceInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/InlineChoiceInteraction',\n 'simpleChoice.choiceInteraction': 'taoQtiItem/qtiCommonRenderer/renderers/choices/SimpleChoice.ChoiceInteraction',\n 'simpleChoice.orderInteraction': 'taoQtiItem/qtiCommonRenderer/renderers/choices/SimpleChoice.OrderInteraction',\n hottext: 'taoQtiItem/qtiCommonRenderer/renderers/choices/Hottext',\n gap: 'taoQtiItem/qtiCommonRenderer/renderers/choices/Gap',\n gapText: 'taoQtiItem/qtiCommonRenderer/renderers/choices/GapText',\n 'simpleAssociableChoice.matchInteraction':\n 'taoQtiItem/qtiCommonRenderer/renderers/choices/SimpleAssociableChoice.MatchInteraction',\n 'simpleAssociableChoice.associateInteraction':\n 'taoQtiItem/qtiCommonRenderer/renderers/choices/SimpleAssociableChoice.AssociateInteraction',\n inlineChoice: 'taoQtiItem/qtiCommonRenderer/renderers/choices/InlineChoice',\n hottextInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/HottextInteraction',\n hotspotInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/HotspotInteraction',\n hotspotChoice: false,\n gapMatchInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/GapMatchInteraction',\n selectPointInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/SelectPointInteraction',\n graphicOrderInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/GraphicOrderInteraction',\n mediaInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/MediaInteraction',\n uploadInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/UploadInteraction',\n graphicGapMatchInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/GraphicGapMatchInteraction',\n gapImg: 'taoQtiItem/qtiCommonRenderer/renderers/choices/GapImg',\n graphicAssociateInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/GraphicAssociateInteraction',\n associableHotspot: false,\n customInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/PortableCustomInteraction',\n infoControl: 'taoQtiItem/qtiCommonRenderer/renderers/PortableInfoControl',\n include: 'taoQtiItem/qtiCommonRenderer/renderers/Include',\n endAttemptInteraction: 'taoQtiItem/qtiCommonRenderer/renderers/interactions/EndAttemptInteraction'\n };\n\n var config = {\n name: 'commonRenderer',\n locations: locations,\n options: {\n assetManager: assetManager,\n themes: itemThemes,\n enableDragAndDrop: {\n associate: !!moduleConfig.associateDragAndDrop,\n gapMatch: !!moduleConfig.gapMatchDragAndDrop,\n graphicGapMatch: !!moduleConfig.graphicGapMatchDragAndDrop,\n order: !!moduleConfig.orderDragAndDrop\n },\n messages: moduleConfig.messages\n }\n };\n\n return config;\n\n});\n\n","define('taoQtiItem/qtiCommonRenderer/renderers/Renderer',['taoQtiItem/qtiRunner/core/Renderer', 'taoQtiItem/qtiCommonRenderer/renderers/config'], function (Renderer$1, config) { 'use strict';\n\n\tRenderer$1 = Renderer$1 && Object.prototype.hasOwnProperty.call(Renderer$1, 'default') ? Renderer$1['default'] : Renderer$1;\n\tconfig = config && Object.prototype.hasOwnProperty.call(config, 'default') ? config['default'] : config;\n\n\t/**\n\t * This program is free software; you can redistribute it and/or\n\t * modify it under the terms of the GNU General Public License\n\t * as published by the Free Software Foundation; under version 2\n\t * of the License (non-upgradable).\n\t *\n\t * This program is distributed in the hope that it will be useful,\n\t * but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t * GNU General Public License for more details.\n\t *\n\t * You should have received a copy of the GNU General Public License\n\t * along with this program; if not, write to the Free Software\n\t * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n\t *\n\t * Copyright (c) 2014 (original work) Open Assessment Technologies SA;\n\t */\n\n\tvar Renderer = Renderer$1.build(config.locations, config.name, config.options);\n\n\treturn Renderer;\n\n});\n\n","define('taoQtiItem/runner/provider/manager/userModules',['lodash', 'module'], function (_, module) { 'use strict';\n\n _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;\n module = module && Object.prototype.hasOwnProperty.call(module, 'default') ? module['default'] : module;\n\n /**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;\n */\n\n var userModules = {\n /**\n * Load user modules defined in the module config\n * @param {Array} [userModules] - manually specify user modules to load instead of getting them from the module config\n * @returns {Promise}\n */\n load: function load(userModules) {\n var config = module.config();\n\n if (!userModules || !_.isArray(userModules)) {\n if (config && config.userModules && _.isArray(config.userModules)) {\n userModules = config.userModules;\n } else {\n userModules = [];\n }\n }\n if(!userModules.length){\n return Promise.resolve();\n }\n return new Promise(function(resolve, reject) {\n window.require(userModules, function() {\n _.forEach(arguments, function(dependency) {\n if (dependency && _.isFunction(dependency.exec)) {\n dependency.exec();\n }\n });\n resolve();\n }, function(err) {\n reject(err.message);\n });\n });\n }\n };\n\n return userModules;\n\n});\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);\n */\ndefine('taoQtiItem/runtime/qtiBootstrap',[\n 'jquery',\n 'lodash',\n 'module',\n 'taoQtiItem/qtiRunner/core/QtiRunner',\n 'taoQtiItem/qtiCommonRenderer/renderers/Renderer',\n 'iframeNotifier',\n 'core/history',\n 'taoQtiItem/runner/provider/manager/userModules'\n], function($, _, module, QtiRunner, Renderer, iframeNotifier, history, userModules){\n 'use strict';\n\n //fix backspace going back into the history\n history.fixBrokenBrowsers();\n\n /**\n * The bootstrap is used to set up a QTI item at runtime. It connects to the itemApi.\n *\n * @author Bertrand Chevrier \n * @exports taoQtiItem/runtime/qtiBootstrap\n *\n * @param {Object} runnerContext - the item context\n */\n return function bootstrap (runnerContext){\n\n //reconnect to global itemApi function\n window.onItemApiReady = function onItemApiReady(itemApi) {\n var qtiRunner = new QtiRunner();\n var coreItemData = runnerContext.itemData;\n var variableElementsData = _.merge(runnerContext.variableElements, itemApi.params.contentVariables || {});\n\n var renderer = new Renderer();\n\n // Makes the runner interface available from outside the frame\n // for preview.\n window.qtiRunner = qtiRunner;\n\n qtiRunner.setItemApi(itemApi);\n qtiRunner.setRenderer(renderer);\n\n qtiRunner.loadItemData(coreItemData, function() {\n\n qtiRunner.loadElements(variableElementsData, function() {\n\n qtiRunner.renderItem(undefined, function() {\n\n //userModules loading\n //we use any user modules bound to this module configuration instead of the ones bound to the new test runner\n var userModulesOverride;\n var config = module.config();\n if (config && config.userModules && _.isArray(config.userModules) && config.userModules.length > 0) {\n userModulesOverride = config.userModules;\n }\n userModules.load(userModulesOverride)\n .then(function() {\n\n //exec user scripts\n if (_.isArray(runnerContext.userScripts)) {\n require(runnerContext.userScripts, function() {\n _.forEach(arguments, function(dependency) {\n if (_.isFunction(dependency.exec)) {\n dependency.exec.call(null, runnerContext.userVars);\n }\n });\n });\n }\n\n iframeNotifier.parent('itemloaded');\n\n //IE9/10 loose the iframe focus, so we force getting it back.\n _.defer(function(){\n window.focus();\n });\n })\n .catch(function(err) {\n throw new Error('Error in user modules : ' + err.message);\n });\n\n });\n });\n });\n };\n\n //if the item is longer to load,\n _.defer(function(){\n //tell the parent to connect the item api\n iframeNotifier.parent('itemready');\n });\n\n };\n});\n\n\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2014 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);\n */\n\ndefine('taoQtiItem/runtime/qtiLoader',[\n 'taoQtiItem/runtime/qtiBootstrap',\n 'css!taoCss/tao-main-style'\n], function(qtiBootstrap){\n 'use strict';\n\n return {\n start : function start(){\n //the context is set into the template and bound to the tao namespace in global scope\n var runnerContext = window.tao.qtiRunnerContext;\n qtiBootstrap(runnerContext);\n }\n };\n});\n\n","\ndefine(\"taoQtiItem/loader/qtiLoader.bundle\", function(){});\n","window.bundles = (window.bundles || []).concat([\"taoQtiItem/loader/taoQtiItem.min\"]);\n"],"mappings":"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"} \ No newline at end of file diff --git a/views/js/loader/taoQtiItem.min.js b/views/js/loader/taoQtiItem.min.js index e235b87c9e..d966bc39f7 100644 --- a/views/js/loader/taoQtiItem.min.js +++ b/views/js/loader/taoQtiItem.min.js @@ -1,2 +1,2 @@ -define("taoQtiItem/portableElementRegistry/factory/factory",["lodash","core/promise","core/eventifier"],function(_,Promise,eventifier){"use strict";var _requirejs=window.require,_defaultLoadingOptions={reload:!1},loadModuleConfig=function loadModuleConfig(manifest){return new Promise(function(resolve,reject){var requireConfigAliases={},reqConfigs=[],modules={},baseUrl;return manifest&&manifest.runtime?void(baseUrl=manifest.baseUrl,_.isArray(manifest.runtime.config)&&manifest.runtime.config.length&&_.forEach(manifest.runtime.config,function(pciConfig){_.isString(pciConfig)?reqConfigs.push("json!"+baseUrl+"/"+pciConfig):pciConfig.data?modules=_.defaults(modules,pciConfig.data.paths||{}):pciConfig.file&&reqConfigs.push("json!"+baseUrl+"/"+pciConfig.file)}),require(reqConfigs,function(){var runtimeModules={};requireConfigAliases[manifest.typeIdentifier]=baseUrl,"IMSPCI"===manifest.model&&(modules=_.reduce(arguments,function(acc,conf){return _.defaults(acc,conf.paths||{})},modules),_.forEach(manifest.runtime.modules||{},function(paths,id){paths&&(_.isString(paths)||_.isArray(paths)&&paths.length)&&(runtimeModules[id]=paths)}),modules=_.merge(modules,runtimeModules),_.forEach(modules,function(paths,id){paths=_.isArray(paths)?paths:[paths],requireConfigAliases[id]=_.map(paths,function(path){return baseUrl+"/"+path.replace(/\.js$/,"")})})),resolve(requireConfigAliases)},reject)):reject("invalid manifest")})},isPortableElementProvider=function isPortableElementProvider(provider){return provider&&_.isFunction(provider.load)};return function portableElementRegistry(methods){var _loaded=!1,__providers={};return eventifier(_.defaults(methods||{},{_registry:{},get:function get(typeIdentifier,version){if(this._registry[typeIdentifier])return version?_.find(this._registry[typeIdentifier],{version:version}):_.last(this._registry[typeIdentifier])},registerProvider:function registerProvider(moduleName,provider){return __providers[moduleName]=isPortableElementProvider(provider)?provider:null,_loaded=!1,this},resetProviders:function resetProviders(){return __providers={},_loaded=!1,this},loadProviders:function loadProviders(options){var self=this,loadPromise;return loadPromise=_loaded&&!options.reload?Promise.resolve([]):new Promise(function(resolve,reject){var providerLoadingStack=[];_.forIn(__providers,function(provider,id){null===provider&&providerLoadingStack.push(id)}),_requirejs(providerLoadingStack,function(){_.forEach([].slice.call(arguments),function(provider){isPortableElementProvider(provider)&&(__providers[providerLoadingStack.shift()]=provider)}),resolve(__providers),_loaded=!0,self.trigger("providersloaded",__providers)},reject)}),loadPromise},getAllVersions:function getAllVersions(){var all={};return _.forIn(this._registry,function(versions,id){all[id]=_.map(versions,"version")}),all},getRuntime:function getRuntime(typeIdentifier,version){var portableElement=this.get(typeIdentifier,version);return portableElement?_.assign(portableElement.runtime,{id:portableElement.typeIdentifier,label:portableElement.label,baseUrl:portableElement.baseUrl,model:portableElement.model}):void this.trigger("error",{message:"no portable element runtime found",typeIdentifier:typeIdentifier,version:version})},getCreator:function getCreator(typeIdentifier,version){var portableElement=this.get(typeIdentifier,version);return portableElement&&portableElement.creator?_.assign(portableElement.creator,{id:portableElement.typeIdentifier,label:portableElement.label,baseUrl:portableElement.baseUrl,response:portableElement.response,model:portableElement.model,xmlns:portableElement.xmlns}):void this.trigger("error",{message:"no portable element runtime found",typeIdentifier:typeIdentifier,version:version})},getLatestCreators:function getLatestCreators(){var all={};return _.forIn(this._registry,function(versions,id){var lastVersion=_.last(versions);lastVersion.creator&&lastVersion.creator.hook&&lastVersion.enabled&&(all[id]=lastVersion)}),all},getBaseUrl:function getBaseUrl(typeIdentifier,version){var runtime=this.get(typeIdentifier,version);return runtime?runtime.baseUrl:""},loadRuntimes:function loadRuntimes(options){var self=this,loadPromise;return options=_.defaults(options||{},_defaultLoadingOptions),loadPromise=self.loadProviders(options).then(function(providers){var loadStack=[];return _.forEach(providers,function(provider){provider&&loadStack.push(provider.load())}),Promise.all(loadStack).then(function(results){var configLoadingStack=[];return self._registry=_.reduce(results,function(acc,_pcis){return _.merge(acc,_pcis)},self._registry||{}),_.forIn(self._registry,function(versions,typeIdentifier){return!!(_.isArray(options.include)&&0>_.indexOf(options.include,typeIdentifier))||void configLoadingStack.push(loadModuleConfig(self.get(typeIdentifier)))}),Promise.all(configLoadingStack).then(function(moduleConfigs){var requireConfigAliases=_.reduce(moduleConfigs,function(acc,paths){return _.merge(acc,paths)},{});_requirejs.config({paths:requireConfigAliases})})})}),loadPromise.then(function(){self.trigger("runtimesloaded")}).catch(function(err){self.trigger("error",err)}),loadPromise},loadCreators:function loadCreators(options){var self=this,loadPromise;return options=_.defaults(options||{},_defaultLoadingOptions),loadPromise=self.loadRuntimes(options).then(function(){var requiredCreatorHooks=[];return _.forIn(self._registry,function(versions,typeIdentifier){var portableElementModel=self.get(typeIdentifier);if(portableElementModel.creator&&portableElementModel.creator.hook){if(portableElementModel.enabled){if(_.isArray(options.include)&&0>_.indexOf(options.include,typeIdentifier))return!0;}else if(!_.isArray(options.include)||0>_.indexOf(options.include,typeIdentifier))return!0;requiredCreatorHooks.push(portableElementModel.creator.hook.replace(/\.js$/,""))}}),requiredCreatorHooks.length?new Promise(function(resolve,reject){_requirejs(requiredCreatorHooks,function(){var creators={};_.forEach(arguments,function(creatorHook){var id=creatorHook.getTypeIdentifier(),portableElementModel=self.get(id),i=_.findIndex(self._registry[id],{version:portableElementModel.version});0>i?self.trigger("error","no creator found for id/version "+id+"/"+portableElementModel.version):(self._registry[id][i].creator.module=creatorHook,creators[id]=creatorHook)}),resolve(creators)},reject)}):Promise.resolve({})}),loadPromise.then(function(creators){return self.trigger("creatorsloaded",creators),creators}).catch(function(err){self.trigger("error",err)}),loadPromise},enable:function enable(typeIdentifier,version){var portableElement=this.get(typeIdentifier,version);return portableElement&&(portableElement.enabled=!0),this},disable:function disable(typeIdentifier,version){var portableElement=this.get(typeIdentifier,version);return portableElement&&(portableElement.enabled=!1),this},isEnabled:function isEnabled(typeIdentifier,version){var portableElement=this.get(typeIdentifier,version);return portableElement&&!0===portableElement.enabled}}))}}),define("taoQtiItem/qtiCreator/helper/qtiElements",["jquery","lodash","i18n","services/features"],function($,_,__,featuresService){"use strict";const QtiElements={classes:{itemBody:{parents:["bodyElement"],contains:["block"],abstract:!0},atomicBlock:{parents:["blockStatic","bodyElement","flowStatic"],contains:["inline"],abstract:!0},atomicInline:{parents:["bodyElement","flowStatic","inlineStatic"],contains:["inline"],abstract:!0},simpleBlock:{parents:["blockStatic","bodyElement","flowStatic"],contains:["block"],abstract:!0},simpleInline:{parents:["bodyElement","flowStatic","inlineStatic"],contains:["inline"],abstract:!0},flowStatic:{parents:["flow"],abstract:!0},blockStatic:{parents:["block"],abstract:!0},inlineStatic:{parents:["inline"],abstract:!0},flow:{parents:["objectFlow"],abstract:!0},tableCell:{parents:["bodyElement"],contains:["flow"],abstract:!0},caption:{parents:["bodyElement"],contains:["inline"],xhtml:!0},col:{parents:["bodyElement"],xhtml:!0},colgroup:{parents:["bodyElement"],contains:["col"],xhtml:!0},div:{parents:["blockStatic","bodyElement","flowStatic"],contains:["flow"],xhtml:!0},dl:{parents:["blockStatic","bodyElement","flowStatic"],contains:["dlElement"],xhtml:!0},dt:{parents:["dlElement"],contains:["inline"],xhtml:!0},dd:{parents:["dlElement"],contains:["flow"],xhtml:!0},hr:{parents:["blockStatic","bodyElement","flowStatic"],xhtml:!0},math:{parents:["blockStatic","flowStatic","inlineStatic"],xhtml:!0},li:{parents:["bodyElement"],contains:["flow"],xhtml:!0},ol:{parents:["blockStatic","bodyElement","flowStatic"],contains:["li"],xhtml:!0},ul:{parents:["blockStatic","bodyElement","flowStatic"],contains:["li"],xhtml:!0},object:{parents:["bodyElement","flowStatic","inlineStatic"],contains:["objectFlow"],xhtml:!0},param:{parents:["objectFlow"],xhtml:!0},table:{parents:["blockStatic","bodyElement","flowStatic"],contains:["caption","col","colgroup","thead","tfoot","tbody"],xhtml:!0},tbody:{parents:["bodyElement"],contains:["tr"],xhtml:!0},tfoot:{parents:["bodyElement"],contains:["tr"],xhtml:!0},thead:{parents:["bodyElement"],contains:["tr"],xhtml:!0},td:{parents:["tableCell"],xhtml:!0},th:{parents:["tableCell"],xhtml:!0},tr:{parents:["bodyElement"],contains:["tableCell"],xhtml:!0},a:{parents:["simpleInline"],xhtml:!0},abbr:{parents:["simpleInline"],xhtml:!0},acronym:{parents:["simpleInline"],xhtml:!0},b:{parents:["simpleInline"],xhtml:!0},big:{parents:["simpleInline"],xhtml:!0},cite:{parents:["simpleInline"],xhtml:!0},code:{parents:["simpleInline"],xhtml:!0},dfn:{parents:["simpleInline"],xhtml:!0},em:{parents:["simpleInline"],xhtml:!0},i:{parents:["simpleInline"],xhtml:!0},kbd:{parents:["simpleInline"],xhtml:!0},q:{parents:["simpleInline"],xhtml:!0},samp:{parents:["simpleInline"],xhtml:!0},small:{parents:["simpleInline"],xhtml:!0},span:{parents:["simpleInline"],xhtml:!0},strong:{parents:["simpleInline"],xhtml:!0},sub:{parents:["simpleInline"],xhtml:!0},sup:{parents:["simpleInline"],xhtml:!0},tt:{parents:["simpleInline"],xhtml:!0},var:{parents:["simpleInline"],xhtml:!0},blockquote:{parents:["simpleBlock"],xhtml:!0},address:{parents:["atomicBlock"],xhtml:!0},h1:{parents:["atomicBlock"],xhtml:!0},h2:{parents:["atomicBlock"],xhtml:!0},h3:{parents:["atomicBlock"],xhtml:!0},h4:{parents:["atomicBlock"],xhtml:!0},h5:{parents:["atomicBlock"],xhtml:!0},h6:{parents:["atomicBlock"],xhtml:!0},p:{parents:["atomicBlock"],xhtml:!0},pre:{parents:["atomicBlock"],xhtml:!0},img:{parents:["atomicInline"],xhtml:!0,attributes:["src","alt","longdesc","height","width"]},br:{parents:["atomicInline"],xhtml:!0},infoControl:{parents:["blockStatic","bodyElement","flowStatic"],qti:!0},textRun:{parents:["inlineStatic","flowstatic"],qti:!0},feedbackInline:{parents:["simpleInline","feedbackElement"],qti:!0},feedbackBlock:{parents:["simpleBlock"],qti:!0},rubricBlock:{parents:["simpleBlock"],qti:!0},blockInteraction:{parents:["block","flow","interaction"],qti:!0},inlineInteraction:{parents:["inline","flow","interaction"],qti:!0},gap:{parents:["inlineStatic"],qti:!0},hottext:{parents:["flowstatic","inlineStatic"],contains:["inlineStatic"],qti:!0},printedVariable:{parents:["bodyElement","flowStatic","inlineStatic","textOrVariable"],qti:!0},prompt:{parents:["bodyElement"],contains:["inlineStatic"],qti:!0},templateElement:{parents:["bodyElement"],qti:!0},templateBlock:{parents:["blockStatic","flowStatic","templateElement"],contains:["blockStatic"],qti:!0},templateInline:{parents:["inlineStatic","flowStatic","templateElement"],contains:["inlineStatic"],qti:!0},choiceInteraction:{parents:["blockInteraction"],qti:!0},associateInteraction:{parents:["blockInteraction"],qti:!0},orderInteraction:{parents:["blockInteraction"],qti:!0},matchInteraction:{parents:["blockInteraction"],qti:!0},hottextInteraction:{parents:["blockInteraction"],qti:!0},gapMatchInteraction:{parents:["blockInteraction"],qti:!0},mediaInteraction:{parents:["blockInteraction"],qti:!0},sliderInteraction:{parents:["blockInteraction"],qti:!0},uploadInteraction:{parents:["blockInteraction"],qti:!0},drawingInteraction:{parents:["blockInteraction"],qti:!0},graphicInteraction:{parents:["blockInteraction"],qti:!0},hotspotInteraction:{parents:["graphicInteraction"],qti:!0},graphicAssociateInteraction:{parents:["graphicInteraction"],qti:!0},graphicOrderInteraction:{parents:["graphicInteraction"],qti:!0},graphicGapMatchInteraction:{parents:["graphicInteraction"],qti:!0},selectPointInteraction:{parents:["graphicInteraction"],qti:!0},textEntryInteraction:{parents:["stringInteraction","inlineInteraction"],qti:!0},extendedTextInteraction:{parents:["stringInteraction","blockInteraction"],qti:!0},inlineChoiceInteraction:{parents:["inlineInteraction"],qti:!0},endAttemptInteraction:{parents:["inlineInteraction"],qti:!0},customInteraction:{parents:["block","flow","interaction"],qti:!0},_container:{parents:["block"],qti:!0}},cache:{containable:{},children:{},parents:{}},getAllowedContainersElements(qtiClass,$container){const classes=QtiElements.getAllowedContainers(qtiClass);let jqSelector="";for(let i in classes)classes[i].qti||(jqSelector+=`${classes[i]}, `);return jqSelector&&(jqSelector=jqSelector.substring(0,jqSelector.length-2)),$(jqSelector,$container?$container:$(document)).filter(":not([data-qti-type])")},getAllowedContainers(qtiClass){let ret;if(QtiElements.cache.containable[qtiClass])ret=QtiElements.cache.containable[qtiClass];else{ret=[];const parents=QtiElements.getParentClasses(qtiClass,!0);for(let aClass in QtiElements.classes){const model=QtiElements.classes[aClass];if(model.contains){const intersect=_.intersection(model.contains,parents);intersect.length&&(!model.abstract&&ret.push(aClass),ret=_.union(ret,QtiElements.getChildClasses(aClass,!0)))}}QtiElements.cache.containable[qtiClass]=ret}return ret},getAllowedContents(qtiClass,recursive,checked){let ret=[];checked=checked||{};const model=QtiElements.classes[qtiClass];if(model&&model.contains)for(let i in model.contains){const contain=model.contains[i];if(!checked[contain]){checked[contain]=!0,ret.push(contain);const children=QtiElements.getChildClasses(contain,!0);for(let j in children){const child=children[j];checked[child]||(checked[child]=!0,ret.push(child),recursive&&(ret=_.union(ret,QtiElements.getAllowedContents(child,!0,checked))))}recursive&&(ret=_.union(ret,QtiElements.getAllowedContents(contain,!0,checked)))}}const parents=QtiElements.getParentClasses(qtiClass,!0);for(let i in parents)ret=_.union(ret,QtiElements.getAllowedContents(parents[i],recursive,checked));return _.uniq(ret)},isAllowedClass(qtiContainerClass,qtiContentClass){const allowedClasses=QtiElements.getAllowedContents(qtiContainerClass);return 0<=_.indexOf(allowedClasses,qtiContentClass)},getParentClasses(qtiClass,recursive){let ret;if(recursive&&QtiElements.cache.parents[qtiClass])ret=QtiElements.cache.parents[qtiClass];else{if(ret=[],QtiElements.classes[qtiClass]&&(ret=QtiElements.classes[qtiClass].parents,recursive)){for(let i in ret)ret=_.union(ret,QtiElements.getParentClasses(ret[i],recursive));ret=_.uniq(ret)}QtiElements.cache.parents[qtiClass]=ret}return ret},getChildClasses(qtiClass,recursive,type){let ret;const cacheType=type?type:"all";if(recursive&&QtiElements.cache.children[qtiClass]&&QtiElements.cache.children[qtiClass][cacheType])ret=QtiElements.cache.children[qtiClass][cacheType];else{for(let aClass in ret=[],QtiElements.classes){const model=QtiElements.classes[aClass];0<=_.indexOf(model.parents,qtiClass)&&(type?model[type]&&ret.push(aClass):ret.push(aClass),recursive&&(ret=_.union(ret,QtiElements.getChildClasses(aClass,recursive,type))))}QtiElements.cache.children[qtiClass]||(QtiElements.cache.children[qtiClass]={}),QtiElements.cache.children[qtiClass][cacheType]=ret}return ret},isBlock(qtiClass){return QtiElements.is(qtiClass,"block")},isInline(qtiClass){return QtiElements.is(qtiClass,"inline")},is(qtiClass,topClass){if(qtiClass===topClass)return!0;else{const parents=QtiElements.getParentClasses(qtiClass,!0);return 0<=_.indexOf(parents,topClass)}},isVisible(qtiClass){return this.is(qtiClass,"customInteraction")?featuresService.isVisible(`taoQtiItem/creator/customInteraction/${qtiClass.replace(/Interaction$/,"").replace(/^customInteraction\./,"")}`):!this.is(qtiClass,"interaction")||featuresService.isVisible(`taoQtiItem/creator/interaction/${qtiClass.replace(/Interaction$/,"")}`)},getAvailableAuthoringElements(){const tagTitles={commonInteractions:__("Common Interactions"),inlineInteractions:__("Inline Interactions"),graphicInteractions:__("Graphic Interactions")},authoringElements={choiceInteraction:{label:__("Choice Interaction"),description:__("Select a single (radio buttons) or multiple (check boxes) responses among a set of choices."),icon:"icon-choice",short:__("Choice"),qtiClass:"choiceInteraction",tags:[tagTitles.commonInteractions,"mcq"],group:"common-interactions"},orderInteraction:{label:__("Order Interaction"),icon:"icon-order",description:__("Arrange a list of choices in the correct order."),short:__("Order"),qtiClass:"orderInteraction",tags:[tagTitles.commonInteractions,"ordering"],group:"common-interactions"},associateInteraction:{label:__("Associate Interaction"),icon:"icon-associate",description:__("Create pair(s) from a series of choices."),short:__("Associate"),qtiClass:"associateInteraction",tags:[tagTitles.commonInteractions,"association"],group:"common-interactions"},matchInteraction:{label:__("Match Interaction"),icon:"icon-match",description:__("Create association(s) between two sets of choices displayed in a table (row and column)."),short:__("Match"),qtiClass:"matchInteraction",tags:[tagTitles.commonInteractions,"association"],group:"common-interactions"},hottextInteraction:{label:__("Hottext Interaction"),icon:"icon-hottext",description:__("Select one or more text parts (hottext) within a text."),short:__("Hottext"),qtiClass:"hottextInteraction",tags:[tagTitles.commonInteractions,"text"],group:"common-interactions"},gapMatchInteraction:{label:__("Gap Match Interaction"),icon:"icon-gap-match",description:__(" Fill in the gaps in a text from a set of choices."),short:__("Gap Match"),qtiClass:"gapMatchInteraction",tags:[tagTitles.commonInteractions,"text","association"],group:"common-interactions"},sliderInteraction:{label:__("Slider Interaction"),icon:"icon-slider",description:__("Select a value within a numerical range."),short:__("Slider"),qtiClass:"sliderInteraction",tags:[tagTitles.commonInteractions,"special"],group:"common-interactions"},extendedTextInteraction:{label:__("Extended Text Interaction"),icon:"icon-extended-text",description:__("Collect open-ended information in one or more text area(s) (strings or numeric values)."),short:__("Extended Text"),qtiClass:"extendedTextInteraction",tags:[tagTitles.commonInteractions,"text"],group:"common-interactions"},uploadInteraction:{label:__("File Upload Interaction"),icon:"icon-upload",description:__("Upload a file (e.g. document, picture...) as a response."),short:__("File Upload"),qtiClass:"uploadInteraction",tags:[tagTitles.commonInteractions,"special"],group:"common-interactions"},mediaInteraction:{label:__("Media Interaction"),icon:"icon-media",description:__("Control the playing parameters (auto-start, loop) of a video or audio file and report the number of time it has been played."),short:__("Media"),qtiClass:"mediaInteraction",tags:[tagTitles.commonInteractions,"media"],group:"common-interactions"},_container:{label:__("Text Block"),icon:"icon-font",description:__("Block contains the content (stimulus) of the item such as text or image. It is also required for Inline Interactions."),short:__("Block"),qtiClass:"_container",tags:[tagTitles.inlineInteractions,"text"],group:"inline-interactions"},inlineChoiceInteraction:{label:__("Inline Choice Interaction"),icon:"icon-inline-choice",description:__("Select a choice from a drop-down list."),short:__("Inline Choice"),qtiClass:"inlineChoiceInteraction",tags:[tagTitles.inlineInteractions,"inline-interactions","mcq"],group:"inline-interactions"},textEntryInteraction:{label:__("Text Entry Interaction"),icon:"icon-text-entry",description:__("Collect open-ended information in a short text input (strings or numeric values)."),short:__("Text Entry"),qtiClass:"textEntryInteraction",tags:[tagTitles.inlineInteractions,"inline-interactions","text"],group:"inline-interactions"},endAttemptInteraction:{label:__("End Attempt Interaction"),icon:"icon-end-attempt",description:__("Trigger the end of the item attempt."),short:__("End Attempt"),qtiClass:"endAttemptInteraction",tags:[tagTitles.inlineInteractions,"inline-interactions","button","submit"],group:"inline-interactions"},hotspotInteraction:{label:__("Hotspot Interaction"),icon:"icon-hotspot",description:__("Select one or more areas (hotspots) displayed on an picture."),short:__("Hotspot"),qtiClass:"hotspotInteraction",tags:[tagTitles.graphicInteractions,"mcq"],group:"graphic-interactions"},graphicOrderInteraction:{label:__("Graphic Order Interaction"),icon:"icon-graphic-order",description:__("Order the areas (hotspots) displayed on a picture."),short:__("Order"),qtiClass:"graphicOrderInteraction",tags:[tagTitles.graphicInteractions,"ordering"],group:"graphic-interactions"},graphicAssociateInteraction:{label:__("Graphic Associate Interaction"),icon:"icon-graphic-associate",description:__("Create association(s) between areas (hotspots) displayed on a picture."),short:__("Associate"),qtiClass:"graphicAssociateInteraction",tags:[tagTitles.graphicInteractions,"association"],group:"graphic-interactions"},graphicGapMatchInteraction:{label:__("Graphic Gap Match Interaction"),icon:"icon-graphic-gap",description:__("Fill in the gaps on a picture with a set of image choices."),short:__("Gap Match"),qtiClass:"graphicGapMatchInteraction",tags:[tagTitles.graphicInteractions,"association"],group:"graphic-interactions"},selectPointInteraction:{label:__("Select Point Interaction"),icon:"icon-select-point",description:__("Position one or more points on a picture (response areas are not displayed)."),short:__("Select Point"),qtiClass:"selectPointInteraction",tags:[tagTitles.graphicInteractions],group:"graphic-interactions"}},availableElements={};for(const[elementId,element]of Object.entries(authoringElements))this.isVisible(elementId)&&(availableElements[elementId]=element);return availableElements}};return QtiElements}),define("taoQtiItem/portableElementRegistry/factory/ciRegistry",["lodash","i18n","taoQtiItem/portableElementRegistry/factory/factory","taoQtiItem/qtiCreator/helper/qtiElements"],function(_,__,portableElementRegistry,qtiElements){"use strict";return function customInteractionRegistry(){return portableElementRegistry({getAuthoringData(typeIdentifier){let options=1{const execStack=[];return _.forEach(plugins,plugin=>{_.isFunction(plugin[method])&&execStack.push(plugin[method]())}),Promise.all(execStack)},qtiCreatorContext={init(){return pluginLoader.load().then(()=>{const pluginFactories=pluginLoader.getPlugins();return _.forEach(pluginFactories,pluginFactory=>{const plugin=pluginFactory(this);plugins[plugin.getName()]=plugin}),pluginRun("init").then(()=>{this.trigger("init")})}).catch(err=>{this.trigger("error",err)})},destroy(){return pluginRun("destroy").then(()=>{this.trigger("destroy")}).catch(function(err){this.trigger("error",err)})}};return eventifier(qtiCreatorContext)}}),define("taoQtiItem/qtiItem/core/qtiClasses",[],function(){"use strict";var qtiClasses={_container:"taoQtiItem/qtiItem/core/Container",assessmentItem:"taoQtiItem/qtiItem/core/Item",responseProcessing:"taoQtiItem/qtiItem/core/ResponseProcessing",_simpleFeedbackRule:"taoQtiItem/qtiItem/core/response/SimpleFeedbackRule",stylesheet:"taoQtiItem/qtiItem/core/Stylesheet",math:"taoQtiItem/qtiItem/core/Math",figure:"taoQtiItem/qtiItem/core/Figure",img:"taoQtiItem/qtiItem/core/Img",figcaption:"taoQtiItem/qtiItem/core/Figcaption",object:"taoQtiItem/qtiItem/core/Object",outcomeDeclaration:"taoQtiItem/qtiItem/core/variables/OutcomeDeclaration",responseDeclaration:"taoQtiItem/qtiItem/core/variables/ResponseDeclaration",rubricBlock:"taoQtiItem/qtiItem/core/RubricBlock",associableHotspot:"taoQtiItem/qtiItem/core/choices/AssociableHotspot",gap:"taoQtiItem/qtiItem/core/choices/Gap",gapImg:"taoQtiItem/qtiItem/core/choices/GapImg",gapText:"taoQtiItem/qtiItem/core/choices/GapText",hotspotChoice:"taoQtiItem/qtiItem/core/choices/HotspotChoice",hottext:"taoQtiItem/qtiItem/core/choices/Hottext",inlineChoice:"taoQtiItem/qtiItem/core/choices/InlineChoice",simpleAssociableChoice:"taoQtiItem/qtiItem/core/choices/SimpleAssociableChoice",simpleChoice:"taoQtiItem/qtiItem/core/choices/SimpleChoice",associateInteraction:"taoQtiItem/qtiItem/core/interactions/AssociateInteraction",choiceInteraction:"taoQtiItem/qtiItem/core/interactions/ChoiceInteraction",endAttemptInteraction:"taoQtiItem/qtiItem/core/interactions/EndAttemptInteraction",extendedTextInteraction:"taoQtiItem/qtiItem/core/interactions/ExtendedTextInteraction",gapMatchInteraction:"taoQtiItem/qtiItem/core/interactions/GapMatchInteraction",graphicAssociateInteraction:"taoQtiItem/qtiItem/core/interactions/GraphicAssociateInteraction",graphicGapMatchInteraction:"taoQtiItem/qtiItem/core/interactions/GraphicGapMatchInteraction",graphicOrderInteraction:"taoQtiItem/qtiItem/core/interactions/GraphicOrderInteraction",hotspotInteraction:"taoQtiItem/qtiItem/core/interactions/HotspotInteraction",hottextInteraction:"taoQtiItem/qtiItem/core/interactions/HottextInteraction",inlineChoiceInteraction:"taoQtiItem/qtiItem/core/interactions/InlineChoiceInteraction",matchInteraction:"taoQtiItem/qtiItem/core/interactions/MatchInteraction",mediaInteraction:"taoQtiItem/qtiItem/core/interactions/MediaInteraction",orderInteraction:"taoQtiItem/qtiItem/core/interactions/OrderInteraction",prompt:"taoQtiItem/qtiItem/core/interactions/Prompt",selectPointInteraction:"taoQtiItem/qtiItem/core/interactions/SelectPointInteraction",sliderInteraction:"taoQtiItem/qtiItem/core/interactions/SliderInteraction",textEntryInteraction:"taoQtiItem/qtiItem/core/interactions/TextEntryInteraction",uploadInteraction:"taoQtiItem/qtiItem/core/interactions/UploadInteraction",feedbackBlock:"taoQtiItem/qtiItem/core/feedbacks/FeedbackBlock",feedbackInline:"taoQtiItem/qtiItem/core/feedbacks/FeedbackInline",modalFeedback:"taoQtiItem/qtiItem/core/feedbacks/ModalFeedback",customInteraction:"taoQtiItem/qtiItem/core/interactions/CustomInteraction",infoControl:"taoQtiItem/qtiItem/core/PortableInfoControl",include:"taoQtiItem/qtiItem/core/Include",table:"taoQtiItem/qtiItem/core/Table",printedVariable:"taoQtiItem/qtiItem/core/PrintedVariable",_tooltip:"taoQtiItem/qtiItem/core/Tooltip"};return qtiClasses}),define("taoQtiItem/qtiItem/helper/util",["lodash"],function(_){"use strict";_=_&&Object.prototype.hasOwnProperty.call(_,"default")?_["default"]:_;var util={buildSerial:function buildSerial(prefix){for(var id=prefix||"",chars="abcdefghijklmnopqrstuvwxyz0123456789",i=0;22>i;i++)id+=chars.charAt(Math.floor(Math.random()*chars.length));return id},buildId:function buildId(item,prefix){var i=1,suffix="",exists=!1,id,usedIds;if(!item)throw new TypeError("A item is required to generate a unique identifier");usedIds=item.getUsedIds();do exists=!1,id=prefix+suffix,usedIds&&usedIds.includes(id)&&(exists=!0,suffix="_"+i,i++);while(exists);return id},buildIdentifier:function buildIdentifier(item,prefix,useSuffix){var suffix="",i=1,exists=!1,id,usedIds;if(!item)throw new TypeError("A item is required to generate a unique identifier");if(!prefix)throw new TypeError("Prefix is required to build an identifier");usedIds=item.getUsedIdentifiers(),useSuffix=!!_.isUndefined(useSuffix)||useSuffix,prefix&&(prefix=prefix.replace(/_[0-9]+$/gi,"_").replace(/[^a-zA-Z0-9_]/gi,"_").replace(/(_)+/gi,"_"),useSuffix&&(suffix="_"+i));do exists=!1,id=prefix+suffix,usedIds[id]&&(exists=!0,suffix="_"+i,i++);while(exists);return id},findInCollection:function findInCollection(element,collectionNames,searchedSerial){var found=null;if(_.isString(collectionNames)&&(collectionNames=[collectionNames]),_.isArray(collectionNames))_.forEach(collectionNames,function(collectionName){var collection=element;_.forEach(collectionName.split("."),function(nameToken){collection=collection[nameToken]});var elt=collection[searchedSerial];return elt?(found={parent:element,element:elt},!1):(_.forEach(collection,function(elt){if(_.isFunction(elt.find)&&(found=elt.find(searchedSerial),found))return!1}),!found)&&void 0});else throw new Error("invalid argument : collectionNames must be an array or a string");return found},addMarkupNamespace:function addMarkupNamespace(markup,ns){return ns?(markup=markup.replace(/<(\/)?([a-z:]+)(\s?)([^><]*)>/g,function($0,$1,$2,$3,$4){return 0<$2.indexOf(":")?$0:($1=$1||"",$3=$3||"","<"+$1+ns+":"+$2+$3+$4+">")}),markup):markup},removeMarkupNamespaces:function removeMarkupNamespace(markup){return markup.replace(/<(\/)?(\w*):([^>]*)>/g,"<$1$3>")},getMarkupUsedNamespaces:function getMarkupUsedNamespaces(markup){var namespaces=[];return markup.replace(/<(\/)?(\w*):([^>]*)>/g,function(original,slash,ns,node){return namespaces.push(ns),"<"+slash+node+">"}),_.uniq(namespaces)}};return util}),define("taoQtiItem/qtiItem/helper/rendererConfig",["lodash","jquery"],function(_,$){"use strict";_=_&&Object.prototype.hasOwnProperty.call(_,"default")?_["default"]:_,$=$&&Object.prototype.hasOwnProperty.call($,"default")?$["default"]:$;var rendererConfigHelper={getOptionsFromArguments:function(args){var options={data:{},placeholder:null,subclass:"",renderer:null};return _.forEach(args,function(arg){arg&&(arg.isRenderer?options.renderer=arg:arg instanceof $&&arg.length?options.placeholder=arg:_.isString(arg)?options.subclass=arg:_.isPlainObject(arg)?options.data=arg:console.log("invalid arg",arg,args))}),options}};return rendererConfigHelper}),define("taoQtiItem/qtiItem/core/Element",["jquery","lodash","class","core/logger","taoQtiItem/qtiItem/helper/util","taoQtiItem/qtiItem/helper/rendererConfig"],function($,_,_class,loggerFactory,util,rendererConfig){"use strict";$=$&&Object.prototype.hasOwnProperty.call($,"default")?$["default"]:$,_=_&&Object.prototype.hasOwnProperty.call(_,"default")?_["default"]:_,loggerFactory=loggerFactory&&Object.prototype.hasOwnProperty.call(loggerFactory,"default")?loggerFactory["default"]:loggerFactory,util=util&&Object.prototype.hasOwnProperty.call(util,"default")?util["default"]:util,rendererConfig=rendererConfig&&Object.prototype.hasOwnProperty.call(rendererConfig,"default")?rendererConfig["default"]:rendererConfig;var _instances={},logger=loggerFactory("taoQtiItem/qtiItem/core/Element"),Element=Class.extend({qtiClass:"",serial:"",rootElement:null,init:function(serial,attributes){if(this.attributes={},this.metaData={},"object"==typeof serial&&(attributes=serial,serial=""),serial||(serial=util.buildSerial(this.qtiClass+"_")),serial&&("string"!=typeof serial||!serial.match(/^[a-z_0-9]*$/i)))throw"invalid QTI serial : ("+typeof serial+") "+serial;if(!_instances[serial])_instances[serial]=this,this.serial=serial,this.setAttributes(attributes||{});else throw"a QTI Element with the same serial already exists "+serial;"function"==typeof this.initContainer&&this.initContainer(arguments[2]||""),"function"==typeof this.initObject&&this.initObject()},is:function(qtiClass){return qtiClass===this.qtiClass},placeholder:function(){return"{{"+this.serial+"}}"},getSerial:function(){return this.serial},getUsedIdentifiers:function(){var usedIds={},elts=this.getComposingElements();for(var i in elts){var elt=elts[i],id=elt.attr("identifier");id&&(usedIds[id]=elt)}return usedIds},getUsedIds:function getUsedIds(){var usedIds=[];return _.forEach(this.getComposingElements(),function(elt){var id=elt.attr("id");id&&!usedIds.includes(id)&&usedIds.push(id)}),usedIds},attr:function(name,value){if(name)if(void 0!==value)this.attributes[name]=value;else if("object"==typeof name)for(var prop in name)this.attr(prop,name[prop]);else if("string"==typeof name)return void 0===this.attributes[name]?void 0:this.attributes[name];return this},data:function(name,value){if(name)if(void 0!==value)this.metaData[name]=value,$(document).trigger("metaChange.qti-widget",{element:this,key:name,value:value});else if("object"==typeof name)for(var prop in name)this.data(prop,name[prop]);else if("string"==typeof name)return void 0===this.metaData[name]?void 0:this.metaData[name];return this},removeData:function(name){return delete this.metaData[name],this},removeAttr:function(name){return this.removeAttributes(name)},setAttributes:function(attributes){return _.isPlainObject(attributes)||logger.warn("attributes should be a plain object"),this.attributes=attributes,this},getAttributes:function(){return _.clone(this.attributes)},removeAttributes:function(attrNames){for(var i in"string"==typeof attrNames&&(attrNames=[attrNames]),attrNames)delete this.attributes[attrNames[i]];return this},getComposingElements:function(){function append(element){elts[element.getSerial()]=element,elts=_.extend(elts,element.getComposingElements())}var elts={};return"function"==typeof this.initContainer&&append(this.getBody()),"function"==typeof this.initObject&&append(this.getObject()),_.forEach(this.metaData,function(v){Element.isA(v,"_container")?append(v):_.isArray(v)&&_.forEach(v,function(v){Element.isA(v,"_container")&&append(v)})}),elts},getUsedClasses:function(){var ret=[this.qtiClass],composingElts=this.getComposingElements();return _.forEach(composingElts,function(elt){ret.push(elt.qtiClass)}),_.uniq(ret)},find:function(serial){var found=null,object,body;return"function"==typeof this.initObject&&(object=this.getObject(),object.serial===serial&&(found={parent:this,element:object,location:"object"})),found||"function"!=typeof this.initContainer||(body=this.getBody(),found=body.serial===serial?{parent:this,element:body,location:"body"}:this.getBody().find(serial,this)),found},parent:function(){var item=this.getRootElement();if(item){var found=item.find(this.getSerial());if(found)return found.parent}return null},setRelatedItem:function(item){logger.warn("Deprecated use of setRelatedItem()"),this.setRootElement(item)},setRootElement:function(item){var composingElts,i;if(Element.isA(item,"assessmentItem"))for(i in this.rootElement=item,composingElts=this.getComposingElements(),composingElts)composingElts[i].setRootElement(item)},getRelatedItem:function(){return logger.warn("Deprecated use of getRelatedItem()"),this.getRootElement()},getRootElement:function(){var ret=null;return Element.isA(this.rootElement,"assessmentItem")&&(ret=this.rootElement),ret},setRenderer:function(renderer){if(renderer&&renderer.isRenderer){this.renderer=renderer;var elts=this.getComposingElements();for(var serial in elts)elts[serial].setRenderer(renderer)}else throw"invalid qti rendering engine"},getRenderer:function(){return this.renderer},render:function render(){var args=rendererConfig.getOptionsFromArguments(arguments),_renderer=args.renderer||this.getRenderer(),tplData={},defaultData={tag:this.qtiClass,serial:this.serial,attributes:this.getAttributes()},rendering;if(!_renderer)throw new Error("render: no renderer found for the element "+this.qtiClass+":"+this.serial);return"function"==typeof this.initContainer&&(defaultData.body=this.getBody().render(args.renderer)),"function"==typeof this.initObject&&(defaultData.object={attributes:this.object.getAttributes()},defaultData.object.attributes.data=_renderer.resolveUrl(this.object.attr("data"))),tplData=_.merge(defaultData,args.data||{}),tplData=_renderer.getData(this,tplData,args.subclass),rendering=_renderer.renderTpl(this,tplData,args.subclass),args.placeholder&&args.placeholder.replaceWith(rendering),rendering},postRender:function(data,altClassName,renderer){var postRenderers=[],_renderer=renderer||this.getRenderer();if("function"==typeof this.initContainer&&(postRenderers=this.getBody().postRender(data,"",renderer)),_renderer)postRenderers.push(_renderer.postRender(this,data,altClassName));else throw"postRender: no renderer found for the element "+this.qtiClass+":"+this.serial;return _.compact(postRenderers)},getContainer:function($scope,subclass){var renderer=this.getRenderer();if(renderer)return renderer.getContainer(this,$scope,subclass);throw"getContainer: no renderer found for the element "+this.qtiClass+":"+this.serial},toArray:function(){var arr={serial:this.serial,type:this.qtiClass,attributes:this.getAttributes()};return"function"==typeof this.initContainer&&(arr.body=this.getBody().toArray()),"function"==typeof this.initObject&&(arr.object=this.object.toArray()),arr},isEmpty:function(){return!1},addClass:function(className){var clazz=this.attr("class")||"";_containClass(clazz,className)||this.attr("class",clazz+(clazz.length?" ":"")+className)},hasClass:function(className){return _containClass(this.attr("class"),className)},removeClass:function(className){var clazz=this.attr("class")||"";if(clazz){var regex=new RegExp("(?:^|\\s)"+className+"(?:\\s|$)");clazz=clazz.replace(regex," ").trim(),clazz?this.attr("class",clazz):this.removeAttr("class")}},toggleClass:function(className,state){return"boolean"==typeof state?state?this.addClass(className):this.removeClass(className):this.hasClass(className)?this.removeClass(className):this.addClass(className)},isset:function(){return Element.issetElement(this.serial)},unset:function(){return Element.unsetElement(this.serial)}}),_containClass=function(allClassStr,className){var regex=new RegExp("(?:^|\\s)"+className+"(?:\\s|$)","");return allClassStr&®ex.test(allClassStr)};return Element.isA=function(qtiElement,qtiClass){return qtiElement instanceof Element&&qtiElement.is(qtiClass)},Element.getElementBySerial=function(serial){return _instances[serial]},Element.issetElement=function(serial){return!!_instances[serial]},Element.unsetElement=function(serial){var element=Element.getElementBySerial(serial);if(element){var composingElements=element.getComposingElements();return _.forEach(composingElements,function(elt){delete _instances[elt.serial]}),delete _instances[element.serial],!0}return!1},Element}),define("taoQtiItem/qtiItem/helper/xmlNsHandler",[],function(){"use strict";function getPrefix(namespaces,html5Ns){let key;for(key in namespaces)if(namespaces[key]===html5Ns)return key;return"qh5"}const prefixed="article|aside|bdi|figure|footer|header|nav|rb|rp|rt|rtc|ruby|section";var xmlNsHandler={stripNs:function stripNs(body){const pattern="([\\w]+)\\:(article|aside|bdi|figure|footer|header|nav|rb|rp|rt|rtc|ruby|section)",openRegEx=/(<([\w]+)\:(article|aside|bdi|figure|footer|header|nav|rb|rp|rt|rtc|ruby|section))/gi,closeRegEx=/(<\/([\w]+)\:(article|aside|bdi|figure|footer|header|nav|rb|rp|rt|rtc|ruby|section)>)/gi;return body.replace(openRegEx,"<$3").replace(closeRegEx,"")},restoreNs:function restoreNs(xml,namespaces){let ignoreMarkup=!!(2)+)/gim,""));const xmlRe=/(<(article|aside|bdi|figure|footer|header|nav|rb|rp|rt|rtc|ruby|section)[^>]*>|<\/(article|aside|bdi|figure|footer|header|nav|rb|rp|rt|rtc|ruby|section)>)/gi,tagRe=/((<)(article|aside|bdi|figure|footer|header|nav|rb|rp|rt|rtc|ruby|section)([^>]*)(>)|(<\/)(article|aside|bdi|figure|footer|header|nav|rb|rp|rt|rtc|ruby|section)(>))/i,xmlMatch=xmlCopy.match(xmlRe),imsXsd="http://www.imsglobal.org/xsd",html5Ns=imsXsd+"/imsqtiv2p2_html5_v1p0",prefix=getPrefix(namespaces,html5Ns),prefixAtt="xmlns:"+prefix+"=\""+html5Ns+"\"";let i=xmlMatch?xmlMatch.length:0;if(!xmlMatch)return xml;for(;i--;){const tagMatch=xmlMatch[i].match(tagRe);xml=xml.replace(xmlMatch[i],tagMatch[5]?"<"+prefix+":"+tagMatch[3]+tagMatch[4]+">":"")}return xmlMatch.length&&-1===xml.indexOf(prefixAtt)&&(xml=xml.replace("({qtiClass:"responseCondition",responseIf:{qtiClass:"responseIf",expression:{qtiClass:"match",expressions:[{qtiClass:"variable",attributes:{identifier:responseIdentifier}},{qtiClass:"correct",attributes:{identifier:responseIdentifier}}]},responseRules:[{qtiClass:"setOutcomeValue",attributes:{identifier:outcomeIdentifier},expression:{qtiClass:"sum",expressions:[{qtiClass:"variable",attributes:{identifier:outcomeIdentifier}},{qtiClass:"baseValue",attributes:{baseType:"integer"},value:"1"}]}}]}}),MAP_RESPONSE:(responseIdentifier,outcomeIdentifier)=>({qtiClass:"responseCondition",responseIf:{qtiClass:"responseIf",expression:{qtiClass:"not",expressions:[{qtiClass:"isNull",expressions:[{qtiClass:"variable",attributes:{identifier:responseIdentifier}}]}]},responseRules:[{qtiClass:"setOutcomeValue",attributes:{identifier:outcomeIdentifier},expression:{qtiClass:"sum",expressions:[{qtiClass:"variable",attributes:{identifier:outcomeIdentifier}},{qtiClass:"mapResponse",attributes:{identifier:responseIdentifier}}]}}]}}),MAP_RESPONSE_POINT:(responseIdentifier,outcomeIdentifier)=>({qtiClass:"responseCondition",responseIf:{qtiClass:"responseIf",expression:{qtiClass:"not",expressions:[{qtiClass:"isNull",expressions:[{qtiClass:"variable",attributes:{identifier:responseIdentifier}}]}]},responseRules:[{qtiClass:"setOutcomeValue",attributes:{identifier:outcomeIdentifier},expression:{qtiClass:"sum",expressions:[{qtiClass:"variable",attributes:{identifier:outcomeIdentifier}},{qtiClass:"mapResponsePoint",attributes:{identifier:responseIdentifier}}]}}]}})};return responseRules}),define("taoQtiItem/qtiItem/helper/response",["lodash","taoQtiItem/qtiItem/helper/responseRules"],function(_,responseRulesHelper){"use strict";_=_&&Object.prototype.hasOwnProperty.call(_,"default")?_["default"]:_,responseRulesHelper=responseRulesHelper&&Object.prototype.hasOwnProperty.call(responseRulesHelper,"default")?responseRulesHelper["default"]:responseRulesHelper;const _templateNames={MATCH_CORRECT:"http://www.imsglobal.org/question/qti_v2p1/rptemplates/match_correct",MAP_RESPONSE:"http://www.imsglobal.org/question/qti_v2p1/rptemplates/map_response",MAP_RESPONSE_POINT:"http://www.imsglobal.org/question/qti_v2p1/rptemplates/map_response_point",NONE:"no_response_processing"};var response={isUsingTemplate(response,tpl){return!!(_.isString(tpl)&&(tpl===response.template||_templateNames[tpl]===response.template))},isValidTemplateName(tplName){return!!this.getTemplateUriFromName(tplName)},getTemplateUriFromName(tplName){return _templateNames[tplName]||""},getTemplateNameFromUri(tplUri){let tplName="";return _.forIn(_templateNames,(uri,name)=>{if(uri===tplUri)return tplName=name,!1}),tplName},getTemplateNameFromResponseRules(responseIdentifier,responseRules){if(!responseRules)return"NONE";const{responseIf:{responseRules:[outcomeRules={}]=[]}={}}=responseRules,{attributes:{identifier:outcomeIdentifier}={}}=outcomeRules;return outcomeIdentifier?Object.keys(responseRulesHelper).find(key=>_.isEqual(responseRules,responseRulesHelper[key](responseIdentifier,outcomeIdentifier))):""}};return response}),define("taoQtiItem/qtiItem/helper/itemScore",[],function(){"use strict";var itemScore=responseIdentifiers=>{const outcomeExpressions=responseIdentifiers.map(outcomeIdentifier=>({qtiClass:"variable",attributes:{identifier:`SCORE_${outcomeIdentifier}`}}));return{qtiClass:"setOutcomeValue",attributes:{identifier:"SCORE"},expression:{qtiClass:"sum",expressions:outcomeExpressions}}};return itemScore}),define("taoQtiItem/qtiItem/core/Loader",["lodash","class","taoQtiItem/qtiItem/core/qtiClasses","taoQtiItem/qtiItem/core/Element","taoQtiItem/qtiItem/helper/xmlNsHandler","core/moduleLoader","taoQtiItem/qtiItem/helper/response","taoQtiItem/qtiItem/helper/itemScore"],function(_,_class,qtiClasses,Element,xmlNsHandler,moduleLoader,responseHelper,itemScoreHelper){"use strict";_=_&&Object.prototype.hasOwnProperty.call(_,"default")?_["default"]:_,qtiClasses=qtiClasses&&Object.prototype.hasOwnProperty.call(qtiClasses,"default")?qtiClasses["default"]:qtiClasses,Element=Element&&Object.prototype.hasOwnProperty.call(Element,"default")?Element["default"]:Element,xmlNsHandler=xmlNsHandler&&Object.prototype.hasOwnProperty.call(xmlNsHandler,"default")?xmlNsHandler["default"]:xmlNsHandler,moduleLoader=moduleLoader&&Object.prototype.hasOwnProperty.call(moduleLoader,"default")?moduleLoader["default"]:moduleLoader,responseHelper=responseHelper&&Object.prototype.hasOwnProperty.call(responseHelper,"default")?responseHelper["default"]:responseHelper,itemScoreHelper=itemScoreHelper&&Object.prototype.hasOwnProperty.call(itemScoreHelper,"default")?itemScoreHelper["default"]:itemScoreHelper;const loadPortableCustomElementProperties=(portableElement,rawProperties)=>{var properties={};_.forOwn(rawProperties,(value,key)=>{try{properties[key]=JSON.parse(value)}catch(e){properties[key]=value}}),portableElement.properties=properties},loadPortableCustomElementData=(portableElement,data)=>{portableElement.typeIdentifier=data.typeIdentifier,portableElement.markup=data.markup,portableElement.entryPoint=data.entryPoint,portableElement.libraries=data.libraries,portableElement.setNamespace("",data.xmlns),loadPortableCustomElementProperties(portableElement,data.properties)};var Loader=Class.extend({init(item,classesLocation){this.qti={},this.classesLocation={},this.item=item||null,this.setClassesLocation(classesLocation||qtiClasses)},setClassesLocation(qtiClassesList){return _.extend(this.classesLocation,qtiClassesList),this},getRequiredClasses(data){let ret=[];for(let i in data)"qtiClass"==i&&"_container"!==data[i]&&"rootElement"!==i?ret.push(data[i]):"object"==typeof data[i]&&"responseRules"!==i&&(ret=_.union(ret,this.getRequiredClasses(data[i])));return ret},loadRequiredClasses(data,callback,reload){let requiredClass;const requiredClasses=this.getRequiredClasses(data,reload),required=[];for(let i in requiredClasses)if(requiredClass=requiredClasses[i],this.classesLocation[requiredClass])required.push({module:this.classesLocation[requiredClass],category:"qti"});else throw new Error(`missing qti class location declaration : ${requiredClass}`);moduleLoader([],()=>!0).addList(required).load().then(loadeded=>{loadeded.forEach(QtiClass=>{this.qti[QtiClass.prototype.qtiClass]=QtiClass}),callback.call(this,this.qti)})},getLoadedClasses(){return _.keys(this.qti)},loadItemData(data,callback){this.loadRequiredClasses(data,Qti=>{if("object"==typeof data&&"assessmentItem"===data.qtiClass){for(let i in data.serial&&Element.unsetElement(data.serial),this.item=new Qti.assessmentItem(data.serial,data.attributes||{}),this.loadContainer(this.item.getBody(),data.body),data.outcomes){const outcome=this.buildOutcome(data.outcomes[i]);outcome&&this.item.addOutcomeDeclaration(outcome)}for(let i in data.feedbacks){const feedback=this.buildElement(data.feedbacks[i]);feedback&&this.item.addModalFeedback(feedback)}for(let i in data.stylesheets){const stylesheet=this.buildElement(data.stylesheets[i]);stylesheet&&this.item.addStylesheet(stylesheet)}let responseRules=data.responseProcessing&&data.responseProcessing.responseRules?[...data.responseProcessing.responseRules]:[];for(let i in data.responses){const responseIdentifier=data.responses[i].identifier,responseRuleItemIndex=responseRules.findIndex(_ref=>{let{responseIf:{expression:{expressions:[expression={}]=[]}={}}={}}=_ref;return expression.attributes&&expression.attributes.identifier===responseIdentifier||expression.expressions&&expression.expressions[0]&&expression.expressions[0].attributes&&expression.expressions[0].attributes.identifier===responseIdentifier}),[responseRule]=-1===responseRuleItemIndex?[]:responseRules.splice(responseRuleItemIndex,1),response=this.buildResponse(data.responses[i],responseRule);if(response){this.item.addResponseDeclaration(response);const feedbackRules=data.responses[i].feedbackRules;feedbackRules&&_.forIn(feedbackRules,(fbData,serial)=>{const{attributes:{identifier:feedbackOutcomeIdentifier}={}}=data.outcomes[fbData.feedbackOutcome]||{};response.feedbackRules[serial]=this.buildSimpleFeedbackRule(fbData,response);const feedbackResponseRuleIndex=responseRules.findIndex(_ref2=>{let{responseIf:{responseRules:[setOutcomeResponseRule={}]=[]}={}}=_ref2;const{attributes={},qtiClass}=setOutcomeResponseRule,outcomeIdentifier=attributes.identifier;return feedbackOutcomeIdentifier===outcomeIdentifier&&"setOutcomeValue"===qtiClass});-1!==feedbackResponseRuleIndex&&responseRules.splice(feedbackResponseRuleIndex,1)})}}const responseIdentifiers=Object.keys(this.item.responses||{}).map(responseKey=>this.item.responses[responseKey].attributes.identifier);if(data.responseProcessing){const customResponseProcessing=0!this.item.responses[responseKey].template);this.item.setResponseProcessing(this.buildResponseProcessing(data.responseProcessing,customResponseProcessing))}this.item.setNamespaces(data.namespaces),this.item.setSchemaLocations(data.schemaLocations),this.item.setApipAccessibility(data.apipAccessibility)}"function"==typeof callback&&callback.call(this,this.item)})},loadAndBuildElement(data,callback){this.loadRequiredClasses(data,()=>{const element=this.buildElement(data);"function"==typeof callback&&callback.call(this,element)})},loadElement(element,data,callback){this.loadRequiredClasses(data,()=>{this.loadElementData(element,data),"function"==typeof callback&&callback.call(this,element)})},loadElements(data,callback){if(!this.item)throw new Error("QtiLoader : cannot load elements in empty item");this.loadRequiredClasses(data,()=>{const allElements=this.item.getComposingElements();for(let i in data){const elementData=data[i];elementData&&elementData.qtiClass&&elementData.serial&&allElements[elementData.serial]&&this.loadElementData(allElements[elementData.serial],elementData)}"function"==typeof callback&&callback.call(this,this.item)})},buildResponse(data,responseRule){const response=this.buildElement(data);return response.template=responseHelper.getTemplateUriFromName(responseHelper.getTemplateNameFromResponseRules(data.identifier,responseRule))||data.howMatch||null,response.defaultValue=data.defaultValue||null,response.correctResponse=data.correctResponses||null,response.mapEntries=_.size(data.mapping)?data.mapping:_.size(data.areaMapping)?data.areaMapping:{},response.mappingAttributes=data.mappingAttributes||{},response},buildSimpleFeedbackRule(data,response){const feedbackRule=this.buildElement(data);feedbackRule.setCondition(response,data.condition,data.comparedValue||null),feedbackRule.feedbackOutcome=this.item.outcomes[data.feedbackOutcome]||null,feedbackRule.feedbackThen=this.item.modalFeedbacks[data.feedbackThen]||null,feedbackRule.feedbackElse=this.item.modalFeedbacks[data.feedbackElse]||null;const comparedOutcome=feedbackRule.comparedOutcome;return feedbackRule.feedbackThen&&feedbackRule.feedbackThen.data("relatedResponse",comparedOutcome),feedbackRule.feedbackElse&&feedbackRule.feedbackElse.data("relatedResponse",comparedOutcome),feedbackRule},buildOutcome(data){const outcome=this.buildElement(data);return outcome.defaultValue=data.defaultValue||null,outcome},buildResponseProcessing(data,customResponseProcessing){const rp=this.buildElement(data);return customResponseProcessing?(rp.xml=data.data,rp.processingType="custom"):rp.processingType="templateDriven",rp},loadContainer(bodyObject,bodyData){if(!Element.isA(bodyObject,"_container"))throw new Error("bodyObject must be a QTI Container");if(!(bodyData&&"string"==typeof bodyData.body&&"object"==typeof bodyData.elements))throw new Error("wrong bodydata format");const attributes=_.defaults(bodyData.attributes||{},bodyObject.attributes||{});for(let serial in bodyObject.setAttributes(attributes),bodyData.elements){const eltData=bodyData.elements[serial],element=this.buildElement(eltData);element&&bodyObject.setElement(element,bodyData.body)}bodyObject.body(xmlNsHandler.stripNs(bodyData.body))},buildElement(elementData){if(!(elementData&&elementData.qtiClass&&elementData.serial))throw new Error("wrong elementData format");const className=elementData.qtiClass;if(!this.qti[className])throw new Error(`the qti element class does not exist: ${className}`);const elt=new this.qti[className](elementData.serial);return this.loadElementData(elt,elementData),elt},loadElementData(element,data){const attributes=_.defaults(data.attributes||{},element.attributes||{});element.setAttributes(attributes);let body=data.body;return!body&&data.text&&"inlineChoice"===data.qtiClass&&(body={body:data.text,elements:{}}),element.body&&body&&element.bdy&&this.loadContainer(element.getBody(),body),element.object&&data.object&&element.object&&this.loadObjectData(element.object,data.object),Element.isA(element,"interaction")?this.loadInteractionData(element,data):Element.isA(element,"choice")?this.loadChoiceData(element,data):Element.isA(element,"math")?this.loadMathData(element,data):Element.isA(element,"infoControl")?this.loadPicData(element,data):Element.isA(element,"_tooltip")&&this.loadTooltipData(element,data),element},loadInteractionData(interaction,data){Element.isA(interaction,"blockInteraction")&&data.prompt&&this.loadContainer(interaction.prompt.getBody(),data.prompt),this.buildInteractionChoices(interaction,data),Element.isA(interaction,"customInteraction")&&this.loadPciData(interaction,data)},buildInteractionChoices(interaction,data){if(data.choices){if(Element.isA(interaction,"matchInteraction"))for(let set=0;2>set;set++){if(!data.choices[set])throw new Error(`missing match set #${set}`);const matchSet=data.choices[set];for(let serial in matchSet){const choice=this.buildElement(matchSet[serial]);choice&&interaction.addChoice(choice,set)}}else for(let serial in data.choices){const choice=this.buildElement(data.choices[serial]);choice&&interaction.addChoice(choice)}if(Element.isA(interaction,"graphicGapMatchInteraction")&&data.gapImgs)for(let serial in data.gapImgs){const gapImg=this.buildElement(data.gapImgs[serial]);gapImg&&interaction.addGapImg(gapImg)}}},loadChoiceData(choice,data){if(Element.isA(choice,"textVariableChoice"))choice.val(data.text);else if(Element.isA(choice,"gapImg"));else if(Element.isA(choice,"gapText"))choice.body()||choice.body(data.text);else if(Element.isA(choice,"containerChoice"));},loadObjectData(object,data){object.setAttributes(data.attributes),data._alt&&("object"===data._alt.qtiClass?object._alt=Loader.buildElement(data._alt):object._alt=data._alt)},loadMathData(math,data){math.ns=data.ns||{},math.setMathML(data.mathML||""),_.forIn(data.annotations||{},(value,encoding)=>{math.setAnnotation(encoding,value)})},loadTooltipData(tooltip,data){tooltip.content(data.content)},loadPciData(pci,data){loadPortableCustomElementData(pci,data)},loadPicData(pic,data){loadPortableCustomElementData(pic,data)}});return Loader}),define("taoQtiItem/qtiCreator/model/helper/event",["jquery","lodash"],function($,_){"use strict";var namespace=".qti-creator",namespaceModel=".qti-creator",eventList=["containerBodyChange","containerElementAdded","elementCreated.qti-widget","attributeChange.qti-widget","choiceCreated.qti-widget","correctResponseChange.qti-widget","mapEntryChange.qti-widget","mapEntryRemove.qti-widget","deleted.qti-widget","choiceTextChange.qti-widget","responseTemplateChange.qti-widget","mappingAttributeChange.qti-widget","feedbackRuleConditionChange.qti-widget","feedbackRuleCreated.qti-widget","feedbackRuleRemoved.qti-widget","feedbackRuleElseCreated.qti-widget","feedbackRuleElseRemoved.qti-widget"],event={choiceCreated:function choiceCreated(choice,interaction){$(document).trigger("choiceCreated.qti-widget",{choice:choice,interaction:interaction})},choiceDeleted:function choiceDeleted(choice,interaction){$(document).trigger("choiceDeleted.qti-widget",{choice:choice,interaction:interaction})},deleted:function(element,parent){element.isset()&&element.unset(),$(document).off("."+element.getSerial()),$(document).trigger("deleted.qti-widget",{element:element,parent:parent})},getList:function(addedNamespace){var events=_.clone(eventList);return addedNamespace?_.map(events,function(e){return e+"."+addedNamespace}):events},initElementToWidgetListeners:function(){var ns=".widget-container";$(document).off(".widget-container").on(event.getList(".widget-container").join(" "),function(e,data){var element=data.element||data.container||null,widget=data&&element&&element.data("widget");!widget&&data.parent&&(element=data.parent,widget=element.data("widget")),widget&&widget.$container.trigger(e.type+".qti-creator"+namespaceModel,data)})},getNs:function(){return".qti-creator"},getNsModel:function(){return namespaceModel}};return event}),define("taoQtiItem/qtiCreator/model/helper/invalidator",["lodash"],function(_){"use strict";const invalidator={completelyValid:function(element){const item=element.getRootElement();if(item){const serial=element.getSerial(),invalidElements=item.data("invalid")||{};delete invalidElements[serial],item.data("invalid",invalidElements)}},valid:function(element,key){const item=element.getRootElement(),serial=element.getSerial();if(item){const invalidElements=item.data("invalid")||{};if(key)invalidElements[serial]&&invalidElements[serial][key]&&(delete invalidElements[serial][key],!_.size(invalidElements[serial])&&delete invalidElements[serial],item.data("invalid",invalidElements));else throw new Error("missing required argument \"key\"")}},invalid:function(element,key,message,stateName){const item=element.getRootElement(),serial=element.getSerial();if(item){const invalidElements=item.data("invalid")||{};if(key)invalidElements[serial]||(invalidElements[serial]={}),invalidElements[serial][key]={message:message||"",stateName:stateName||"active"},item.data("invalid",invalidElements);else throw new Error("missing required arguments \"key\"")}},isValid:function(element,key){const item=element.getRootElement(),serial=element.getSerial();if(item){const invalidElements=item.data("invalid")||{};return key?!(invalidElements[serial]&&invalidElements[serial][key]):!invalidElements[serial]}return!0}};return invalidator}),define("taoQtiItem/qtiCreator/model/mixin/editable",["lodash","jquery","core/encoder/entity","taoQtiItem/qtiItem/core/Element","taoQtiItem/qtiCreator/model/helper/event","taoQtiItem/qtiCreator/model/helper/invalidator"],function(_,$,entity,Element,event,invalidator){"use strict";const _removeSelf=function(element){let removed=!1;const related=element.getRootElement();if(related){const found=related.find(element.getSerial());if(found){const parent=found.parent;if(element.getResponseDeclaration){const response=element.getResponseDeclaration();response&&(invalidator.completelyValid(response),Element.unsetElement(response))}Element.isA(parent,"interaction")?("gapImg"===element.qtiClass?parent.removeGapImg(element):Element.isA(element,"choice")&&parent.removeChoice(element),removed=!0):"body"===found.location&&_.isFunction(parent.initContainer)?(_.isFunction(element.beforeRemove)&&element.beforeRemove(),parent.getBody().removeElement(element),removed=!0):Element.isA(parent,"_container")&&(_.isFunction(element.beforeRemove)&&element.beforeRemove(),parent.removeElement(element),removed=!0),removed&&(element.data("removed",!0),invalidator.completelyValid(element),event.deleted(element,parent))}}else throw new Error("no related item found");return removed},_removeElement=function(element,containerPropName,eltToBeRemoved){let targetSerial="",targetElt;return element[containerPropName]&&("string"==typeof eltToBeRemoved?(targetSerial=eltToBeRemoved,targetElt=Element.getElementBySerial(targetSerial)):eltToBeRemoved instanceof Element&&(targetSerial=eltToBeRemoved.getSerial(),targetElt=eltToBeRemoved),targetSerial&&(invalidator.completelyValid(targetElt),delete element[containerPropName][targetSerial],Element.unsetElement(targetSerial))),element},methods={init:function(serial,attributes){const attr={};"object"==typeof serial&&(attributes=serial,serial=""),_.isFunction(this.getDefaultAttributes)&&_.extend(attr,this.getDefaultAttributes()),_.extend(attr,attributes),this._super(serial,attr)},attr:function(key,value){const ret=this._super(key,value);return"undefined"!=typeof key&&"undefined"!=typeof value&&$(document).trigger("attributeChange.qti-widget",{element:this,key:key,value:entity.encode(value)}),_.isString(ret)?entity.decode(ret):ret},removeAttr:function(key){const ret=this._super(key);return $(document).trigger("attributeChange.qti-widget",{element:this,key:key,value:null}),ret},remove:function(){if(0===arguments.length)return _removeSelf(this);if(2===arguments.length)return _removeElement(this,arguments[0],arguments[1]);throw new Error("invalid number of argument given")}};return methods}),define("taoQtiItem/qtiCreator/model/qtiClasses",["lodash","taoQtiItem/qtiItem/core/qtiClasses"],function(_,qtiClasses){"use strict";return _.defaults({assessmentItem:"taoQtiItem/qtiCreator/model/Item",_container:"taoQtiItem/qtiCreator/model/Container",figure:"taoQtiItem/qtiCreator/model/Figure",img:"taoQtiItem/qtiCreator/model/Img",figcaption:"taoQtiItem/qtiCreator/model/Figcaption",math:"taoQtiItem/qtiCreator/model/Math",object:"taoQtiItem/qtiCreator/model/Object",table:"taoQtiItem/qtiCreator/model/Table",rubricBlock:"taoQtiItem/qtiCreator/model/RubricBlock",modalFeedback:"taoQtiItem/qtiCreator/model/feedbacks/ModalFeedback",choiceInteraction:"taoQtiItem/qtiCreator/model/interactions/ChoiceInteraction",orderInteraction:"taoQtiItem/qtiCreator/model/interactions/OrderInteraction",associateInteraction:"taoQtiItem/qtiCreator/model/interactions/AssociateInteraction",matchInteraction:"taoQtiItem/qtiCreator/model/interactions/MatchInteraction",inlineChoiceInteraction:"taoQtiItem/qtiCreator/model/interactions/InlineChoiceInteraction",simpleChoice:"taoQtiItem/qtiCreator/model/choices/SimpleChoice",simpleAssociableChoice:"taoQtiItem/qtiCreator/model/choices/SimpleAssociableChoice",inlineChoice:"taoQtiItem/qtiCreator/model/choices/InlineChoice",mediaInteraction:"taoQtiItem/qtiCreator/model/interactions/MediaInteraction",uploadInteraction:"taoQtiItem/qtiCreator/model/interactions/UploadInteraction",textEntryInteraction:"taoQtiItem/qtiCreator/model/interactions/TextEntryInteraction",sliderInteraction:"taoQtiItem/qtiCreator/model/interactions/SliderInteraction",extendedTextInteraction:"taoQtiItem/qtiCreator/model/interactions/ExtendedTextInteraction",hotspotInteraction:"taoQtiItem/qtiCreator/model/interactions/HotspotInteraction",selectPointInteraction:"taoQtiItem/qtiCreator/model/interactions/SelectPointInteraction",graphicInteraction:"taoQtiItem/qtiCreator/model/interactions/GraphicOrderInteraction",graphicAssociateInteraction:"taoQtiItem/qtiCreator/model/interactions/GraphicAssociateInteraction",graphicGapMatchInteraction:"taoQtiItem/qtiCreator/model/interactions/GraphicGapMatchInteraction",graphicOrderInteraction:"taoQtiItem/qtiCreator/model/interactions/GraphicOrderInteraction",hotspotChoice:"taoQtiItem/qtiCreator/model/choices/HotspotChoice",gapImg:"taoQtiItem/qtiCreator/model/choices/GapImg",associableHotspot:"taoQtiItem/qtiCreator/model/choices/AssociableHotspot",gapMatchInteraction:"taoQtiItem/qtiCreator/model/interactions/GapMatchInteraction",hottextInteraction:"taoQtiItem/qtiCreator/model/interactions/HottextInteraction",hottext:"taoQtiItem/qtiCreator/model/choices/Hottext",gapText:"taoQtiItem/qtiCreator/model/choices/GapText",gap:"taoQtiItem/qtiCreator/model/choices/Gap",responseDeclaration:"taoQtiItem/qtiCreator/model/variables/ResponseDeclaration",responseProcessing:"taoQtiItem/qtiCreator/model/ResponseProcessing",customInteraction:"taoQtiItem/qtiCreator/model/interactions/PortableCustomInteraction",endAttemptInteraction:"taoQtiItem/qtiCreator/model/interactions/EndAttemptInteraction",infoControl:"taoQtiItem/qtiCreator/model/PortableInfoControl",include:"taoQtiItem/qtiCreator/model/Include",printedVariable:"taoQtiItem/qtiCreator/model/PrintedVariable",_tooltip:"taoQtiItem/qtiCreator/model/Tooltip"},qtiClasses)}),define("taoQtiItem/qtiCreator/model/helper/container",["jquery","lodash","taoQtiItem/qtiCreator/model/qtiClasses"],function($,_,qtiClasses){"use strict";var methods={createElements:function(container,body,callback){var regex=/{{([a-z_]+)\.?([a-z_]*):new}}/ig,required={};body.replace(regex,function(original,qtiClass){if(qtiClasses[qtiClass])required[qtiClass]=qtiClasses[qtiClass];else throw new Error("missing required class : "+qtiClass)}),require(_.values(required),function(){var Qti=_.reduce([].slice.call(arguments),function(acc,qtiClassElt){return acc[qtiClassElt.prototype.qtiClass]=qtiClassElt,acc},{}),promises=[],$doc=$(document),newElts={},newBody=body.replace(regex,function(original,qtiClass,subClass){var elt=new Qti[qtiClass];return Qti[qtiClass]?(container.getRenderer()&&elt.setRenderer(container.getRenderer()),newElts[elt.getSerial()]=elt,subClass&&(elt.typeIdentifier=subClass),elt.placeholder()):original});container.setElements(newElts,newBody),_.forEach(newElts,function(elt){_.isFunction(elt.buildIdentifier)&&elt.buildIdentifier(),_.isFunction(elt.afterCreate)&&promises.push(elt.afterCreate())}),"function"==typeof callback&&Promise.all(promises).then(function(){_.forEach(newElts,function(elt){$doc.trigger("elementCreated.qti-widget",{parent:container.parent(),element:elt})}),callback.call(container,newElts)}).catch(function(err){container.getRenderer().getCreatorContext().trigger("error",err)})})}};return methods}),define("taoQtiItem/qtiCreator/model/mixin/editableContainer",["taoQtiItem/qtiCreator/model/helper/container"],function(containerHelper){"use strict";var methods={createElements:function(body,callback){var _this=this;containerHelper.createElements(_this.getBody(),body,function(newElts){callback.call(_this,newElts)})}};return methods}),define("taoQtiItem/qtiItem/core/IdentifiedElement",["taoQtiItem/qtiItem/core/Element","taoQtiItem/qtiItem/helper/util"],function(Element,util){"use strict";Element=Element&&Object.prototype.hasOwnProperty.call(Element,"default")?Element["default"]:Element,util=util&&Object.prototype.hasOwnProperty.call(util,"default")?util["default"]:util;var IdentifiedElement=Element.extend({buildIdentifier:function buildIdentifier(prefix,useSuffix){var item=this.getRootElement(),id=util.buildIdentifier(item,prefix||this.qtiClass,useSuffix);return id&&this.attr("identifier",id),this},id:function id(value){return value||this.attr("identifier")||this.buildIdentifier(this.qtiClass,!0),this.attr("identifier",value)}});return IdentifiedElement}),define("taoQtiItem/qtiItem/mixin/Mixin",[],function(){"use strict";var Mixin={augment:function(targetClass,methods,options){if("function"==typeof targetClass&&"object"==typeof methods)for(var methodName in methods)if(!Object.hasOwnProperty(targetClass.prototype,methodName))targetClass.prototype[methodName]=methods[methodName];else if(options&&options.append){var _parent=targetClass.prototype[methodName];targetClass.prototype[methodName]=function(){return methods[methodName].apply(this,arguments),_parent.apply(this,arguments)}}}};return Mixin}),define("taoQtiItem/qtiItem/core/Container",["jquery","lodash","taoQtiItem/qtiItem/core/Element","taoQtiItem/qtiItem/helper/rendererConfig"],function($,_,Element,rendererConfig){"use strict";$=$&&Object.prototype.hasOwnProperty.call($,"default")?$["default"]:$,_=_&&Object.prototype.hasOwnProperty.call(_,"default")?_["default"]:_,Element=Element&&Object.prototype.hasOwnProperty.call(Element,"default")?Element["default"]:Element,rendererConfig=rendererConfig&&Object.prototype.hasOwnProperty.call(rendererConfig,"default")?rendererConfig["default"]:rendererConfig;var Container=Element.extend({qtiClass:"_container",init:function(body){if(this._super(),body&&"string"!=typeof body)throw"the body of a container must be a string";this.bdy=body||"",this.elements={}},body:function(body){if("undefined"==typeof body)return this.bdy;if("string"==typeof body)this.bdy=body,$(document).trigger("containerBodyChange",{body:body,container:this,parent:this.parent()});else throw"body must be a string"},setElements:function(elements,body){var returnValue=!1;for(var i in elements){var elt=elements[i];if(elt instanceof Element)body=body||this.bdy,-1===body.indexOf(elt.placeholder())&&(body+=elt.placeholder()),elt.setRootElement(this.getRootElement()||null),this.elements[elt.getSerial()]=elt,$(document).trigger("containerElementAdded",{element:elt,container:this}),returnValue=!0;else throw returnValue=!1,"expected a qti element"}return this.body(body),returnValue},setElement:function(element,body){return this.setElements([element],body)},removeElement:function(element){var serial="";return"string"==typeof element?serial=element:element instanceof Element&&(serial=element.getSerial()),delete this.elements[serial],this.body(this.body().replace("{{"+serial+"}}","")),this},getElements:function(qtiClass){var elts={};if("string"==typeof qtiClass)for(var serial in this.elements)Element.isA(this.elements[serial],qtiClass)&&(elts[serial]=this.elements[serial]);else elts=_.clone(this.elements);return elts},getElement:function(serial){return this.elements[serial]?this.elements[serial]:null},getComposingElements:function(){var elements=this.getElements(),elts={};for(var serial in elements)elts[serial]=elements[serial],elts=_.extend(elts,elements[serial].getComposingElements());return elts},render:function(){var args=rendererConfig.getOptionsFromArguments(arguments),renderer=args.renderer||this.getRenderer(),elementsData=[],tpl=this.body();for(var serial in this.elements){var elt=this.elements[serial];if("function"==typeof elt.render)"_container"===elt.qtiClass?tpl=tpl.replace(elt.placeholder(),elt.render(renderer)):(tpl=tpl.replace(elt.placeholder(),serial).replace(new RegExp(`{${serial}`),`{${serial}`).replace(serial,"{{{"+serial+"}}}"),elementsData[serial]=elt.render(renderer));else throw"render() is not defined for the qti element: "+serial}if(renderer.isRenderer)return this._super({body:renderer.renderDirect(tpl,elementsData),contentModel:this.contentModel||"flow"},renderer,args.placeholder);throw"invalid qti renderer for qti container"},postRender:function(data,altClassName,renderer){renderer=renderer||this.getRenderer();var res=_(this.elements).filter(function(elt){return"function"==typeof elt.postRender}).map(function(elt){return elt.postRender(data,"",renderer)}).flatten(!0).value().concat(this._super(data,altClassName,renderer));return res},toArray:function(){var arr={serial:this.serial,body:this.bdy,elements:{}};for(var serial in this.elements)arr.elements[serial]=this.elements[serial].toArray();return arr},find:function(serial,parent){var found=null;return this.elements[serial]?found={parent:parent||this,element:this.elements[serial],location:"body"}:_.forEach(this.elements,function(elt){if(found=elt.find(serial),found)return!1}),found},isEmpty:function(){return!this.bdy}});return Container}),define("taoQtiItem/qtiItem/mixin/Container",["taoQtiItem/qtiItem/mixin/Mixin","taoQtiItem/qtiItem/core/Container"],function(Mixin,Container$1){"use strict";Mixin=Mixin&&Object.prototype.hasOwnProperty.call(Mixin,"default")?Mixin["default"]:Mixin,Container$1=Container$1&&Object.prototype.hasOwnProperty.call(Container$1,"default")?Container$1["default"]:Container$1;var methods={initContainer:function(body){this.bdy=new Container$1(body||""),this.bdy.setRootElement(this.getRootElement()||null),this.bdy.contentModel="blockStatic"},getBody:function(){return this.bdy},body:function(body){var ret=this.bdy.body(body);return body?this:ret},setElement:function(element,body){return this.bdy.setElement(element,body),this},removeElement:function(element){return this.bdy.removeElement(element)},getElements:function(qtiClass){return this.bdy.getElements(qtiClass)},getElement:function(serial){return this.bdy.getElement(serial)}},Container={augment:function(targetClass){Mixin.augment(targetClass,methods)},methods:methods};return Container}),define("taoQtiItem/qtiItem/mixin/ContainerItemBody",["taoQtiItem/qtiItem/mixin/Mixin","taoQtiItem/qtiItem/mixin/Container","lodash"],function(Mixin,Container,_){"use strict";Mixin=Mixin&&Object.prototype.hasOwnProperty.call(Mixin,"default")?Mixin["default"]:Mixin,Container=Container&&Object.prototype.hasOwnProperty.call(Container,"default")?Container["default"]:Container,_=_&&Object.prototype.hasOwnProperty.call(_,"default")?_["default"]:_;var methods={};_.extend(methods,Container.methods),_.extend(methods,{initContainer:function(body){Container.methods.initContainer.call(this,body),this.bdy.contentModel="itemBody"}});var ContainerItemBody={augment:function(targetClass){Mixin.augment(targetClass,methods)},methods:methods};return ContainerItemBody}),define("taoQtiItem/qtiItem/core/Item",["taoQtiItem/qtiItem/core/Element","taoQtiItem/qtiItem/core/IdentifiedElement","taoQtiItem/qtiItem/mixin/ContainerItemBody","lodash","jquery","taoQtiItem/qtiItem/helper/util"],function(Element,IdentifiedElement,Container,_,$,util){"use strict";Element=Element&&Object.prototype.hasOwnProperty.call(Element,"default")?Element["default"]:Element,IdentifiedElement=IdentifiedElement&&Object.prototype.hasOwnProperty.call(IdentifiedElement,"default")?IdentifiedElement["default"]:IdentifiedElement,Container=Container&&Object.prototype.hasOwnProperty.call(Container,"default")?Container["default"]:Container,_=_&&Object.prototype.hasOwnProperty.call(_,"default")?_["default"]:_,$=$&&Object.prototype.hasOwnProperty.call($,"default")?$["default"]:$,util=util&&Object.prototype.hasOwnProperty.call(util,"default")?util["default"]:util;var Item=IdentifiedElement.extend({qtiClass:"assessmentItem",init:function init(serial,attributes){this._super(serial,attributes),this.rootElement=this,this.stylesheets={},this.responses={},this.outcomes={},this.modalFeedbacks={},this.namespaces={},this.schemaLocations={},this.responseProcessing=null,this.apipAccessibility=null},getInteractions:function getInteractions(){var interactions=[],elts=this.getComposingElements();for(var serial in elts)Element.isA(elts[serial],"interaction")&&interactions.push(elts[serial]);return interactions},addResponseDeclaration:function addResponseDeclaration(response){if(Element.isA(response,"responseDeclaration"))response.setRootElement(this),this.responses[response.getSerial()]=response;else throw"is not a qti response declaration";return this},getResponseDeclaration:function getResponseDeclaration(identifier){for(var i in this.responses)if(this.responses[i].attr("identifier")===identifier)return this.responses[i];return null},addOutcomeDeclaration:function addOutcomeDeclaration(outcome){if(Element.isA(outcome,"outcomeDeclaration"))outcome.setRootElement(this),this.outcomes[outcome.getSerial()]=outcome;else throw"is not a qti outcome declaration";return this},getOutcomeDeclaration:function getOutcomeDeclaration(identifier){var found;return _.forEach(this.outcomes,function(outcome){if(outcome.id()===identifier)return found=outcome,!1}),found},getOutcomes:function getOutcomes(){return _.clone(this.outcomes)},removeOutcome:function removeOutcome(identifier){var outcome=this.getOutcomeDeclaration(identifier);outcome&&(this.outcomes=_.omit(this.outcomes,outcome.getSerial()))},addModalFeedback:function addModalFeedback(feedback){if(Element.isA(feedback,"modalFeedback"))feedback.setRootElement(this),this.modalFeedbacks[feedback.getSerial()]=feedback;else throw"is not a qti modal feedback";return this},getComposingElements:function getComposingElements(){var elts=this._super(),_this=this;return _.forEach(["responses","outcomes","modalFeedbacks","stylesheets"],function(elementCollection){for(var i in _this[elementCollection]){var elt=_this[elementCollection][i];elts[i]=elt,elts=_.extend(elts,elt.getComposingElements())}}),this.responseProcessing instanceof Element&&(elts[this.responseProcessing.getSerial()]=this.responseProcessing),elts},find:function find(serial){var found=this._super(serial);return found||(found=util.findInCollection(this,["responses","outcomes","modalFeedbacks","stylesheets"],serial)),found},getResponses:function getResponses(){return _.clone(this.responses)},getRootElement:function getRootElement(){return this},addNamespace:function addNamespace(name,uri){this.namespaces[name]=uri},setNamespaces:function setNamespaces(namespaces){this.namespaces=namespaces},getNamespaces:function getNamespaces(){return _.clone(this.namespaces)},setSchemaLocations:function setSchemaLocations(locations){this.schemaLocations=locations},getSchemaLocations:function getSchemaLocations(){return _.clone(this.schemaLocations)},setApipAccessibility:function setApipAccessibility(apip){this.apipAccessibility=apip||null},getApipAccessibility:function getApipAccessibility(){return this.apipAccessibility},addStylesheet:function addStylesheet(stylesheet){if(Element.isA(stylesheet,"stylesheet"))stylesheet.setRootElement(this),this.stylesheets[stylesheet.getSerial()]=stylesheet;else throw"is not a qti stylesheet declaration";return this},removeStyleSheet:function removeStyleSheet(stylesheet){return delete this.stylesheets[stylesheet.getSerial()],this},stylesheetExists:function stylesheetExists(href){var exists=!1;return _.forEach(this.stylesheets,function(stylesheet){if(stylesheet.attr("href")===href)return exists=!0,!1}),exists},setResponseProcessing:function setResponseProcessing(rp){if(Element.isA(rp,"responseProcessing"))rp.setRootElement(this),this.responseProcessing=rp;else throw"is not a response processing";return this},toArray:function toArray(){var arr=this._super(),toArray=function(elt){return elt.toArray()};return arr.namespaces=this.namespaces,arr.schemaLocations=this.schemaLocations,arr.outcomes=_.map(this.outcomes,toArray),arr.responses=_.map(this.responses,toArray),arr.stylesheets=_.map(this.stylesheets,toArray),arr.modalFeedbacks=_.map(this.modalFeedbacks,toArray),arr.responseProcessing=this.responseProcessing.toArray(),arr},isEmpty:function isEmpty(){var body=this.body().trim();if(body){var $dummy=$("
    ").html(body),$children=$dummy.children();return!!(1===$children.length&&$children.hasClass("empty"))}return!0},clear:function clear(){var renderer=this.getRenderer();renderer&&_.isFunction(renderer.destroy)&&renderer.destroy(this)}});return Container.augment(Item),Item}),define("taoQtiItem/qtiItem/core/Stylesheet",["taoQtiItem/qtiItem/core/Element","lodash","taoQtiItem/qtiItem/helper/rendererConfig"],function(Element,_,rendererConfig){"use strict";Element=Element&&Object.prototype.hasOwnProperty.call(Element,"default")?Element["default"]:Element,_=_&&Object.prototype.hasOwnProperty.call(_,"default")?_["default"]:_,rendererConfig=rendererConfig&&Object.prototype.hasOwnProperty.call(rendererConfig,"default")?rendererConfig["default"]:rendererConfig;var Stylesheet=Element.extend({qtiClass:"stylesheet",render:function(){var args=rendererConfig.getOptionsFromArguments(arguments),renderer=args.renderer||this.getRenderer(),defaultData={};return defaultData.attributes={href:renderer.resolveUrl(this.attr("href"))},this._super(_.merge(defaultData,args.data),args.placeholder,args.subclass,renderer)}});return Stylesheet}),define("taoQtiItem/qtiCreator/model/Stylesheet",["lodash","taoQtiItem/qtiCreator/model/mixin/editable","taoQtiItem/qtiItem/core/Stylesheet"],function(_,editable,Stylesheet){"use strict";var methods={};return _.extend(methods,editable),_.extend(methods,{getDefaultAttributes:function(){return{href:"css/tao-user-styles.css",title:"",type:"text/css",media:"all"}}}),Stylesheet.extend(methods)}),define("taoQtiItem/qtiItem/core/ResponseProcessing",["taoQtiItem/qtiItem/core/Element"],function(Element){"use strict";Element=Element&&Object.prototype.hasOwnProperty.call(Element,"default")?Element["default"]:Element;var ResponseProcessing=Element.extend({qtiClass:"responseProcessing",processingType:"",xml:"",toArray:function(){var arr=this._super();return arr.processingType=this.processingType,arr.xml=this.xml,arr}});return ResponseProcessing}),define("taoQtiItem/qtiItem/helper/interactionHelper",["lodash","taoQtiItem/qtiItem/core/Element"],function(_,Element){"use strict";var _Mathfloor=Math.floor;_=_&&Object.prototype.hasOwnProperty.call(_,"default")?_["default"]:_,Element=Element&&Object.prototype.hasOwnProperty.call(Element,"default")?Element["default"]:Element;var interactionHelper={convertChoices:function(choices,outputType){var ret=[],_this=this;return _.forEach(choices,function(c){Element.isA(c,"choice")?"serial"===outputType?ret.push(c.getSerial()):"identifier"===outputType?ret.push(c.id()):ret.push(c):_.isArray(c)&&ret.push(_this.convertChoices(c,outputType))}),ret},findChoices:function(interaction,choices,inputType){var ret=[],_this=this;return _.forEach(choices,function(c){var choice;_.isString(c)?"serial"===inputType?(choice=interaction.getChoice(c),choice&&ret.push(choice)):"identifier"===inputType?(choice=interaction.getChoiceByIdentifier(c),choice&&ret.push(choice)):ret.push(c):_.isArray(c)?ret.push(_this.findChoices(interaction,c,inputType)):ret.push(c)}),ret},shuffleChoices:function(choices){var r=[],f={},j=0;for(var i in choices)if(Element.isA(choices[i],"choice")){var choice=choices[i];choice.attr("fixed")&&(f[j]=choice),r.push(choice),j++}else throw"invalid element in array: is not a qti choice";for(var n=0;n!0).addList(required.map(module=>({module,category:"qti"}))).load().then(loaded=>{loaded.forEach(clazz=>{_isValidRenderer(clazz)&&(_renderers[clazz.qtiClass]=clazz)}),"function"==typeof callback&&callback.call(self,_renderers)}),this},this.unload=function unload(){return this.themeLoader&&themeLoader(options.themes).unload(),this},this.setShuffledChoices=function(interaction,choices,identificationType){Element.isA(interaction,"interaction")&&(this.shuffledChoices[interaction.getSerial()]=interactionHelper.findChoices(interaction,choices,identificationType).map(val=>val.serial))},this.getShuffledChoices=function(interaction,reshuffle,returnedType){let choices=[],serial,i;if(Element.isA(interaction,"interaction")){if(serial=interaction.getSerial(),this.shuffledChoices[serial]&&!reshuffle)Element.isA(interaction,"matchInteraction")?_.forEach(choices,function(choice,index){2>index&&_.forEach(this.shuffledChoices[serial][i],function(choiceSerial){choice.push(interaction.getChoice(choiceSerial))})}):_.forEach(this.shuffledChoices[serial],function(choiceSerial){choices.push(interaction.getChoice(choiceSerial))});else if(Element.isA(interaction,"matchInteraction"))for(this.shuffledChoices[serial]=[],i=0;2>i;i++)choices[i]=interactionHelper.shuffleChoices(interaction.getChoices(i)),this.shuffledChoices[serial][i]=choices[i].map(val=>val.serial);else choices=interactionHelper.shuffleChoices(interaction.getChoices()),this.shuffledChoices[serial]=choices.map(val=>val.serial);return"serial"===returnedType||"identifier"===returnedType?interactionHelper.convertChoices(choices,returnedType):_.clone(choices)}return[]},this.getRenderers=function(){return _renderers},this.getLocations=function(){return _locations},this.resolveUrl=function resolveUrl(url){return options.assetManager?"string"==typeof url&&0{const responseDeclaration=interaction.getResponseDeclaration(),template=responseHelper.getTemplateNameFromUri(responseDeclaration.template);return"NONE"!==template}),outcomesWithExternalScored=customOutcomes.filter(outcome=>externalScoredValues.includes(outcome.attr("externalScored"))),isResponsesEmpty=_.isEmpty(item.responses);(!scoreOutcome.attr("externalScored")&&isAllResponseProcessingRulesNone&&0===outcomesWithExternalScored.size()||isResponsesEmpty)&&(item.removeOutcome("MAXSCORE"),item.removeOutcome("SCORE")),isResponsesEmpty&&customOutcomes.forEach(outcome=>{item.removeOutcome(outcome.id())})}},getMatchMaxOrderedChoices(choiceCollection){return _(choiceCollection).map(function(choice){var matchMax=parseInt(choice.attr("matchMax"),10);return _.isNaN(matchMax)&&(matchMax=0),{matchMax:0===matchMax?1/0:matchMax,id:choice.id()}}).sortBy("matchMax").reverse().valueOf()},choiceInteractionBased(interaction,options){var responseDeclaration=interaction.getResponseDeclaration(),mapDefault=parseFloat(responseDeclaration.mappingAttributes.defaultValue||0),template=responseHelper.getTemplateNameFromUri(responseDeclaration.template),max,maxChoice,minChoice,scoreMaps,requiredChoiceCount,totalAnswerableResponse,sortedMapEntries,missingMapsCount;if(options=_.defaults(options||{},{maxChoices:0,minChoices:0}),maxChoice=parseInt(interaction.attr("maxChoices")||options.maxChoices,10),minChoice=0,maxChoice&&minChoice&&maxChoicemaxChoice||responseDeclaration.correctResponse.lengthscore&&0>=requiredChoiceCount&&(score=0),requiredChoiceCount--,gamp.add(acc,score)},0),responseDeclaration.mappingAttributes.upperBound&&(max=_Mathmin(max,parseFloat(responseDeclaration.mappingAttributes.upperBound||0)))}else"MAP_RESPONSE_POINT"===template?max=0:"NONE"===template&&(max=0);return max},orderInteractionBased(interaction){var minChoice=0,maxChoice=parseInt(interaction.attr("maxChoices")||0,10),responseDeclaration=interaction.getResponseDeclaration(),template=responseHelper.getTemplateNameFromUri(responseDeclaration.template),max;return maxChoice&&0&&0>maxChoice?0:("MATCH_CORRECT"===template?_.isArray(responseDeclaration.correctResponse)&&maxChoice&&responseDeclaration.correctResponse.length>maxChoice||0?max=0:responseDeclaration.correctResponse&&(!_.isArray(responseDeclaration.correctResponse)||responseDeclaration.correctResponse.length)?max=1:max=0:"MAP_RESPONSE"===template||"MAP_RESPONSE_POINT"===template?max=0:"NONE"===template&&(max=0),max)},associateInteractionBased(interaction,options){var responseDeclaration=interaction.getResponseDeclaration(),template=responseHelper.getTemplateNameFromUri(responseDeclaration.template),maxAssoc=parseInt(interaction.attr("maxAssociations")||0,10),minAssoc=0,mapDefault=parseFloat(responseDeclaration.mappingAttributes.defaultValue||0),max,requiredAssoc,totalAnswerableResponse,usedChoices,choicesIdentifiers,sortedMapEntries,i,allPossibleMapEntries,infiniteScoringPair;if(options=_.defaults(options||{},{possiblePairs:[],checkInfinitePair:!1}),maxAssoc&&minAssoc&&maxAssocmaxAssoc||minAssoc)?max=0:(max=1,choicesIdentifiers=[],_.forEach(responseDeclaration.correctResponse,function(pair){var choices;_.isString(pair)&&(choices=pair.trim().split(" "),_.isArray(choices)&&2===choices.length&&(choicesIdentifiers.push(choices[0].trim()),choicesIdentifiers.push(choices[1].trim())))}),_.forEach(_.countBy(choicesIdentifiers),function(count,identifier){var choice=interaction.getChoiceByIdentifier(identifier),matchMax;return choice?(matchMax=parseInt(choice.attr("matchMax"),10),matchMax&&matchMaxi;i++){if(choiceId=choices[i],!_usedChoices[choiceId]){if(choice=interaction.getChoiceByIdentifier(choiceId),!choice)return!1;_usedChoices[choiceId]={used:0,max:parseInt(choice.attr("matchMax"),10)}}if(_usedChoices[choiceId].max&&_usedChoices[choiceId].used===_usedChoices[choiceId].max)return!1;_usedChoices[choiceId].used++}return infiniteScoringPair=infiniteScoringPair||options.checkInfinitePair&&0v.score&&0>=requiredAssoc&&(score=0),requiredAssoc--,gamp.add(acc,score)},0),responseDeclaration.mappingAttributes.upperBound&&(max=_Mathmin(max,parseFloat(responseDeclaration.mappingAttributes.upperBound||0)))}else"MAP_RESPONSE_POINT"===template?max=0:"NONE"===template&&(max=0);return max},gapMatchInteractionBased(interaction){var responseDeclaration=interaction.getResponseDeclaration(),template=responseHelper.getTemplateNameFromUri(responseDeclaration.template),mapDefault=parseFloat(responseDeclaration.mappingAttributes.defaultValue||0),getMatchMaxOrderedChoices=function getMatchMaxOrderedChoices(choiceCollection){return _(choiceCollection).map(function(choice){return{matchMax:0===choice.attr("matchMax")?1/0:choice.attr("matchMax")||0,id:choice.id()}}).sortBy("matchMax").reverse().valueOf()},calculatePossiblePairs=function calculatePossiblePairs(gapMatchInteraction){var pairs=[],matchSet1=getMatchMaxOrderedChoices(gapMatchInteraction.getChoices()),matchSet2=getMatchMaxOrderedChoices(gapMatchInteraction.getGaps());return _.forEach(matchSet1,function(choice1){_.forEach(matchSet2,function(choice2){pairs.push([choice1.id,choice2.id])})}),pairs},max,skippableWrongResponse,totalAnswerableResponse,usedChoices,usedGaps,group1,group2,allPossibleMapEntries;if("MATCH_CORRECT"===template)responseDeclaration.correctResponse&&(!_.isArray(responseDeclaration.correctResponse)||responseDeclaration.correctResponse.length)?(max=1,group1=[],group2=[],_.forEach(responseDeclaration.correctResponse,function(pair){var choices;_.isString(pair)&&(choices=pair.trim().split(" "),_.isArray(choices)&&2===choices.length&&(group1.push(choices[0].trim()),group2.push(choices[1].trim())))}),_.forEach(_.countBy(group1),function(count,identifier){var choice=interaction.getChoiceByIdentifier(identifier),matchMax=parseInt(choice.attr("matchMax"),10);if(matchMax&&matchMaxlanguages.reduce((memo,lang)=>(memo[lang.code]=lang.label,memo),{}),useCKEFormatting=languages=>languages.map(lang=>`${lang.code}:${lang.label}:${lang.orientation}`),getList=()=>null===languagesRequest?languagesRequest=request(languagesUrl,null,null,headers):languagesRequest,isRTLbyLanguageCode=code=>getList().then(languages=>{const lang=languages.filter(lang=>lang.code===code);return lang[0]&&"rtl"===lang[0].orientation||!1});return{useLegacyFormatting,useCKEFormatting,getList,isRTLbyLanguageCode}}),define("taoQtiItem/qtiCreator/helper/itemIdentifier",[],function(){var _Mathfloor2=Math.floor;const itemIdentifier={uniqueNumericIdentifier(){const dateString=_Mathfloor2(Date.now()/1e5).toString().slice(0,7),randString=(_Mathfloor2(90*Math.random())+10).toString().slice(0,2);return dateString+randString},defaultIdentifier(uri,qtiIdentifier){if(!uri||!qtiIdentifier)throw new Error("Missing uri or qtiIdentifier");const pos=uri.lastIndexOf("#");return uri.substring(pos+1,pos+1+qtiIdentifier.maxQtiIdLength)}};return itemIdentifier}),define("taoQtiItem/qtiCreator/helper/itemLoader",["jquery","lodash","taoQtiItem/qtiItem/core/Loader","taoQtiItem/qtiCreator/model/Item","taoQtiItem/qtiCreator/model/qtiClasses","taoQtiItem/qtiItem/helper/itemScore","core/dataProvider/request","taoQtiItem/qtiCreator/widgets/helpers/qtiIdentifier","taoQtiItem/qtiCreator/helper/languages","taoQtiItem/qtiCreator/helper/itemIdentifier"],function($,_,Loader,Item,qtiClasses,itemScoreHelper,request,qtiIdentifier,languages,itemIdentifier){"use strict";const decodeHtml=function(str){const map={"&":"&","<":"<",">":">",""":"\"","'":"'"};return str.replace(/&|<|>|"|'/g,function(m){return map[m]})},qtiNamespace="http://www.imsglobal.org/xsd/imsqti_v2p2",qtiSchemaLocation={"http://www.imsglobal.org/xsd/imsqti_v2p2":"http://www.imsglobal.org/xsd/qti/qtiv2p2/imsqti_v2p2.xsd"},creatorLoader={loadItem:function loadItem(config,callback){if(config.uri){const langList=languages.getList(),itemRdf=request(config.itemDataUrl,{uri:config.uri}).catch(d=>d),containsOnlyIdentifier=data=>{const keys=Object.keys(data);return keys&&1===keys.length&&"identifier"===keys[0]};Promise.all([langList,itemRdf]).then(_ref3=>{let[languagesList,data]=_ref3;if(!containsOnlyIdentifier(data.itemData))for(const response in data.itemData.responses){const newObject={};for(const mapKey in data.itemData.responses[response].mapping)newObject[decodeHtml(mapKey)]=data.itemData.responses[response].mapping[mapKey];data.itemData.responses[response].mapping=newObject}if(!containsOnlyIdentifier(data.itemData)&&"assessmentItem"===data.itemData.qtiClass){const loader=new Loader().setClassesLocation(qtiClasses),itemData=data.itemData;loader.loadItemData(itemData,function(loadedItem){loadedItem.isEmpty()&&loadedItem.body("");const namespaces=loadedItem.getNamespaces();namespaces[""]=qtiNamespace,loadedItem.setNamespaces(namespaces),loadedItem.setSchemaLocations(qtiSchemaLocation),languagesList&&loadedItem.data("languagesList",languagesList);const{responseProcessing:{processingType}={}}=loadedItem;if(!config.perInteractionRp&&"templateDriven"===processingType){const{responses={},responseProcessing:{data,responseRules=[]}={}}=itemData,responseIdentifiers=[];_.forOwn(responses,_ref4=>{let{identifier}=_ref4;responseIdentifiers.push(identifier)});const itemScoreRP=itemScoreHelper(responseIdentifiers);responseRules.some(responseRule=>_.isEqual(responseRule,itemScoreRP))&&loadedItem.responseProcessing.setProcessingType("custom",data)}callback(loadedItem,this.getLoadedClasses())})}else{const newItem=new Item().id(data.itemData.identifier).attr("title",config.label);newItem.createResponseProcessing(),newItem.setNamespaces({"":qtiNamespace,xsi:"http://www.w3.org/2001/XMLSchema-instance",m:"http://www.w3.org/1998/Math/MathML"}),newItem.setSchemaLocations(qtiSchemaLocation),newItem.data("new",!0),languagesList&&newItem.data("languagesList",languagesList),callback(newItem)}})}}};return creatorLoader}),define("taoQtiItem/portableElementRegistry/assetManager/portableAssetStrategy",["taoQtiItem/portableElementRegistry/ciRegistry","taoQtiItem/portableElementRegistry/icRegistry"],function(ciRegistry,icRegistry){"use strict";function getBaseUrlByIdentifier(typeIdentifier){return ciRegistry.get(typeIdentifier)?ciRegistry.getBaseUrl(typeIdentifier):icRegistry.get(typeIdentifier)?icRegistry.getBaseUrl(typeIdentifier):typeIdentifier}return{name:"portableElementLocation",handle:function handlePortableElementLocation(url){if(url.file===url.path)return getBaseUrlByIdentifier(url.file);return url.source===url.relative?url.relative.replace(/^(\.\/)?([a-z_0-9]+)\/(.*)/i,function(fullmatch,$1,typeIdentifier,relPath){var runtimeLocation=getBaseUrlByIdentifier(typeIdentifier);return runtimeLocation?runtimeLocation+"/"+relPath:fullmatch}):void 0}}}),define("taoQtiItem/qtiCommonRenderer/renderers/config",["context","ui/themes","taoItems/assets/manager","taoItems/assets/strategies","module","taoQtiItem/portableElementRegistry/assetManager/portableAssetStrategy"],function(context,themes,assetManagerFactory,assetStrategies,module,portableAssetStrategy){"use strict";context=context&&Object.prototype.hasOwnProperty.call(context,"default")?context["default"]:context,themes=themes&&Object.prototype.hasOwnProperty.call(themes,"default")?themes["default"]:themes,assetManagerFactory=assetManagerFactory&&Object.prototype.hasOwnProperty.call(assetManagerFactory,"default")?assetManagerFactory["default"]:assetManagerFactory,assetStrategies=assetStrategies&&Object.prototype.hasOwnProperty.call(assetStrategies,"default")?assetStrategies["default"]:assetStrategies,module=module&&Object.prototype.hasOwnProperty.call(module,"default")?module["default"]:module,portableAssetStrategy=portableAssetStrategy&&Object.prototype.hasOwnProperty.call(portableAssetStrategy,"default")?portableAssetStrategy["default"]:portableAssetStrategy;var itemThemes=themes.get("items"),moduleConfig=module.config(),assetManager=assetManagerFactory([{name:"theme",handle:function handleTheme(url){if(itemThemes&&url.path&&(url.path===itemThemes.base||itemThemes.available&&itemThemes.available.map(val=>val.path).includes(url.path)))return context.root_url+url.toString()}},assetStrategies.taomedia,assetStrategies.external,assetStrategies.base64,assetStrategies.itemCssNoCache,assetStrategies.baseUrl,portableAssetStrategy],{baseUrl:""}),locations={assessmentItem:"taoQtiItem/qtiCommonRenderer/renderers/Item",_container:"taoQtiItem/qtiCommonRenderer/renderers/Container",_simpleFeedbackRule:!1,_tooltip:"taoQtiItem/qtiCommonRenderer/renderers/Tooltip",stylesheet:"taoQtiItem/qtiCommonRenderer/renderers/Stylesheet",outcomeDeclaration:!1,responseDeclaration:!1,responseProcessing:!1,figure:"taoQtiItem/qtiCommonRenderer/renderers/Figure",img:"taoQtiItem/qtiCommonRenderer/renderers/Img",figcaption:"taoQtiItem/qtiCommonRenderer/renderers/Figcaption",math:"taoQtiItem/qtiCommonRenderer/renderers/Math",object:"taoQtiItem/qtiCommonRenderer/renderers/Object",table:"taoQtiItem/qtiCommonRenderer/renderers/Table",printedVariable:"taoQtiItem/qtiCommonRenderer/renderers/PrintedVariable",rubricBlock:"taoQtiItem/qtiCommonRenderer/renderers/RubricBlock",modalFeedback:"taoQtiItem/qtiCommonRenderer/renderers/ModalFeedback",prompt:"taoQtiItem/qtiCommonRenderer/renderers/interactions/Prompt",choiceInteraction:"taoQtiItem/qtiCommonRenderer/renderers/interactions/ChoiceInteraction",extendedTextInteraction:"taoQtiItem/qtiCommonRenderer/renderers/interactions/ExtendedTextInteraction",orderInteraction:"taoQtiItem/qtiCommonRenderer/renderers/interactions/OrderInteraction",associateInteraction:"taoQtiItem/qtiCommonRenderer/renderers/interactions/AssociateInteraction",matchInteraction:"taoQtiItem/qtiCommonRenderer/renderers/interactions/MatchInteraction",textEntryInteraction:"taoQtiItem/qtiCommonRenderer/renderers/interactions/TextEntryInteraction",sliderInteraction:"taoQtiItem/qtiCommonRenderer/renderers/interactions/SliderInteraction",inlineChoiceInteraction:"taoQtiItem/qtiCommonRenderer/renderers/interactions/InlineChoiceInteraction","simpleChoice.choiceInteraction":"taoQtiItem/qtiCommonRenderer/renderers/choices/SimpleChoice.ChoiceInteraction","simpleChoice.orderInteraction":"taoQtiItem/qtiCommonRenderer/renderers/choices/SimpleChoice.OrderInteraction",hottext:"taoQtiItem/qtiCommonRenderer/renderers/choices/Hottext",gap:"taoQtiItem/qtiCommonRenderer/renderers/choices/Gap",gapText:"taoQtiItem/qtiCommonRenderer/renderers/choices/GapText","simpleAssociableChoice.matchInteraction":"taoQtiItem/qtiCommonRenderer/renderers/choices/SimpleAssociableChoice.MatchInteraction","simpleAssociableChoice.associateInteraction":"taoQtiItem/qtiCommonRenderer/renderers/choices/SimpleAssociableChoice.AssociateInteraction",inlineChoice:"taoQtiItem/qtiCommonRenderer/renderers/choices/InlineChoice",hottextInteraction:"taoQtiItem/qtiCommonRenderer/renderers/interactions/HottextInteraction",hotspotInteraction:"taoQtiItem/qtiCommonRenderer/renderers/interactions/HotspotInteraction",hotspotChoice:!1,gapMatchInteraction:"taoQtiItem/qtiCommonRenderer/renderers/interactions/GapMatchInteraction",selectPointInteraction:"taoQtiItem/qtiCommonRenderer/renderers/interactions/SelectPointInteraction",graphicOrderInteraction:"taoQtiItem/qtiCommonRenderer/renderers/interactions/GraphicOrderInteraction",mediaInteraction:"taoQtiItem/qtiCommonRenderer/renderers/interactions/MediaInteraction",uploadInteraction:"taoQtiItem/qtiCommonRenderer/renderers/interactions/UploadInteraction",graphicGapMatchInteraction:"taoQtiItem/qtiCommonRenderer/renderers/interactions/GraphicGapMatchInteraction",gapImg:"taoQtiItem/qtiCommonRenderer/renderers/choices/GapImg",graphicAssociateInteraction:"taoQtiItem/qtiCommonRenderer/renderers/interactions/GraphicAssociateInteraction",associableHotspot:!1,customInteraction:"taoQtiItem/qtiCommonRenderer/renderers/interactions/PortableCustomInteraction",infoControl:"taoQtiItem/qtiCommonRenderer/renderers/PortableInfoControl",include:"taoQtiItem/qtiCommonRenderer/renderers/Include",endAttemptInteraction:"taoQtiItem/qtiCommonRenderer/renderers/interactions/EndAttemptInteraction"},config={name:"commonRenderer",locations:locations,options:{assetManager:assetManager,themes:itemThemes,enableDragAndDrop:{associate:!!moduleConfig.associateDragAndDrop,gapMatch:!!moduleConfig.gapMatchDragAndDrop,graphicGapMatch:!!moduleConfig.graphicGapMatchDragAndDrop,order:!!moduleConfig.orderDragAndDrop},messages:moduleConfig.messages}};return config}),define("taoQtiItem/qtiCreator/renderers/config",["lodash","context","taoQtiItem/qtiCommonRenderer/renderers/config","taoItems/assets/manager","taoItems/assets/strategies"],function(_,context,commonRenderConfig,assetManagerFactory,assetStrategies){"use strict";var assetManager=assetManagerFactory([assetStrategies.taomedia,assetStrategies.external,assetStrategies.base64,assetStrategies.baseUrl],{baseUrl:""}),locations=_.defaults({_container:"taoQtiItem/qtiCreator/renderers/Container",_tooltip:"taoQtiItem/qtiCreator/renderers/Tooltip",assessmentItem:"taoQtiItem/qtiCreator/renderers/Item",rubricBlock:"taoQtiItem/qtiCreator/renderers/RubricBlock",figure:"taoQtiItem/qtiCreator/renderers/Figure",img:"taoQtiItem/qtiCreator/renderers/Img",figcaption:"taoQtiItem/qtiCreator/renderers/Figcaption",math:"taoQtiItem/qtiCreator/renderers/Math",object:"taoQtiItem/qtiCreator/renderers/Object",table:"taoQtiItem/qtiCreator/renderers/Table",modalFeedback:"taoQtiItem/qtiCreator/renderers/ModalFeedback",choiceInteraction:"taoQtiItem/qtiCreator/renderers/interactions/ChoiceInteraction",orderInteraction:"taoQtiItem/qtiCreator/renderers/interactions/OrderInteraction",matchInteraction:"taoQtiItem/qtiCreator/renderers/interactions/MatchInteraction",associateInteraction:"taoQtiItem/qtiCreator/renderers/interactions/AssociateInteraction",inlineChoiceInteraction:"taoQtiItem/qtiCreator/renderers/interactions/InlineChoiceInteraction",textEntryInteraction:"taoQtiItem/qtiCreator/renderers/interactions/TextEntryInteraction",hotspotInteraction:"taoQtiItem/qtiCreator/renderers/interactions/HotspotInteraction",selectPointInteraction:"taoQtiItem/qtiCreator/renderers/interactions/SelectPointInteraction",graphicOrderInteraction:"taoQtiItem/qtiCreator/renderers/interactions/GraphicOrderInteraction",graphicAssociateInteraction:"taoQtiItem/qtiCreator/renderers/interactions/GraphicAssociateInteraction",graphicGapMatchInteraction:"taoQtiItem/qtiCreator/renderers/interactions/GraphicGapMatchInteraction",mediaInteraction:"taoQtiItem/qtiCreator/renderers/interactions/MediaInteraction",uploadInteraction:"taoQtiItem/qtiCreator/renderers/interactions/UploadInteraction",sliderInteraction:"taoQtiItem/qtiCreator/renderers/interactions/SliderInteraction",extendedTextInteraction:"taoQtiItem/qtiCreator/renderers/interactions/ExtendedTextInteraction",inlineChoice:"taoQtiItem/qtiCreator/renderers/choices/InlineChoice","simpleChoice.choiceInteraction":"taoQtiItem/qtiCreator/renderers/choices/SimpleChoice.ChoiceInteraction","simpleChoice.orderInteraction":"taoQtiItem/qtiCreator/renderers/choices/SimpleChoice.OrderInteraction","simpleAssociableChoice.associateInteraction":"taoQtiItem/qtiCreator/renderers/choices/SimpleAssociableChoice.AssociateInteraction","simpleAssociableChoice.matchInteraction":"taoQtiItem/qtiCreator/renderers/choices/SimpleAssociableChoice.MatchInteraction",gapMatchInteraction:"taoQtiItem/qtiCreator/renderers/interactions/GapMatchInteraction",hottextInteraction:"taoQtiItem/qtiCreator/renderers/interactions/HottextInteraction",customInteraction:"taoQtiItem/qtiCreator/renderers/interactions/PortableCustomInteraction",endAttemptInteraction:"taoQtiItem/qtiCreator/renderers/interactions/EndAttemptInteraction",infoControl:"taoQtiItem/qtiCreator/renderers/PortableInfoControl",include:"taoQtiItem/qtiCreator/renderers/Include",gap:"taoQtiItem/qtiCreator/renderers/choices/Gap",gapText:"taoQtiItem/qtiCreator/renderers/choices/GapText",hottext:"taoQtiItem/qtiCreator/renderers/choices/Hottext",printedVariable:"taoQtiItem/qtiCreator/renderers/PrintedVariable"},commonRenderConfig.locations);return{name:"creatorRenderer",locations:locations,options:{assetManager:assetManager}}}),define("taoQtiItem/qtiCreator/renderers/Renderer",["taoQtiItem/qtiRunner/core/Renderer","taoQtiItem/qtiCreator/renderers/config"],function(Renderer,config){"use strict";return Renderer.build(config.locations,config.name,config.options)}),define("taoQtiItem/qtiCreator/helper/creatorRenderer",["jquery","lodash","taoQtiItem/qtiCreator/renderers/Renderer","taoItems/assets/manager","taoItems/assets/strategies","util/dom"],function($,_,Renderer,assetManagerFactory,assetStrategies,dom){"use strict";var _creatorRenderer=null,_configurableInteractions=["endAttempt"],_extractInteractionsConfig=function _extractInteractionsConfig(config){var ret={};return config&&config.properties&&_.forEach(_configurableInteractions,function(interactionName){config.properties[interactionName]&&(ret[interactionName]=config.properties[interactionName])}),ret},get=function(reset,config,areaBroker){var $bodyEltForm;return config=config||{},config.properties=config.properties||{},(!_creatorRenderer||reset)&&($bodyEltForm=_creatorRenderer?_creatorRenderer.getOption("bodyElementOptionForm"):null,(reset||!$bodyEltForm||!$bodyEltForm.length||!dom.contains($bodyEltForm))&&(_creatorRenderer=new Renderer({lang:"",uri:"",shuffleChoices:!1,itemOptionForm:$("#item-editor-item-property-bar .panel"),interactionOptionForm:$("#item-editor-interaction-property-bar .panel"),choiceOptionForm:$("#item-editor-choice-property-bar .panel"),responseOptionForm:$("#item-editor-response-property-bar .panel"),bodyElementOptionForm:areaBroker.getElementPropertyPanelArea(),textOptionForm:$("#item-editor-text-property-bar .panel"),modalFeedbackOptionForm:$("#item-editor-modal-feedback-property-bar .panel"),mediaManager:{appendContainer:"#mediaManager",browseUrl:config.properties.getFilesUrl,uploadUrl:config.properties.fileUploadUrl,deleteUrl:config.properties.fileDeleteUrl,downloadUrl:config.properties.fileDownloadUrl,fileExistsUrl:config.properties.fileExistsUrl,mediaSourcesUrl:config.properties.mediaSourcesUrl},interactions:_extractInteractionsConfig(config),qtiCreatorContext:config.qtiCreatorContext}),_creatorRenderer.getAssetManager().setData({baseUrl:config.properties.baseUrl||""}),_creatorRenderer.setAreaBroker(areaBroker),_.assign(_creatorRenderer,{getCreatorContext:function getCreatorContext(){return this.getOption("qtiCreatorContext")}}))),_creatorRenderer};return{get:get,setOption:function(name,value){return get().setOption(name,value)},setOptions:function(options){return get().setOptions(options)},load:function(qtiClasses,done){return get().load(function(){_.isFunction(done)&&done.apply(this,arguments)},qtiClasses)}}}),define("taoQtiItem/qtiCommonRenderer/renderers/Renderer",["taoQtiItem/qtiRunner/core/Renderer","taoQtiItem/qtiCommonRenderer/renderers/config"],function(Renderer$1,config){"use strict";Renderer$1=Renderer$1&&Object.prototype.hasOwnProperty.call(Renderer$1,"default")?Renderer$1["default"]:Renderer$1,config=config&&Object.prototype.hasOwnProperty.call(config,"default")?config["default"]:config;var Renderer=Renderer$1.build(config.locations,config.name,config.options);return Renderer}),define("taoQtiItem/qtiCommonRenderer/helpers/container",["lodash","jquery","taoQtiItem/qtiItem/core/Element"],function(_,$,Element){"use strict";_=_&&Object.prototype.hasOwnProperty.call(_,"default")?_["default"]:_,$=$&&Object.prototype.hasOwnProperty.call($,"default")?$["default"]:$,Element=Element&&Object.prototype.hasOwnProperty.call(Element,"default")?Element["default"]:Element;let _containers={},_$containerContext=$();const _getSelector=function(element){const serial=element.getSerial();let selector=`[data-serial=${serial}]`;return Element.isA(element,"choice")?selector=`.qti-choice${selector}`:Element.isA(element,"interaction")&&(selector=`.qti-interaction${selector}`),selector},containerHelper={setContext($scope){_$containerContext=$scope},getContext(){return _$containerContext},get(element,$scope){const serial=element.getSerial();return $scope instanceof $&&$scope.length?$scope.find(_getSelector(element)):_$containerContext instanceof $&&_$containerContext.length?_$containerContext.find(_getSelector(element)):(_containers[serial]&&_containers[serial].length||(_containers[serial]=$(_getSelector(element))),_containers[serial])},reset(element){element instanceof Element&&_containers[element.getSerial()]&&(_containers=_.omit(_containers,element.getSerial()))},clear(){_containers={},_$containerContext=$()},trigger(eventType,element,data){eventType&&(data&&!_.isArray(data)&&(data=[data]),this.get(element).trigger(eventType,data))},triggerResponseChangeEvent(interaction,extraData){this.trigger("responseChange",interaction,[{interaction:interaction,response:interaction.getResponse()},extraData])},targetBlank($container){$container.on("click","a",function(e){e.preventDefault();const href=$(this).attr("href");href&&href.match(/^http/i)&&window.open(href,"_blank")})}};return containerHelper}),define("taoQtiItem/qtiCreator/helper/commonRenderer",["lodash","taoQtiItem/qtiCommonRenderer/renderers/Renderer","taoQtiItem/qtiCommonRenderer/helpers/container"],function(_,Renderer,containerHelper){"use strict";var _$previousContext=null,commonRenderer={render:function(item,$container){return commonRenderer.setContext($container),_renderer.load(function(){$container.append(item.render(this)),item.postRender({},"",this)},item.getUsedClasses())},get:function(reset,config){return(!_renderer||reset)&&(_renderer=new Renderer({shuffleChoices:!0}),config&&_renderer.getAssetManager().setData({baseUrl:config.properties.baseUrl||""})),_renderer},getOption:function(name){return _renderer.getOption(name)},setOption:function(name,value){return _renderer.setOption(name,value)},setOptions:function(options){return _renderer.setOptions(options)},setContext:function($context){return _$previousContext=$context,containerHelper.setContext($context)},restoreContext:function(){containerHelper.setContext(_$previousContext),_$previousContext=null},load:function(qtiClasses,done){var renderer=_renderer||this.get();return renderer.load(function(){_.isFunction(done)&&done.apply(this,arguments)},qtiClasses)}},_renderer;return commonRenderer}),define("taoQtiItem/qtiItem/helper/simpleParser",["lodash","jquery","taoQtiItem/qtiItem/helper/util","taoQtiItem/qtiItem/core/Loader"],function(_,$,util,Loader){"use strict";function _getElementSelector(qtiClass,ns){return ns?ns+"\\:"+qtiClass+","+qtiClass:qtiClass}function getQtiClassFromXmlDom($node){let qtiClass=$node.prop("tagName").toLowerCase();return qtiClass=qtiClass.replace(/.*:/,""),_qtiClassNames[qtiClass]?_qtiClassNames[qtiClass]:qtiClass}function buildElement($elt){const qtiClass=getQtiClassFromXmlDom($elt),elt={qtiClass:qtiClass,serial:util.buildSerial(qtiClass+"_"),attributes:{}};return $.each($elt[0].attributes,function(){let attrName;this.specified&&(attrName=_qtiAttributesNames[this.name]||this.name,elt.attributes[attrName]=this.value)}),elt}function buildMath($elt,options){const elt=buildElement($elt);return elt.annotations={},$elt.find(_getElementSelector("annotation",options.ns.math)).each(function(){const $annotation=$(this),encoding=$annotation.attr("encoding");encoding&&(elt.annotations[encoding]=_.unescape($annotation.html())),$annotation.remove()}),elt.mathML=$elt.html(),elt.ns={name:"m",uri:"http://www.w3.org/1998/Math/MathML"},elt}function buildTooltip(targetHtml,contentId,contentHtml){const qtiClass="_tooltip";return{elements:{},qtiClass:"_tooltip",serial:util.buildSerial("_tooltip_"),attributes:{"aria-describedby":contentId},content:contentHtml,body:{elements:{},serial:util.buildSerial("container"),body:targetHtml}}}function parseTable($elt,elt,options){elt.body={body:"",elements:{}};const $parsedTable=parseContainer($elt,options);return elt.body.body=$parsedTable.body,elt.body.elements=$parsedTable.elements,elt}function parseFigure($elt,elt,options){elt.body={body:"",elements:{}};const $parsedFigure=parseContainer($elt,options);elt.body.body=$parsedFigure.body,elt.body.elements=$parsedFigure.elements;const $figcaption=$elt.find(_getElementSelector("figcaption",options.ns.figcaption));if($figcaption.length){const element=buildElement($figcaption);element.body={body:$figcaption.html(),elements:{}},elt.body.elements[element.serial]=element,$figcaption.replaceWith(_placeholder(element))}return elt.body.body=$elt.html(),elt}function parseContainer($container,options){const ret={serial:util.buildSerial("_container_"),body:"",elements:{}};return $container.find("table").each(function(){const $qtiElement=$(this);let element=buildElement($qtiElement);element=parseTable($qtiElement,element,options),ret.elements[element.serial]=element,$qtiElement.replaceWith(_placeholder(element))}),$container.find(_getElementSelector("figure",options.ns.figure)).each(function(){const $qtiElement=$(this);let element=buildElement($qtiElement);element=parseFigure($qtiElement,element,options),ret.elements[element.serial]=element,$qtiElement.replaceWith(_placeholder(element))}),$container.find(_getElementSelector("math",options.ns.math)).each(function(){const $qtiElement=$(this),element=buildMath($qtiElement,options);ret.elements[element.serial]=element,$qtiElement.replaceWith(_placeholder(element))}),$container.find(_getElementSelector("include",options.ns.include)).each(function(){const $qtiElement=$(this),element=buildElement($qtiElement);ret.elements[element.serial]=element,$qtiElement.replaceWith(_placeholder(element))}),$container.find("[data-role=\"tooltip-target\"]").each(function(){let $target=$(this),contentId=$target.attr("aria-describedBy"),element,$content,contentHtml;contentId&&($content=$container.find("#"+contentId),$content.length&&(contentHtml=$content.html(),element=buildTooltip($target.html(),contentId,contentHtml),ret.elements[element.serial]=element,$target.replaceWith(_placeholder(element)),$content.remove()))}),_.forEach(_parsableElements,function(qtiClass){$container.find(qtiClass).each(function(){const $qtiElement=$(this),element=buildElement($qtiElement);ret.elements[element.serial]=element,$qtiElement.replaceWith(_placeholder(element))})}),ret.body=$container.html(),ret}function _placeholder(element){return"{{"+element.serial+"}}"}_=_&&Object.prototype.hasOwnProperty.call(_,"default")?_["default"]:_,$=$&&Object.prototype.hasOwnProperty.call($,"default")?$["default"]:$,util=util&&Object.prototype.hasOwnProperty.call(util,"default")?util["default"]:util,Loader=Loader&&Object.prototype.hasOwnProperty.call(Loader,"default")?Loader["default"]:Loader;const _parsableElements=["img","object","printedVariable"],_qtiClassNames={rubricblock:"rubricBlock",printedvariable:"printedVariable"},_qtiAttributesNames={powerform:"powerForm",mappingindicator:"mappingIndicator"},_defaultOptions={ns:{math:"",include:"xi",table:"table",image:"img",object:"",figure:"qh5",figcaption:"qh5"},loaded:null,model:null};let parser;parser={parse:function(xmlStr,opts){const options=_.merge(_.clone(_defaultOptions),opts||{}),$container=$(xmlStr),element=buildElement($container),data=parseContainer($container,options);let loader;return _.isUndefined(data.body)||(element.body=data),_.isFunction(options.loaded)&&options.model&&(loader=new Loader().setClassesLocation(options.model),loader.loadAndBuildElement(element,options.loaded)),element}};var parser$1=parser;return parser$1}),define("taoQtiItem/qtiItem/helper/xincludeLoader",["jquery","lodash","taoQtiItem/qtiItem/helper/simpleParser","taoQtiItem/qtiItem/core/Loader"],function($,_,simpleParser,Loader){"use strict";function load(xinclude,baseUrl,callback){const href=xinclude.attr("href");if(href&&baseUrl){const fileUrl=`text!${baseUrl}${href}`;require.undef(fileUrl),require([fileUrl],function(stimulusXml){const $wrapper=$.parseXML(stimulusXml),$sampleXMLrootNode=$wrapper.children,$stimulus=$("").append($sampleXMLrootNode),mathNs="m",data=simpleParser.parse($stimulus,{ns:{math:mathNs}});new Loader().loadElement(xinclude,data,function(){if(_.isFunction(callback)){const loadedClasses=this.getLoadedClasses();loadedClasses.push("_container"),callback(xinclude,data,loadedClasses)}})},function(){callback(xinclude,!1,[])})}}$=$&&Object.prototype.hasOwnProperty.call($,"default")?$["default"]:$,_=_&&Object.prototype.hasOwnProperty.call(_,"default")?_["default"]:_,simpleParser=simpleParser&&Object.prototype.hasOwnProperty.call(simpleParser,"default")?simpleParser["default"]:simpleParser,Loader=Loader&&Object.prototype.hasOwnProperty.call(Loader,"default")?Loader["default"]:Loader;var xincludeLoader={load};return xincludeLoader}),define("taoQtiItem/qtiCreator/helper/xincludeRenderer",["module","context","lodash","taoQtiItem/qtiCreator/helper/commonRenderer","taoQtiItem/qtiItem/helper/xincludeLoader","core/moduleLoader"],function(module,context,_,commonRenderer,xincludeLoader,moduleLoader){"use strict";const moduleConfig=module.config();let xincludeHandlers=[];return moduleConfig.handlers&&moduleLoader({},_.isFunction).addList(moduleConfig.handlers).load(context.bundle).then(handlers=>xincludeHandlers=handlers),{render:function render(xincludeWidget,baseUrl,newHref){xincludeWidget.$container.attr("contenteditable",!1);const xinclude=xincludeWidget.element;newHref&&xinclude.attr("href",newHref),xincludeLoader.load(xinclude,baseUrl,function(xi,data,loadedClasses){if(data){const dataBody=data.body.body,hasClass=dataBody.match(/class="(?tao-\w+)?/);let className="";hasClass&&hasClass.groups&&hasClass.groups.className&&(className=hasClass.groups.className),commonRenderer.get().load(function(){_.forEach(xinclude.getComposingElements(),function(elt){elt.setRenderer(commonRenderer.get())}),xincludeWidget.refresh()},loadedClasses),xincludeHandlers.forEach(handler=>handler(xinclude.attr("href"),className,xi.serial))}else xinclude.removeAttr("href")})},getXincludeHandlers:function getXincludeHandlers(){return xincludeHandlers}}}),define("tpl!taoQtiItem/qtiCreator/tpl/toolbars/insertInteractionButton",["handlebars"],function(hb){return hb.template(function(Handlebars,depth0,helpers,partials,data){function program1(depth0,data){var buffer="",stack1,helper;return buffer+="\n data-sub-group=\"",(helper=helpers.subGroup)?stack1=helper.call(depth0,{hash:{},data:data}):(helper=depth0&&depth0.subGroup,stack1="function"===typeof helper?helper.call(depth0,{hash:{},data:data}):helper),buffer+=escapeExpression(stack1)+"\"\n",buffer}function program3(depth0,data){return"\n class=\"disabled\"\n title=\"element available in the final release\"\n"}function program5(depth0,data){var buffer="",stack1,helper;return buffer+="\n title=\"",(helper=helpers.title)?stack1=helper.call(depth0,{hash:{},data:data}):(helper=depth0&&depth0.title,stack1="function"===typeof helper?helper.call(depth0,{hash:{},data:data}):helper),buffer+=escapeExpression(stack1)+"\"\n",buffer}function program7(depth0,data){var buffer="",stack1,helper;return buffer+="\n \n ",buffer}function program9(depth0,data){var buffer="",stack1,helper;return buffer+="\n \n ",buffer}this.compilerInfo=[4,">= 1.0.0"],helpers=this.merge(helpers,Handlebars.helpers),data=data||{};var buffer="",functionType="function",escapeExpression=this.escapeExpression,self=this,stack1,helper;return buffer+="\n ",stack1=helpers["if"].call(depth0,depth0&&depth0.iconFont,{hash:{},inverse:self.program(9,program9,data),fn:self.program(7,program7,data),data:data}),(stack1||0===stack1)&&(buffer+=stack1),buffer+="\n\n
    ",(helper=helpers.short)?stack1=helper.call(depth0,{hash:{},data:data}):(helper=depth0&&depth0.short,stack1="function"===typeof helper?helper.call(depth0,{hash:{},data:data}):helper),buffer+=escapeExpression(stack1)+"
    \n",buffer})}),define("tpl!taoQtiItem/qtiCreator/tpl/toolbars/insertInteractionGroup",["handlebars"],function(hb){return hb.template(function(Handlebars,depth0,helpers,partials,data){this.compilerInfo=[4,">= 1.0.0"],helpers=this.merge(helpers,Handlebars.helpers),data=data||{};var buffer="",functionType="function",escapeExpression=this.escapeExpression,stack1,helper;return buffer+="
    \n

    ",(helper=helpers.label)?stack1=helper.call(depth0,{hash:{},data:data}):(helper=depth0&&depth0.label,stack1="function"===typeof helper?helper.call(depth0,{hash:{},data:data}):helper),buffer+=escapeExpression(stack1)+"

    \n
    \n
      \n
      \n
      ",buffer})}),define("tpl!taoQtiItem/qtiCreator/tpl/toolbars/tooltip",["handlebars"],function(hb){return hb.template(function(Handlebars,depth0,helpers,partials,data){this.compilerInfo=[4,">= 1.0.0"],helpers=this.merge(helpers,Handlebars.helpers),data=data||{};var buffer="",functionType="function",escapeExpression=this.escapeExpression,stack1,helper;return buffer+="
      \n \n
      \n ",(helper=helpers.message)?stack1=helper.call(depth0,{hash:{},data:data}):(helper=depth0&&depth0.message,stack1="function"===typeof helper?helper.call(depth0,{hash:{},data:data}):helper),buffer+=escapeExpression(stack1)+"\n
      \n
      ",buffer})}),define("taoQtiItem/qtiCreator/editor/interactionsToolbar",["jquery","lodash","i18n","ui/hider","tpl!taoQtiItem/qtiCreator/tpl/toolbars/insertInteractionButton","tpl!taoQtiItem/qtiCreator/tpl/toolbars/insertInteractionGroup","tpl!taoQtiItem/qtiCreator/tpl/toolbars/tooltip","ui/tooltip"],function($,_,__,hider,insertInteractionTpl,insertSectionTpl,tooltipTpl,tooltip){"use strict";function getGroupId(groupId){return groupId.replace(/\W+/g,"-").toLowerCase()}function getGroupSectionId(groupId){return"sidebar-left-section-"+getGroupId(groupId)}function addGroup($sidebar,groupId,groupLabel){const groupSectionId=getGroupSectionId(groupId),$section=$(insertSectionTpl({id:groupSectionId,label:groupLabel}));return $sidebar.append($section),$section}function create($sidebar,interactions){_.forEach(interactions,function(interactionAuthoringData){add($sidebar,interactionAuthoringData)}),buildSubGroups($sidebar),$sidebar.data("interaction-toolbar-ready",!0),$sidebar.trigger(_events.interactiontoolbarready)}function getGroup($sidebar,groupId){const groupSectionId=getGroupSectionId(groupId);return $sidebar.find("#"+groupSectionId)}function isReady($sidebar){return!!$sidebar.data("interaction-toolbar-ready")}function whenReady($sidebar){return new Promise(function(resolve){isReady($sidebar)?resolve():$sidebar.on(_events.interactiontoolbarready,function(){resolve()})})}function remove($sidebar,interactionClass){$sidebar.find("li[data-qti-class=\""+interactionClass+"\"]").remove()}function disable($sidebar,interactionClass){hider.hide($sidebar.find("li[data-qti-class=\""+interactionClass+"\"]"))}function enable($sidebar,interactionClass){hider.show($sidebar.find("li[data-qti-class=\""+interactionClass+"\"]"))}function exists($sidebar,interactionClass){return!!$sidebar.find("li[data-qti-class=\""+interactionClass+"\"]").length}function add($sidebar,interactionAuthoringData){if(exists($sidebar,interactionAuthoringData.qtiClass))throw"the interaction is already in the sidebar";const groupId=interactionAuthoringData.group,groupLabel=interactionAuthoringData.tags[0]||"",subGroupId=interactionAuthoringData.tags[1],tplData={qtiClass:interactionAuthoringData.qtiClass,disabled:!!interactionAuthoringData.disabled,title:interactionAuthoringData.description,iconFont:/^icon-/.test(interactionAuthoringData.icon),icon:interactionAuthoringData.icon,short:interactionAuthoringData.short,dev:!1};let $group=getGroup($sidebar,groupId);subGroupId&&_subgroups[subGroupId]&&(tplData.subGroup=subGroupId),$group.length||($group=addGroup($sidebar,groupId,groupLabel)),subGroupId&&_subgroups[subGroupId]&&(tplData.subGroup=subGroupId),$group.length||($group=addGroup($sidebar,groupId,groupLabel));let $interaction=$(insertInteractionTpl(tplData));return $group.find(".tool-list").append($interaction),$interaction}function buildSubGroups($sidebar){$sidebar.find("[data-sub-group]").each(function(){var $element=$(this),$section=$element.parents("section"),subGroup=$element.data("sub-group"),$subGroupPanel,$subGroupList,$cover;subGroup&&($subGroupPanel=$section.find(".sub-group."+subGroup),$subGroupList=$subGroupPanel.find(".tool-list"),!$subGroupPanel.length&&($subGroupPanel=$("
      ",{class:"panel clearfix sub-group "+subGroup}),$subGroupList=$("
        ",{class:"tool-list plain clearfix"}),$subGroupPanel.append($subGroupList),$section.append($subGroupPanel),$cover=$("
        ",{class:"sub-group-cover blocking"}),$subGroupPanel.append($cover),$subGroupPanel.data("cover",$cover)),$subGroupList.append($element))}),addInlineInteractionTooltip()}function addInlineInteractionTooltip(){var $inlineInteractionsPanel=$("#sidebar-left-section-inline-interactions .inline-interactions"),$tooltip=$(tooltipTpl({message:__("Inline interactions need to be inserted into a text block.")})),timer;$inlineInteractionsPanel.append($tooltip),tooltip.lookup($inlineInteractionsPanel),$tooltip.css({position:"absolute",zIndex:11,top:0,right:10}),$inlineInteractionsPanel.on("mouseenter",".sub-group-cover",function(){timer=setTimeout(function(){$tooltip.find("[data-tooltip]").data("$tooltip").show()},300)}).on("mouseleave",".sub-group-cover",function(){$tooltip.find("[data-tooltip]").data("$tooltip").hide(),clearTimeout(timer)})}var _customInteractionTag=__("Custom Interactions"),_subgroups={"inline-interactions":"Inline Interactions"},_events={interactiontoolbarready:"interactiontoolbarready.qti-widget"};return{create:create,add:add,exists:exists,addGroup:addGroup,getGroupId:getGroupId,getGroupSectionId:getGroupSectionId,getGroup:getGroup,isReady:isReady,whenReady:whenReady,remove:remove,disable:disable,enable:enable,getCustomInteractionTag:function(){return _customInteractionTag}}}),define("taoQtiItem/qtiCreator/helper/panel",["jquery","lodash","i18n","taoQtiItem/qtiItem/core/Element"],function($,_,__,Element){"use strict";var _getItemContainer=function(){return $("#item-editor-panel")},showPanel=function($panel,$fold){$panel.show(),openSections($panel.children("section")),$fold&&$fold.length&&closeSections($fold.children("section"))},initFormVisibilityListener=function(){$(document).off(".panel");var $itemContainer=_getItemContainer(),_staticElements={_tooltip:"Tooltip",figure:"Figure",img:"Image",object:"Media",rubricBlock:"Rubric Block",math:"Math",table:"Table",include:"Shared Stimulus",infoControl:"Student Tool"},$formInteractionPanel=$("#item-editor-interaction-property-bar"),$formChoicePanel=$("#item-editor-choice-property-bar"),$formResponsePanel=$("#item-editor-response-property-bar"),$formItemPanel=$("#item-editor-item-property-bar"),$formBodyElementPanel=$("#item-editor-body-element-property-bar"),$formTextBlockPanel=$("#item-editor-text-property-bar"),$formModalFeedbackPanel=$("#item-editor-modal-feedback-property-bar"),$formStylePanel=$("#item-style-editor-bar"),$appearanceToggler=$("#appearance-trigger"),$menuLabel=$appearanceToggler.find(".menu-label"),$itemIcon=$appearanceToggler.find(".icon-item"),$styleIcon=$appearanceToggler.find(".icon-style"),_toggleAppearanceEditor=function(active){active?($appearanceToggler.addClass("active"),$formStylePanel.show(),$formItemPanel.hide(),$itemContainer.trigger("styleedit"),showPanel($formStylePanel),$menuLabel.text($menuLabel.data("item")),$itemIcon.show(),$styleIcon.hide()):($appearanceToggler.removeClass("active"),$formStylePanel.hide(),showPanel($formItemPanel),$menuLabel.text($menuLabel.data("style")),$itemIcon.hide(),$styleIcon.show())};$appearanceToggler.on("click",function(){$appearanceToggler.hasClass("active")?_toggleAppearanceEditor(!1):_toggleAppearanceEditor(!0)}),_.delay(function(){showPanel($formItemPanel)},200),$(document).on("afterStateInit.qti-widget.panel",function(e,element,state){switch(state.name){case"active":_toggleAppearanceEditor(!1),Element.isA(element,"assessmentItem")||$formItemPanel.hide();var label=_staticElements[element.qtiClass];label?($formBodyElementPanel.find("h2").html(label+" "+__("Properties")),showPanel($formBodyElementPanel)):"_container"===element.qtiClass&&showPanel($formTextBlockPanel),"modalFeedback"===element.qtiClass&&(showPanel($formModalFeedbackPanel),$formResponsePanel.hide());break;case"question":showPanel($formInteractionPanel);break;case"answer":showPanel($formResponsePanel);break;case"choice":showPanel($formChoicePanel,$formInteractionPanel);break;case"sleep":_staticElements[element.qtiClass]?$formBodyElementPanel.hide():"_container"===element.qtiClass&&$formTextBlockPanel.hide(),Element.isA(element,"choice")||$itemContainer.find(".widget-box.edit-active").length||showPanel($formItemPanel)}}).on("afterStateExit.qti-widget.panel",function(e,element,state){switch(state.name){case"active":"modalFeedback"===element.qtiClass&&(showPanel($formResponsePanel),$formModalFeedbackPanel.hide());break;case"question":element.is("interaction")&&($formChoicePanel.hide(),$formInteractionPanel.hide());break;case"choice":$formChoicePanel.hide(),showPanel($formInteractionPanel);break;case"answer":$formResponsePanel.hide()}}).on("elementCreated.qti-widget.panel",function(e,data){"_container"===data.element.qtiClass&&enableSubGroup("inline-interactions")}).on("deleted.qti-widget.panel",function(e,data){"_container"===data.element.qtiClass&&toggleInlineInteractionGroup()})},toggleInlineInteractionGroup=function(){var $itemContainer=_getItemContainer();$itemContainer.find(".widget-textBlock").length?enableSubGroup("inline-interactions"):disableSubGroup("inline-interactions")},heading="h2",section="section",panel="hr, .panel",closed="closed",ns="accordion",initSidebarAccordion=function($sidebar){var $sections=$sidebar.find(section),$allPanels=$sidebar.children(panel).hide(),$allTriggers=$sidebar.find(heading);return!(0!==$allTriggers.length)||void($allTriggers.each(function(){var $heading=$(this),$section=$heading.parents(section),$panel=$section.children(panel),$closer=$("",{class:"icon-up"}),$opener=$("",{class:"icon-down"}),action=$panel.is(":visible")?"open":"close";($heading.append($closer).append($opener).addClass(closed),!$heading.hasClass("_accordion"))&&($heading.addClass("_accordion"),$panel.on("panelclose."+ns+" panelopen."+ns,function(e,args){var fn="panelclose"===e.type?"add":"remove";args.heading[fn+"Class"](closed)}),$panel.trigger("panel"+action+"."+ns,{heading:$heading}))}),$sections.each(function(){$(this).find(heading).on("click",function(e,args){var $heading=$(this),$panel=$heading.parents(section).children(panel),preserveOthers=!!(args&&args.preserveOthers),actions={close:"hide",open:"fadeIn"},forceState=!!(args&&args.forceState)&&args.forceState,action,classFn;forceState&&(classFn="open"===forceState?"addClass":"removeClass",$heading[classFn](closed)),action=$heading.hasClass(closed)?"open":"close",!1,$panel.trigger("panel"+action+"."+ns,{heading:$heading})[actions[action]]()})}))},_toggleSections=function(sections,preserveOthers,state){sections.each(function(){$(this).find(heading).trigger("click",{preserveOthers:preserveOthers,forceState:state})})},closeSections=function(sections,preserveOthers){_toggleSections(sections,!!preserveOthers,"close")},openSections=function(sections,preserveOthers){_toggleSections(sections,!!preserveOthers,"open")},_toggleSubGroup=function(subGroup,state){if(subGroup=$("."+subGroup),subGroup.length){var fn="disable"===state?"addClass":"removeClass";subGroup.data("cover")[fn]("blocking")}},enableSubGroup=function(subGroup){_toggleSubGroup(subGroup,"enable")},disableSubGroup=function(subGroup){_toggleSubGroup(subGroup,"disable")};return{initFormVisibilityListener:initFormVisibilityListener,showPanel:showPanel,toggleInlineInteractionGroup:toggleInlineInteractionGroup,initSidebarAccordion:initSidebarAccordion,openSections:openSections,closeSections:closeSections,enableSubGroup:enableSubGroup,disableSubGroup:disableSubGroup}}),define("taoQtiItem/qtiCreator/editor/interactionsPanel",["taoQtiItem/qtiCreator/editor/interactionsToolbar","taoQtiItem/qtiCreator/helper/panel","taoQtiItem/qtiCreator/helper/qtiElements","taoQtiItem/portableElementRegistry/ciRegistry","services/features"],function(interactionsToolbar,panel,qtiElements,ciRegistry,features){"use strict";return function setUpInteractionPanel($container){const interactions=qtiElements.getAvailableAuthoringElements(),liquidsInteractionAvailable=features.isVisible("taoQtiItem/creator/interaction/pci/liquidsInteraction"),liquidsInteractionId="liquidsInteraction";for(const typeId in ciRegistry.getAllVersions()){if(typeId===liquidsInteractionId&&!liquidsInteractionAvailable)continue;const data=ciRegistry.getAuthoringData(typeId,{enabledOnly:!0});data&&data.tags&&data.tags[0]===interactionsToolbar.getCustomInteractionTag()&&(interactions[data.qtiClass]=data)}interactionsToolbar.create($container,interactions),panel.initSidebarAccordion($container),panel.closeSections($container.find("section")),panel.openSections($container.find("#sidebar-left-section-common-interactions"),!1),panel.toggleInlineInteractionGroup()}}),define("tpl!taoQtiItem/qtiCreator/tpl/toolbars/cssToggler",["handlebars"],function(hb){return hb.template(function(Handlebars,depth0,helpers,partials,data){this.compilerInfo=[4,">= 1.0.0"],helpers=this.merge(helpers,Handlebars.helpers),data=data||{};var buffer="",functionType="function",escapeExpression=this.escapeExpression,stack1,helper;return buffer+="
      • \n \n ",(helper=helpers.label)?stack1=helper.call(depth0,{hash:{},data:data}):(helper=depth0&&depth0.label,stack1="function"===typeof helper?helper.call(depth0,{hash:{},data:data}):helper),buffer+=escapeExpression(stack1)+"\n \n \n \n
      • ",buffer})}),define("taoQtiItem/qtiCreator/editor/styleEditor/styleEditor",["jquery","lodash","i18n","util/urlParser","core/promise","tpl!taoQtiItem/qtiCreator/tpl/toolbars/cssToggler","jquery.fileDownload"],function($,_,__,UrlParser,Promise,cssTpl){"use strict";let itemConfig,globalConfig;const _getUri=function(action){return globalConfig[`${action}CssUrl`]},_basename=function(path){return path.substring(path.lastIndexOf("/")+1)};let style={};const $styleElem=function(){let styleElem=$("#item-editor-user-styles");return styleElem.length?styleElem.empty():(styleElem=$("