diff --git a/Src/WebController/Backend/wwwroot/css/app.2d028f29.css b/Src/WebController/Backend/wwwroot/css/app.790e81bc.css similarity index 80% rename from Src/WebController/Backend/wwwroot/css/app.2d028f29.css rename to Src/WebController/Backend/wwwroot/css/app.790e81bc.css index 22a3591..ddc33c3 100644 --- a/Src/WebController/Backend/wwwroot/css/app.2d028f29.css +++ b/Src/WebController/Backend/wwwroot/css/app.790e81bc.css @@ -1 +1 @@ -.c3route-list[data-v-7a6fc393]{margin-bottom:24px}.c3route-list .datatable tbody tr[data-v-7a6fc393]:hover{background:transparent;cursor:default}.c3route-list-more-btn[data-v-7a6fc393]{position:relative;cursor:pointer;float:right}.c3route-list-menu[data-v-7a6fc393]{display:none;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;position:absolute;right:0;top:10px;flex-direction:column;padding:0;background:#3d3d3d;-webkit-box-shadow:0 12px 24px rgba(0,0,0,.15);box-shadow:0 12px 24px rgba(0,0,0,.15);border-radius:2px;list-style:none;min-width:180px;z-index:9}.c3route-list-menu-item[data-v-7a6fc393]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:14px;line-height:16px;color:#fff;height:32px;padding:0 8px;border-radius:2px}.c3route-list-menu-item[data-v-7a6fc393]:hover{background-color:#4f4f4f;cursor:pointer}.c3route-list-menu-divider[data-v-7a6fc393]{height:0;width:100;border-bottom:1px solid #3d3d3d}.c3route-list-menu[data-v-7a6fc393]:hover,.c3route-list-more-btn:hover+.c3route-list-menu[data-v-7a6fc393]{display:-webkit-box;display:-ms-flexbox;display:flex}.c3InterfaceList[data-v-0686e7da],.c3InterfaceList[data-v-f4969ade]{margin-bottom:24px}.c3modal .flex-row.host-info{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.c3modal .flex-row.host-info .details{padding-left:16px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding:0 16px 0 0;-ms-flex-item-align:start;align-self:flex-start;min-width:300px}.c3modal .flex-row.host-info .details p{font-size:14px;line-height:20px;margin:8px 0 0 0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;max-width:300px}.c3modal .flex-row.host-info .details p span.details-title{text-align:left;min-width:40%}.c3modal .flex-row.host-info .details p span.details-value{text-align:end}.c3modal .flex-row.host-info .details p:last-of-type{margin-bottom:16px}tr:hover .hover-link[data-v-3748fed6]{color:#2297ff}.command-for[data-v-3748fed6]{text-transform:capitalize}.c3Stats[data-v-b5131632]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.c3Stats p[data-v-b5131632]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin:0;font-size:14px;line-height:16px;height:32px}.c3Stats p span[data-v-b5131632]{max-width:75%;overflow:hidden;text-overflow:ellipsis;display:block;white-space:nowrap}.c3InterfaceList[data-v-5ea1cc30],.c3Stats p[data-v-b5131632]:last-of-type{margin-bottom:24px}.c3input-wrapper[data-v-0d08badc]{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-height:32px;background-color:inherit;margin-bottom:16px}.c3input-wrapper .icon.random[data-v-0d08badc]{position:absolute;z-index:12;right:27px;top:3px}.c3input-wrapper .icon.help[data-v-0d08badc]{position:absolute;z-index:12;right:3px;top:3px}.c3input-wrapper .icon.help .help-text[data-v-0d08badc]{display:none}.c3input-wrapper .icon.help:hover .help-text[data-v-0d08badc]{right:0;top:24px;display:block;position:absolute;font-family:Roboto;font-size:12px;color:#bdbdbd;background-color:#222;border-radius:2px;width:-webkit-max-content;width:-moz-max-content;width:max-content;padding:4px 8px;max-width:400px;z-index:13}.c3input-wrapper span.error-message[data-v-0d08badc]{color:#ff492f;font-size:12px;line-height:12px;position:absolute;right:0;bottom:-13px}.c3input-label[data-v-0d08badc]{font-size:14px;color:#bdbdbd;background-color:inherit;left:.5rem;top:.6rem;position:absolute;padding-left:.5rem;padding-right:.5rem;-webkit-transition-property:font-size,top,color;transition-property:font-size,top,color;-webkit-transition-duration:.25s;transition-duration:.25s;-webkit-transition-delay:0s;transition-delay:0s}.c3input-label.dirty[data-v-0d08badc]{color:#f2f2f2;font-size:10px;left:.5rem;top:-.4rem}.c3input-label[disabled][data-v-0d08badc]{color:#828282}.c3input-input[data-v-0d08badc]{background-color:inherit;color:#fff;font-family:Roboto;font-size:14px;line-height:16px;display:block;border:1px solid #bdbdbd;border-radius:2px;height:32px;width:100%;padding-left:1rem;padding-right:1rem;position:relativesdf;outline:none}.c3input-input.dirty[data-v-0d08badc]{border:1px solid #fff;color:#f2f2f2}.c3input-input[aria-invalid=true][data-v-0d08badc]{border-color:#ff492f;color:#ff492f}.c3input-input[aria-invalid=true]+label[data-v-0d08badc]{color:#ff492f}.c3input-input[data-v-0d08badc]:active:not([disabled]),.c3input-input[data-v-0d08badc]:focus:not([disabled]){border-color:#1476ff}.c3input-input[data-v-0d08badc]:active:not([disabled]):invalid,.c3input-input[data-v-0d08badc]:focus:not([disabled]):invalid{border-color:#ff492f}.c3input-input:active:not([disabled]):invalid+label[data-v-0d08badc],.c3input-input:focus:not([disabled]):invalid+label[data-v-0d08badc]{color:#ff492f}.c3input-input:active:not([disabled])+label[data-v-0d08badc],.c3input-input:focus:not([disabled])+label[data-v-0d08badc]{color:#1476ff;font-size:10px;left:.5rem;top:-.4rem}.c3input-input[disabled][data-v-0d08badc]{border-color:#828282;color:#828282}.c3input-input[disabled]+label[data-v-0d08badc]{color:#828282}.c3input-input[data-v-0d08badc]:invalid{border-color:#ff492f}.c3select[data-v-893eea00]{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-height:32px;background-color:inherit;margin-bottom:16px}.c3select.disabled[data-v-893eea00]{color:#828282}.c3select.disabled .c3select-border[data-v-893eea00]{border:1px solid #828282}.c3select.disabled .c3select-legend[data-v-893eea00]{color:#828282}.c3select-close[data-v-893eea00]{display:block;position:fixed;background-color:transparent;width:100vw;height:100vh;margin:0;padding:0;top:0;left:0;z-index:12}.c3select-select[data-v-893eea00]{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-height:32px;background-color:inherit}.c3select-select[data-v-893eea00],.c3select-selected[data-v-893eea00]{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.c3select-selected[data-v-893eea00]{font-family:Roboto;font-style:normal;font-weight:400;font-size:inherit;line-height:16px;height:32px;width:100%;padding-left:.5rem;padding-right:1rem;outline:none}.c3select-border[data-v-893eea00]{border:1px solid #fff;border-radius:2px;padding-left:1rem}.c3select-legend[data-v-893eea00]{position:absolute;font-size:10px;line-height:12px;color:#fff;background-color:inherit;left:.5rem;top:-.4rem;padding-left:.5rem;padding-right:.5rem}.c3select .icon[data-v-893eea00]{position:absolute;right:4px;top:4px;cursor:pointer}.c3select-options[data-v-893eea00]{position:absolute;left:0;margin:0;padding:0;list-style:none;z-index:15;border:1px solid #828282;border-radius:0 0 2px 2px;width:100%;top:31px;max-height:250px;overflow-y:auto}.c3select-options .selected[data-v-893eea00]{color:#fff;font-weight:700}.c3select-options.c3select-direction-up[data-v-893eea00]{top:unset;bottom:0}.c3select-options .c3select-option[data-v-893eea00]{height:32px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:.5rem;padding-right:.5rem;cursor:pointer}.c3select-options .c3select-option[data-v-893eea00]:hover{background-color:#3d3d3d}.c3checkbox-wrapper[data-v-40202deb]{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.c3checkbox-wrapper .icon.help[data-v-40202deb]{position:absolute;z-index:12;right:3px;top:-5px}.c3checkbox-wrapper .icon.help .help-text[data-v-40202deb]{display:none}.c3checkbox-wrapper .icon.help:hover .help-text[data-v-40202deb]{right:0;top:24px;display:block;position:absolute;font-family:Roboto;font-size:12px;color:#bdbdbd;background-color:#222;border-radius:2px;width:-webkit-max-content;width:-moz-max-content;width:max-content;padding:4px 8px;max-width:400px;z-index:13}.c3checkbox-wrapper .icon.checkbox[data-v-40202deb]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:32px;position:relative;left:0;width:auto;background-position-x:left}.c3checkbox-wrapper .icon.checkbox[data-v-40202deb]:hover{background-position-x:left}.c3checkbox-wrapper input[type=checkbox][data-v-40202deb]{visibility:hidden}.c3textarea[data-v-7007b96d]{max-width:868px;padding:0;margin:0;position:relative}.c3textarea .icon.help[data-v-7007b96d]{position:absolute;z-index:12;right:3px;top:3px}.c3textarea .icon.help .help-text[data-v-7007b96d]{display:none}.c3textarea .icon.help:hover .help-text[data-v-7007b96d]{right:0;top:24px;display:block;position:absolute;font-family:Roboto;font-size:12px;color:#bdbdbd;background-color:#222;border-radius:2px;width:-webkit-max-content;width:-moz-max-content;width:max-content;padding:4px 8px;max-width:400px;z-index:13}.c3textarea-upload-button[data-v-7007b96d]{position:absolute;z-index:12;right:30px;top:3px}.c3textarea-upload-button .help-text[data-v-7007b96d]{display:none}.c3textarea-upload-button:hover .help-text[data-v-7007b96d]{right:0;top:24px;display:block;position:absolute;font-family:Roboto;font-size:12px;color:#bdbdbd;background-color:#222;border-radius:2px;width:-webkit-max-content;width:-moz-max-content;width:max-content;padding:4px 8px;max-width:400px;z-index:13}.c3textarea .textarea[data-v-7007b96d]{width:100%;height:100%;margin:0;padding:8px;color:#fff;background-color:#222;border:1px solid #bdbdbd;border-radius:2px;padding-top:30px}.c3textarea .textarea .c3textarea-input[data-v-7007b96d]{background-color:inherit;color:inherit;border:none;width:100%;height:100%;min-width:100%;min-height:100px;max-width:865px;max-height:300px}.c3textarea .textarea.focus[data-v-7007b96d]{border:1px solid #1476ff}.c3textarea .textarea.focus[data-v-7007b96d]:not([disabled]),.c3textarea .textarea[data-v-7007b96d]:active:not([disabled]){border-color:#1476ff}.c3textarea .textarea.focus[data-v-7007b96d]:not([disabled]):invalid,.c3textarea .textarea[data-v-7007b96d]:active:not([disabled]):invalid{border-color:#ff492f}.c3textarea .textarea.focus:not([disabled]):invalid+label[data-v-7007b96d],.c3textarea .textarea:active:not([disabled]):invalid+label[data-v-7007b96d]{color:#ff492f}.c3textarea .textarea.focus:not([disabled])+label[data-v-7007b96d],.c3textarea .textarea:active:not([disabled])+label[data-v-7007b96d]{color:#1476ff;font-size:10px;left:.5rem;top:-.4rem}.c3textarea-label[data-v-7007b96d]{font-size:14px;color:#bdbdbd;background-color:inherit;left:.4rem;top:.6rem;position:absolute;padding-left:.5rem;padding-right:.5rem;-webkit-transition-property:font-size,top,color;transition-property:font-size,top,color;-webkit-transition-duration:.25s;transition-duration:.25s;-webkit-transition-delay:0s;transition-delay:0s}.c3textarea-label.dirty[data-v-7007b96d]{color:#f2f2f2;font-size:10px;left:.5rem;top:-.4rem}.c3textarea-label.focus[data-v-7007b96d]{color:#1476ff;font-size:10px;left:.5rem;top:-.4rem}.c3textarea-label[disabled][data-v-7007b96d]{color:#828282}.c3textarea-legend[data-v-7007b96d]{margin-left:8px;font-size:12px;color:#bdbdbd}.c3textarea-legend.focus[data-v-7007b96d]{color:#1476ff}.c3form{margin-bottom:16px}.c3command-group{margin:16px 0}.c3modal-more-btn[data-v-33bc8b88]{position:relative;cursor:pointer;background-position-x:right!important;-ms-flex-item-align:end;align-self:flex-end;margin-bottom:8px;width:auto;padding-right:24px;line-height:24px;font-size:12px;color:#fff}.c3modal-menu[data-v-33bc8b88]{display:none;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;position:absolute;right:12px;top:64px;flex-direction:column;padding:0;background:#3d3d3d;-webkit-box-shadow:0 12px 24px rgba(0,0,0,.15);box-shadow:0 12px 24px rgba(0,0,0,.15);border-radius:2px;list-style:none;min-width:180px;z-index:9}.c3modal-menu-item[data-v-33bc8b88]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:14px;line-height:16px;color:#fff;height:32px;padding:0 8px;border-radius:2px}.c3modal-menu-item[data-v-33bc8b88]:hover{background-color:#4f4f4f;cursor:pointer}.c3modal-menu-divider[data-v-33bc8b88]{height:0;width:100;border-bottom:1px solid #3d3d3d}.c3modal-menu[data-v-33bc8b88]:hover,.c3modal-more-btn:hover+.c3modal-menu[data-v-33bc8b88],.donut-form[data-v-140c057e]{display:-webkit-box;display:-ms-flexbox;display:flex}.donut-form[data-v-140c057e]{-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.donut-form .line[data-v-140c057e],.donut-form h1[data-v-140c057e]{width:100%}.donut-form .half-line[data-v-140c057e]{max-width:48%;width:48%}.embeded-modal{margin-bottom:16px}.embeded-modal .c3modal-details{-webkit-box-shadow:none;box-shadow:none;padding:0}.c3modal{display:block;position:fixed;background-color:rgba(0,0,0,.5);width:100vw;height:100vh;margin:0;padding:0;top:0;left:0;z-index:11}.c3modal .actions{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-ms-flex-item-align:self-start;align-self:self-start;-webkit-box-align:self-end;-ms-flex-align:self-end;align-items:self-end;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.c3modal .actions .c3btn{-ms-flex-item-align:end;align-self:flex-end}.c3modal-holder{margin:15vh auto;width:900px;max-width:calc(100vw - 3rem);max-height:70vh;overflow:hidden;overflow-y:auto;background:#282828}.c3modal-body,.c3modal-holder{position:relative;display:block}.c3modal-body{margin:0;padding:0;width:100%;height:100%;background-color:#282828}.c3modal-body h1{font-family:Roboto Mono;font-weight:500;font-size:18px;line-height:25px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;letter-spacing:-.05em;color:#bdbdbd;margin:0 0 8px;height:32px}.c3modal-body h1 .details{min-width:300px}.c3modal-body h1 .details p{font-size:14px;line-height:20px;padding:0;margin:0 0 8px 0;color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.c3modal-body h1 .details p:last-of-type{margin-bottom:16px}.c3modal-close{position:absolute;top:22px;right:12px;cursor:pointer;background-color:transparent}.c3modal span.c3modal-back.c3modal-back{display:-webkit-box;display:-ms-flexbox;display:flex;position:absolute;top:22px;right:52px;cursor:pointer;text-transform:uppercase;font-size:12px;line-height:17px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:24px;background-position-x:left;width:auto;background-color:transparent}.c3modal span.c3modal-back.c3modal-back:hover{background-position-x:left}.c3modal-header{background:#222;border-radius:2px 2px 2px 0;padding:16px;margin-bottom:8px}.c3modal-header.is-return{background:linear-gradient(180deg,#ab61f6 4px,#222 0)}.c3modal-header.has-error{background:linear-gradient(180deg,#bf0001 4px,#222 0)}.c3modal-header .message-with-icon{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:left;-ms-flex-pack:left;justify-content:left;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.c3modal-header .message-with-icon span{margin-right:8px}.c3modal-details{padding-top:24px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.5);box-shadow:0 1px 2px rgba(0,0,0,.5);border-radius:2px;padding:16px;padding-bottom:24px}.c3modal-details table:not(:last-of-type){margin-bottom:2rem}.c3modal-body .form-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.c3modal-body .form-row .form-element:not(:last-of-type){margin-right:8px}.c3modal-body .form-row .form-element:not(:first-of-type){margin-left:8px}.c3modal-actions.c3modal-actions{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;padding:0;margin:24px 0 0 0}.c3modal-actions.c3modal-actions .c3btn{margin-left:16px}.c3modal.options .c3modal-back.c3modal-back{display:none}.c3modal.options h1{margin-bottom:16px}.c3modal-title-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.c3modal-title{font-family:Roboto Mono;font-weight:500;font-size:18px;line-height:25px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;letter-spacing:-.05em;margin:0;color:#bdbdbd}.c3modal-config-link{font-family:Roboto;color:#2297ff;font-size:12px;line-height:120%;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-item-align:end;align-self:flex-end;text-align:right;margin:0 0 14px;cursor:pointer}.c3checkbox-row[data-v-edfe580a],.c3checkbox-wrapper[data-v-edfe580a]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.c3checkbox-wrapper[data-v-edfe580a]{position:relative;height:32px;width:100%;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.c3checkbox-wrapper .icon.help[data-v-edfe580a]{position:relative}.c3checkbox-wrapper .icon.help .help-text[data-v-edfe580a]{display:none}.c3checkbox-wrapper .icon.help:hover .help-text[data-v-edfe580a]{right:0;top:24px;display:block;position:absolute;font-family:Roboto;font-size:12px;color:#bdbdbd;background-color:#222;border-radius:2px;width:-webkit-max-content;width:-moz-max-content;width:max-content;padding:4px 8px;max-width:400px;z-index:13}.c3toggle[data-v-edfe580a]{display:inline-block;position:relative;margin:0}.c3toggle-input[data-v-edfe580a]{width:36px;height:20px;opacity:0;z-index:0}.c3toggle-label[data-v-edfe580a]{display:block;padding:0 0 0 44px;cursor:pointer}.c3toggle-label[data-v-edfe580a]:before{content:"";position:absolute;top:5px;left:0;width:37px;height:14px;background-color:#bdbdbd;border:1px solid #828282;border-radius:14px;z-index:1;-webkit-transition:background-color .28s cubic-bezier(.4,0,.2,1);transition:background-color .28s cubic-bezier(.4,0,.2,1)}.c3toggle-label[data-v-edfe580a]:after{content:"";position:absolute;top:3px;left:0;width:20px;height:20px;background-color:#828282;border-radius:14px;-webkit-box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);z-index:2;-webkit-transition:all .28s cubic-bezier(.4,0,.2,1);transition:all .28s cubic-bezier(.4,0,.2,1);-webkit-transition-property:left,background-color;transition-property:left,background-color}.c3toggle-input:checked+.c3toggle-label[data-v-edfe580a]:before{background-color:#90caff;border:1px solid #1476ff}.c3toggle-input:checked+.c3toggle-label[data-v-edfe580a]:after{left:20px;background-color:#2297ff}.c3toggle.disabled .c3toggle-label[data-v-edfe580a]:before{background-color:#4f4f4f;border:1px solid #828282}.c3toggle.disabled .c3toggle-label[data-v-edfe580a]:after{background-color:#828282}.c3toggle.disabled .c3toggle-input:checked+.c3toggle-label[data-v-edfe580a]:before{background-color:#5b8e7c;border:1px solid #1b6c51}.c3toggle.disabled .c3toggle-input:checked+.c3toggle-label[data-v-edfe580a]:after{background-color:#284167}.c3canvas{position:relative;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-negative:1;flex-shrink:1;margin:0 auto 0 auto;padding:0;border:.75px solid #2297ff;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.5);box-shadow:0 1px 2px rgba(0,0,0,.5);border-radius:2px;max-width:1200px;height:600px;background-color:#111}.c3canvas,.c3canvas .progress-bar{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%}.c3canvas .progress-bar{position:absolute;left:0;bottom:0;height:10px;background:transparent}.c3canvas .progress-bar .progress-bar-status{position:relative;background-color:#2297ff;width:0;height:100%}.c3canvas-toggle-interfaces.c3canvas-toggle-interfaces,.c3canvas-toggle-layout.c3canvas-toggle-layout{position:relative;cursor:pointer}.c3canvas-toggle-layout.c3canvas-toggle-layout{margin-bottom:.5rem}.c3canvas-toggle-interfaces.c3canvas-toggle-interfaces{margin-top:.5rem}.c3canvas-fs-btn{right:50px}.c3canvas-fs-btn,.c3canvas-more-btn{position:absolute;cursor:pointer;top:23px}.c3canvas-more-btn{right:21px}.c3canvas-menu{display:none;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;position:absolute;right:21px;top:33px;flex-direction:column;padding:0;background:#282828;-webkit-box-shadow:0 12px 24px rgba(0,0,0,.15);box-shadow:0 12px 24px rgba(0,0,0,.15);border-radius:2px;list-style:none;min-width:180px}.c3canvas-menu-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:14px;line-height:16px;color:#fff;height:32px;padding:0 8px}.c3canvas-menu-item:hover{background-color:#222;cursor:pointer}.c3canvas-menu-divider{height:0;width:100;border-bottom:1px solid #3d3d3d}.c3canvas-menu:hover,.c3canvas-more-btn:hover+.c3canvas-menu{display:-webkit-box;display:-ms-flexbox;display:flex}.c3canvas #c3canvas{width:inherit;height:inherit;padding:2px;background-color:transparent}.c3canvas #c3canvas div.vis-network div.vis-navigation div.vis-button:active,.c3canvas #c3canvas div.vis-network div.vis-navigation div.vis-button:hover{-webkit-box-shadow:none;box-shadow:none}.c3canvas-fs{position:fixed;top:16px;left:16px;max-width:100vw;width:calc(100vw - 32px);height:calc(100vh - 32px);border:.75px solid #2297ff;z-index:9}.c3canvas-fs .c3canvas-fs-btn,.c3canvas-fs .c3canvas-menu-btn{z-index:10}#c3canvas div.vis-network{border:none;outline:none}#c3canvas div.vis-network div.vis-navigation div.vis-button{width:34px;height:34px;border-radius:17px;position:absolute;display:inline-block;background-position:2px 2px;background-repeat:no-repeat;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#c3canvas div.vis-network div.vis-navigation div.vis-button:active,#c3canvas div.vis-network div.vis-navigation div.vis-button:hover{-webkit-box-shadow:none;box-shadow:none}#c3canvas div.vis-network div.vis-navigation div.vis-button.vis-up{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M12 8l-6 6 1.4 1.4 4.6-4.6 4.6 4.6L18 14l-6-6z' fill='%23fff'/%3E%3C/svg%3E");top:19px;left:70px}#c3canvas div.vis-network div.vis-navigation div.vis-button.vis-down{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M12 16l6-6-1.4-1.4-4.6 4.6-4.6-4.6L6 10l6 6z' fill='%23fff'/%3E%3C/svg%3E");top:70px;left:70px}#c3canvas div.vis-network div.vis-navigation div.vis-button.vis-left{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M15.4 7.4L14 6l-6 6 6 6 1.4-1.4-4.6-4.6 4.6-4.6z' fill='%23fff'/%3E%3C/svg%3E");top:70px;left:19px}#c3canvas div.vis-network div.vis-navigation div.vis-button.vis-right{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M8.6 7.4L10 6l6 6-6 6-1.4-1.4 4.6-4.6-4.6-4.6z' fill='%23fff'/%3E%3C/svg%3E");top:70px;left:115px}#c3canvas div.vis-network div.vis-navigation div.vis-button.vis-zoomIn{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M12 19a7 7 0 100-14 7 7 0 000 14zm0 2a9 9 0 100-18 9 9 0 000 18z' fill='%23fff'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M17.4 12.6v-1.2h-4.8V6.6h-1.2v4.8H6.6v1.2h4.8v4.8h1.2v-4.8h4.8z' fill='%23fff'/%3E%3C/svg%3E");top:19px;left:19px}#c3canvas div.vis-network div.vis-navigation div.vis-button.vis-zoomOut{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M12 19a7 7 0 100-14 7 7 0 000 14zm0 2a9 9 0 100-18 9 9 0 000 18z' fill='%23fff'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M17.4 12.6v-1.2H6.6v1.2h10.8z' fill='%23fff'/%3E%3C/svg%3E");top:19px;left:115px}#c3canvas div.vis-network div.vis-navigation div.vis-button.vis-zoomExtends{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M17 16l-4-4V8.82C14.16 8.4 15 7.3 15 6c0-1.66-1.34-3-3-3S9 4.34 9 6c0 1.3.84 2.4 2 2.82V12l-4 4H3v5h5v-3.05l4-4.2 4 4.2V21h5v-5h-4z' fill='%23fff'/%3E%3C/svg%3E");top:19px;right:70px}.c3footer[data-v-62086585]{font-family:Roboto Mono;font-size:12px;line-height:10px;min-height:48px;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:center;letter-spacing:.2em;text-transform:uppercase;color:#828282;margin-top:auto}.c3footer[data-v-62086585],.c3navbar[data-v-5295cdf8]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.c3navbar[data-v-5295cdf8]{background-color:#222;margin:0;padding:16px;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.c3navbar-logo[data-v-5295cdf8]{width:auto;height:43px}.c3navbar-logo[data-v-5295cdf8]:not(:first-of-type){padding-left:4px;border-left:2px solid #fff}.c3navbar-left[data-v-5295cdf8]{line-height:43px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.c3navbar-left--title[data-v-5295cdf8]{font-size:36px;line-height:30px}.c3navbar-left--secondary[data-v-5295cdf8],.c3navbar-left--title[data-v-5295cdf8]{padding:0;margin:0;font-family:Roboto Mono;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:right;letter-spacing:-.05em}.c3navbar-left--secondary[data-v-5295cdf8]{font-size:18px;line-height:15px;text-transform:uppercase}.c3InterfaceList[data-v-579275ba]{margin-bottom:24px}.c3tabfooter[data-v-2eac248e]{display:-webkit-box;display:-ms-flexbox;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;height:40px;font-size:12px;line-height:14px;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#fff;margin-top:-16px}.c3tabfooter-info[data-v-2eac248e]{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.c3tabfooter-action[data-v-2eac248e],.c3tabfooter-info[data-v-2eac248e]{display:-webkit-box;display:-ms-flexbox;display:flex;height:32px;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.c3tabfooter-action[data-v-2eac248e]{-webkit-box-flex:2;-ms-flex-positive:2;flex-grow:2}.c3tabfooter-perpage[data-v-2eac248e]{background-color:transparent;color:#fff;border:transparent;padding-left:.5rem;outline:none;border:none;width:60px}.c3tabfooter-perpage option[data-v-2eac248e]{background-color:#282828}.c3tabfooter-perpage option[data-v-2eac248e]:checked{background-color:#222;color:#2297ff}.c3tabfooter-paginator[data-v-2eac248e]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:3;-ms-flex-positive:3;flex-grow:3;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.c3tabfooter-controll[data-v-2eac248e]{font-family:Roboto Mono;font-weight:500;cursor:pointer}.c3CommandList[data-v-39bf6527]{margin-bottom:24px}.command-for[data-v-39bf6527]{text-transform:capitalize}.c3CommandList[data-v-f8188e22]{margin-bottom:24px}.command-for[data-v-f8188e22]{text-transform:capitalize}.c3controll{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:1;flex-shrink:1;margin:30px auto 30px auto;padding:24px;background:#282828;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.5);box-shadow:0 1px 2px rgba(0,0,0,.5);border-radius:2px;width:100%;max-width:1200px;position:relative}.c3controll-help{position:absolute;top:22px;right:12px}.c3controll-help:hover:after{display:block;position:absolute;font-family:Roboto;font-size:12px;color:#bdbdbd;background-color:#222;border-radius:2px;width:-webkit-max-content;width:-moz-max-content;width:max-content;padding:4px 8px;top:30px;right:0;max-width:400px;z-index:9;content:"For full details click on the items in the table below."}.c3controll-select-gateway{margin-bottom:1rem}.c3controll-tabs{list-style-type:none;margin:0;padding:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;height:24px;margin-bottom:1rem}.c3controll-tabs li{font-family:Roboto;font-weight:500;padding-left:1rem;padding-right:1rem}.c3controll-tabs li.active{color:#2297ff;border-bottom:1px solid #2297ff}.c3controll-tabs li:hover{cursor:pointer}.c3tab{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.c3tab,.c3tab-filters{display:-webkit-box;display:-ms-flexbox;display:flex}.c3tab-filters .c3select{max-width:250px}.c3tab-filters .c3select:not(:first-of-type){margin-left:16px}.c3tab-info-dot{width:8px;height:8px;display:inline-block;border-radius:50%;margin:0 .25rem}.c3tab-info-dot.is-complete{background-color:#828282}.c3tab-info-dot.not-complete{background-color:#2297ff}.c3tab-info-dot.is-return{background-color:#ab61f6}.c3tab-info-dot.not-active{background-color:#cd9526}.c3tab-info-dot.is-active{background-color:#2297ff}.c3tab-info-dot.has-error{background-color:#bf0001}.datatable{font-size:14px;line-height:16px;border-collapse:collapse;width:100%}.datatable tbody tr{font-family:Roboto;font-weight:400}.datatable tbody tr:hover,.datatable tbody tr active{background:#222;cursor:pointer}.datatable tr{height:32px;border-bottom:2px solid #3d3d3d}.datatable td,.datatable th{text-align:left}.datatable td{color:#828282}.datatable th{color:#fff}.datatable thead tr{font-family:Roboto;font-weight:500;height:40px}.datatable thead tr th{font-weight:500}.c3command{background-color:#222;color:#828282;padding:8px}.c3side[data-v-6cd95e5d]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin:0 auto;margin-top:150px;padding:16px 16px 16px 12px;width:100%;max-width:250px}.c3side-title-wrapper[data-v-6cd95e5d]{border-bottom:2px solid #e0e0e0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.c3side-title[data-v-6cd95e5d]{font-family:Roboto Mono;font-weight:500;font-size:18px;line-height:25px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;letter-spacing:-.05em;margin:0;color:#bdbdbd}.c3side-config-link[data-v-6cd95e5d]{font-family:Roboto;color:#2297ff;font-size:12px;line-height:120%;display:flexc3btn-group;-ms-flex-item-align:end;align-self:flex-end;text-align:right;padding-bottom:2px;cursor:pointer}.c3side-body[data-v-6cd95e5d]{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column;padding:8px}.c3side-body[data-v-6cd95e5d],.c3side-refresh-wrapper[data-v-6cd95e5d]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-direction:normal}.c3side-refresh-wrapper[data-v-6cd95e5d]{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-top:-24px}.c3side-refres-title[data-v-6cd95e5d]{line-height:32px;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.c3side-refres-dropdown[data-v-6cd95e5d]{margin-bottom:0;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.c3side .c3btn-group[data-v-6cd95e5d]{margin-top:24px}.c3gateway-row button[data-v-49ef2de9]{margin-left:1rem}.c3gateway{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-negative:1;flex-shrink:1;margin:40px auto 24px auto;padding:0;width:100%;max-width:1200px}.c3gateway,.c3gateway .icon.exclamation{position:relative}.c3gateway .icon.exclamation:hover:after{display:block;position:absolute;font-family:Roboto;font-size:12px;color:#bdbdbd;background-color:#222;border-radius:2px;width:-webkit-max-content;width:-moz-max-content;width:max-content;padding:4px 8px;top:30px;right:0;max-width:400px;z-index:9;content:"TODO: helper text for gateway selection."}.c3gateway-row{display:-webkit-box;display:-ms-flexbox;display:flex;padding:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:32px;width:100%;max-width:1200px}.c3gateway-row:first-of-type{margin:0 0 3px 0}.c3gateway-row:not(:first-of-type){margin:3px 0 3px 0}.c3gateway-row:last-of-type:not(:first-of-type){margin:3px 0 0 0}.c3gateway-row:only-child{margin:0}.c3gateway-title{font-family:Roboto Mono;font-weight:500;font-size:18px;line-height:25px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;letter-spacing:-.05em;color:#bdbdbd;margin-bottom:1rem}.c3notify{display:block;position:fixed;background-color:transparent;width:450px;max-height:100vh;height:auto;margin:3rem calc((100vw - 450px)/2) 3rem auto;padding:0;bottom:0;right:0;z-index:17;list-style:none}.c3notify li{-webkit-transition:all .25s cubic-bezier(0,-.05,.33,.99);transition:all .25s cubic-bezier(0,-.05,.33,.99)}.c3notify .slide-enter-active,.c3notify .slide-leave-active{-webkit-transition:all .5s cubic-bezier(0,-.05,.33,.99);transition:all .5s cubic-bezier(0,-.05,.33,.99)}.c3notify .slide-enter,.c3notify .slide-leave-to{-webkit-transform:translateY(10vh) scale(.9);transform:translateY(10vh) scale(.9);opacity:0}.c3notify-error,.c3notify-info{display:block;background-color:#4f4f4f;opacity:1;position:relative;min-height:40px;margin:1rem;padding:1rem;-webkit-box-shadow:0 4px 4px rgba(0,0,0,.25);box-shadow:0 4px 4px rgba(0,0,0,.25);border-radius:2px;right:calc(-50vw - 225px)}.c3notify-error h1,.c3notify-info h1{margin:0;padding:0;font-family:Roboto Mono;font-weight:500;font-size:18px;line-height:25px;letter-spacing:-.05em;color:#bdbdbd}.c3notify-error p,.c3notify-info p{margin:0;padding:0 12px 0 0;font-size:12px;line-height:14px;color:#fff}.c3notify-error h1+p,.c3notify-info h1+p{margin-top:.5rem}.c3notify-info{border-left:8px solid #2297ff}.c3notify-error{border-left:8px solid #bf0001}.c3notify-close{position:absolute;top:.5rem;right:.5rem;cursor:pointer}#app{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100vh;width:100vw;overflow:hidden;overflow-y:auto;margin:0;padding:0}.c3body{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row;margin:0 auto;padding:0;width:100%;max-width:1450px}.c3body,.c3body-main{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-direction:normal;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.c3body-main{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column;margin:0;padding:16px 12px 16px 16px}.c3body-gateway{max-width:610px;margin:48px auto 0 auto;height:auto}.c3body-no-gateway-message{display:block;background-color:#222;max-width:610px;margin:48px auto 0 auto;height:120px;padding:1rem;-webkit-box-shadow:0 4px 4px rgba(0,0,0,.25);box-shadow:0 4px 4px rgba(0,0,0,.25);border-radius:2px;border-left:8px solid #ffac00}.c3body-no-gateway-message h1{margin:0;padding:0;font-family:Roboto Mono;font-weight:500;font-size:18px;line-height:25px;letter-spacing:-.05em;color:#bdbdbd}.c3body-no-gateway-message p{margin:0;padding:0 12px 0 0;font-size:14px;line-height:20px;color:#fff}.c3body-no-gateway-message h1+p{margin-top:.5rem}@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:url(../fonts/roboto-v18-latin-regular.68889c24.eot);src:local("Roboto"),local("Roboto-Regular"),url(../fonts/roboto-v18-latin-regular.68889c24.eot?#iefix) format("embedded-opentype"),url(../fonts/roboto-v18-latin-regular.5d4aeb4e.woff2) format("woff2"),url(../fonts/roboto-v18-latin-regular.bafb105b.woff) format("woff"),url(../fonts/roboto-v18-latin-regular.372d0cc3.ttf) format("truetype"),url(../img/roboto-v18-latin-regular.8681f434.svg#Roboto) format("svg")}@font-face{font-family:Roboto;font-style:normal;font-weight:500;src:url(../fonts/roboto-v18-latin-500.03bb29d6.eot);src:local("Roboto Medium"),local("Roboto-Medium"),url(../fonts/roboto-v18-latin-500.03bb29d6.eot?#iefix) format("embedded-opentype"),url(../fonts/roboto-v18-latin-500.28546717.woff2) format("woff2"),url(../fonts/roboto-v18-latin-500.de8b7431.woff) format("woff"),url(../fonts/roboto-v18-latin-500.4d88404f.ttf) format("truetype"),url(../img/roboto-v18-latin-500.95204ac9.svg#Roboto) format("svg")}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:400;src:url(../fonts/roboto-mono-v5-latin-regular.2b497e54.eot);src:local("Roboto Mono"),local("RobotoMono-Regular"),url(../fonts/roboto-mono-v5-latin-regular.2b497e54.eot?#iefix) format("embedded-opentype"),url(../fonts/roboto-mono-v5-latin-regular.e92cc0fb.woff2) format("woff2"),url(../fonts/roboto-mono-v5-latin-regular.1db1469b.woff) format("woff"),url(../fonts/roboto-mono-v5-latin-regular.c03588a7.ttf) format("truetype"),url(../img/roboto-mono-v5-latin-regular.96a9bbe5.svg#RobotoMono) format("svg")}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:500;src:url(../fonts/roboto-mono-v5-latin-500.d27e4d81.eot);src:local("Roboto Mono Medium"),local("RobotoMono-Medium"),url(../fonts/roboto-mono-v5-latin-500.d27e4d81.eot?#iefix) format("embedded-opentype"),url(../fonts/roboto-mono-v5-latin-500.f70f506c.woff2) format("woff2"),url(../fonts/roboto-mono-v5-latin-500.077525e5.woff) format("woff"),url(../fonts/roboto-mono-v5-latin-500.f2e00df8.ttf) format("truetype"),url(../img/roboto-mono-v5-latin-500.93d2fbd1.svg#RobotoMono) format("svg")}.c3btn{border-radius:2px;height:32px;font-family:Roboto;font-size:12px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-transform:uppercase;padding-left:1rem;padding-right:1rem;position:relative;margin-bottom:16px;min-width:100px;cursor:pointer;border:1px solid #2297ff;background-color:#2297ff;-webkit-box-shadow:none;box-shadow:none;color:#3d3d3d}.c3btn.pull-right{margin-left:auto}.c3btn:active{border:1px solid #2297ff;-webkit-box-shadow:none;box-shadow:none;color:#2297ff}.c3btn--grey,.c3btn:active{background-color:transparent}.c3btn--grey{border:1px solid #bdbdbd;color:#fff}.c3btn--grey:hover{border:1px solid #2297ff;color:#2297ff}.c3btn--grey:active{background-color:#2297ff;color:#3d3d3d}.c3btn--grey:active,.c3btn--outline{border:1px solid #2297ff;-webkit-box-shadow:none;box-shadow:none}.c3btn--outline{background-color:transparent;color:#2297ff}.c3btn--outline:active{border:1px solid #2297ff;background-color:#2297ff;-webkit-box-shadow:none;box-shadow:none;color:#3d3d3d}.c3btn--bottom{-ms-flex-item-align:end;align-self:flex-end}.c3btn[disabled]{color:#3d3d3d;border:1px solid #2297ff;background-color:#2297ff;border-radius:2px;cursor:default}.c3btn-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.c3btn-group .c3btn{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;white-space:nowrap;padding-left:0;padding-right:0}.c3btn-group .c3btn:not(:last-of-type){border-top-right-radius:0;border-bottom-right-radius:0;border-right:none}.c3btn-group .c3btn:last-of-type{border-top-left-radius:0;border-bottom-left-radius:0}.c3btn-group .c3btn:hover{border-right:1px solid #2297ff}.c3btn-group .c3btn:hover+.c3btn{border-left:none}body,html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;font-weight:400;background-color:#111;color:#bdbdbd;margin:0;padding:0;width:100vw;height:100vh}*,body,html{font-family:Roboto,sans-serif;-webkit-box-sizing:border-box;box-sizing:border-box}*{outline:none!important;background-color:inherit}span.icon{display:block;width:24px;height:24px}span.icon.exclamation,span.icon.exclamation:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M3 12c0-4.968 4.032-9 9-9s9 4.032 9 9-4.032 9-9 9-9-4.032-9-9zm8.22 1.944h1.641l.233-6.897h-2.106l.233 6.897zm1.62 1.374c-.2-.196-.466-.294-.799-.294-.328 0-.595.1-.8.301-.2.196-.3.445-.3.745 0 .301.1.55.3.745.205.196.472.294.8.294.333 0 .6-.098.8-.294a.986.986 0 00.307-.745.994.994 0 00-.307-.752z' fill='%23828282'/%3E%3C/svg%3E")}span.icon.exclamation,span.icon.exclamation:hover,span.icon.help{background-position:50%;background-repeat:no-repeat;background-size:24px}span.icon.help{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M3 12c0-4.968 4.032-9 9-9s9 4.032 9 9-4.032 9-9 9-9-4.032-9-9zm8.238.958c-.151.41-.227.959-.227 1.649h1.705l.027-.451c.048-.483.242-.904.579-1.264l.54-.57c.421-.453.716-.864.885-1.234.169-.374.253-.771.253-1.19 0-.922-.26-1.634-.78-2.137C13.702 7.254 12.972 7 12.03 7c-.932 0-1.67.266-2.21.798-.538.533-.811 1.27-.82 2.21h1.931c.01-.394.111-.702.307-.923.2-.227.463-.34.792-.34.693 0 1.039.416 1.039 1.249 0 .276-.067.54-.2.79-.133.247-.402.57-.806.97-.4.394-.675.795-.825 1.204zm-.12 3.105c-.2.212-.3.483-.3.813 0 .326.098.594.293.806.2.212.462.318.786.318s.584-.106.779-.318c.2-.212.3-.48.3-.806 0-.33-.103-.6-.307-.813a1.003 1.003 0 00-.772-.325c-.315 0-.575.108-.78.325z' fill='%23828282'/%3E%3C/svg%3E")}span.icon.help:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M3 12c0-4.968 4.032-9 9-9s9 4.032 9 9-4.032 9-9 9-9-4.032-9-9zm8.238.958c-.151.41-.227.959-.227 1.649h1.705l.027-.451c.048-.483.242-.904.579-1.264l.54-.57c.421-.453.716-.864.885-1.234.169-.374.253-.771.253-1.19 0-.922-.26-1.634-.78-2.137C13.702 7.254 12.972 7 12.03 7c-.932 0-1.67.266-2.21.798-.538.533-.811 1.27-.82 2.21h1.931c.01-.394.111-.702.307-.923.2-.227.463-.34.792-.34.693 0 1.039.416 1.039 1.249 0 .276-.067.54-.2.79-.133.247-.402.57-.806.97-.4.394-.675.795-.825 1.204zm-.12 3.105c-.2.212-.3.483-.3.813 0 .326.098.594.293.806.2.212.462.318.786.318s.584-.106.779-.318c.2-.212.3-.48.3-.806 0-.33-.103-.6-.307-.813a1.003 1.003 0 00-.772-.325c-.315 0-.575.108-.78.325z' fill='%23FFF'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:24px}span.icon.close,span.icon.close:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z' fill='%23828282'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:24px}span.icon.carrotup,span.icon.carrotup:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M17 14l-5-5-5 5h10z' fill='%23828282'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:24px}span.icon.carrotdown,span.icon.carrotdown:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M7 10l5 5 5-5H7z' fill='%23828282'/%3E%3C/svg%3E")}span.icon.carrotdown,span.icon.carrotdown:hover,span.icon.random{background-position:50%;background-repeat:no-repeat;background-size:24px}span.icon.random{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM7.5 18c-.83 0-1.5-.67-1.5-1.5S6.67 15 7.5 15s1.5.67 1.5 1.5S8.33 18 7.5 18zm0-9C6.67 9 6 8.33 6 7.5S6.67 6 7.5 6 9 6.67 9 7.5 8.33 9 7.5 9zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm0-9c-.83 0-1.5-.67-1.5-1.5S15.67 6 16.5 6s1.5.67 1.5 1.5S17.33 9 16.5 9z' fill='%23828282'/%3E%3C/svg%3E")}span.icon.random:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM7.5 18c-.83 0-1.5-.67-1.5-1.5S6.67 15 7.5 15s1.5.67 1.5 1.5S8.33 18 7.5 18zm0-9C6.67 9 6 8.33 6 7.5S6.67 6 7.5 6 9 6.67 9 7.5 8.33 9 7.5 9zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm0-9c-.83 0-1.5-.67-1.5-1.5S15.67 6 16.5 6s1.5.67 1.5 1.5S17.33 9 16.5 9z' fill='%23FFF'/%3E%3C/svg%3E")}span.icon.random:hover,span.icon.upload{background-position:50%;background-repeat:no-repeat;background-size:24px}span.icon.upload{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 18v2h18v-2H3z' fill='%23828282'/%3E%3Cpath d='M5 14H3v6h2v-6zM11 16h2V8h-2v8zM21 14h-2v6h2v-6zM8 8l4-4 4 4H8z' fill='%23828282'/%3E%3C/svg%3E")}span.icon.upload:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 18v2h18v-2H3z' fill='%23FFF'/%3E%3Cpath d='M5 14H3v6h2v-6zM11 16h2V8h-2v8zM21 14h-2v6h2v-6zM8 8l4-4 4 4H8z' fill='%23FFF'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:24px}span.icon.back,span.icon.back:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M15.4 7.4L14 6l-6 6 6 6 1.4-1.4-4.6-4.6 4.6-4.6z' fill='%23828282'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:24px}span.icon.add-comment,span.icon.add-comment:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M19.2 3c.99 0 1.791.81 1.791 1.8L21 21l-3.6-3.6H4.8c-.99 0-1.8-.81-1.8-1.8V4.8C3 3.81 3.81 3 4.8 3h14.4zm-4.3 6.307h-2.226V6.934H11.29v2.373H9.053v1.3h2.238v2.538h1.383v-2.538H14.9v-1.3z' fill='%23828282'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:24px}span.icon.fullscreen,span.icon.fullscreen:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M9 3H3v6h2V5h4V3zM21 9V3h-6v2h4v4h2zM15 21h6v-6h-2v4h-4v2zM3 15v6h6v-2H5v-4H3z' fill='%23FFF'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:24px}span.icon.zoomin,span.icon.zoomin:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M4 10h6V4H8v4H4v2zM14 4v6h6V8h-4V4h-2zM20 14h-6v6h2v-4h4v-2zM10 20v-6H4v2h4v4h2z' fill='%23FFF'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:24px}span.icon.more,span.icon.more:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z' fill='%23FFF'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:24px}span.icon.warning,span.icon.warning:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z' fill='%23BF0001'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:24px}span.icon.return,span.icon.return:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M3 12c0-4.968 4.032-9 9-9s9 4.032 9 9-4.032 9-9 9-9-4.032-9-9zm8.22 1.944h1.641l.233-6.897h-2.106l.233 6.897zm1.62 1.374c-.2-.196-.466-.294-.799-.294-.328 0-.595.1-.8.301-.2.196-.3.445-.3.745 0 .301.1.55.3.745.205.196.472.294.8.294.333 0 .6-.098.8-.294a.986.986 0 00.307-.745.994.994 0 00-.307-.752z' fill='%23AB61F6'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:24px}label.icon.checkbox-on,label.icon.checkbox-on:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='%232297ff' d='M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:20px}label.icon.checkbox-on--disabled,label.icon.checkbox-on--disabled:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='%231B6C51' d='M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:20px}label.icon.checkbox-off,label.icon.checkbox-off:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M17 3v14H3V3h14zm0-2H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2z' fill='%23FFF'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:20px}label.icon.checkbox-off--disabled,label.icon.checkbox-off--disabled:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M17 3v14H3V3h14zm0-2H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2z' fill='%234F4F4F'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:20px}.c3link.c3link{color:#2297ff;cursor:pointer}.capitalize{text-transform:capitalize}.flex-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between} \ No newline at end of file +.c3route-list[data-v-35f03fb2]{margin-bottom:24px}.c3route-list .datatable tbody tr[data-v-35f03fb2]:hover{background:transparent;cursor:default}.c3route-list-more-btn[data-v-35f03fb2]{position:relative;cursor:pointer;float:right}.c3route-list-menu[data-v-35f03fb2]{display:none;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;position:absolute;right:0;top:10px;flex-direction:column;padding:0;background:#3d3d3d;-webkit-box-shadow:0 12px 24px rgba(0,0,0,.15);box-shadow:0 12px 24px rgba(0,0,0,.15);border-radius:2px;list-style:none;min-width:180px;z-index:9}.c3route-list-menu-item[data-v-35f03fb2]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:14px;line-height:16px;color:#fff;height:32px;padding:0 8px;border-radius:2px}.c3route-list-menu-item[data-v-35f03fb2]:hover{background-color:#4f4f4f;cursor:pointer}.c3route-list-menu-divider[data-v-35f03fb2]{height:0;width:100;border-bottom:1px solid #3d3d3d}.c3route-list-menu[data-v-35f03fb2]:hover,.c3route-list-more-btn:hover+.c3route-list-menu[data-v-35f03fb2]{display:-webkit-box;display:-ms-flexbox;display:flex}.c3InterfaceList[data-v-5d31269e],.c3InterfaceList[data-v-147c4e18]{margin-bottom:24px}.c3modal .flex-row.host-info{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.c3modal .flex-row.host-info .details{padding-left:16px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding:0 16px 0 0;-ms-flex-item-align:start;align-self:flex-start;min-width:300px}.c3modal .flex-row.host-info .details p{font-size:14px;line-height:20px;margin:8px 0 0 0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;max-width:300px}.c3modal .flex-row.host-info .details p span.details-title{text-align:left;min-width:40%}.c3modal .flex-row.host-info .details p span.details-value{text-align:end}.c3modal .flex-row.host-info .details p:last-of-type{margin-bottom:16px}tr:hover .hover-link[data-v-461f9dc0]{color:#2297ff}.command-for[data-v-461f9dc0]{text-transform:capitalize}.c3Stats[data-v-04e7ff84]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.c3Stats p[data-v-04e7ff84]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin:0;font-size:14px;line-height:16px;height:32px}.c3Stats p span[data-v-04e7ff84]{max-width:75%;overflow:hidden;text-overflow:ellipsis;display:block;white-space:nowrap}.c3InterfaceList[data-v-660d5fa2],.c3Stats p[data-v-04e7ff84]:last-of-type{margin-bottom:24px}.c3input-wrapper[data-v-25c89b67]{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-height:32px;background-color:inherit;margin-bottom:16px}.c3input-wrapper .icon.random[data-v-25c89b67]{position:absolute;z-index:12;right:27px;top:3px}.c3input-wrapper .icon.help[data-v-25c89b67]{position:absolute;z-index:12;right:3px;top:3px}.c3input-wrapper .icon.help .help-text[data-v-25c89b67]{display:none}.c3input-wrapper .icon.help:hover .help-text[data-v-25c89b67]{right:0;top:24px;display:block;position:absolute;font-family:Roboto;font-size:12px;color:#bdbdbd;background-color:#222;border-radius:2px;width:-webkit-max-content;width:-moz-max-content;width:max-content;padding:4px 8px;max-width:400px;z-index:13}.c3input-wrapper span.error-message[data-v-25c89b67]{color:#ff492f;font-size:12px;line-height:12px;position:absolute;right:0;bottom:-13px}.c3input-label[data-v-25c89b67]{font-size:14px;color:#bdbdbd;background-color:inherit;left:.5rem;top:.6rem;position:absolute;padding-left:.5rem;padding-right:.5rem;-webkit-transition-property:font-size,top,color;transition-property:font-size,top,color;-webkit-transition-duration:.25s;transition-duration:.25s;-webkit-transition-delay:0s;transition-delay:0s}.c3input-label.dirty[data-v-25c89b67]{color:#f2f2f2;font-size:10px;left:.5rem;top:-.4rem}.c3input-label[disabled][data-v-25c89b67]{color:#828282}.c3input-input[data-v-25c89b67]{background-color:inherit;color:#fff;font-family:Roboto;font-size:14px;line-height:16px;display:block;border:1px solid #bdbdbd;border-radius:2px;height:32px;width:100%;padding-left:1rem;padding-right:1rem;position:relativesdf;outline:none}.c3input-input.dirty[data-v-25c89b67]{border:1px solid #fff;color:#f2f2f2}.c3input-input[aria-invalid=true][data-v-25c89b67]{border-color:#ff492f;color:#ff492f}.c3input-input[aria-invalid=true]+label[data-v-25c89b67]{color:#ff492f}.c3input-input[data-v-25c89b67]:active:not([disabled]),.c3input-input[data-v-25c89b67]:focus:not([disabled]){border-color:#1476ff}.c3input-input[data-v-25c89b67]:active:not([disabled]):invalid,.c3input-input[data-v-25c89b67]:focus:not([disabled]):invalid{border-color:#ff492f}.c3input-input:active:not([disabled]):invalid+label[data-v-25c89b67],.c3input-input:focus:not([disabled]):invalid+label[data-v-25c89b67]{color:#ff492f}.c3input-input:active:not([disabled])+label[data-v-25c89b67],.c3input-input:focus:not([disabled])+label[data-v-25c89b67]{color:#1476ff;font-size:10px;left:.5rem;top:-.4rem}.c3input-input[disabled][data-v-25c89b67]{border-color:#828282;color:#828282}.c3input-input[disabled]+label[data-v-25c89b67]{color:#828282}.c3input-input[data-v-25c89b67]:invalid{border-color:#ff492f}.c3select[data-v-434d5f55]{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-height:32px;background-color:inherit;margin-bottom:16px}.c3select.disabled[data-v-434d5f55]{color:#828282}.c3select.disabled .c3select-border[data-v-434d5f55]{border:1px solid #828282}.c3select.disabled .c3select-legend[data-v-434d5f55]{color:#828282}.c3select-close[data-v-434d5f55]{display:block;position:fixed;background-color:transparent;width:100vw;height:100vh;margin:0;padding:0;top:0;left:0;z-index:12}.c3select-select[data-v-434d5f55]{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-height:32px;background-color:inherit}.c3select-select[data-v-434d5f55],.c3select-selected[data-v-434d5f55]{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.c3select-selected[data-v-434d5f55]{font-family:Roboto;font-style:normal;font-weight:400;font-size:inherit;line-height:16px;height:32px;width:100%;padding-left:.5rem;padding-right:1rem;outline:none}.c3select-border[data-v-434d5f55]{border:1px solid #fff;border-radius:2px;padding-left:1rem}.c3select-legend[data-v-434d5f55]{position:absolute;font-size:10px;line-height:12px;color:#fff;background-color:inherit;left:.5rem;top:-.4rem;padding-left:.5rem;padding-right:.5rem}.c3select .icon[data-v-434d5f55]{position:absolute;right:4px;top:4px;cursor:pointer}.c3select-options[data-v-434d5f55]{position:absolute;left:0;margin:0;padding:0;list-style:none;z-index:15;border:1px solid #828282;border-radius:0 0 2px 2px;width:100%;top:31px;max-height:250px;overflow-y:auto}.c3select-options .selected[data-v-434d5f55]{color:#fff;font-weight:700}.c3select-options.c3select-direction-up[data-v-434d5f55]{top:unset;bottom:0}.c3select-options .c3select-option[data-v-434d5f55]{height:32px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:.5rem;padding-right:.5rem;cursor:pointer}.c3select-options .c3select-option[data-v-434d5f55]:hover{background-color:#3d3d3d}.c3checkbox-wrapper[data-v-180a7aec]{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.c3checkbox-wrapper .icon.help[data-v-180a7aec]{position:absolute;z-index:12;right:3px;top:-5px}.c3checkbox-wrapper .icon.help .help-text[data-v-180a7aec]{display:none}.c3checkbox-wrapper .icon.help:hover .help-text[data-v-180a7aec]{right:0;top:24px;display:block;position:absolute;font-family:Roboto;font-size:12px;color:#bdbdbd;background-color:#222;border-radius:2px;width:-webkit-max-content;width:-moz-max-content;width:max-content;padding:4px 8px;max-width:400px;z-index:13}.c3checkbox-wrapper .icon.checkbox[data-v-180a7aec]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:32px;position:relative;left:0;width:auto;background-position-x:left}.c3checkbox-wrapper .icon.checkbox[data-v-180a7aec]:hover{background-position-x:left}.c3checkbox-wrapper input[type=checkbox][data-v-180a7aec]{visibility:hidden}.c3textarea[data-v-29e94b45]{max-width:868px;padding:0;margin:0;position:relative}.c3textarea .icon.help[data-v-29e94b45]{position:absolute;z-index:12;right:3px;top:3px}.c3textarea .icon.help .help-text[data-v-29e94b45]{display:none}.c3textarea .icon.help:hover .help-text[data-v-29e94b45]{right:0;top:24px;display:block;position:absolute;font-family:Roboto;font-size:12px;color:#bdbdbd;background-color:#222;border-radius:2px;width:-webkit-max-content;width:-moz-max-content;width:max-content;padding:4px 8px;max-width:400px;z-index:13}.c3textarea-upload-button[data-v-29e94b45]{position:absolute;z-index:12;right:30px;top:3px}.c3textarea-upload-button .help-text[data-v-29e94b45]{display:none}.c3textarea-upload-button:hover .help-text[data-v-29e94b45]{right:0;top:24px;display:block;position:absolute;font-family:Roboto;font-size:12px;color:#bdbdbd;background-color:#222;border-radius:2px;width:-webkit-max-content;width:-moz-max-content;width:max-content;padding:4px 8px;max-width:400px;z-index:13}.c3textarea .textarea[data-v-29e94b45]{width:100%;height:100%;margin:0;padding:8px;color:#fff;background-color:#222;border:1px solid #bdbdbd;border-radius:2px;padding-top:30px}.c3textarea .textarea .c3textarea-input[data-v-29e94b45]{background-color:inherit;color:inherit;border:none;width:100%;height:100%;min-width:100%;min-height:100px;max-width:865px;max-height:300px}.c3textarea .textarea.focus[data-v-29e94b45]{border:1px solid #1476ff}.c3textarea .textarea.focus[data-v-29e94b45]:not([disabled]),.c3textarea .textarea[data-v-29e94b45]:active:not([disabled]){border-color:#1476ff}.c3textarea .textarea.focus[data-v-29e94b45]:not([disabled]):invalid,.c3textarea .textarea[data-v-29e94b45]:active:not([disabled]):invalid{border-color:#ff492f}.c3textarea .textarea.focus:not([disabled]):invalid+label[data-v-29e94b45],.c3textarea .textarea:active:not([disabled]):invalid+label[data-v-29e94b45]{color:#ff492f}.c3textarea .textarea.focus:not([disabled])+label[data-v-29e94b45],.c3textarea .textarea:active:not([disabled])+label[data-v-29e94b45]{color:#1476ff;font-size:10px;left:.5rem;top:-.4rem}.c3textarea-label[data-v-29e94b45]{font-size:14px;color:#bdbdbd;background-color:inherit;left:.4rem;top:.6rem;position:absolute;padding-left:.5rem;padding-right:.5rem;-webkit-transition-property:font-size,top,color;transition-property:font-size,top,color;-webkit-transition-duration:.25s;transition-duration:.25s;-webkit-transition-delay:0s;transition-delay:0s}.c3textarea-label.dirty[data-v-29e94b45]{color:#f2f2f2;font-size:10px;left:.5rem;top:-.4rem}.c3textarea-label.focus[data-v-29e94b45]{color:#1476ff;font-size:10px;left:.5rem;top:-.4rem}.c3textarea-label[disabled][data-v-29e94b45]{color:#828282}.c3textarea-legend[data-v-29e94b45]{margin-left:8px;font-size:12px;color:#bdbdbd}.c3textarea-legend.focus[data-v-29e94b45]{color:#1476ff}.c3form{margin-bottom:16px}.c3command-group{margin:16px 0}.c3modal-more-btn[data-v-4d83b87a]{position:relative;cursor:pointer;background-position-x:right!important;-ms-flex-item-align:end;align-self:flex-end;margin-bottom:8px;width:auto;padding-right:24px;line-height:24px;font-size:12px;color:#fff}.c3modal-menu[data-v-4d83b87a]{display:none;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;position:absolute;right:12px;top:64px;flex-direction:column;padding:0;background:#3d3d3d;-webkit-box-shadow:0 12px 24px rgba(0,0,0,.15);box-shadow:0 12px 24px rgba(0,0,0,.15);border-radius:2px;list-style:none;min-width:180px;z-index:9}.c3modal-menu-item[data-v-4d83b87a]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:14px;line-height:16px;color:#fff;height:32px;padding:0 8px;border-radius:2px}.c3modal-menu-item[data-v-4d83b87a]:hover{background-color:#4f4f4f;cursor:pointer}.c3modal-menu-divider[data-v-4d83b87a]{height:0;width:100;border-bottom:1px solid #3d3d3d}.c3modal-menu[data-v-4d83b87a]:hover,.c3modal-more-btn:hover+.c3modal-menu[data-v-4d83b87a],.donut-form[data-v-1b8b4092]{display:-webkit-box;display:-ms-flexbox;display:flex}.donut-form[data-v-1b8b4092]{-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.donut-form .line[data-v-1b8b4092],.donut-form h1[data-v-1b8b4092]{width:100%}.donut-form .half-line[data-v-1b8b4092]{max-width:48%;width:48%}.embeded-modal{margin-bottom:16px}.embeded-modal .c3modal-details{-webkit-box-shadow:none;box-shadow:none;padding:0}.c3modal{display:block;position:fixed;background-color:rgba(0,0,0,.5);width:100vw;height:100vh;margin:0;padding:0;top:0;left:0;z-index:11}.c3modal .actions{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-ms-flex-item-align:self-start;align-self:self-start;-webkit-box-align:self-end;-ms-flex-align:self-end;align-items:self-end;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.c3modal .actions .c3btn{-ms-flex-item-align:end;align-self:flex-end}.c3modal-holder{margin:15vh auto;width:900px;max-width:calc(100vw - 3rem);max-height:70vh;overflow:hidden;overflow-y:auto;background:#282828}.c3modal-body,.c3modal-holder{position:relative;display:block}.c3modal-body{margin:0;padding:0;width:100%;height:100%;background-color:#282828}.c3modal-body h1{font-family:Roboto Mono;font-weight:500;font-size:18px;line-height:25px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;letter-spacing:-.05em;color:#bdbdbd;margin:0 0 8px;height:32px}.c3modal-body h1 .details{min-width:300px}.c3modal-body h1 .details p{font-size:14px;line-height:20px;padding:0;margin:0 0 8px 0;color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.c3modal-body h1 .details p:last-of-type{margin-bottom:16px}.c3modal-close{position:absolute;top:22px;right:12px;cursor:pointer;background-color:transparent}.c3modal span.c3modal-back.c3modal-back{display:-webkit-box;display:-ms-flexbox;display:flex;position:absolute;top:22px;right:52px;cursor:pointer;text-transform:uppercase;font-size:12px;line-height:17px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:24px;background-position-x:left;width:auto;background-color:transparent}.c3modal span.c3modal-back.c3modal-back:hover{background-position-x:left}.c3modal-header{background:#222;border-radius:2px 2px 2px 0;padding:16px;margin-bottom:8px}.c3modal-header.is-return{background:linear-gradient(180deg,#ab61f6 4px,#222 0)}.c3modal-header.has-error{background:linear-gradient(180deg,#bf0001 4px,#222 0)}.c3modal-header .message-with-icon{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:left;-ms-flex-pack:left;justify-content:left;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.c3modal-header .message-with-icon span{margin-right:8px}.c3modal-details{padding-top:24px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.5);box-shadow:0 1px 2px rgba(0,0,0,.5);border-radius:2px;padding:16px;padding-bottom:24px}.c3modal-details table:not(:last-of-type){margin-bottom:2rem}.c3modal-body .form-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.c3modal-body .form-row .form-element:not(:last-of-type){margin-right:8px}.c3modal-body .form-row .form-element:not(:first-of-type){margin-left:8px}.c3modal-actions.c3modal-actions{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;padding:0;margin:24px 0 0 0}.c3modal-actions.c3modal-actions .c3btn{margin-left:16px}.c3modal.options .c3modal-back.c3modal-back{display:none}.c3modal.options h1{margin-bottom:16px}.c3modal-title-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.c3modal-title{font-family:Roboto Mono;font-weight:500;font-size:18px;line-height:25px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;letter-spacing:-.05em;margin:0;color:#bdbdbd}.c3modal-config-link{font-family:Roboto;color:#2297ff;font-size:12px;line-height:120%;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-item-align:end;align-self:flex-end;text-align:right;margin:0 0 14px;cursor:pointer}.c3checkbox-row[data-v-999b190e],.c3checkbox-wrapper[data-v-999b190e]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.c3checkbox-wrapper[data-v-999b190e]{position:relative;height:32px;width:100%;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.c3checkbox-wrapper .icon.help[data-v-999b190e]{position:relative}.c3checkbox-wrapper .icon.help .help-text[data-v-999b190e]{display:none}.c3checkbox-wrapper .icon.help:hover .help-text[data-v-999b190e]{right:0;top:24px;display:block;position:absolute;font-family:Roboto;font-size:12px;color:#bdbdbd;background-color:#222;border-radius:2px;width:-webkit-max-content;width:-moz-max-content;width:max-content;padding:4px 8px;max-width:400px;z-index:13}.c3toggle[data-v-999b190e]{display:inline-block;position:relative;margin:0}.c3toggle-input[data-v-999b190e]{width:36px;height:20px;opacity:0;z-index:0}.c3toggle-label[data-v-999b190e]{display:block;padding:0 0 0 44px;cursor:pointer}.c3toggle-label[data-v-999b190e]:before{content:"";position:absolute;top:5px;left:0;width:37px;height:14px;background-color:#bdbdbd;border:1px solid #828282;border-radius:14px;z-index:1;-webkit-transition:background-color .28s cubic-bezier(.4,0,.2,1);transition:background-color .28s cubic-bezier(.4,0,.2,1)}.c3toggle-label[data-v-999b190e]:after{content:"";position:absolute;top:3px;left:0;width:20px;height:20px;background-color:#828282;border-radius:14px;-webkit-box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);z-index:2;-webkit-transition:all .28s cubic-bezier(.4,0,.2,1);transition:all .28s cubic-bezier(.4,0,.2,1);-webkit-transition-property:left,background-color;transition-property:left,background-color}.c3toggle-input:checked+.c3toggle-label[data-v-999b190e]:before{background-color:#90caff;border:1px solid #1476ff}.c3toggle-input:checked+.c3toggle-label[data-v-999b190e]:after{left:20px;background-color:#2297ff}.c3toggle.disabled .c3toggle-label[data-v-999b190e]:before{background-color:#4f4f4f;border:1px solid #828282}.c3toggle.disabled .c3toggle-label[data-v-999b190e]:after{background-color:#828282}.c3toggle.disabled .c3toggle-input:checked+.c3toggle-label[data-v-999b190e]:before{background-color:#5b8e7c;border:1px solid #1b6c51}.c3toggle.disabled .c3toggle-input:checked+.c3toggle-label[data-v-999b190e]:after{background-color:#284167}.c3canvas{position:relative;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-negative:1;flex-shrink:1;margin:0 auto 0 auto;padding:0;border:.75px solid #2297ff;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.5);box-shadow:0 1px 2px rgba(0,0,0,.5);border-radius:2px;max-width:1200px;height:600px;background-color:#111}.c3canvas,.c3canvas .progress-bar{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%}.c3canvas .progress-bar{position:absolute;left:0;bottom:0;height:10px;background:transparent}.c3canvas .progress-bar .progress-bar-status{position:relative;background-color:#2297ff;width:0;height:100%}.c3canvas-toggle-interfaces.c3canvas-toggle-interfaces,.c3canvas-toggle-layout.c3canvas-toggle-layout{position:relative;cursor:pointer}.c3canvas-toggle-layout.c3canvas-toggle-layout{margin-bottom:.5rem}.c3canvas-toggle-interfaces.c3canvas-toggle-interfaces{margin-top:.5rem}.c3canvas-fs-btn{right:50px}.c3canvas-fs-btn,.c3canvas-more-btn{position:absolute;cursor:pointer;top:23px}.c3canvas-more-btn{right:21px}.c3canvas-menu{display:none;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;position:absolute;right:21px;top:33px;flex-direction:column;padding:0;background:#282828;-webkit-box-shadow:0 12px 24px rgba(0,0,0,.15);box-shadow:0 12px 24px rgba(0,0,0,.15);border-radius:2px;list-style:none;min-width:180px}.c3canvas-menu-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:14px;line-height:16px;color:#fff;height:32px;padding:0 8px}.c3canvas-menu-item:hover{background-color:#222;cursor:pointer}.c3canvas-menu-divider{height:0;width:100;border-bottom:1px solid #3d3d3d}.c3canvas-menu:hover,.c3canvas-more-btn:hover+.c3canvas-menu{display:-webkit-box;display:-ms-flexbox;display:flex}.c3canvas #c3canvas{width:inherit;height:inherit;padding:2px;background-color:transparent}.c3canvas #c3canvas div.vis-network div.vis-navigation div.vis-button:active,.c3canvas #c3canvas div.vis-network div.vis-navigation div.vis-button:hover{-webkit-box-shadow:none;box-shadow:none}.c3canvas-fs{position:fixed;top:16px;left:16px;max-width:100vw;width:calc(100vw - 32px);height:calc(100vh - 32px);border:.75px solid #2297ff;z-index:9}.c3canvas-fs .c3canvas-fs-btn,.c3canvas-fs .c3canvas-menu-btn{z-index:10}#c3canvas div.vis-network{border:none;outline:none}#c3canvas div.vis-network div.vis-navigation div.vis-button{width:34px;height:34px;border-radius:17px;position:absolute;display:inline-block;background-position:2px 2px;background-repeat:no-repeat;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#c3canvas div.vis-network div.vis-navigation div.vis-button:active,#c3canvas div.vis-network div.vis-navigation div.vis-button:hover{-webkit-box-shadow:none;box-shadow:none}#c3canvas div.vis-network div.vis-navigation div.vis-button.vis-up{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M12 8l-6 6 1.4 1.4 4.6-4.6 4.6 4.6L18 14l-6-6z' fill='%23fff'/%3E%3C/svg%3E");top:19px;left:70px}#c3canvas div.vis-network div.vis-navigation div.vis-button.vis-down{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M12 16l6-6-1.4-1.4-4.6 4.6-4.6-4.6L6 10l6 6z' fill='%23fff'/%3E%3C/svg%3E");top:70px;left:70px}#c3canvas div.vis-network div.vis-navigation div.vis-button.vis-left{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M15.4 7.4L14 6l-6 6 6 6 1.4-1.4-4.6-4.6 4.6-4.6z' fill='%23fff'/%3E%3C/svg%3E");top:70px;left:19px}#c3canvas div.vis-network div.vis-navigation div.vis-button.vis-right{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M8.6 7.4L10 6l6 6-6 6-1.4-1.4 4.6-4.6-4.6-4.6z' fill='%23fff'/%3E%3C/svg%3E");top:70px;left:115px}#c3canvas div.vis-network div.vis-navigation div.vis-button.vis-zoomIn{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M12 19a7 7 0 100-14 7 7 0 000 14zm0 2a9 9 0 100-18 9 9 0 000 18z' fill='%23fff'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M17.4 12.6v-1.2h-4.8V6.6h-1.2v4.8H6.6v1.2h4.8v4.8h1.2v-4.8h4.8z' fill='%23fff'/%3E%3C/svg%3E");top:19px;left:19px}#c3canvas div.vis-network div.vis-navigation div.vis-button.vis-zoomOut{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M12 19a7 7 0 100-14 7 7 0 000 14zm0 2a9 9 0 100-18 9 9 0 000 18z' fill='%23fff'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M17.4 12.6v-1.2H6.6v1.2h10.8z' fill='%23fff'/%3E%3C/svg%3E");top:19px;left:115px}#c3canvas div.vis-network div.vis-navigation div.vis-button.vis-zoomExtends{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M17 16l-4-4V8.82C14.16 8.4 15 7.3 15 6c0-1.66-1.34-3-3-3S9 4.34 9 6c0 1.3.84 2.4 2 2.82V12l-4 4H3v5h5v-3.05l4-4.2 4 4.2V21h5v-5h-4z' fill='%23fff'/%3E%3C/svg%3E");top:19px;right:70px}.c3footer[data-v-b810e06a]{font-family:Roboto Mono;font-size:12px;line-height:10px;min-height:48px;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:center;letter-spacing:.2em;text-transform:uppercase;color:#828282;margin-top:auto}.c3footer[data-v-b810e06a],.c3navbar[data-v-6bb0e8c9]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.c3navbar[data-v-6bb0e8c9]{background-color:#222;margin:0;padding:16px;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.c3navbar-logo[data-v-6bb0e8c9]{width:auto;height:43px}.c3navbar-logo[data-v-6bb0e8c9]:not(:first-of-type){padding-left:4px;border-left:2px solid #fff}.c3navbar-left[data-v-6bb0e8c9]{line-height:43px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.c3navbar-left--title[data-v-6bb0e8c9]{font-size:36px;line-height:30px}.c3navbar-left--secondary[data-v-6bb0e8c9],.c3navbar-left--title[data-v-6bb0e8c9]{padding:0;margin:0;font-family:Roboto Mono;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:right;letter-spacing:-.05em}.c3navbar-left--secondary[data-v-6bb0e8c9]{font-size:18px;line-height:15px;text-transform:uppercase}.c3InterfaceList[data-v-1502dd23]{margin-bottom:24px}.c3tabfooter[data-v-399d122b]{display:-webkit-box;display:-ms-flexbox;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;height:40px;font-size:12px;line-height:14px;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#fff;margin-top:-16px}.c3tabfooter-info[data-v-399d122b]{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.c3tabfooter-action[data-v-399d122b],.c3tabfooter-info[data-v-399d122b]{display:-webkit-box;display:-ms-flexbox;display:flex;height:32px;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.c3tabfooter-action[data-v-399d122b]{-webkit-box-flex:2;-ms-flex-positive:2;flex-grow:2}.c3tabfooter-perpage[data-v-399d122b]{background-color:transparent;color:#fff;border:transparent;padding-left:.5rem;outline:none;border:none;width:60px}.c3tabfooter-perpage option[data-v-399d122b]{background-color:#282828}.c3tabfooter-perpage option[data-v-399d122b]:checked{background-color:#222;color:#2297ff}.c3tabfooter-paginator[data-v-399d122b]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:3;-ms-flex-positive:3;flex-grow:3;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.c3tabfooter-controll[data-v-399d122b]{font-family:Roboto Mono;font-weight:500;cursor:pointer}.c3CommandList[data-v-66d149bc]{margin-bottom:24px}.command-for[data-v-66d149bc]{text-transform:capitalize}.c3CommandList[data-v-1bdb58ac]{margin-bottom:24px}.command-for[data-v-1bdb58ac]{text-transform:capitalize}.c3controll{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:1;flex-shrink:1;margin:30px auto 30px auto;padding:24px;background:#282828;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.5);box-shadow:0 1px 2px rgba(0,0,0,.5);border-radius:2px;width:100%;max-width:1200px;position:relative}.c3controll-help{position:absolute;top:22px;right:12px}.c3controll-help:hover:after{display:block;position:absolute;font-family:Roboto;font-size:12px;color:#bdbdbd;background-color:#222;border-radius:2px;width:-webkit-max-content;width:-moz-max-content;width:max-content;padding:4px 8px;top:30px;right:0;max-width:400px;z-index:9;content:"For full details click on the items in the table below."}.c3controll-select-gateway{margin-bottom:1rem}.c3controll-tabs{list-style-type:none;margin:0;padding:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;height:24px;margin-bottom:1rem}.c3controll-tabs li{font-family:Roboto;font-weight:500;padding-left:1rem;padding-right:1rem}.c3controll-tabs li.active{color:#2297ff;border-bottom:1px solid #2297ff}.c3controll-tabs li:hover{cursor:pointer}.c3tab{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.c3tab,.c3tab-filters{display:-webkit-box;display:-ms-flexbox;display:flex}.c3tab-filters .c3select{max-width:250px}.c3tab-filters .c3select:not(:first-of-type){margin-left:16px}.c3tab-info-dot{width:8px;height:8px;display:inline-block;border-radius:50%;margin:0 .25rem}.c3tab-info-dot.is-complete{background-color:#828282}.c3tab-info-dot.not-complete{background-color:#2297ff}.c3tab-info-dot.is-return{background-color:#ab61f6}.c3tab-info-dot.not-active{background-color:#cd9526}.c3tab-info-dot.is-active{background-color:#2297ff}.c3tab-info-dot.has-error{background-color:#bf0001}.datatable{font-size:14px;line-height:16px;border-collapse:collapse;width:100%}.datatable tbody tr{font-family:Roboto;font-weight:400}.datatable tbody tr:hover,.datatable tbody tr active{background:#222;cursor:pointer}.datatable tr{height:32px;border-bottom:2px solid #3d3d3d}.datatable td,.datatable th{text-align:left}.datatable td{color:#828282}.datatable th{color:#fff}.datatable thead tr{font-family:Roboto;font-weight:500;height:40px}.datatable thead tr th{font-weight:500}.c3command{background-color:#222;color:#828282;padding:8px}.c3side[data-v-b05e13a0]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin:0 auto;margin-top:150px;padding:16px 16px 16px 12px;width:100%;max-width:250px}.c3side-title-wrapper[data-v-b05e13a0]{border-bottom:2px solid #e0e0e0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.c3side-title[data-v-b05e13a0]{font-family:Roboto Mono;font-weight:500;font-size:18px;line-height:25px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;letter-spacing:-.05em;margin:0;color:#bdbdbd}.c3side-config-link[data-v-b05e13a0]{font-family:Roboto;color:#2297ff;font-size:12px;line-height:120%;display:flexc3btn-group;-ms-flex-item-align:end;align-self:flex-end;text-align:right;padding-bottom:2px;cursor:pointer}.c3side-body[data-v-b05e13a0]{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column;padding:8px}.c3side-body[data-v-b05e13a0],.c3side-refresh-wrapper[data-v-b05e13a0]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-direction:normal}.c3side-refresh-wrapper[data-v-b05e13a0]{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-top:-24px}.c3side-refres-title[data-v-b05e13a0]{line-height:32px;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.c3side-refres-dropdown[data-v-b05e13a0]{margin-bottom:0;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.c3side .c3btn-group[data-v-b05e13a0]{margin-top:24px}.c3gateway-row button[data-v-b0c691b0]{margin-left:1rem}.c3gateway{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-negative:1;flex-shrink:1;margin:40px auto 24px auto;padding:0;width:100%;max-width:1200px}.c3gateway,.c3gateway .icon.exclamation{position:relative}.c3gateway .icon.exclamation:hover:after{display:block;position:absolute;font-family:Roboto;font-size:12px;color:#bdbdbd;background-color:#222;border-radius:2px;width:-webkit-max-content;width:-moz-max-content;width:max-content;padding:4px 8px;top:30px;right:0;max-width:400px;z-index:9;content:"TODO: helper text for gateway selection."}.c3gateway-row{display:-webkit-box;display:-ms-flexbox;display:flex;padding:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:32px;width:100%;max-width:1200px}.c3gateway-row:first-of-type{margin:0 0 3px 0}.c3gateway-row:not(:first-of-type){margin:3px 0 3px 0}.c3gateway-row:last-of-type:not(:first-of-type){margin:3px 0 0 0}.c3gateway-row:only-child{margin:0}.c3gateway-title{font-family:Roboto Mono;font-weight:500;font-size:18px;line-height:25px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;letter-spacing:-.05em;color:#bdbdbd;margin-bottom:1rem}.c3notify{display:block;position:fixed;background-color:transparent;width:450px;max-height:100vh;height:auto;margin:3rem calc((100vw - 450px)/2) 3rem auto;padding:0;bottom:0;right:0;z-index:17;list-style:none}.c3notify li{-webkit-transition:all .25s cubic-bezier(0,-.05,.33,.99);transition:all .25s cubic-bezier(0,-.05,.33,.99)}.c3notify .slide-enter-active,.c3notify .slide-leave-active{-webkit-transition:all .5s cubic-bezier(0,-.05,.33,.99);transition:all .5s cubic-bezier(0,-.05,.33,.99)}.c3notify .slide-enter,.c3notify .slide-leave-to{-webkit-transform:translateY(10vh) scale(.9);transform:translateY(10vh) scale(.9);opacity:0}.c3notify-error,.c3notify-info{display:block;background-color:#4f4f4f;opacity:1;position:relative;min-height:40px;margin:1rem;padding:1rem;-webkit-box-shadow:0 4px 4px rgba(0,0,0,.25);box-shadow:0 4px 4px rgba(0,0,0,.25);border-radius:2px;right:calc(-50vw - 225px)}.c3notify-error h1,.c3notify-info h1{margin:0;padding:0;font-family:Roboto Mono;font-weight:500;font-size:18px;line-height:25px;letter-spacing:-.05em;color:#bdbdbd}.c3notify-error p,.c3notify-info p{margin:0;padding:0 12px 0 0;font-size:12px;line-height:14px;color:#fff}.c3notify-error h1+p,.c3notify-info h1+p{margin-top:.5rem}.c3notify-info{border-left:8px solid #2297ff}.c3notify-error{border-left:8px solid #bf0001}.c3notify-close{position:absolute;top:.5rem;right:.5rem;cursor:pointer}#app{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100vh;width:100vw;overflow:hidden;overflow-y:auto;margin:0;padding:0}.c3body{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row;margin:0 auto;padding:0;width:100%;max-width:1450px}.c3body,.c3body-main{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-direction:normal;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.c3body-main{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column;margin:0;padding:16px 12px 16px 16px}.c3body-gateway{max-width:610px;margin:48px auto 0 auto;height:auto}.c3body-no-gateway-message{display:block;background-color:#222;max-width:610px;margin:48px auto 0 auto;height:120px;padding:1rem;-webkit-box-shadow:0 4px 4px rgba(0,0,0,.25);box-shadow:0 4px 4px rgba(0,0,0,.25);border-radius:2px;border-left:8px solid #ffac00}.c3body-no-gateway-message h1{margin:0;padding:0;font-family:Roboto Mono;font-weight:500;font-size:18px;line-height:25px;letter-spacing:-.05em;color:#bdbdbd}.c3body-no-gateway-message p{margin:0;padding:0 12px 0 0;font-size:14px;line-height:20px;color:#fff}.c3body-no-gateway-message h1+p{margin-top:.5rem}@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:url(../fonts/roboto-v18-latin-regular.68889c24.eot);src:local("Roboto"),local("Roboto-Regular"),url(../fonts/roboto-v18-latin-regular.68889c24.eot?#iefix) format("embedded-opentype"),url(../fonts/roboto-v18-latin-regular.5d4aeb4e.woff2) format("woff2"),url(../fonts/roboto-v18-latin-regular.bafb105b.woff) format("woff"),url(../fonts/roboto-v18-latin-regular.372d0cc3.ttf) format("truetype"),url(../img/roboto-v18-latin-regular.3ce3e2e3.svg#Roboto) format("svg")}@font-face{font-family:Roboto;font-style:normal;font-weight:500;src:url(../fonts/roboto-v18-latin-500.03bb29d6.eot);src:local("Roboto Medium"),local("Roboto-Medium"),url(../fonts/roboto-v18-latin-500.03bb29d6.eot?#iefix) format("embedded-opentype"),url(../fonts/roboto-v18-latin-500.28546717.woff2) format("woff2"),url(../fonts/roboto-v18-latin-500.de8b7431.woff) format("woff"),url(../fonts/roboto-v18-latin-500.4d88404f.ttf) format("truetype"),url(../img/roboto-v18-latin-500.6b235824.svg#Roboto) format("svg")}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:400;src:url(../fonts/roboto-mono-v5-latin-regular.2b497e54.eot);src:local("Roboto Mono"),local("RobotoMono-Regular"),url(../fonts/roboto-mono-v5-latin-regular.2b497e54.eot?#iefix) format("embedded-opentype"),url(../fonts/roboto-mono-v5-latin-regular.e92cc0fb.woff2) format("woff2"),url(../fonts/roboto-mono-v5-latin-regular.1db1469b.woff) format("woff"),url(../fonts/roboto-mono-v5-latin-regular.c03588a7.ttf) format("truetype"),url(../img/roboto-mono-v5-latin-regular.6f861e95.svg#RobotoMono) format("svg")}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:500;src:url(../fonts/roboto-mono-v5-latin-500.d27e4d81.eot);src:local("Roboto Mono Medium"),local("RobotoMono-Medium"),url(../fonts/roboto-mono-v5-latin-500.d27e4d81.eot?#iefix) format("embedded-opentype"),url(../fonts/roboto-mono-v5-latin-500.f70f506c.woff2) format("woff2"),url(../fonts/roboto-mono-v5-latin-500.077525e5.woff) format("woff"),url(../fonts/roboto-mono-v5-latin-500.f2e00df8.ttf) format("truetype"),url(../img/roboto-mono-v5-latin-500.ea4b46c8.svg#RobotoMono) format("svg")}.c3btn{border-radius:2px;height:32px;font-family:Roboto;font-size:12px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-transform:uppercase;padding-left:1rem;padding-right:1rem;position:relative;margin-bottom:16px;min-width:100px;cursor:pointer;border:1px solid #2297ff;background-color:#2297ff;-webkit-box-shadow:none;box-shadow:none;color:#3d3d3d}.c3btn.pull-right{margin-left:auto}.c3btn:active{border:1px solid #2297ff;-webkit-box-shadow:none;box-shadow:none;color:#2297ff}.c3btn--grey,.c3btn:active{background-color:transparent}.c3btn--grey{border:1px solid #bdbdbd;color:#fff}.c3btn--grey:hover{border:1px solid #2297ff;color:#2297ff}.c3btn--grey:active{background-color:#2297ff;color:#3d3d3d}.c3btn--grey:active,.c3btn--outline{border:1px solid #2297ff;-webkit-box-shadow:none;box-shadow:none}.c3btn--outline{background-color:transparent;color:#2297ff}.c3btn--outline:active{border:1px solid #2297ff;background-color:#2297ff;-webkit-box-shadow:none;box-shadow:none;color:#3d3d3d}.c3btn--bottom{-ms-flex-item-align:end;align-self:flex-end}.c3btn[disabled]{color:#3d3d3d;border:1px solid #2297ff;background-color:#2297ff;border-radius:2px;cursor:default}.c3btn-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.c3btn-group .c3btn{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;white-space:nowrap;padding-left:0;padding-right:0}.c3btn-group .c3btn:not(:last-of-type){border-top-right-radius:0;border-bottom-right-radius:0;border-right:none}.c3btn-group .c3btn:last-of-type{border-top-left-radius:0;border-bottom-left-radius:0}.c3btn-group .c3btn:hover{border-right:1px solid #2297ff}.c3btn-group .c3btn:hover+.c3btn{border-left:none}body,html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;font-weight:400;background-color:#111;color:#bdbdbd;margin:0;padding:0;width:100vw;height:100vh}*,body,html{font-family:Roboto,sans-serif;-webkit-box-sizing:border-box;box-sizing:border-box}*{outline:none!important;background-color:inherit}span.icon{display:block;width:24px;height:24px}span.icon.exclamation,span.icon.exclamation:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M3 12c0-4.968 4.032-9 9-9s9 4.032 9 9-4.032 9-9 9-9-4.032-9-9zm8.22 1.944h1.641l.233-6.897h-2.106l.233 6.897zm1.62 1.374c-.2-.196-.466-.294-.799-.294-.328 0-.595.1-.8.301-.2.196-.3.445-.3.745 0 .301.1.55.3.745.205.196.472.294.8.294.333 0 .6-.098.8-.294a.986.986 0 00.307-.745.994.994 0 00-.307-.752z' fill='%23828282'/%3E%3C/svg%3E")}span.icon.exclamation,span.icon.exclamation:hover,span.icon.help{background-position:50%;background-repeat:no-repeat;background-size:24px}span.icon.help{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M3 12c0-4.968 4.032-9 9-9s9 4.032 9 9-4.032 9-9 9-9-4.032-9-9zm8.238.958c-.151.41-.227.959-.227 1.649h1.705l.027-.451c.048-.483.242-.904.579-1.264l.54-.57c.421-.453.716-.864.885-1.234.169-.374.253-.771.253-1.19 0-.922-.26-1.634-.78-2.137C13.702 7.254 12.972 7 12.03 7c-.932 0-1.67.266-2.21.798-.538.533-.811 1.27-.82 2.21h1.931c.01-.394.111-.702.307-.923.2-.227.463-.34.792-.34.693 0 1.039.416 1.039 1.249 0 .276-.067.54-.2.79-.133.247-.402.57-.806.97-.4.394-.675.795-.825 1.204zm-.12 3.105c-.2.212-.3.483-.3.813 0 .326.098.594.293.806.2.212.462.318.786.318s.584-.106.779-.318c.2-.212.3-.48.3-.806 0-.33-.103-.6-.307-.813a1.003 1.003 0 00-.772-.325c-.315 0-.575.108-.78.325z' fill='%23828282'/%3E%3C/svg%3E")}span.icon.help:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M3 12c0-4.968 4.032-9 9-9s9 4.032 9 9-4.032 9-9 9-9-4.032-9-9zm8.238.958c-.151.41-.227.959-.227 1.649h1.705l.027-.451c.048-.483.242-.904.579-1.264l.54-.57c.421-.453.716-.864.885-1.234.169-.374.253-.771.253-1.19 0-.922-.26-1.634-.78-2.137C13.702 7.254 12.972 7 12.03 7c-.932 0-1.67.266-2.21.798-.538.533-.811 1.27-.82 2.21h1.931c.01-.394.111-.702.307-.923.2-.227.463-.34.792-.34.693 0 1.039.416 1.039 1.249 0 .276-.067.54-.2.79-.133.247-.402.57-.806.97-.4.394-.675.795-.825 1.204zm-.12 3.105c-.2.212-.3.483-.3.813 0 .326.098.594.293.806.2.212.462.318.786.318s.584-.106.779-.318c.2-.212.3-.48.3-.806 0-.33-.103-.6-.307-.813a1.003 1.003 0 00-.772-.325c-.315 0-.575.108-.78.325z' fill='%23FFF'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:24px}span.icon.close,span.icon.close:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z' fill='%23828282'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:24px}span.icon.carrotup,span.icon.carrotup:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M17 14l-5-5-5 5h10z' fill='%23828282'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:24px}span.icon.carrotdown,span.icon.carrotdown:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M7 10l5 5 5-5H7z' fill='%23828282'/%3E%3C/svg%3E")}span.icon.carrotdown,span.icon.carrotdown:hover,span.icon.random{background-position:50%;background-repeat:no-repeat;background-size:24px}span.icon.random{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM7.5 18c-.83 0-1.5-.67-1.5-1.5S6.67 15 7.5 15s1.5.67 1.5 1.5S8.33 18 7.5 18zm0-9C6.67 9 6 8.33 6 7.5S6.67 6 7.5 6 9 6.67 9 7.5 8.33 9 7.5 9zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm0-9c-.83 0-1.5-.67-1.5-1.5S15.67 6 16.5 6s1.5.67 1.5 1.5S17.33 9 16.5 9z' fill='%23828282'/%3E%3C/svg%3E")}span.icon.random:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM7.5 18c-.83 0-1.5-.67-1.5-1.5S6.67 15 7.5 15s1.5.67 1.5 1.5S8.33 18 7.5 18zm0-9C6.67 9 6 8.33 6 7.5S6.67 6 7.5 6 9 6.67 9 7.5 8.33 9 7.5 9zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm0-9c-.83 0-1.5-.67-1.5-1.5S15.67 6 16.5 6s1.5.67 1.5 1.5S17.33 9 16.5 9z' fill='%23FFF'/%3E%3C/svg%3E")}span.icon.random:hover,span.icon.upload{background-position:50%;background-repeat:no-repeat;background-size:24px}span.icon.upload{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 18v2h18v-2H3z' fill='%23828282'/%3E%3Cpath d='M5 14H3v6h2v-6zM11 16h2V8h-2v8zM21 14h-2v6h2v-6zM8 8l4-4 4 4H8z' fill='%23828282'/%3E%3C/svg%3E")}span.icon.upload:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 18v2h18v-2H3z' fill='%23FFF'/%3E%3Cpath d='M5 14H3v6h2v-6zM11 16h2V8h-2v8zM21 14h-2v6h2v-6zM8 8l4-4 4 4H8z' fill='%23FFF'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:24px}span.icon.back,span.icon.back:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M15.4 7.4L14 6l-6 6 6 6 1.4-1.4-4.6-4.6 4.6-4.6z' fill='%23828282'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:24px}span.icon.add-comment,span.icon.add-comment:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M19.2 3c.99 0 1.791.81 1.791 1.8L21 21l-3.6-3.6H4.8c-.99 0-1.8-.81-1.8-1.8V4.8C3 3.81 3.81 3 4.8 3h14.4zm-4.3 6.307h-2.226V6.934H11.29v2.373H9.053v1.3h2.238v2.538h1.383v-2.538H14.9v-1.3z' fill='%23828282'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:24px}span.icon.fullscreen,span.icon.fullscreen:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M9 3H3v6h2V5h4V3zM21 9V3h-6v2h4v4h2zM15 21h6v-6h-2v4h-4v2zM3 15v6h6v-2H5v-4H3z' fill='%23FFF'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:24px}span.icon.zoomin,span.icon.zoomin:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M4 10h6V4H8v4H4v2zM14 4v6h6V8h-4V4h-2zM20 14h-6v6h2v-4h4v-2zM10 20v-6H4v2h4v4h2z' fill='%23FFF'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:24px}span.icon.more,span.icon.more:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z' fill='%23FFF'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:24px}span.icon.warning,span.icon.warning:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z' fill='%23BF0001'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:24px}span.icon.return,span.icon.return:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M3 12c0-4.968 4.032-9 9-9s9 4.032 9 9-4.032 9-9 9-9-4.032-9-9zm8.22 1.944h1.641l.233-6.897h-2.106l.233 6.897zm1.62 1.374c-.2-.196-.466-.294-.799-.294-.328 0-.595.1-.8.301-.2.196-.3.445-.3.745 0 .301.1.55.3.745.205.196.472.294.8.294.333 0 .6-.098.8-.294a.986.986 0 00.307-.745.994.994 0 00-.307-.752z' fill='%23AB61F6'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:24px}label.icon.checkbox-on,label.icon.checkbox-on:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='%232297ff' d='M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:20px}label.icon.checkbox-on--disabled,label.icon.checkbox-on--disabled:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='%231B6C51' d='M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:20px}label.icon.checkbox-off,label.icon.checkbox-off:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M17 3v14H3V3h14zm0-2H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2z' fill='%23FFF'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:20px}label.icon.checkbox-off--disabled,label.icon.checkbox-off--disabled:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M17 3v14H3V3h14zm0-2H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2z' fill='%234F4F4F'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:20px}.c3link.c3link{color:#2297ff;cursor:pointer}.capitalize{text-transform:capitalize}.flex-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between} \ No newline at end of file diff --git a/Src/WebController/Backend/wwwroot/img/logo.af58390c.svg b/Src/WebController/Backend/wwwroot/img/logo.5691b232.svg similarity index 100% rename from Src/WebController/Backend/wwwroot/img/logo.af58390c.svg rename to Src/WebController/Backend/wwwroot/img/logo.5691b232.svg diff --git a/Src/WebController/Backend/wwwroot/img/roboto-mono-v5-latin-500.93d2fbd1.svg b/Src/WebController/Backend/wwwroot/img/roboto-mono-v5-latin-500.ea4b46c8.svg similarity index 100% rename from Src/WebController/Backend/wwwroot/img/roboto-mono-v5-latin-500.93d2fbd1.svg rename to Src/WebController/Backend/wwwroot/img/roboto-mono-v5-latin-500.ea4b46c8.svg diff --git a/Src/WebController/Backend/wwwroot/img/roboto-mono-v5-latin-regular.96a9bbe5.svg b/Src/WebController/Backend/wwwroot/img/roboto-mono-v5-latin-regular.6f861e95.svg similarity index 100% rename from Src/WebController/Backend/wwwroot/img/roboto-mono-v5-latin-regular.96a9bbe5.svg rename to Src/WebController/Backend/wwwroot/img/roboto-mono-v5-latin-regular.6f861e95.svg diff --git a/Src/WebController/Backend/wwwroot/img/roboto-v18-latin-500.95204ac9.svg b/Src/WebController/Backend/wwwroot/img/roboto-v18-latin-500.6b235824.svg similarity index 100% rename from Src/WebController/Backend/wwwroot/img/roboto-v18-latin-500.95204ac9.svg rename to Src/WebController/Backend/wwwroot/img/roboto-v18-latin-500.6b235824.svg diff --git a/Src/WebController/Backend/wwwroot/img/roboto-v18-latin-regular.8681f434.svg b/Src/WebController/Backend/wwwroot/img/roboto-v18-latin-regular.3ce3e2e3.svg similarity index 100% rename from Src/WebController/Backend/wwwroot/img/roboto-v18-latin-regular.8681f434.svg rename to Src/WebController/Backend/wwwroot/img/roboto-v18-latin-regular.3ce3e2e3.svg diff --git a/Src/WebController/Backend/wwwroot/index.html b/Src/WebController/Backend/wwwroot/index.html index fbe43a4..2c9ac60 100644 --- a/Src/WebController/Backend/wwwroot/index.html +++ b/Src/WebController/Backend/wwwroot/index.html @@ -1 +1 @@ -c3
\ No newline at end of file +c3
\ No newline at end of file diff --git a/Src/WebController/Backend/wwwroot/js/app.845f1b3c.js b/Src/WebController/Backend/wwwroot/js/app.845f1b3c.js deleted file mode 100644 index 30fa202..0000000 --- a/Src/WebController/Backend/wwwroot/js/app.845f1b3c.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(t){function e(e){for(var n,o,r=e[0],c=e[1],l=e[2],u=0,h=[];u2&&void 0!==arguments[2]?arguments[2]:{};this.newModal({modalTarget:e,modalTargetId:t,modalOptions:a})}},{key:"closeThisModal",value:function(){this.closeModal()}},{key:"closeAllModal",value:function(){this.closeModalAll()}},{key:"addNotify",value:function(t){this.insertNotify(t)}},{key:"interfaceTypeName",value:function(t){if(t&&null!==t.type){if(t.klass)return this.getTypeNameForInterface(t.type,t.klass);this.addNotify({type:"error",message:"Interface Type cannot be determined. Must be a channel, connector or peripheral."})}return""}},{key:"interfaceType",value:function(t){return t.isReturnChannel?"Return Channel":t.isNegotiationChannel?"Negotiation Channel":""}},{key:"commandType",value:function(t){return t.interfaceId&&void 0!==t.interfaceId?t.relayAgentId&&void 0!==t.relayAgentId?this.getNodeKlass(t.interfaceId+"-"+t.relayAgentId):this.getNodeKlass(t.interfaceId+"-"+this.gateway.id):t.relayAgentId&&void 0!==t.relayAgentId?n.Relay:n.Gateway}},{key:"commandTypeId",value:function(t){return t.relayAgentId&&void 0!==t.relayAgentId?""+t.relayAgentId:t.interfaceId&&void 0!==t.interfaceId?""+t.interfaceId:this.gateway?""+this.gateway.id:"error"}},{key:"isCommandPending",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return e?!0===t.isPending?"Pending":"Complete":!0===t.isPending?"is-complete":"not-complete"}},{key:"handleGlobalKeyDown",value:function(t){27===t.keyCode&&this.closeAllModal()}},{key:"unixTimeToString",value:function(t){var e=new Date(1e3*t),a=e.toISOString();return a=a.replace(/-/g,"/"),a=a.replace("T"," "),a=a.replace(".000Z",""),a}},{key:"itemPerPage",get:function(){return this.getItemPerPage}},{key:"actualPage",get:function(){return this.getActualPage}},{key:"maxIndex",get:function(){return this.itemPerPage*this.actualPage}},{key:"minIndex",get:function(){return this.maxIndex-this.itemPerPage}},{key:"gateway",get:function(){return void 0===this.getGateway?g:this.getGateway}}]),e}(f["d"]);Object(h["a"])([w.Mutation],k.prototype,"newModal",void 0),Object(h["a"])([w.Mutation],k.prototype,"closeModal",void 0),Object(h["a"])([w.Mutation],k.prototype,"closeModalAll",void 0),Object(h["a"])([b.Action],k.prototype,"insertNotify",void 0),Object(h["a"])([C.Getter],k.prototype,"getTypeNameForInterface",void 0),Object(h["a"])([O.Getter],k.prototype,"getItemPerPage",void 0),Object(h["a"])([O.Getter],k.prototype,"getActualPage",void 0),Object(h["a"])([v.Getter],k.prototype,"getNodeKlass",void 0),Object(h["a"])([v.Getter],k.prototype,"getGateway",void 0),k=Object(h["a"])([f["a"]],k);var j=k,I=function(){var t=this,e=t.$createElement,a=t._self._c||e;return void 0!==t.relay?a("div",{staticClass:"c3modal-body"},[a("div",{staticClass:"c3modal-header",class:{"has-error":!!t.relay.error}},[a("h1",[t._v("\n Relay: "),a("span",[t._v(" "+t._s(t.relay.name)+" / "+t._s(t.relay.id))])]),a("div",{staticClass:"flex-row"},[a("div",{staticClass:"details"},[a("p",[t._v("\n Parent\n "),a("span",{staticClass:"c3link",on:{click:function(e){return t.openModal(t.relay.parentId,t.relay.parentKlass)}}},[a("span",{staticClass:"capitalize"},[t._v(t._s(t.relay.parentKlass.toLowerCase())+" /\n ")]),t._v("\n "+t._s(t.relay.parentId)+"\n ")])]),a("p",[t._v("\n Build ID "),a("span",[t._v(t._s(t.relay.buildId))])]),a("p",[t._v("\n Last seen "),a("span",[t._v(t._s(t.unixTimeToString(t.relay.timestamp)))])])]),a("div",{staticClass:"actions"},[a("button",{staticClass:"c3btn c3btn--outline",on:{click:function(e){return t.openModal(t.relay.id,"COMMAND_CENTER")}}},[t._v("\n Command Center\n ")])])]),a("div",{staticClass:"flex-row host-info"},[a("div",{staticClass:"details"},[a("p",[a("span",{staticClass:"details-title"},[t._v("Computer Name ")]),a("span",{staticClass:"details-value"},[t._v(t._s(t.relay.hostInfo.computerName))])]),a("p",[a("span",{staticClass:"details-title"},[t._v("User Name ")]),a("span",{staticClass:"details-value"},[t._v(t._s(t.relay.hostInfo.userName))])]),a("p",[a("span",{staticClass:"details-title"},[t._v("Domain ")]),a("span",{staticClass:"details-value"},[t._v(t._s(""===t.relay.hostInfo.domain?"-":t.relay.hostInfo.domain))])]),a("p",[a("span",{staticClass:"details-title"},[t._v("processId ")]),a("span",{staticClass:"details-value"},[t._v(t._s(t.relay.hostInfo.processId))])]),a("p",[a("span",{staticClass:"details-title"},[t._v("is Elevated ")]),a("span",{staticClass:"details-value"},[t._v(t._s(t.relay.hostInfo.isElevated))])])]),a("div",{staticClass:"details"},[a("p",[a("span",{staticClass:"details-title"},[t._v("OS Major Version ")]),a("span",{staticClass:"details-value"},[t._v(t._s(t.relay.hostInfo.osMajorVersion))])]),a("p",[a("span",{staticClass:"details-title"},[t._v("OS Minor Version ")]),a("span",{staticClass:"details-value"},[t._v(t._s(t.relay.hostInfo.osMinorVersion))])]),a("p",[a("span",{staticClass:"details-title"},[t._v("OS Build Number ")]),a("span",{staticClass:"details-value"},[t._v(t._s(t.relay.hostInfo.osBuildNumber))])]),a("p",[a("span",{staticClass:"details-title"},[t._v("OS Service Pack Major ")]),a("span",{staticClass:"details-value"},[t._v(t._s(t.relay.hostInfo.osServicePackMajor))])]),a("p",[a("span",{staticClass:"details-title"},[t._v("OS Service Pack Minor ")]),a("span",{staticClass:"details-value"},[t._v(t._s(t.relay.hostInfo.osServicePackMinor))])]),a("p",[a("span",{staticClass:"details-title"},[t._v("OS Product Type ")]),a("span",{staticClass:"details-value"},[t._v(t._s(t.relay.hostInfo.osProductType))])]),a("p",[a("span",{staticClass:"details-title"},[t._v("OS Version ")]),a("span",{staticClass:"details-value"},[t._v(t._s(t.relay.hostInfo.osVersion))])])])]),t.relay.error&&""!==t.relay.error?a("p",{staticClass:"message-with-icon"},[a("span",{staticClass:"icon warning"}),t._v("\n Error: "+t._s(t.relay.error)+"\n ")]):t._e()]),a("div",{staticClass:"c3modal-details"},[a("ChannelList",{attrs:{"target-id":t.targetId,title:"Channels","show-empty":!0}}),a("PheripheralList",{attrs:{"target-id":t.targetId,title:"Peripherals","show-empty":!0}}),a("RouteList",{attrs:{"target-id":t.targetId,"parent-id":t.relay.id,"parent-klass":"RELAY",title:"Routes","show-empty":!0}}),"{}"!==JSON.stringify(t.relay.initialCommand)?[a("h1",[t._v("Command")]),a("pre",{staticClass:"c3command"},[t._v(t._s(JSON.stringify(t.relay.initialCommand,null,4)))])]:t._e()],2)]):t._e()},_=[],x=function(){var t=this,e=t.$createElement,a=t._self._c||e;return t.routes&&t.routes.length||t.displayEmpty?a("div",{staticClass:"c3route-list"},[a("h1",{directives:[{name:"show",rawName:"v-show",value:t.hasTitle,expression:"hasTitle"}]},[t._v(t._s(t.title))]),t.routes.length?[a("table",{staticClass:"datatable"},[t._m(0),a("tbody",t._l(t.routes,(function(e){return a("tr",{key:e.destinationAgent},[a("td",[t._v(t._s(e.destinationAgent)+":"+t._s(e.receivingInterface))]),a("td",[t._v(t._s(e.destinationAgent))]),a("td",[t._v(t._s(e.outgoingInterface))]),a("td",[t._v(t._s(e.receivingInterface))]),a("td",[t._v(t._s(e.isNeighbour?"Yes":""))]),a("td",{staticStyle:{position:"relative"}},[a("span",{staticClass:"c3route-list-more-btn icon more"}),a("ul",{staticClass:"c3route-list-menu"},[a("li",{staticClass:"c3route-list-menu-item",on:{click:function(a){return t.sendCommand(e.destinationAgent+":"+e.receivingInterface)}}},[t._v("\n Delete\n ")])])])])})),0)])]:t.displayEmpty?[t._v("\n No routes found...\n ")]:t._e()],2):t._e()},N=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("thead",[a("tr",[a("th",[t._v("Route ID")]),a("th",[t._v("Destination Agent")]),a("th",[t._v("Outgoing Interface")]),a("th",[t._v("Receiving Interface")]),a("th",[t._v("Is Neighbour")]),a("th")])])}],T=(a("7f7f"),a("7514"),a("bc3a")),R=a.n(T),G=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"hasTitle",get:function(){return!!this.title&&""!==this.title}},{key:"displayEmpty",get:function(){return!!this.showEmpty&&!0===this.showEmpty}}]),e}(i["a"]);Object(h["a"])([Object(f["c"])()],G.prototype,"title",void 0),Object(h["a"])([Object(f["c"])()],G.prototype,"showEmpty",void 0),G=Object(h["a"])([f["a"]],G);var L=G,M=Object(p["a"])("c3Module"),E=Object(p["a"])("c3Capability"),P=Object(p["a"])("optionsModule"),A=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"sendCommand",value:function(t){var e=this,a=null;a=this.targetId?{name:"RelayCommandGroup",data:{id:this.getCommandId,name:"Command",command:"RemoveRoute",arguments:[{type:"string",name:"RouteID",value:t}]}}:{name:"GatewayCommandGroup",data:{id:this.getCommandId,name:"Command",command:"RemoveRoute",arguments:[{type:"string",name:"RouteID",value:t}]}};var i="/api/gateway/";if(this.parentKlass&&this.parentKlass===n.Gateway&&(i+="".concat(this.parentId,"/command")),this.parentKlass&&this.parentKlass===n.Relay){var s=this.getRelay(this.parentId);i+=s?"".concat(s.parentId,"/relay/").concat(this.parentId,"/command"):"".concat(this.parentId,"/command")}R()({url:i,method:"POST",baseURL:this.getAPIBaseUrl,data:a}).then((function(t){e.addNotify({type:"info",message:"Command successfully sent..."}),e.closeThisModal()})).catch((function(t){var a="Command NOT sent: "+t.message;e.addNotify({type:"error",message:a}),console.error(t.message)}))}},{key:"routes",get:function(){return this.targetId?this.getRelayRoutes(this.targetId):this.getGatewayRoutes}},{key:"getCommandId",get:function(){var t=this.targetId?"RELAY":"GATEWAY",e=this.getCapabilityFor("Command",t);if(e){var a=e.commands.find((function(t){return"RemoveRoute"===t.name}));return a.id}return""}},{key:"relay",get:function(){var t=this.getRelay(this.targetId);return t||this.closeThisModal(),t}}]),e}(Object(f["b"])(j,L));Object(h["a"])([Object(f["c"])()],A.prototype,"targetId",void 0),Object(h["a"])([Object(f["c"])()],A.prototype,"parentId",void 0),Object(h["a"])([Object(f["c"])()],A.prototype,"parentKlass",void 0),Object(h["a"])([M.Getter],A.prototype,"getRelay",void 0),Object(h["a"])([M.Getter],A.prototype,"getGatewayRoutes",void 0),Object(h["a"])([M.Getter],A.prototype,"getRelayRoutes",void 0),Object(h["a"])([E.Getter],A.prototype,"getCapabilityFor",void 0),Object(h["a"])([P.Getter],A.prototype,"getAPIBaseUrl",void 0),A=Object(h["a"])([f["a"]],A);var D=A,S=D,F=(a("be23"),a("2877")),U=Object(F["a"])(S,x,N,!1,null,"7a6fc393",null),B=U.exports,$=function(){var t=this,e=t.$createElement,a=t._self._c||e;return t.channels.length||t.displayEmpty?a("div",{staticClass:"c3InterfaceList"},[a("h1",{directives:[{name:"show",rawName:"v-show",value:t.hasTitle,expression:"hasTitle"}]},[t._v(t._s(t.title))]),t.channels.length?[a("table",{staticClass:"datatable"},[t._m(0),a("tbody",t._l(t.channels,(function(e){return a("tr",{key:e.id,on:{click:function(a){return t.openModal(e.uid,e.klass)}}},[a("td",{staticClass:"c3link"},[t._v(t._s(e.id))]),a("td",[t._v(t._s(t.interfaceTypeName(e)))]),a("td",[t._v(t._s(t.interfaceType(e)))])])})),0)])]:t.displayEmpty?[t._v("\n No channels found...\n ")]:t._e()],2):t._e()},V=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("thead",[a("tr",[a("th",[t._v("Channel ID")]),a("th",[t._v("Name")]),a("th",[t._v("Channel Type")])])])}],K=Object(p["a"])("c3Module"),z=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"channels",get:function(){return this.targetId?this.getInterfacesFor(n.Channel,this.targetId):this.getInterfacesFor(n.Channel,null)}}]),e}(Object(f["b"])(j,L));Object(h["a"])([Object(f["c"])()],z.prototype,"targetId",void 0),Object(h["a"])([K.Getter],z.prototype,"getInterfacesFor",void 0),z=Object(h["a"])([f["a"]],z);var H=z,Z=H,Y=(a("1956"),Object(F["a"])(Z,$,V,!1,null,"f4969ade",null)),J=Y.exports,X=function(){var t=this,e=t.$createElement,a=t._self._c||e;return t.peripherals.length||t.displayEmpty?a("div",{staticClass:"c3InterfaceList"},[a("h1",{directives:[{name:"show",rawName:"v-show",value:t.hasTitle,expression:"hasTitle"}]},[t._v(t._s(t.title))]),t.peripherals.length?[a("table",{staticClass:"datatable"},[t._m(0),a("tbody",t._l(t.peripherals,(function(e){return a("tr",{key:e.id,on:{click:function(a){return t.openModal(e.uid,e.klass)}}},[a("td",{staticClass:"c3link"},[t._v(t._s(e.id))]),a("td",[t._v(t._s(t.interfaceTypeName(e)))])])})),0)])]:t.displayEmpty?[t._v("\n No peripherals found...\n ")]:t._e()],2):t._e()},W=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("thead",[a("tr",[a("th",[t._v("Peripheral ID")]),a("th",[t._v("Name")])])])}],q=Object(p["a"])("c3Module"),Q=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"peripherals",get:function(){return this.targetId?this.getInterfacesFor(n.Peripheral,this.targetId):this.getInterfacesFor(n.Peripheral,null)}}]),e}(Object(f["b"])(j,L));Object(h["a"])([Object(f["c"])()],Q.prototype,"targetId",void 0),Object(h["a"])([q.Getter],Q.prototype,"getInterfacesFor",void 0),Q=Object(h["a"])([f["a"]],Q);var tt=Q,et=tt,at=(a("5ae9"),Object(F["a"])(et,X,W,!1,null,"0686e7da",null)),nt=at.exports,it=Object(p["a"])("c3Module"),st=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"mounted",value:function(){window.addEventListener("keydown",this.handleGlobalKeyDown,!0)}},{key:"beforeDestroy",value:function(){window.removeEventListener("keydown",this.handleGlobalKeyDown,!0)}},{key:"relay",get:function(){var t=this.getRelay(this.targetId);return t||this.closeThisModal(),t}}]),e}(Object(f["b"])(j));Object(h["a"])([Object(f["c"])()],st.prototype,"targetId",void 0),Object(h["a"])([it.Getter],st.prototype,"getRelay",void 0),st=Object(h["a"])([Object(f["a"])({components:{RouteList:B,ChannelList:J,PheripheralList:nt}})],st);var ot=st,rt=ot,ct=(a("3f41"),Object(F["a"])(rt,I,_,!1,null,null,null)),lt=ct.exports,dt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return void 0!==t.c3Command?a("div",{staticClass:"c3modal-body"},[a("div",{staticClass:"c3modal-details"},[a("h1",[t._v("\n Command Details\n ")]),a("table",{staticClass:"datatable"},[t._m(0),a("tbody",[a("tr",{on:{click:function(e){t.openModal(t.InterfaceUID(t.c3Command),t.commandType(t.c3Command))}}},[a("td",[a("span",{staticClass:"c3tab-pending",class:t.isCommandPending(t.c3Command)}),t._v("\n "+t._s(t.c3Command.id)+"\n ")]),a("td",[t._v("\n "+t._s(t.isCommandPending(t.c3Command,!0))+"\n ")]),a("td",{staticClass:"hover-link command-for"},[t._v("\n "+t._s(t.commandType(t.c3Command).toLowerCase())+"\n ")]),a("td",[t._v("\n "+t._s(t.commandTypeId(t.c3Command))+"\n ")])])])]),a("pre",{staticClass:"c3command"},[t._v(t._s(JSON.stringify(t.c3Command,null,4)))])])]):t._e()},ut=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("thead",[a("tr",[a("th",[t._v("Command ID")]),a("th",[t._v("Status")]),a("th",[t._v("Command for")]),a("th",[t._v("ID")])])])}],ht=Object(p["a"])("c3CommandModule"),ft=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"mounted",value:function(){window.addEventListener("keydown",this.handleGlobalKeyDown,!0)}},{key:"beforeDestroy",value:function(){window.removeEventListener("keydown",this.handleGlobalKeyDown,!0)}},{key:"InterfaceUID",value:function(t){return t.interfaceId?t.relayAgentId?t.interfaceId+"-"+t.relayAgentId:t.interfaceId+"-"+this.gateway.id:t.relayAgentId?t.relayAgentId:this.gateway.id}},{key:"c3Command",get:function(){var t=this.getCommand(this.targetId);return t||(this.closeThisModal(),this.addNotify({type:"error",message:"The Commandyou looking for: ".concat(this.targetId,", not exist.")})),t}}]),e}(Object(f["b"])(j));Object(h["a"])([Object(f["c"])()],ft.prototype,"targetId",void 0),Object(h["a"])([ht.Getter],ft.prototype,"getCommand",void 0),ft=Object(h["a"])([f["a"]],ft);var pt=ft,gt=pt,mt=(a("2a30"),Object(F["a"])(gt,dt,ut,!1,null,"3748fed6",null)),yt=mt.exports,vt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return null!==t.gateway?a("div",{staticClass:"c3modal-body"},[a("div",{staticClass:"c3modal-header",class:{"has-error":!!t.gateway.error}},[a("h1",[t._v("\n Gateway: "),a("span",[t._v(" "+t._s(t.gateway.name)+" / "+t._s(t.gateway.id))])]),a("div",{staticClass:"flex-row"},[a("div",{staticClass:"details"},[a("p",[t._v("\n Build ID "),a("span",[t._v(t._s(t.gateway.buildId))])]),a("p",[t._v("\n Start time "),a("span",[t._v(t._s(t.unixTimeToString(t.gateway.timestamp)))])])]),a("div",{staticClass:"actions"},[a("button",{staticClass:"c3btn c3btn--grey",on:{click:function(e){return t.openModal("","CREATE_RELAY")}}},[t._v("\n New Relay\n ")])])]),t.gateway.error&&""!==t.gateway.error?a("p",{staticClass:"message-with-icon"},[a("span",{staticClass:"icon warning"}),t._v("\n Error: "+t._s(t.gateway.error)+"\n ")]):t._e(),a("div",{staticClass:"flex-row"},[a("NetworkStats",{staticStyle:{width:"250px"}}),a("div",{staticClass:"actions"},[a("button",{staticClass:"c3btn c3btn--outline",on:{click:function(e){return t.openModal(t.gateway.id,"COMMAND_CENTER")}}},[t._v("\n Command Center\n ")])])],1)]),a("div",{staticClass:"c3modal-details"},[a("ChannelList",{attrs:{"target-id":null,title:"Channels","show-empty":!0}}),a("PheripheralList",{attrs:{"target-id":null,title:"Peripherals","show-empty":!0}}),a("ConnectorList",{attrs:{title:"Connectors","show-empty":!0}}),a("RouteList",{attrs:{"target-id":null,"parent-id":t.gateway.id,"parent-klass":"GATEWAY",title:"Routes","show-empty":!0}})],1)]):t._e()},bt=[],wt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3Stats"},[a("p",[a("span",[t._v("Relays")]),a("span",[t._v(t._s(t.countRelays))])]),a("p",[a("span",[t._v("Channels")]),a("span",[t._v(t._s(t.countChannels))])]),a("p",[a("span",[t._v("Connectors")]),a("span",[t._v(t._s(t.countConnectors))])]),a("p",[a("span",[t._v("Peripherals")]),a("span",[t._v(t._s(t.countPheripherals))])]),a("p",[a("span",[t._v("URL")]),a("span",[t._v(t._s(t.url))])]),a("p",[a("span",[t._v("Port")]),a("span",[t._v(t._s(t.port))])])])},Ct=[],Ot=Object(p["a"])("c3Module"),kt=Object(p["a"])("optionsModule"),jt=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"url",get:function(){return this.getAPIUrl}},{key:"port",get:function(){return this.getAPIPort}},{key:"refreshInterval",get:function(){return this.getRefreshInterval}},{key:"countRelays",get:function(){return this.getRelays.length}},{key:"countChannels",get:function(){return this.getInterfaces([n.Channel]).length}},{key:"countConnectors",get:function(){return this.getInterfaces([n.Connector]).length}},{key:"countPheripherals",get:function(){return this.getInterfaces([n.Peripheral]).length}}]),e}(Object(f["b"])(j));Object(h["a"])([Ot.Getter],jt.prototype,"getRelays",void 0),Object(h["a"])([Ot.Getter],jt.prototype,"getInterfaces",void 0),Object(h["a"])([kt.Getter],jt.prototype,"getAPIUrl",void 0),Object(h["a"])([kt.Getter],jt.prototype,"getAPIPort",void 0),Object(h["a"])([kt.Getter],jt.prototype,"getRefreshInterval",void 0),jt=Object(h["a"])([f["a"]],jt);var It=jt,_t=It,xt=(a("c1fb"),Object(F["a"])(_t,wt,Ct,!1,null,"b5131632",null)),Nt=xt.exports,Tt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return t.connectors.length||t.displayEmpty?a("div",{staticClass:"c3InterfaceList"},[a("h1",{directives:[{name:"show",rawName:"v-show",value:t.hasTitle,expression:"hasTitle"}]},[t._v(t._s(t.title))]),t.connectors.length?[a("table",{staticClass:"datatable"},[t._m(0),a("tbody",t._l(t.connectors,(function(e){return a("tr",{key:e.id,on:{click:function(a){return t.openModal(e.uid,e.klass)}}},[a("td",{staticClass:"c3link"},[t._v(t._s(e.id))]),a("td",[t._v(t._s(t.interfaceTypeName(e)))])])})),0)])]:t.displayEmpty?[t._v("\n No connectors found...\n ")]:t._e()],2):t._e()},Rt=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("thead",[a("tr",[a("th",[t._v("Connector ID")]),a("th",[t._v("Name")])])])}],Gt=Object(p["a"])("c3Module"),Lt=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"connectors",get:function(){return this.getInterfacesFor(n.Connector,null)}}]),e}(Object(f["b"])(j,L));Object(h["a"])([Gt.Getter],Lt.prototype,"getInterfacesFor",void 0),Lt=Object(h["a"])([f["a"]],Lt);var Mt=Lt,Et=Mt,Pt=(a("c28f"),Object(F["a"])(Et,Tt,Rt,!1,null,"5ea1cc30",null)),At=Pt.exports,Dt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3modal-body"},[a("div",{staticClass:"c3modal-details"},[t.isNotEmbeded?a("h1",[t._v("\n Create Command for: "+t._s(t.currentItem.klass)+" - "+t._s(t.currentItem.name)+"\n "+t._s(t.interfaceTypeName(t.currentItem))+"/ "+t._s(t.currentItem.id)+"\n ")]):t._e(),a("div",{staticClass:"c3command-group"},[a("Select",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],staticClass:"form-element",attrs:{legend:"Select Command Group",selected:t.selectedCommandGroup,options:t.commandGroupOptions,border:!0},on:{change:function(e){return t.changeCommandGroup(e,t.commandGroup)}}}),a("Select",{staticClass:"form-element",attrs:{legend:"Select Command",selected:t.selectedCommandTarget,options:t.commandTargetOptions,border:!0},on:{change:function(e){return t.changeCommandTarget(e,t.commandTarget)}}})],1),void 0!==t.selectedInterface&&void 0!==t.selectedCommand?a("GeneralForm",{key:t.selectedInterface+t.selectedCommand+t.selectedCommand,attrs:{klass:t.selectedInterfaceKlass,"interface-name":t.selectedInterface,command:t.selectedCommand,"target-id":t.targetId,target:t.selectedInterface,options:t.argumentOptions},on:{change:function(e){return t.changeForm(e,t.formData)}}}):t._e(),t.isNotEmbeded?a("dir",{staticClass:"flex-row c3modal-actions"},[a("button",{staticClass:"c3btn c3btn--grey",on:{click:function(e){return e.target!==e.currentTarget?null:t.closeThisModal()}}},[t._v("\n Cancel\n ")]),a("button",{staticClass:"c3btn",attrs:{disabled:t.formIsValid},on:{click:function(e){return t.sendCommand()}}},[t._v("\n Send Command\n ")])]):t._e()],1)])},St=[],Ft=(a("28a5"),a("ac6a"),a("456d"),a("761a")),Ut=a.n(Ft),Bt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3input-wrapper"},[t.hasHelp?a("span",{staticClass:"icon help"},[a("div",{staticClass:"help-text"},[t._v("\n "+t._s(t.help)+"\n ")])]):t._e(),t.random?a("span",{staticClass:"icon random",on:{click:function(e){return e.target!==e.currentTarget?null:t.onClickRandom(e)}}}):t._e(),a("input",t._b({directives:[{name:"model",rawName:"v-model",value:t.inputText,expression:"inputText"},{name:"validate",rawName:"v-validate",value:t.validate,expression:"validate"}],ref:"textinput",staticClass:"c3input-input",class:{dirty:t.isDirty},attrs:{type:"text",disabled:t.isDisabled,name:t.inputUID,autocomplete:t.autocomplete},domProps:{value:t.inputText},on:{change:t.changeInputText,focus:function(e){return t.gainFocus()},blur:function(e){return t.lostFocus()},input:function(e){e.target.composing||(t.inputText=e.target.value)}}},"input",t.$attrs,!1)),a("label",{staticClass:"c3input-label",class:{dirty:t.isDirty},on:{click:function(e){return e.target!==e.currentTarget?null:t.clickOnLabel()}}},[t._v("\n "+t._s(t.legend)+"\n ")]),a("span",{staticClass:"error-message"},[t._v(t._s(t.errors.first(t.inputUID)))])])},$t=[],Vt=(a("6b54"),function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"hasHelp",get:function(){return!!this.help}},{key:"isDisabled",get:function(){return!!this.disabled}},{key:"inputUID",get:function(){return this.name?this.name:Math.random().toString(36).substring(2)}}]),e}(i["a"]));Object(h["a"])([Object(f["c"])()],Vt.prototype,"help",void 0),Object(h["a"])([Object(f["c"])()],Vt.prototype,"name",void 0),Object(h["a"])([Object(f["c"])()],Vt.prototype,"legend",void 0),Object(h["a"])([Object(f["c"])()],Vt.prototype,"disabled",void 0),Object(h["a"])([Object(f["c"])()],Vt.prototype,"autocomplete",void 0),Vt=Object(h["a"])([f["a"]],Vt);var Kt=Vt,zt=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.focused=!1,t.inputText=t.getValue,t.intervalTimer=null,t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"mounted",value:function(){this.changeInputText(),window.addEventListener("inputkeypress",this.handleEnterAndTabKeyDown,!0)}},{key:"beforeDestroy",value:function(){window.removeEventListener("inputkeypress",this.handleEnterAndTabKeyDown,!0)}},{key:"gainFocus",value:function(){this.focused=!0,this.intervalTimer=setInterval(this.changeInputText,500)}},{key:"lostFocus",value:function(){this.focused=!1,clearInterval(this.intervalTimer),this.changeInputText()}},{key:"clickOnLabel",value:function(){this.$refs.textinput.focus()}},{key:"changeInputText",value:function(){var t=this;this.$validator.verify(this.$refs.textinput.value,this.validate).then((function(e){var a=e.valid;t.$emit("change",{value:t.inputText,valid:a})}))}},{key:"handleEnterAndTabKeyDown",value:function(t){13!==t.keyCode&&9!==t.keyCode||this.changeInputText()}},{key:"rand",value:function(t){return t<1&&(t=1),t>10&&(t=10),Math.random().toString(36).substring(2).substr(0,t)}},{key:"onClickRandom",value:function(){var t=this;this.inputText=this.rand(parseInt(this.random,10)),this.$validator.validate().then((function(e){t.changeInputText()}))}},{key:"getValue",get:function(){return""!==this.value&&void 0!==this.value||!this.random?this.value||"":this.rand(parseInt(this.random,10))}},{key:"isDirty",get:function(){return!!this.value||!!this.inputText}}]),e}(Object(f["b"])(j,Kt));Object(h["a"])([Object(f["c"])()],zt.prototype,"value",void 0),Object(h["a"])([Object(f["c"])()],zt.prototype,"random",void 0),Object(h["a"])([Object(f["c"])()],zt.prototype,"validate",void 0),zt=Object(h["a"])([Object(f["a"])({$_veeValidate:{validator:"new"}})],zt);var Ht=zt,Zt=Ht,Yt=(a("6856"),Object(F["a"])(Zt,Bt,$t,!1,null,"0d08badc",null)),Jt=Yt.exports,Xt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3select",class:{disabled:t.isDisabled}},[a("div",{directives:[{name:"show",rawName:"v-show",value:t.isOpen,expression:"isOpen"}],staticClass:"c3select-close",on:{click:function(e){return e.target!==e.currentTarget?null:t.toggleSelect()}}}),a("div",{staticClass:"c3select-select"},[a("span",{staticClass:"c3select-selected",class:{"c3select-border":t.hasBorder},on:{click:function(e){return e.target!==e.currentTarget?null:t.toggleSelect()}}},[t._v("\n "+t._s(t.selectedValue)+"\n ")]),t.legend?a("span",{staticClass:"c3select-legend"},[t._v("\n "+t._s(t.legend)+"\n ")]):t._e(),a("span",{staticClass:"c3select-icon icon",class:t.dropDownIcon,on:{click:function(e){return e.target!==e.currentTarget?null:t.toggleSelect()}}})]),a("ul",{directives:[{name:"show",rawName:"v-show",value:t.isOpen,expression:"isOpen"}],staticClass:"c3select-options",class:{"c3select-direction-up":t.directionReverse},style:t.selectUlStyle},t._l(t.options,(function(e,n){return a("li",{key:n,staticClass:"c3select-option",class:{selected:t.isSelected(n)},on:{click:function(e){return e.target!==e.currentTarget?null:t.selectAndClose(n)}}},[t._v("\n "+t._s(e)+"\n ")])})),0)])},Wt=[],qt=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.isOpen=!1,t.hasBorder=t.border||!1,t.directionReverse=t.up||!1,t.selectRef=Math.random().toString(36).substring(2),t.selectUlStyle="",t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"mounted",value:function(){this.up||this.calculateSelectUlOffset()}},{key:"isSelected",value:function(t){return this.selected===t?"selected":""}},{key:"toggleSelect",value:function(){this.calculateSelectUlOffset(),this.isDisabled||(this.isOpen=!this.isOpen)}},{key:"selectAndClose",value:function(t){"validated"===this.feedback?this.$emit("change",{value:t,valid:!0}):this.$emit("change",t),this.toggleSelect()}},{key:"calculateSelectUlOffset",value:function(){var t=this.$el.getBoundingClientRect(),e=window.pageXOffset||document.documentElement.scrollLeft,a=window.pageYOffset||document.documentElement.scrollTop;this.directionReverse?this.selectUlStyle="position: fixed; margin-bottom: -31px; bottom: calc(100vh - ".concat(t.top+a,"px);")+" left: ".concat(t.left+e,"px; width: ").concat(t.width,"px;"):this.selectUlStyle="position: fixed; margin-top: 31px; top: ".concat(t.top+a,"px;")+" left: ".concat(t.left+e,"px; width: ").concat(t.width,"px;")}},{key:"dropDownIcon",get:function(){return this.isOpen?"carrotup":"carrotdown"}},{key:"selectedValue",get:function(){var t=this,e="";return Object.keys(this.options).forEach((function(a){t.selected===a&&(e=t.options[a])})),e}}]),e}(Object(f["b"])(j,Kt));Object(h["a"])([Object(f["c"])()],qt.prototype,"up",void 0),Object(h["a"])([Object(f["c"])()],qt.prototype,"legend",void 0),Object(h["a"])([Object(f["c"])()],qt.prototype,"border",void 0),Object(h["a"])([Object(f["c"])()],qt.prototype,"selected",void 0),Object(h["a"])([Object(f["c"])()],qt.prototype,"options",void 0),Object(h["a"])([Object(f["c"])()],qt.prototype,"feedback",void 0),qt=Object(h["a"])([f["a"]],qt);var Qt=qt,te=Qt,ee=(a("e813"),Object(F["a"])(te,Xt,Wt,!1,null,"893eea00",null)),ae=ee.exports,ne=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3form"},[t._l(t.argumentsArray,(function(e){return a(t.getFieldType(e),t._b({key:e.id,tag:"component",attrs:{legend:e.name,validate:e.validation,name:e.name,random:e.randomize,value:t.setDefaultValue(e.name,e.defaultValue),help:e.description,autocomplete:"off",border:"ture",options:e.options,selected:e.selected,feedback:e.feedback},on:{change:function(a){return t.onChange(a,e.id)}}},"component",e,!1))})),t._l(t.argumentObjects,(function(e){return a(t.getFieldType(e),t._b({key:e.id,tag:"component",attrs:{legend:e.name,validate:e.validation,random:e.randomize,name:e.name,value:t.setDefaultValue(e.name,e.defaultValue),help:e.description,autocomplete:"off",border:"ture",options:e.options,selected:e.selected,feedback:e.feedback},on:{change:function(a){return t.onChange(a,e.id)}}},"component",e,!1))}))],2)},ie=[],se=(a("20d6"),function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3checkbox-wrapper"},[t.hasHelp?a("span",{staticClass:"icon help"},[a("div",{staticClass:"help-text"},[t._v("\n "+t._s(t.help)+"\n ")])]):t._e(),a("label",{staticClass:"icon checkbox",class:t.getIconKlass,attrs:{for:t.inputUID}},[t._v("\n "+t._s(t.legend)+"\n "),a("input",{directives:[{name:"model",rawName:"v-model",value:t.isChecked,expression:"isChecked"}],ref:"booleanCheckbox",attrs:{type:"checkbox",value:"None",id:t.inputUID,name:t.inputUID,"true-value":"true","false-value":"false",disabled:t.disabled,autocomplete:t.autocomplete},domProps:{checked:Array.isArray(t.isChecked)?t._i(t.isChecked,"None")>-1:t._q(t.isChecked,"true")},on:{change:[function(e){var a=t.isChecked,n=e.target,i=n.checked?"true":"false";if(Array.isArray(a)){var s="None",o=t._i(a,s);n.checked?o<0&&(t.isChecked=a.concat([s])):o>-1&&(t.isChecked=a.slice(0,o).concat(a.slice(o+1)))}else t.isChecked=i},t.toogleCheckBox]}})])])}),oe=[],re=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.isChecked=t.getIsChecked,t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"mounted",value:function(){this.toogleCheckBox()}},{key:"toogleCheckBox",value:function(){var t="true"===this.isChecked;this.$emit("change",{value:t,valid:!0})}},{key:"getIconKlass",get:function(){var t="true"===this.isChecked?"-on":"-off",e=this.isDisabled?"--disabled":"";return"checkbox".concat(t).concat(e)}},{key:"getIsChecked",get:function(){return this.value&&"boolean"===typeof this.value&&!0===this.value?"true":"false"}}]),e}(Object(f["b"])(j,Kt));Object(h["a"])([Object(f["c"])()],re.prototype,"value",void 0),re=Object(h["a"])([f["a"]],re);var ce=re,le=ce,de=(a("76d6"),Object(F["a"])(le,se,oe,!1,null,"40202deb",null)),ue=de.exports,he=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3textarea"},[t.hasHelp?a("span",{staticClass:"icon help"},[a("div",{staticClass:"help-text"},[t._v("\n "+t._s(t.help)+"\n ")])]):t._e(),a("div",{staticClass:"textarea",class:{focus:t.focused}},[a("textarea",{directives:[{name:"model",rawName:"v-model",value:t.dataText,expression:"dataText"}],ref:"textareainput",staticClass:"c3textarea-input",class:{focus:t.focused},attrs:{rows:"5",cols:"33",type:"checkbox",id:t.inputUID,name:t.inputUID,disabled:t.disabled,autocomplete:t.autocomplete},domProps:{value:t.dataText},on:{input:[function(e){e.target.composing||(t.dataText=e.target.value)},t.updateTextarea],focus:function(e){t.focused=!0},blur:function(e){return t.lostFocus()}}}),a("label",{staticClass:"c3textarea-label",class:{dirty:t.isDirty,focus:t.focused},on:{click:function(e){return e.target!==e.currentTarget?null:t.clickOnLabel()}}},[t._v("\n "+t._s(t.legend)+"\n ")]),t._m(0)]),a("input",{ref:"fileinput",staticStyle:{visibility:"hidden"},attrs:{id:"payload-file",type:"file"},on:{change:t.updateTextfield}})])},fe=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("label",{staticClass:"c3textarea-upload-button",attrs:{for:"payload-file"}},[a("span",{staticClass:"icon upload"},[a("div",{staticClass:"help-text"},[t._v("\n Select file to upload...\n ")])])])}],pe=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.dataText="",t.focused=!1,t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"mounted",value:function(){this.updateTextarea()}},{key:"lostFocus",value:function(){this.focused=!1,this.updateTextarea()}},{key:"updateTextarea",value:function(){this.$emit("change",{value:this.dataText,valid:!0})}},{key:"clickOnLabel",value:function(){this.$refs.textareainput.focus()}},{key:"updateTextfield",value:function(){var t,e=this,a=new FileReader,n=this.$refs.fileinput;a.readAsDataURL(n.files[0]),a.onload=function(){t=a.result,t||(t=t.replace(/^data:(.*;base64,)?/,"")),e.dataText=t,e.updateTextarea();try{e.$refs.fileinput.value="",e.$refs.fileinput.value&&(e.$refs.fileinput.type="text",e.$refs.fileinput.type="file")}catch(n){console.error("Error during input element reset.")}}}},{key:"isDirty",get:function(){return!!this.value||!!this.dataText}}]),e}(Object(f["b"])(j,Kt));Object(h["a"])([Object(f["c"])()],pe.prototype,"value",void 0),pe=Object(h["a"])([f["a"]],pe);var ge=pe,me=ge,ye=(a("c5a6"),Object(F["a"])(me,he,fe,!1,null,"7007b96d",null)),ve=ye.exports,be=Object(p["a"])("c3Capability"),we=(Object(p["a"])("c3Module"),function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.isValid=!1,t.argumentsArray=[],t.argumentObjects=[],t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"getFieldType",value:function(t){switch(t.type){case"boolean":return"CheckBox";case"base64":return"Textarea";case"base32":return"Textarea";case"binary":return"Textarea"}return"Input"}},{key:"onChange",value:function(t,e){this.isValid=!0;var a=this.argumentsArray.findIndex((function(t){return t.id===e}));a>-1&&(this.argumentsArray[a].value=t.value,this.argumentsArray[a].isValid=t.valid),a=this.argumentObjects.findIndex((function(t){return t.id===e})),a>-1&&(this.argumentObjects[a].value=t.value,this.argumentObjects[a].isValid=t.valid),this.emitFormData()}},{key:"emitFormData",value:function(){this.isValid=!0;var t=[this.clearArray(this.argumentsArray)];this.clearArray(this.argumentObjects).forEach((function(e){t.push(e)}));var e=this.isValid;this.$emit("change",{data:t,valid:e})}},{key:"mounted",value:function(){this.getCommandFrom(),this.emitFormData()}},{key:"clearArray",value:function(t){var e=this,a=[];return t&&t.forEach((function(t){t.isValid||(e.isValid=!1);var n=t.type,i=t.name,s=t.value;a.push({type:n,name:i,value:s})})),a}},{key:"getValidationRule",value:function(t){var e="";return t.type&&"ip"===t.type&&(e="ip|"),!t.type||"int16"!==t.type&&"uint16"!==t.type||(e="numeric|",t.min||"uint16"!==t.type||(e+="min_value:0|")),t.type&&"boolean"===t.type&&(e=""),t.min&&parseInt(t.min,10)>0&&(t.type&&"string"===t.type&&(e=e+"min:"+t.min+"|"),!t.type||"int16"!==t.type&&"uint16"!==t.type||(e=e+"min_value:"+t.min+"|"),e+="required|"),t.max&&t.min&&parseInt(t.max,10)>=parseInt(t.min,10)&&(t.type&&"string"===t.type&&(e=e+"max:"+t.max+"|"),!t.type||"int16"!==t.type&&"uint16"!==t.type||(e=e+"max_value:"+t.max+"|")),e}},{key:"getRandomLenght",value:function(t){if(t.randomize&&!0===t.randomize||"true"===t.randomize){if(t.min&&parseInt(t.min,10)>0)return parseInt(t.min,10);t.randomize=8}}},{key:"getCrossArgumentOption",value:function(t){var e="Input ID"===t?"Output ID":"Input ID";if(this.hasOptions){var a=this.options.find((function(t){return t.name===e}));if(a)return a.value}return!1}},{key:"getArgumentOption",value:function(t){if(this.hasOptions){var e=this.options.find((function(e){return e.name===t}));if(e)return e.value}return!1}},{key:"setDefaultValue",value:function(t,e){var a=e;if(this.hasOptions){var n=this.options.find((function(e){return t===e.name}));if(n)return n.value}return a}},{key:"setArgumentData",value:function(t){return t.validation=this.getValidationRule(t),t.id=Math.random().toString(36).substring(2),this.getRandomLenght(t)&&(t.randomize=this.getRandomLenght(t)),t.value={value:"",valid:!1},t}},{key:"getCommandFrom",value:function(){var t=this;if(this.capability&&this.capability.commands&&this.capability.commands.length>0){var e=this.capability.commands.find((function(e){return e.name===t.command}));void 0!==e&&e.arguments?(this.argumentsArray=[],this.argumentObjects=[],e.arguments.forEach((function(e){Array.isArray(e)?(e.forEach((function(e){e=t.setArgumentData(e)})),t.argumentsArray=e):(e=t.setArgumentData(e),t.argumentObjects.push(e))}))):this.addNotify({type:"info",message:"Command not set up correctly, Form can't be generated."})}return!1}},{key:"capability",get:function(){return this.getCapabilityFor(this.interfaceName,this.klass)}},{key:"hasOptions",get:function(){return!!this.options&&"{}"!==JSON.stringify(this.options)}}]),e}(Object(f["b"])(j)));Object(h["a"])([Object(f["c"])()],we.prototype,"command",void 0),Object(h["a"])([Object(f["c"])()],we.prototype,"target",void 0),Object(h["a"])([Object(f["c"])()],we.prototype,"klass",void 0),Object(h["a"])([Object(f["c"])()],we.prototype,"targetId",void 0),Object(h["a"])([Object(f["c"])()],we.prototype,"interfaceName",void 0),Object(h["a"])([Object(f["c"])()],we.prototype,"options",void 0),Object(h["a"])([be.Getter],we.prototype,"getCapabilityFor",void 0),Object(h["a"])([be.Getter],we.prototype,"getTypeNameForInterface",void 0),we=Object(h["a"])([Object(f["a"])({components:{Input:Jt,Select:ae,Textarea:ve,CheckBox:ue}})],we);var Ce=we,Oe=Ce,ke=(a("e1b5"),Object(F["a"])(Oe,ne,ie,!1,null,null,null)),je=ke.exports,Ie=Object(p["a"])("c3Module"),_e=Object(p["a"])("c3Capability"),xe=Object(p["a"])("optionsModule"),Ne=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.formData={},t.isValid=!1,t.commandGroup="",t.commandTarget="",t.formDirty=!1,t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"mounted",value:function(){var t=this;if(window.addEventListener("keydown",this.handleGlobalKeyDown,!0),this.hasOptions&&this.options.formDefault){var e=Object.keys(this.commandTargetOptions).find((function(e){return!(!t.options||!t.options.formDefault)&&t.commandTargetOptions[e]===t.options.formDefault.prefix+t.options.formDefault.interface}));e&&(this.commandTarget=e)}}},{key:"beforeDestroy",value:function(){window.removeEventListener("keydown",this.handleGlobalKeyDown,!0)}},{key:"resetForm",value:function(){this.commandTarget=""}},{key:"changeForm",value:function(t){if(this.isValid=t.valid,1===t.data.length&&0===t.data[0].length?this.formData=[]:(0===t.data[0].length&&t.data.shift(),this.formData=t.data),"new"===this.targetId){var e={name:this.selectedCommandGroup,data:{id:this.getCommandId,name:this.selectedInterface,command:this.selectedCommand,arguments:this.formData}};this.$emit("change",{data:e,valid:this.isValid})}}},{key:"changeCommandGroup",value:function(t){this.commandGroup=t}},{key:"changeCommandTarget",value:function(t){this.isValid=!0,this.commandTarget=t}},{key:"sendCommand",value:function(){var t=this,e={name:this.selectedCommandGroup,data:{id:this.getCommandId,name:this.selectedInterface,command:this.selectedCommand,arguments:this.formData}},a="/api/gateway/";if(this.currentItem&&this.currentItem.klass===n.Gateway&&(a+="".concat(this.currentItem.id,"/command")),this.currentItem&&this.currentItem.klass===n.Relay&&(a+="".concat(this.currentItem.parentId,"/relay/").concat(this.currentItem.id,"/command")),this.currentItem&&this.currentItem.klass===n.Channel||this.currentItem&&this.currentItem.klass===n.Peripheral||this.currentItem&&this.currentItem.klass===n.Connector){if(this.currentItem.parentKlass===n.Gateway)switch(this.currentItem.klass){case n.Channel:a+="".concat(this.currentItem.parentId,"/channel/").concat(this.currentItem.id,"/command");break;case n.Peripheral:a+="".concat(this.currentItem.parentId,"/peripheral/").concat(this.currentItem.id,"/command");break;case n.Connector:a+="".concat(this.currentItem.parentId,"/connector/").concat(this.currentItem.id,"/command");break}if(this.currentItem.parentKlass===n.Relay)switch(this.currentItem.klass){case n.Channel:a+="".concat(this.gateway.id,"/relay/").concat(this.currentItem.parentId,"/channel/").concat(this.currentItem.id,"/command");break;case n.Peripheral:a+="".concat(this.gateway.id,"/relay/").concat(this.currentItem.parentId,"/peripheral/").concat(this.currentItem.id,"/command");break;case n.Connector:a+="".concat(this.gateway.id,"/relay/").concat(this.currentItem.parentId,"/connector/").concat(this.currentItem.id,"/command");break}}R()({url:a,method:"POST",baseURL:this.getAPIBaseUrl,data:e}).then((function(e){t.addNotify({type:"info",message:"Command successfully sent..."}),t.closeThisModal()})).catch((function(e){var a="Command NOT sent: "+e.message;t.addNotify({type:"error",message:a}),console.error(e.message)}))}},{key:"formIsValid",get:function(){return!this.isValid}},{key:"currentItem",get:function(){return this.getInterface(this.targetId)}},{key:"selectedCommandGroup",get:function(){return this.commandGroup?(this.resetForm(),this.commandGroup):this.defaultCommandGroup}},{key:"selectedCommandTarget",get:function(){return this.commandTarget?this.commandTarget:this.defaultCommandTarget}},{key:"defaultCommandGroup",get:function(){return void 0!==this.options&&void 0!==this.options.targetGroup?this.options.targetGroup:this.commandGroupOptions?Object.keys(this.commandGroupOptions)[0]:""}},{key:"defaultCommandTarget",get:function(){return this.commandTargetOptions?(this.changeCommandTarget(Object.keys(this.commandTargetOptions)[0]),Object.keys(this.commandTargetOptions)[0]):""}},{key:"commandGroupOptions",get:function(){return this.currentItem?this.getCommandGroupFor(this.currentItem.klass):""}},{key:"commandTargetOptions",get:function(){return this.currentItem?this.currentItem.klass===n.Gateway||this.currentItem.klass===n.Relay?this.getCommandTargetFor(this.selectedCommandGroup,this.currentItem.klass):this.getCommandTargetFor(this.selectedCommandGroup,this.currentItem.klass,this.interfaceTypeName(this.currentItem)):""}},{key:"selectedInterfaceKlass",get:function(){return void 0!==this.commandTarget?Ut.a.singular(this.commandTarget.split("_")[0]).toUpperCase():""}},{key:"selectedInterface",get:function(){return void 0!==this.commandTarget?this.commandTarget.split("_")[1]:""}},{key:"selectedCommand",get:function(){return void 0!==this.commandTarget?this.commandTarget.split("_")[2]:""}},{key:"getCommandId",get:function(){var t=this,e=this.getCapabilityFor(this.selectedInterface,this.selectedInterfaceKlass);if(e){var a=e.commands.find((function(e){return e.name===t.selectedCommand}));return a.id}return""}},{key:"isNotEmbeded",get:function(){return void 0===this.embeded||!0!==this.embeded}},{key:"hasOptions",get:function(){return!!this.options&&"{}"!==JSON.stringify(this.options)}},{key:"argumentOptions",get:function(){return!(!this.hasOptions||!this.options.formDefault)&&this.options.formDefault.arguments}}]),e}(Object(f["b"])(j));Object(h["a"])([Object(f["c"])()],Ne.prototype,"targetId",void 0),Object(h["a"])([Object(f["c"])()],Ne.prototype,"embeded",void 0),Object(h["a"])([Object(f["c"])()],Ne.prototype,"options",void 0),Object(h["a"])([Ie.Getter],Ne.prototype,"getInterface",void 0),Object(h["a"])([_e.Getter],Ne.prototype,"getCapabilityFor",void 0),Object(h["a"])([_e.Getter],Ne.prototype,"getCommandGroupFor",void 0),Object(h["a"])([_e.Getter],Ne.prototype,"getCommandTargetFor",void 0),Object(h["a"])([xe.Getter],Ne.prototype,"getAPIBaseUrl",void 0),Ne=Object(h["a"])([Object(f["a"])({components:{Input:Jt,Select:ae,GeneralForm:je}})],Ne);var Te=Ne,Re=Te,Ge=(a("e181"),Object(F["a"])(Re,Dt,St,!1,null,null,null)),Le=Ge.exports,Me=(Object(p["a"])("c3Module"),function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"mounted",value:function(){window.addEventListener("keydown",this.handleGlobalKeyDown,!0)}},{key:"beforeDestroy",value:function(){window.removeEventListener("keydown",this.handleGlobalKeyDown,!0)}}]),e}(Object(f["b"])(j)));Me=Object(h["a"])([Object(f["a"])({components:{RouteList:B,ChannelList:J,NetworkStats:Nt,ConnectorList:At,PheripheralList:nt,CommandCenterModal:Le}})],Me);var Ee=Me,Pe=Ee,Ae=Object(F["a"])(Pe,vt,bt,!1,null,null,null),De=Ae.exports,Se=function(){var t=this,e=t.$createElement,a=t._self._c||e;return void 0!==t.c3Interface?a("div",{staticClass:"c3modal-body"},[a("div",{staticClass:"c3modal-header",class:{"is-return":!!t.c3Interface.isReturnChannel,"has-error":!!t.c3Interface.error}},[a("h1",[a("span",{staticClass:"capitalize"},[t._v(t._s(t.c3Interface.klass.toLowerCase())+" ")]),t._v("\n ID: "+t._s(t.c3Interface.id||"")+"\n ")]),a("div",{staticClass:"flex-row"},[a("div",{staticClass:"details"},[a("p",[t._v("\n Parent\n "),a("span",{staticClass:"c3link capitalize"},[t._v("\n "+t._s(t.c3Interface.parentKlass.toLowerCase())+" /\n "+t._s(t.c3Interface.parentId)+"\n ")])]),a("p",{staticClass:"capitalize"},[t._v("\n "+t._s(t.c3Interface.klass.toLowerCase())+" Type\n "),a("span",[t._v("\n "+t._s(t.interfaceTypeName(t.c3Interface))+"\n ")])]),a("p",[t._v("\n Jitter [min/max]\n "),a("span",[t._v("\n "+t._s(t.getInterfaceJitter)+"\n ")])])]),a("div",{staticClass:"actions"},[t.showRelayDropdown?a("span",{staticClass:"c3modal-more-btn icon more"},[t._v("\n INTERFACE OPTIONS\n ")]):t._e(),a("ul",{staticClass:"c3modal-menu"},[a("li",{directives:[{name:"show",rawName:"v-show",value:t.showNewRelayButton,expression:"showNewRelayButton"}],staticClass:"c3modal-menu-item",on:{click:function(e){t.openModal(t.c3Interface.id,"CREATE_RELAY",t.generateOprions())}}},[t._v("\n New Relay\n ")]),a("li",{directives:[{name:"show",rawName:"v-show",value:t.showConnectRelayButton,expression:"showConnectRelayButton"}],staticClass:"c3modal-menu-item",on:{click:function(e){t.openModal(t.c3Interface.uid,"CONNECT_RELAY",t.generateOprions())}}},[t._v("\n Connect Relay\n ")])]),a("button",{staticClass:"c3btn c3btn--outline",on:{click:function(e){return t.openModal(t.c3Interface.uid,"COMMAND_CENTER")}}},[t._v("\n Command Center\n ")])])]),t.c3Interface.error&&""!==t.c3Interface.error?a("p",{staticClass:"message-with-icon"},[a("span",{staticClass:"icon warning"}),t._v("\n Error: "+t._s(t.c3Interface.error)+"\n ")]):t._e(),t.c3Interface.isReturnChannel&&"false"!==t.c3Interface.isReturnChannel?a("p",{staticClass:"message-with-icon"},[a("span",{staticClass:"icon return"}),t._v("\n This is a Gateway Return Channel (GRC).\n ")]):t._e(),t.c3Interface.isNegotiationChannel&&"false"!==t.c3Interface.isNegotiationChannel?a("p",{staticClass:"message-with-icon"},[a("span",{staticClass:"icon exclamation"}),t._v("\n This is a Negotiation Channel.\n ")]):t._e()]),a("div",{staticClass:"c3modal-details"},[""!==t.c3Interface.propertiesText?[a("h1",[t._v("Properties")]),a("pre",{staticClass:"c3command"},[t._v(t._s(t.c3Interface.propertiesText))])]:t._e()],2)]):t._e()},Fe=[],Ue=(a("4917"),a("8615"),Object(p["a"])("c3Module")),Be=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"showButtons",value:function(){return!(this.isReturnChannel()||!this.isChannel())}},{key:"isChannel",value:function(){return!!this.c3Interface&&this.c3Interface.klass===n.Channel}},{key:"isReturnChannel",value:function(){return!!this.c3Interface&&!0===this.c3Interface.isReturnChannel}},{key:"isNegotiationChannel",value:function(){return!!this.c3Interface&&!0===this.c3Interface.isNegotiationChannel}},{key:"getArguments",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g;return this.isChannel()&&t.propertiesText&&t.propertiesText.arguments?JSON.parse(JSON.stringify(t.propertiesText.arguments)):[]}},{key:"getArgumentsAttributes",value:function(t){return Array.isArray(t[0])?t[0]:[]}},{key:"getPropertiesArguments",value:function(t){var e=[];return Object.values(t).forEach((function(t){Array.isArray(t)||e.push(t)})),e}},{key:"getInterfaceParentId",value:function(){return this.c3Interface&&this.c3Interface.parentId?this.c3Interface.parentId:""}},{key:"generateSourceOptions",value:function(){return{relay:this.getRelay(this.getInterfaceParentId()),interface:this.c3Interface}}},{key:"changeInputOutputIDs",value:function(t){var e={name:"",type:"",value:""},a={name:"",type:"",value:""},n="";return t.length&&(e=t.find((function(t){return"Input ID"===t.name}))||"",a=t.find((function(t){return"Output ID"===t.name}))||""),n=a.value,a.value=e.value,e.value=n,t}},{key:"isNormalChannel",value:function(){var t=JSON.stringify(this.getArguments(this.c3Interface));return!!t.match(/Input ID/g)&&!!t.match(/Output ID/g)}},{key:"generateCommandCenterArguments",value:function(){var t=[],e=this.getArgumentsAttributes(this.getArguments(this.c3Interface));e.length>0&&(e=this.changeInputOutputIDs(e));var a=this.getPropertiesArguments(this.getArguments(this.c3Interface));return e.length&&e.forEach((function(e){t.push(e)})),a.length&&a.forEach((function(e){t.push(e)})),t}},{key:"getPrefix",value:function(){return this.isNormalChannel()?"AddChannel":this.isNegotiationChannel()?"AddNegotiationChannel":""}},{key:"getInterfaceTypeString",value:function(){return this.c3Interface?this.interfaceTypeName(this.c3Interface):""}},{key:"generateOprions",value:function(){return{formDefault:{prefix:this.getPrefix(),interface:this.getInterfaceTypeString(),arguments:this.generateCommandCenterArguments()},source:this.generateSourceOptions()}}},{key:"mounted",value:function(){window.addEventListener("keydown",this.handleGlobalKeyDown,!0)}},{key:"beforeDestroy",value:function(){window.removeEventListener("keydown",this.handleGlobalKeyDown,!0)}},{key:"c3Interface",get:function(){var t=this.getInterface(this.targetId);return t||this.closeThisModal(),t}},{key:"showRelayDropdown",get:function(){return this.showConnectRelayButton||this.showNewRelayButton}},{key:"showConnectRelayButton",get:function(){return this.showButtons()}},{key:"showNewRelayButton",get:function(){return this.showButtons()}},{key:"getInterfaceJitter",get:function(){return this.c3Interface?this.c3Interface.propertiesText.jitter:"[N/A, N/A]"}}]),e}(Object(f["b"])(j));Object(h["a"])([Object(f["c"])()],Be.prototype,"targetId",void 0),Object(h["a"])([Ue.Getter],Be.prototype,"getRelay",void 0),Object(h["a"])([Ue.Getter],Be.prototype,"getInterface",void 0),Object(h["a"])([Ue.Getter],Be.prototype,"getNodeKlass",void 0),Be=Object(h["a"])([f["a"]],Be);var $e=Be,Ve=$e,Ke=(a("a118"),Object(F["a"])(Ve,Se,Fe,!1,null,"33bc8b88",null)),ze=Ke.exports,He=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3modal-body"},[a("div",{staticClass:"c3modal-details"},[a("h1",[t._v("Relay Setup")]),a("p",[t._v("Please setup a Relay.")]),a("Input",{staticClass:"form-element",attrs:{legend:"Name / Auto Generated ID",help:"If you do not enter a name an ID will be automatically generated."},on:{change:function(e){return t.changeName(e,t.relayName)}}}),a("Input",{staticClass:"form-element",attrs:{legend:"Parent Gateway Build ID",value:t.gatewayBuildsId,disabled:!0}}),a("div",{staticClass:"form-row"},[a("Select",{staticClass:"form-element",attrs:{legend:"TargetSuffix",selected:t.selectedTargetSuffix,options:{dll:"dll",exe:"exe",shellcode:"shellcode"},border:!0},on:{change:function(e){return t.changeTargetSuffix(e,t.targetSuffix)}}}),a("Select",{staticClass:"form-element",attrs:{legend:"Architecture",selected:t.selectedArchitecture,options:{x86:"x86",x64:"x64"},border:!0},on:{change:function(e){return t.changeArchitecture(e,t.architecture)}}})],1),a("div",{staticClass:"c3modal-form"},[t.donutSelected?a("DonutForm",{on:{change:function(e){return t.changeDonutForm(e,t.formData)}}}):t._e()],1),a("div",{staticClass:"c3modal-form"},[a("h1",[t._v("Add Command")]),a("p",[t._v("Please Select the first command to the Relay.")]),a("CommandCenterModal",{staticClass:"embeded-modal",attrs:{"target-id":"new",embeded:!0,options:t.addNewRelayToOptions},on:{change:function(e){return t.changeForm(e,t.formData)}}})],1),a("dir",{staticClass:"flex-row c3modal-actions"},[a("button",{staticClass:"c3btn c3btn--grey",on:{click:function(e){return e.target!==e.currentTarget?null:t.closeThisModal()}}},[t._v("Cancel")]),a("button",{staticClass:"c3btn c3btn",attrs:{disabled:t.formIsValid},on:{click:function(e){return t.createNewRelay()}}},[t._v("Create and Download Relay")])])],1)])},Ze=[],Ye=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"donut-form"},[a("h1",[t._v("Add Command")]),a("Select",{staticClass:"form-element line",attrs:{legend:"Format",selected:t.selectedFormat,options:{Binary:"Binary",Base64:"Base64",Ruby:"Ruby",C:"C",Python:"Python",Powershell:"Powershell",Csharp:"Csharp",HeX:"HeX"},border:!0},on:{change:function(e){return t.changeFormat(e,t.format)}}}),a("Select",{staticClass:"form-element half-line",attrs:{legend:"Compress",selected:t.selectedCompress,options:{None:"None",Lznt1:"Lznt1",Xpress:"Xpress",Xpress_huff:"Xpress_huff"},border:!0},on:{change:function(e){return t.changeCompress(e,t.compress)}}}),a("Select",{staticClass:"form-element half-line",attrs:{legend:"Entropy",selected:t.selectedEntropy,options:{None:"None",Random:"Random",Default:"Default"},border:!0},on:{change:function(e){return t.changeEntropy(e,t.entropy)}}}),a("Select",{staticClass:"form-element half-line",attrs:{legend:"ExitOpt",selected:t.selectedExitOpt,options:{Exit_thread:"Exit_thread",Exit_process:"Exit_process"},border:!0},on:{change:function(e){return t.changeExitOpt(e,t.exitOpt)}}}),a("Select",{staticClass:"form-element half-line",attrs:{legend:"Bypass",selected:t.selectedBypass,options:{None:"None",Abort:"Abort",Continue:"Continue"},border:!0},on:{change:function(e){return t.changeBypass(e,t.bypass)}}})],1)},Je=[],Xe=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.format="Binary",t.compress="None",t.entropy="Default",t.exitOpt="Exit_thread",t.bypass="None",t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"changeFormat",value:function(t){this.format=t,this.emitDonut()}},{key:"changeCompress",value:function(t){this.compress=t,this.emitDonut()}},{key:"changeEntropy",value:function(t){this.entropy=t,this.emitDonut()}},{key:"changeExitOpt",value:function(t){this.exitOpt=t,this.emitDonut()}},{key:"changeBypass",value:function(t){this.bypass=t,this.emitDonut()}},{key:"emitDonut",value:function(){var t={format:this.format.toUpperCase(),compress:this.compress.toUpperCase(),entropy:this.entropy.toUpperCase(),exitOpt:this.exitOpt.toUpperCase(),bypass:this.bypass.toUpperCase()};this.$emit("change",t)}},{key:"mounted",value:function(){this.emitDonut()}},{key:"selectedFormat",get:function(){return this.format}},{key:"selectedCompress",get:function(){return this.compress}},{key:"selectedEntropy",get:function(){return this.entropy}},{key:"selectedExitOpt",get:function(){return this.exitOpt}},{key:"selectedBypass",get:function(){return this.bypass}}]),e}(f["d"]);Xe=Object(h["a"])([Object(f["a"])({components:{Select:ae}})],Xe);var We=Xe,qe=We,Qe=(a("29e6"),Object(F["a"])(qe,Ye,Je,!1,null,"140c057e",null)),ta=Qe.exports,ea=(Object(p["a"])("c3Module"),Object(p["a"])("c3Capability")),aa=Object(p["a"])("optionsModule"),na=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.formData={},t.relayName="",t.isValid=!1,t.targetSuffix="exe",t.architecture="x64",t.commandGroup="Relay",t.commandTarget="",t.donutSelected=!1,t.donutFormData={},t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"changeCommandTarget",value:function(t){this.isValid=!0,this.commandTarget=t}},{key:"mounted",value:function(){window.addEventListener("keydown",this.handleGlobalKeyDown,!0)}},{key:"beforeDestroy",value:function(){window.removeEventListener("keydown",this.handleGlobalKeyDown,!0)}},{key:"changeName",value:function(t){this.relayName=t.value}},{key:"changeForm",value:function(t){this.isValid=t.valid,this.formData=t.data}},{key:"changeDonutForm",value:function(t){this.donutFormData=t}},{key:"changeTargetSuffix",value:function(t){this.targetSuffix=t,"shellcode"===this.targetSuffix?this.donutSelected=!0:this.donutSelected=!1}},{key:"changeArchitecture",value:function(t){this.architecture=t}},{key:"createNewRelay",value:function(){var t=this,e={type:this.selectedTargetSuffix,architecture:this.selectedArchitecture,parentGatewayBuildId:this.gatewayBuildsId,name:this.relayName,startupCommands:[this.formData],donut:this.donutFormData};R()({url:"/api/build/customize",method:"POST",baseURL:this.getAPIBaseUrl,data:e,responseType:"blob"}).then((function(e){var a="",n=new Blob([e.data],{type:e.data.type}),i=e.headers["content-disposition"],s=window.URL.createObjectURL(n),o=document.createElement("a");o.href=s,void 0!==i&&(a=i.split("filename=")[1].split(";")[0].replace(/%20/gi,"-")),"string"===typeof a&&""!==a||(a="relay.exe"),o.href=s,o.setAttribute("download",a),document.body.appendChild(o),o.click(),o.remove(),window.URL.revokeObjectURL(s),t.closeThisModal()})).catch((function(e){t.addNotify({type:"error",message:e.message}),console.error(e.message)}))}},{key:"formIsValid",get:function(){return!this.isValid}},{key:"selectedTargetSuffix",get:function(){return this.targetSuffix}},{key:"selectedArchitecture",get:function(){return this.architecture}},{key:"gatewayBuildsId",get:function(){return this.gateway.buildId?this.gateway.buildId:""}},{key:"selectedCommand",get:function(){return void 0!==this.commandTarget?this.commandTarget.split("_")[2]:""}},{key:"selectedCommandTarget",get:function(){return this.commandTarget?this.commandTarget:this.defaultCommandTarget}},{key:"commandTargetOptions",get:function(){return this.getCommandTargetFor("NewRelayCommandGroup",n.Relay)}},{key:"selectedCommandGroup",get:function(){return this.commandGroup?"":this.commandGroup}},{key:"selectedInterface",get:function(){return void 0!==this.commandTarget?this.commandTarget.split("_")[1]:""}},{key:"defaultCommandTarget",get:function(){return this.commandTargetOptions?(this.changeCommandTarget(Object.keys(this.commandTargetOptions)[0]),Object.keys(this.commandTargetOptions)[0]):""}},{key:"addNewRelayToOptions",get:function(){return{formDefault:this.options.formDefault,source:this.options.source,targetGroup:"NewRelayCommandGroup"}}}]),e}(Object(f["b"])(j));Object(h["a"])([Object(f["c"])()],na.prototype,"options",void 0),Object(h["a"])([ea.Getter],na.prototype,"getCommandTargetFor",void 0),Object(h["a"])([ea.Getter],na.prototype,"getTypesForInterfaceKlass",void 0),Object(h["a"])([aa.Getter],na.prototype,"getAPIBaseUrl",void 0),na=Object(h["a"])([Object(f["a"])({components:{Input:Jt,Select:ae,DonutForm:ta,GeneralForm:je,CommandCenterModal:Le}})],na);var ia=na,sa=ia,oa=(a("4556"),Object(F["a"])(sa,He,Ze,!1,null,null,null)),ra=oa.exports,ca=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3modal-body"},[a("div",{staticClass:"c3modal-details"},[t._m(0),a("p",[t._v("Please setup a Gateway to begin using c3.")]),a("Input",{staticClass:"form-element",attrs:{legend:"Name / Auto Generated ID",help:"If you do not enter a name an ID will be automatically generated."},on:{change:function(e){return t.changeName(e,t.gatewayName)}}}),a("div",{staticClass:"form-row"},[a("Select",{staticClass:"form-element",attrs:{legend:"TargetSuffix",selected:t.selectedTargetSuffix,options:{exe:"exe"},border:!0},on:{change:function(e){return t.changeTargetSuffix(e,t.targetSuffix)}}}),a("Select",{staticClass:"form-element",attrs:{legend:"Architecture",selected:t.selectedArchitecture,options:{x86:"x86",x64:"x64"},border:!0},on:{change:function(e){return t.changeArchitecture(e,t.architecture)}}})],1),a("dir",{staticClass:"flex-row c3modal-actions"},[a("button",{directives:[{name:"show",rawName:"v-show",value:!1!==t.hasSelectedGateway,expression:"hasSelectedGateway !== false"}],staticClass:"c3btn c3btn--grey",on:{click:function(e){return e.target!==e.currentTarget?null:t.closeThisModal()}}},[t._v("\n Cancel\n ")]),a("button",{staticClass:"c3btn c3btn pull-right",on:{click:function(e){return t.createNewGateway()}}},[t._v("\n Create and download Gateway\n ")])])],1)])},la=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3modal-title-wrapper"},[a("h1",[t._v("Gateway Setup")])])}],da=Object(p["a"])("c3Module"),ua=Object(p["a"])("optionsModule"),ha=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.gatewayName="",t.targetSuffix="exe",t.architecture="x64",t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"mounted",value:function(){window.addEventListener("keydown",this.handleGlobalKeyDown,!0)}},{key:"beforeDestroy",value:function(){window.removeEventListener("keydown",this.handleGlobalKeyDown,!0)}},{key:"changeName",value:function(t){this.gatewayName=t.value}},{key:"changeTargetSuffix",value:function(t){this.targetSuffix=t}},{key:"changeArchitecture",value:function(t){this.architecture=t}},{key:"createNewGateway",value:function(){var t=this,e="/api/gateway/exe/".concat(this.architecture);this.gatewayName&&""!==this.gatewayName&&(e+="?name=".concat(this.gatewayName)),R()({url:e,method:"GET",baseURL:this.getAPIBaseUrl,responseType:"blob"}).then((function(e){var a=new Blob([e.data],{type:e.data.type}),n=window.URL.createObjectURL(a),i=document.createElement("a");i.href=n;var s=e.headers["content-disposition"],o="";void 0!==s&&(o=s.split("filename=")[1].split(";")[0].replace(/%20/gi,"-")),"string"===typeof o&&""!==o||(o="gateway.exe"),i.href=n,i.setAttribute("download",o),document.body.appendChild(i),i.click(),i.remove(),window.URL.revokeObjectURL(n),t.closeThisModal()})).catch((function(e){t.addNotify({type:"error",message:e.message}),console.error(e.message)}))}},{key:"selectedTargetSuffix",get:function(){return this.targetSuffix}},{key:"selectedArchitecture",get:function(){return this.architecture}},{key:"hasSelectedGateway",get:function(){return this.getGateways.length>0}}]),e}(Object(f["b"])(j));Object(h["a"])([Object(f["c"])()],ha.prototype,"targetId",void 0),Object(h["a"])([da.Getter],ha.prototype,"getGateways",void 0),Object(h["a"])([ua.Getter],ha.prototype,"getAPIBaseUrl",void 0),ha=Object(h["a"])([Object(f["a"])({components:{Input:Jt,Select:ae}})],ha);var fa=ha,pa=fa,ga=Object(F["a"])(pa,ca,la,!1,null,null,null),ma=ga.exports,ya=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3modal-body"},[a("div",{staticClass:"c3modal-header"},[a("h1",[t._v("Source Relay & Interface")]),a("div",{staticClass:"flex-row"},[a("div",{staticClass:"details"},[a("p",[t._v("\n Relay "),a("span",[t._v(" "+t._s(t.relay.name)+" / "+t._s(t.relay.id))])]),a("p",[t._v("\n Build ID "),a("span",[t._v(t._s(t.relay.buildId))])]),a("p",[t._v("\n "+t._s(t.c3Interface.klass.toLowerCase())+" ID\n "),a("span",[t._v(t._s(t.c3Interface.id||""))])]),a("p",[t._v("\n "+t._s(t.c3Interface.klass.toLowerCase())+" Type\n "),a("span",[t._v(t._s(t.interfaceTypeName(t.c3Interface)))])])])])]),a("div",{staticClass:"c3modal-details"},[a("div",{staticStyle:{"padding-bottom":"24px"}},[a("h1",[t._v("Select target Relay")]),a("Select",{staticClass:"form-element",attrs:{legend:"Target Relay",selected:t.selectedRelay,options:t.generateRelayList(),border:!0},on:{change:function(e){return t.changeTargetRelay(e,t.targetRelay)}}})],1),a("div",{staticClass:"c3modal-form"},[a("CommandCenterModal",{staticClass:"embeded-modal",attrs:{"target-id":t.selectedRelay,embeded:!1,options:t.addNewRelayGroupToOptions},on:{change:function(e){return t.changeForm(e,t.formData)}}})],1)])])},va=[],ba=Object(p["a"])("c3Module"),wa=Object(p["a"])("c3Capability"),Ca=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.formData={},t.isValid=!1,t.targetRelay="",t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"generateRelayList",value:function(){var t=this,e={},a="",n=0,i="null",s=this.getRelays;return s.forEach((function(i,s){i.id!==t.relay.id&&(n++,e[i.id]="".concat(i.id," ").concat(i.name?"- "+i.name+" ":""),""===a&&(a=i.id))})),0===n&&(e[i]="Nothing to select...",a=i),""===this.targetRelay&&(this.targetRelay=a),e}},{key:"mounted",value:function(){window.addEventListener("keydown",this.handleGlobalKeyDown,!0)}},{key:"beforeDestroy",value:function(){window.removeEventListener("keydown",this.handleGlobalKeyDown,!0)}},{key:"changeForm",value:function(t){this.isValid=t.valid,this.formData=t.data}},{key:"changeTargetRelay",value:function(t){this.targetRelay=t}},{key:"relay",get:function(){return this.sourceRelay}},{key:"c3Interface",get:function(){return this.sourceInterface}},{key:"hasOptions",get:function(){return!!this.options&&"{}"!==JSON.stringify(this.options)}},{key:"sourceRelay",get:function(){return this.hasOptions&&this.options.source&&this.options.source.relay?this.options.source.relay:g}},{key:"sourceInterface",get:function(){return this.hasOptions&&this.options.source&&this.options.source.interface?this.options.source.interface:g}},{key:"formIsValid",get:function(){return!this.isValid}},{key:"selectedRelay",get:function(){return this.targetRelay}},{key:"addNewRelayGroupToOptions",get:function(){return{formDefault:this.options.formDefault,source:this.options.source,targetGroup:"NewRelayCommandGroup"}}},{key:"showConnectRelayButton",get:function(){return!0}}]),e}(Object(f["b"])(j));Object(h["a"])([Object(f["c"])()],Ca.prototype,"targetId",void 0),Object(h["a"])([Object(f["c"])()],Ca.prototype,"options",void 0),Object(h["a"])([wa.Getter],Ca.prototype,"getCommandTargetFor",void 0),Object(h["a"])([wa.Getter],Ca.prototype,"getTypesForInterfaceKlass",void 0),Object(h["a"])([ba.Getter],Ca.prototype,"getRelays",void 0),Object(h["a"])([ba.Getter],Ca.prototype,"getRelay",void 0),Object(h["a"])([ba.Getter],Ca.prototype,"getInterface",void 0),Object(h["a"])([ba.Getter],Ca.prototype,"getInterfacesFor",void 0),Ca=Object(h["a"])([Object(f["a"])({components:{Input:Jt,Select:ae,GeneralForm:je,CommandCenterModal:Le}})],Ca);var Oa=Ca,ka=Oa,ja=(a("d94a"),Object(F["a"])(ka,ya,va,!1,null,null,null)),Ia=ja.exports,_a=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3modal-body"},[a("div",{staticClass:"c3modal-details"},[a("h1",{staticClass:"c3network-title"},[t._v("\n Network Configuration\n ")]),a("div",{staticClass:"form-row "},[a("Input",{key:"c3-url-field",staticClass:"form-element",attrs:{legend:"Url",value:t.c3Url,disabled:!1,validate:"required",name:"Url"},on:{change:function(e){return t.setUrl(e,t.c3Url)}}})],1),a("div",{staticClass:"form-row"},[a("Input",{key:"c3-port-field",staticClass:"form-element",attrs:{legend:"Port",value:t.c3Port,disabled:!1,validate:"required|numeric|max_value:65535",name:"Port"},on:{change:function(e){return t.setPort(e,t.c3Port)}}})],1),a("dir",{staticClass:"flex-row c3modal-actions"},[a("button",{staticClass:"c3btn c3btn--grey",on:{click:function(e){return e.target!==e.currentTarget?null:t.closeThisModal()}}},[t._v("\n Cancel\n ")]),a("button",{staticClass:"c3btn c3btn pull-right",attrs:{disabled:!t.isFormValid},on:{click:function(e){return t.saveNetworkConfig()}}},[t._v("\n Save Confing\n ")])])],1)])},xa=[],Na=Object(p["a"])("optionsModule"),Ta=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.c3Url="http://localhost",t.c3UrlIsValid=!0,t.c3Port=52935,t.c3PortIsValid=!0,t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"setUrl",value:function(t){t.valid?(this.c3UrlIsValid=!0,this.c3Url=t.value):this.c3UrlIsValid=!1}},{key:"setPort",value:function(t){t.valid?(this.c3PortIsValid=!0,this.c3Port=parseInt(t.value,10)):this.c3PortIsValid=!1}},{key:"saveNetworkConfig",value:function(){this.isFormValid&&(this.setBaseURL(this.c3Url),this.setBasePort(this.c3Port))}},{key:"getUrl",get:function(){return this.getAPIUrl}},{key:"getPort",get:function(){return this.getAPIPort}},{key:"isFormValid",get:function(){return this.c3UrlIsValid&&this.c3PortIsValid}}]),e}(Object(f["b"])(j));Object(h["a"])([Na.Getter],Ta.prototype,"getAPIUrl",void 0),Object(h["a"])([Na.Getter],Ta.prototype,"getAPIPort",void 0),Object(h["a"])([Na.Mutation],Ta.prototype,"setBaseURL",void 0),Object(h["a"])([Na.Mutation],Ta.prototype,"setBasePort",void 0),Ta=Object(h["a"])([Object(f["a"])({components:{Input:Jt}})],Ta);var Ra=Ta,Ga=Ra,La=Object(F["a"])(Ga,_a,xa,!1,null,null,null),Ma=La.exports,Ea=Object(p["a"])("modalModule"),Pa=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"isGateway",value:function(){return this.activeModal.modalTarget===n.Gateway}},{key:"isRelay",value:function(){return this.activeModal.modalTarget===n.Relay}},{key:"isChannel",value:function(){return this.activeModal.modalTarget===n.Channel}},{key:"isPeripheral",value:function(){return this.activeModal.modalTarget===n.Peripheral}},{key:"isConnector",value:function(){return this.activeModal.modalTarget===n.Connector}},{key:"isInterface",value:function(){return this.activeModal.modalTarget===n.Channel||this.activeModal.modalTarget===n.Peripheral||this.activeModal.modalTarget===n.Connector}},{key:"options",value:function(){return this.activeModal.modalOptions}},{key:"currentModal",get:function(){return this.activeModal}},{key:"targetUid",get:function(){return this.activeModal.modalTargetId||""}}]),e}(Object(f["b"])(j));Object(h["a"])([Ea.Getter],Pa.prototype,"activeModal",void 0),Pa=Object(h["a"])([Object(f["a"])({components:{RelayModal:lt,CommandModal:yt,GatewayModal:De,OptionsModal:Ma,InterfaceModal:ze,CreateRelayModal:ra,ConnectRelayModal:Ia,CommandCenterModal:Le,CreateGatewayModal:ma}})],Pa);var Aa=Pa,Da=Aa,Sa=(a("e72f"),Object(F["a"])(Da,m,y,!1,null,null,null)),Fa=Sa.exports,Ua=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3canvas",class:{"c3canvas-fs":t.isFullscreen}},[a("div",{ref:"c3canvas",attrs:{id:"c3canvas"}}),a("span",{staticClass:"c3canvas-fs-btn icon",class:t.fullscreenIcon,on:{click:function(e){t.isFullscreen=!t.isFullscreen}}}),a("span",{staticClass:"c3canvas-more-btn icon more"}),a("ul",{staticClass:"c3canvas-menu"},[a("li",{staticClass:"c3canvas-menu-item"},[a("Toggle",{key:"toggle-tree-view-button",attrs:{legend:"Tree View",checked:t.getTreeView,disabled:!1},on:{change:t.toggleTreeView}})],1),a("li",{staticClass:"c3canvas-menu-item"},[a("Toggle",{key:"toggle-interfaces-button",attrs:{legend:"Interfaces",checked:t.getInterfaces,disabled:!1},on:{change:function(e){return t.toggleInterfaces(e)}}})],1),a("li",{staticClass:"c3canvas-menu-item"},[a("Toggle",{key:"toggle-labels-button",attrs:{legend:"Labels",checked:t.getShowLabels,disabled:!1},on:{change:function(e){return t.toggleLabels(e)}}})],1),a("li",{staticClass:"c3canvas-menu-item"},[a("Toggle",{key:"toggle-physics-button",attrs:{legend:"Physics",checked:t.getPhysics,disabled:!1},on:{change:function(e){return t.togglePhysics(e)}}})],1),a("li",{staticClass:"c3canvas-menu-item"},[a("Toggle",{key:"toggle-smooth-edges",attrs:{legend:"Smooth Edges",checked:t.getSmoothEdges,disabled:!1},on:{change:function(e){return t.toggleSmoothEdges(e)}}})],1),a("li",{staticClass:"c3canvas-menu-item",on:{click:t.reloadGraph}},[t._v("Reload Graph")]),a("li",{staticClass:"c3canvas-menu-divider"}),a("li",{staticClass:"c3canvas-menu-item",on:{click:function(e){return t.openModal("","CREATE_GATEWAY")}}},[t._v("\n New Gateway\n ")]),a("li",{staticClass:"c3canvas-menu-item",on:{click:function(e){return t.openModal("","CREATE_RELAY")}}},[t._v("\n New Relay\n ")])]),t._m(0)])},Ba=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"progress-bar"},[a("div",{staticClass:"progress-bar-status",attrs:{id:"progress-bar-status"}})])}],$a=(a("6762"),a("2fdb"),a("4f27")),Va=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3checkbox-wrapper"},[a("div",{staticClass:"c3checkbox-row",on:{click:t.clickOnLabel}},[t._v("\n "+t._s(t.legend)+"  \n "),t.hasHelp?a("span",{staticClass:"icon help"},[a("div",{staticClass:"help-text"},[t._v(t._s(t.help))])]):t._e()]),a("div",{staticClass:"c3toggle",class:{disabled:t.isDisabled}},[a("input",t._b({ref:"booleanCheckbox",staticClass:"c3toggle-input",attrs:{type:"checkbox",id:t.inputUID,name:t.inputUID,disabled:t.disabled},domProps:{checked:t.getIsChecked},on:{change:t.toogleToggle}},"input",t.$attrs,!1)),a("label",{staticClass:"c3toggle-label",on:{click:t.clickOnLabel}})])])},Ka=[],za=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.isChecked=t.getIsChecked,t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"mounted",value:function(){this.$refs.booleanCheckbox.checked=this.getIsChecked}},{key:"toogleToggle",value:function(){this.isChecked=!this.isChecked,this.$emit("change",{value:!0===this.isChecked,valid:!0})}},{key:"clickOnLabel",value:function(){this.toogleToggle()}},{key:"getIsChecked",get:function(){return!(!this.checked||"boolean"!==typeof this.checked||!0!==this.checked)}}]),e}(Object(f["b"])(j,Kt));Object(h["a"])([Object(f["c"])()],za.prototype,"checked",void 0),za=Object(h["a"])([f["a"]],za);var Ha=za,Za=Ha,Ya=(a("c289"),Object(F["a"])(Za,Va,Ka,!1,null,"edfe580a",null)),Ja=Ya.exports,Xa=Object(p["a"])("c3Module"),Wa=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.startNode=g,t.paths=[],t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"findPath",value:function(t){this.setStartNode(t),this.paths=[],this.paths.push(this.startNode.uid);var e=0;if(this.hasPathEndpoints())return[];while(this.startNode&&this.startNode.uid!==this.targetNode.uid)this.nextNode=this.startNode,this.handleNodeChannel(),this.handleConnectorAndPeripheral(),this.handleRelay(),this.setStartNode(this.nextNode.uid),e++,this.checkEndLoop(e);return this.paths}},{key:"setStartNode",value:function(t){this.startNode=this.getNodes.find((function(e){return e.uid===t}))||g}},{key:"hasPathEndpoints",value:function(){return this.startNode.klass===n.Undefined||this.targetNode.klass===n.Undefined}},{key:"handleNodeChannel",value:function(){return this.isChannel(this.startNode)&&this.setNextNodeForChannel()}},{key:"handleConnectorAndPeripheral",value:function(){return this.isStartNodeConnectorOrPeripheral()&&this.setNextAndParentNode()}},{key:"handleRelay",value:function(){return this.isStartNodeRelay()&&this.setNextNodeForRelay()}},{key:"checkEndLoop",value:function(t){t>100&&(this.paths=[],this.setStartNode(this.targetNode.uid))}},{key:"getParentNode",value:function(){var t=this;return this.getNodes.find((function(e){return e.uid===t.startNode.parentId}))||g}},{key:"isStartNodeConnectorOrPeripheral",value:function(){return this.startNode.klass===n.Peripheral||this.startNode.klass===n.Connector}},{key:"isChannel",value:function(t){return t.klass===n.Channel}},{key:"isStartNodeRelay",value:function(){return this.startNode.klass===n.Relay}},{key:"isReturnChannel",value:function(t){return!0===t.isReturnChannel}},{key:"getChannelNeighbours",value:function(){var t=this;return this.getEdges.filter((function(e){return e.to===t.startNode.uid||e.from===t.startNode.uid}))}},{key:"getRelayNeighbours",value:function(){var t=this;return this.getEdges.filter((function(e){return e.from===t.startNode.uid}))}},{key:"getPossibeNext",value:function(t,e){return this.getNodes.find((function(a){return a.uid===t[e]}))||g}},{key:"insertParentNodeToPaths",value:function(){return this.getParentNode().klass!==n.Undefined&&this.paths.push(this.nextNode.uid)}},{key:"setNextAndParentNode",value:function(){this.nextNode=this.getParentNode(),this.insertParentNodeToPaths()}},{key:"setAndInsertNextNode",value:function(t){this.nextNode=t,this.paths.push(t.uid)}},{key:"setNextNodeForChannel",value:function(){this.isReturnChannel(this.startNode)?this.setNextNodeForReturnChannel():this.setNextAndParentNode()}},{key:"setNextNodeForReturnChannel",value:function(){var t=this;this.getChannelNeighbours().forEach((function(e){var a=t.getPossibeNext(e,"from");t.isChannel(a)&&t.setAndInsertNextNode(a)}))}},{key:"setNextNodeForRelay",value:function(){var t=this;this.getRelayNeighbours().forEach((function(e){var a=t.getPossibeNext(e,"to");t.isReturnChannel(a)&&t.setAndInsertNextNode(a)}))}},{key:"targetNode",get:function(){return this.getNodes.find((function(t){return t.klass===n.Gateway}))||g}}]),e}(f["d"]);Object(h["a"])([Xa.Getter],Wa.prototype,"getNodes",void 0),Object(h["a"])([Xa.Getter],Wa.prototype,"getEdges",void 0),Wa=Object(h["a"])([f["a"]],Wa);var qa=Wa,Qa=Object(p["a"])("c3Module"),tn=Object(p["a"])("visModule"),en=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.container=null,t.isSmooth=!1,t.isFullscreen=!1,t.lastClickNodeId="",t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"mounted",value:function(){this.createVisCanvas()}},{key:"createVisCanvas",value:function(){var t=this;this.container=this.$refs.c3canvas,window.networkc3=new $a["Network"](this.container,this.getGrapData,this.graphOtions),window.networkc3.on("click",(function(e){var a=window.networkc3.getNodeAt(e.pointer.DOM);t.lastClickNodeId===a?a&&t.openModal(a,t.nodeKlass(a)):t.lastClickNodeId=a,t.deselectNodes(),t.clearPath(),a&&t.selectNode(a)})),window.networkc3.on("startStabilizing",(function(t){var e=document.getElementById("progress-bar-status");null!==e&&(e.style.width="1px")})),window.networkc3.on("stabilizationProgress",(function(e){var a=Math.floor(e.iterations/t.getOptions.physics.stabilization.updateInterval),n=document.getElementById("progress-bar-status");null!==n&&(n.style.width=a+"%")})),window.networkc3.on("stabilized",(function(t){var e=document.getElementById("progress-bar-status");null!==e&&(e.style.width="1px")}))}},{key:"nodeKlass",value:function(t){return this.getNodeKlass(t)}},{key:"toggleTreeView",value:function(t){this.setTreeView(t.value),window.networkc3.setOptions(this.graphOtions),this.setGraphData()}},{key:"togglePhysics",value:function(t){this.setPhysics(t.value),window.networkc3.setOptions(this.graphOtions),this.setGraphData()}},{key:"toggleInterfaces",value:function(t){this.setShowInterfaces(t.value),this.generateNodes(),this.generateEdges(),this.setGraphData()}},{key:"toggleLabels",value:function(t){this.setShowLabels(t.value),this.generateNodes(),this.generateEdges(),this.setGraphData()}},{key:"toggleSmoothEdges",value:function(t){this.isSmooth=t.value,this.setSmoothEdge(t.value),window.networkc3.setOptions(this.graphOtions),this.setGraphData()}},{key:"reloadGraph",value:function(){var t=this.graphOtions;t.layout.randomSeed=Math.floor(785496*Math.random())+1,window.networkc3.setOptions(t),this.setGraphData()}},{key:"deselectNodes",value:function(){this.getVisNodes.forEach((function(t){window.networkc3.body.data.nodes.update([{id:t.id,shadow:{enabled:!1}}])}))}},{key:"clearPath",value:function(){this.getVisEdges.forEach((function(t){var e=window.networkc3.body.data.edges.get(t.id);(e.color&&0!==Object.keys(e.color).length||e.width&&1!==e.width)&&window.networkc3.body.data.edges.update([{id:t.id,color:{},width:1}])}))}},{key:"selectNode",value:function(t){window.networkc3.body.data.nodes.update([{id:t,shadow:{enabled:!0}}]);var e=this.getPathsFromGateway(t);this.getVisEdges.forEach((function(t){e&&e.includes(t.from)&&e.includes(t.to)&&window.networkc3.body.data.edges.update([{id:t.id,color:{color:"#AB61F6"},width:4}])}))}},{key:"getPathsFromGateway",value:function(t){return this.findPath(t)}},{key:"fullscreenIcon",get:function(){return this.isFullscreen?"zoomin":"fullscreen"}},{key:"graphOtions",get:function(){return this.getOptions}},{key:"graphData",get:function(){return this.getGrapData}},{key:"getTreeView",get:function(){return this.graphOtions.layout.hierarchical.enabled}},{key:"getPhysics",get:function(){return this.graphOtions.physics.enabled}},{key:"getInterfaces",get:function(){return this.getShowInterfaces}},{key:"getSmoothEdges",get:function(){return this.isSmooth}}]),e}(Object(f["b"])(j,qa));Object(h["a"])([tn.Action],en.prototype,"generateNodes",void 0),Object(h["a"])([tn.Action],en.prototype,"generateEdges",void 0),Object(h["a"])([tn.Getter],en.prototype,"getVisNodes",void 0),Object(h["a"])([tn.Getter],en.prototype,"getVisEdges",void 0),Object(h["a"])([tn.Getter],en.prototype,"getGrapData",void 0),Object(h["a"])([tn.Getter],en.prototype,"getOptions",void 0),Object(h["a"])([tn.Getter],en.prototype,"getShowInterfaces",void 0),Object(h["a"])([tn.Getter],en.prototype,"getShowLabels",void 0),Object(h["a"])([tn.Mutation],en.prototype,"setPhysics",void 0),Object(h["a"])([tn.Mutation],en.prototype,"setTreeView",void 0),Object(h["a"])([tn.Mutation],en.prototype,"setOptions",void 0),Object(h["a"])([tn.Mutation],en.prototype,"setSmoothEdge",void 0),Object(h["a"])([tn.Mutation],en.prototype,"setGraphData",void 0),Object(h["a"])([tn.Mutation],en.prototype,"setShowInterfaces",void 0),Object(h["a"])([tn.Mutation],en.prototype,"setShowLabels",void 0),Object(h["a"])([Qa.Action],en.prototype,"fetchGateway",void 0),Object(h["a"])([Qa.Getter],en.prototype,"getNodeKlass",void 0),en=Object(h["a"])([Object(f["a"])({components:{Toggle:Ja}})],en);var an=en,nn=an,sn=(a("8a9f"),Object(F["a"])(nn,Ua,Ba,!1,null,null,null)),on=sn.exports,rn=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3footer"},[t._v("C3 dashboard - Labs")])},cn=[],ln=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),e}(i["a"]);ln=Object(h["a"])([f["a"]],ln);var dn=ln,un=dn,hn=(a("c7ed"),Object(F["a"])(un,rn,cn,!1,null,"62086585",null)),fn=hn.exports,pn=function(){var t=this,e=t.$createElement;t._self._c;return t._m(0)},gn=[function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"c3navbar"},[n("img",{staticClass:"c3navbar-logo",attrs:{alt:"C3 logo",src:a("9b19")}}),n("div",{staticClass:"c3navbar-left"},[n("span",{staticClass:"c3navbar-left--title"},[t._v("C3")])])])}],mn=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),e}(i["a"]);mn=Object(h["a"])([f["a"]],mn);var yn=mn,vn=yn,bn=(a("67d9"),Object(F["a"])(vn,pn,gn,!1,null,"5295cdf8",null)),wn=bn.exports,Cn=function(){var t=this,e=t.$createElement,a=t._self._c||e;return t.hasSelectedGateway?a("div",{staticClass:"c3controll"},[a("span",{staticClass:"c3controll-help icon exclamation"}),a("ul",{staticClass:"c3controll-tabs"},[a("li",{class:{active:t.activeIsRelay},on:{click:function(e){return t.setActiveTab("relay")}}},[t._v("\n Relays\n ")]),a("li",{class:{active:t.activeIsInterface},on:{click:function(e){return t.setActiveTab("interface")}}},[t._v("\n Interfaces\n ")]),a("li",{class:{active:t.activeIsCommands},on:{click:function(e){return t.setActiveTab("command")}}},[t._v("\n Commands\n ")])]),t.activeIsRelay?a("RelaysTab"):t._e(),t.activeIsInterface?a("InterfacesTab"):t._e(),t.activeIsCommands?a("CommandsTab"):t._e()],1):t._e()},On=[],kn=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3tab"},[a("RelayList",{attrs:{"show-empty":!0},on:{count:function(e){return t.setCount(e)}}}),a("DataTableFooter",{attrs:{results:t.getCount}})],1)},jn=[],In=function(){var t=this,e=t.$createElement,a=t._self._c||e;return t.relays.length||t.displayEmpty?a("div",{staticClass:"c3InterfaceList"},[a("h1",{directives:[{name:"show",rawName:"v-show",value:t.hasTitle,expression:"hasTitle"}]},[t._v(t._s(t.title))]),t.relays.length?[a("table",{staticClass:"datatable"},[t._m(0),a("tbody",t._l(t.relays,(function(e,n){return a("tr",{directives:[{name:"show",rawName:"v-show",value:n>=t.minIndex&&n= minIndex && index < maxIndex"}],key:e.id,on:{click:function(a){return t.openModal(e.uid,e.klass)}}},[a("td",{staticClass:"c3link"},[a("span",{staticClass:"c3tab-info-dot not-active",class:{"is-active":!!e.isActive,"has-error":!!e.error}}),t._v("\n "+t._s(e.id)+"\n ")]),a("td",[t._v(t._s(e.name))]),a("td",[t._v(t._s(e.buildId))])])})),0)])]:t.displayEmpty?[t._v("\n No relays found...\n ")]:t._e()],2):t._e()},_n=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("thead",[a("tr",[a("th",[t._v("Relay ID")]),a("th",[t._v("Name")]),a("th",[t._v("Build ID")])])])}],xn=Object(p["a"])("c3Module"),Nn=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"relays",get:function(){return this.$emit("count",this.getRelays.length),this.getRelays}}]),e}(Object(f["b"])(j,L));Object(h["a"])([xn.Getter],Nn.prototype,"getRelays",void 0),Nn=Object(h["a"])([f["a"]],Nn);var Tn=Nn,Rn=Tn,Gn=(a("29d0"),Object(F["a"])(Rn,In,_n,!1,null,"579275ba",null)),Ln=Gn.exports,Mn=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3tabfooter"},[a("div",{staticClass:"c3tabfooter-info"},[t._v("Result: "+t._s(t.results))]),a("div",{staticClass:"c3tabfooter-action"},[t._v("\n Items per page:\n "),a("Select",{staticStyle:{"max-width":"60px","margin-bottom":"0"},attrs:{selected:t.perPage,options:{5:"5",10:"10",25:"25",50:"50",100:"100",1e3:"All"},border:!1,up:!0},on:{change:function(e){return t.changePerPage(e,t.page)}}})],1),a("div",{staticClass:"c3tabfooter-paginator"},[a("span",{staticClass:"c3tabfooter-controll",on:{click:function(e){return e.target!==e.currentTarget?null:t.prevPage(e)}}},[t._v("\n <  \n ")]),t._v("\n Page: "+t._s(t.actualPage)+" of "+t._s(t.maxPage)+"\n "),a("span",{staticClass:"c3tabfooter-controll",on:{click:function(e){return e.target!==e.currentTarget?null:t.nextPage(e)}}},[t._v("\n   >\n ")])])])},En=[],Pn=Object(p["a"])("paginateModule"),An=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.page="5",t.perPage="5",t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"created",value:function(){this.perPage=""+this.itemPerPage}},{key:"changePerPage",value:function(t){this.perPage=t,this.setItemPerPage(+this.perPage)}},{key:"nextPage",value:function(){this.actualPage1&&this.setActualPage(this.actualPage-1)}},{key:"actualPage",get:function(){return this.getActualPage}},{key:"itemPerPage",get:function(){return this.getItemPerPage}},{key:"maxPage",get:function(){var t=Math.ceil(this.results/this.itemPerPage);return 0===t?1:t}}]),e}(Object(f["b"])(j));Object(h["a"])([Object(f["c"])()],An.prototype,"results",void 0),Object(h["a"])([Pn.Getter],An.prototype,"getActualPage",void 0),Object(h["a"])([Pn.Getter],An.prototype,"getItemPerPage",void 0),Object(h["a"])([Pn.Mutation],An.prototype,"setActualPage",void 0),Object(h["a"])([Pn.Mutation],An.prototype,"setItemPerPage",void 0),An=Object(h["a"])([Object(f["a"])({components:{Select:ae}})],An);var Dn=An,Sn=Dn,Fn=(a("b12a"),Object(F["a"])(Sn,Mn,En,!1,null,"2eac248e",null)),Un=Fn.exports,Bn=Object(p["a"])("c3Module"),$n=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.rCount=0,t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"setCount",value:function(t){this.rCount=t}},{key:"getCount",get:function(){return this.rCount}}]),e}(Object(f["b"])(j));Object(h["a"])([Bn.Getter],$n.prototype,"getRelays",void 0),$n=Object(h["a"])([Object(f["a"])({components:{RelayList:Ln,DataTableFooter:Un}})],$n);var Vn=$n,Kn=Vn,zn=Object(F["a"])(Kn,kn,jn,!1,null,null,null),Hn=zn.exports,Zn=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3tab"},[a("CommandList",{attrs:{"show-empty":!0,"status-filter":t.selectedCommandStatus,"command-for-filter":t.selectedCommandFor}}),a("DataTableFooter",{attrs:{results:t.getCount}})],1)},Yn=[],Jn=function(){var t=this,e=t.$createElement,a=t._self._c||e;return t.commands.length||t.displayEmpty?a("div",{staticClass:"c3CommandList"},[a("h1",{directives:[{name:"show",rawName:"v-show",value:t.hasTitle,expression:"hasTitle"}]},[t._v(t._s(t.title))]),t.commands.length?[a("table",{staticClass:"datatable"},[t._m(0),a("tbody",t._l(t.commands,(function(e){return a("tr",{key:e.id,on:{click:function(a){return t.openModal(e.id,"COMMAND")}}},[a("td",{staticClass:"c3link"},[t._v("\n "+t._s(e.id)+"\n ")]),a("td",{staticClass:"command-for"},[t._v("\n "+t._s(t.commandType(e).toLowerCase())+"\n ")]),a("td",[t._v("\n "+t._s(t.commandTypeId(e))+"\n ")])])})),0)])]:t.displayEmpty?[t._v("\n No commands found...\n ")]:t._e()],2):t._e()},Xn=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("thead",[a("tr",[a("th",[t._v("Command ID")]),a("th",[t._v("Command for")]),a("th",[t._v("ID")])])])}],Wn=Object(p["a"])("c3CommandModule"),qn=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"commands",get:function(){var t=this,e=this.getCommands;return"COMPLETE"===this.statusFilter?e=e.filter((function(t){return!1===t.isPending})):"PENDING"===this.statusFilter&&(e=e.filter((function(t){return!0===t.isPending}))),"ALL"!==this.commandForFilter&&(e=e.filter((function(e){return t.commandType(e)===t.commandForFilter}))),this.$emit("count",e.length),e}}]),e}(Object(f["b"])(j,L));Object(h["a"])([Object(f["c"])()],qn.prototype,"statusFilter",void 0),Object(h["a"])([Object(f["c"])()],qn.prototype,"commandForFilter",void 0),Object(h["a"])([Wn.Getter],qn.prototype,"getCommands",void 0),Object(h["a"])([Wn.Getter],qn.prototype,"getCommandCount",void 0),qn=Object(h["a"])([f["a"]],qn);var Qn=qn,ti=Qn,ei=(a("9426"),Object(F["a"])(ti,Jn,Xn,!1,null,"39bf6527",null)),ai=ei.exports,ni=Object(p["a"])("paginateModule"),ii=Object(p["a"])("c3CommandModule"),si=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.commandFor="ALL",t.commandStatus="ALL",t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"onGetLastChange",value:function(t,e){this.fetchCommands(this.gateway.id)}},{key:"selectCommandFor",value:function(t){this.commandFor=t}},{key:"selectCommandStatus",value:function(t){this.commandStatus=t}},{key:"getCount",get:function(){return this.getCommandCount}},{key:"selectedCommandFor",get:function(){return this.commandFor}},{key:"selectedCommandStatus",get:function(){return this.commandStatus}}]),e}(Object(f["b"])(j));Object(h["a"])([ii.Getter],si.prototype,"getCommandCount",void 0),Object(h["a"])([ii.Action],si.prototype,"fetchCommands",void 0),Object(h["a"])([ni.Getter],si.prototype,"getActualPage",void 0),Object(h["a"])([ni.Getter],si.prototype,"getLastChange",void 0),Object(h["a"])([ni.Getter],si.prototype,"getItemPerPage",void 0),Object(h["a"])([ni.Mutation],si.prototype,"setActualPage",void 0),Object(h["a"])([Object(f["e"])("getLastChange")],si.prototype,"onGetLastChange",null),si=Object(h["a"])([Object(f["a"])({components:{Select:ae,CommandList:ai,DataTableFooter:Un}})],si);var oi=si,ri=oi,ci=Object(F["a"])(ri,Zn,Yn,!1,null,null,null),li=ci.exports,di=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3tab"},[a("div",{staticClass:"c3tab-filters"},[a("Select",{key:"type-filter",attrs:{legend:"Filter by type",selected:t.selectedInterfaceType,options:{ALL:"All",CHANNEL:"Channel",PERIPHERAL:"Peripheral",CONNECTOR:"Connector"},border:!0,up:!1},on:{change:function(e){return t.selectInterfaceType(e,t.interfaceType)}}}),a("Select",{key:"return-channel-filter",attrs:{legend:"Filter by Return Channel",selected:t.selectedReturnChannel,options:{ALL:"All",YES:"Yes",NO:"No"},border:!0,up:!1,disabled:t.isChannelOrAllForDisabled},on:{change:function(e){return t.selectReturnChannel(e,t.returnChannel)}}}),a("Select",{key:"negotiation-channel-filter",attrs:{legend:"Filter by Negotiation Channel",selected:t.selectedNegotiationChannel,options:{ALL:"All",YES:"Yes",NO:"No"},border:!0,up:!1,disabled:t.isChannelOrAllForDisabled},on:{change:function(e){return t.selectNegotiationChannel(e,t.negotiationChannel)}}})],1),a("InterfaceList",{attrs:{"show-empty":!0,"return-channel-filter":t.selectedReturnChannel,"negotiation-channel-filter":t.selectedNegotiationChannel,"interface-type-filter":t.selectedInterfaceType},on:{count:function(e){return t.setCount(e)}}}),a("DataTableFooter",{attrs:{results:t.getCount}})],1)},ui=[],hi=function(){var t=this,e=t.$createElement,a=t._self._c||e;return t.c3Interfaces.length||t.displayEmpty?a("div",{staticClass:"c3CommandList"},[a("h1",{directives:[{name:"show",rawName:"v-show",value:t.hasTitle,expression:"hasTitle"}]},[t._v(t._s(t.title))]),t.c3Interfaces.length?[a("table",{staticClass:"datatable"},[t._m(0),a("tbody",t._l(t.c3Interfaces,(function(e,n){return a("tr",{directives:[{name:"show",rawName:"v-show",value:n>=t.minIndex&&n= minIndex && index < maxIndex"}],key:e.uid,on:{click:function(a){return t.openModal(e.uid,e.klass)}}},[a("td",{staticClass:"c3link"},[a("span",{staticClass:"c3tab-info-dot",class:{"is-return":!!e.isReturnChannel,"has-error":!!e.error}}),t._v("\n "+t._s(e.id)+"\n ")]),a("td",{staticClass:"capitalize"},[t._v(t._s(e.klass.toLowerCase()))]),a("td",[t._v(t._s(t.interfaceTypeName(e)))]),a("td",[t._v(t._s(t.interfaceType(e)))])])})),0)])]:t.displayEmpty?[t._v("\n No interfaces found...\n ")]:t._e()],2):t._e()},fi=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("thead",[a("tr",[a("th",[t._v("Interface ID")]),a("th",[t._v("Type")]),a("th",[t._v("Name")]),a("th",[t._v("Channel Type")])])])}],pi=Object(p["a"])("c3Module"),gi=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"c3Interfaces",get:function(){var t=[];return t="ALL"===this.interfaceTypeFilter?this.getInterfaces():this.getInterfaces([this.interfaceTypeFilter]),"YES"===this.returnChannelFilter?t=t.filter((function(t){return!!t.isReturnChannel})):"NO"===this.returnChannelFilter&&(t=t.filter((function(t){return!t.isReturnChannel}))),"YES"===this.negotiationChannelFilter?t=t.filter((function(t){return!!t.isNegotiationChannel})):"NO"===this.negotiationChannelFilter&&(t=t.filter((function(t){return!t.isNegotiationChannel}))),this.$emit("count",t.length),t}}]),e}(Object(f["b"])(j,L));Object(h["a"])([Object(f["c"])()],gi.prototype,"returnChannelFilter",void 0),Object(h["a"])([Object(f["c"])()],gi.prototype,"interfaceTypeFilter",void 0),Object(h["a"])([Object(f["c"])()],gi.prototype,"negotiationChannelFilter",void 0),Object(h["a"])([pi.Getter],gi.prototype,"getCommands",void 0),Object(h["a"])([pi.Getter],gi.prototype,"getInterfaces",void 0),gi=Object(h["a"])([f["a"]],gi);var mi=gi,yi=mi,vi=(a("3525"),Object(F["a"])(yi,hi,fi,!1,null,"f8188e22",null)),bi=vi.exports,wi=(Object(p["a"])("c3Module"),function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.iCount=0,t.interfaceByType="ALL",t.returnChannel="ALL",t.negotiationChannel="ALL",t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"setCount",value:function(t){this.iCount=t}},{key:"selectInterfaceType",value:function(t){"PERIPHERAL"!==this.interfaceByType&&"CONNECTOR"!==this.interfaceByType||"ALL"!==t&&"CHANNEL"!==t||(this.selectReturnChannel("ALL"),this.selectNegotiationChannel("ALL")),this.interfaceByType=t}},{key:"selectReturnChannel",value:function(t){this.returnChannel=t}},{key:"selectNegotiationChannel",value:function(t){this.negotiationChannel=t}},{key:"getCount",get:function(){return this.iCount}},{key:"selectedInterfaceType",get:function(){return this.interfaceByType}},{key:"selectedReturnChannel",get:function(){return this.returnChannel}},{key:"selectedNegotiationChannel",get:function(){return this.negotiationChannel}},{key:"isChannelOrAllForDisabled",get:function(){var t="ALL"===this.selectedInterfaceType||"CHANNEL"===this.selectedInterfaceType;return t||(this.selectReturnChannel("NO"),this.selectNegotiationChannel("NO")),!t}}]),e}(Object(f["b"])(j)));wi=Object(h["a"])([Object(f["a"])({components:{Select:ae,InterfaceList:bi,DataTableFooter:Un}})],wi);var Ci=wi,Oi=Ci,ki=Object(F["a"])(Oi,di,ui,!1,null,null,null),ji=ki.exports,Ii=Object(p["a"])("c3Module"),_i=Object(p["a"])("paginateModule"),xi=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.activeTab="relay",t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"setActiveTab",value:function(t){this.setActualPage(1),this.activeTab=t}},{key:"activeIsRelay",get:function(){return"relay"===this.activeTab}},{key:"activeIsInterface",get:function(){return"interface"===this.activeTab}},{key:"activeIsCommands",get:function(){return"command"===this.activeTab}},{key:"hasSelectedGateway",get:function(){return this.hasGatewaySelected}}]),e}(Object(f["b"])(j));Object(h["a"])([_i.Mutation],xi.prototype,"setActualPage",void 0),Object(h["a"])([Ii.Getter],xi.prototype,"hasGatewaySelected",void 0),xi=Object(h["a"])([Object(f["a"])({components:{RelaysTab:Hn,CommandsTab:li,InterfacesTab:ji}})],xi);var Ni=xi,Ti=Ni,Ri=(a("1d22"),Object(F["a"])(Ti,Cn,On,!1,null,null,null)),Gi=Ri.exports,Li=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3side"},[a("div",{staticClass:"c3side-title-wrapper"},[a("h1",{staticClass:"c3side-title"},[t._v("Network")]),a("span",{staticClass:"c3side-config-link",on:{click:function(e){return t.openModal("","OPTIONS")}}},[t._v("EDIT CONFIG")])]),a("div",{staticClass:"c3side-body"},[a("NetworkStats"),a("div",{staticClass:"c3side-refresh-wrapper"},[a("span",{staticClass:"c3side-refres-title"},[t._v("\n Refresh Rate\n ")]),a("Select",{staticClass:"c3site-refresh-dropdown",staticStyle:{"margin-bottom":"0"},attrs:{selected:t.selectedRefreshRate,options:t.refreshRates(),border:!1},on:{change:function(e){return t.setRefreshRate(e,t.refreshRate)}}})],1),a("Toggle",{key:"toggle-auto-update-button",attrs:{legend:"Auto Update",name:"autoUpdate",checked:t.getAutoUpdateEnabled,help:"Auto Update checks for network changes automatically,\n this may result in live updated to the graph and data tables when enabled",disabled:!1},on:{change:function(e){return t.toggleAutoUpdate(e)}}}),a("div",{staticClass:"c3btn-group"},[a("button",{staticClass:"c3btn c3btn--grey",on:{click:function(e){return t.openModal("","CREATE_GATEWAY")}}},[t._v("\n New Gateway\n ")])])],1)])},Mi=[],Ei=(Object(p["a"])("c3Module"),Object(p["a"])("visModule")),Pi=Object(p["a"])("optionsModule"),Ai=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.refreshRate="2",t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"toggleAutoUpdate",value:function(t){this.setAutoUpdateEnabled(t.value)}},{key:"setRefreshRate",value:function(t){this.refreshRate=t,this.setRefreshInterval(1e3*parseInt(t,10))}},{key:"refreshRates",value:function(){return{1:"1 second",2:"2 seconds",5:"5 seconds",10:"10 seconds",20:"20 seconds",30:"30 seconds",60:"1 minute",120:"2 minutes",300:"5 minutes",600:"10 minutes",1800:"30 minutes",3600:"1 hour"}}},{key:"getAutoUpdate",get:function(){return this.getAutoUpdateEnabled}},{key:"selectedRefreshRate",get:function(){return this.refreshRate}}]),e}(Object(f["b"])(j));Object(h["a"])([Ei.Getter],Ai.prototype,"getAutoUpdateEnabled",void 0),Object(h["a"])([Ei.Mutation],Ai.prototype,"setAutoUpdateEnabled",void 0),Object(h["a"])([Pi.Getter],Ai.prototype,"getRefreshInterval",void 0),Object(h["a"])([Pi.Mutation],Ai.prototype,"setRefreshInterval",void 0),Ai=Object(h["a"])([Object(f["a"])({components:{Toggle:Ja,Select:ae,NetworkStats:Nt}})],Ai);var Di=Ai,Si=Di,Fi=(a("3d3f"),Object(F["a"])(Si,Li,Mi,!1,null,"6cd95e5d",null)),Ui=Fi.exports,Bi=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3gateway"},[t._m(0),a("SelectGatewayForm")],1)},$i=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3gateway-row"},[a("span",{staticClass:"c3gateway-title"},[t._v("\n Gateway Selection\n ")])])}],Vi=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3gateway-row"},[a("Select",{attrs:{legend:"Gateways",selected:t.selectedGateway,options:t.gateways,border:!0,up:!1},on:{change:function(e){return t.selectGateway(e,t.activeGateway)}}})],1)},Ki=[],zi=Object(p["a"])("c3Module"),Hi=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.activeGateway="",t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"selectGateway",value:function(t){this.activeGateway=t,this.changeGateway(),this.addNotify({type:"info",message:"Gateway [".concat(this.selectedGateway,"] selected...")})}},{key:"changeGateway",value:function(){this.fetchGateway({gatewayId:this.selectedGateway})}},{key:"selectedGateway",get:function(){return this.activeGateway}},{key:"gateways",get:function(){var t=this.getGateways,e={};return t.forEach((function(t,a){e[t.agentId]="".concat(t.name," - ").concat(t.agentId)})),t.length>0&&""===this.selectedGateway&&(this.activeGateway=t[0].agentId,this.fetchGateway({gatewayId:this.selectedGateway})),e}}]),e}(Object(f["b"])(j));Object(h["a"])([zi.Action],Hi.prototype,"fetchGateway",void 0),Object(h["a"])([zi.Getter],Hi.prototype,"getGateways",void 0),Hi=Object(h["a"])([Object(f["a"])({components:{Select:ae}})],Hi);var Zi=Hi,Yi=Zi,Ji=(a("a29d"),Object(F["a"])(Yi,Vi,Ki,!1,null,"49ef2de9",null)),Xi=Ji.exports,Wi=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),e}(Object(f["b"])(j));Wi=Object(h["a"])([Object(f["a"])({components:{SelectGatewayForm:Xi}})],Wi);var qi=Wi,Qi=qi,ts=(a("b0db"),Object(F["a"])(Qi,Bi,$i,!1,null,null,null)),es=ts.exports,as=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("transition-group",{staticClass:"c3notify",attrs:{name:"slide",tag:"ul"}},t._l(t.notifies,(function(e){return a("li",{key:e.id,class:"c3notify-"+e.type,staticStyle:{right:"0"}},[e.title?a("h1",[t._v(t._s(e.title))]):t._e(),a("p",[t._v(t._s(e.message))]),a("span",{staticClass:"c3notify-close icon close",on:{click:function(a){return a.target!==a.currentTarget?null:t.deleteNotify(e.id)}}})])})),0)},ns=[],is=Object(p["a"])("notifyModule"),ss=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"deleteNotify",value:function(t){this.removeNotify(t)}},{key:"notifies",get:function(){return this.getNotifies}}]),e}(i["a"]);Object(h["a"])([is.Getter],ss.prototype,"getNotifies",void 0),Object(h["a"])([is.Mutation],ss.prototype,"removeNotify",void 0),ss=Object(h["a"])([f["a"]],ss);var os=ss,rs=os,cs=(a("0673"),Object(F["a"])(rs,as,ns,!1,null,null,null)),ls=cs.exports,ds=Object(p["a"])("c3Module"),us=Object(p["a"])("visModule"),hs=Object(p["a"])("paginateModule"),fs=Object(p["a"])("c3CommandModule"),ps=Object(p["a"])("optionsModule"),gs=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"mounted",value:function(){this.updateData(),this.setTime=setInterval(this.updateData,this.refreshRate)}},{key:"destroy",value:function(){clearInterval(this.setTime)}},{key:"setNewRefreshRate",value:function(t,e){clearInterval(this.setTime),this.setTime=setInterval(this.updateData,this.refreshRate)}},{key:"onGetGrapDataChange",value:function(t,e){void 0!==window.networkc3&&window.networkc3.setData(this.getGrapData),this.fetchCommands(this.gateway.id),this.fetchCapability({gatewayId:this.gateway.id})}},{key:"updateData",value:function(){!0===this.getAutoUpdateEnabled&&(this.fetchGateways(),this.gateway&&this.gateway.klass!==n.Undefined&&this.fetchGateway({gatewayId:this.gateway.id}))}},{key:"gateway",get:function(){return void 0===this.getGateway?g:this.getGateway}},{key:"hasSelectedGateway",get:function(){return this.getGateways.length>0}},{key:"refreshRate",get:function(){return this.getRefreshInterval}}]),e}(i["a"]);Object(h["a"])([hs.Mutation],gs.prototype,"setActualPage",void 0),Object(h["a"])([ds.Action],gs.prototype,"fetchGateways",void 0),Object(h["a"])([ds.Action],gs.prototype,"fetchGateway",void 0),Object(h["a"])([ds.Action],gs.prototype,"fetchCapability",void 0),Object(h["a"])([ds.Getter],gs.prototype,"getGateway",void 0),Object(h["a"])([ds.Getter],gs.prototype,"getGateways",void 0),Object(h["a"])([us.Action],gs.prototype,"generateNodes",void 0),Object(h["a"])([us.Getter],gs.prototype,"getGrapData",void 0),Object(h["a"])([us.Getter],gs.prototype,"getAutoUpdateEnabled",void 0),Object(h["a"])([fs.Action],gs.prototype,"fetchCommands",void 0),Object(h["a"])([ps.Getter],gs.prototype,"getRefreshInterval",void 0),Object(h["a"])([Object(f["e"])("getRefreshInterval")],gs.prototype,"setNewRefreshRate",null),Object(h["a"])([Object(f["e"])("getGrapData")],gs.prototype,"onGetGrapDataChange",null),gs=Object(h["a"])([Object(f["a"])({components:{Navbar:wn,GatewayForm:es,Canvas:on,Controll:Gi,SideMenu:Ui,Footer:fn,Modal:Fa,Notification:ls,CreateGatewayModal:ma}})],gs);var ms=gs,ys=ms,vs=(a("cf25"),Object(F["a"])(ys,s,o,!1,null,null,null)),bs=vs.exports,ws=a("2f62"),Cs=a("6821f"),Os=a.n(Cs),ks=!0,js={gateways:[],gateway:null,nodes:[],edges:[],relayTimestamps:[],mustRefresh:!1,lastGetHash:""},Is={getNodes:function(t){return t.nodes},getEdges:function(t){return t.edges},getGateways:function(t){return t.gateways},getGateway:function(t){return t.nodes.find((function(t){return t.klass===n.Gateway}))},hasGatewaySelected:function(t){return!!t.gateway},getRelays:function(t){return t.nodes.filter((function(t){return t.klass===n.Relay}))},getRelay:function(t){return function(e){return t.nodes.find((function(t){return t.id===e&&t.klass===n.Relay}))}},getGatewayRoutes:function(t){return t.gateway?t.gateway.routes:[]},getRelayRoutes:function(t){return function(e){if(t.gateway){var a=t.gateway.relays.find((function(t){return t.agentId===e}));if(a)return a.routes}return[]}},getInterface:function(t){return function(e){if("new"===e)return{uid:"new",klass:n.Relay,id:"new",buildId:"",name:"new",pending:!0,isActive:!1,type:-1,error:null,parentId:null,parentKlass:n.Gateway,initialCommand:{},timestamp:Math.floor(Date.now()/1e3)};t.nodes.find((function(t){return t.uid===e}));return t.nodes.find((function(t){return t.uid===e}))}},getInterfaces:function(t){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[n.Channel,n.Connector,n.Peripheral];return t.nodes.filter((function(t){return e.includes(t.klass)}))}},getInterfacesFor:function(t){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[n.Channel,n.Connector,n.Peripheral],a=arguments.length>1?arguments[1]:void 0;return""!==a&&null!==a||!t.gateway||(a=t.gateway.agentId),t.nodes.filter((function(t){return e.includes(t.klass)&&t.parentId===a}))}},getNodeKlass:function(t){return function(e){var a=t.nodes.find((function(t){return t.uid===e}));return a?a.klass:n.Undefined}}},_s={updateGateways:function(t,e){t.gateways=e},updateGateway:function(t,e){t.gateway=e},populateNodes:function(t,e){var a=function(){for(var t=arguments.length,e=new Array(t),a=0;a0)return t.modals[t.modals.length-1]}},Ls={newModal:function(t,e){var a=!1;t.modals.length>1&&(a=t.modals[t.modals.length-2]),!1!==a&&a.modalTarget===e.modalTarget&&a.modalTargetId===e.modalTargetId?t.modals.pop():t.modals.push(e)},closeModal:function(t){t.modals.length>0&&t.modals.pop()},closeModalAll:function(t){t.modals=[]}},Ms={},Es={namespaced:Ts,state:Rs,getters:Gs,mutations:Ls,actions:Ms},Ps=!0,As={itemPerPage:5,actualPage:1,lastChange:Date.now()},Ds={getItemPerPage:function(t){return t.itemPerPage},getActualPage:function(t){return t.actualPage},getLastChange:function(t){return t.lastChange}},Ss={setItemPerPage:function(t,e){t.actualPage=1,t.itemPerPage=e,t.lastChange=Date.now()},setActualPage:function(t,e){t.actualPage=e,t.lastChange=Date.now()}},Fs={},Us={namespaced:Ps,state:As,getters:Ds,mutations:Ss,actions:Fs},Bs='',$s='',Vs='',Ks='',zs='',Hs='',Zs='',Ys='',Js='',Xs='',Ws='',qs='',Qs='',to='',eo='',ao='',no='',io='',so='',oo="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(Bs),ro="data:image/svg+xml;charset=utf-8,"+encodeURIComponent($s),co="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(Vs),lo="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(Hs),uo="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(Zs),ho="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(Ks),fo="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(zs),po="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(Ys),go="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(Js),mo=(encodeURIComponent(Xs),encodeURIComponent(Ws),encodeURIComponent(qs),"data:image/svg+xml;charset=utf-8,"+encodeURIComponent(Qs)),yo="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(to),vo="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(eo),bo="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(ao),wo="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(no),Co="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(io),Oo="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(so),ko=10,jo=20,Io=30,_o=40,xo=50,No=5,To=2,Ro=3,Go=5,Lo={nodes:{font:{color:"#fff",background:"#222",size:12,face:"Roboto Mono",strokeWidth:0,vadjust:0},shadow:{enabled:!1,color:"rgba(75,174,97,1)",size:20,x:0,y:0},widthConstraint:{maximum:75},margin:{top:0}},edges:{font:{color:"#fff",background:"#222",size:12,face:"Roboto Mono",strokeWidth:0},color:{color:"#BDBDBD",highlight:"#27ae60"},smooth:!1},groups:{10:{shape:"image",image:mo,size:30},11:{shape:"image",image:vo,size:30},13:{shape:"image",image:yo,size:30},14:{shape:"image",image:vo,size:30},20:{shape:"image",image:bo,size:30},21:{shape:"image",image:Oo,size:30},23:{shape:"image",image:wo,size:30},24:{shape:"image",image:Oo,size:30},25:{shape:"image",image:Co,size:30},26:{shape:"image",image:Oo,size:30},28:{shape:"image",image:Co,size:30},29:{shape:"image",image:Oo,size:30},30:{shape:"image",image:oo,size:20},31:{shape:"image",image:co,size:20},32:{shape:"image",image:ro,size:20},33:{shape:"image",image:co,size:20},35:{shape:"image",image:ho,size:25},36:{shape:"image",image:fo,size:25},40:{shape:"image",image:lo,size:20},41:{shape:"image",image:uo,size:20},50:{shape:"image",image:po,size:20},51:{shape:"image",image:go,size:20}},layout:{randomSeed:921401,improvedLayout:!0,hierarchical:{enabled:!0,direction:"LR",parentCentralization:!0,blockShifting:!0,levelSeparation:150,treeSpacing:200,nodeSpacing:100,edgeMinimization:!0,sortMethod:"hubsize"}},physics:{enabled:!0,solver:"barnesHut",barnesHut:{gravitationalConstant:-4500,springLength:100,springConstant:.01,damping:.1,avoidOverlap:0},minVelocity:.45,stabilization:{enabled:!0,iterations:1e3,updateInterval:10,onlyDynamicEdges:!1,fit:!0}},interaction:{navigationButtons:!0,keyboard:!1}},Mo=3,Eo=5e3,Po=!0,Ao={nodes:{},edges:{},options:Lo,showInterfaces:!0,showLabels:!0,autoUpdateEnabled:!0,graphData:{nodes:new $a["DataSet"]({}),edges:new $a["DataSet"]({})}},Do={getVisNodes:function(t){return t.nodes},getVisEdges:function(t){return t.edges},getGrapData:function(t){return t.graphData},getOptions:function(t){return t.options},getShowInterfaces:function(t){return t.showInterfaces},getShowLabels:function(t){return t.showLabels},getAutoUpdateEnabled:function(t){return t.autoUpdateEnabled}},So={setNodes:function(t,e){t.nodes=e},setEdges:function(t,e){t.edges=e},setGraphData:function(t){var e=new $a["DataSet"](t.nodes),a=new $a["DataSet"](t.edges),n={nodes:e,edges:a};t.graphData=n},setOptions:function(t,e){t.options=e},setShowInterfaces:function(t,e){t.showInterfaces=e},setShowLabels:function(t,e){t.showLabels=e},setTreeView:function(t,e){t.options.layout.hierarchical.enabled=e,t.options.physics.stabilization.onlyDynamicEdges=!0===e},setPhysics:function(t,e){t.options.physics.enabled=e},setSmoothEdge:function(t,e){t.options.edges.smooth=e},setAutoUpdateEnabled:function(t,e){t.autoUpdateEnabled=e}},Fo={generateNodes:function(t){var e=t.rootGetters["c3Module/getNodes"],a=t.rootGetters["c3Module/getGateway"].timestamp,i=t.rootGetters["c3Module/getGateway"].isActive,s=function(t,e,a){var i=0;null!==t.error&&++i;var s=!0;switch(void 0!==t.isActive&&!1===t.isActive&&(s=!1),t.klass===n.Relay&&(t.timestamp&&(s=!(t.timestamp-1&&(t.notifys[a]=e)},removeNotify:function(t,e){var a=t.notifys.findIndex((function(t){return t.id===e}));a>-1&&t.notifys.splice(a,1)},removeOldestNotify:function(t){var e=t.notifys.length;if(e>0){var a=t.notifys[0];a.timeoutID&&clearTimeout(a.timeoutID),t.notifys.splice(0,1)}}},zo={insertNotify:function(t,e){var a=function(a){e.id=Math.random().toString(36).substr(2),e.timeoutID=setTimeout((function(){return t.commit("removeNotify",e.id),!0}),Eo),t.commit("addNotify",e)},n=t.state.notifys.length;if(n>0)if(e.message!==t.state.notifys[n-1].message)a(e);else{var i=t.state.notifys[n-1];clearTimeout(i.timeoutID),i.timeoutID=setTimeout((function(){return t.commit("removeNotify",i.id),!0}),Eo),t.commit("updateNotify",i)}else a(e);n>=Mo&&t.commit("removeOldestNotify")}},Ho={namespaced:Bo,state:$o,getters:Vo,mutations:Ko,actions:zo},Zo=!0,Yo={capability:{},interfaceList:[]},Jo={getCommandGroupFor:function(t){return function(e){var a={};switch(e){case n.Gateway:t.capability&&t.capability.commands&&(a=t.capability.commands);break;case n.Relay:t.capability&&t.capability.relayCommands&&(a=t.capability.relayCommands.commands);break;case n.Channel:t.capability&&t.capability.channelCommands&&(a=t.capability.channelCommands.commands);break;case n.Peripheral:t.capability&&t.capability.peripheralCommands&&(a=t.capability.peripheralCommands.commands);break;case n.Connector:t.capability&&t.capability.connectorCommands&&(a=t.capability.connectorCommands.commands);break}var i={};return void 0!==a.length&&a.forEach((function(t){var e=t.name;i[e]=e})),i}},getCommandTargetFor:function(t){return function(e,a,i){var s={};switch(a){case n.Gateway:t.capability&&t.capability.commands&&(s=t.capability.commands);break;case n.Relay:t.capability&&t.capability.relayCommands&&(s=t.capability.relayCommands.commands);break;case n.Channel:t.capability&&t.capability.channelCommands&&(s=t.capability.channelCommands.commands);break;case n.Peripheral:t.capability&&t.capability.peripheralCommands&&(s=t.capability.peripheralCommands.commands);break;case n.Connector:t.capability&&t.capability.connectorCommands&&(s=t.capability.connectorCommands.commands);break}var o={};void 0!==s.length&&(o=s.find((function(t){return t.name===e})));var r={};if(o&&o.arguments){var c=o.arguments.find((function(t){return"form"===t.type}));c.defaultValue.forEach((function(t){if(void 0===i)r[t.replace(/:/g,"_")]=t.split(":")[2];else{var e=t.split(":")[1];e===i&&(r[t.replace(/:/g,"_")]=t.split(":")[2])}}))}return r}},getTypeNameForInterface:function(t){return function(e,a){var n=t.interfaceList.find((function(t){return""+t.type===""+e}));return void 0!==n?n.name:""}},getTypesForInterfaceKlass:function(t){return function(e){return t.interfaceList.filter((function(t){return t.klass===e}))}},getCapabilityFor:function(t){return function(e,a){return t.interfaceList.find((function(t){return t.name===e&&t.klass===a}))}}},Xo={updateCapability:function(t,e){t.interfaceList=[],t.capability=e},populateList:function(t){var e=function(e){t.capability&&t.capability[e]&&t.capability[e].forEach((function(a){var i={type:a.type,name:a.name,commands:a.commands};switch(e){case"channels":i.klass=n.Channel;break;case"connectors":i.klass=n.Connector;break;case"peripherals":i.klass=n.Peripheral;break;case"gateway":i.klass=n.Gateway;break;case"relay":i.klass=n.Relay;break}t.interfaceList.push(i)}))};e("channels"),e("connectors"),e("peripherals"),e("gateway"),e("relay")}},Wo={fetchCapability:function(t,e){if(e.gatewayId){var a="/api/gateway/".concat(e.gatewayId,"/capability"),n="".concat(t.rootGetters["optionsModule/getAPIUrl"],":").concat(t.rootGetters["optionsModule/getAPIPort"]);R.a.get(a,{baseURL:n}).then((function(e){t.commit("updateCapability",e.data),t.commit("populateList",e.data)})).catch((function(e){t.dispatch("notifyModule/insertNotify",{type:"error",message:e.message},{root:!0}),console.error(e.message)}))}else t.dispatch("notifyModule/insertNotify",{type:"error",message:"missing: gatewayId"},{root:!0}),console.error("missing: gatewayId")}},qo={namespaced:Zo,state:Yo,getters:Jo,mutations:Xo,actions:Wo},Qo=!0,tr={baseUrl:"http://localhost",port:52935,refreshInterval:2e3},er={getAPIUrl:function(t){return t.baseUrl},getAPIPort:function(t){return t.port},getAPIBaseUrl:function(t){return t.baseUrl+":"+t.port},getRefreshInterval:function(t){return t.refreshInterval}},ar={setBaseURL:function(t,e){t.baseUrl=e},setBasePort:function(t,e){t.port=e},setRefreshInterval:function(t,e){t.refreshInterval=e}},nr={},ir={namespaced:Qo,state:tr,getters:er,mutations:ar,actions:nr},sr=!0,or={commands:[],totalCount:0},rr={getCommands:function(t){return t.commands},getCommand:function(t){return function(e){return t.commands.find((function(t){return""+t.id===""+e}))}},getCommandCount:function(t){return t.totalCount}},cr={updateCommands:function(t,e){t.commands=e},updateTotalCount:function(t,e){t.totalCount=e}},lr={fetchCommands:function(t,e){if(e){var a=t.rootGetters["paginateModule/getActualPage"],n=t.rootGetters["paginateModule/getItemPerPage"],i="/api/gateway/".concat(e,"/command?all=true&page=").concat(a,"&perPage=").concat(n),s="".concat(t.rootGetters["optionsModule/getAPIUrl"],":").concat(t.rootGetters["optionsModule/getAPIPort"]);R.a.get(i,{baseURL:s}).then((function(e){t.commit("updateCommands",e.data);var a=0;e.headers["X-Total-Count"]?a=e.headers["X-Total-Count"]:e.headers["x-total-count"]&&(a=e.headers["x-total-count"]),a&&t.commit("updateTotalCount",a)})).catch((function(e){t.dispatch("notifyModule/insertNotify",{type:"error",message:e.message},{root:!0}),console.error(e.message)}))}else t.dispatch("notifyModule/insertNotify",{type:"error",message:"missing: gatewayId"},{root:!0}),console.error("missing: gatewayId")}},dr={namespaced:sr,state:or,getters:rr,mutations:cr,actions:lr};i["a"].use(ws["a"]);var ur={state:{version:"1.0.0"},modules:{c3Module:Ns,visModule:Uo,modalModule:Es,notifyModule:Ho,c3Capability:qo,optionsModule:ir,paginateModule:Us,c3CommandModule:dr}},hr=new ws["a"].Store(ur),fr=a("7bb1");a("b107"),a("5207");i["a"].config.productionTip=!1,window.networkc3={},i["a"].use(fr["a"],{inject:!1,validity:!0}),new i["a"]({store:hr,render:function(t){return t(bs)}}).$mount("#app")},cf25:function(t,e,a){"use strict";var n=a("56cc"),i=a.n(n);i.a},d94a:function(t,e,a){"use strict";var n=a("c777"),i=a.n(n);i.a},e181:function(t,e,a){"use strict";var n=a("4dd2"),i=a.n(n);i.a},e1b5:function(t,e,a){"use strict";var n=a("7d44"),i=a.n(n);i.a},e3b6:function(t,e,a){},e72f:function(t,e,a){"use strict";var n=a("9412"),i=a.n(n);i.a},e813:function(t,e,a){"use strict";var n=a("e3b6"),i=a.n(n);i.a},e8eb:function(t,e,a){},eef7:function(t,e,a){},f2d7:function(t,e,a){},f32c:function(t,e,a){},fe67:function(t,e,a){},feaa:function(t,e,a){}}); -//# sourceMappingURL=app.845f1b3c.js.map \ No newline at end of file diff --git a/Src/WebController/Backend/wwwroot/js/app.845f1b3c.js.map b/Src/WebController/Backend/wwwroot/js/app.845f1b3c.js.map deleted file mode 100644 index b0438b9..0000000 --- a/Src/WebController/Backend/wwwroot/js/app.845f1b3c.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/Notification.vue?4c46","webpack:///./src/components/partial/ChannelList.vue?c5b7","webpack:///./src/components/Controll.vue?4be5","webpack:///./src/components/partial/RelayList.vue?e095","webpack:///./src/components/partial/DonutForm.vue?aa52","webpack:///./src/components/modals/Command.vue?7fca","webpack:///./src/components/partial/InterfaceList.vue?ab78","webpack:///./src/components/SideMenu.vue?42ad","webpack:///./src/components/modals/Relay.vue?19ce","webpack:///./src/components/modals/CreateRelay.vue?ff18","webpack:///./src/components/partial/PeripheralList.vue?6387","webpack:///./src/components/Navbar.vue?d68c","webpack:///./src/components/form/Input.vue?5603","webpack:///./src/components/form/CheckBox.vue?4775","webpack:///./src/components/Canvas.vue?405d","webpack:///./src/components/partial/CommandList.vue?df45","webpack:///./src/assets/logo.svg","webpack:///./src/components/modals/Interface.vue?7a71","webpack:///./src/components/form/SelectGatewayForm.vue?5f8a","webpack:///./src/components/GatewayForm.vue?9973","webpack:///./src/components/datatables/DataTableFooter.vue?22e4","webpack:///./src/components/partial/RouteList.vue?31e7","webpack:///./src/components/partial/NetworkStats.vue?e06a","webpack:///./src/components/form/Toggle.vue?b907","webpack:///./src/components/partial/ConnectorList.vue?1ba0","webpack:///./src/components/form/Textarea.vue?286d","webpack:///./src/components/Footer.vue?49cc","webpack:///./src/types/c3types.ts","webpack:///./src/App.vue?4745","webpack:///./src/components/Modal.vue?32af","webpack:///./src/c3.ts","webpack:///./src/components/modals/Relay.vue?7774","webpack:///./src/components/partial/RouteList.vue?7bac","webpack:///./src/components/partial/Partial.ts","webpack:///./src/components/partial/RouteList.vue?06ec","webpack:///./src/components/partial/RouteList.vue?7d6e","webpack:///./src/components/partial/RouteList.vue","webpack:///./src/components/partial/ChannelList.vue?70e2","webpack:///./src/components/partial/ChannelList.vue?faea","webpack:///./src/components/partial/ChannelList.vue?6305","webpack:///./src/components/partial/ChannelList.vue","webpack:///./src/components/partial/PeripheralList.vue?c4de","webpack:///./src/components/partial/PeripheralList.vue?1531","webpack:///./src/components/partial/PeripheralList.vue?378d","webpack:///./src/components/partial/PeripheralList.vue","webpack:///./src/components/modals/Relay.vue?6330","webpack:///./src/components/modals/Relay.vue?8630","webpack:///./src/components/modals/Relay.vue","webpack:///./src/components/modals/Command.vue?6b82","webpack:///./src/components/modals/Command.vue?8ca1","webpack:///./src/components/modals/Command.vue?c60c","webpack:///./src/components/modals/Command.vue","webpack:///./src/components/modals/Gateway.vue?3a4e","webpack:///./src/components/partial/NetworkStats.vue?9f5e","webpack:///./src/components/partial/NetworkStats.vue?c9ff","webpack:///./src/components/partial/NetworkStats.vue?6899","webpack:///./src/components/partial/NetworkStats.vue","webpack:///./src/components/partial/ConnectorList.vue?b330","webpack:///./src/components/partial/ConnectorList.vue?a4e8","webpack:///./src/components/partial/ConnectorList.vue?4a28","webpack:///./src/components/partial/ConnectorList.vue","webpack:///./src/components/modals/CommandCenter.vue?8a96","webpack:///./src/components/form/Input.vue?b7b2","webpack:///./src/components/form/C3FormElement.ts","webpack:///./src/components/form/Input.vue?0950","webpack:///./src/components/form/Input.vue?b457","webpack:///./src/components/form/Input.vue","webpack:///./src/components/form/Select.vue?a6c3","webpack:///./src/components/form/Select.vue?5ae7","webpack:///./src/components/form/Select.vue?9c6b","webpack:///./src/components/form/Select.vue","webpack:///./src/components/form/GeneralForm.vue?722f","webpack:///./src/components/form/CheckBox.vue?887b","webpack:///./src/components/form/CheckBox.vue?2a9d","webpack:///./src/components/form/CheckBox.vue?e74f","webpack:///./src/components/form/CheckBox.vue","webpack:///./src/components/form/Textarea.vue?0cb3","webpack:///./src/components/form/Textarea.vue?b2ff","webpack:///./src/components/form/Textarea.vue?404a","webpack:///./src/components/form/Textarea.vue","webpack:///./src/components/form/GeneralForm.vue?492d","webpack:///./src/components/form/GeneralForm.vue?1dcc","webpack:///./src/components/form/GeneralForm.vue","webpack:///./src/components/modals/CommandCenter.vue?1834","webpack:///./src/components/modals/CommandCenter.vue?4b8f","webpack:///./src/components/modals/CommandCenter.vue","webpack:///./src/components/modals/Gateway.vue?139e","webpack:///./src/components/modals/Gateway.vue?d72d","webpack:///./src/components/modals/Gateway.vue","webpack:///./src/components/modals/Interface.vue?aaeb","webpack:///./src/components/modals/Interface.vue?d51e","webpack:///./src/components/modals/Interface.vue?84e7","webpack:///./src/components/modals/Interface.vue","webpack:///./src/components/modals/CreateRelay.vue?f8e4","webpack:///./src/components/partial/DonutForm.vue?8ebb","webpack:///./src/components/partial/DonutForm.vue?e442","webpack:///./src/components/partial/DonutForm.vue?0e68","webpack:///./src/components/partial/DonutForm.vue","webpack:///./src/components/modals/CreateRelay.vue?6c1d","webpack:///./src/components/modals/CreateRelay.vue?9a90","webpack:///./src/components/modals/CreateRelay.vue","webpack:///./src/components/modals/CreateGateway.vue?ee2c","webpack:///./src/components/modals/CreateGateway.vue?a2ac","webpack:///./src/components/modals/CreateGateway.vue?de3f","webpack:///./src/components/modals/CreateGateway.vue","webpack:///./src/components/modals/ConnectRelays.vue?db7e","webpack:///./src/components/modals/ConnectRelays.vue?380a","webpack:///./src/components/modals/ConnectRelays.vue?a4d9","webpack:///./src/components/modals/ConnectRelays.vue","webpack:///./src/components/modals/Options.vue?ec53","webpack:///./src/components/modals/Options.vue?7b67","webpack:///./src/components/modals/Options.vue?61d2","webpack:///./src/components/modals/Options.vue","webpack:///./src/components/Modal.vue?fcbb","webpack:///./src/components/Modal.vue?2e40","webpack:///./src/components/Modal.vue","webpack:///./src/components/Canvas.vue?729b","webpack:///./src/components/form/Toggle.vue?d8a0","webpack:///./src/components/form/Toggle.vue?acac","webpack:///./src/components/form/Toggle.vue?c9d7","webpack:///./src/components/form/Toggle.vue","webpack:///./src/lib/path.ts","webpack:///./src/components/Canvas.vue?65a0","webpack:///./src/components/Canvas.vue?1a0e","webpack:///./src/components/Canvas.vue","webpack:///./src/components/Footer.vue?15c8","webpack:///./src/components/Footer.vue?47c3","webpack:///./src/components/Footer.vue?4a0f","webpack:///./src/components/Footer.vue","webpack:///./src/components/Navbar.vue?8524","webpack:///./src/components/Navbar.vue?6c59","webpack:///./src/components/Navbar.vue?1bdf","webpack:///./src/components/Navbar.vue","webpack:///./src/components/Controll.vue?72fe","webpack:///./src/components/datatables/Relays.vue?6bad","webpack:///./src/components/partial/RelayList.vue?8f54","webpack:///./src/components/partial/RelayList.vue?e3da","webpack:///./src/components/partial/RelayList.vue?c946","webpack:///./src/components/partial/RelayList.vue","webpack:///./src/components/datatables/DataTableFooter.vue?ed4c","webpack:///./src/components/datatables/DataTableFooter.vue?283b","webpack:///./src/components/datatables/DataTableFooter.vue?e8ee","webpack:///./src/components/datatables/DataTableFooter.vue","webpack:///./src/components/datatables/Relays.vue?e99b","webpack:///./src/components/datatables/Relays.vue?8d18","webpack:///./src/components/datatables/Relays.vue","webpack:///./src/components/datatables/Commands.vue?06fe","webpack:///./src/components/partial/CommandList.vue?7f8d","webpack:///./src/components/partial/CommandList.vue?ce21","webpack:///./src/components/partial/CommandList.vue?9d8b","webpack:///./src/components/partial/CommandList.vue","webpack:///./src/components/datatables/Commands.vue?14cf","webpack:///./src/components/datatables/Commands.vue?67c2","webpack:///./src/components/datatables/Commands.vue","webpack:///./src/components/datatables/Interfaces.vue?28c8","webpack:///./src/components/partial/InterfaceList.vue?2a22","webpack:///./src/components/partial/InterfaceList.vue?90ef","webpack:///./src/components/partial/InterfaceList.vue?c5e5","webpack:///./src/components/partial/InterfaceList.vue","webpack:///./src/components/datatables/Interfaces.vue?a48b","webpack:///./src/components/datatables/Interfaces.vue?fb57","webpack:///./src/components/datatables/Interfaces.vue","webpack:///./src/components/Controll.vue?60cb","webpack:///./src/components/Controll.vue?71af","webpack:///./src/components/Controll.vue","webpack:///./src/components/SideMenu.vue?dfc6","webpack:///./src/components/SideMenu.vue?4ee6","webpack:///./src/components/SideMenu.vue?e9cd","webpack:///./src/components/SideMenu.vue","webpack:///./src/components/GatewayForm.vue?4996","webpack:///./src/components/form/SelectGatewayForm.vue?2cfc","webpack:///./src/components/form/SelectGatewayForm.vue?cf7c","webpack:///./src/components/form/SelectGatewayForm.vue?e87b","webpack:///./src/components/form/SelectGatewayForm.vue","webpack:///./src/components/GatewayForm.vue?8fdb","webpack:///./src/components/GatewayForm.vue?0c0a","webpack:///./src/components/GatewayForm.vue","webpack:///./src/components/Notification.vue?8823","webpack:///./src/components/Notification.vue?b843","webpack:///./src/components/Notification.vue?22c7","webpack:///./src/components/Notification.vue","webpack:///./src/App.vue?ec60","webpack:///./src/App.vue?640d","webpack:///./src/App.vue","webpack:///./src/store/C3Module.ts","webpack:///./src/store/ModalModule.ts","webpack:///./src/store/PaginateModule.ts","webpack:///./src/components/assets/SvgIconsForVis.ts","webpack:///./src/options.ts","webpack:///./src/store/VisModule.ts","webpack:///./src/store/NotifyModule.ts","webpack:///./src/store/C3Capability.ts","webpack:///./src/store/OptionsModule.ts","webpack:///./src/store/C3Command.ts","webpack:///./src/store.ts","webpack:///./src/main.ts","webpack:///./src/App.vue?6f35","webpack:///./src/components/modals/ConnectRelays.vue?87d0","webpack:///./src/components/modals/CommandCenter.vue?c973","webpack:///./src/components/form/GeneralForm.vue?7efc","webpack:///./src/components/Modal.vue?6b67","webpack:///./src/components/form/Select.vue?c7a1"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","NodeKlass","_vm","this","_h","$createElement","_c","_self","attrs","hasSelectedGateway","staticClass","_e","_v","staticRenderFns","nullNode","uid","klass","Undefined","id","pending","isActive","type","error","parentId","parentKlass","isReturnChannel","isNegotiationChannel","initialCommand","propertiesText","class","activeModal","modalTarget","toLowerCase","isGateway","targetUid","isRelay","options","isInterface","on","$event","target","currentTarget","closeThisModal","closeAllModal","C3Module","NotifyModule","ModalModule","C3Capability","PaginateModule","modal","newModal","modalTargetId","modalOptions","closeModal","closeModalAll","notify","insertNotify","c3Interface","getTypeNameForInterface","addNotify","message","c3Channel","c3Command","interfaceId","undefined","relayAgentId","getNodeKlass","gateway","Relay","Gateway","returnClass","isPending","e","keyCode","unixTimestamp","time","Date","timeStr","toISOString","replace","getItemPerPage","getActualPage","itemPerPage","actualPage","maxIndex","getGateway","Mutation","Action","Getter","relay","_s","openModal","buildId","unixTimeToString","timestamp","hostInfo","computerName","userName","domain","processId","isElevated","osMajorVersion","osMinorVersion","osBuildNumber","osServicePackMajor","osServicePackMinor","osProductType","osVersion","targetId","JSON","stringify","routes","displayEmpty","directives","rawName","expression","title","_m","_l","route","destinationAgent","receivingInterface","outgoingInterface","isNeighbour","staticStyle","sendCommand","showEmpty","C3OptionsModule","routeToDelete","getCommandId","command","arguments","apiURL","getRelay","url","method","baseURL","getAPIBaseUrl","then","response","catch","msg","console","getRelayRoutes","getGatewayRoutes","interfaceKlass","capability","getCapabilityFor","com","commands","find","component","channels","channel","interfaceTypeName","interfaceType","getInterfacesFor","Channel","peripherals","peripheral","Peripheral","addEventListener","handleGlobalKeyDown","removeEventListener","components","RouteList","ChannelList","PheripheralList","InterfaceUID","commandType","isCommandPending","commandTypeId","C3CommandModule","getCommand","countRelays","countChannels","countConnectors","countPheripherals","port","getAPIUrl","getAPIPort","getRefreshInterval","getRelays","getInterfaces","Connector","connectors","connector","currentItem","selectedCommandGroup","commandGroupOptions","changeCommandGroup","commandGroup","selectedCommandTarget","commandTargetOptions","changeCommandTarget","commandTarget","selectedInterface","selectedCommand","selectedInterfaceKlass","argumentOptions","changeForm","formData","formIsValid","help","onClickRandom","_b","ref","dirty","isDirty","isDisabled","inputUID","autocomplete","domProps","changeInputText","gainFocus","lostFocus","composing","inputText","$attrs","clickOnLabel","legend","errors","first","disabled","Math","random","toString","substring","focused","getValue","intervalTimer","handleEnterAndTabKeyDown","setInterval","clearInterval","$refs","textinput","focus","$validator","verify","validate","valid","isValid","$emit","substr","rand","parseInt","$_veeValidate","validator","toggleSelect","hasBorder","selectedValue","dropDownIcon","directionReverse","style","selected","isSelected","selectAndClose","isOpen","border","up","selectRef","selectUlStyle","calculateSelectUlOffset","selectedId","feedback","rect","$el","getBoundingClientRect","scrollLeft","pageXOffset","document","documentElement","scrollTop","pageYOffset","top","left","width","keys","forEach","field","getFieldType","tag","validation","randomize","setDefaultValue","defaultValue","description","onChange","getIconKlass","Array","isArray","isChecked","_i","_q","$$a","$$el","$$c","checked","$$v","$$i","concat","toogleCheckBox","getIsChecked","isCheckedValue","dataText","updateTextarea","updateTextfield","textareainput","base64","reader","FileReader","file","fileinput","readAsDataURL","files","onload","argumentsArray","argumentObjects","f","payload","index","findIndex","emitFormData","clearArray","element","getCommandFrom","rData","v","min","max","inputId","outputId","hasOptions","output","item","input","inputName","inputValue","newValue","argument","getValidationRule","getRandomLenght","argumentItem","setArgumentData","interfaceName","Input","Select","Textarea","CheckBox","formDirty","formDefault","prefix","interface","dataToEmit","getInterface","resetForm","defaultCommandGroup","defaultCommandTarget","targetGroup","getCommandGroupFor","getCommandTargetFor","singular","split","toUpperCase","embeded","GeneralForm","NetworkStats","ConnectorList","CommandCenterModal","CommandCenter","getInterfaceJitter","generateOprions","isChannel","node","parse","interfaceAguments","propertiesAurguments","values","objectOrArray","getInterfaceParentId","attributes","tmp","a","argumentsString","getArguments","match","optionsArguments","getArgumentsAttributes","changeInputOutputIDs","propertiesArguments","getPropertiesArguments","isNormalChannel","getPrefix","getInterfaceTypeString","generateCommandCenterArguments","source","generateSourceOptions","showConnectRelayButton","showNewRelayButton","showButtons","jitter","changeName","relayName","gatewayBuildsId","selectedTargetSuffix","dll","exe","shellcode","changeTargetSuffix","targetSuffix","selectedArchitecture","x86","x64","changeArchitecture","architecture","changeDonutForm","addNewRelayToOptions","createNewRelay","selectedFormat","Binary","Base64","Ruby","C","Python","Powershell","Csharp","HeX","changeFormat","format","selectedCompress","None","Lznt1","Xpress","Xpress_huff","changeCompress","compress","selectedEntropy","Random","Default","changeEntropy","entropy","selectedExitOpt","Exit_thread","Exit_process","changeExitOpt","exitOpt","selectedBypass","Abort","Continue","changeBypass","bypass","emitDonut","donut","donutSelected","donutFormData","parentGatewayBuildId","startupCommands","responseType","fileName","blob","Blob","contentDisposition","headers","URL","createObjectURL","link","createElement","href","setAttribute","body","appendChild","click","remove","revokeObjectURL","DonutForm","gatewayName","createNewGateway","apiUrl","getGateways","selectedRelay","generateRelayList","changeTargetRelay","targetRelay","addNewRelayGroupToOptions","selectOptions","optionsCount","nullLiteral","nodes","sourceRelay","sourceInterface","c3Url","setUrl","c3Port","setPort","isFormValid","saveNetworkConfig","c3UrlIsValid","c3PortIsValid","setBaseURL","setBasePort","RelayModal","CommandModal","Command","GatewayModal","OptionsModal","Options","InterfaceModal","Interface","CreateRelayModal","CreateRelay","ConnectRelayModal","CreateGatewayModal","CreateGateway","isFullscreen","fullscreenIcon","getTreeView","toggleTreeView","toggleInterfaces","getShowLabels","toggleLabels","getPhysics","togglePhysics","getSmoothEdges","toggleSmoothEdges","reloadGraph","toogleToggle","booleanCheckbox","startNode","paths","nodeId","setStartNode","iterations","hasPathEndpoints","targetNode","nextNode","handleNodeChannel","handleConnectorAndPeripheral","handleRelay","checkEndLoop","getNodes","setNextNodeForChannel","isStartNodeConnectorOrPeripheral","setNextAndParentNode","isStartNodeRelay","setNextNodeForRelay","getEdges","filter","edge","to","from","neighbour","getParentNode","insertParentNodeToPaths","setNextNodeForReturnChannel","getChannelNeighbours","possibleNext","getPossibeNext","setAndInsertNextNode","getRelayNeighbours","VisModule","container","isSmooth","lastClickNodeId","createVisCanvas","c3canvas","networkc3","getGrapData","graphOtions","params","nodeid","getNodeAt","pointer","DOM","nodeKlass","deselectNodes","clearPath","selectNode","progressBarStatus","getElementById","status","floor","getOptions","physics","stabilization","updateInterval","progressBar","b","setTreeView","setOptions","setGraphData","setPhysics","setShowInterfaces","generateNodes","generateEdges","setShowLabels","setSmoothEdge","layout","randomSeed","getVisNodes","update","shadow","enabled","getVisEdges","tmpEdge","edges","color","getPathsFromGateway","includes","findPath","hierarchical","getShowInterfaces","Toggle","active","activeIsRelay","setActiveTab","activeIsInterface","activeIsCommands","setCount","getCount","relays","minIndex","results","perPage","changePerPage","page","prevPage","maxPage","nextPage","perPageCount","setItemPerPage","setActualPage","maxpage","ceil","rCount","RelayList","DataTableFooter","selectedCommandStatus","selectedCommandFor","commandsArray","getCommands","statusFilter","commandForFilter","commandFor","commandStatus","oldValue","fetchCommands","getCommandCount","CommandList","selectedInterfaceType","ALL","CHANNEL","PERIPHERAL","CONNECTOR","selectInterfaceType","selectedReturnChannel","YES","NO","isChannelOrAllForDisabled","selectReturnChannel","returnChannel","selectedNegotiationChannel","selectNegotiationChannel","negotiationChannel","c3Interfaces","interfaces","interfaceTypeFilter","returnChannelFilter","c3Node","negotiationChannelFilter","iCount","interfaceByType","emitedCountNumber","newtype","filterReturnChannel","filterNegotiationChannel","InterfaceList","activeTab","hasGatewaySelected","RelaysTab","Relays","CommandsTab","Commands","InterfacesTab","Interfaces","selectedRefreshRate","refreshRates","setRefreshRate","refreshRate","getAutoUpdateEnabled","toggleAutoUpdate","setAutoUpdateEnabled","rate","setRefreshInterval","1","2","5","10","20","30","60","120","300","600","1800","3600","selectedGateway","gateways","selectGateway","activeGateway","changeGateway","fetchGateway","gatewayId","g","agentId","SelectGatewayForm","deleteNotify","removeNotify","getNotifies","updateData","setTime","setData","fetchCapability","fetchGateways","Navbar","GatewayForm","Canvas","Controll","SideMenu","Footer","Modal","Notification","namespaced","state","relayTimestamps","mustRefresh","lastGetHash","getters","c3State","now","mutations","updateGateways","updateGateway","populateNodes","uuid","args","join","isRelayActive","gatewayTimestamp","relayTimestamp","iid","newTime","populateEdges","guid","interfaceIsExist","dashes","isDashed","actions","context","nodeIds","dispatch","root","rootGetters","commit","hash","c3Module","modals","modalState","last","pop","modalModule","lastChange","paginateState","getLastChange","paginateModule","svgChannelActive","svgChannelReturn","svgChannelError","svgNegotiationActive","svgNegotiationError","svgPeripheralActive","svgPeripheralError","svgConnectorActive","svgConnectorError","svgInterfaceActive","svgInterfaceInactive","svgInterfaceError","svgGatewayActive","svgGatewayInactive","svgGatewayError","svgRelayActive","svgRelayInactive","svgRelayGhost","svgRelayError","ChannelActive","encodeURIComponent","ChannelReturn","ChannelError","PeripheralActive","PeripheralError","NegotiationActive","NegotiationError","ConnectorActive","ConnectorError","GatewayActive","GatewayInactive","GatewayError","RelayActive","RelayInactive","RelayGhost","RelayError","GATEWAY","RELAY","NEGOTIATION_CHANNEL","RETURN_CHANNEL","INACTIVE","GHOST","VisOptions","font","background","size","face","strokeWidth","vadjust","x","y","widthConstraint","maximum","margin","highlight","smooth","groups","shape","image","11","13","14","21","23","24","25","26","28","29","31","32","33","35","36","40","41","50","51","improvedLayout","direction","parentCentralization","blockShifting","levelSeparation","treeSpacing","nodeSpacing","edgeMinimization","sortMethod","solver","barnesHut","gravitationalConstant","springLength","springConstant","damping","avoidOverlap","minVelocity","onlyDynamicEdges","fit","interaction","navigationButtons","keyboard","maximumToast","notifyLenght","showInterfaces","showLabels","autoUpdateEnabled","graphData","visState","setNodes","setEdges","graph","gatewayLastStartTime","gatewayIsActive","setGroup","gatewayStartTime","isGatewayActive","group","interfaccesIncluded","label","es","visModule","notifys","notifyState","updateNotify","notifyIndex","removeOldestNotify","notifyCount","timeoutID","clearTimeout","addNotification","notification","setTimeout","lastNotify","notifyModule","interfaceList","capabilityState","relayCommands","channelCommands","peripheralCommands","connectorCommands","option","commandName","currentType","commandList","form","commandItem","optionType","k","getTypesForInterfaceKlass","updateCapability","populateList","getItem","c3Capability","baseUrl","refreshInterval","optionsState","optionsModule","totalCount","C3State","updateCommands","updateTotalCount","c3CommandModule","use","store","version","Store","config","productionTip","inject","validity","render","h","$mount"],"mappings":"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","file":"js/app.845f1b3c.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notification.vue?vue&type=style&index=0&lang=sass&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notification.vue?vue&type=style&index=0&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChannelList.vue?vue&type=style&index=0&id=f4969ade&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChannelList.vue?vue&type=style&index=0&id=f4969ade&scoped=true&lang=sass&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Controll.vue?vue&type=style&index=0&lang=sass&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Controll.vue?vue&type=style&index=0&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RelayList.vue?vue&type=style&index=0&id=579275ba&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RelayList.vue?vue&type=style&index=0&id=579275ba&scoped=true&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DonutForm.vue?vue&type=style&index=0&id=140c057e&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DonutForm.vue?vue&type=style&index=0&id=140c057e&scoped=true&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Command.vue?vue&type=style&index=0&id=3748fed6&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Command.vue?vue&type=style&index=0&id=3748fed6&scoped=true&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InterfaceList.vue?vue&type=style&index=0&id=f8188e22&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InterfaceList.vue?vue&type=style&index=0&id=f8188e22&scoped=true&lang=sass&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideMenu.vue?vue&type=style&index=0&id=6cd95e5d&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideMenu.vue?vue&type=style&index=0&id=6cd95e5d&scoped=true&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Relay.vue?vue&type=style&index=0&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Relay.vue?vue&type=style&index=0&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateRelay.vue?vue&type=style&index=0&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateRelay.vue?vue&type=style&index=0&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PeripheralList.vue?vue&type=style&index=0&id=0686e7da&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PeripheralList.vue?vue&type=style&index=0&id=0686e7da&scoped=true&lang=sass&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navbar.vue?vue&type=style&index=0&id=5295cdf8&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navbar.vue?vue&type=style&index=0&id=5295cdf8&scoped=true&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Input.vue?vue&type=style&index=0&id=0d08badc&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Input.vue?vue&type=style&index=0&id=0d08badc&scoped=true&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=style&index=0&id=40202deb&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=style&index=0&id=40202deb&scoped=true&lang=sass&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Canvas.vue?vue&type=style&index=0&lang=sass&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Canvas.vue?vue&type=style&index=0&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommandList.vue?vue&type=style&index=0&id=39bf6527&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommandList.vue?vue&type=style&index=0&id=39bf6527&scoped=true&lang=sass&\"","module.exports = __webpack_public_path__ + \"img/logo.af58390c.svg\";","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Interface.vue?vue&type=style&index=0&id=33bc8b88&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Interface.vue?vue&type=style&index=0&id=33bc8b88&scoped=true&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectGatewayForm.vue?vue&type=style&index=0&id=49ef2de9&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectGatewayForm.vue?vue&type=style&index=0&id=49ef2de9&scoped=true&lang=sass&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GatewayForm.vue?vue&type=style&index=0&lang=sass&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GatewayForm.vue?vue&type=style&index=0&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataTableFooter.vue?vue&type=style&index=0&id=2eac248e&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataTableFooter.vue?vue&type=style&index=0&id=2eac248e&scoped=true&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RouteList.vue?vue&type=style&index=0&id=7a6fc393&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RouteList.vue?vue&type=style&index=0&id=7a6fc393&scoped=true&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NetworkStats.vue?vue&type=style&index=0&id=b5131632&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NetworkStats.vue?vue&type=style&index=0&id=b5131632&scoped=true&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toggle.vue?vue&type=style&index=0&id=edfe580a&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toggle.vue?vue&type=style&index=0&id=edfe580a&scoped=true&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectorList.vue?vue&type=style&index=0&id=5ea1cc30&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectorList.vue?vue&type=style&index=0&id=5ea1cc30&scoped=true&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Textarea.vue?vue&type=style&index=0&id=7007b96d&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Textarea.vue?vue&type=style&index=0&id=7007b96d&scoped=true&lang=sass&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Footer.vue?vue&type=style&index=0&id=62086585&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Footer.vue?vue&type=style&index=0&id=62086585&scoped=true&lang=sass&\"","export interface C3State {\n edges: C3Edge[];\n nodes: C3Node[];\n gateways: GatewayHeader[];\n gateway?: C3Gateway | null;\n relayTimestamps?: C3RelayTime[];\n mustRefresh?: boolean;\n lastGetHash: string;\n}\n\nexport enum NodeKlass {\n Channel = 'CHANNEL',\n Connector = 'CONNECTOR',\n Gateway = 'GATEWAY',\n Interface = 'INTERFACE',\n Peripheral = 'PERIPHERAL',\n Relay = 'RELAY',\n Undefined = 'UNDEFINED'\n}\n\nexport interface C3RelayTime {\n id: string;\n time: number;\n}\n\nexport interface C3Node {\n id: string;\n uid: string;\n name?: string;\n klass: NodeKlass;\n buildId?: string;\n pending: boolean;\n isActive?: boolean;\n type: number;\n timestamp?: number;\n error: string | null;\n initialCommand?: any;\n propertiesText?: any;\n parentId: string | null;\n parentKlass: string | null;\n isReturnChannel?: boolean;\n isNegotiationChannel?: boolean;\n hostInfo?: C3HostInfo;\n [key: string]: any;\n}\n\nexport const nullNode: C3Node = {\n uid: '',\n klass: NodeKlass.Undefined,\n id: '',\n name: 'Null Node',\n pending: false,\n isActive: false,\n type: 0,\n error: null,\n parentId: null,\n parentKlass: null,\n isReturnChannel: false,\n isNegotiationChannel: false,\n initialCommand: {},\n propertiesText: {}\n};\n\nexport interface C3Edge {\n id: string;\n klass: NodeKlass;\n isNegotiationChannel?: boolean;\n length: number;\n dashes: boolean;\n from: string;\n to: string;\n color?: string;\n [key: string]: any;\n}\n\nexport interface C3Interface {\n iid: string;\n type: number;\n error?: string;\n pending?: boolean;\n parentId?: string;\n initialCommand?: any;\n propertiesText?: any;\n isReturnChannel?: boolean;\n isNegotiationChannel?: boolean;\n}\n\nexport interface C3Route {\n isNeighbour?: boolean;\n destinationAgent: string;\n outgoingInterface: string;\n receivingInterface: string;\n}\n\nexport interface C3Relay {\n buildId: string;\n agentId: string;\n channels: C3Interface[];\n error?: string;\n initialCommand?: any;\n propertiesText?: any;\n name: string;\n pending: boolean;\n peripherals: C3Interface[];\n routes: C3Route[];\n isActive: boolean;\n timestamp?: number;\n hostInfo: C3HostInfo;\n}\n\nexport interface C3HostInfo {\n computerName: string;\n userName: string;\n domain: string;\n osMajorVersion: number;\n osMinorVersion: number;\n osBuildNumber: number;\n osServicePackMajor: number;\n osServicePackMinor: number;\n osProductType: number;\n processId: number;\n isElevated: boolean;\n osVersion: string;\n}\n\nexport interface GatewayHeader {\n agentId: string;\n buildId: string;\n name: string;\n isActive: boolean;\n}\n\nexport interface C3Gateway {\n agentId: string;\n buildId: string;\n channels: C3Interface[];\n connectors: C3Interface[];\n error?: string;\n initialCommand?: any;\n propertiesText?: any;\n name: string;\n pending: boolean;\n peripherals: C3Interface[];\n relays: C3Relay[];\n routes: C3Route[];\n isActive: boolean;\n timestamp?: number;\n}\n\ninterface C3Args {\n args: C3Opts[];\n}\n\ninterface C3Opts {\n [key: string]: string;\n}\n\nexport interface C3Command {\n name: string;\n id: string | number;\n isPending: boolean;\n data: C3Opts[] | C3Args;\n interfaceId?: string | number;\n relayAgentId?: string | number;\n}\n\nexport interface C3Parent {\n agentId: string;\n parentType: string;\n}\n\nexport interface FetchData {\n relayId?: string;\n gatewayId: string;\n interfaceId?: string;\n}\n\nexport interface C3FieldDefault {\n name: string;\n type?: string;\n value: string;\n}\n\nexport interface FormOptions {\n prefix: string;\n interface: string;\n arguments: C3FieldDefault[];\n}\n\nexport interface SourceOptions {\n relay?: C3Node;\n interface?: C3Node;\n}\nexport interface C3CommandCenterOptions {\n formDefault?: FormOptions;\n source?: SourceOptions;\n targetGroup?: string;\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('Navbar'),(_vm.hasSelectedGateway === true)?_c('div',{staticClass:\"c3body\"},[_c('div',{staticClass:\"c3body-main\"},[_c('GatewayForm'),_c('Canvas'),_c('Controll')],1),_c('SideMenu')],1):_vm._e(),(_vm.hasSelectedGateway === false)?_c('div',{staticClass:\"c3body-no-gateway-message\"},[_c('h1',[_vm._v(\"There are currently no active Gateways\")]),_c('p',[_vm._v(\"\\n Once a gateway has been detected it will automatically show up and this\\n message will not appear, c3 checks for any gateway every minute.\\n \")])]):_vm._e(),(_vm.hasSelectedGateway === false)?_c('CreateGatewayModal',{staticClass:\"c3body-gateway\"}):_vm._e(),_c('div'),_c('Footer'),_c('Modal'),_c('Notification')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.currentModal)?_c('div',{staticClass:\"c3modal\",class:this.activeModal.modalTarget.toLowerCase()},[_c('div',{staticClass:\"c3modal-holder\"},[(_vm.isGateway())?_c('GatewayModal',{attrs:{\"target-id\":_vm.targetUid}}):_vm._e(),(_vm.isRelay())?_c('RelayModal',{attrs:{\"target-id\":_vm.targetUid}}):_vm._e(),(this.activeModal.modalTarget === 'CREATE_GATEWAY')?_c('CreateGatewayModal'):_vm._e(),(this.activeModal.modalTarget === 'CREATE_RELAY')?_c('CreateRelayModal',{attrs:{\"options\":_vm.options()}}):_vm._e(),(this.activeModal.modalTarget === 'COMMAND_CENTER')?_c('CommandCenterModal',{attrs:{\"target-id\":_vm.targetUid,\"options\":_vm.options()}}):_vm._e(),(this.activeModal.modalTarget === 'CONNECT_RELAY')?_c('ConnectRelayModal',{attrs:{\"target-id\":_vm.targetUid,\"options\":_vm.options()}}):_vm._e(),(this.activeModal.modalTarget === 'COMMAND')?_c('CommandModal',{attrs:{\"target-id\":_vm.targetUid}}):_vm._e(),(this.activeModal.modalTarget === 'OPTIONS')?_c('OptionsModal'):_vm._e(),(_vm.isInterface())?_c('InterfaceModal',{attrs:{\"target-id\":_vm.targetUid}}):_vm._e(),_c('span',{staticClass:\"c3modal-back icon back\",on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.closeThisModal()}}},[_vm._v(\"Back\")]),_c('span',{staticClass:\"c3modal-close icon close\",on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.closeAllModal()}}})],1)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Vue, Component } from 'vue-property-decorator';\nimport { namespace } from 'vuex-class';\n\nimport { GetNodeKlassFn } from '@/store/C3Module';\nimport { Notify, InsertNotifyFn } from '@/store/NotifyModule';\nimport { NewModalFn, CloseModalFn } from '@/store/ModalModule';\nimport { GetTypeNameForInterfaceFn } from '@/store/C3Capability';\nimport { C3Node, C3Command, NodeKlass, nullNode } from '@/types/c3types';\n\nconst C3Module = namespace('c3Module');\nconst NotifyModule = namespace('notifyModule');\nconst ModalModule = namespace('modalModule');\nconst C3Capability = namespace('c3Capability');\nconst PaginateModule = namespace('paginateModule');\n\n@Component\nexport default class C3 extends Vue {\n @ModalModule.Mutation public newModal!: NewModalFn;\n @ModalModule.Mutation public closeModal!: CloseModalFn;\n @ModalModule.Mutation public closeModalAll!: CloseModalFn;\n\n @NotifyModule.Action public insertNotify!: InsertNotifyFn;\n\n @C3Capability.Getter\n public getTypeNameForInterface!: GetTypeNameForInterfaceFn;\n\n @PaginateModule.Getter public getItemPerPage!: number;\n @PaginateModule.Getter public getActualPage!: number;\n\n @C3Module.Getter public getNodeKlass!: GetNodeKlassFn;\n @C3Module.Getter public getGateway!: C3Node;\n\n get itemPerPage() {\n return this.getItemPerPage;\n }\n\n get actualPage() {\n return this.getActualPage;\n }\n\n get maxIndex() {\n return this.itemPerPage * this.actualPage;\n }\n\n get minIndex() {\n return this.maxIndex - this.itemPerPage;\n }\n\n public openModal(id: string, modal: string, options: any = {}) {\n this.newModal({\n modalTarget: modal,\n modalTargetId: id,\n modalOptions: options\n });\n }\n\n public closeThisModal(): void {\n this.closeModal();\n }\n\n public closeAllModal(): void {\n this.closeModalAll();\n }\n\n public addNotify(notify: Notify): void {\n this.insertNotify(notify);\n }\n\n public interfaceTypeName(c3Interface: C3Node): string {\n if (c3Interface && c3Interface.type !== null) {\n if (c3Interface.klass) {\n return this.getTypeNameForInterface(\n c3Interface.type,\n c3Interface.klass\n );\n }\n this.addNotify({\n type: 'error',\n message:\n 'Interface Type cannot be determined. Must be a channel, connector or peripheral.'\n });\n }\n return '';\n }\n\n public interfaceType(c3Channel: C3Node): string {\n if (!!c3Channel.isReturnChannel) {\n return 'Return Channel';\n }\n if (!!c3Channel.isNegotiationChannel) {\n return 'Negotiation Channel';\n }\n\n return '';\n }\n\n get gateway() {\n if (this.getGateway === undefined) {\n return nullNode;\n }\n return this.getGateway;\n }\n\n public commandType(c3Command: C3Command): string {\n if (c3Command.interfaceId && c3Command.interfaceId !== undefined) {\n if (c3Command.relayAgentId && c3Command.relayAgentId !== undefined) {\n return this.getNodeKlass(\n c3Command.interfaceId + '-' + c3Command.relayAgentId\n );\n }\n return this.getNodeKlass(c3Command.interfaceId + '-' + this.gateway.id);\n }\n if (c3Command.relayAgentId && c3Command.relayAgentId !== undefined) {\n return NodeKlass.Relay;\n }\n return NodeKlass.Gateway;\n }\n\n public commandTypeId(c3Command: C3Command): string {\n if (c3Command.relayAgentId && c3Command.relayAgentId !== undefined) {\n return '' + c3Command.relayAgentId;\n }\n if (c3Command.interfaceId && c3Command.interfaceId !== undefined) {\n return '' + c3Command.interfaceId;\n }\n if (this.gateway) {\n return '' + this.gateway.id;\n }\n return 'error';\n }\n\n public isCommandPending(\n c3Command: C3Command,\n returnClass: boolean = false\n ): string {\n if (returnClass) {\n if (c3Command.isPending === true) {\n return 'Pending';\n }\n return 'Complete';\n }\n if (c3Command.isPending === true) {\n return 'is-complete';\n }\n return 'not-complete';\n }\n\n public handleGlobalKeyDown(e: any): void {\n if (e.keyCode === 27) {\n this.closeAllModal();\n }\n }\n\n public unixTimeToString(unixTimestamp: number) {\n const time = new Date(unixTimestamp * 1000);\n let timeStr = time.toISOString();\n timeStr = timeStr.replace(/-/g, '/');\n timeStr = timeStr.replace('T', ' ');\n timeStr = timeStr.replace('.000Z', '');\n return timeStr;\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.relay !== undefined)?_c('div',{staticClass:\"c3modal-body\"},[_c('div',{staticClass:\"c3modal-header\",class:{ 'has-error': !!_vm.relay.error }},[_c('h1',[_vm._v(\"\\n Relay: \"),_c('span',[_vm._v(\" \"+_vm._s(_vm.relay.name)+\" / \"+_vm._s(_vm.relay.id))])]),_c('div',{staticClass:\"flex-row\"},[_c('div',{staticClass:\"details\"},[_c('p',[_vm._v(\"\\n Parent\\n \"),_c('span',{staticClass:\"c3link\",on:{\"click\":function($event){return _vm.openModal(_vm.relay.parentId, _vm.relay.parentKlass)}}},[_c('span',{staticClass:\"capitalize\"},[_vm._v(_vm._s(_vm.relay.parentKlass.toLowerCase())+\" /\\n \")]),_vm._v(\"\\n \"+_vm._s(_vm.relay.parentId)+\"\\n \")])]),_c('p',[_vm._v(\"\\n Build ID \"),_c('span',[_vm._v(_vm._s(_vm.relay.buildId))])]),_c('p',[_vm._v(\"\\n Last seen \"),_c('span',[_vm._v(_vm._s(_vm.unixTimeToString(_vm.relay.timestamp)))])])]),_c('div',{staticClass:\"actions\"},[_c('button',{staticClass:\"c3btn c3btn--outline\",on:{\"click\":function($event){return _vm.openModal(_vm.relay.id, 'COMMAND_CENTER')}}},[_vm._v(\"\\n Command Center\\n \")])])]),_c('div',{staticClass:\"flex-row host-info\"},[_c('div',{staticClass:\"details\"},[_c('p',[_c('span',{staticClass:\"details-title\"},[_vm._v(\"Computer Name \")]),_c('span',{staticClass:\"details-value\"},[_vm._v(_vm._s(_vm.relay.hostInfo.computerName))])]),_c('p',[_c('span',{staticClass:\"details-title\"},[_vm._v(\"User Name \")]),_c('span',{staticClass:\"details-value\"},[_vm._v(_vm._s(_vm.relay.hostInfo.userName))])]),_c('p',[_c('span',{staticClass:\"details-title\"},[_vm._v(\"Domain \")]),_c('span',{staticClass:\"details-value\"},[_vm._v(_vm._s(_vm.relay.hostInfo.domain === '' ? '-' : _vm.relay.hostInfo.domain))])]),_c('p',[_c('span',{staticClass:\"details-title\"},[_vm._v(\"processId \")]),_c('span',{staticClass:\"details-value\"},[_vm._v(_vm._s(_vm.relay.hostInfo.processId))])]),_c('p',[_c('span',{staticClass:\"details-title\"},[_vm._v(\"is Elevated \")]),_c('span',{staticClass:\"details-value\"},[_vm._v(_vm._s(_vm.relay.hostInfo.isElevated))])])]),_c('div',{staticClass:\"details\"},[_c('p',[_c('span',{staticClass:\"details-title\"},[_vm._v(\"OS Major Version \")]),_c('span',{staticClass:\"details-value\"},[_vm._v(_vm._s(_vm.relay.hostInfo.osMajorVersion))])]),_c('p',[_c('span',{staticClass:\"details-title\"},[_vm._v(\"OS Minor Version \")]),_c('span',{staticClass:\"details-value\"},[_vm._v(_vm._s(_vm.relay.hostInfo.osMinorVersion))])]),_c('p',[_c('span',{staticClass:\"details-title\"},[_vm._v(\"OS Build Number \")]),_c('span',{staticClass:\"details-value\"},[_vm._v(_vm._s(_vm.relay.hostInfo.osBuildNumber))])]),_c('p',[_c('span',{staticClass:\"details-title\"},[_vm._v(\"OS Service Pack Major \")]),_c('span',{staticClass:\"details-value\"},[_vm._v(_vm._s(_vm.relay.hostInfo.osServicePackMajor))])]),_c('p',[_c('span',{staticClass:\"details-title\"},[_vm._v(\"OS Service Pack Minor \")]),_c('span',{staticClass:\"details-value\"},[_vm._v(_vm._s(_vm.relay.hostInfo.osServicePackMinor))])]),_c('p',[_c('span',{staticClass:\"details-title\"},[_vm._v(\"OS Product Type \")]),_c('span',{staticClass:\"details-value\"},[_vm._v(_vm._s(_vm.relay.hostInfo.osProductType))])]),_c('p',[_c('span',{staticClass:\"details-title\"},[_vm._v(\"OS Version \")]),_c('span',{staticClass:\"details-value\"},[_vm._v(_vm._s(_vm.relay.hostInfo.osVersion))])])])]),(_vm.relay.error && _vm.relay.error !== '')?_c('p',{staticClass:\"message-with-icon\"},[_c('span',{staticClass:\"icon warning\"}),_vm._v(\"\\n Error: \"+_vm._s(_vm.relay.error)+\"\\n \")]):_vm._e()]),_c('div',{staticClass:\"c3modal-details\"},[_c('ChannelList',{attrs:{\"target-id\":_vm.targetId,\"title\":\"Channels\",\"show-empty\":true}}),_c('PheripheralList',{attrs:{\"target-id\":_vm.targetId,\"title\":\"Peripherals\",\"show-empty\":true}}),_c('RouteList',{attrs:{\"target-id\":_vm.targetId,\"parent-id\":_vm.relay.id,\"parent-klass\":\"RELAY\",\"title\":\"Routes\",\"show-empty\":true}}),(JSON.stringify(_vm.relay.initialCommand) !== '{}')?[_c('h1',[_vm._v(\"Command\")]),_c('pre',{staticClass:\"c3command\"},[_vm._v(_vm._s(JSON.stringify(_vm.relay.initialCommand, null, 4)))])]:_vm._e()],2)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return ((_vm.routes && _vm.routes.length) || _vm.displayEmpty)?_c('div',{staticClass:\"c3route-list\"},[_c('h1',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasTitle),expression:\"hasTitle\"}]},[_vm._v(_vm._s(_vm.title))]),(_vm.routes.length)?[_c('table',{staticClass:\"datatable\"},[_vm._m(0),_c('tbody',_vm._l((_vm.routes),function(route){return _c('tr',{key:route.destinationAgent},[_c('td',[_vm._v(_vm._s(route.destinationAgent)+\":\"+_vm._s(route.receivingInterface))]),_c('td',[_vm._v(_vm._s(route.destinationAgent))]),_c('td',[_vm._v(_vm._s(route.outgoingInterface))]),_c('td',[_vm._v(_vm._s(route.receivingInterface))]),_c('td',[_vm._v(_vm._s(route.isNeighbour ? 'Yes' : ''))]),_c('td',{staticStyle:{\"position\":\"relative\"}},[_c('span',{staticClass:\"c3route-list-more-btn icon more\"}),_c('ul',{staticClass:\"c3route-list-menu\"},[_c('li',{staticClass:\"c3route-list-menu-item\",on:{\"click\":function($event){return _vm.sendCommand(\n route.destinationAgent + ':' + route.receivingInterface\n )}}},[_vm._v(\"\\n Delete\\n \")])])])])}),0)])]:(_vm.displayEmpty)?[_vm._v(\"\\n No routes found...\\n \")]:_vm._e()],2):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Route ID\")]),_c('th',[_vm._v(\"Destination Agent\")]),_c('th',[_vm._v(\"Outgoing Interface\")]),_c('th',[_vm._v(\"Receiving Interface\")]),_c('th',[_vm._v(\"Is Neighbour\")]),_c('th')])])}]\n\nexport { render, staticRenderFns }","import { Prop, Component } from 'vue-property-decorator';\nimport Vue from 'vue';\n\n/**\n * Shared Class for *List components\n *\n * @export\n * @class Partial\n * @extends {Vue}\n */\n\n@Component\nexport default class Partial extends Vue {\n @Prop() public title!: string;\n @Prop() public showEmpty!: boolean;\n\n get hasTitle() {\n return !!this.title && this.title !== '';\n }\n\n get displayEmpty() {\n return !!this.showEmpty && this.showEmpty === true;\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport axios from 'axios';\nimport { namespace } from 'vuex-class';\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\n\nimport { NodeKlass, C3Route } from '@/types/c3types';\nimport { GetRelayRoutesFn, GetRelayFn } from '@/store/C3Module';\n\nimport C3 from '@/c3';\nimport Partial from '@/components/partial/Partial';\nimport { GetCapabilityForFn } from '@/store/C3Capability';\n\nconst C3Module = namespace('c3Module');\nconst C3Capability = namespace('c3Capability');\nconst C3OptionsModule = namespace('optionsModule');\n\n@Component\nexport default class RouteList extends Mixins(C3, Partial) {\n @Prop() public targetId!: string;\n @Prop() public parentId!: string;\n @Prop() public parentKlass!: NodeKlass;\n\n @C3Module.Getter public getRelay!: GetRelayFn;\n @C3Module.Getter public getGatewayRoutes!: C3Route[];\n @C3Module.Getter public getRelayRoutes!: GetRelayRoutesFn;\n\n @C3Capability.Getter public getCapabilityFor!: GetCapabilityForFn;\n\n @C3OptionsModule.Getter public getAPIBaseUrl!: string;\n\n get routes() {\n if (!this.targetId) {\n return this.getGatewayRoutes;\n }\n return this.getRelayRoutes(this.targetId);\n }\n\n get getCommandId() {\n const interfaceKlass = !!this.targetId ? 'RELAY' : 'GATEWAY';\n const capability = this.getCapabilityFor(\n 'Command',\n interfaceKlass as NodeKlass\n );\n if (!!capability) {\n const com = capability.commands.find((c: any) => {\n return c.name === 'RemoveRoute';\n });\n return com.id;\n }\n return '';\n }\n\n get relay() {\n const r = this.getRelay(this.targetId);\n if (!r) {\n this.closeThisModal();\n }\n return r;\n }\n\n public sendCommand(routeToDelete: string): void {\n let data = null;\n\n if (!this.targetId) {\n data = {\n name: 'GatewayCommandGroup',\n data: {\n id: this.getCommandId,\n name: 'Command',\n command: 'RemoveRoute',\n arguments: [\n {\n type: 'string',\n name: 'RouteID',\n value: routeToDelete\n }\n ]\n }\n };\n } else {\n data = {\n name: 'RelayCommandGroup',\n data: {\n id: this.getCommandId,\n name: 'Command',\n command: 'RemoveRoute',\n arguments: [\n {\n type: 'string',\n name: 'RouteID',\n value: routeToDelete\n }\n ]\n }\n };\n }\n\n // POST /api/gateway/{gatewayId}/command\n // POST /api/gateway/{gatewayId}/relay/{relayId}/command\n\n let apiURL = '/api/gateway/';\n\n if (!!this.parentKlass && this.parentKlass === NodeKlass.Gateway) {\n apiURL = apiURL + `${this.parentId}/command`;\n }\n\n if (!!this.parentKlass && this.parentKlass === NodeKlass.Relay) {\n const relay = this.getRelay(this.parentId);\n if (!!relay) {\n apiURL = apiURL + `${relay.parentId}/relay/${this.parentId}/command`;\n } else {\n apiURL = apiURL + `${this.parentId}/command`;\n }\n }\n\n axios({\n url: apiURL,\n method: 'POST',\n baseURL: this.getAPIBaseUrl,\n data\n })\n .then(response => {\n this.addNotify({\n type: 'info',\n message: 'Command successfully sent...'\n });\n this.closeThisModal();\n })\n .catch(error => {\n const msg: string = 'Command NOT sent: ' + error.message;\n this.addNotify({\n type: 'error',\n message: msg\n });\n // tslint:disable-next-line:no-console\n console.error(error.message);\n });\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RouteList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RouteList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RouteList.vue?vue&type=template&id=7a6fc393&scoped=true&\"\nimport script from \"./RouteList.vue?vue&type=script&lang=ts&\"\nexport * from \"./RouteList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RouteList.vue?vue&type=style&index=0&id=7a6fc393&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7a6fc393\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.channels.length || _vm.displayEmpty)?_c('div',{staticClass:\"c3InterfaceList\"},[_c('h1',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasTitle),expression:\"hasTitle\"}]},[_vm._v(_vm._s(_vm.title))]),(_vm.channels.length)?[_c('table',{staticClass:\"datatable\"},[_vm._m(0),_c('tbody',_vm._l((_vm.channels),function(channel){return _c('tr',{key:channel.id,on:{\"click\":function($event){return _vm.openModal(channel.uid, channel.klass)}}},[_c('td',{staticClass:\"c3link\"},[_vm._v(_vm._s(channel.id))]),_c('td',[_vm._v(_vm._s(_vm.interfaceTypeName(channel)))]),_c('td',[_vm._v(_vm._s(_vm.interfaceType(channel)))])])}),0)])]:(_vm.displayEmpty)?[_vm._v(\"\\n No channels found...\\n \")]:_vm._e()],2):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Channel ID\")]),_c('th',[_vm._v(\"Name\")]),_c('th',[_vm._v(\"Channel Type\")])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { namespace } from 'vuex-class';\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\n\nimport { NodeKlass } from '@/types/c3types';\nimport { GetInterfacesForFn } from '@/store/C3Module';\n\nimport C3 from '@/c3';\nimport Partial from '@/components/partial/Partial';\n\nconst C3Module = namespace('c3Module');\n\n@Component\nexport default class ChannelList extends Mixins(C3, Partial) {\n @Prop() public targetId!: string;\n\n @C3Module.Getter public getInterfacesFor!: GetInterfacesForFn;\n\n get channels() {\n if (!this.targetId) {\n return this.getInterfacesFor(NodeKlass.Channel, null);\n }\n return this.getInterfacesFor(NodeKlass.Channel, this.targetId);\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChannelList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChannelList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChannelList.vue?vue&type=template&id=f4969ade&scoped=true&\"\nimport script from \"./ChannelList.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChannelList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ChannelList.vue?vue&type=style&index=0&id=f4969ade&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f4969ade\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.peripherals.length || _vm.displayEmpty)?_c('div',{staticClass:\"c3InterfaceList\"},[_c('h1',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasTitle),expression:\"hasTitle\"}]},[_vm._v(_vm._s(_vm.title))]),(_vm.peripherals.length)?[_c('table',{staticClass:\"datatable\"},[_vm._m(0),_c('tbody',_vm._l((_vm.peripherals),function(peripheral){return _c('tr',{key:peripheral.id,on:{\"click\":function($event){return _vm.openModal(peripheral.uid, peripheral.klass)}}},[_c('td',{staticClass:\"c3link\"},[_vm._v(_vm._s(peripheral.id))]),_c('td',[_vm._v(_vm._s(_vm.interfaceTypeName(peripheral)))])])}),0)])]:(_vm.displayEmpty)?[_vm._v(\"\\n No peripherals found...\\n \")]:_vm._e()],2):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Peripheral ID\")]),_c('th',[_vm._v(\"Name\")])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { namespace } from 'vuex-class';\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\n\nimport { NodeKlass } from '@/types/c3types';\nimport { GetInterfacesForFn } from '@/store/C3Module';\n\nimport C3 from '@/c3';\nimport Partial from '@/components/partial/Partial';\n\nconst C3Module = namespace('c3Module');\n\n@Component\nexport default class PeripheralList extends Mixins(C3, Partial) {\n @Prop() public targetId!: string;\n\n @C3Module.Getter public getInterfacesFor!: GetInterfacesForFn;\n\n get peripherals() {\n if (!this.targetId) {\n return this.getInterfacesFor(NodeKlass.Peripheral, null);\n }\n return this.getInterfacesFor(NodeKlass.Peripheral, this.targetId);\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PeripheralList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PeripheralList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PeripheralList.vue?vue&type=template&id=0686e7da&scoped=true&\"\nimport script from \"./PeripheralList.vue?vue&type=script&lang=ts&\"\nexport * from \"./PeripheralList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PeripheralList.vue?vue&type=style&index=0&id=0686e7da&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0686e7da\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { namespace } from 'vuex-class';\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\n\nimport { C3Relay, C3Interface, NodeKlass } from '@/types/c3types';\nimport { GetRelayFn, GetInterfacesForFn } from '@/store/C3Module';\n\nimport C3 from '@/c3';\nimport RouteList from '@/components/partial/RouteList.vue';\nimport ChannelList from '@/components/partial/ChannelList.vue';\nimport PheripheralList from '@/components/partial/PeripheralList.vue';\n\nconst C3Module = namespace('c3Module');\n\n@Component({\n components: {\n RouteList,\n ChannelList,\n PheripheralList\n }\n})\nexport default class RelayModal extends Mixins(C3) {\n @Prop() public targetId!: string;\n\n @C3Module.Getter public getRelay!: GetRelayFn;\n\n get relay() {\n const r = this.getRelay(this.targetId);\n if (!r) {\n this.closeThisModal();\n }\n return r;\n }\n\n public mounted(): void {\n (window as any).addEventListener('keydown', this.handleGlobalKeyDown, true);\n }\n\n public beforeDestroy(): void {\n (window as any).removeEventListener(\n 'keydown',\n this.handleGlobalKeyDown,\n true\n );\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Relay.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Relay.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Relay.vue?vue&type=template&id=98affa18&\"\nimport script from \"./Relay.vue?vue&type=script&lang=ts&\"\nexport * from \"./Relay.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Relay.vue?vue&type=style&index=0&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.c3Command !== undefined)?_c('div',{staticClass:\"c3modal-body\"},[_c('div',{staticClass:\"c3modal-details\"},[_c('h1',[_vm._v(\"\\n Command Details\\n \")]),_c('table',{staticClass:\"datatable\"},[_vm._m(0),_c('tbody',[_c('tr',{on:{\"click\":function($event){_vm.openModal(_vm.InterfaceUID(_vm.c3Command), _vm.commandType(_vm.c3Command))}}},[_c('td',[_c('span',{staticClass:\"c3tab-pending\",class:_vm.isCommandPending(_vm.c3Command)}),_vm._v(\"\\n \"+_vm._s(_vm.c3Command.id)+\"\\n \")]),_c('td',[_vm._v(\"\\n \"+_vm._s(_vm.isCommandPending(_vm.c3Command, true))+\"\\n \")]),_c('td',{staticClass:\"hover-link command-for\"},[_vm._v(\"\\n \"+_vm._s(_vm.commandType(_vm.c3Command).toLowerCase())+\"\\n \")]),_c('td',[_vm._v(\"\\n \"+_vm._s(_vm.commandTypeId(_vm.c3Command))+\"\\n \")])])])]),_c('pre',{staticClass:\"c3command\"},[_vm._v(_vm._s(JSON.stringify(_vm.c3Command, null, 4)))])])]):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Command ID\")]),_c('th',[_vm._v(\"Status\")]),_c('th',[_vm._v(\"Command for\")]),_c('th',[_vm._v(\"ID\")])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { namespace } from 'vuex-class';\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\n\nimport { Notify } from '@/store/NotifyModule';\nimport { GetCommandFn } from '@/store/C3Module';\nimport {\n C3Interface,\n C3Gateway,\n C3Relay,\n NodeKlass,\n C3Command,\n C3Node\n} from '@/types/c3types';\n\nimport C3 from '@/c3';\n\nconst C3CommandModule = namespace('c3CommandModule');\nconst nodeKlass = NodeKlass;\n\n@Component\nexport default class CommandModal extends Mixins(C3) {\n @Prop() public targetId!: string;\n\n @C3CommandModule.Getter public getCommand!: GetCommandFn;\n\n get c3Command() {\n const target = this.getCommand(this.targetId);\n if (!target) {\n this.closeThisModal();\n this.addNotify({\n type: 'error',\n message: `The Commandyou looking for: ${this.targetId}, not exist.`\n });\n }\n return target;\n }\n\n public mounted(): void {\n (window as any).addEventListener('keydown', this.handleGlobalKeyDown, true);\n }\n\n public beforeDestroy(): void {\n (window as any).removeEventListener(\n 'keydown',\n this.handleGlobalKeyDown,\n true\n );\n }\n\n public InterfaceUID(c: C3Command): string | number {\n if (!!c.interfaceId) {\n if (!!c.relayAgentId) {\n return c.interfaceId + '-' + c.relayAgentId;\n }\n return c.interfaceId + '-' + this.gateway.id;\n }\n if (!!c.relayAgentId) {\n return c.relayAgentId;\n }\n return this.gateway.id;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Command.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Command.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Command.vue?vue&type=template&id=3748fed6&scoped=true&\"\nimport script from \"./Command.vue?vue&type=script&lang=ts&\"\nexport * from \"./Command.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Command.vue?vue&type=style&index=0&id=3748fed6&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3748fed6\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.gateway !== null)?_c('div',{staticClass:\"c3modal-body\"},[_c('div',{staticClass:\"c3modal-header\",class:{ 'has-error': !!_vm.gateway.error }},[_c('h1',[_vm._v(\"\\n Gateway: \"),_c('span',[_vm._v(\" \"+_vm._s(_vm.gateway.name)+\" / \"+_vm._s(_vm.gateway.id))])]),_c('div',{staticClass:\"flex-row\"},[_c('div',{staticClass:\"details\"},[_c('p',[_vm._v(\"\\n Build ID \"),_c('span',[_vm._v(_vm._s(_vm.gateway.buildId))])]),_c('p',[_vm._v(\"\\n Start time \"),_c('span',[_vm._v(_vm._s(_vm.unixTimeToString(_vm.gateway.timestamp)))])])]),_c('div',{staticClass:\"actions\"},[_c('button',{staticClass:\"c3btn c3btn--grey\",on:{\"click\":function($event){return _vm.openModal('', 'CREATE_RELAY')}}},[_vm._v(\"\\n New Relay\\n \")])])]),(_vm.gateway.error && _vm.gateway.error !== '')?_c('p',{staticClass:\"message-with-icon\"},[_c('span',{staticClass:\"icon warning\"}),_vm._v(\"\\n Error: \"+_vm._s(_vm.gateway.error)+\"\\n \")]):_vm._e(),_c('div',{staticClass:\"flex-row\"},[_c('NetworkStats',{staticStyle:{\"width\":\"250px\"}}),_c('div',{staticClass:\"actions\"},[_c('button',{staticClass:\"c3btn c3btn--outline\",on:{\"click\":function($event){return _vm.openModal(_vm.gateway.id, 'COMMAND_CENTER')}}},[_vm._v(\"\\n Command Center\\n \")])])],1)]),_c('div',{staticClass:\"c3modal-details\"},[_c('ChannelList',{attrs:{\"target-id\":null,\"title\":\"Channels\",\"show-empty\":true}}),_c('PheripheralList',{attrs:{\"target-id\":null,\"title\":\"Peripherals\",\"show-empty\":true}}),_c('ConnectorList',{attrs:{\"title\":\"Connectors\",\"show-empty\":true}}),_c('RouteList',{attrs:{\"target-id\":null,\"parent-id\":_vm.gateway.id,\"parent-klass\":\"GATEWAY\",\"title\":\"Routes\",\"show-empty\":true}})],1)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3Stats\"},[_c('p',[_c('span',[_vm._v(\"Relays\")]),_c('span',[_vm._v(_vm._s(_vm.countRelays))])]),_c('p',[_c('span',[_vm._v(\"Channels\")]),_c('span',[_vm._v(_vm._s(_vm.countChannels))])]),_c('p',[_c('span',[_vm._v(\"Connectors\")]),_c('span',[_vm._v(_vm._s(_vm.countConnectors))])]),_c('p',[_c('span',[_vm._v(\"Peripherals\")]),_c('span',[_vm._v(_vm._s(_vm.countPheripherals))])]),_c('p',[_c('span',[_vm._v(\"URL\")]),_c('span',[_vm._v(_vm._s(_vm.url))])]),_c('p',[_c('span',[_vm._v(\"Port\")]),_c('span',[_vm._v(_vm._s(_vm.port))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { namespace } from 'vuex-class';\nimport { Component, Mixins } from 'vue-property-decorator';\n\nimport { GetInterfacesFn } from '@/store/C3Module';\nimport { GatewayHeader, NodeKlass, C3Node } from '@/types/c3types';\n\nimport C3 from '@/c3';\n\nconst C3Module = namespace('c3Module');\nconst C3OptionsModule = namespace('optionsModule');\n\n@Component\nexport default class NetworkStats extends Mixins(C3) {\n @C3Module.Getter public getRelays!: C3Node[];\n @C3Module.Getter public getInterfaces!: GetInterfacesFn;\n\n @C3OptionsModule.Getter public getAPIUrl!: string;\n @C3OptionsModule.Getter public getAPIPort!: number;\n @C3OptionsModule.Getter public getRefreshInterval!: number;\n\n get url() {\n return this.getAPIUrl;\n }\n\n get port() {\n return this.getAPIPort;\n }\n\n get refreshInterval() {\n return this.getRefreshInterval;\n }\n\n get countRelays() {\n return this.getRelays.length;\n }\n\n get countChannels() {\n return this.getInterfaces([NodeKlass.Channel]).length;\n }\n\n get countConnectors() {\n return this.getInterfaces([NodeKlass.Connector]).length;\n }\n\n get countPheripherals() {\n return this.getInterfaces([NodeKlass.Peripheral]).length;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NetworkStats.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NetworkStats.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NetworkStats.vue?vue&type=template&id=b5131632&scoped=true&\"\nimport script from \"./NetworkStats.vue?vue&type=script&lang=ts&\"\nexport * from \"./NetworkStats.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NetworkStats.vue?vue&type=style&index=0&id=b5131632&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b5131632\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.connectors.length || _vm.displayEmpty)?_c('div',{staticClass:\"c3InterfaceList\"},[_c('h1',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasTitle),expression:\"hasTitle\"}]},[_vm._v(_vm._s(_vm.title))]),(_vm.connectors.length)?[_c('table',{staticClass:\"datatable\"},[_vm._m(0),_c('tbody',_vm._l((_vm.connectors),function(connector){return _c('tr',{key:connector.id,on:{\"click\":function($event){return _vm.openModal(connector.uid, connector.klass)}}},[_c('td',{staticClass:\"c3link\"},[_vm._v(_vm._s(connector.id))]),_c('td',[_vm._v(_vm._s(_vm.interfaceTypeName(connector)))])])}),0)])]:(_vm.displayEmpty)?[_vm._v(\"\\n No connectors found...\\n \")]:_vm._e()],2):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Connector ID\")]),_c('th',[_vm._v(\"Name\")])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { namespace } from 'vuex-class';\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\n\nimport { NodeKlass } from '@/types/c3types';\nimport { GetInterfacesForFn } from '@/store/C3Module';\n\nimport C3 from '@/c3';\nimport Partial from '@/components/partial/Partial';\n\nconst C3Module = namespace('c3Module');\n\n@Component\nexport default class ConnectorList extends Mixins(C3, Partial) {\n @C3Module.Getter public getInterfacesFor!: GetInterfacesForFn;\n\n get connectors() {\n // Only Gateway can have a connector...\n return this.getInterfacesFor(NodeKlass.Connector, null);\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectorList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectorList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ConnectorList.vue?vue&type=template&id=5ea1cc30&scoped=true&\"\nimport script from \"./ConnectorList.vue?vue&type=script&lang=ts&\"\nexport * from \"./ConnectorList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ConnectorList.vue?vue&type=style&index=0&id=5ea1cc30&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5ea1cc30\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3modal-body\"},[_c('div',{staticClass:\"c3modal-details\"},[(_vm.isNotEmbeded)?_c('h1',[_vm._v(\"\\n Create Command for: \"+_vm._s(_vm.currentItem.klass)+\" - \"+_vm._s(_vm.currentItem.name)+\"\\n \"+_vm._s(_vm.interfaceTypeName(_vm.currentItem))+\"/ \"+_vm._s(_vm.currentItem.id)+\"\\n \")]):_vm._e(),_c('div',{staticClass:\"c3command-group\"},[_c('Select',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}],staticClass:\"form-element\",attrs:{\"legend\":\"Select Command Group\",\"selected\":_vm.selectedCommandGroup,\"options\":_vm.commandGroupOptions,\"border\":true},on:{\"change\":function($event){return _vm.changeCommandGroup($event, _vm.commandGroup)}}}),_c('Select',{staticClass:\"form-element\",attrs:{\"legend\":\"Select Command\",\"selected\":_vm.selectedCommandTarget,\"options\":_vm.commandTargetOptions,\"border\":true},on:{\"change\":function($event){return _vm.changeCommandTarget($event, _vm.commandTarget)}}})],1),(_vm.selectedInterface !== undefined && _vm.selectedCommand !== undefined)?_c('GeneralForm',{key:_vm.selectedInterface + _vm.selectedCommand + _vm.selectedCommand,attrs:{\"klass\":_vm.selectedInterfaceKlass,\"interface-name\":_vm.selectedInterface,\"command\":_vm.selectedCommand,\"target-id\":_vm.targetId,\"target\":_vm.selectedInterface,\"options\":_vm.argumentOptions},on:{\"change\":function($event){return _vm.changeForm($event, _vm.formData)}}}):_vm._e(),(_vm.isNotEmbeded)?_c('dir',{staticClass:\"flex-row c3modal-actions\"},[_c('button',{staticClass:\"c3btn c3btn--grey\",on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.closeThisModal()}}},[_vm._v(\"\\n Cancel\\n \")]),_c('button',{staticClass:\"c3btn\",attrs:{\"disabled\":_vm.formIsValid},on:{\"click\":function($event){return _vm.sendCommand()}}},[_vm._v(\"\\n Send Command\\n \")])]):_vm._e()],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3input-wrapper\"},[(_vm.hasHelp)?_c('span',{staticClass:\"icon help\"},[_c('div',{staticClass:\"help-text\"},[_vm._v(\"\\n \"+_vm._s(_vm.help)+\"\\n \")])]):_vm._e(),(_vm.random)?_c('span',{staticClass:\"icon random\",on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.onClickRandom($event)}}}):_vm._e(),_c('input',_vm._b({directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.inputText),expression:\"inputText\"},{name:\"validate\",rawName:\"v-validate\",value:(_vm.validate),expression:\"validate\"}],ref:\"textinput\",staticClass:\"c3input-input\",class:{ dirty: _vm.isDirty },attrs:{\"type\":\"text\",\"disabled\":_vm.isDisabled,\"name\":_vm.inputUID,\"autocomplete\":_vm.autocomplete},domProps:{\"value\":(_vm.inputText)},on:{\"change\":_vm.changeInputText,\"focus\":function($event){return _vm.gainFocus()},\"blur\":function($event){return _vm.lostFocus()},\"input\":function($event){if($event.target.composing){ return; }_vm.inputText=$event.target.value}}},'input',_vm.$attrs,false)),_c('label',{staticClass:\"c3input-label\",class:{ dirty: _vm.isDirty },on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.clickOnLabel()}}},[_vm._v(\"\\n \"+_vm._s(_vm.legend)+\"\\n \")]),_c('span',{staticClass:\"error-message\"},[_vm._v(_vm._s(_vm.errors.first(_vm.inputUID)))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Prop, Component } from 'vue-property-decorator';\nimport Vue from 'vue';\n\n/**\n * Shared Class for CheckBox, Input, Textarea and Toggle\n *\n * @export\n * @class C3FormElement\n * @extends {Vue}\n */\n\n@Component\nexport default class C3FormElement extends Vue {\n @Prop() public help!: string;\n @Prop() public name!: string;\n @Prop() public legend!: string;\n @Prop() public disabled!: boolean;\n @Prop() public autocomplete!: string;\n\n get hasHelp() {\n return !!this.help;\n }\n\n get isDisabled() {\n return !!this.disabled;\n }\n\n get inputUID() {\n return !!this.name\n ? this.name\n : Math.random()\n .toString(36)\n .substring(2);\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\n\nimport C3FormElement from '@/components/form/C3FormElement';\n\nimport C3 from '@/c3';\n\n@Component({\n $_veeValidate: {\n validator: 'new'\n }\n})\nexport default class Input extends Mixins(C3, C3FormElement) {\n @Prop() public value!: string;\n @Prop() public random!: string;\n @Prop() public validate!: string;\n\n public focused: boolean = false;\n public inputText: string = this.getValue;\n public intervalTimer: any = null;\n\n get getValue() {\n if ((this.value === '' || this.value === undefined) && this.random) {\n return this.rand(parseInt(this.random, 10));\n }\n return this.value || '';\n }\n\n get isDirty() {\n return !!this.value || !!this.inputText;\n }\n\n public mounted(): void {\n this.changeInputText();\n (window as any).addEventListener(\n 'inputkeypress',\n this.handleEnterAndTabKeyDown,\n true\n );\n }\n\n public beforeDestroy(): void {\n (window as any).removeEventListener(\n 'inputkeypress',\n this.handleEnterAndTabKeyDown,\n true\n );\n }\n\n public gainFocus(): void {\n this.focused = true;\n this.intervalTimer = setInterval(this.changeInputText, 500);\n }\n\n public lostFocus(): void {\n this.focused = false;\n clearInterval(this.intervalTimer);\n this.changeInputText();\n }\n\n public clickOnLabel(): void {\n (this.$refs.textinput as HTMLInputElement).focus();\n }\n\n public changeInputText() {\n this.$validator\n .verify((this.$refs.textinput as HTMLInputElement).value, this.validate)\n .then(valid => {\n const isValid = valid.valid;\n this.$emit('change', {\n value: this.inputText,\n valid: isValid\n });\n });\n }\n\n public handleEnterAndTabKeyDown(e: any): void {\n if (e.keyCode === 13 || e.keyCode === 9) {\n this.changeInputText();\n }\n }\n\n public rand(n: number) {\n if (n < 1) {\n n = 1;\n }\n if (n > 10) {\n n = 10;\n }\n return Math.random()\n .toString(36)\n .substring(2)\n .substr(0, n);\n }\n\n public onClickRandom() {\n this.inputText = this.rand(parseInt(this.random, 10));\n // We need to run the validation manualy because the value changed programaticaly\n // and not by user interaction.\n this.$validator.validate().then(valid => {\n this.changeInputText();\n });\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Input.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Input.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Input.vue?vue&type=template&id=0d08badc&scoped=true&\"\nimport script from \"./Input.vue?vue&type=script&lang=ts&\"\nexport * from \"./Input.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Input.vue?vue&type=style&index=0&id=0d08badc&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0d08badc\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3select\",class:{ disabled: _vm.isDisabled }},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isOpen),expression:\"isOpen\"}],staticClass:\"c3select-close\",on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.toggleSelect()}}}),_c('div',{staticClass:\"c3select-select\"},[_c('span',{staticClass:\"c3select-selected\",class:{ 'c3select-border': _vm.hasBorder },on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.toggleSelect()}}},[_vm._v(\"\\n \"+_vm._s(_vm.selectedValue)+\"\\n \")]),(_vm.legend)?_c('span',{staticClass:\"c3select-legend\"},[_vm._v(\"\\n \"+_vm._s(_vm.legend)+\"\\n \")]):_vm._e(),_c('span',{staticClass:\"c3select-icon icon\",class:_vm.dropDownIcon,on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.toggleSelect()}}})]),_c('ul',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isOpen),expression:\"isOpen\"}],staticClass:\"c3select-options\",class:{ 'c3select-direction-up': _vm.directionReverse },style:(_vm.selectUlStyle)},_vm._l((_vm.options),function(value,id){return _c('li',{key:id,staticClass:\"c3select-option\",class:{ selected: _vm.isSelected(id) },on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.selectAndClose(id)}}},[_vm._v(\"\\n \"+_vm._s(value)+\"\\n \")])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\n\nimport C3 from '@/c3';\nimport C3FormElement from './C3FormElement';\n\n@Component\nexport default class Select extends Mixins(C3, C3FormElement) {\n @Prop() public up!: boolean;\n @Prop() public legend!: string;\n @Prop() public border!: boolean;\n @Prop() public selected!: string;\n @Prop() public options!: { [key: string]: string };\n @Prop() public feedback!: string;\n\n public isOpen: boolean = false;\n public hasBorder: boolean = this.border || false;\n public directionReverse: boolean = this.up || false;\n public selectRef: string = Math.random()\n .toString(36)\n .substring(2);\n public selectUlStyle: string = '';\n\n get dropDownIcon() {\n return this.isOpen ? 'carrotup' : 'carrotdown';\n }\n\n get selectedValue(): string {\n let value: string = '';\n Object.keys(this.options).forEach(e => {\n if (this.selected === e) {\n value = this.options[e];\n }\n });\n return value;\n }\n\n public mounted(): void {\n if (!this.up) {\n this.calculateSelectUlOffset();\n }\n }\n\n public isSelected(selectedId: string) {\n return this.selected === selectedId ? 'selected' : '';\n }\n\n public toggleSelect(): void {\n this.calculateSelectUlOffset();\n if (!this.isDisabled) {\n this.isOpen = !this.isOpen;\n }\n }\n\n public selectAndClose(value: string): void {\n if (this.feedback === 'validated') {\n this.$emit('change', { value, valid: true });\n } else {\n this.$emit('change', value);\n }\n this.toggleSelect();\n }\n\n public calculateSelectUlOffset(): void {\n const rect = this.$el.getBoundingClientRect();\n const scrollLeft =\n window.pageXOffset || document.documentElement.scrollLeft;\n const scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n if (this.directionReverse) {\n this.selectUlStyle =\n `position: fixed; margin-bottom: -31px; bottom: calc(100vh - ${rect.top +\n scrollTop}px);` +\n ` left: ${rect.left + scrollLeft}px; width: ${rect.width}px;`;\n } else {\n this.selectUlStyle =\n `position: fixed; margin-top: 31px; top: ${rect.top + scrollTop}px;` +\n ` left: ${rect.left + scrollLeft}px; width: ${rect.width}px;`;\n }\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Select.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Select.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Select.vue?vue&type=template&id=893eea00&scoped=true&\"\nimport script from \"./Select.vue?vue&type=script&lang=ts&\"\nexport * from \"./Select.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Select.vue?vue&type=style&index=0&id=893eea00&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"893eea00\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3form\"},[_vm._l((_vm.argumentsArray),function(field){return _c(_vm.getFieldType(field),_vm._b({key:field.id,tag:\"component\",attrs:{\"legend\":field.name,\"validate\":field.validation,\"name\":field.name,\"random\":field.randomize,\"value\":_vm.setDefaultValue(field.name, field.defaultValue),\"help\":field.description,\"autocomplete\":\"off\",\"border\":\"ture\",\"options\":field.options,\"selected\":field.selected,\"feedback\":field.feedback},on:{\"change\":function($event){return _vm.onChange($event, field.id)}}},'component',field,false))}),_vm._l((_vm.argumentObjects),function(field){return _c(_vm.getFieldType(field),_vm._b({key:field.id,tag:\"component\",attrs:{\"legend\":field.name,\"validate\":field.validation,\"random\":field.randomize,\"name\":field.name,\"value\":_vm.setDefaultValue(field.name, field.defaultValue),\"help\":field.description,\"autocomplete\":\"off\",\"border\":\"ture\",\"options\":field.options,\"selected\":field.selected,\"feedback\":field.feedback},on:{\"change\":function($event){return _vm.onChange($event, field.id)}}},'component',field,false))})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3checkbox-wrapper\"},[(_vm.hasHelp)?_c('span',{staticClass:\"icon help\"},[_c('div',{staticClass:\"help-text\"},[_vm._v(\"\\n \"+_vm._s(_vm.help)+\"\\n \")])]):_vm._e(),_c('label',{staticClass:\"icon checkbox\",class:_vm.getIconKlass,attrs:{\"for\":_vm.inputUID}},[_vm._v(\"\\n \"+_vm._s(_vm.legend)+\"\\n \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.isChecked),expression:\"isChecked\"}],ref:\"booleanCheckbox\",attrs:{\"type\":\"checkbox\",\"value\":\"None\",\"id\":_vm.inputUID,\"name\":_vm.inputUID,\"true-value\":\"true\",\"false-value\":\"false\",\"disabled\":_vm.disabled,\"autocomplete\":_vm.autocomplete},domProps:{\"checked\":Array.isArray(_vm.isChecked)?_vm._i(_vm.isChecked,\"None\")>-1:_vm._q(_vm.isChecked,\"true\")},on:{\"change\":[function($event){var $$a=_vm.isChecked,$$el=$event.target,$$c=$$el.checked?(\"true\"):(\"false\");if(Array.isArray($$a)){var $$v=\"None\",$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.isChecked=$$a.concat([$$v]))}else{$$i>-1&&(_vm.isChecked=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.isChecked=$$c}},_vm.toogleCheckBox]}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\n\nimport C3FormElement from '@/components/form/C3FormElement';\n\nimport C3 from '@/c3';\n\n@Component\nexport default class CheckBox extends Mixins(C3, C3FormElement) {\n @Prop() public value!: string;\n\n public isChecked: string = this.getIsChecked;\n\n get getIconKlass() {\n const checked: string = this.isChecked === 'true' ? '-on' : '-off';\n const disabled: string = this.isDisabled ? '--disabled' : '';\n return `checkbox${checked}${disabled}`;\n }\n\n get getIsChecked() {\n if (this.value && typeof this.value === 'boolean' && this.value === true) {\n return 'true';\n }\n return 'false';\n }\n\n public mounted(): void {\n this.toogleCheckBox();\n }\n\n // boolean true or false, nothing to validate here\n public toogleCheckBox(): void {\n const isCheckedValue = this.isChecked === 'true' ? true : false;\n this.$emit('change', {\n value: isCheckedValue,\n valid: true\n });\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CheckBox.vue?vue&type=template&id=40202deb&scoped=true&\"\nimport script from \"./CheckBox.vue?vue&type=script&lang=ts&\"\nexport * from \"./CheckBox.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CheckBox.vue?vue&type=style&index=0&id=40202deb&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"40202deb\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3textarea\"},[(_vm.hasHelp)?_c('span',{staticClass:\"icon help\"},[_c('div',{staticClass:\"help-text\"},[_vm._v(\"\\n \"+_vm._s(_vm.help)+\"\\n \")])]):_vm._e(),_c('div',{staticClass:\"textarea\",class:{ focus: _vm.focused }},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.dataText),expression:\"dataText\"}],ref:\"textareainput\",staticClass:\"c3textarea-input\",class:{ focus: _vm.focused },attrs:{\"rows\":\"5\",\"cols\":\"33\",\"type\":\"checkbox\",\"id\":_vm.inputUID,\"name\":_vm.inputUID,\"disabled\":_vm.disabled,\"autocomplete\":_vm.autocomplete},domProps:{\"value\":(_vm.dataText)},on:{\"input\":[function($event){if($event.target.composing){ return; }_vm.dataText=$event.target.value},_vm.updateTextarea],\"focus\":function($event){_vm.focused = true},\"blur\":function($event){return _vm.lostFocus()}}}),_c('label',{staticClass:\"c3textarea-label\",class:{ dirty: _vm.isDirty, focus: _vm.focused },on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.clickOnLabel()}}},[_vm._v(\"\\n \"+_vm._s(_vm.legend)+\"\\n \")]),_vm._m(0)]),_c('input',{ref:\"fileinput\",staticStyle:{\"visibility\":\"hidden\"},attrs:{\"id\":\"payload-file\",\"type\":\"file\"},on:{\"change\":_vm.updateTextfield}})])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{staticClass:\"c3textarea-upload-button\",attrs:{\"for\":\"payload-file\"}},[_c('span',{staticClass:\"icon upload\"},[_c('div',{staticClass:\"help-text\"},[_vm._v(\"\\n Select file to upload...\\n \")])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\n\nimport C3FormElement from '@/components/form/C3FormElement';\n\nimport C3 from '@/c3';\n\n@Component\nexport default class Textarea extends Mixins(C3, C3FormElement) {\n @Prop() public value!: string;\n\n public dataText: string = '';\n public focused: boolean = false;\n\n get isDirty() {\n return !!this.value || !!this.dataText;\n }\n\n public mounted(): void {\n this.updateTextarea();\n }\n\n public lostFocus(): void {\n this.focused = false;\n this.updateTextarea();\n }\n\n // can be anything so nothing to validate here\n public updateTextarea(): void {\n this.$emit('change', {\n value: this.dataText,\n valid: true\n });\n }\n\n public clickOnLabel(): void {\n (this.$refs.textareainput as HTMLInputElement).focus();\n }\n\n public updateTextfield(): void {\n const reader = new FileReader();\n const file: any = this.$refs.fileinput as HTMLInputElement;\n let base64: string;\n\n reader.readAsDataURL(file.files[0]);\n\n reader.onload = () => {\n base64 = reader.result as string;\n if (!base64) {\n base64 = (base64 as string).replace(/^data:(.*;base64,)?/, '');\n }\n this.dataText = base64;\n this.updateTextarea();\n // If manualy delete the content and select the same file, we need to populate the data again.\n // To do this we need to reset the input field. If we don't do that selecting the same file\n // is not trigger the change event.\n try {\n (this.$refs.fileinput as HTMLInputElement).value = '';\n if ((this.$refs.fileinput as HTMLInputElement).value) {\n (this.$refs.fileinput as HTMLInputElement).type = 'text';\n (this.$refs.fileinput as HTMLInputElement).type = 'file';\n }\n } catch (e) {\n // tslint:disable-next-line:no-console\n console.error('Error during input element reset.');\n }\n };\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Textarea.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Textarea.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Textarea.vue?vue&type=template&id=7007b96d&scoped=true&\"\nimport script from \"./Textarea.vue?vue&type=script&lang=ts&\"\nexport * from \"./Textarea.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Textarea.vue?vue&type=style&index=0&id=7007b96d&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7007b96d\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { namespace } from 'vuex-class';\nimport { Component, Prop, Watch, Mixins } from 'vue-property-decorator';\n\nimport { NodeKlass, C3Node, C3FieldDefault } from '@/types/c3types';\nimport { GetCapabilityForFn } from '@/store/C3Capability';\nimport { GetTypeNameForInterfaceFn } from '@/store/C3Capability';\n\nimport C3 from '@/c3';\nimport Input from '@/components/form/Input.vue';\nimport Select from '@/components/form/Select.vue';\nimport CheckBox from '@/components/form/CheckBox.vue';\nimport Textarea from '@/components/form/Textarea.vue';\n\nconst C3Capability = namespace('c3Capability');\nconst C3Module = namespace('c3Module');\n\n@Component({\n components: {\n Input,\n Select,\n Textarea,\n CheckBox\n }\n})\nexport default class GeneralForm extends Mixins(C3) {\n @Prop() public command!: any;\n @Prop() public target!: string;\n @Prop() public klass!: NodeKlass;\n @Prop() public targetId!: string;\n @Prop() public interfaceName!: any;\n @Prop() public options!: C3FieldDefault[];\n\n public isValid: boolean = false;\n // hold the command argumentum array part\n public argumentsArray: any = [];\n // hold the command argumentum objects outside the array\n public argumentObjects: any = [];\n\n // get the capability from store\n @C3Capability.Getter public getCapabilityFor!: GetCapabilityForFn;\n @C3Capability.Getter\n public getTypeNameForInterface!: GetTypeNameForInterfaceFn;\n\n get capability() {\n return this.getCapabilityFor(this.interfaceName, this.klass);\n }\n\n get hasOptions() {\n if (this.options) {\n return JSON.stringify(this.options) === '{}' ? false : true;\n }\n return false;\n }\n\n // TODO: add more field type\n public getFieldType(f: any): string {\n switch (f.type) {\n case 'boolean':\n return 'CheckBox';\n case 'base64':\n return 'Textarea';\n case 'base32':\n return 'Textarea';\n case 'binary':\n return 'Textarea';\n }\n return 'Input';\n }\n\n public onChange(payload: any, id: any) {\n this.isValid = true;\n let index = this.argumentsArray.findIndex((i: any) => {\n return i.id === id;\n });\n if (index > -1) {\n this.argumentsArray[index].value = payload.value;\n this.argumentsArray[index].isValid = payload.valid;\n }\n index = this.argumentObjects.findIndex((i: any) => {\n return i.id === id;\n });\n if (index > -1) {\n this.argumentObjects[index].value = payload.value;\n this.argumentObjects[index].isValid = payload.valid;\n }\n\n this.emitFormData();\n }\n\n // emit back the form data\n public emitFormData(): void {\n this.isValid = true;\n\n const formData = [this.clearArray(this.argumentsArray)];\n this.clearArray(this.argumentObjects).forEach((element: any) => {\n formData.push(element);\n });\n\n const formIsValid = this.isValid;\n\n this.$emit('change', {\n data: formData,\n valid: formIsValid\n });\n }\n\n // populate the argumentsArray and argumentObjects arrays on load\n public mounted(): void {\n this.getCommandFrom();\n this.emitFormData();\n }\n\n public clearArray(data: any): any {\n const rData: any = [];\n\n if (data) {\n data.forEach((element: any) => {\n if (!element.isValid) {\n this.isValid = false;\n }\n\n const t = element.type;\n const n = element.name;\n const v = element.value;\n\n rData.push({\n type: t,\n name: n,\n value: v\n });\n });\n }\n\n return rData;\n }\n\n public getValidationRule(e: any): string {\n let validation: string = '';\n\n if (!!e.type && e.type === 'ip') {\n validation = 'ip|';\n }\n if (!!e.type && (e.type === 'int16' || e.type === 'uint16')) {\n validation = 'numeric|';\n if (!e.min && e.type === 'uint16') {\n validation = validation + 'min_value:0|';\n }\n }\n if (!!e.type && e.type === 'boolean') {\n validation = '';\n }\n if (!!e.min && parseInt(e.min, 10) > 0) {\n if (!!e.type && e.type === 'string') {\n validation = validation + 'min:' + e.min + '|';\n }\n if (!!e.type && (e.type === 'int16' || e.type === 'uint16')) {\n validation = validation + 'min_value:' + e.min + '|';\n }\n validation = validation + 'required|';\n }\n if (!!e.max && e.min && parseInt(e.max, 10) >= parseInt(e.min, 10)) {\n if (!!e.type && e.type === 'string') {\n validation = validation + 'max:' + e.max + '|';\n }\n if (!!e.type && (e.type === 'int16' || e.type === 'uint16')) {\n validation = validation + 'max_value:' + e.max + '|';\n }\n }\n return validation;\n }\n\n public getRandomLenght(e: any): number | undefined {\n // If no minimum then dont show the random button.\n if ((e.randomize && e.randomize === true) || e.randomize === 'true') {\n if (e.min && parseInt(e.min, 10) > 0) {\n return parseInt(e.min, 10);\n } else {\n e.randomize = 8;\n }\n }\n return undefined;\n }\n\n public getCrossArgumentOption(inputId: string): string | boolean {\n const outputId = inputId === 'Input ID' ? 'Output ID' : 'Input ID';\n\n if (this.hasOptions) {\n const output = this.options.find((item: C3FieldDefault) => {\n return item.name === outputId;\n });\n if (output) {\n return output.value;\n }\n }\n return false;\n }\n\n public getArgumentOption(input: string): string | boolean {\n if (this.hasOptions) {\n const output = this.options.find((item: C3FieldDefault) => {\n return item.name === input;\n });\n if (output) {\n return output.value;\n }\n }\n return false;\n }\n\n public setDefaultValue(inputName: string, inputValue: any) {\n const value = inputValue;\n if (this.hasOptions) {\n const newValue = this.options.find(item => {\n return inputName === item.name;\n });\n if (!!newValue) {\n return newValue.value;\n }\n }\n return value;\n }\n\n public setArgumentData(argument: any): any {\n argument.validation = this.getValidationRule(argument);\n argument.id = Math.random()\n .toString(36)\n .substring(2);\n if (this.getRandomLenght(argument)) {\n argument.randomize = this.getRandomLenght(argument);\n }\n\n argument.value = {\n value: '',\n valid: false\n };\n\n return argument;\n }\n\n // populate the argumentsArray and argumentObjects arrays\n public getCommandFrom(): any {\n if (\n this.capability &&\n this.capability.commands &&\n this.capability.commands.length > 0\n ) {\n const com = this.capability.commands.find((c: any) => {\n return c.name === this.command;\n });\n if (com !== undefined && com.arguments) {\n this.argumentsArray = [];\n this.argumentObjects = [];\n com.arguments.forEach((argument: any) => {\n if (Array.isArray(argument)) {\n argument.forEach((argumentItem: any) => {\n argumentItem = this.setArgumentData(argumentItem);\n });\n this.argumentsArray = argument;\n } else {\n argument = this.setArgumentData(argument);\n this.argumentObjects.push(argument);\n }\n });\n } else {\n this.addNotify({\n type: 'info',\n message: \"Command not set up correctly, Form can't be generated.\"\n });\n }\n }\n return false;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GeneralForm.vue?vue&type=template&id=bf09af52&\"\nimport script from \"./GeneralForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./GeneralForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GeneralForm.vue?vue&type=style&index=0&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport pluralize from 'pluralize';\nimport axios from 'axios';\nimport { namespace } from 'vuex-class';\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\n\nimport { GetInterfaceFn } from '@/store/C3Module';\nimport { C3Gateway, NodeKlass, C3CommandCenterOptions } from '@/types/c3types';\nimport {\n GetTypesForInterfaceKlassFn,\n GetCommandGroupForFn,\n GetCommandTargetForFn,\n GetCapabilityForFn\n} from '@/store/C3Capability';\n\nimport C3 from '@/c3';\nimport Input from '@/components/form/Input.vue';\nimport Select from '@/components/form/Select.vue';\nimport GeneralForm from '@/components/form/GeneralForm.vue';\nimport AddChannelForm from '@/components/form/AddChannelForm.vue';\n\nconst C3Module = namespace('c3Module');\nconst C3Capability = namespace('c3Capability');\nconst C3OptionsModule = namespace('optionsModule');\n\n@Component({\n components: {\n Input,\n Select,\n GeneralForm\n }\n})\nexport default class CommandCenterModal extends Mixins(C3) {\n @Prop() public targetId!: string;\n @Prop() public embeded!: boolean;\n @Prop() public options!: C3CommandCenterOptions;\n\n @C3Module.Getter public getInterface!: GetInterfaceFn;\n\n @C3Capability.Getter public getCapabilityFor!: GetCapabilityForFn;\n @C3Capability.Getter public getCommandGroupFor!: GetCommandGroupForFn;\n @C3Capability.Getter public getCommandTargetFor!: GetCommandTargetForFn;\n\n @C3OptionsModule.Getter public getAPIBaseUrl!: string;\n\n public formData: any = {};\n public isValid: boolean = false;\n public commandGroup: string = '';\n public commandTarget: string = '';\n public formDirty: boolean = false;\n\n get formIsValid() {\n return !this.isValid;\n }\n\n get currentItem() {\n return this.getInterface(this.targetId);\n }\n\n get selectedCommandGroup() {\n if (!this.commandGroup) {\n return this.defaultCommandGroup;\n }\n this.resetForm();\n return this.commandGroup;\n }\n\n get selectedCommandTarget() {\n if (!this.commandTarget) {\n return this.defaultCommandTarget;\n }\n return this.commandTarget;\n }\n\n get defaultCommandGroup() {\n if (this.options !== undefined && this.options.targetGroup !== undefined) {\n return this.options.targetGroup;\n }\n if (!!this.commandGroupOptions) {\n return Object.keys(this.commandGroupOptions)[0];\n }\n return '';\n }\n\n get defaultCommandTarget() {\n if (!!this.commandTargetOptions) {\n this.changeCommandTarget(Object.keys(this.commandTargetOptions)[0]);\n return Object.keys(this.commandTargetOptions)[0];\n }\n return '';\n }\n\n get commandGroupOptions() {\n if (!!this.currentItem) {\n return this.getCommandGroupFor(this.currentItem.klass);\n }\n return '';\n }\n\n get commandTargetOptions() {\n if (!!this.currentItem) {\n if (\n this.currentItem.klass === NodeKlass.Gateway ||\n this.currentItem.klass === NodeKlass.Relay\n ) {\n return this.getCommandTargetFor(\n this.selectedCommandGroup,\n this.currentItem.klass\n );\n }\n return this.getCommandTargetFor(\n this.selectedCommandGroup,\n this.currentItem.klass,\n this.interfaceTypeName(this.currentItem)\n );\n }\n return '';\n }\n\n get selectedInterfaceKlass() {\n if (this.commandTarget !== undefined) {\n return pluralize.singular(this.commandTarget.split('_')[0]).toUpperCase();\n }\n return '';\n }\n\n get selectedInterface() {\n if (this.commandTarget !== undefined) {\n return this.commandTarget.split('_')[1];\n }\n return '';\n }\n\n get selectedCommand() {\n if (this.commandTarget !== undefined) {\n return this.commandTarget.split('_')[2];\n }\n return '';\n }\n\n get getCommandId() {\n const capability = this.getCapabilityFor(\n this.selectedInterface,\n this.selectedInterfaceKlass as NodeKlass\n );\n if (!!capability) {\n const com = capability.commands.find((c: any) => {\n return c.name === this.selectedCommand;\n });\n return com.id;\n }\n return '';\n }\n\n get isNotEmbeded(): boolean {\n if (this.embeded === undefined) {\n return true;\n }\n return this.embeded === true ? false : true;\n }\n\n get hasOptions() {\n if (this.options) {\n return JSON.stringify(this.options) === '{}' ? false : true;\n }\n return false;\n }\n\n get argumentOptions() {\n if (this.hasOptions) {\n if (!!this.options.formDefault) {\n return this.options.formDefault.arguments;\n }\n }\n return false;\n }\n\n public mounted(): void {\n (window as any).addEventListener('keydown', this.handleGlobalKeyDown, true);\n if (this.hasOptions) {\n if (!!this.options.formDefault) {\n const target = Object.keys(this.commandTargetOptions).find(key => {\n if (!!this.options && !!this.options.formDefault) {\n // TODO: found a better way to found the must select options.\n return (\n this.commandTargetOptions[key] ===\n this.options.formDefault.prefix +\n this.options.formDefault.interface\n );\n }\n return false;\n });\n if (!!target) {\n this.commandTarget = target;\n }\n }\n }\n }\n\n public beforeDestroy(): void {\n (window as any).removeEventListener(\n 'keydown',\n this.handleGlobalKeyDown,\n true\n );\n }\n\n public resetForm(): void {\n this.commandTarget = '';\n }\n\n public changeForm(data: any): void {\n this.isValid = data.valid;\n if (data.data.length === 1 && data.data[0].length === 0) {\n this.formData = [];\n } else {\n if (data.data[0].length === 0) {\n data.data.shift();\n }\n this.formData = data.data;\n }\n\n // if the command center embeded to the new relay form we\n // want to give the form data to create relay form\n if (this.targetId === 'new') {\n const dataToEmit = {\n name: this.selectedCommandGroup,\n data: {\n id: this.getCommandId,\n name: this.selectedInterface,\n command: this.selectedCommand,\n arguments: this.formData\n }\n };\n this.$emit('change', {\n data: dataToEmit,\n valid: this.isValid\n });\n }\n }\n\n public changeCommandGroup(n: string): void {\n this.commandGroup = n;\n }\n\n public changeCommandTarget(n: string): void {\n this.isValid = true;\n this.commandTarget = n;\n }\n\n public sendCommand(): void {\n const data = {\n name: this.selectedCommandGroup,\n data: {\n id: this.getCommandId,\n name: this.selectedInterface,\n command: this.selectedCommand,\n arguments: this.formData\n }\n };\n\n // POST /api/gateway/{gatewayId}/command\n // POST /api/gateway/{gatewayId}/interface/{interfaceId}/command\n // POST /api/gateway/{gatewayId}/relay/{relayId}/command\n // POST /api/gateway/{gatewayId}/relay/{relayId}/interface/{interfaceId}/command\n\n let apiURL = '/api/gateway/';\n\n if (!!this.currentItem && this.currentItem.klass === NodeKlass.Gateway) {\n apiURL = apiURL + `${this.currentItem.id}/command`;\n }\n if (!!this.currentItem && this.currentItem.klass === NodeKlass.Relay) {\n apiURL =\n apiURL +\n `${this.currentItem.parentId}/relay/${this.currentItem.id}/command`;\n }\n if (\n (!!this.currentItem && this.currentItem.klass === NodeKlass.Channel) ||\n (!!this.currentItem && this.currentItem.klass === NodeKlass.Peripheral) ||\n (!!this.currentItem && this.currentItem.klass === NodeKlass.Connector)\n ) {\n if (this.currentItem.parentKlass === NodeKlass.Gateway) {\n switch (this.currentItem.klass) {\n case NodeKlass.Channel:\n apiURL =\n apiURL +\n `${this.currentItem.parentId}/channel/${this.currentItem.id}/command`;\n break;\n case NodeKlass.Peripheral:\n apiURL =\n apiURL +\n `${this.currentItem.parentId}/peripheral/${this.currentItem.id}/command`;\n break;\n case NodeKlass.Connector:\n apiURL =\n apiURL +\n `${this.currentItem.parentId}/connector/${this.currentItem.id}/command`;\n break;\n }\n }\n if (this.currentItem.parentKlass === NodeKlass.Relay) {\n switch (this.currentItem.klass) {\n case NodeKlass.Channel:\n apiURL =\n apiURL +\n `${this.gateway.id}/relay/${this.currentItem.parentId}/channel/${this.currentItem.id}/command`;\n break;\n case NodeKlass.Peripheral:\n apiURL =\n apiURL +\n `${this.gateway.id}/relay/${this.currentItem.parentId}/peripheral/${this.currentItem.id}/command`;\n break;\n case NodeKlass.Connector:\n apiURL =\n apiURL +\n `${this.gateway.id}/relay/${this.currentItem.parentId}/connector/${this.currentItem.id}/command`;\n break;\n }\n }\n }\n axios({\n url: apiURL,\n method: 'POST',\n baseURL: this.getAPIBaseUrl,\n data\n })\n .then(response => {\n this.addNotify({\n type: 'info',\n message: 'Command successfully sent...'\n });\n this.closeThisModal();\n })\n .catch(error => {\n const msg: string = 'Command NOT sent: ' + error.message;\n this.addNotify({\n type: 'error',\n message: msg\n });\n // tslint:disable-next-line:no-console\n console.error(error.message);\n });\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommandCenter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommandCenter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CommandCenter.vue?vue&type=template&id=2fa5dfc1&\"\nimport script from \"./CommandCenter.vue?vue&type=script&lang=ts&\"\nexport * from \"./CommandCenter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CommandCenter.vue?vue&type=style&index=0&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { namespace } from 'vuex-class';\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\n\nimport { C3Relay, C3Interface, NodeKlass, C3Node } from '@/types/c3types';\n\nimport C3 from '@/c3';\nimport RouteList from '@/components/partial/RouteList.vue';\nimport ChannelList from '@/components/partial/ChannelList.vue';\nimport NetworkStats from '@/components/partial/NetworkStats.vue';\nimport ConnectorList from '@/components/partial/ConnectorList.vue';\nimport PheripheralList from '@/components/partial/PeripheralList.vue';\nimport CommandCenterModal from '@/components/modals/CommandCenter.vue';\n\nconst C3Module = namespace('c3Module');\n\n@Component({\n components: {\n RouteList,\n ChannelList,\n NetworkStats,\n ConnectorList,\n PheripheralList,\n CommandCenterModal\n }\n})\nexport default class GatewayModal extends Mixins(C3) {\n public mounted(): void {\n (window as any).addEventListener('keydown', this.handleGlobalKeyDown, true);\n }\n\n public beforeDestroy(): void {\n (window as any).removeEventListener(\n 'keydown',\n this.handleGlobalKeyDown,\n true\n );\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Gateway.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Gateway.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Gateway.vue?vue&type=template&id=0b4e8834&\"\nimport script from \"./Gateway.vue?vue&type=script&lang=ts&\"\nexport * from \"./Gateway.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.c3Interface !== undefined)?_c('div',{staticClass:\"c3modal-body\"},[_c('div',{staticClass:\"c3modal-header\",class:{\n 'is-return': !!_vm.c3Interface.isReturnChannel,\n 'has-error': !!_vm.c3Interface.error\n }},[_c('h1',[_c('span',{staticClass:\"capitalize\"},[_vm._v(_vm._s(_vm.c3Interface.klass.toLowerCase())+\" \")]),_vm._v(\"\\n ID: \"+_vm._s(_vm.c3Interface.id || '')+\"\\n \")]),_c('div',{staticClass:\"flex-row\"},[_c('div',{staticClass:\"details\"},[_c('p',[_vm._v(\"\\n Parent\\n \"),_c('span',{staticClass:\"c3link capitalize\"},[_vm._v(\"\\n \"+_vm._s(_vm.c3Interface.parentKlass.toLowerCase())+\" /\\n \"+_vm._s(_vm.c3Interface.parentId)+\"\\n \")])]),_c('p',{staticClass:\"capitalize\"},[_vm._v(\"\\n \"+_vm._s(_vm.c3Interface.klass.toLowerCase())+\" Type\\n \"),_c('span',[_vm._v(\"\\n \"+_vm._s(_vm.interfaceTypeName(_vm.c3Interface))+\"\\n \")])]),_c('p',[_vm._v(\"\\n Jitter [min/max]\\n \"),_c('span',[_vm._v(\"\\n \"+_vm._s(_vm.getInterfaceJitter)+\"\\n \")])])]),_c('div',{staticClass:\"actions\"},[(_vm.showRelayDropdown)?_c('span',{staticClass:\"c3modal-more-btn icon more\"},[_vm._v(\"\\n INTERFACE OPTIONS\\n \")]):_vm._e(),_c('ul',{staticClass:\"c3modal-menu\"},[_c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showNewRelayButton),expression:\"showNewRelayButton\"}],staticClass:\"c3modal-menu-item\",on:{\"click\":function($event){_vm.openModal(_vm.c3Interface.id, 'CREATE_RELAY', _vm.generateOprions())}}},[_vm._v(\"\\n New Relay\\n \")]),_c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showConnectRelayButton),expression:\"showConnectRelayButton\"}],staticClass:\"c3modal-menu-item\",on:{\"click\":function($event){_vm.openModal(_vm.c3Interface.uid, 'CONNECT_RELAY', _vm.generateOprions())}}},[_vm._v(\"\\n Connect Relay\\n \")])]),_c('button',{staticClass:\"c3btn c3btn--outline\",on:{\"click\":function($event){return _vm.openModal(_vm.c3Interface.uid, 'COMMAND_CENTER')}}},[_vm._v(\"\\n Command Center\\n \")])])]),(!!_vm.c3Interface.error && _vm.c3Interface.error !== '')?_c('p',{staticClass:\"message-with-icon\"},[_c('span',{staticClass:\"icon warning\"}),_vm._v(\"\\n Error: \"+_vm._s(_vm.c3Interface.error)+\"\\n \")]):_vm._e(),(\n !!_vm.c3Interface.isReturnChannel &&\n _vm.c3Interface.isReturnChannel !== 'false'\n )?_c('p',{staticClass:\"message-with-icon\"},[_c('span',{staticClass:\"icon return\"}),_vm._v(\"\\n This is a Gateway Return Channel (GRC).\\n \")]):_vm._e(),(\n !!_vm.c3Interface.isNegotiationChannel &&\n _vm.c3Interface.isNegotiationChannel !== 'false'\n )?_c('p',{staticClass:\"message-with-icon\"},[_c('span',{staticClass:\"icon exclamation\"}),_vm._v(\"\\n This is a Negotiation Channel.\\n \")]):_vm._e()]),_c('div',{staticClass:\"c3modal-details\"},[(_vm.c3Interface.propertiesText !== '')?[_c('h1',[_vm._v(\"Properties\")]),_c('pre',{staticClass:\"c3command\"},[_vm._v(_vm._s(_vm.c3Interface.propertiesText))])]:_vm._e()],2)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { namespace } from 'vuex-class';\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\n\nimport { Notify } from '@/store/NotifyModule';\nimport { GetInterfaceFn, GetNodeKlassFn, GetRelayFn } from '@/store/C3Module';\nimport {\n C3Interface,\n C3Gateway,\n C3Relay,\n NodeKlass,\n C3Node,\n C3FieldDefault,\n C3CommandCenterOptions,\n SourceOptions,\n nullNode\n} from '@/types/c3types';\n\nimport C3 from '@/c3';\n\nconst nodeKlass = NodeKlass;\nconst C3Module = namespace('c3Module');\n\n@Component\nexport default class InterfaceModal extends Mixins(C3) {\n @Prop() public targetId!: string;\n\n @C3Module.Getter public getRelay!: GetRelayFn;\n @C3Module.Getter public getInterface!: GetInterfaceFn;\n @C3Module.Getter public getNodeKlass!: GetNodeKlassFn;\n\n get c3Interface() {\n const target = this.getInterface(this.targetId);\n if (!target) {\n this.closeThisModal();\n }\n return target;\n }\n\n get showRelayDropdown() {\n return this.showConnectRelayButton || this.showNewRelayButton;\n }\n\n get showConnectRelayButton() {\n return this.showButtons();\n }\n\n get showNewRelayButton() {\n return this.showButtons();\n }\n\n public showButtons() {\n if (this.isReturnChannel() || !this.isChannel()) {\n return false;\n }\n return true;\n }\n\n get getInterfaceJitter() {\n if (this.c3Interface) {\n return this.c3Interface.propertiesText.jitter;\n }\n return '[N/A, N/A]';\n }\n\n public isChannel(): boolean {\n if (!!this.c3Interface) {\n return this.c3Interface.klass === NodeKlass.Channel;\n }\n return false;\n }\n\n public isReturnChannel(): boolean {\n if (!!this.c3Interface) {\n return this.c3Interface.isReturnChannel === true;\n }\n return false;\n }\n\n public isNegotiationChannel(): boolean {\n if (!!this.c3Interface) {\n return this.c3Interface.isNegotiationChannel === true;\n }\n return false;\n }\n\n public getArguments(node: C3Node = nullNode): any {\n if (this.isChannel()) {\n if (!!node.propertiesText && !!node.propertiesText.arguments) {\n return JSON.parse(JSON.stringify(node.propertiesText.arguments));\n }\n }\n return [];\n }\n\n public getArgumentsAttributes(interfaceAguments: any): any {\n if (Array.isArray(interfaceAguments[0])) {\n return interfaceAguments[0];\n }\n return [];\n }\n\n public getPropertiesArguments(interfaceAguments: any): C3FieldDefault[] {\n const propertiesAurguments: C3FieldDefault[] = [];\n\n Object.values(interfaceAguments).forEach(\n (objectOrArray: C3FieldDefault | any) => {\n if (!Array.isArray(objectOrArray)) {\n propertiesAurguments.push(objectOrArray);\n }\n }\n );\n\n return propertiesAurguments;\n }\n\n public getInterfaceParentId(): string {\n if (!!this.c3Interface && !!this.c3Interface.parentId) {\n return this.c3Interface.parentId;\n }\n return '';\n }\n\n public generateSourceOptions(): SourceOptions {\n return {\n relay: this.getRelay(this.getInterfaceParentId()),\n interface: this.c3Interface\n };\n }\n\n public changeInputOutputIDs(attributes: any) {\n let inputId = {\n name: '',\n type: '',\n value: ''\n };\n\n let outputId = {\n name: '',\n type: '',\n value: ''\n };\n\n let tmp = '';\n\n if (!!attributes.length) {\n inputId =\n attributes.find((a: C3FieldDefault) => {\n return a.name === 'Input ID';\n }) || '';\n outputId =\n attributes.find((a: C3FieldDefault) => {\n return a.name === 'Output ID';\n }) || '';\n }\n\n tmp = outputId.value;\n outputId.value = inputId.value;\n inputId.value = tmp;\n\n return attributes;\n }\n\n public isNormalChannel(): boolean {\n const argumentsString = JSON.stringify(this.getArguments(this.c3Interface));\n\n return (\n !!argumentsString.match(/Input ID/g) &&\n !!argumentsString.match(/Output ID/g)\n );\n }\n\n public generateCommandCenterArguments(): C3FieldDefault[] {\n const optionsArguments: C3FieldDefault[] = [];\n\n let attributes = this.getArgumentsAttributes(\n this.getArguments(this.c3Interface)\n );\n if (attributes.length > 0) {\n attributes = this.changeInputOutputIDs(attributes);\n }\n\n const propertiesArguments = this.getPropertiesArguments(\n this.getArguments(this.c3Interface)\n );\n\n if (!!attributes.length) {\n attributes.forEach((element: C3FieldDefault) => {\n optionsArguments.push(element);\n });\n }\n if (!!propertiesArguments.length) {\n propertiesArguments.forEach((element: C3FieldDefault) => {\n optionsArguments.push(element);\n });\n }\n\n return optionsArguments;\n }\n\n public getPrefix(): string {\n if (this.isNormalChannel()) {\n return 'AddChannel';\n }\n if (this.isNegotiationChannel()) {\n return 'AddNegotiationChannel';\n }\n return '';\n }\n\n public getInterfaceTypeString(): string {\n if (this.c3Interface) {\n return this.interfaceTypeName(this.c3Interface);\n }\n return '';\n }\n\n public generateOprions(): C3CommandCenterOptions {\n return {\n formDefault: {\n prefix: this.getPrefix(),\n interface: this.getInterfaceTypeString(),\n arguments: this.generateCommandCenterArguments()\n },\n source: this.generateSourceOptions()\n };\n }\n\n public mounted(): void {\n (window as any).addEventListener('keydown', this.handleGlobalKeyDown, true);\n }\n\n public beforeDestroy(): void {\n (window as any).removeEventListener(\n 'keydown',\n this.handleGlobalKeyDown,\n true\n );\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Interface.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Interface.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Interface.vue?vue&type=template&id=33bc8b88&scoped=true&\"\nimport script from \"./Interface.vue?vue&type=script&lang=ts&\"\nexport * from \"./Interface.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Interface.vue?vue&type=style&index=0&id=33bc8b88&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"33bc8b88\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3modal-body\"},[_c('div',{staticClass:\"c3modal-details\"},[_c('h1',[_vm._v(\"Relay Setup\")]),_c('p',[_vm._v(\"Please setup a Relay.\")]),_c('Input',{staticClass:\"form-element\",attrs:{\"legend\":\"Name / Auto Generated ID\",\"help\":\"If you do not enter a name an ID will be automatically generated.\"},on:{\"change\":function($event){return _vm.changeName($event, _vm.relayName)}}}),_c('Input',{staticClass:\"form-element\",attrs:{\"legend\":\"Parent Gateway Build ID\",\"value\":_vm.gatewayBuildsId,\"disabled\":true}}),_c('div',{staticClass:\"form-row\"},[_c('Select',{staticClass:\"form-element\",attrs:{\"legend\":\"TargetSuffix\",\"selected\":_vm.selectedTargetSuffix,\"options\":{ dll: 'dll', exe: 'exe', shellcode: 'shellcode'},\"border\":true},on:{\"change\":function($event){return _vm.changeTargetSuffix($event, _vm.targetSuffix)}}}),_c('Select',{staticClass:\"form-element\",attrs:{\"legend\":\"Architecture\",\"selected\":_vm.selectedArchitecture,\"options\":{ x86: 'x86', x64: 'x64' },\"border\":true},on:{\"change\":function($event){return _vm.changeArchitecture($event, _vm.architecture)}}})],1),_c('div',{staticClass:\"c3modal-form\"},[(_vm.donutSelected)?_c('DonutForm',{on:{\"change\":function($event){return _vm.changeDonutForm($event, _vm.formData)}}}):_vm._e()],1),_c('div',{staticClass:\"c3modal-form\"},[_c('h1',[_vm._v(\"Add Command\")]),_c('p',[_vm._v(\"Please Select the first command to the Relay.\")]),_c('CommandCenterModal',{staticClass:\"embeded-modal\",attrs:{\"target-id\":'new',\"embeded\":true,\"options\":_vm.addNewRelayToOptions},on:{\"change\":function($event){return _vm.changeForm($event, _vm.formData)}}})],1),_c('dir',{staticClass:\"flex-row c3modal-actions\"},[_c('button',{staticClass:\"c3btn c3btn--grey\",on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.closeThisModal()}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"c3btn c3btn\",attrs:{\"disabled\":_vm.formIsValid},on:{\"click\":function($event){return _vm.createNewRelay()}}},[_vm._v(\"Create and Download Relay\")])])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"donut-form\"},[_c('h1',[_vm._v(\"Add Command\")]),_c('Select',{staticClass:\"form-element line\",attrs:{\"legend\":\"Format\",\"selected\":_vm.selectedFormat,\"options\":{\n Binary: 'Binary',\n Base64: 'Base64',\n Ruby: 'Ruby',\n C: 'C',\n Python: 'Python',\n Powershell: 'Powershell',\n Csharp: 'Csharp',\n HeX: 'HeX'\n },\"border\":true},on:{\"change\":function($event){return _vm.changeFormat($event, _vm.format)}}}),_c('Select',{staticClass:\"form-element half-line\",attrs:{\"legend\":\"Compress\",\"selected\":_vm.selectedCompress,\"options\":{\n None: 'None',\n Lznt1: 'Lznt1',\n Xpress: 'Xpress',\n Xpress_huff: 'Xpress_huff'\n },\"border\":true},on:{\"change\":function($event){return _vm.changeCompress($event, _vm.compress)}}}),_c('Select',{staticClass:\"form-element half-line\",attrs:{\"legend\":\"Entropy\",\"selected\":_vm.selectedEntropy,\"options\":{\n None: 'None',\n Random: 'Random',\n Default: 'Default'\n },\"border\":true},on:{\"change\":function($event){return _vm.changeEntropy($event, _vm.entropy)}}}),_c('Select',{staticClass:\"form-element half-line\",attrs:{\"legend\":\"ExitOpt\",\"selected\":_vm.selectedExitOpt,\"options\":{\n Exit_thread: 'Exit_thread',\n Exit_process: 'Exit_process'\n },\"border\":true},on:{\"change\":function($event){return _vm.changeExitOpt($event, _vm.exitOpt)}}}),_c('Select',{staticClass:\"form-element half-line\",attrs:{\"legend\":\"Bypass\",\"selected\":_vm.selectedBypass,\"options\":{\n None: 'None',\n Abort: 'Abort',\n Continue: 'Continue'\n },\"border\":true},on:{\"change\":function($event){return _vm.changeBypass($event, _vm.bypass)}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { namespace } from 'vuex-class';\nimport { Component, Prop, Vue } from 'vue-property-decorator';\n\nimport C3 from '@/c3';\nimport Select from '../form/Select.vue';\n\n@Component({\n components: {\n Select\n }\n})\nexport default class DonutForm extends Vue {\n public format: string = 'Binary';\n public compress: string = 'None';\n public entropy: string = 'Default';\n public exitOpt: string = 'Exit_thread';\n public bypass: string = 'None';\n\n get selectedFormat() {\n return this.format;\n }\n\n public changeFormat(a: string): void {\n this.format = a;\n this.emitDonut();\n }\n\n get selectedCompress() {\n return this.compress;\n }\n\n public changeCompress(a: string): void {\n this.compress = a;\n this.emitDonut();\n }\n\n get selectedEntropy() {\n return this.entropy;\n }\n\n public changeEntropy(a: string): void {\n this.entropy = a;\n this.emitDonut();\n }\n\n get selectedExitOpt() {\n return this.exitOpt;\n }\n\n public changeExitOpt(a: string): void {\n this.exitOpt = a;\n this.emitDonut();\n }\n\n get selectedBypass() {\n return this.bypass;\n }\n\n public changeBypass(a: string): void {\n this.bypass = a;\n this.emitDonut();\n }\n\n public emitDonut(): void {\n const donut = {\n format: this.format.toUpperCase(),\n compress: this.compress.toUpperCase(),\n entropy: this.entropy.toUpperCase(),\n exitOpt: this.exitOpt.toUpperCase(),\n bypass: this.bypass.toUpperCase()\n };\n\n this.$emit('change', donut);\n }\n\n public mounted(): void {\n this.emitDonut();\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DonutForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DonutForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DonutForm.vue?vue&type=template&id=140c057e&scoped=true&\"\nimport script from \"./DonutForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./DonutForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DonutForm.vue?vue&type=style&index=0&id=140c057e&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"140c057e\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport axios from 'axios';\nimport { namespace } from 'vuex-class';\nimport { Component, Mixins, Prop } from 'vue-property-decorator';\n\nimport { C3Gateway, NodeKlass, C3CommandCenterOptions } from '@/types/c3types';\nimport {\n GetTypesForInterfaceKlassFn,\n InterfaceItem,\n GetCommandTargetForFn\n} from '@/store/C3Capability';\n\nimport C3 from '@/c3';\nimport Input from '@/components/form/Input.vue';\nimport Select from '@/components/form/Select.vue';\nimport DonutForm from '@/components/partial/DonutForm.vue';\nimport GeneralForm from '@/components/form/GeneralForm.vue';\nimport AddChannelForm from '@/components/form/AddChannelForm.vue';\nimport CommandCenterModal from './CommandCenter.vue';\n\nconst C3Module = namespace('c3Module');\nconst C3Capability = namespace('c3Capability');\nconst C3OptionsModule = namespace('optionsModule');\n\n@Component({\n components: {\n Input,\n Select,\n DonutForm,\n GeneralForm,\n CommandCenterModal\n }\n})\nexport default class CreateRelayModal extends Mixins(C3) {\n @Prop() public options!: C3CommandCenterOptions;\n\n @C3Capability.Getter public getCommandTargetFor!: GetCommandTargetForFn;\n @C3Capability.Getter\n public getTypesForInterfaceKlass!: GetTypesForInterfaceKlassFn;\n\n @C3OptionsModule.Getter public getAPIBaseUrl!: string;\n\n public formData: any = {};\n public relayName: string = '';\n public isValid: boolean = false;\n public targetSuffix: string = 'exe';\n public architecture: string = 'x64';\n public commandGroup: string = 'Relay';\n public commandTarget: string = '';\n public donutSelected: boolean = false;\n public donutFormData: object = {};\n\n get formIsValid() {\n return !this.isValid;\n }\n\n get selectedTargetSuffix() {\n return this.targetSuffix;\n }\n\n get selectedArchitecture() {\n return this.architecture;\n }\n\n get gatewayBuildsId() {\n if (this.gateway.buildId) {\n return this.gateway.buildId;\n }\n return '';\n }\n\n get selectedCommand() {\n if (this.commandTarget !== undefined) {\n return this.commandTarget.split('_')[2];\n }\n return '';\n }\n\n get selectedCommandTarget() {\n if (!this.commandTarget) {\n return this.defaultCommandTarget;\n }\n return this.commandTarget;\n }\n\n get commandTargetOptions() {\n return this.getCommandTargetFor('NewRelayCommandGroup', NodeKlass.Relay);\n }\n\n get selectedCommandGroup() {\n if (!this.commandGroup) {\n return this.commandGroup;\n }\n return '';\n }\n\n get selectedInterface() {\n if (this.commandTarget !== undefined) {\n return this.commandTarget.split('_')[1];\n }\n return '';\n }\n\n get defaultCommandTarget() {\n if (!!this.commandTargetOptions) {\n this.changeCommandTarget(Object.keys(this.commandTargetOptions)[0]);\n return Object.keys(this.commandTargetOptions)[0];\n }\n return '';\n }\n\n get addNewRelayToOptions() {\n return {\n formDefault: this.options.formDefault,\n source: this.options.source,\n targetGroup: 'NewRelayCommandGroup'\n };\n }\n\n public changeCommandTarget(n: string): void {\n this.isValid = true;\n this.commandTarget = n;\n }\n\n public mounted(): void {\n (window as any).addEventListener('keydown', this.handleGlobalKeyDown, true);\n }\n\n public beforeDestroy(): void {\n (window as any).removeEventListener(\n 'keydown',\n this.handleGlobalKeyDown,\n true\n );\n }\n\n public changeName(n: any): void {\n this.relayName = n.value;\n }\n\n public changeForm(data: any): void {\n this.isValid = data.valid;\n this.formData = data.data;\n }\n\n public changeDonutForm(data: any): void {\n this.donutFormData = data;\n }\n\n public changeTargetSuffix(t: string): void {\n this.targetSuffix = t;\n if (this.targetSuffix === 'shellcode') {\n this.donutSelected = true;\n } else {\n this.donutSelected = false;\n }\n }\n\n public changeArchitecture(a: string): void {\n this.architecture = a;\n }\n\n public createNewRelay(): void {\n const data = {\n type: this.selectedTargetSuffix,\n architecture: this.selectedArchitecture,\n parentGatewayBuildId: this.gatewayBuildsId,\n name: this.relayName,\n startupCommands: [this.formData],\n donut: this.donutFormData\n };\n axios({\n url: '/api/build/customize',\n method: 'POST',\n baseURL: this.getAPIBaseUrl,\n data,\n responseType: 'blob'\n })\n .then(response => {\n let fileName = '';\n const blob = new Blob([response.data], { type: response.data.type });\n const contentDisposition = response.headers['content-disposition'];\n const url = window.URL.createObjectURL(blob);\n const link = document.createElement('a');\n\n link.href = url;\n\n if (contentDisposition !== undefined) {\n fileName = contentDisposition\n .split('filename=')[1]\n .split(';')[0]\n .replace(/%20/gi, '-');\n }\n\n if (typeof fileName !== 'string' || fileName === '') {\n fileName = 'relay.exe';\n }\n\n link.href = url;\n link.setAttribute('download', fileName);\n document.body.appendChild(link);\n link.click();\n link.remove();\n window.URL.revokeObjectURL(url);\n\n this.closeThisModal();\n })\n .catch(error => {\n this.addNotify({\n type: 'error',\n message: error.message\n });\n // tslint:disable-next-line:no-console\n console.error(error.message);\n });\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateRelay.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateRelay.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CreateRelay.vue?vue&type=template&id=db9aedba&\"\nimport script from \"./CreateRelay.vue?vue&type=script&lang=ts&\"\nexport * from \"./CreateRelay.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CreateRelay.vue?vue&type=style&index=0&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3modal-body\"},[_c('div',{staticClass:\"c3modal-details\"},[_vm._m(0),_c('p',[_vm._v(\"Please setup a Gateway to begin using c3.\")]),_c('Input',{staticClass:\"form-element\",attrs:{\"legend\":\"Name / Auto Generated ID\",\"help\":\"If you do not enter a name an ID will be automatically generated.\"},on:{\"change\":function($event){return _vm.changeName($event, _vm.gatewayName)}}}),_c('div',{staticClass:\"form-row\"},[_c('Select',{staticClass:\"form-element\",attrs:{\"legend\":\"TargetSuffix\",\"selected\":_vm.selectedTargetSuffix,\"options\":{ exe: 'exe' },\"border\":true},on:{\"change\":function($event){return _vm.changeTargetSuffix($event, _vm.targetSuffix)}}}),_c('Select',{staticClass:\"form-element\",attrs:{\"legend\":\"Architecture\",\"selected\":_vm.selectedArchitecture,\"options\":{ x86: 'x86', x64: 'x64' },\"border\":true},on:{\"change\":function($event){return _vm.changeArchitecture($event, _vm.architecture)}}})],1),_c('dir',{staticClass:\"flex-row c3modal-actions\"},[_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasSelectedGateway !== false),expression:\"hasSelectedGateway !== false\"}],staticClass:\"c3btn c3btn--grey\",on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.closeThisModal()}}},[_vm._v(\"\\n Cancel\\n \")]),_c('button',{staticClass:\"c3btn c3btn pull-right\",on:{\"click\":function($event){return _vm.createNewGateway()}}},[_vm._v(\"\\n Create and download Gateway\\n \")])])],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3modal-title-wrapper\"},[_c('h1',[_vm._v(\"Gateway Setup\")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport axios from 'axios';\nimport { namespace } from 'vuex-class';\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\n\nimport { GatewayHeader } from '@/types/c3types';\n\nimport C3 from '@/c3';\nimport Input from '@/components/form/Input.vue';\nimport Select from '@/components/form/Select.vue';\n\nconst C3Module = namespace('c3Module');\nconst C3OptionsModule = namespace('optionsModule');\n\n@Component({\n components: {\n Input,\n Select\n }\n})\nexport default class CreateGatewayModal extends Mixins(C3) {\n @Prop() public targetId!: string;\n\n @C3Module.Getter public getGateways!: GatewayHeader[];\n\n @C3OptionsModule.Getter public getAPIBaseUrl!: string;\n\n public gatewayName: string = '';\n public targetSuffix: string = 'exe';\n public architecture: string = 'x64';\n\n get selectedTargetSuffix() {\n return this.targetSuffix;\n }\n\n get selectedArchitecture() {\n return this.architecture;\n }\n\n get hasSelectedGateway() {\n return this.getGateways.length > 0;\n }\n\n public mounted(): void {\n (window as any).addEventListener('keydown', this.handleGlobalKeyDown, true);\n }\n\n public beforeDestroy(): void {\n (window as any).removeEventListener(\n 'keydown',\n this.handleGlobalKeyDown,\n true\n );\n }\n\n public changeName(n: any): void {\n this.gatewayName = n.value;\n }\n\n public changeTargetSuffix(t: string): void {\n this.targetSuffix = t;\n }\n\n public changeArchitecture(a: string): void {\n this.architecture = a;\n }\n\n public createNewGateway(): void {\n let apiUrl = `/api/gateway/exe/${this.architecture}`;\n if (this.gatewayName && this.gatewayName !== '') {\n apiUrl = apiUrl + `?name=${this.gatewayName}`;\n }\n axios({\n url: apiUrl,\n method: 'GET',\n baseURL: this.getAPIBaseUrl,\n responseType: 'blob'\n })\n .then(response => {\n const blob = new Blob([response.data], { type: response.data.type });\n const url = window.URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n const contentDisposition = response.headers['content-disposition'];\n let fileName = '';\n\n if (contentDisposition !== undefined) {\n fileName = contentDisposition\n .split('filename=')[1]\n .split(';')[0]\n .replace(/%20/gi, '-');\n }\n\n if (typeof fileName !== 'string' || fileName === '') {\n fileName = 'gateway.exe';\n }\n\n link.href = url;\n link.setAttribute('download', fileName);\n document.body.appendChild(link);\n link.click();\n link.remove();\n window.URL.revokeObjectURL(url);\n\n this.closeThisModal();\n })\n .catch(error => {\n this.addNotify({\n type: 'error',\n message: error.message\n });\n // tslint:disable-next-line:no-console\n console.error(error.message);\n });\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateGateway.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateGateway.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CreateGateway.vue?vue&type=template&id=33874331&\"\nimport script from \"./CreateGateway.vue?vue&type=script&lang=ts&\"\nexport * from \"./CreateGateway.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3modal-body\"},[_c('div',{staticClass:\"c3modal-header\"},[_c('h1',[_vm._v(\"Source Relay & Interface\")]),_c('div',{staticClass:\"flex-row\"},[_c('div',{staticClass:\"details\"},[_c('p',[_vm._v(\"\\n Relay \"),_c('span',[_vm._v(\" \"+_vm._s(_vm.relay.name)+\" / \"+_vm._s(_vm.relay.id))])]),_c('p',[_vm._v(\"\\n Build ID \"),_c('span',[_vm._v(_vm._s(_vm.relay.buildId))])]),_c('p',[_vm._v(\"\\n \"+_vm._s(_vm.c3Interface.klass.toLowerCase())+\" ID\\n \"),_c('span',[_vm._v(_vm._s(_vm.c3Interface.id || ''))])]),_c('p',[_vm._v(\"\\n \"+_vm._s(_vm.c3Interface.klass.toLowerCase())+\" Type\\n \"),_c('span',[_vm._v(_vm._s(_vm.interfaceTypeName(_vm.c3Interface)))])])])])]),_c('div',{staticClass:\"c3modal-details\"},[_c('div',{staticStyle:{\"padding-bottom\":\"24px\"}},[_c('h1',[_vm._v(\"Select target Relay\")]),_c('Select',{staticClass:\"form-element\",attrs:{\"legend\":\"Target Relay\",\"selected\":_vm.selectedRelay,\"options\":_vm.generateRelayList(),\"border\":true},on:{\"change\":function($event){return _vm.changeTargetRelay($event, _vm.targetRelay)}}})],1),_c('div',{staticClass:\"c3modal-form\"},[_c('CommandCenterModal',{staticClass:\"embeded-modal\",attrs:{\"target-id\":_vm.selectedRelay,\"embeded\":false,\"options\":_vm.addNewRelayGroupToOptions},on:{\"change\":function($event){return _vm.changeForm($event, _vm.formData)}}})],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { namespace } from 'vuex-class';\nimport { Component, Mixins, Prop } from 'vue-property-decorator';\n\nimport {\n C3Gateway,\n NodeKlass,\n C3Node,\n C3Relay,\n nullNode\n} from '@/types/c3types';\nimport {\n GetTypesForInterfaceKlassFn,\n InterfaceItem,\n GetCommandTargetForFn\n} from '@/store/C3Capability';\n\nimport C3 from '@/c3';\nimport Input from '@/components/form/Input.vue';\nimport Select from '@/components/form/Select.vue';\nimport GeneralForm from '@/components/form/GeneralForm.vue';\nimport AddChannelForm from '@/components/form/AddChannelForm.vue';\nimport CommandCenterModal from './CommandCenter.vue';\nimport {\n GetRelayFn,\n GetInterfaceFn,\n GetInterfacesForFn\n} from '@/store/C3Module';\n\nconst C3Module = namespace('c3Module');\nconst C3Capability = namespace('c3Capability');\n\n@Component({\n components: {\n Input,\n Select,\n GeneralForm,\n CommandCenterModal\n }\n})\nexport default class ConnectRelayModal extends Mixins(C3) {\n @Prop() public targetId!: string;\n @Prop() public options!: any;\n\n @C3Capability.Getter public getCommandTargetFor!: GetCommandTargetForFn;\n @C3Capability.Getter\n public getTypesForInterfaceKlass!: GetTypesForInterfaceKlassFn;\n\n @C3Module.Getter public getRelays!: C3Node[];\n @C3Module.Getter public getRelay!: GetRelayFn;\n @C3Module.Getter public getInterface!: GetInterfaceFn;\n @C3Module.Getter public getInterfacesFor!: GetInterfacesForFn;\n\n public formData: any = {};\n public isValid: boolean = false;\n public targetRelay: string = '';\n\n get relay() {\n return this.sourceRelay;\n }\n\n get c3Interface() {\n return this.sourceInterface;\n }\n\n get hasOptions() {\n if (this.options) {\n return JSON.stringify(this.options) === '{}' ? false : true;\n }\n return false;\n }\n\n get sourceRelay() {\n if (this.hasOptions) {\n if (!!this.options.source && !!this.options.source.relay) {\n return this.options.source.relay;\n }\n }\n return nullNode;\n }\n\n get sourceInterface() {\n if (this.hasOptions) {\n if (!!this.options.source && !!this.options.source.interface) {\n return this.options.source.interface;\n }\n }\n return nullNode;\n }\n\n // check the form is valid\n get formIsValid() {\n return !this.isValid;\n }\n\n // hold the actual selected relay\n get selectedRelay() {\n return this.targetRelay;\n }\n\n get addNewRelayGroupToOptions() {\n return {\n formDefault: this.options.formDefault,\n source: this.options.source,\n targetGroup: 'NewRelayCommandGroup'\n };\n }\n\n public generateRelayList(): any {\n const selectOptions: any = {};\n let first: string = '';\n let optionsCount = 0;\n const nullLiteral: string = 'null';\n const nodes = this.getRelays;\n nodes.forEach((node, index) => {\n if (node.id !== this.relay.id) {\n optionsCount++;\n selectOptions[node.id] = `${node.id} ${\n node.name ? '- ' + node.name + ' ' : ''\n }`;\n if (first === '') {\n first = node.id;\n }\n }\n });\n if (optionsCount === 0) {\n selectOptions[nullLiteral] = `Nothing to select...`;\n first = nullLiteral;\n }\n // select the first relay if nothing selected yet\n if (this.targetRelay === '') {\n this.targetRelay = first;\n }\n return selectOptions;\n }\n\n get showConnectRelayButton() {\n return true;\n }\n\n public mounted(): void {\n (window as any).addEventListener('keydown', this.handleGlobalKeyDown, true);\n }\n\n public beforeDestroy(): void {\n (window as any).removeEventListener(\n 'keydown',\n this.handleGlobalKeyDown,\n true\n );\n }\n\n public changeForm(data: any): void {\n this.isValid = data.valid;\n this.formData = data.data;\n }\n\n public changeTargetRelay(t: string): void {\n this.targetRelay = t;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectRelays.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectRelays.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ConnectRelays.vue?vue&type=template&id=108a0d73&\"\nimport script from \"./ConnectRelays.vue?vue&type=script&lang=ts&\"\nexport * from \"./ConnectRelays.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ConnectRelays.vue?vue&type=style&index=0&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3modal-body\"},[_c('div',{staticClass:\"c3modal-details\"},[_c('h1',{staticClass:\"c3network-title\"},[_vm._v(\"\\n Network Configuration\\n \")]),_c('div',{staticClass:\"form-row \"},[_c('Input',{key:'c3-url-field',staticClass:\"form-element\",attrs:{\"legend\":\"Url\",\"value\":_vm.c3Url,\"disabled\":false,\"validate\":\"required\",\"name\":\"Url\"},on:{\"change\":function($event){return _vm.setUrl($event, _vm.c3Url)}}})],1),_c('div',{staticClass:\"form-row\"},[_c('Input',{key:'c3-port-field',staticClass:\"form-element\",attrs:{\"legend\":\"Port\",\"value\":_vm.c3Port,\"disabled\":false,\"validate\":\"required|numeric|max_value:65535\",\"name\":\"Port\"},on:{\"change\":function($event){return _vm.setPort($event, _vm.c3Port)}}})],1),_c('dir',{staticClass:\"flex-row c3modal-actions\"},[_c('button',{staticClass:\"c3btn c3btn--grey\",on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.closeThisModal()}}},[_vm._v(\"\\n Cancel\\n \")]),_c('button',{staticClass:\"c3btn c3btn pull-right\",attrs:{\"disabled\":!_vm.isFormValid},on:{\"click\":function($event){return _vm.saveNetworkConfig()}}},[_vm._v(\"\\n Save Confing\\n \")])])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { namespace } from 'vuex-class';\nimport { Component, Mixins } from 'vue-property-decorator';\n\nimport C3 from '@/c3';\nimport { SetBaseURLFn, SetBasePortFn } from '@/store/OptionsModule';\nimport Input from '../form/Input.vue';\n\nconst C3OptionsModule = namespace('optionsModule');\n\n@Component({\n components: {\n Input\n }\n})\nexport default class OptionsModal extends Mixins(C3) {\n @C3OptionsModule.Getter public getAPIUrl!: string;\n @C3OptionsModule.Getter public getAPIPort!: string;\n @C3OptionsModule.Mutation public setBaseURL!: SetBaseURLFn;\n @C3OptionsModule.Mutation public setBasePort!: SetBasePortFn;\n\n public c3Url: string = 'http://localhost';\n public c3UrlIsValid: boolean = true;\n public c3Port: number = 52935;\n public c3PortIsValid: boolean = true;\n\n get getUrl() {\n return this.getAPIUrl;\n }\n\n get getPort() {\n return this.getAPIPort;\n }\n\n public setUrl(url: any) {\n if (url.valid) {\n this.c3UrlIsValid = true;\n this.c3Url = url.value;\n } else {\n this.c3UrlIsValid = false;\n }\n }\n\n public setPort(port: any) {\n if (port.valid) {\n this.c3PortIsValid = true;\n this.c3Port = parseInt(port.value, 10);\n } else {\n this.c3PortIsValid = false;\n }\n }\n\n get isFormValid() {\n return this.c3UrlIsValid && this.c3PortIsValid;\n }\n\n public saveNetworkConfig(): void {\n if (this.isFormValid) {\n this.setBaseURL(this.c3Url);\n this.setBasePort(this.c3Port);\n }\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Options.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Options.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Options.vue?vue&type=template&id=83e21bf8&\"\nimport script from \"./Options.vue?vue&type=script&lang=ts&\"\nexport * from \"./Options.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { namespace } from 'vuex-class';\nimport { Component, Mixins } from 'vue-property-decorator';\n\nimport { NodeKlass } from '@/types/c3types';\nimport { C3Modal } from '@/store/ModalModule';\n\nimport C3 from '@/c3';\nimport RelayModal from '@/components/modals/Relay.vue';\nimport CommandModal from '@/components/modals/Command.vue';\nimport GatewayModal from '@/components/modals/Gateway.vue';\nimport InterfaceModal from '@/components/modals/Interface.vue';\nimport CreateRelayModal from '@/components/modals/CreateRelay.vue';\nimport CommandCenterModal from '@/components/modals/CommandCenter.vue';\nimport CreateGatewayModal from '@/components/modals/CreateGateway.vue';\nimport ConnectRelayModal from '@/components/modals/ConnectRelays.vue';\nimport OptionsModal from '@/components/modals/Options.vue';\n\nconst ModalModule = namespace('modalModule');\n\n@Component({\n components: {\n RelayModal,\n CommandModal,\n GatewayModal,\n OptionsModal,\n InterfaceModal,\n CreateRelayModal,\n ConnectRelayModal,\n CommandCenterModal,\n CreateGatewayModal\n }\n})\nexport default class Modal extends Mixins(C3) {\n @ModalModule.Getter public activeModal!: C3Modal;\n\n get currentModal() {\n return this.activeModal;\n }\n\n get targetUid() {\n return this.activeModal.modalTargetId || '';\n }\n\n public isGateway(): boolean {\n return this.activeModal.modalTarget === NodeKlass.Gateway;\n }\n\n public isRelay(): boolean {\n return this.activeModal.modalTarget === NodeKlass.Relay;\n }\n\n public isChannel(): boolean {\n return this.activeModal.modalTarget === NodeKlass.Channel;\n }\n\n public isPeripheral(): boolean {\n return this.activeModal.modalTarget === NodeKlass.Peripheral;\n }\n\n public isConnector(): boolean {\n return this.activeModal.modalTarget === NodeKlass.Connector;\n }\n\n public isInterface(): boolean {\n return (\n this.activeModal.modalTarget === NodeKlass.Channel ||\n this.activeModal.modalTarget === NodeKlass.Peripheral ||\n this.activeModal.modalTarget === NodeKlass.Connector\n );\n }\n\n public options(): any {\n return this.activeModal.modalOptions;\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Modal.vue?vue&type=template&id=f120f61e&\"\nimport script from \"./Modal.vue?vue&type=script&lang=ts&\"\nexport * from \"./Modal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Modal.vue?vue&type=style&index=0&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3canvas\",class:{ 'c3canvas-fs': _vm.isFullscreen }},[_c('div',{ref:\"c3canvas\",attrs:{\"id\":\"c3canvas\"}}),_c('span',{staticClass:\"c3canvas-fs-btn icon\",class:_vm.fullscreenIcon,on:{\"click\":function($event){_vm.isFullscreen = !_vm.isFullscreen}}}),_c('span',{staticClass:\"c3canvas-more-btn icon more\"}),_c('ul',{staticClass:\"c3canvas-menu\"},[_c('li',{staticClass:\"c3canvas-menu-item\"},[_c('Toggle',{key:\"toggle-tree-view-button\",attrs:{\"legend\":\"Tree View\",\"checked\":_vm.getTreeView,\"disabled\":false},on:{\"change\":_vm.toggleTreeView}})],1),_c('li',{staticClass:\"c3canvas-menu-item\"},[_c('Toggle',{key:\"toggle-interfaces-button\",attrs:{\"legend\":\"Interfaces\",\"checked\":_vm.getInterfaces,\"disabled\":false},on:{\"change\":function($event){return _vm.toggleInterfaces($event)}}})],1),_c('li',{staticClass:\"c3canvas-menu-item\"},[_c('Toggle',{key:\"toggle-labels-button\",attrs:{\"legend\":\"Labels\",\"checked\":_vm.getShowLabels,\"disabled\":false},on:{\"change\":function($event){return _vm.toggleLabels($event)}}})],1),_c('li',{staticClass:\"c3canvas-menu-item\"},[_c('Toggle',{key:\"toggle-physics-button\",attrs:{\"legend\":\"Physics\",\"checked\":_vm.getPhysics,\"disabled\":false},on:{\"change\":function($event){return _vm.togglePhysics($event)}}})],1),_c('li',{staticClass:\"c3canvas-menu-item\"},[_c('Toggle',{key:\"toggle-smooth-edges\",attrs:{\"legend\":\"Smooth Edges\",\"checked\":_vm.getSmoothEdges,\"disabled\":false},on:{\"change\":function($event){return _vm.toggleSmoothEdges($event)}}})],1),_c('li',{staticClass:\"c3canvas-menu-item\",on:{\"click\":_vm.reloadGraph}},[_vm._v(\"Reload Graph\")]),_c('li',{staticClass:\"c3canvas-menu-divider\"}),_c('li',{staticClass:\"c3canvas-menu-item\",on:{\"click\":function($event){return _vm.openModal('', 'CREATE_GATEWAY')}}},[_vm._v(\"\\n New Gateway\\n \")]),_c('li',{staticClass:\"c3canvas-menu-item\",on:{\"click\":function($event){return _vm.openModal('', 'CREATE_RELAY')}}},[_vm._v(\"\\n New Relay\\n \")])]),_vm._m(0)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"progress-bar\"},[_c('div',{staticClass:\"progress-bar-status\",attrs:{\"id\":\"progress-bar-status\"}})])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3checkbox-wrapper\"},[_c('div',{staticClass:\"c3checkbox-row\",on:{\"click\":_vm.clickOnLabel}},[_vm._v(\"\\n \"+_vm._s(_vm.legend)+\"  \\n \"),(_vm.hasHelp)?_c('span',{staticClass:\"icon help\"},[_c('div',{staticClass:\"help-text\"},[_vm._v(_vm._s(_vm.help))])]):_vm._e()]),_c('div',{staticClass:\"c3toggle\",class:{ disabled: _vm.isDisabled }},[_c('input',_vm._b({ref:\"booleanCheckbox\",staticClass:\"c3toggle-input\",attrs:{\"type\":\"checkbox\",\"id\":_vm.inputUID,\"name\":_vm.inputUID,\"disabled\":_vm.disabled},domProps:{\"checked\":_vm.getIsChecked},on:{\"change\":_vm.toogleToggle}},'input',_vm.$attrs,false)),_c('label',{staticClass:\"c3toggle-label\",on:{\"click\":_vm.clickOnLabel}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\n\nimport C3FormElement from '@/components/form/C3FormElement';\n\nimport C3 from '@/c3';\n\n@Component\nexport default class Toggle extends Mixins(C3, C3FormElement) {\n @Prop() public checked!: string;\n\n public isChecked: boolean = this.getIsChecked;\n\n get getIsChecked() {\n if (\n this.checked &&\n typeof this.checked === 'boolean' &&\n this.checked === true\n ) {\n return true;\n }\n return false;\n }\n\n public mounted(): void {\n (this.$refs\n .booleanCheckbox as HTMLInputElement).checked = this.getIsChecked;\n }\n\n // boolean true or false, nothing to validate here\n public toogleToggle(): void {\n this.isChecked = !this.isChecked;\n this.$emit('change', {\n value: this.isChecked === true ? true : false,\n valid: true\n });\n }\n\n public clickOnLabel(): void {\n this.toogleToggle();\n // (this.$refs.booleanCheckbox as HTMLInputElement).checked = this.isChecked;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toggle.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toggle.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Toggle.vue?vue&type=template&id=edfe580a&scoped=true&\"\nimport script from \"./Toggle.vue?vue&type=script&lang=ts&\"\nexport * from \"./Toggle.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Toggle.vue?vue&type=style&index=0&id=edfe580a&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"edfe580a\",\n null\n \n)\n\nexport default component.exports","import { namespace } from 'vuex-class';\nimport { Vue, Component } from 'vue-property-decorator';\nimport { NodeKlass, C3Node, C3Edge, nullNode } from '@/types/c3types';\n\nconst C3Module = namespace('c3Module');\n\n/**\n * Path finding Class for Highlight the path on the graph from the selected node\n * to the gateway\n *\n * @export\n * @class Path\n * @extends {Vue}\n */\n@Component\nexport default class FindThePathToGateway extends Vue {\n @C3Module.Getter public getNodes!: C3Node[];\n @C3Module.Getter public getEdges!: C3Edge[];\n\n private startNode: C3Node = nullNode;\n private paths: string[] = [];\n private nextNode!: C3Node;\n\n get targetNode() {\n return (\n this.getNodes.find(node => {\n return node.klass === NodeKlass.Gateway;\n }) || nullNode\n );\n }\n\n public findPath(nodeId: string) {\n this.setStartNode(nodeId);\n\n this.paths = [];\n\n this.paths.push(this.startNode!.uid);\n\n let iterations = 0;\n\n if (this.hasPathEndpoints()) {\n return [];\n }\n\n while (!!this.startNode && this.startNode.uid !== this.targetNode.uid) {\n // set the next node equal to the current node\n this.nextNode = this.startNode;\n\n // set the next node if the start node is channel\n this.handleNodeChannel();\n\n // set the next node if the start node is connector or pheripheral\n this.handleConnectorAndPeripheral();\n\n // set the next node if the start node is relay\n this.handleRelay();\n\n // set start node to the next node towards the gateway\n this.setStartNode(this.nextNode.uid);\n\n // If something goes wrong, don't let the browser to stuck in an infinite loop.\n iterations++;\n\n // check we found the gateway or accidentaly stuck inside an infinite loop.\n this.checkEndLoop(iterations);\n }\n\n return this.paths;\n }\n\n // find the start node by Id and set it to the startNode\n private setStartNode(nodeId: string): void {\n this.startNode =\n this.getNodes.find(node => {\n return node.uid === nodeId;\n }) || nullNode;\n }\n\n // check booth start end target node has a valid NodeKlass\n private hasPathEndpoints(): boolean {\n return (\n this.startNode.klass === NodeKlass.Undefined ||\n this.targetNode.klass === NodeKlass.Undefined\n );\n }\n\n private handleNodeChannel() {\n return this.isChannel(this.startNode) && this.setNextNodeForChannel();\n }\n\n private handleConnectorAndPeripheral() {\n return (\n this.isStartNodeConnectorOrPeripheral() && this.setNextAndParentNode()\n );\n }\n\n private handleRelay() {\n return this.isStartNodeRelay() && this.setNextNodeForRelay();\n }\n\n // don't let the loop run more than 100 times (possible infinite loop)\n private checkEndLoop(iterations: number) {\n if (iterations > 100) {\n this.paths = [];\n this.setStartNode(this.targetNode.uid);\n }\n }\n\n // get the parent node for the startNode\n private getParentNode(): C3Node {\n return (\n this.getNodes.find(node => {\n return node.uid === this.startNode!.parentId;\n }) || nullNode\n );\n }\n\n private isStartNodeConnectorOrPeripheral(): boolean {\n return (\n this.startNode.klass === NodeKlass.Peripheral ||\n this.startNode.klass === NodeKlass.Connector\n );\n }\n\n private isChannel(node: C3Node): boolean {\n return node.klass === NodeKlass.Channel;\n }\n\n private isStartNodeRelay(): boolean {\n return this.startNode.klass === NodeKlass.Relay;\n }\n\n private isReturnChannel(node: C3Node): boolean {\n return node.isReturnChannel === true;\n }\n\n // find all the neighbours for the channel by the edges\n private getChannelNeighbours(): C3Edge[] {\n return this.getEdges.filter(edge => {\n return (\n edge.to === this.startNode!.uid || edge.from === this.startNode!.uid\n );\n });\n }\n\n // find all the neighbours for the relay by the edges\n private getRelayNeighbours(): C3Edge[] {\n return this.getEdges.filter(edge => {\n return edge.from === this.startNode!.uid;\n });\n }\n\n // look for possible neighbour on the edges by the uid\n // target: Enum ['from', 'to']\n private getPossibeNext(neighbour: C3Edge, target: string): C3Node {\n return (\n this.getNodes.find(node => {\n return node.uid === neighbour[target];\n }) || nullNode\n );\n }\n\n private insertParentNodeToPaths() {\n return (\n this.getParentNode().klass !== NodeKlass.Undefined &&\n this.paths.push(this.nextNode!.uid)\n );\n }\n\n private setNextAndParentNode(): void {\n // The parent is the way to find the gateway\n this.nextNode = this.getParentNode();\n this.insertParentNodeToPaths();\n }\n\n private setAndInsertNextNode(node: C3Node): void {\n // We found the way to the gateway\n this.nextNode = node;\n this.paths.push(node.uid);\n }\n\n // for not return channel the parent is the next node is the next step towards the gateway\n private setNextNodeForChannel(): void {\n if (this.isReturnChannel(this.startNode)) {\n this.setNextNodeForReturnChannel();\n } else {\n this.setNextAndParentNode();\n }\n }\n\n private setNextNodeForReturnChannel(): void {\n // The parent is in the oposite direction as for the normal channel\n // and we using the edge to get the path\n this.getChannelNeighbours().forEach(neighbour => {\n const possibleNext = this.getPossibeNext(neighbour, 'from');\n if (this.isChannel(possibleNext)) {\n this.setAndInsertNextNode(possibleNext);\n }\n });\n }\n\n // for relay we use the edge to found the way to the gateway\n private setNextNodeForRelay(): void {\n this.getRelayNeighbours().forEach(neighbour => {\n const possibleNext = this.getPossibeNext(neighbour, 'to');\n if (this.isReturnChannel(possibleNext)) {\n this.setAndInsertNextNode(possibleNext);\n }\n });\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { namespace } from 'vuex-class';\nimport { VisOptions } from '@/options';\nimport { Component, Watch, Mixins } from 'vue-property-decorator';\nimport { DataSet, DataView, Network, Options } from 'vis';\n\nimport { NodeKlass, C3Node, C3Edge, nullNode } from '@/types/c3types';\nimport { GetNodeKlassFn, FetchC3DataFn } from '@/store/C3Module';\nimport {\n SetOptionslFn,\n SetGraphDataFn,\n GenerateNodesFn,\n GenerateEdgesFn,\n SetOptionFn\n} from '@/store/VisModule';\n\nimport C3 from '@/c3';\nimport Toggle from '@/components/form/Toggle.vue';\nimport FindThePathToGateway from '@/lib/path';\n\nconst C3Module = namespace('c3Module');\nconst VisModule = namespace('visModule');\n\n@Component({\n components: {\n Toggle\n }\n})\nexport default class Canvas extends Mixins(C3, FindThePathToGateway) {\n get fullscreenIcon() {\n return this.isFullscreen ? 'zoomin' : 'fullscreen';\n }\n\n get graphOtions() {\n return this.getOptions;\n }\n\n get graphData() {\n return this.getGrapData;\n }\n\n get getTreeView() {\n return this.graphOtions.layout.hierarchical.enabled;\n }\n\n get getPhysics() {\n return this.graphOtions.physics.enabled;\n }\n\n get getInterfaces() {\n return this.getShowInterfaces;\n }\n\n get getSmoothEdges() {\n return this.isSmooth;\n }\n\n @VisModule.Action public generateNodes!: GenerateNodesFn;\n @VisModule.Action public generateEdges!: GenerateEdgesFn;\n\n @VisModule.Getter public getVisNodes!: any;\n @VisModule.Getter public getVisEdges!: any;\n @VisModule.Getter public getGrapData!: object;\n @VisModule.Getter public getOptions!: Options;\n @VisModule.Getter public getShowInterfaces!: boolean;\n @VisModule.Getter public getShowLabels!: boolean;\n\n @VisModule.Mutation public setPhysics!: SetOptionFn;\n @VisModule.Mutation public setTreeView!: SetOptionFn;\n @VisModule.Mutation public setOptions!: SetOptionslFn;\n @VisModule.Mutation public setSmoothEdge!: SetOptionFn;\n @VisModule.Mutation public setGraphData!: SetGraphDataFn;\n @VisModule.Mutation public setShowInterfaces!: SetOptionFn;\n @VisModule.Mutation public setShowLabels!: SetOptionFn;\n\n @C3Module.Action public fetchGateway!: FetchC3DataFn;\n\n @C3Module.Getter public getNodeKlass!: GetNodeKlassFn;\n\n public container: any = null;\n public isSmooth: boolean = false;\n public isFullscreen: boolean = false;\n public lastClickNodeId: string = '';\n\n public mounted(): void {\n this.createVisCanvas();\n }\n\n public createVisCanvas(): void {\n this.container = this.$refs.c3canvas;\n (window as any).networkc3 = new Network(\n this.container,\n this.getGrapData,\n this.graphOtions\n );\n\n (window as any).networkc3.on('click', (params: any) => {\n const nodeid = (window as any).networkc3.getNodeAt(params.pointer.DOM);\n if (this.lastClickNodeId === nodeid) {\n if (!!nodeid) {\n this.openModal(nodeid, this.nodeKlass(nodeid));\n }\n } else {\n this.lastClickNodeId = nodeid;\n }\n this.deselectNodes();\n this.clearPath();\n if (!!nodeid) {\n this.selectNode(nodeid);\n }\n });\n\n (window as any).networkc3.on('startStabilizing', (params: any) => {\n const progressBarStatus = document.getElementById('progress-bar-status');\n if (progressBarStatus !== null) {\n progressBarStatus.style.width = '1px';\n }\n });\n\n (window as any).networkc3.on('stabilizationProgress', (params: any) => {\n const status = Math.floor(\n params.iterations / this.getOptions.physics.stabilization.updateInterval\n );\n const progressBarStatus = document.getElementById('progress-bar-status');\n if (progressBarStatus !== null) {\n progressBarStatus.style.width = status + '%';\n }\n });\n\n (window as any).networkc3.on('stabilized', (params: any) => {\n const progressBar = document.getElementById('progress-bar-status');\n if (progressBar !== null) {\n progressBar.style.width = '1px';\n }\n });\n }\n\n public nodeKlass(nodeid: string): NodeKlass {\n return this.getNodeKlass(nodeid);\n }\n\n public toggleTreeView(b: any): void {\n this.setTreeView(b.value);\n (window as any).networkc3.setOptions(this.graphOtions);\n this.setGraphData();\n }\n\n public togglePhysics(b: any): void {\n this.setPhysics(b.value);\n (window as any).networkc3.setOptions(this.graphOtions);\n this.setGraphData();\n }\n\n public toggleInterfaces(b: any): void {\n this.setShowInterfaces(b.value);\n this.generateNodes();\n this.generateEdges();\n this.setGraphData();\n }\n\n public toggleLabels(b: any): void {\n this.setShowLabels(b.value);\n this.generateNodes();\n this.generateEdges();\n this.setGraphData();\n }\n\n public toggleSmoothEdges(b: any): void {\n this.isSmooth = b.value;\n this.setSmoothEdge(b.value);\n (window as any).networkc3.setOptions(this.graphOtions);\n this.setGraphData();\n }\n\n public reloadGraph(): void {\n const o = this.graphOtions;\n o.layout.randomSeed = Math.floor(Math.random() * 785496) + 1;\n (window as any).networkc3.setOptions(o);\n this.setGraphData();\n }\n\n public deselectNodes(): void {\n this.getVisNodes.forEach((nodeId: any) => {\n (window as any).networkc3.body.data.nodes.update([\n {\n id: nodeId.id,\n shadow: {\n enabled: false\n }\n }\n ]);\n });\n }\n\n public clearPath(): void {\n this.getVisEdges.forEach((edge: any) => {\n const tmpEdge = (window as any).networkc3.body.data.edges.get(edge.id);\n if (\n (!!tmpEdge.color && Object.keys(tmpEdge.color).length !== 0) ||\n (!!tmpEdge.width && tmpEdge.width !== 1)\n ) {\n (window as any).networkc3.body.data.edges.update([\n {\n id: edge.id,\n color: {},\n width: 1\n }\n ]);\n }\n });\n }\n\n public selectNode(nodeId: string): void {\n (window as any).networkc3.body.data.nodes.update([\n {\n id: nodeId,\n shadow: {\n enabled: true\n }\n }\n ]);\n\n const paths = this.getPathsFromGateway(nodeId);\n this.getVisEdges.forEach((edge: any) => {\n if (!!paths && paths.includes(edge.from) && paths.includes(edge.to)) {\n (window as any).networkc3.body.data.edges.update([\n {\n id: edge.id,\n color: {\n color: '#AB61F6'\n },\n width: 4\n }\n ]);\n }\n });\n }\n\n public getPathsFromGateway(nodeId: string) {\n return this.findPath(nodeId);\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Canvas.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Canvas.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Canvas.vue?vue&type=template&id=1a243834&\"\nimport script from \"./Canvas.vue?vue&type=script&lang=ts&\"\nexport * from \"./Canvas.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Canvas.vue?vue&type=style&index=0&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3footer\"},[_vm._v(\"C3 dashboard - Labs\")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\nimport Vue from 'vue';\nimport { Component } from 'vue-property-decorator';\n\n@Component\nexport default class Footer extends Vue {}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Footer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Footer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Footer.vue?vue&type=template&id=62086585&scoped=true&\"\nimport script from \"./Footer.vue?vue&type=script&lang=ts&\"\nexport * from \"./Footer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Footer.vue?vue&type=style&index=0&id=62086585&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"62086585\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3navbar\"},[_c('img',{staticClass:\"c3navbar-logo\",attrs:{\"alt\":\"C3 logo\",\"src\":require(\"@/assets/logo.svg\")}}),_c('div',{staticClass:\"c3navbar-left\"},[_c('span',{staticClass:\"c3navbar-left--title\"},[_vm._v(\"C3\")])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component } from 'vue-property-decorator';\n\n@Component\nexport default class Navbar extends Vue {}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navbar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navbar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Navbar.vue?vue&type=template&id=5295cdf8&scoped=true&\"\nimport script from \"./Navbar.vue?vue&type=script&lang=ts&\"\nexport * from \"./Navbar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Navbar.vue?vue&type=style&index=0&id=5295cdf8&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5295cdf8\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.hasSelectedGateway)?_c('div',{staticClass:\"c3controll\"},[_c('span',{staticClass:\"c3controll-help icon exclamation\"}),_c('ul',{staticClass:\"c3controll-tabs\"},[_c('li',{class:{ active: _vm.activeIsRelay },on:{\"click\":function($event){return _vm.setActiveTab('relay')}}},[_vm._v(\"\\n Relays\\n \")]),_c('li',{class:{ active: _vm.activeIsInterface },on:{\"click\":function($event){return _vm.setActiveTab('interface')}}},[_vm._v(\"\\n Interfaces\\n \")]),_c('li',{class:{ active: _vm.activeIsCommands },on:{\"click\":function($event){return _vm.setActiveTab('command')}}},[_vm._v(\"\\n Commands\\n \")])]),(_vm.activeIsRelay)?_c('RelaysTab'):_vm._e(),(_vm.activeIsInterface)?_c('InterfacesTab'):_vm._e(),(_vm.activeIsCommands)?_c('CommandsTab'):_vm._e()],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3tab\"},[_c('RelayList',{attrs:{\"show-empty\":true},on:{\"count\":function($event){return _vm.setCount($event)}}}),_c('DataTableFooter',{attrs:{\"results\":_vm.getCount}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.relays.length || _vm.displayEmpty)?_c('div',{staticClass:\"c3InterfaceList\"},[_c('h1',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasTitle),expression:\"hasTitle\"}]},[_vm._v(_vm._s(_vm.title))]),(_vm.relays.length)?[_c('table',{staticClass:\"datatable\"},[_vm._m(0),_c('tbody',_vm._l((_vm.relays),function(relay,index){return _c('tr',{directives:[{name:\"show\",rawName:\"v-show\",value:(index >= _vm.minIndex && index < _vm.maxIndex),expression:\"index >= minIndex && index < maxIndex\"}],key:relay.id,on:{\"click\":function($event){return _vm.openModal(relay.uid, relay.klass)}}},[_c('td',{staticClass:\"c3link\"},[_c('span',{staticClass:\"c3tab-info-dot not-active\",class:{\n 'is-active': !!relay.isActive,\n 'has-error': !!relay.error\n }}),_vm._v(\"\\n \"+_vm._s(relay.id)+\"\\n \")]),_c('td',[_vm._v(_vm._s(relay.name))]),_c('td',[_vm._v(_vm._s(relay.buildId))])])}),0)])]:(_vm.displayEmpty)?[_vm._v(\"\\n No relays found...\\n \")]:_vm._e()],2):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Relay ID\")]),_c('th',[_vm._v(\"Name\")]),_c('th',[_vm._v(\"Build ID\")])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { namespace } from 'vuex-class';\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\n\nimport { NodeKlass, C3Node } from '@/types/c3types';\n\nimport C3 from '@/c3';\nimport Partial from '@/components/partial/Partial';\n\nconst C3Module = namespace('c3Module');\n\n@Component\nexport default class RelayList extends Mixins(C3, Partial) {\n @C3Module.Getter public getRelays!: C3Node[];\n\n get relays() {\n this.$emit('count', this.getRelays.length);\n return this.getRelays;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RelayList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RelayList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RelayList.vue?vue&type=template&id=579275ba&scoped=true&\"\nimport script from \"./RelayList.vue?vue&type=script&lang=ts&\"\nexport * from \"./RelayList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RelayList.vue?vue&type=style&index=0&id=579275ba&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"579275ba\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3tabfooter\"},[_c('div',{staticClass:\"c3tabfooter-info\"},[_vm._v(\"Result: \"+_vm._s(_vm.results))]),_c('div',{staticClass:\"c3tabfooter-action\"},[_vm._v(\"\\n Items per page:\\n \"),_c('Select',{staticStyle:{\"max-width\":\"60px\",\"margin-bottom\":\"0\"},attrs:{\"selected\":_vm.perPage,\"options\":{\n '5': '5',\n '10': '10',\n '25': '25',\n '50': '50',\n '100': '100',\n '1000': 'All'\n },\"border\":false,\"up\":true},on:{\"change\":function($event){return _vm.changePerPage($event, _vm.page)}}})],1),_c('div',{staticClass:\"c3tabfooter-paginator\"},[_c('span',{staticClass:\"c3tabfooter-controll\",on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.prevPage($event)}}},[_vm._v(\"\\n <  \\n \")]),_vm._v(\"\\n Page: \"+_vm._s(_vm.actualPage)+\" of \"+_vm._s(_vm.maxPage)+\"\\n \"),_c('span',{staticClass:\"c3tabfooter-controll\",on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.nextPage($event)}}},[_vm._v(\"\\n   >\\n \")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { namespace } from 'vuex-class';\nimport { Component, Prop, Watch, Mixins } from 'vue-property-decorator';\n\nimport { SetActualPageFn, SetItemPerPageFn } from '@/store/PaginateModule';\n\nimport C3 from '@/c3';\nimport Select from '@/components/form/Select.vue';\n\nconst PaginateModule = namespace('paginateModule');\n\n@Component({\n components: {\n Select\n }\n})\nexport default class DataTableFooter extends Mixins(C3) {\n @Prop() public results!: number;\n\n @PaginateModule.Getter public getActualPage!: number;\n @PaginateModule.Getter public getItemPerPage!: number;\n\n @PaginateModule.Mutation public setActualPage!: SetActualPageFn;\n @PaginateModule.Mutation public setItemPerPage!: SetItemPerPageFn;\n\n public page: string = '5';\n public perPage: string = '5';\n\n public created(): void {\n this.perPage = '' + this.itemPerPage;\n }\n\n public changePerPage(perPageCount: string): void {\n this.perPage = perPageCount;\n this.setItemPerPage(+this.perPage);\n }\n\n public nextPage(): void {\n if (this.actualPage < this.maxPage) {\n this.setActualPage(this.actualPage + 1);\n }\n }\n\n public prevPage(): void {\n if (this.actualPage > 1) {\n this.setActualPage(this.actualPage - 1);\n }\n }\n\n get actualPage() {\n return this.getActualPage;\n }\n\n get itemPerPage() {\n return this.getItemPerPage;\n }\n\n get maxPage() {\n const maxpage: number = Math.ceil(this.results / this.itemPerPage);\n return maxpage === 0 ? 1 : maxpage;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataTableFooter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataTableFooter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DataTableFooter.vue?vue&type=template&id=2eac248e&scoped=true&\"\nimport script from \"./DataTableFooter.vue?vue&type=script&lang=ts&\"\nexport * from \"./DataTableFooter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DataTableFooter.vue?vue&type=style&index=0&id=2eac248e&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2eac248e\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\nimport { namespace } from 'vuex-class';\nimport { Component, Mixins } from 'vue-property-decorator';\n\nimport { C3Node } from '@/types/c3types';\n\nimport C3 from '@/c3';\nimport RelayList from '@/components/partial/RelayList.vue';\nimport DataTableFooter from '@/components/datatables/DataTableFooter.vue';\n\nconst C3Module = namespace('c3Module');\n\n@Component({\n components: {\n RelayList,\n DataTableFooter\n }\n})\nexport default class RelaysTab extends Mixins(C3) {\n @C3Module.Getter public getRelays!: C3Node[];\n\n public rCount: number = 0;\n\n get getCount() {\n return this.rCount;\n }\n\n public setCount(n: number): void {\n this.rCount = n;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Relays.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Relays.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Relays.vue?vue&type=template&id=6fe08944&\"\nimport script from \"./Relays.vue?vue&type=script&lang=ts&\"\nexport * from \"./Relays.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3tab\"},[_c('CommandList',{attrs:{\"show-empty\":true,\"status-filter\":_vm.selectedCommandStatus,\"command-for-filter\":_vm.selectedCommandFor}}),_c('DataTableFooter',{attrs:{\"results\":_vm.getCount}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.commands.length || _vm.displayEmpty)?_c('div',{staticClass:\"c3CommandList\"},[_c('h1',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasTitle),expression:\"hasTitle\"}]},[_vm._v(_vm._s(_vm.title))]),(_vm.commands.length)?[_c('table',{staticClass:\"datatable\"},[_vm._m(0),_c('tbody',_vm._l((_vm.commands),function(c3Command){return _c('tr',{key:c3Command.id,on:{\"click\":function($event){return _vm.openModal(c3Command.id, 'COMMAND')}}},[_c('td',{staticClass:\"c3link\"},[_vm._v(\"\\n \"+_vm._s(c3Command.id)+\"\\n \")]),_c('td',{staticClass:\"command-for\"},[_vm._v(\"\\n \"+_vm._s(_vm.commandType(c3Command).toLowerCase())+\"\\n \")]),_c('td',[_vm._v(\"\\n \"+_vm._s(_vm.commandTypeId(c3Command))+\"\\n \")])])}),0)])]:(_vm.displayEmpty)?[_vm._v(\"\\n No commands found...\\n \")]:_vm._e()],2):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Command ID\")]),_c('th',[_vm._v(\"Command for\")]),_c('th',[_vm._v(\"ID\")])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { namespace } from 'vuex-class';\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\n\nimport { GetNodeKlassFn } from '@/store/C3Module';\nimport {\n NodeKlass,\n C3Node,\n C3Command,\n C3Gateway,\n nullNode\n} from '@/types/c3types';\n\nimport C3 from '@/c3';\nimport Partial from '@/components/partial/Partial';\n\nconst C3CommandModule = namespace('c3CommandModule');\n\n@Component\nexport default class CommandList extends Mixins(C3, Partial) {\n @Prop() public statusFilter!: string;\n @Prop() public commandForFilter!: string;\n\n @C3CommandModule.Getter public getCommands!: C3Command[];\n @C3CommandModule.Getter public getCommandCount!: number;\n\n get commands() {\n let commandsArray = this.getCommands;\n\n if (this.statusFilter === 'COMPLETE') {\n commandsArray = commandsArray.filter((c3Command: C3Command) => {\n return c3Command.isPending === false;\n });\n } else if (this.statusFilter === 'PENDING') {\n commandsArray = commandsArray.filter((c3Command: C3Command) => {\n return c3Command.isPending === true;\n });\n }\n\n if (this.commandForFilter !== 'ALL') {\n commandsArray = commandsArray.filter((c3Command: C3Command) => {\n return this.commandType(c3Command) === this.commandForFilter;\n });\n }\n\n this.$emit('count', commandsArray.length);\n return commandsArray;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommandList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommandList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CommandList.vue?vue&type=template&id=39bf6527&scoped=true&\"\nimport script from \"./CommandList.vue?vue&type=script&lang=ts&\"\nexport * from \"./CommandList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CommandList.vue?vue&type=style&index=0&id=39bf6527&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"39bf6527\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { namespace } from 'vuex-class';\nimport { Component, Mixins, Watch } from 'vue-property-decorator';\n\nimport { C3Node, C3Command } from '@/types/c3types';\n\nimport C3 from '@/c3';\nimport Select from '@/components/form/Select.vue';\nimport CommandList from '@/components/partial/CommandList.vue';\nimport DataTableFooter from '@/components/datatables/DataTableFooter.vue';\nimport { FetchC3CommandFn } from '@/store/C3Command';\nimport { SetActualPageFn } from '@/store/PaginateModule';\n\nconst PaginateModule = namespace('paginateModule');\nconst C3CommandModule = namespace('c3CommandModule');\n\n@Component({\n components: {\n Select,\n CommandList,\n DataTableFooter\n }\n})\nexport default class CommandsTab extends Mixins(C3) {\n @C3CommandModule.Getter public getCommandCount!: number;\n\n @C3CommandModule.Action public fetchCommands!: FetchC3CommandFn;\n\n @PaginateModule.Getter public getActualPage!: number;\n @PaginateModule.Getter public getLastChange!: number;\n @PaginateModule.Getter public getItemPerPage!: number;\n\n @PaginateModule.Mutation public setActualPage!: SetActualPageFn;\n\n // public commandCount: number = 0;\n public commandFor: string = 'ALL';\n public commandStatus: string = 'ALL';\n\n get getCount() {\n return this.getCommandCount;\n }\n\n get selectedCommandFor() {\n return this.commandFor;\n }\n\n get selectedCommandStatus() {\n return this.commandStatus;\n }\n\n // Command count set by the back-end response. No filtering, so the results count won't change.\n // public setCount(count: number): void {\n // this.commandCount = count;\n // }\n\n // If the actual page or item per page change: fetch the command logs\n @Watch('getLastChange')\n public onGetLastChange(value: any, oldValue: any) {\n this.fetchCommands(this.gateway.id);\n }\n\n public selectCommandFor(r: string) {\n this.commandFor = r;\n }\n\n public selectCommandStatus(t: string) {\n this.commandStatus = t;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Commands.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Commands.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Commands.vue?vue&type=template&id=20c40642&\"\nimport script from \"./Commands.vue?vue&type=script&lang=ts&\"\nexport * from \"./Commands.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3tab\"},[_c('div',{staticClass:\"c3tab-filters\"},[_c('Select',{key:\"type-filter\",attrs:{\"legend\":\"Filter by type\",\"selected\":_vm.selectedInterfaceType,\"options\":{\n ALL: 'All',\n CHANNEL: 'Channel',\n PERIPHERAL: 'Peripheral',\n CONNECTOR: 'Connector'\n },\"border\":true,\"up\":false},on:{\"change\":function($event){return _vm.selectInterfaceType($event, _vm.interfaceType)}}}),_c('Select',{key:\"return-channel-filter\",attrs:{\"legend\":\"Filter by Return Channel\",\"selected\":_vm.selectedReturnChannel,\"options\":{ ALL: 'All', YES: 'Yes', NO: 'No' },\"border\":true,\"up\":false,\"disabled\":_vm.isChannelOrAllForDisabled},on:{\"change\":function($event){return _vm.selectReturnChannel($event, _vm.returnChannel)}}}),_c('Select',{key:\"negotiation-channel-filter\",attrs:{\"legend\":\"Filter by Negotiation Channel\",\"selected\":_vm.selectedNegotiationChannel,\"options\":{ ALL: 'All', YES: 'Yes', NO: 'No' },\"border\":true,\"up\":false,\"disabled\":_vm.isChannelOrAllForDisabled},on:{\"change\":function($event){return _vm.selectNegotiationChannel($event, _vm.negotiationChannel)}}})],1),_c('InterfaceList',{attrs:{\"show-empty\":true,\"return-channel-filter\":_vm.selectedReturnChannel,\"negotiation-channel-filter\":_vm.selectedNegotiationChannel,\"interface-type-filter\":_vm.selectedInterfaceType},on:{\"count\":function($event){return _vm.setCount($event)}}}),_c('DataTableFooter',{attrs:{\"results\":_vm.getCount}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.c3Interfaces.length || _vm.displayEmpty)?_c('div',{staticClass:\"c3CommandList\"},[_c('h1',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasTitle),expression:\"hasTitle\"}]},[_vm._v(_vm._s(_vm.title))]),(_vm.c3Interfaces.length)?[_c('table',{staticClass:\"datatable\"},[_vm._m(0),_c('tbody',_vm._l((_vm.c3Interfaces),function(c3Interface,index){return _c('tr',{directives:[{name:\"show\",rawName:\"v-show\",value:(index >= _vm.minIndex && index < _vm.maxIndex),expression:\"index >= minIndex && index < maxIndex\"}],key:c3Interface.uid,on:{\"click\":function($event){return _vm.openModal(c3Interface.uid, c3Interface.klass)}}},[_c('td',{staticClass:\"c3link\"},[_c('span',{staticClass:\"c3tab-info-dot\",class:{\n 'is-return': !!c3Interface.isReturnChannel,\n 'has-error': !!c3Interface.error\n }}),_vm._v(\"\\n \"+_vm._s(c3Interface.id)+\"\\n \")]),_c('td',{staticClass:\"capitalize\"},[_vm._v(_vm._s(c3Interface.klass.toLowerCase()))]),_c('td',[_vm._v(_vm._s(_vm.interfaceTypeName(c3Interface)))]),_c('td',[_vm._v(_vm._s(_vm.interfaceType(c3Interface)))])])}),0)])]:(_vm.displayEmpty)?[_vm._v(\"\\n No interfaces found...\\n \")]:_vm._e()],2):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Interface ID\")]),_c('th',[_vm._v(\"Type\")]),_c('th',[_vm._v(\"Name\")]),_c('th',[_vm._v(\"Channel Type\")])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { namespace } from 'vuex-class';\nimport { Component, Prop, Mixins, Provide } from 'vue-property-decorator';\n\nimport { GetNodeKlassFn, GetInterfacesFn } from '@/store/C3Module';\nimport {\n NodeKlass,\n C3Node,\n C3Command,\n C3Gateway,\n nullNode\n} from '@/types/c3types';\n\nimport C3 from '@/c3';\nimport Partial from '@/components/partial/Partial';\n\nconst C3Module = namespace('c3Module');\n\n@Component\nexport default class InterfaceList extends Mixins(C3, Partial) {\n @Prop() public returnChannelFilter!: string;\n @Prop() public interfaceTypeFilter!: string;\n @Prop() public negotiationChannelFilter!: string;\n\n @C3Module.Getter public getCommands!: C3Command[];\n @C3Module.Getter public getInterfaces!: GetInterfacesFn;\n\n get c3Interfaces() {\n let interfaces = [];\n if (this.interfaceTypeFilter === 'ALL') {\n interfaces = this.getInterfaces();\n } else {\n interfaces = this.getInterfaces([this.interfaceTypeFilter as NodeKlass]);\n }\n\n if (this.returnChannelFilter === 'YES') {\n interfaces = interfaces.filter((c3Node: C3Node) => {\n return !!c3Node.isReturnChannel;\n });\n } else if (this.returnChannelFilter === 'NO') {\n interfaces = interfaces.filter((c3Node: C3Node) => {\n return !c3Node.isReturnChannel;\n });\n }\n\n if (this.negotiationChannelFilter === 'YES') {\n interfaces = interfaces.filter((c3Node: C3Node) => {\n return !!c3Node.isNegotiationChannel;\n });\n } else if (this.negotiationChannelFilter === 'NO') {\n interfaces = interfaces.filter((c3Node: C3Node) => {\n return !c3Node.isNegotiationChannel;\n });\n }\n\n this.$emit('count', interfaces.length);\n return interfaces;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InterfaceList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InterfaceList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InterfaceList.vue?vue&type=template&id=f8188e22&scoped=true&\"\nimport script from \"./InterfaceList.vue?vue&type=script&lang=ts&\"\nexport * from \"./InterfaceList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InterfaceList.vue?vue&type=style&index=0&id=f8188e22&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f8188e22\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { namespace } from 'vuex-class';\nimport { Component, Mixins } from 'vue-property-decorator';\n\nimport { c3Module, GetInterfacesFn } from '@/store/C3Module';\nimport { C3Interface, NodeKlass, C3Node } from '@/types/c3types';\n\nimport C3 from '@/c3';\nimport Select from '@/components/form/Select.vue';\nimport InterfaceList from '@/components/partial/InterfaceList.vue';\nimport DataTableFooter from '@/components/datatables/DataTableFooter.vue';\n\nconst C3Module = namespace('c3Module');\n\n@Component({\n components: {\n Select,\n InterfaceList,\n DataTableFooter\n }\n})\nexport default class InterfacesTab extends Mixins(C3) {\n public iCount = 0;\n public interfaceByType: string = 'ALL';\n public returnChannel: string = 'ALL';\n public negotiationChannel: string = 'ALL';\n\n get getCount() {\n return this.iCount;\n }\n\n get selectedInterfaceType() {\n return this.interfaceByType;\n }\n\n get selectedReturnChannel() {\n return this.returnChannel;\n }\n\n get selectedNegotiationChannel() {\n return this.negotiationChannel;\n }\n\n get isChannelOrAllForDisabled() {\n const isChannel =\n this.selectedInterfaceType === 'ALL' ||\n this.selectedInterfaceType === 'CHANNEL';\n if (!isChannel) {\n this.selectReturnChannel('NO');\n this.selectNegotiationChannel('NO');\n }\n return isChannel ? false : true;\n }\n\n public setCount(emitedCountNumber: number): void {\n this.iCount = emitedCountNumber;\n }\n\n public selectInterfaceType(newtype: string) {\n if (\n (this.interfaceByType === 'PERIPHERAL' ||\n this.interfaceByType === 'CONNECTOR') &&\n (newtype === 'ALL' || newtype === 'CHANNEL')\n ) {\n this.selectReturnChannel('ALL');\n this.selectNegotiationChannel('ALL');\n }\n this.interfaceByType = newtype;\n }\n\n public selectReturnChannel(filterReturnChannel: string) {\n this.returnChannel = filterReturnChannel;\n }\n\n public selectNegotiationChannel(filterNegotiationChannel: string) {\n this.negotiationChannel = filterNegotiationChannel;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Interfaces.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Interfaces.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Interfaces.vue?vue&type=template&id=eda49f72&\"\nimport script from \"./Interfaces.vue?vue&type=script&lang=ts&\"\nexport * from \"./Interfaces.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { namespace } from 'vuex-class';\nimport { Component, Mixins } from 'vue-property-decorator';\n\nimport { SetActualPageFn } from '@/store/PaginateModule';\n\nimport C3 from '@/c3';\nimport RelaysTab from '@/components/datatables/Relays.vue';\nimport CommandsTab from '@/components/datatables/Commands.vue';\nimport InterfacesTab from '@/components/datatables/Interfaces.vue';\n\nconst C3Module = namespace('c3Module');\nconst PaginateModule = namespace('paginateModule');\n\n@Component({\n components: {\n RelaysTab,\n CommandsTab,\n InterfacesTab\n }\n})\nexport default class Controll extends Mixins(C3) {\n @PaginateModule.Mutation public setActualPage!: SetActualPageFn;\n\n @C3Module.Getter public hasGatewaySelected!: boolean;\n\n public activeTab: string = 'relay';\n\n get activeIsRelay() {\n return this.activeTab === 'relay';\n }\n\n get activeIsInterface() {\n return this.activeTab === 'interface';\n }\n\n get activeIsCommands() {\n return this.activeTab === 'command';\n }\n\n get hasSelectedGateway() {\n return this.hasGatewaySelected;\n }\n\n public setActiveTab(s: string): void {\n this.setActualPage(1);\n this.activeTab = s;\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Controll.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Controll.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Controll.vue?vue&type=template&id=31097cf9&\"\nimport script from \"./Controll.vue?vue&type=script&lang=ts&\"\nexport * from \"./Controll.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Controll.vue?vue&type=style&index=0&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3side\"},[_c('div',{staticClass:\"c3side-title-wrapper\"},[_c('h1',{staticClass:\"c3side-title\"},[_vm._v(\"Network\")]),_c('span',{staticClass:\"c3side-config-link\",on:{\"click\":function($event){return _vm.openModal('', 'OPTIONS')}}},[_vm._v(\"EDIT CONFIG\")])]),_c('div',{staticClass:\"c3side-body\"},[_c('NetworkStats'),_c('div',{staticClass:\"c3side-refresh-wrapper\"},[_c('span',{staticClass:\"c3side-refres-title\"},[_vm._v(\"\\n Refresh Rate\\n \")]),_c('Select',{staticClass:\"c3site-refresh-dropdown\",staticStyle:{\"margin-bottom\":\"0\"},attrs:{\"selected\":_vm.selectedRefreshRate,\"options\":_vm.refreshRates(),\"border\":false},on:{\"change\":function($event){return _vm.setRefreshRate($event, _vm.refreshRate)}}})],1),_c('Toggle',{key:\"toggle-auto-update-button\",attrs:{\"legend\":\"Auto Update\",\"name\":\"autoUpdate\",\"checked\":_vm.getAutoUpdateEnabled,\"help\":\"Auto Update checks for network changes automatically,\\n this may result in live updated to the graph and data tables when enabled\",\"disabled\":false},on:{\"change\":function($event){return _vm.toggleAutoUpdate($event)}}}),_c('div',{staticClass:\"c3btn-group\"},[_c('button',{staticClass:\"c3btn c3btn--grey\",on:{\"click\":function($event){return _vm.openModal('', 'CREATE_GATEWAY')}}},[_vm._v(\"\\n New Gateway\\n \")])])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { namespace } from 'vuex-class';\nimport { Component, Mixins } from 'vue-property-decorator';\n\nimport { GetInterfacesFn } from '@/store/C3Module';\nimport { SetAutoUpdateEnabledFn } from '@/store/VisModule';\nimport { GatewayHeader, NodeKlass, C3Node } from '@/types/c3types';\n\nimport C3 from '@/c3';\nimport Toggle from '@/components/form/Toggle.vue';\nimport NetworkStats from '@/components/partial/NetworkStats.vue';\nimport Select from '@/components/form/Select.vue';\nimport { SetRefreshIntervalFn } from '@/store/OptionsModule';\n\nconst C3Module = namespace('c3Module');\nconst VisModule = namespace('visModule');\nconst C3OptionsModule = namespace('optionsModule');\n\n@Component({\n components: {\n Toggle,\n Select,\n NetworkStats\n }\n})\nexport default class SideMenu extends Mixins(C3) {\n @VisModule.Getter public getAutoUpdateEnabled!: boolean;\n @VisModule.Mutation public setAutoUpdateEnabled!: SetAutoUpdateEnabledFn;\n\n @C3OptionsModule.Getter public getRefreshInterval!: number;\n @C3OptionsModule.Mutation public setRefreshInterval!: SetRefreshIntervalFn;\n\n public refreshRate: string = '2';\n\n get getAutoUpdate() {\n return this.getAutoUpdateEnabled;\n }\n\n public toggleAutoUpdate(d: any): void {\n this.setAutoUpdateEnabled(d.value);\n }\n\n get selectedRefreshRate() {\n return this.refreshRate;\n }\n\n public setRefreshRate(rate: any) {\n this.refreshRate = rate;\n this.setRefreshInterval(parseInt(rate, 10) * 1000);\n }\n\n private refreshRates() {\n return {\n 1: '1 second',\n 2: '2 seconds',\n 5: '5 seconds',\n 10: '10 seconds',\n 20: '20 seconds',\n 30: '30 seconds',\n 60: '1 minute',\n 120: '2 minutes',\n 300: '5 minutes',\n 600: '10 minutes',\n 1800: '30 minutes',\n 3600: '1 hour'\n };\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SideMenu.vue?vue&type=template&id=6cd95e5d&scoped=true&\"\nimport script from \"./SideMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./SideMenu.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SideMenu.vue?vue&type=style&index=0&id=6cd95e5d&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6cd95e5d\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3gateway\"},[_vm._m(0),_c('SelectGatewayForm')],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3gateway-row\"},[_c('span',{staticClass:\"c3gateway-title\"},[_vm._v(\"\\n Gateway Selection\\n \")])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3gateway-row\"},[_c('Select',{attrs:{\"legend\":\"Gateways\",\"selected\":_vm.selectedGateway,\"options\":_vm.gateways,\"border\":true,\"up\":false},on:{\"change\":function($event){return _vm.selectGateway($event, _vm.activeGateway)}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { namespace } from 'vuex-class';\nimport { Component, Mixins } from 'vue-property-decorator';\n\nimport { FetchC3DataFn } from '@/store/C3Module';\nimport { C3Relay, C3Interface, GatewayHeader } from '@/types/c3types';\n\nimport C3 from '@/c3';\nimport Select from '@/components/form/Select.vue';\n\nconst C3Module = namespace('c3Module');\n\n@Component({\n components: {\n Select\n }\n})\nexport default class SelectGatewayForm extends Mixins(C3) {\n @C3Module.Action public fetchGateway!: FetchC3DataFn;\n\n @C3Module.Getter public getGateways!: GatewayHeader[];\n\n public activeGateway: string = '';\n\n get selectedGateway() {\n return this.activeGateway;\n }\n\n get gateways() {\n const gateways: GatewayHeader[] = this.getGateways;\n const g: any = {};\n\n gateways.forEach((gateway: GatewayHeader, index: number) => {\n g[gateway.agentId] = `${gateway.name} - ${gateway.agentId}`;\n });\n\n if (gateways.length > 0 && this.selectedGateway === '') {\n this.activeGateway = gateways[0].agentId;\n this.fetchGateway({ gatewayId: this.selectedGateway });\n }\n return g;\n }\n\n public selectGateway(id: string): void {\n this.activeGateway = id;\n this.changeGateway();\n this.addNotify({\n type: 'info',\n message: `Gateway [${this.selectedGateway}] selected...`\n });\n }\n\n public changeGateway(): void {\n this.fetchGateway({ gatewayId: this.selectedGateway });\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectGatewayForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectGatewayForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SelectGatewayForm.vue?vue&type=template&id=49ef2de9&scoped=true&\"\nimport script from \"./SelectGatewayForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./SelectGatewayForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SelectGatewayForm.vue?vue&type=style&index=0&id=49ef2de9&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"49ef2de9\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Mixins } from 'vue-property-decorator';\n\nimport C3 from '@/c3';\nimport SelectGatewayForm from '@/components/form/SelectGatewayForm.vue';\n\n@Component({\n components: {\n SelectGatewayForm\n }\n})\nexport default class GatewayForm extends Mixins(C3) {}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GatewayForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GatewayForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GatewayForm.vue?vue&type=template&id=0c9ae31e&\"\nimport script from \"./GatewayForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./GatewayForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GatewayForm.vue?vue&type=style&index=0&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition-group',{staticClass:\"c3notify\",attrs:{\"name\":\"slide\",\"tag\":\"ul\"}},_vm._l((_vm.notifies),function(notify){return _c('li',{key:notify.id,class:'c3notify-' + notify.type,staticStyle:{\"right\":\"0\"}},[(notify.title)?_c('h1',[_vm._v(_vm._s(notify.title))]):_vm._e(),_c('p',[_vm._v(_vm._s(notify.message))]),_c('span',{staticClass:\"c3notify-close icon close\",on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.deleteNotify(notify.id)}}})])}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { namespace } from 'vuex-class';\nimport { Component, Mixins } from 'vue-property-decorator';\n\nimport { Notify, RemoveNotifyFn } from '@/store/NotifyModule';\n\nconst NotifyModule = namespace('notifyModule');\n\n@Component\nexport default class Notification extends Vue {\n @NotifyModule.Getter public getNotifies!: Notify[];\n\n @NotifyModule.Mutation public removeNotify!: RemoveNotifyFn;\n\n get notifies() {\n return this.getNotifies;\n }\n\n public deleteNotify(id: string): void {\n this.removeNotify(id);\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notification.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notification.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Notification.vue?vue&type=template&id=749b9749&\"\nimport script from \"./Notification.vue?vue&type=script&lang=ts&\"\nexport * from \"./Notification.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Notification.vue?vue&type=style&index=0&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport { Component, Watch } from 'vue-property-decorator';\nimport { State, Getter, Action, Mutation, namespace } from 'vuex-class';\n\nimport { Func } from '@/types/Func';\nimport { FetchC3DataFn } from './store/C3Module';\nimport { FetchC3CommandFn } from './store/C3Command';\nimport { gateway } from '../tests/unit/store/mockdata';\nimport { SetActualPageFn } from '@/store/PaginateModule';\nimport { GatewayHeader, C3Node, nullNode, NodeKlass } from '@/types/c3types';\n\nimport Modal from '@/components/Modal.vue';\nimport Canvas from '@/components/Canvas.vue';\nimport Footer from '@/components/Footer.vue';\nimport Navbar from '@/components/Navbar.vue';\nimport Controll from '@/components/Controll.vue';\nimport SideMenu from '@/components/SideMenu.vue';\nimport GatewayForm from '@/components/GatewayForm.vue';\nimport Notification from '@/components/Notification.vue';\nimport CreateGatewayModal from '@/components/modals/CreateGateway.vue';\n\nconst C3Module = namespace('c3Module');\nconst VisModule = namespace('visModule');\nconst PaginateModule = namespace('paginateModule');\nconst C3CommandModule = namespace('c3CommandModule');\nconst C3OptionsModule = namespace('optionsModule');\n\n@Component({\n components: {\n Navbar,\n GatewayForm,\n Canvas,\n Controll,\n SideMenu,\n Footer,\n Modal,\n Notification,\n CreateGatewayModal\n }\n})\nexport default class App extends Vue {\n @PaginateModule.Mutation public setActualPage!: SetActualPageFn;\n\n @C3Module.Action public fetchGateways!: Func;\n @C3Module.Action public fetchGateway!: FetchC3DataFn;\n @C3Module.Action public fetchCapability!: FetchC3DataFn;\n\n @C3Module.Getter public getGateway!: C3Node;\n @C3Module.Getter public getGateways!: GatewayHeader[];\n\n @VisModule.Action public generateNodes!: Func;\n\n @VisModule.Getter public getGrapData!: object;\n @VisModule.Getter public getAutoUpdateEnabled!: boolean;\n\n @C3CommandModule.Action public fetchCommands!: FetchC3CommandFn;\n\n @C3OptionsModule.Getter public getRefreshInterval!: number;\n\n public setTime: any;\n\n get gateway() {\n if (this.getGateway === undefined) {\n return nullNode;\n }\n\n return this.getGateway;\n }\n\n get hasSelectedGateway() {\n return this.getGateways.length > 0;\n }\n\n get refreshRate() {\n return this.getRefreshInterval;\n }\n\n public mounted(): void {\n this.updateData();\n\n this.setTime = setInterval(this.updateData, this.refreshRate);\n }\n\n public destroy(): void {\n clearInterval(this.setTime);\n }\n\n @Watch('getRefreshInterval')\n public setNewRefreshRate(value: any, oldValue: any) {\n clearInterval(this.setTime);\n this.setTime = setInterval(this.updateData, this.refreshRate);\n }\n\n @Watch('getGrapData')\n public onGetGrapDataChange(value: any, oldValue: any) {\n if ((window as any).networkc3 !== undefined) {\n (window as any).networkc3.setData(this.getGrapData);\n }\n this.fetchCommands(this.gateway.id);\n this.fetchCapability({ gatewayId: this.gateway.id });\n }\n\n public updateData(): void {\n if (this.getAutoUpdateEnabled === true) {\n this.fetchGateways();\n if (this.gateway && this.gateway.klass !== NodeKlass.Undefined) {\n this.fetchGateway({ gatewayId: this.gateway.id });\n }\n }\n }\n}\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--13-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--13-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=739d8e11&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { Module, GetterTree, MutationTree, ActionTree } from 'vuex';\n\nimport md5 from 'md5';\nimport axios from 'axios';\nimport { RootState } from '@/types/store/RootState';\nimport {\n C3State,\n C3Relay,\n C3Interface,\n C3Gateway,\n GatewayHeader,\n NodeKlass,\n C3Node,\n C3Edge,\n FetchData,\n C3Command,\n C3Route,\n C3RelayTime\n} from '@/types/c3types';\n\nconst namespaced: boolean = true;\n// State\n\nexport const state: C3State = {\n gateways: [],\n gateway: null,\n nodes: [],\n edges: [],\n relayTimestamps: [],\n mustRefresh: false,\n lastGetHash: ''\n};\n\n// Getters\n\nexport type GetGatewayFn = () => C3Node | undefined;\nexport type GetRelayFn = (id: string) => C3Node | undefined;\nexport type GetInterfaceFn = (uid: string) => C3Node | undefined;\nexport type GetInterfacesFn = (nodeKlass?: NodeKlass[]) => C3Node[];\nexport type GetInterfacesForFn = (\n nodeKlass: NodeKlass | NodeKlass[],\n parentId: string | null\n) => C3Node[];\nexport type GetNodeKlassFn = (uid: string) => NodeKlass;\nexport type GetCommandFn = (id: string) => C3Command | undefined;\nexport type GetRelayRoutesFn = (id: string) => C3Route[];\n\nexport const getters: GetterTree = {\n getNodes(c3State): C3Node[] {\n return c3State.nodes;\n },\n\n getEdges(c3State): C3Edge[] {\n return c3State.edges;\n },\n\n // return gateways agentIds\n getGateways(c3State): GatewayHeader[] {\n return c3State.gateways;\n },\n\n // return the selected gateway\n getGateway(c3State): C3Node | undefined {\n return c3State.nodes.find(node => {\n return node.klass === NodeKlass.Gateway;\n });\n },\n\n hasGatewaySelected(c3State): boolean {\n if (c3State.gateway) {\n return true;\n }\n return false;\n },\n\n // return all relays from the selected gateway\n getRelays(c3State): C3Node[] {\n return c3State.nodes.filter(node => {\n return node.klass === NodeKlass.Relay;\n });\n },\n\n getRelay: c3State => (id: string): C3Node | undefined => {\n return c3State.nodes.find(node => {\n return node.id === id && node.klass === NodeKlass.Relay;\n });\n },\n\n getGatewayRoutes(c3State): C3Route[] {\n if (c3State.gateway) {\n return c3State.gateway.routes;\n }\n return [];\n },\n\n getRelayRoutes: c3State => (id: string): C3Route[] => {\n if (!!c3State.gateway) {\n const relay = c3State.gateway.relays.find(target => {\n return target.agentId === id;\n });\n if (!!relay) {\n return relay.routes;\n }\n }\n return [];\n },\n\n getInterface: c3State => (uid: string): C3Node | undefined => {\n if (uid === 'new') {\n return {\n uid: 'new',\n klass: NodeKlass.Relay,\n id: 'new',\n buildId: '',\n name: 'new',\n pending: true,\n isActive: false,\n type: -1,\n error: null,\n parentId: null,\n parentKlass: NodeKlass.Gateway,\n initialCommand: {},\n timestamp: Math.floor(Date.now() / 1000)\n };\n }\n\n const c = c3State.nodes.find(node => {\n return node.uid === uid;\n });\n return c3State.nodes.find(node => {\n return node.uid === uid;\n });\n },\n\n getInterfaces: c3State => (\n nodeKlass: NodeKlass[] = [\n NodeKlass.Channel,\n NodeKlass.Connector,\n NodeKlass.Peripheral\n ]\n ): C3Node[] => {\n return c3State.nodes.filter(node => {\n return nodeKlass.includes(node.klass);\n });\n },\n\n getInterfacesFor: c3State => (\n nodeKlass: NodeKlass | NodeKlass[] = [\n NodeKlass.Channel,\n NodeKlass.Connector,\n NodeKlass.Peripheral\n ],\n parentId: string | null\n ): C3Node[] => {\n if ((parentId === '' || parentId === null) && c3State.gateway) {\n parentId = c3State.gateway.agentId;\n }\n return c3State.nodes.filter(node => {\n return nodeKlass.includes(node.klass) && node.parentId === parentId;\n });\n },\n\n getNodeKlass: c3State => (uid: string): NodeKlass => {\n const n = c3State.nodes.find(node => {\n return node.uid === uid;\n });\n if (n) {\n return n.klass;\n }\n return NodeKlass.Undefined;\n }\n};\n\n// Mutations\n\nexport type UpdateGatewaysFn = (relays: GatewayHeader[]) => void;\nexport type UpdateGatewayFn = (relays: C3Gateway) => void;\n\nexport const mutations: MutationTree = {\n updateGateways(c3State, g: GatewayHeader[]) {\n c3State.gateways = g;\n },\n\n updateGateway(c3State, g: C3Gateway) {\n c3State.gateway = g;\n },\n\n populateNodes(c3State, data: C3Gateway) {\n const uuid = (...args: string[]): string => {\n return args.join('-');\n };\n\n const isRelayActive = (relay: C3Relay): boolean => {\n let active = relay.isActive;\n\n // If gateway down the relays are not managable either.\n if (data.isActive === false) {\n active = false;\n }\n\n return active;\n };\n\n c3State.nodes = [];\n c3State.mustRefresh = false;\n\n if (c3State.relayTimestamps === undefined) {\n c3State.relayTimestamps = [];\n }\n\n let gatewayTimestamp = 0;\n let relayTimestamp = 0;\n const relayTimestamps: C3RelayTime[] = [];\n\n if (!!data.timestamp) {\n gatewayTimestamp = data.timestamp;\n }\n\n c3State.nodes.push({\n uid: data.agentId,\n klass: NodeKlass.Gateway,\n id: data.agentId,\n buildId: data.buildId,\n name: data.name,\n pending: data.pending || false,\n isActive: data.isActive,\n type: -1,\n error: data.error || null,\n parentId: null,\n parentKlass: null,\n timestamp: gatewayTimestamp\n });\n\n data.channels.forEach((i: C3Interface) => {\n c3State.nodes.push({\n uid: uuid(i.iid, data.agentId),\n klass: NodeKlass.Channel,\n id: i.iid,\n pending: i.pending || false,\n type: i.type,\n error: i.error || null,\n parentId: data.agentId,\n isReturnChannel: i.isReturnChannel || false,\n isNegotiationChannel: i.isNegotiationChannel || false,\n parentKlass: NodeKlass.Gateway,\n propertiesText: i.propertiesText || ''\n });\n });\n\n data.peripherals.forEach((i: C3Interface) => {\n c3State.nodes.push({\n uid: uuid(i.iid, data.agentId),\n klass: NodeKlass.Peripheral,\n id: i.iid,\n pending: i.pending || false,\n type: i.type,\n error: i.error || null,\n parentId: data.agentId,\n parentKlass: NodeKlass.Gateway,\n propertiesText: i.propertiesText || ''\n });\n });\n\n data.connectors.forEach((i: C3Interface) => {\n c3State.nodes.push({\n uid: uuid(i.iid, data.agentId),\n klass: NodeKlass.Connector,\n id: i.iid,\n pending: i.pending || false,\n type: i.type,\n error: i.error || null,\n parentId: data.agentId,\n parentKlass: NodeKlass.Gateway,\n propertiesText: i.propertiesText || ''\n });\n });\n\n data.relays.forEach((relay: C3Relay) => {\n if (!!relay.timestamp) {\n relayTimestamp = relay.timestamp;\n if (relayTimestamp < gatewayTimestamp) {\n relayTimestamps!.push({\n id: relay.agentId,\n time: relayTimestamp\n });\n } else {\n const newTime = c3State.relayTimestamps!.find(t => {\n return t.id === relay.agentId;\n });\n if (newTime !== undefined) {\n c3State.mustRefresh = true;\n }\n }\n }\n\n c3State.nodes.push({\n uid: relay.agentId,\n klass: NodeKlass.Relay,\n id: relay.agentId,\n buildId: relay.buildId,\n name: relay.name,\n pending: relay.pending || false,\n isActive: isRelayActive(relay),\n type: -1,\n error: relay.error || null,\n parentId: data.agentId,\n parentKlass: NodeKlass.Gateway,\n initialCommand: relay.initialCommand || {},\n timestamp: relayTimestamp,\n hostInfo: relay.hostInfo\n });\n\n relay.channels.forEach((i: C3Interface) => {\n c3State.nodes.push({\n uid: uuid(i.iid, relay.agentId),\n klass: NodeKlass.Channel,\n id: i.iid,\n pending: i.pending || false,\n type: i.type,\n error: i.error || null,\n parentId: relay.agentId,\n isReturnChannel: i.isReturnChannel || false,\n isNegotiationChannel: i.isNegotiationChannel || false,\n parentKlass: NodeKlass.Relay,\n propertiesText: i.propertiesText || ''\n });\n });\n\n relay.peripherals.forEach((i: C3Interface) => {\n c3State.nodes.push({\n uid: uuid(i.iid, relay.agentId),\n klass: NodeKlass.Peripheral,\n id: i.iid,\n pending: i.pending || false,\n type: i.type,\n error: i.error || null,\n parentId: relay.agentId,\n parentKlass: NodeKlass.Relay,\n propertiesText: i.propertiesText || ''\n });\n });\n });\n c3State.relayTimestamps = relayTimestamps;\n },\n\n populateEdges(c3State, data: C3Gateway) {\n const uuid = (...args: string[]): string => {\n return args.join('-');\n };\n\n const guid = () => {\n return Math.random()\n .toString(36)\n .substring(2);\n };\n\n const interfaceIsExist = (agentId: string, iid: string) => {\n const relay = data.relays.find((r: C3Relay) => {\n return r.agentId === agentId;\n });\n if (relay !== undefined) {\n const c = relay.channels.find((i: C3Interface) => {\n return i.iid === iid;\n });\n if (c !== undefined) {\n return true;\n }\n }\n return false;\n };\n\n c3State.edges = [];\n\n data.channels.forEach((i: C3Interface) => {\n c3State.edges.push({\n id: guid(),\n klass: NodeKlass.Interface,\n isNegotiationChannel: !!i.isNegotiationChannel,\n length: 0,\n dashes: false,\n from: data.agentId,\n to: uuid(i.iid, data.agentId)\n });\n });\n\n data.peripherals.forEach((i: C3Interface) => {\n c3State.edges.push({\n id: guid(),\n klass: NodeKlass.Interface,\n length: 0,\n dashes: false,\n from: data.agentId,\n to: uuid(i.iid, data.agentId)\n });\n });\n\n data.connectors.forEach((i: C3Interface) => {\n c3State.edges.push({\n id: guid(),\n klass: NodeKlass.Interface,\n length: 0,\n dashes: true,\n from: data.agentId,\n to: uuid(i.iid, data.agentId)\n });\n });\n\n data.routes.forEach(route => {\n if (route.isNeighbour === true) {\n c3State.edges.push({\n id: guid(),\n klass: NodeKlass.Relay,\n length: 100,\n dashes: false,\n from: data.agentId,\n to: route.destinationAgent\n });\n\n c3State.edges.push({\n id: guid(),\n klass: NodeKlass.Interface,\n length: 0,\n dashes: false,\n from: uuid(route.outgoingInterface, data.agentId),\n to: uuid(route.receivingInterface, route.destinationAgent)\n });\n }\n });\n\n data.relays.forEach((relay: C3Relay) => {\n relay.channels.forEach((i: C3Interface) => {\n c3State.edges.push({\n id: guid(),\n klass: NodeKlass.Interface,\n isNegotiationChannel: !!i.isNegotiationChannel,\n length: 0,\n dashes: false,\n from: relay.agentId,\n to: uuid(i.iid, relay.agentId)\n });\n });\n\n relay.peripherals.forEach((i: C3Interface) => {\n c3State.edges.push({\n id: guid(),\n klass: NodeKlass.Interface,\n length: 0,\n dashes: false,\n from: relay.agentId,\n to: uuid(i.iid, relay.agentId)\n });\n });\n\n relay.routes.forEach(route => {\n if (route.isNeighbour === true) {\n let isDashed = true;\n if (\n interfaceIsExist(\n route.destinationAgent,\n route.receivingInterface\n ) &&\n interfaceIsExist(relay.agentId, route.outgoingInterface)\n ) {\n isDashed = false;\n }\n c3State.edges.push({\n id: guid(),\n klass: NodeKlass.Relay,\n length: 100,\n dashes: isDashed,\n from: relay.agentId,\n to: route.destinationAgent\n });\n\n c3State.edges.push({\n id: guid(),\n klass: NodeKlass.Interface,\n length: 0,\n dashes: false,\n from: uuid(route.outgoingInterface, relay.agentId),\n to: uuid(route.receivingInterface, route.destinationAgent)\n });\n }\n });\n });\n }\n};\n\n// Actions\n\nexport type FetchC3DataFn = (data: FetchData) => void;\n\nconst actions: ActionTree = {\n fetchCapability(context, nodeIds: FetchData) {\n context.dispatch('c3Capability/fetchCapability', nodeIds, { root: true });\n },\n\n fetchGateways(context): void {\n const baseURL = `${context.rootGetters['optionsModule/getAPIUrl']}:${context.rootGetters['optionsModule/getAPIPort']}`;\n axios\n .get('/api/gateway', { baseURL })\n .then(response => {\n context.commit('updateGateways', response.data);\n })\n .catch(error => {\n context.dispatch(\n 'notifyModule/insertNotify',\n { type: 'error', message: error.message },\n { root: true }\n );\n // tslint:disable-next-line:no-console\n console.error(error.message);\n });\n },\n\n fetchGateway(context, nodeIds: FetchData) {\n if (nodeIds.gatewayId) {\n const url = `/api/gateway/${nodeIds.gatewayId}`;\n const baseURL = `${context.rootGetters['optionsModule/getAPIUrl']}:${context.rootGetters['optionsModule/getAPIPort']}`;\n axios\n .get(url, { baseURL })\n .then(response => {\n let hash: string = '';\n\n if (context.state.mustRefresh !== true) {\n hash = md5(\n JSON.stringify(response.data).replace(\n /\"timestamp\":[0-9]*[,]{0,1}/g,\n ''\n )\n );\n }\n\n // store the gateway\n context.commit('updateGateway', response.data);\n context.commit('populateNodes', response.data);\n context.commit('populateEdges', response.data);\n\n if (context.state.mustRefresh || hash !== context.state.lastGetHash) {\n // generate the data structure to vis library\n context.dispatch('visModule/generateNodes', {}, { root: true });\n context.dispatch('visModule/generateEdges', {}, { root: true });\n context.commit('visModule/setGraphData', {}, { root: true });\n context.state.lastGetHash = hash;\n }\n })\n .catch(error => {\n context.dispatch(\n 'notifyModule/insertNotify',\n { type: 'error', message: error.message },\n { root: true }\n );\n // tslint:disable-next-line:no-console\n console.error(error.message);\n });\n } else {\n context.dispatch(\n 'notifyModule/insertNotify',\n { type: 'error', message: 'missing: gatewayId' },\n { root: true }\n );\n // tslint:disable-next-line:no-console\n console.error('missing: gatewayId');\n }\n }\n};\n\nexport const c3Module: Module = {\n namespaced,\n state,\n getters,\n mutations,\n actions\n};\n","import { Module, GetterTree, MutationTree, ActionTree } from 'vuex';\n\nimport { RootState } from '@/types/store/RootState';\n\nconst namespaced: boolean = true;\n\nexport interface ModalState {\n modals: C3Modal[];\n}\n\nexport interface C3Modal {\n modalTarget: string;\n modalTargetId: any;\n modalOptions: any;\n}\n\n// State\n\nconst state: ModalState = {\n modals: []\n};\n\n// Getters\nconst getters: GetterTree = {\n activeModal(modalState): C3Modal | undefined {\n if (modalState.modals.length > 0) {\n return modalState.modals[modalState.modals.length - 1];\n }\n return undefined;\n }\n};\n\n// Mutations\n\nexport type NewModalFn = (m: C3Modal) => void;\nexport type CloseModalFn = () => void;\n\nconst mutations: MutationTree = {\n newModal(modalState, m: C3Modal) {\n let last: any = false;\n if (modalState.modals.length > 1) {\n last = modalState.modals[modalState.modals.length - 2];\n }\n if (\n last !== false &&\n last.modalTarget === m.modalTarget &&\n last.modalTargetId === m.modalTargetId\n ) {\n modalState.modals.pop();\n } else {\n modalState.modals.push(m);\n }\n },\n\n closeModal(modalState) {\n if (modalState.modals.length > 0) {\n modalState.modals.pop();\n }\n },\n\n closeModalAll(modalState) {\n modalState.modals = [];\n }\n};\n\n// Actions\n\nexport const actions: ActionTree = {};\n\nexport const modalModule: Module = {\n namespaced,\n state,\n getters,\n mutations,\n actions\n};\n","import { Module, GetterTree, MutationTree, ActionTree } from 'vuex';\nimport { RootState } from '@/types/store/RootState';\n\nconst namespaced: boolean = true;\n\ninterface PaginateState {\n itemPerPage: number;\n actualPage: number;\n lastChange: number;\n}\n\n// State\n\nconst state: PaginateState = {\n itemPerPage: 5,\n actualPage: 1,\n lastChange: Date.now()\n};\n\n// Getters\n\nconst getters: GetterTree = {\n getItemPerPage(paginateState): number {\n return paginateState.itemPerPage;\n },\n\n getActualPage(paginateState): number {\n return paginateState.actualPage;\n },\n\n getLastChange(paginateState): number {\n return paginateState.lastChange;\n }\n};\n\n// Mutations\n\nexport type SetItemPerPageFn = (itemPerPage: number) => void;\nexport type SetActualPageFn = (itemPerPage: number) => void;\n\nexport const mutations: MutationTree = {\n setItemPerPage(paginateState, itemPerPage: number): void {\n paginateState.actualPage = 1;\n paginateState.itemPerPage = itemPerPage;\n paginateState.lastChange = Date.now();\n },\n\n setActualPage(paginateState, actualPage: number): void {\n paginateState.actualPage = actualPage;\n paginateState.lastChange = Date.now();\n }\n};\n\n// Actions\n\nconst actions: ActionTree = {};\n\nexport const paginateModule: Module = {\n namespaced,\n state,\n getters,\n mutations,\n actions\n};\n","// tslint:disable max-line-length\nconst svgChannelActive =\n '';\nconst svgChannelReturn =\n '';\nconst svgChannelError =\n '';\n\nconst svgNegotiationActive =\n '';\nconst svgNegotiationError =\n '';\n\nconst svgPeripheralActive =\n '';\nconst svgPeripheralError =\n '';\n\nconst svgConnectorActive =\n '';\nconst svgConnectorError =\n '';\n\nconst svgInterfaceActive =\n '';\nconst svgInterfaceInactive =\n '';\nconst svgInterfaceError =\n '';\n\nconst svgGatewayActive =\n '';\nconst svgGatewayInactive =\n '';\nconst svgGatewayError =\n '';\n\nconst svgRelayActive =\n '';\nconst svgRelayInactive =\n '';\nconst svgRelayGhost =\n '';\nconst svgRelayError =\n '';\n\nexport const ChannelActive =\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgChannelActive);\nexport const ChannelReturn =\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgChannelReturn);\nexport const ChannelError =\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgChannelError);\n\nexport const PeripheralActive =\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgPeripheralActive);\nexport const PeripheralError =\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgPeripheralError);\n\nexport const NegotiationActive =\n 'data:image/svg+xml;charset=utf-8,' +\n encodeURIComponent(svgNegotiationActive);\nexport const NegotiationError =\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgNegotiationError);\n\nexport const ConnectorActive =\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgConnectorActive);\nexport const ConnectorError =\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgConnectorError);\n\nexport const InterfaceActive =\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgInterfaceActive);\nexport const InterfaceInactive =\n 'data:image/svg+xml;charset=utf-8,' +\n encodeURIComponent(svgInterfaceInactive);\nexport const InterfaceError =\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgInterfaceError);\n\nexport const GatewayActive =\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgGatewayActive);\nexport const GatewayInactive =\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgGatewayInactive);\nexport const GatewayError =\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgGatewayError);\n\nexport const RelayActive =\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgRelayActive);\nexport const RelayInactive =\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgRelayInactive);\nexport const RelayGhost =\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgRelayGhost);\nexport const RelayError =\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgRelayError);\n","import {\n GatewayActive,\n GatewayError,\n RelayActive,\n RelayError,\n ChannelActive,\n ChannelReturn,\n ChannelError,\n PeripheralError,\n PeripheralActive,\n ConnectorActive,\n ConnectorError,\n GatewayInactive,\n RelayInactive,\n RelayGhost,\n NegotiationActive,\n NegotiationError\n} from '@/components/assets/SvgIconsForVis';\n\nexport const GATEWAY: number = 10;\nexport const RELAY: number = 20;\nexport const CHANNEL: number = 30;\nexport const PERIPHERAL: number = 40;\nexport const CONNECTOR: number = 50;\nexport const NEGOTIATION_CHANNEL: number = 5;\nexport const ERROR: number = 1;\nexport const RETURN_CHANNEL: number = 2;\nexport const INACTIVE: number = 3;\nexport const GHOST: number = 5;\n\n// The Vis Options for visualisation\nexport const VisOptions: any = {\n nodes: {\n font: {\n color: '#fff',\n background: '#222',\n size: 12,\n face: 'Roboto Mono',\n strokeWidth: 0,\n vadjust: 0\n },\n shadow: {\n enabled: false,\n color: 'rgba(75,174,97,1)',\n size: 20,\n x: 0,\n y: 0\n },\n widthConstraint: {\n maximum: 75\n },\n margin: {\n top: 0\n }\n },\n edges: {\n font: {\n color: '#fff',\n background: '#222',\n size: 12,\n face: 'Roboto Mono',\n strokeWidth: 0\n },\n color: {\n color: '#BDBDBD',\n highlight: '#27ae60'\n },\n smooth: false\n },\n groups: {\n // GATEWAY\n 10: {\n shape: 'image',\n image: GatewayActive,\n size: 30\n },\n // GATEWAY + ERROR\n 11: {\n shape: 'image',\n image: GatewayError,\n size: 30\n },\n // GATEWAY + INACTIVE\n 13: {\n shape: 'image',\n image: GatewayInactive,\n size: 30\n },\n // GATEWAY + INACTIVE + ERROR\n 14: {\n shape: 'image',\n image: GatewayError,\n size: 30\n },\n // RELAY\n 20: {\n shape: 'image',\n image: RelayActive,\n size: 30\n },\n // RELAY + ERROR\n 21: {\n shape: 'image',\n image: RelayError,\n size: 30\n },\n // RELAY + INACTIVE\n 23: {\n shape: 'image',\n image: RelayInactive,\n size: 30\n },\n // RELAY + INACTIVE +ERROR\n 24: {\n shape: 'image',\n image: RelayError,\n size: 30\n },\n // RELAY + GHOST\n 25: {\n shape: 'image',\n image: RelayGhost,\n size: 30\n },\n // RELAY + GHOST + ERROR\n 26: {\n shape: 'image',\n image: RelayError,\n size: 30\n },\n // RELAY + INACTIVE + GHOST\n 28: {\n shape: 'image',\n image: RelayGhost,\n size: 30\n },\n // RELAY + INACTIVE + GHOST + ERROR\n 29: {\n shape: 'image',\n image: RelayError,\n size: 30\n },\n // CHANNEL\n 30: {\n shape: 'image',\n image: ChannelActive,\n size: 20\n },\n // CHANNEL + ERROR\n 31: {\n shape: 'image',\n image: ChannelError,\n size: 20\n },\n // CHANNEL + RETURN_CHANNEL\n 32: {\n shape: 'image',\n image: ChannelReturn,\n size: 20\n },\n // CHANNEL + RETURN_CHANNEL + ERROR\n 33: {\n shape: 'image',\n image: ChannelError,\n size: 20\n },\n // NEGOTIATION_CHANNEL\n 35: {\n shape: 'image',\n image: NegotiationActive,\n size: 25\n },\n // NEGOTIATION_CHANNEL + ERROR\n 36: {\n shape: 'image',\n image: NegotiationError,\n size: 25\n },\n // PERIPHERAL\n 40: {\n shape: 'image',\n image: PeripheralActive,\n size: 20\n },\n // PERIPHERAL + ERROR\n 41: {\n shape: 'image',\n image: PeripheralError,\n size: 20\n },\n // CONNECTOR\n 50: {\n shape: 'image',\n image: ConnectorActive,\n size: 20\n },\n // CONNECTOR + ERROR\n 51: {\n shape: 'image',\n image: ConnectorError,\n size: 20\n }\n },\n layout: {\n randomSeed: 921401,\n improvedLayout: true,\n hierarchical: {\n enabled: true,\n direction: 'LR',\n parentCentralization: true,\n blockShifting: true,\n levelSeparation: 150,\n treeSpacing: 200,\n nodeSpacing: 100,\n edgeMinimization: true,\n sortMethod: 'hubsize'\n }\n },\n physics: {\n enabled: true,\n solver: 'barnesHut',\n barnesHut: {\n gravitationalConstant: -4500,\n springLength: 100,\n springConstant: 0.01,\n damping: 0.1,\n avoidOverlap: 0\n },\n minVelocity: 0.45,\n stabilization: {\n enabled: true,\n iterations: 1000,\n updateInterval: 10,\n onlyDynamicEdges: false,\n fit: true\n }\n },\n interaction: {\n navigationButtons: true,\n keyboard: false\n }\n};\n\n// maximum toast shown\nexport const maximumToast: number = 3;\n\n// the data refresh rate in milisecond\nexport const refreshInterval: number = 2000;\n\nexport const notifyLenght = 5000;\n","import { Module, GetterTree, MutationTree, ActionTree } from 'vuex';\nimport { DataSet, Node, Edge, Options } from 'vis';\n\nimport { RootState } from '@/types/store/RootState';\nimport { C3Edge, NodeKlass, C3Node } from '@/types/c3types';\nimport {\n GATEWAY,\n RELAY,\n CHANNEL,\n PERIPHERAL,\n CONNECTOR,\n RETURN_CHANNEL,\n VisOptions,\n INACTIVE,\n NEGOTIATION_CHANNEL,\n GHOST\n} from '@/options';\n\nconst namespaced: boolean = true;\n\ninterface VisState {\n nodes: any;\n edges: any;\n options: any;\n autoUpdateEnabled: boolean;\n showInterfaces: boolean;\n showLabels: boolean;\n graphData: {\n nodes: any;\n edges: any;\n };\n}\n\n// State\n\nconst state: VisState = {\n nodes: {},\n edges: {},\n options: VisOptions,\n showInterfaces: true,\n showLabels: true,\n autoUpdateEnabled: true,\n graphData: {\n nodes: new DataSet({}),\n edges: new DataSet({})\n }\n};\n\n// Getters\nconst getters: GetterTree = {\n getVisNodes(visState): any {\n return visState.nodes;\n },\n\n getVisEdges(visState): any {\n return visState.edges;\n },\n\n getGrapData(visState): object {\n return visState.graphData;\n },\n\n getOptions(visState): Options {\n return visState.options;\n },\n\n getShowInterfaces(visState): boolean {\n return visState.showInterfaces;\n },\n\n getShowLabels(visState): boolean {\n return visState.showLabels;\n },\n\n getAutoUpdateEnabled(visState): boolean {\n return visState.autoUpdateEnabled;\n }\n};\n\n// Mutations\n\nexport type SetGraphDataFn = () => void;\nexport type SetOptionFn = (b: boolean) => void;\nexport type SetAutoUpdateEnabledFn = (d: boolean) => void;\nexport type SetOptionslFn = (options: Options) => void;\n\nconst mutations: MutationTree = {\n setNodes(visState, n) {\n visState.nodes = n;\n },\n\n setEdges(visState, e) {\n visState.edges = e;\n },\n\n setGraphData(visState) {\n const nodes = new DataSet(visState.nodes);\n const edges = new DataSet(visState.edges);\n const graph = { nodes, edges };\n visState.graphData = graph;\n },\n\n setOptions(visState, options: Options): void {\n visState.options = options;\n },\n\n setShowInterfaces(visState, b: boolean): void {\n visState.showInterfaces = b;\n },\n\n setShowLabels(visState, b: boolean): void {\n visState.showLabels = b;\n },\n\n setTreeView(visState, b: boolean): void {\n visState.options.layout.hierarchical.enabled = b;\n if (b === true) {\n visState.options.physics.stabilization.onlyDynamicEdges = true;\n } else {\n visState.options.physics.stabilization.onlyDynamicEdges = false;\n }\n },\n\n setPhysics(visState, b: boolean): void {\n visState.options.physics.enabled = b;\n },\n\n setSmoothEdge(visState, b: boolean): void {\n visState.options.edges.smooth = b;\n },\n\n setAutoUpdateEnabled(visState, d: boolean): void {\n visState.autoUpdateEnabled = d;\n }\n};\n\n// Actions\n\nexport type GenerateNodesFn = () => void;\nexport type GenerateEdgesFn = () => void;\n\nconst actions: ActionTree = {\n generateNodes(context) {\n const ns: C3Node[] = context.rootGetters['c3Module/getNodes'];\n const gatewayLastStartTime =\n context.rootGetters['c3Module/getGateway'].timestamp;\n const gatewayIsActive = context.rootGetters['c3Module/getGateway'].isActive;\n\n const setGroup = (\n target: C3Node,\n gatewayStartTime: number,\n isGatewayActive: boolean\n ): string => {\n let group: number = 0;\n\n // Add error if target has an error\n if (target.error !== null) {\n ++group;\n }\n\n let active = true;\n\n // If Target down told by API then make inactive\n if (target.isActive !== undefined && target.isActive === false) {\n active = false;\n }\n\n // If relay last seen begore gateway last start than we think gateway maybe down\n if (target.klass === NodeKlass.Relay) {\n if (!!target.timestamp) {\n if (target.timestamp < gatewayStartTime) {\n active = false;\n } else {\n active = true;\n }\n }\n\n // if gateway down the hole network down\n if (!isGatewayActive) {\n active = false;\n }\n\n if (target.isActive === false) {\n group = group + GHOST;\n }\n }\n\n if (!active) {\n group = group + INACTIVE;\n }\n\n switch (target.klass) {\n case NodeKlass.Channel:\n group += CHANNEL;\n if (target.isReturnChannel === true) {\n group += RETURN_CHANNEL;\n }\n if (target.isNegotiationChannel === true) {\n group += NEGOTIATION_CHANNEL;\n }\n return '' + group;\n case NodeKlass.Relay:\n group += RELAY;\n return '' + group;\n case NodeKlass.Peripheral:\n group += PERIPHERAL;\n return '' + group;\n case NodeKlass.Gateway:\n group += GATEWAY;\n return '' + group;\n case NodeKlass.Connector:\n group += CONNECTOR;\n return '' + group;\n }\n\n return '' + group;\n };\n const nodes: Node[] = [];\n const interfaccesIncluded: boolean = context.state.showInterfaces;\n\n ns.forEach((node: C3Node) => {\n if (\n context.state.showInterfaces === true ||\n (interfaccesIncluded !== true && node.klass === NodeKlass.Gateway) ||\n node.klass === NodeKlass.Relay\n ) {\n const group = setGroup(node, gatewayLastStartTime, gatewayIsActive);\n let label = '';\n if (context.state.showLabels) {\n label = node.name || '';\n }\n\n nodes.push({\n id: node.uid,\n group,\n label\n });\n } else {\n if (!!node.isNegotiationChannel && node.isNegotiationChannel === true) {\n const group = setGroup(node, gatewayLastStartTime, gatewayIsActive);\n let label = '';\n if (context.state.showLabels) {\n label = node.name || '';\n }\n\n nodes.push({\n id: node.uid,\n group,\n label\n });\n }\n }\n });\n\n context.commit('setNodes', nodes);\n },\n\n generateEdges(context) {\n const es: C3Edge[] = context.rootGetters['c3Module/getEdges'];\n const edges: Edge[] = [];\n const interfaccesIncluded: boolean = context.state.showInterfaces;\n\n es.forEach(edge => {\n if (interfaccesIncluded === true && edge.klass === NodeKlass.Interface) {\n edges.push({\n id: edge.id,\n length: edge.length,\n dashes: edge.dashes,\n from: edge.from,\n to: edge.to\n });\n }\n\n if (interfaccesIncluded !== true && edge.klass === NodeKlass.Interface) {\n if (!!edge.isNegotiationChannel) {\n edges.push({\n id: edge.id,\n length: edge.length,\n dashes: edge.dashes,\n from: edge.from,\n to: edge.to\n });\n }\n }\n\n if (interfaccesIncluded !== true && edge.klass !== NodeKlass.Interface) {\n const e = {\n id: edge.id,\n length: edge.length,\n dashes: edge.dashes,\n from: edge.from,\n to: edge.to,\n color: {}\n };\n if (edge.dashes === true) {\n e.color = {\n color: '#FFC24B'\n };\n }\n edges.push(e);\n }\n });\n context.commit('setEdges', edges);\n }\n};\n\nexport const visModule: Module = {\n namespaced,\n state,\n getters,\n mutations,\n actions\n};\n","import { Module, GetterTree, MutationTree, ActionTree } from 'vuex';\n\nimport { notifyLenght, maximumToast } from '@/options';\nimport { RootState } from '@/types/store/RootState';\n\nconst namespaced: boolean = true;\n\nexport interface Notify {\n id?: string;\n type: string;\n title?: string;\n message: string;\n timeoutID?: any;\n}\n\ninterface NotifyState {\n notifys: Notify[];\n}\n\n// State\n\nexport const state: NotifyState = {\n notifys: []\n};\n\n// Getters\n\nconst getters: GetterTree = {\n getNotifies(notifyState): Notify[] {\n return notifyState.notifys;\n }\n};\n\n// Mutations\n\nexport type AddNotifyFn = (notify: Notify) => void;\nexport type UpdateNotifyFn = (notify: Notify) => void;\nexport type RemoveNotifyFn = (id: string) => void;\n\nexport const mutations: MutationTree = {\n addNotify(notifyState, notify: Notify): void {\n notifyState.notifys.push(notify);\n },\n\n updateNotify(notifyState, notify: Notify): void {\n const notifyIndex = notifyState.notifys.findIndex(n => n.id === notify.id);\n if (notifyIndex > -1) {\n notifyState.notifys[notifyIndex] = notify;\n }\n },\n\n removeNotify(notifyState, id: string): void {\n const notifyIndex = notifyState.notifys.findIndex(n => n.id === id);\n if (notifyIndex > -1) {\n notifyState.notifys.splice(notifyIndex, 1);\n }\n },\n\n removeOldestNotify(notifyState): void {\n const notifyCount = notifyState.notifys.length;\n\n if (notifyCount > 0) {\n const notify = notifyState.notifys[0];\n if (!!notify.timeoutID) {\n clearTimeout(notify.timeoutID);\n }\n notifyState.notifys.splice(0, 1);\n }\n }\n};\n\n// Actions\n\nexport type InsertNotifyFn = (notify: Notify) => void;\n\nconst actions: ActionTree = {\n insertNotify(context, notify: Notify) {\n const addNotification = (notification: Notify) => {\n notify.id = Math.random()\n .toString(36)\n .substr(2);\n notify.timeoutID = setTimeout((): boolean => {\n context.commit('removeNotify', notify.id);\n return true;\n }, notifyLenght);\n context.commit('addNotify', notify);\n };\n\n // Check how many notification we have\n const notifyCount = context.state.notifys.length;\n\n // Don' add duplicate notifications\n // Mostly affecting: Network error - if backand not reachable\n if (notifyCount > 0) {\n if (notify.message !== context.state.notifys[notifyCount - 1].message) {\n addNotification(notify);\n } else {\n // Replace the timeout for the notification\n const lastNotify = context.state.notifys[notifyCount - 1];\n\n clearTimeout(lastNotify.timeoutID);\n\n lastNotify.timeoutID = setTimeout((): boolean => {\n context.commit('removeNotify', lastNotify.id);\n return true;\n }, notifyLenght);\n context.commit('updateNotify', lastNotify);\n }\n } else {\n addNotification(notify);\n }\n\n // If we already reach the maximum notification limit\n // remove the oldest\n if (notifyCount >= maximumToast) {\n context.commit('removeOldestNotify');\n }\n }\n};\n\nexport const notifyModule: Module = {\n namespaced,\n state,\n getters,\n mutations,\n actions\n};\n","import { Module, GetterTree, MutationTree, ActionTree } from 'vuex';\n\nimport axios from 'axios';\nimport { RootState } from '@/types/store/RootState';\nimport { FetchData, NodeKlass } from '@/types/c3types';\n\nconst namespaced: boolean = true;\n\nexport interface InterfaceItem {\n type: number;\n name: string;\n klass: NodeKlass;\n commands: any;\n}\n\nexport interface CapabilityState {\n capability: any;\n interfaceList: InterfaceItem[];\n}\n\n// State\n\nexport const state: CapabilityState = {\n capability: {},\n interfaceList: []\n};\n\n// Getters\nexport type GetTypeNameForInterfaceFn = (t: number, k: NodeKlass) => string;\nexport type GetTypesForInterfaceKlassFn = (k: NodeKlass) => InterfaceItem[];\nexport type GetCapabilityForFn = (\n t: string,\n k: NodeKlass\n) => InterfaceItem | undefined;\nexport type GetCommandGroupForFn = (k: NodeKlass) => any;\nexport type GetCommandTargetForFn = (\n commandName: string,\n nodeKlass: NodeKlass,\n currentType?: string | number\n) => any;\n\nexport const getters: GetterTree = {\n getCommandGroupFor: capabilityState => (nodeKlass: NodeKlass): any => {\n let commands: any = {};\n\n switch (nodeKlass) {\n case NodeKlass.Gateway:\n if (capabilityState.capability && capabilityState.capability.commands) {\n commands = capabilityState.capability.commands;\n }\n break;\n case NodeKlass.Relay:\n if (\n capabilityState.capability &&\n capabilityState.capability.relayCommands\n ) {\n commands = capabilityState.capability.relayCommands.commands;\n }\n break;\n case NodeKlass.Channel:\n if (\n capabilityState.capability &&\n capabilityState.capability.channelCommands\n ) {\n commands = capabilityState.capability.channelCommands.commands;\n }\n break;\n case NodeKlass.Peripheral:\n if (\n capabilityState.capability &&\n capabilityState.capability.peripheralCommands\n ) {\n commands = capabilityState.capability.peripheralCommands.commands;\n }\n break;\n case NodeKlass.Connector:\n if (\n capabilityState.capability &&\n capabilityState.capability.connectorCommands\n ) {\n commands = capabilityState.capability.connectorCommands.commands;\n }\n break;\n }\n\n const options: any = {};\n if (commands.length !== undefined) {\n commands.forEach((element: any) => {\n const option = element.name;\n options[option] = option;\n });\n }\n\n return options;\n },\n\n getCommandTargetFor: capabilityState => (\n commandName: string,\n nodeKlass: NodeKlass,\n currentType?: number | string\n ): any => {\n let commands: any = {};\n\n switch (nodeKlass) {\n case NodeKlass.Gateway:\n if (capabilityState.capability && capabilityState.capability.commands) {\n commands = capabilityState.capability.commands;\n }\n break;\n case NodeKlass.Relay:\n if (\n capabilityState.capability &&\n capabilityState.capability.relayCommands\n ) {\n commands = capabilityState.capability.relayCommands.commands;\n }\n break;\n case NodeKlass.Channel:\n if (\n capabilityState.capability &&\n capabilityState.capability.channelCommands\n ) {\n commands = capabilityState.capability.channelCommands.commands;\n }\n break;\n case NodeKlass.Peripheral:\n if (\n capabilityState.capability &&\n capabilityState.capability.peripheralCommands\n ) {\n commands = capabilityState.capability.peripheralCommands.commands;\n }\n break;\n case NodeKlass.Connector:\n if (\n capabilityState.capability &&\n capabilityState.capability.connectorCommands\n ) {\n commands = capabilityState.capability.connectorCommands.commands;\n }\n break;\n }\n\n let commandList: any = {};\n if (commands.length !== undefined) {\n commandList = commands.find((command: any) => {\n return command.name === commandName;\n });\n }\n\n const options: any = {};\n\n if (commandList && commandList.arguments) {\n const form = commandList.arguments.find((commandItem: any) => {\n return commandItem.type === 'form';\n });\n\n form.defaultValue.forEach((option: any) => {\n if (currentType === undefined) {\n options[option.replace(/:/g, '_')] = option.split(':')[2];\n } else {\n const optionType = option.split(':')[1];\n if (optionType === currentType) {\n options[option.replace(/:/g, '_')] = option.split(':')[2];\n }\n }\n });\n }\n\n return options;\n },\n\n getTypeNameForInterface: capabilityState => (\n t: number,\n k: NodeKlass\n ): string | undefined => {\n const item = capabilityState.interfaceList.find((i: InterfaceItem) => {\n return '' + i.type === '' + t; // && i.klass === k;\n });\n if (item !== undefined) {\n return item.name;\n }\n return '';\n },\n\n getTypesForInterfaceKlass: capabilityState => (\n k: NodeKlass\n ): InterfaceItem[] => {\n return capabilityState.interfaceList.filter((i: InterfaceItem) => {\n return i.klass === k;\n });\n },\n\n getCapabilityFor: capabilityState => (\n n: string,\n k: NodeKlass\n ): InterfaceItem | undefined => {\n return capabilityState.interfaceList.find((i: InterfaceItem) => {\n return i.name === n && i.klass === k;\n });\n }\n};\n\n// Mutations\n\nexport const mutations: MutationTree = {\n updateCapability(capabilityState, c: any) {\n capabilityState.interfaceList = [];\n capabilityState.capability = c;\n },\n\n populateList(capabilityState) {\n const getItem = (i: string) => {\n if (capabilityState.capability && capabilityState.capability[i]) {\n capabilityState.capability[i].forEach((element: InterfaceItem) => {\n const item: any = {\n type: element.type,\n name: element.name,\n commands: element.commands\n };\n\n switch (i) {\n case 'channels':\n item.klass = NodeKlass.Channel;\n break;\n case 'connectors':\n item.klass = NodeKlass.Connector;\n break;\n case 'peripherals':\n item.klass = NodeKlass.Peripheral;\n break;\n case 'gateway':\n item.klass = NodeKlass.Gateway;\n break;\n case 'relay':\n item.klass = NodeKlass.Relay;\n break;\n }\n\n capabilityState.interfaceList.push(item);\n });\n }\n };\n\n getItem('channels');\n getItem('connectors');\n getItem('peripherals');\n getItem('gateway');\n getItem('relay');\n }\n};\n\n// Actions\n\nconst actions: ActionTree = {\n fetchCapability(context, d: FetchData): void {\n if (d.gatewayId) {\n const url = `/api/gateway/${d.gatewayId}/capability`;\n const baseURL = `${context.rootGetters['optionsModule/getAPIUrl']}:${context.rootGetters['optionsModule/getAPIPort']}`;\n axios\n .get(url, { baseURL })\n .then(response => {\n context.commit('updateCapability', response.data);\n context.commit('populateList', response.data);\n })\n .catch(error => {\n context.dispatch(\n 'notifyModule/insertNotify',\n { type: 'error', message: error.message },\n { root: true }\n );\n // tslint:disable-next-line:no-console\n console.error(error.message);\n });\n } else {\n context.dispatch(\n 'notifyModule/insertNotify',\n { type: 'error', message: 'missing: gatewayId' },\n { root: true }\n );\n // tslint:disable-next-line:no-console\n console.error('missing: gatewayId');\n }\n }\n};\n\nexport const c3Capability: Module = {\n namespaced,\n state,\n getters,\n mutations,\n actions\n};\n","import { Module, GetterTree, MutationTree, ActionTree } from 'vuex';\nimport { RootState } from '@/types/store/RootState';\nimport { refreshInterval } from '@/options';\n\nconst namespaced: boolean = true;\n\ninterface OptionsState {\n baseUrl: string;\n port: number;\n refreshInterval: number;\n}\n\n// State\n\nconst state: OptionsState = {\n baseUrl: 'http://localhost',\n port: 52935,\n refreshInterval: 2000\n};\n\n// Getters\n\nconst getters: GetterTree = {\n getAPIUrl(optionsState): string {\n return optionsState.baseUrl;\n },\n\n getAPIPort(optionsState): number {\n return optionsState.port;\n },\n\n getAPIBaseUrl(optionsState): string {\n return optionsState.baseUrl + ':' + optionsState.port;\n },\n\n getRefreshInterval(optionsState): number {\n return optionsState.refreshInterval;\n }\n};\n\n// Mutations\n\nexport type SetBaseURLFn = (url: string) => void;\nexport type SetBasePortFn = (port: number) => void;\nexport type SetRefreshIntervalFn = (refreshInterval: number) => void;\n\nexport const mutations: MutationTree = {\n setBaseURL(optionsState, url: string): void {\n optionsState.baseUrl = url;\n },\n\n setBasePort(optionsState, port: number): void {\n optionsState.port = port;\n },\n\n setRefreshInterval(optionsState, refreshRate: number): void {\n optionsState.refreshInterval = refreshRate;\n }\n};\n\n// Actions\n\nconst actions: ActionTree = {};\n\nexport const optionsModule: Module = {\n namespaced,\n state,\n getters,\n mutations,\n actions\n};\n","import { Module, GetterTree, MutationTree, ActionTree } from 'vuex';\n\nimport axios from 'axios';\nimport { RootState } from '@/types/store/RootState';\nimport { C3Command } from '@/types/c3types';\n\nconst namespaced: boolean = true;\n// State\n\nexport interface C3CommandState {\n commands: C3Command[];\n totalCount: number;\n}\n\nexport const state: C3CommandState = {\n commands: [],\n totalCount: 0\n};\n\n// Getters\n\nexport type GetCommandFn = (id: string) => C3Command | undefined;\n\nexport const getters: GetterTree = {\n // return gateways agentIds\n getCommands(C3State): C3Command[] {\n return C3State.commands;\n },\n\n getCommand: C3State => (id: string | number): C3Command | undefined => {\n return C3State.commands.find(command => {\n return '' + command.id === '' + id;\n });\n },\n\n getCommandCount(C3State): number {\n return C3State.totalCount;\n }\n};\n\n// Mutations\n\nexport const mutations: MutationTree = {\n updateCommands(C3State, data: any) {\n C3State.commands = data;\n },\n\n updateTotalCount(C3State, totalCount: number) {\n C3State.totalCount = totalCount;\n }\n};\n\n// Actions\n\nexport type FetchC3CommandFn = (gatewayId: string) => void;\n\nconst actions: ActionTree = {\n fetchCommands(context, gatewayId: string) {\n if (!!gatewayId) {\n const page = context.rootGetters['paginateModule/getActualPage'];\n const perPage = context.rootGetters['paginateModule/getItemPerPage'];\n\n const url = `/api/gateway/${gatewayId}/command?all=true&page=${page}&perPage=${perPage}`;\n const baseURL = `${context.rootGetters['optionsModule/getAPIUrl']}:${context.rootGetters['optionsModule/getAPIPort']}`;\n\n axios\n .get(url, { baseURL })\n .then(response => {\n // store the gateway\n context.commit('updateCommands', response.data);\n\n let totalCount = 0;\n if (!!response.headers['X-Total-Count']) {\n totalCount = response.headers['X-Total-Count'];\n } else if (response.headers['x-total-count']) {\n totalCount = response.headers['x-total-count'];\n }\n if (!!totalCount) {\n context.commit('updateTotalCount', totalCount);\n }\n })\n .catch(error => {\n context.dispatch(\n 'notifyModule/insertNotify',\n { type: 'error', message: error.message },\n { root: true }\n );\n // tslint:disable-next-line:no-console\n console.error(error.message);\n });\n } else {\n context.dispatch(\n 'notifyModule/insertNotify',\n { type: 'error', message: 'missing: gatewayId' },\n { root: true }\n );\n // tslint:disable-next-line:no-console\n console.error('missing: gatewayId');\n }\n }\n};\n\nexport const c3CommandModule: Module = {\n namespaced,\n state,\n getters,\n mutations,\n actions\n};\n","import Vue from 'vue';\nimport Vuex, { StoreOptions } from 'vuex';\n\nimport { RootState } from '@/types/store/RootState';\n\nimport { c3Module } from '@/store/C3Module';\nimport { modalModule } from '@/store/ModalModule';\nimport { paginateModule } from '@/store/PaginateModule';\nimport { visModule } from '@/store/VisModule';\nimport { notifyModule } from '@/store/NotifyModule';\nimport { c3Capability } from '@/store/C3Capability';\nimport { optionsModule } from '@/store/OptionsModule';\nimport { c3CommandModule } from '@/store/C3Command';\n\nVue.use(Vuex);\n\nconst store: StoreOptions = {\n state: {\n version: '1.0.0'\n },\n modules: {\n c3Module,\n visModule,\n modalModule,\n notifyModule,\n c3Capability,\n optionsModule,\n paginateModule,\n c3CommandModule\n }\n};\n\nexport default new Vuex.Store(store);\n","import Vue from 'vue';\nimport App from './App.vue';\nimport store from './store';\nimport VeeValidate from 'vee-validate';\n\nimport './scss/main.scss';\nimport 'vis/dist/vis.css';\n\nVue.config.productionTip = false;\n\n(window as any).networkc3 = {};\n\nVue.use(VeeValidate, {\n inject: false,\n validity: true\n});\n\nnew Vue({\n store,\n render: h => h(App)\n}).$mount('#app');\n","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=sass&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectRelays.vue?vue&type=style&index=0&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectRelays.vue?vue&type=style&index=0&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommandCenter.vue?vue&type=style&index=0&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommandCenter.vue?vue&type=style&index=0&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralForm.vue?vue&type=style&index=0&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralForm.vue?vue&type=style&index=0&lang=sass&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=style&index=0&lang=sass&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=style&index=0&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Select.vue?vue&type=style&index=0&id=893eea00&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Select.vue?vue&type=style&index=0&id=893eea00&scoped=true&lang=sass&\""],"sourceRoot":""} \ No newline at end of file diff --git a/Src/WebController/Backend/wwwroot/js/app.eaa4650c.js b/Src/WebController/Backend/wwwroot/js/app.eaa4650c.js new file mode 100644 index 0000000..a74e88e --- /dev/null +++ b/Src/WebController/Backend/wwwroot/js/app.eaa4650c.js @@ -0,0 +1,2 @@ +(function(t){function e(e){for(var n,o,r=e[0],c=e[1],l=e[2],u=0,h=[];u2&&void 0!==arguments[2]?arguments[2]:{};this.newModal({modalTarget:e,modalTargetId:t,modalOptions:a})}},{key:"closeThisModal",value:function(){this.closeModal()}},{key:"closeAllModal",value:function(){this.closeModalAll()}},{key:"addNotify",value:function(t){this.insertNotify(t)}},{key:"interfaceTypeName",value:function(t){if(t&&null!==t.type){if(t.klass)return this.getTypeNameForInterface(t.type,t.klass);this.addNotify({type:"error",message:"Interface Type cannot be determined. Must be a channel, connector or peripheral."})}return""}},{key:"interfaceType",value:function(t){return t.isReturnChannel?"Return Channel":t.isNegotiationChannel?"Negotiation Channel":""}},{key:"commandType",value:function(t){return t.interfaceId&&void 0!==t.interfaceId?t.relayAgentId&&void 0!==t.relayAgentId?this.getNodeKlass(t.interfaceId+"-"+t.relayAgentId):this.getNodeKlass(t.interfaceId+"-"+this.gateway.id):t.relayAgentId&&void 0!==t.relayAgentId?n.Relay:n.Gateway}},{key:"commandTypeId",value:function(t){return t.relayAgentId&&void 0!==t.relayAgentId?""+t.relayAgentId:t.interfaceId&&void 0!==t.interfaceId?""+t.interfaceId:this.gateway?""+this.gateway.id:"error"}},{key:"isCommandPending",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return e?!0===t.isPending?"Pending":"Complete":!0===t.isPending?"is-complete":"not-complete"}},{key:"handleGlobalKeyDown",value:function(t){27===t.keyCode&&this.closeAllModal()}},{key:"unixTimeToString",value:function(t){var e=new Date(1e3*t),a=e.toISOString();return a=a.replace(/-/g,"/"),a=a.replace("T"," "),a=a.replace(".000Z",""),a}},{key:"itemPerPage",get:function(){return this.getItemPerPage}},{key:"actualPage",get:function(){return this.getActualPage}},{key:"maxIndex",get:function(){return this.itemPerPage*this.actualPage}},{key:"minIndex",get:function(){return this.maxIndex-this.itemPerPage}},{key:"gateway",get:function(){return void 0===this.getGateway?g:this.getGateway}}]),e}(f["d"]);Object(h["a"])([w.Mutation],k.prototype,"newModal",void 0),Object(h["a"])([w.Mutation],k.prototype,"closeModal",void 0),Object(h["a"])([w.Mutation],k.prototype,"closeModalAll",void 0),Object(h["a"])([b.Action],k.prototype,"insertNotify",void 0),Object(h["a"])([C.Getter],k.prototype,"getTypeNameForInterface",void 0),Object(h["a"])([O.Getter],k.prototype,"getItemPerPage",void 0),Object(h["a"])([O.Getter],k.prototype,"getActualPage",void 0),Object(h["a"])([v.Getter],k.prototype,"getNodeKlass",void 0),Object(h["a"])([v.Getter],k.prototype,"getGateway",void 0),k=Object(h["a"])([f["a"]],k);var j=k,I=function(){var t=this,e=t.$createElement,a=t._self._c||e;return void 0!==t.relay?a("div",{staticClass:"c3modal-body"},[a("div",{staticClass:"c3modal-header",class:{"has-error":!!t.relay.error}},[a("h1",[t._v("\n Relay: "),a("span",[t._v(" "+t._s(t.relay.name)+" / "+t._s(t.relay.id))])]),a("div",{staticClass:"flex-row"},[a("div",{staticClass:"details"},[a("p",[t._v("\n Parent\n "),a("span",{staticClass:"c3link",on:{click:function(e){return t.openModal(t.relay.parentId,t.relay.parentKlass)}}},[a("span",{staticClass:"capitalize"},[t._v(t._s(t.relay.parentKlass.toLowerCase())+" /\n ")]),t._v("\n "+t._s(t.relay.parentId)+"\n ")])]),a("p",[t._v("\n Build ID "),a("span",[t._v(t._s(t.relay.buildId))])]),a("p",[t._v("\n Last seen "),a("span",[t._v(t._s(t.unixTimeToString(t.relay.timestamp)))])])]),a("div",{staticClass:"actions"},[a("button",{staticClass:"c3btn c3btn--outline",on:{click:function(e){return t.openModal(t.relay.id,"COMMAND_CENTER")}}},[t._v("\n Command Center\n ")])])]),a("div",{staticClass:"flex-row host-info"},[a("div",{staticClass:"details"},[a("p",[a("span",{staticClass:"details-title"},[t._v("Computer Name ")]),a("span",{staticClass:"details-value"},[t._v(t._s(t.relay.hostInfo.computerName))])]),a("p",[a("span",{staticClass:"details-title"},[t._v("User Name ")]),a("span",{staticClass:"details-value"},[t._v(t._s(t.relay.hostInfo.userName))])]),a("p",[a("span",{staticClass:"details-title"},[t._v("Domain ")]),a("span",{staticClass:"details-value"},[t._v(t._s(""===t.relay.hostInfo.domain?"-":t.relay.hostInfo.domain))])]),a("p",[a("span",{staticClass:"details-title"},[t._v("processId ")]),a("span",{staticClass:"details-value"},[t._v(t._s(t.relay.hostInfo.processId))])]),a("p",[a("span",{staticClass:"details-title"},[t._v("is Elevated ")]),a("span",{staticClass:"details-value"},[t._v(t._s(t.relay.hostInfo.isElevated))])])]),a("div",{staticClass:"details"},[a("p",[a("span",{staticClass:"details-title"},[t._v("OS Major Version ")]),a("span",{staticClass:"details-value"},[t._v(t._s(t.relay.hostInfo.osMajorVersion))])]),a("p",[a("span",{staticClass:"details-title"},[t._v("OS Minor Version ")]),a("span",{staticClass:"details-value"},[t._v(t._s(t.relay.hostInfo.osMinorVersion))])]),a("p",[a("span",{staticClass:"details-title"},[t._v("OS Build Number ")]),a("span",{staticClass:"details-value"},[t._v(t._s(t.relay.hostInfo.osBuildNumber))])]),a("p",[a("span",{staticClass:"details-title"},[t._v("OS Service Pack Major ")]),a("span",{staticClass:"details-value"},[t._v(t._s(t.relay.hostInfo.osServicePackMajor))])]),a("p",[a("span",{staticClass:"details-title"},[t._v("OS Service Pack Minor ")]),a("span",{staticClass:"details-value"},[t._v(t._s(t.relay.hostInfo.osServicePackMinor))])]),a("p",[a("span",{staticClass:"details-title"},[t._v("OS Product Type ")]),a("span",{staticClass:"details-value"},[t._v(t._s(t.relay.hostInfo.osProductType))])]),a("p",[a("span",{staticClass:"details-title"},[t._v("OS Version ")]),a("span",{staticClass:"details-value"},[t._v(t._s(t.relay.hostInfo.osVersion))])])])]),t.relay.error&&""!==t.relay.error?a("p",{staticClass:"message-with-icon"},[a("span",{staticClass:"icon warning"}),t._v("\n Error: "+t._s(t.relay.error)+"\n ")]):t._e()]),a("div",{staticClass:"c3modal-details"},[a("ChannelList",{attrs:{"target-id":t.targetId,title:"Channels","show-empty":!0}}),a("PheripheralList",{attrs:{"target-id":t.targetId,title:"Peripherals","show-empty":!0}}),a("RouteList",{attrs:{"target-id":t.targetId,"parent-id":t.relay.id,"parent-klass":"RELAY",title:"Routes","show-empty":!0}}),"{}"!==JSON.stringify(t.relay.initialCommand)?[a("h1",[t._v("Command")]),a("pre",{staticClass:"c3command"},[t._v(t._s(JSON.stringify(t.relay.initialCommand,null,4)))])]:t._e()],2)]):t._e()},_=[],x=function(){var t=this,e=t.$createElement,a=t._self._c||e;return t.routes&&t.routes.length||t.displayEmpty?a("div",{staticClass:"c3route-list"},[a("h1",{directives:[{name:"show",rawName:"v-show",value:t.hasTitle,expression:"hasTitle"}]},[t._v(t._s(t.title))]),t.routes.length?[a("table",{staticClass:"datatable"},[t._m(0),a("tbody",t._l(t.routes,(function(e){return a("tr",{key:e.destinationAgent},[a("td",[t._v(t._s(e.destinationAgent)+":"+t._s(e.receivingInterface))]),a("td",[t._v(t._s(e.destinationAgent))]),a("td",[t._v(t._s(e.outgoingInterface))]),a("td",[t._v(t._s(e.receivingInterface))]),a("td",[t._v(t._s(e.isNeighbour?"Yes":""))]),a("td",{staticStyle:{position:"relative"}},[a("span",{staticClass:"c3route-list-more-btn icon more"}),a("ul",{staticClass:"c3route-list-menu"},[a("li",{staticClass:"c3route-list-menu-item",on:{click:function(a){return t.sendCommand(e.destinationAgent+":"+e.receivingInterface)}}},[t._v("\n Delete\n ")])])])])})),0)])]:t.displayEmpty?[t._v("\n No routes found...\n ")]:t._e()],2):t._e()},N=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("thead",[a("tr",[a("th",[t._v("Route ID")]),a("th",[t._v("Destination Agent")]),a("th",[t._v("Outgoing Interface")]),a("th",[t._v("Receiving Interface")]),a("th",[t._v("Is Neighbour")]),a("th")])])}],T=(a("7f7f"),a("7514"),a("bc3a")),R=a.n(T),G=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"hasTitle",get:function(){return!!this.title&&""!==this.title}},{key:"displayEmpty",get:function(){return!!this.showEmpty&&!0===this.showEmpty}}]),e}(i["a"]);Object(h["a"])([Object(f["c"])()],G.prototype,"title",void 0),Object(h["a"])([Object(f["c"])()],G.prototype,"showEmpty",void 0),G=Object(h["a"])([f["a"]],G);var L=G,M=Object(p["a"])("c3Module"),E=Object(p["a"])("c3Capability"),P=Object(p["a"])("optionsModule"),A=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"sendCommand",value:function(t){var e=this,a=null;a=this.targetId?{name:"RelayCommandGroup",data:{id:this.getCommandId,name:"Command",command:"RemoveRoute",arguments:[{type:"string",name:"RouteID",value:t}]}}:{name:"GatewayCommandGroup",data:{id:this.getCommandId,name:"Command",command:"RemoveRoute",arguments:[{type:"string",name:"RouteID",value:t}]}};var i="/api/gateway/";if(this.parentKlass&&this.parentKlass===n.Gateway&&(i+="".concat(this.parentId,"/command")),this.parentKlass&&this.parentKlass===n.Relay){var s=this.getRelay(this.parentId);i+=s?"".concat(s.parentId,"/relay/").concat(this.parentId,"/command"):"".concat(this.parentId,"/command")}R()({url:i,method:"POST",baseURL:this.getAPIBaseUrl,data:a}).then((function(t){e.addNotify({type:"info",message:"Command successfully sent..."}),e.closeThisModal()})).catch((function(t){var a="Command NOT sent: "+t.message;e.addNotify({type:"error",message:a}),console.error(t.message)}))}},{key:"routes",get:function(){return this.targetId?this.getRelayRoutes(this.targetId):this.getGatewayRoutes}},{key:"getCommandId",get:function(){var t=this.targetId?"RELAY":"GATEWAY",e=this.getCapabilityFor("Command",t);if(e){var a=e.commands.find((function(t){return"RemoveRoute"===t.name}));return a.id}return""}},{key:"relay",get:function(){var t=this.getRelay(this.targetId);return t||this.closeThisModal(),t}}]),e}(Object(f["b"])(j,L));Object(h["a"])([Object(f["c"])()],A.prototype,"targetId",void 0),Object(h["a"])([Object(f["c"])()],A.prototype,"parentId",void 0),Object(h["a"])([Object(f["c"])()],A.prototype,"parentKlass",void 0),Object(h["a"])([M.Getter],A.prototype,"getRelay",void 0),Object(h["a"])([M.Getter],A.prototype,"getGatewayRoutes",void 0),Object(h["a"])([M.Getter],A.prototype,"getRelayRoutes",void 0),Object(h["a"])([E.Getter],A.prototype,"getCapabilityFor",void 0),Object(h["a"])([P.Getter],A.prototype,"getAPIBaseUrl",void 0),A=Object(h["a"])([f["a"]],A);var D=A,S=D,F=(a("e347"),a("2877")),U=Object(F["a"])(S,x,N,!1,null,"35f03fb2",null),B=U.exports,$=function(){var t=this,e=t.$createElement,a=t._self._c||e;return t.channels.length||t.displayEmpty?a("div",{staticClass:"c3InterfaceList"},[a("h1",{directives:[{name:"show",rawName:"v-show",value:t.hasTitle,expression:"hasTitle"}]},[t._v(t._s(t.title))]),t.channels.length?[a("table",{staticClass:"datatable"},[t._m(0),a("tbody",t._l(t.channels,(function(e){return a("tr",{key:e.id,on:{click:function(a){return t.openModal(e.uid,e.klass)}}},[a("td",{staticClass:"c3link"},[t._v(t._s(e.id))]),a("td",[t._v(t._s(t.interfaceTypeName(e)))]),a("td",[t._v(t._s(t.interfaceType(e)))])])})),0)])]:t.displayEmpty?[t._v("\n No channels found...\n ")]:t._e()],2):t._e()},V=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("thead",[a("tr",[a("th",[t._v("Channel ID")]),a("th",[t._v("Name")]),a("th",[t._v("Channel Type")])])])}],K=Object(p["a"])("c3Module"),z=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"channels",get:function(){return this.targetId?this.getInterfacesFor(n.Channel,this.targetId):this.getInterfacesFor(n.Channel,null)}}]),e}(Object(f["b"])(j,L));Object(h["a"])([Object(f["c"])()],z.prototype,"targetId",void 0),Object(h["a"])([K.Getter],z.prototype,"getInterfacesFor",void 0),z=Object(h["a"])([f["a"]],z);var H=z,Z=H,Y=(a("8406"),Object(F["a"])(Z,$,V,!1,null,"5d31269e",null)),J=Y.exports,X=function(){var t=this,e=t.$createElement,a=t._self._c||e;return t.peripherals.length||t.displayEmpty?a("div",{staticClass:"c3InterfaceList"},[a("h1",{directives:[{name:"show",rawName:"v-show",value:t.hasTitle,expression:"hasTitle"}]},[t._v(t._s(t.title))]),t.peripherals.length?[a("table",{staticClass:"datatable"},[t._m(0),a("tbody",t._l(t.peripherals,(function(e){return a("tr",{key:e.id,on:{click:function(a){return t.openModal(e.uid,e.klass)}}},[a("td",{staticClass:"c3link"},[t._v(t._s(e.id))]),a("td",[t._v(t._s(t.interfaceTypeName(e)))])])})),0)])]:t.displayEmpty?[t._v("\n No peripherals found...\n ")]:t._e()],2):t._e()},W=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("thead",[a("tr",[a("th",[t._v("Peripheral ID")]),a("th",[t._v("Name")])])])}],q=Object(p["a"])("c3Module"),Q=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"peripherals",get:function(){return this.targetId?this.getInterfacesFor(n.Peripheral,this.targetId):this.getInterfacesFor(n.Peripheral,null)}}]),e}(Object(f["b"])(j,L));Object(h["a"])([Object(f["c"])()],Q.prototype,"targetId",void 0),Object(h["a"])([q.Getter],Q.prototype,"getInterfacesFor",void 0),Q=Object(h["a"])([f["a"]],Q);var tt=Q,et=tt,at=(a("1762"),Object(F["a"])(et,X,W,!1,null,"147c4e18",null)),nt=at.exports,it=Object(p["a"])("c3Module"),st=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"mounted",value:function(){window.addEventListener("keydown",this.handleGlobalKeyDown,!0)}},{key:"beforeDestroy",value:function(){window.removeEventListener("keydown",this.handleGlobalKeyDown,!0)}},{key:"relay",get:function(){var t=this.getRelay(this.targetId);return t||this.closeThisModal(),t}}]),e}(Object(f["b"])(j));Object(h["a"])([Object(f["c"])()],st.prototype,"targetId",void 0),Object(h["a"])([it.Getter],st.prototype,"getRelay",void 0),st=Object(h["a"])([Object(f["a"])({components:{RouteList:B,ChannelList:J,PheripheralList:nt}})],st);var ot=st,rt=ot,ct=(a("3f41"),Object(F["a"])(rt,I,_,!1,null,null,null)),lt=ct.exports,dt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return void 0!==t.c3Command?a("div",{staticClass:"c3modal-body"},[a("div",{staticClass:"c3modal-details"},[a("h1",[t._v("\n Command Details\n ")]),a("table",{staticClass:"datatable"},[t._m(0),a("tbody",[a("tr",{on:{click:function(e){t.openModal(t.InterfaceUID(t.c3Command),t.commandType(t.c3Command))}}},[a("td",[a("span",{staticClass:"c3tab-pending",class:t.isCommandPending(t.c3Command)}),t._v("\n "+t._s(t.c3Command.id)+"\n ")]),a("td",[t._v("\n "+t._s(t.isCommandPending(t.c3Command,!0))+"\n ")]),a("td",{staticClass:"hover-link command-for"},[t._v("\n "+t._s(t.commandType(t.c3Command).toLowerCase())+"\n ")]),a("td",[t._v("\n "+t._s(t.commandTypeId(t.c3Command))+"\n ")])])])]),a("pre",{staticClass:"c3command"},[t._v(t._s(JSON.stringify(t.c3Command,null,4)))])])]):t._e()},ut=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("thead",[a("tr",[a("th",[t._v("Command ID")]),a("th",[t._v("Status")]),a("th",[t._v("Command for")]),a("th",[t._v("ID")])])])}],ht=Object(p["a"])("c3CommandModule"),ft=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"mounted",value:function(){window.addEventListener("keydown",this.handleGlobalKeyDown,!0)}},{key:"beforeDestroy",value:function(){window.removeEventListener("keydown",this.handleGlobalKeyDown,!0)}},{key:"InterfaceUID",value:function(t){return t.interfaceId?t.relayAgentId?t.interfaceId+"-"+t.relayAgentId:t.interfaceId+"-"+this.gateway.id:t.relayAgentId?t.relayAgentId:this.gateway.id}},{key:"c3Command",get:function(){var t=this.getCommand(this.targetId);return t||(this.closeThisModal(),this.addNotify({type:"error",message:"The Commandyou looking for: ".concat(this.targetId,", not exist.")})),t}}]),e}(Object(f["b"])(j));Object(h["a"])([Object(f["c"])()],ft.prototype,"targetId",void 0),Object(h["a"])([ht.Getter],ft.prototype,"getCommand",void 0),ft=Object(h["a"])([f["a"]],ft);var pt=ft,gt=pt,mt=(a("c000"),Object(F["a"])(gt,dt,ut,!1,null,"461f9dc0",null)),yt=mt.exports,vt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return null!==t.gateway?a("div",{staticClass:"c3modal-body"},[a("div",{staticClass:"c3modal-header",class:{"has-error":!!t.gateway.error}},[a("h1",[t._v("\n Gateway: "),a("span",[t._v(" "+t._s(t.gateway.name)+" / "+t._s(t.gateway.id))])]),a("div",{staticClass:"flex-row"},[a("div",{staticClass:"details"},[a("p",[t._v("\n Build ID "),a("span",[t._v(t._s(t.gateway.buildId))])]),a("p",[t._v("\n Start time "),a("span",[t._v(t._s(t.unixTimeToString(t.gateway.timestamp)))])])]),a("div",{staticClass:"actions"},[a("button",{staticClass:"c3btn c3btn--grey",on:{click:function(e){return t.openModal("","CREATE_RELAY")}}},[t._v("\n New Relay\n ")])])]),t.gateway.error&&""!==t.gateway.error?a("p",{staticClass:"message-with-icon"},[a("span",{staticClass:"icon warning"}),t._v("\n Error: "+t._s(t.gateway.error)+"\n ")]):t._e(),a("div",{staticClass:"flex-row"},[a("NetworkStats",{staticStyle:{width:"250px"}}),a("div",{staticClass:"actions"},[a("button",{staticClass:"c3btn c3btn--outline",on:{click:function(e){return t.openModal(t.gateway.id,"COMMAND_CENTER")}}},[t._v("\n Command Center\n ")])])],1)]),a("div",{staticClass:"c3modal-details"},[a("ChannelList",{attrs:{"target-id":null,title:"Channels","show-empty":!0}}),a("PheripheralList",{attrs:{"target-id":null,title:"Peripherals","show-empty":!0}}),a("ConnectorList",{attrs:{title:"Connectors","show-empty":!0}}),a("RouteList",{attrs:{"target-id":null,"parent-id":t.gateway.id,"parent-klass":"GATEWAY",title:"Routes","show-empty":!0}})],1)]):t._e()},bt=[],wt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3Stats"},[a("p",[a("span",[t._v("Relays")]),a("span",[t._v(t._s(t.countRelays))])]),a("p",[a("span",[t._v("Channels")]),a("span",[t._v(t._s(t.countChannels))])]),a("p",[a("span",[t._v("Connectors")]),a("span",[t._v(t._s(t.countConnectors))])]),a("p",[a("span",[t._v("Peripherals")]),a("span",[t._v(t._s(t.countPheripherals))])]),a("p",[a("span",[t._v("URL")]),a("span",[t._v(t._s(t.url))])]),a("p",[a("span",[t._v("Port")]),a("span",[t._v(t._s(t.port))])])])},Ct=[],Ot=Object(p["a"])("c3Module"),kt=Object(p["a"])("optionsModule"),jt=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"url",get:function(){return this.getAPIUrl}},{key:"port",get:function(){return this.getAPIPort}},{key:"refreshInterval",get:function(){return this.getRefreshInterval}},{key:"countRelays",get:function(){return this.getRelays.length}},{key:"countChannels",get:function(){return this.getInterfaces([n.Channel]).length}},{key:"countConnectors",get:function(){return this.getInterfaces([n.Connector]).length}},{key:"countPheripherals",get:function(){return this.getInterfaces([n.Peripheral]).length}}]),e}(Object(f["b"])(j));Object(h["a"])([Ot.Getter],jt.prototype,"getRelays",void 0),Object(h["a"])([Ot.Getter],jt.prototype,"getInterfaces",void 0),Object(h["a"])([kt.Getter],jt.prototype,"getAPIUrl",void 0),Object(h["a"])([kt.Getter],jt.prototype,"getAPIPort",void 0),Object(h["a"])([kt.Getter],jt.prototype,"getRefreshInterval",void 0),jt=Object(h["a"])([f["a"]],jt);var It=jt,_t=It,xt=(a("37fa"),Object(F["a"])(_t,wt,Ct,!1,null,"04e7ff84",null)),Nt=xt.exports,Tt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return t.connectors.length||t.displayEmpty?a("div",{staticClass:"c3InterfaceList"},[a("h1",{directives:[{name:"show",rawName:"v-show",value:t.hasTitle,expression:"hasTitle"}]},[t._v(t._s(t.title))]),t.connectors.length?[a("table",{staticClass:"datatable"},[t._m(0),a("tbody",t._l(t.connectors,(function(e){return a("tr",{key:e.id,on:{click:function(a){return t.openModal(e.uid,e.klass)}}},[a("td",{staticClass:"c3link"},[t._v(t._s(e.id))]),a("td",[t._v(t._s(t.interfaceTypeName(e)))])])})),0)])]:t.displayEmpty?[t._v("\n No connectors found...\n ")]:t._e()],2):t._e()},Rt=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("thead",[a("tr",[a("th",[t._v("Connector ID")]),a("th",[t._v("Name")])])])}],Gt=Object(p["a"])("c3Module"),Lt=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"connectors",get:function(){return this.getInterfacesFor(n.Connector,null)}}]),e}(Object(f["b"])(j,L));Object(h["a"])([Gt.Getter],Lt.prototype,"getInterfacesFor",void 0),Lt=Object(h["a"])([f["a"]],Lt);var Mt=Lt,Et=Mt,Pt=(a("e3a5"),Object(F["a"])(Et,Tt,Rt,!1,null,"660d5fa2",null)),At=Pt.exports,Dt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3modal-body"},[a("div",{staticClass:"c3modal-details"},[t.isNotEmbeded?a("h1",[t._v("\n Create Command for: "+t._s(t.currentItem.klass)+" - "+t._s(t.currentItem.name)+"\n "+t._s(t.interfaceTypeName(t.currentItem))+"/ "+t._s(t.currentItem.id)+"\n ")]):t._e(),a("div",{staticClass:"c3command-group"},[a("Select",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],staticClass:"form-element",attrs:{legend:"Select Command Group",selected:t.selectedCommandGroup,options:t.commandGroupOptions,border:!0},on:{change:function(e){return t.changeCommandGroup(e,t.commandGroup)}}}),a("Select",{staticClass:"form-element",attrs:{legend:"Select Command",selected:t.selectedCommandTarget,options:t.commandTargetOptions,border:!0},on:{change:function(e){return t.changeCommandTarget(e,t.commandTarget)}}})],1),void 0!==t.selectedInterface&&void 0!==t.selectedCommand?a("GeneralForm",{key:t.selectedInterface+t.selectedCommand+t.selectedCommand,attrs:{klass:t.selectedInterfaceKlass,"interface-name":t.selectedInterface,command:t.selectedCommand,"target-id":t.targetId,target:t.selectedInterface,options:t.argumentOptions},on:{change:function(e){return t.changeForm(e,t.formData)}}}):t._e(),t.isNotEmbeded?a("dir",{staticClass:"flex-row c3modal-actions"},[a("button",{staticClass:"c3btn c3btn--grey",on:{click:function(e){return e.target!==e.currentTarget?null:t.closeThisModal()}}},[t._v("\n Cancel\n ")]),a("button",{staticClass:"c3btn",attrs:{disabled:t.formIsValid},on:{click:function(e){return t.sendCommand()}}},[t._v("\n Send Command\n ")])]):t._e()],1)])},St=[],Ft=(a("28a5"),a("ac6a"),a("456d"),a("761a")),Ut=a.n(Ft),Bt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3input-wrapper"},[t.hasHelp?a("span",{staticClass:"icon help"},[a("div",{staticClass:"help-text"},[t._v("\n "+t._s(t.help)+"\n ")])]):t._e(),t.random?a("span",{staticClass:"icon random",on:{click:function(e){return e.target!==e.currentTarget?null:t.onClickRandom(e)}}}):t._e(),a("input",t._b({directives:[{name:"model",rawName:"v-model",value:t.inputText,expression:"inputText"},{name:"validate",rawName:"v-validate",value:t.validate,expression:"validate"}],ref:"textinput",staticClass:"c3input-input",class:{dirty:t.isDirty},attrs:{type:"text",disabled:t.isDisabled,name:t.inputUID,autocomplete:t.autocomplete},domProps:{value:t.inputText},on:{change:t.changeInputText,focus:function(e){return t.gainFocus()},blur:function(e){return t.lostFocus()},input:function(e){e.target.composing||(t.inputText=e.target.value)}}},"input",t.$attrs,!1)),a("label",{staticClass:"c3input-label",class:{dirty:t.isDirty},on:{click:function(e){return e.target!==e.currentTarget?null:t.clickOnLabel()}}},[t._v("\n "+t._s(t.legend)+"\n ")]),a("span",{staticClass:"error-message"},[t._v(t._s(t.errors.first(t.inputUID)))])])},$t=[],Vt=(a("6b54"),function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"hasHelp",get:function(){return!!this.help}},{key:"isDisabled",get:function(){return!!this.disabled}},{key:"inputUID",get:function(){return this.name?this.name:Math.random().toString(36).substring(2)}}]),e}(i["a"]));Object(h["a"])([Object(f["c"])()],Vt.prototype,"help",void 0),Object(h["a"])([Object(f["c"])()],Vt.prototype,"name",void 0),Object(h["a"])([Object(f["c"])()],Vt.prototype,"legend",void 0),Object(h["a"])([Object(f["c"])()],Vt.prototype,"disabled",void 0),Object(h["a"])([Object(f["c"])()],Vt.prototype,"autocomplete",void 0),Vt=Object(h["a"])([f["a"]],Vt);var Kt=Vt,zt=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.focused=!1,t.inputText=t.getValue,t.intervalTimer=null,t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"mounted",value:function(){this.changeInputText(),window.addEventListener("inputkeypress",this.handleEnterAndTabKeyDown,!0)}},{key:"beforeDestroy",value:function(){window.removeEventListener("inputkeypress",this.handleEnterAndTabKeyDown,!0)}},{key:"gainFocus",value:function(){this.focused=!0,this.intervalTimer=setInterval(this.changeInputText,500)}},{key:"lostFocus",value:function(){this.focused=!1,clearInterval(this.intervalTimer),this.changeInputText()}},{key:"clickOnLabel",value:function(){this.$refs.textinput.focus()}},{key:"changeInputText",value:function(){var t=this;this.$validator.verify(this.$refs.textinput.value,this.validate).then((function(e){var a=e.valid;t.$emit("change",{value:t.inputText,valid:a})}))}},{key:"handleEnterAndTabKeyDown",value:function(t){13!==t.keyCode&&9!==t.keyCode||this.changeInputText()}},{key:"rand",value:function(t){return t<1&&(t=1),t>10&&(t=10),Math.random().toString(36).substring(2).substr(0,t)}},{key:"onClickRandom",value:function(){var t=this;this.inputText=this.rand(parseInt(this.random,10)),this.$validator.validate().then((function(e){t.changeInputText()}))}},{key:"getValue",get:function(){return""!==this.value&&void 0!==this.value||!this.random?this.value||"":this.rand(parseInt(this.random,10))}},{key:"isDirty",get:function(){return!!this.value||!!this.inputText}}]),e}(Object(f["b"])(j,Kt));Object(h["a"])([Object(f["c"])()],zt.prototype,"value",void 0),Object(h["a"])([Object(f["c"])()],zt.prototype,"random",void 0),Object(h["a"])([Object(f["c"])()],zt.prototype,"validate",void 0),zt=Object(h["a"])([Object(f["a"])({$_veeValidate:{validator:"new"}})],zt);var Ht=zt,Zt=Ht,Yt=(a("11c2"),Object(F["a"])(Zt,Bt,$t,!1,null,"25c89b67",null)),Jt=Yt.exports,Xt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3select",class:{disabled:t.isDisabled}},[a("div",{directives:[{name:"show",rawName:"v-show",value:t.isOpen,expression:"isOpen"}],staticClass:"c3select-close",on:{click:function(e){return e.target!==e.currentTarget?null:t.toggleSelect()}}}),a("div",{staticClass:"c3select-select"},[a("span",{staticClass:"c3select-selected",class:{"c3select-border":t.hasBorder},on:{click:function(e){return e.target!==e.currentTarget?null:t.toggleSelect()}}},[t._v("\n "+t._s(t.selectedValue)+"\n ")]),t.legend?a("span",{staticClass:"c3select-legend"},[t._v("\n "+t._s(t.legend)+"\n ")]):t._e(),a("span",{staticClass:"c3select-icon icon",class:t.dropDownIcon,on:{click:function(e){return e.target!==e.currentTarget?null:t.toggleSelect()}}})]),a("ul",{directives:[{name:"show",rawName:"v-show",value:t.isOpen,expression:"isOpen"}],staticClass:"c3select-options",class:{"c3select-direction-up":t.directionReverse},style:t.selectUlStyle},t._l(t.options,(function(e,n){return a("li",{key:n,staticClass:"c3select-option",class:{selected:t.isSelected(n)},on:{click:function(e){return e.target!==e.currentTarget?null:t.selectAndClose(n)}}},[t._v("\n "+t._s(e)+"\n ")])})),0)])},Wt=[],qt=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.isOpen=!1,t.hasBorder=t.border||!1,t.directionReverse=t.up||!1,t.selectRef=Math.random().toString(36).substring(2),t.selectUlStyle="",t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"mounted",value:function(){this.up||this.calculateSelectUlOffset()}},{key:"isSelected",value:function(t){return this.selected===t?"selected":""}},{key:"toggleSelect",value:function(){this.calculateSelectUlOffset(),this.isDisabled||(this.isOpen=!this.isOpen)}},{key:"selectAndClose",value:function(t){"validated"===this.feedback?this.$emit("change",{value:t,valid:!0}):this.$emit("change",t),this.toggleSelect()}},{key:"calculateSelectUlOffset",value:function(){var t=this.$el.getBoundingClientRect(),e=window.pageXOffset||document.documentElement.scrollLeft,a=window.pageYOffset||document.documentElement.scrollTop;this.directionReverse?this.selectUlStyle="position: fixed; margin-bottom: -31px; bottom: calc(100vh - ".concat(t.top+a,"px);")+" left: ".concat(t.left+e,"px; width: ").concat(t.width,"px;"):this.selectUlStyle="position: fixed; margin-top: 31px; top: ".concat(t.top+a,"px;")+" left: ".concat(t.left+e,"px; width: ").concat(t.width,"px;")}},{key:"dropDownIcon",get:function(){return this.isOpen?"carrotup":"carrotdown"}},{key:"selectedValue",get:function(){var t=this,e="";return Object.keys(this.options).forEach((function(a){t.selected===a&&(e=t.options[a])})),e}}]),e}(Object(f["b"])(j,Kt));Object(h["a"])([Object(f["c"])()],qt.prototype,"up",void 0),Object(h["a"])([Object(f["c"])()],qt.prototype,"legend",void 0),Object(h["a"])([Object(f["c"])()],qt.prototype,"border",void 0),Object(h["a"])([Object(f["c"])()],qt.prototype,"selected",void 0),Object(h["a"])([Object(f["c"])()],qt.prototype,"options",void 0),Object(h["a"])([Object(f["c"])()],qt.prototype,"feedback",void 0),qt=Object(h["a"])([f["a"]],qt);var Qt=qt,te=Qt,ee=(a("fc0c"),Object(F["a"])(te,Xt,Wt,!1,null,"434d5f55",null)),ae=ee.exports,ne=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3form"},[t._l(t.argumentsArray,(function(e){return a(t.getFieldType(e),t._b({key:e.id,tag:"component",attrs:{legend:e.name,validate:e.validation,name:e.name,random:e.randomize,value:t.setDefaultValue(e.name,e.defaultValue),help:e.description,autocomplete:"off",border:"ture",options:e.options,selected:e.selected,feedback:e.feedback},on:{change:function(a){return t.onChange(a,e.id)}}},"component",e,!1))})),t._l(t.argumentObjects,(function(e){return a(t.getFieldType(e),t._b({key:e.id,tag:"component",attrs:{legend:e.name,validate:e.validation,random:e.randomize,name:e.name,value:t.setDefaultValue(e.name,e.defaultValue),help:e.description,autocomplete:"off",border:"ture",options:e.options,selected:e.selected,feedback:e.feedback},on:{change:function(a){return t.onChange(a,e.id)}}},"component",e,!1))}))],2)},ie=[],se=(a("20d6"),function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3checkbox-wrapper"},[t.hasHelp?a("span",{staticClass:"icon help"},[a("div",{staticClass:"help-text"},[t._v("\n "+t._s(t.help)+"\n ")])]):t._e(),a("label",{staticClass:"icon checkbox",class:t.getIconKlass,attrs:{for:t.inputUID}},[t._v("\n "+t._s(t.legend)+"\n "),a("input",{directives:[{name:"model",rawName:"v-model",value:t.isChecked,expression:"isChecked"}],ref:"booleanCheckbox",attrs:{type:"checkbox",value:"None",id:t.inputUID,name:t.inputUID,"true-value":"true","false-value":"false",disabled:t.disabled,autocomplete:t.autocomplete},domProps:{checked:Array.isArray(t.isChecked)?t._i(t.isChecked,"None")>-1:t._q(t.isChecked,"true")},on:{change:[function(e){var a=t.isChecked,n=e.target,i=n.checked?"true":"false";if(Array.isArray(a)){var s="None",o=t._i(a,s);n.checked?o<0&&(t.isChecked=a.concat([s])):o>-1&&(t.isChecked=a.slice(0,o).concat(a.slice(o+1)))}else t.isChecked=i},t.toogleCheckBox]}})])])}),oe=[],re=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.isChecked=t.getIsChecked,t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"mounted",value:function(){this.toogleCheckBox()}},{key:"toogleCheckBox",value:function(){var t="true"===this.isChecked;this.$emit("change",{value:t,valid:!0})}},{key:"getIconKlass",get:function(){var t="true"===this.isChecked?"-on":"-off",e=this.isDisabled?"--disabled":"";return"checkbox".concat(t).concat(e)}},{key:"getIsChecked",get:function(){return this.value&&"boolean"===typeof this.value&&!0===this.value?"true":"false"}}]),e}(Object(f["b"])(j,Kt));Object(h["a"])([Object(f["c"])()],re.prototype,"value",void 0),re=Object(h["a"])([f["a"]],re);var ce=re,le=ce,de=(a("ceb2"),Object(F["a"])(le,se,oe,!1,null,"180a7aec",null)),ue=de.exports,he=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3textarea"},[t.hasHelp?a("span",{staticClass:"icon help"},[a("div",{staticClass:"help-text"},[t._v("\n "+t._s(t.help)+"\n ")])]):t._e(),a("div",{staticClass:"textarea",class:{focus:t.focused}},[a("textarea",{directives:[{name:"model",rawName:"v-model",value:t.dataText,expression:"dataText"}],ref:"textareainput",staticClass:"c3textarea-input",class:{focus:t.focused},attrs:{rows:"5",cols:"33",type:"checkbox",id:t.inputUID,name:t.inputUID,disabled:t.disabled,autocomplete:t.autocomplete},domProps:{value:t.dataText},on:{input:[function(e){e.target.composing||(t.dataText=e.target.value)},t.updateTextarea],focus:function(e){t.focused=!0},blur:function(e){return t.lostFocus()}}}),a("label",{staticClass:"c3textarea-label",class:{dirty:t.isDirty,focus:t.focused},on:{click:function(e){return e.target!==e.currentTarget?null:t.clickOnLabel()}}},[t._v("\n "+t._s(t.legend)+"\n ")]),t._m(0)]),a("input",{ref:"fileinput",staticStyle:{visibility:"hidden"},attrs:{id:"payload-file",type:"file"},on:{change:t.updateTextfield}})])},fe=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("label",{staticClass:"c3textarea-upload-button",attrs:{for:"payload-file"}},[a("span",{staticClass:"icon upload"},[a("div",{staticClass:"help-text"},[t._v("\n Select file to upload...\n ")])])])}],pe=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.dataText="",t.focused=!1,t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"mounted",value:function(){this.updateTextarea()}},{key:"lostFocus",value:function(){this.focused=!1,this.updateTextarea()}},{key:"updateTextarea",value:function(){this.$emit("change",{value:this.dataText,valid:!0})}},{key:"clickOnLabel",value:function(){this.$refs.textareainput.focus()}},{key:"updateTextfield",value:function(){var t,e=this,a=new FileReader,n=this.$refs.fileinput;a.readAsDataURL(n.files[0]),a.onload=function(){t=a.result,t||(t=t.replace(/^data:(.*;base64,)?/,"")),e.dataText=t,e.updateTextarea();try{e.$refs.fileinput.value="",e.$refs.fileinput.value&&(e.$refs.fileinput.type="text",e.$refs.fileinput.type="file")}catch(n){console.error("Error during input element reset.")}}}},{key:"isDirty",get:function(){return!!this.value||!!this.dataText}}]),e}(Object(f["b"])(j,Kt));Object(h["a"])([Object(f["c"])()],pe.prototype,"value",void 0),pe=Object(h["a"])([f["a"]],pe);var ge=pe,me=ge,ye=(a("339c"),Object(F["a"])(me,he,fe,!1,null,"29e94b45",null)),ve=ye.exports,be=Object(p["a"])("c3Capability"),we=(Object(p["a"])("c3Module"),function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.isValid=!1,t.argumentsArray=[],t.argumentObjects=[],t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"getFieldType",value:function(t){switch(t.type){case"boolean":return"CheckBox";case"base64":return"Textarea";case"base32":return"Textarea";case"binary":return"Textarea"}return"Input"}},{key:"onChange",value:function(t,e){this.isValid=!0;var a=this.argumentsArray.findIndex((function(t){return t.id===e}));a>-1&&(this.argumentsArray[a].value=t.value,this.argumentsArray[a].isValid=t.valid),a=this.argumentObjects.findIndex((function(t){return t.id===e})),a>-1&&(this.argumentObjects[a].value=t.value,this.argumentObjects[a].isValid=t.valid),this.emitFormData()}},{key:"emitFormData",value:function(){this.isValid=!0;var t=[this.clearArray(this.argumentsArray)];this.clearArray(this.argumentObjects).forEach((function(e){t.push(e)}));var e=this.isValid;this.$emit("change",{data:t,valid:e})}},{key:"mounted",value:function(){this.getCommandFrom(),this.emitFormData()}},{key:"clearArray",value:function(t){var e=this,a=[];return t&&t.forEach((function(t){t.isValid||(e.isValid=!1);var n=t.type,i=t.name,s=t.value;a.push({type:n,name:i,value:s})})),a}},{key:"getValidationRule",value:function(t){var e="";return t.type&&"ip"===t.type&&(e="ip|"),!t.type||"int16"!==t.type&&"uint16"!==t.type||(e="numeric|",t.min||"uint16"!==t.type||(e+="min_value:0|")),t.type&&"boolean"===t.type&&(e=""),t.min&&parseInt(t.min,10)>0&&(t.type&&"string"===t.type&&(e=e+"min:"+t.min+"|"),!t.type||"int16"!==t.type&&"uint16"!==t.type||(e=e+"min_value:"+t.min+"|"),e+="required|"),t.max&&t.min&&parseInt(t.max,10)>=parseInt(t.min,10)&&(t.type&&"string"===t.type&&(e=e+"max:"+t.max+"|"),!t.type||"int16"!==t.type&&"uint16"!==t.type||(e=e+"max_value:"+t.max+"|")),e}},{key:"getRandomLenght",value:function(t){if(t.randomize&&!0===t.randomize||"true"===t.randomize){if(t.min&&parseInt(t.min,10)>0)return parseInt(t.min,10);t.randomize=8}}},{key:"getCrossArgumentOption",value:function(t){var e="Input ID"===t?"Output ID":"Input ID";if(this.hasOptions){var a=this.options.find((function(t){return t.name===e}));if(a)return a.value}return!1}},{key:"getArgumentOption",value:function(t){if(this.hasOptions){var e=this.options.find((function(e){return e.name===t}));if(e)return e.value}return!1}},{key:"setDefaultValue",value:function(t,e){var a=e;if(this.hasOptions){var n=this.options.find((function(e){return t===e.name}));if(n)return n.value}return a}},{key:"setArgumentData",value:function(t){return t.validation=this.getValidationRule(t),t.id=Math.random().toString(36).substring(2),this.getRandomLenght(t)&&(t.randomize=this.getRandomLenght(t)),t.value={value:"",valid:!1},t}},{key:"getCommandFrom",value:function(){var t=this;if(this.capability&&this.capability.commands&&this.capability.commands.length>0){var e=this.capability.commands.find((function(e){return e.name===t.command}));void 0!==e&&e.arguments?(this.argumentsArray=[],this.argumentObjects=[],e.arguments.forEach((function(e){Array.isArray(e)?(e.forEach((function(e){e=t.setArgumentData(e)})),t.argumentsArray=e):(e=t.setArgumentData(e),t.argumentObjects.push(e))}))):this.addNotify({type:"info",message:"Command not set up correctly, Form can't be generated."})}return!1}},{key:"capability",get:function(){return this.getCapabilityFor(this.interfaceName,this.klass)}},{key:"hasOptions",get:function(){return!!this.options&&"{}"!==JSON.stringify(this.options)}}]),e}(Object(f["b"])(j)));Object(h["a"])([Object(f["c"])()],we.prototype,"command",void 0),Object(h["a"])([Object(f["c"])()],we.prototype,"target",void 0),Object(h["a"])([Object(f["c"])()],we.prototype,"klass",void 0),Object(h["a"])([Object(f["c"])()],we.prototype,"targetId",void 0),Object(h["a"])([Object(f["c"])()],we.prototype,"interfaceName",void 0),Object(h["a"])([Object(f["c"])()],we.prototype,"options",void 0),Object(h["a"])([be.Getter],we.prototype,"getCapabilityFor",void 0),Object(h["a"])([be.Getter],we.prototype,"getTypeNameForInterface",void 0),we=Object(h["a"])([Object(f["a"])({components:{Input:Jt,Select:ae,Textarea:ve,CheckBox:ue}})],we);var Ce=we,Oe=Ce,ke=(a("e1b5"),Object(F["a"])(Oe,ne,ie,!1,null,null,null)),je=ke.exports,Ie=Object(p["a"])("c3Module"),_e=Object(p["a"])("c3Capability"),xe=Object(p["a"])("optionsModule"),Ne=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.formData={},t.isValid=!1,t.commandGroup="",t.commandTarget="",t.formDirty=!1,t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"mounted",value:function(){var t=this;if(window.addEventListener("keydown",this.handleGlobalKeyDown,!0),this.hasOptions&&this.options.formDefault){var e=Object.keys(this.commandTargetOptions).find((function(e){return!(!t.options||!t.options.formDefault)&&t.commandTargetOptions[e]===t.options.formDefault.prefix+t.options.formDefault.interface}));e&&(this.commandTarget=e)}}},{key:"beforeDestroy",value:function(){window.removeEventListener("keydown",this.handleGlobalKeyDown,!0)}},{key:"resetForm",value:function(){this.commandTarget=""}},{key:"changeForm",value:function(t){if(this.isValid=t.valid,1===t.data.length&&0===t.data[0].length?this.formData=[]:(0===t.data[0].length&&t.data.shift(),this.formData=t.data),"new"===this.targetId){var e={name:this.selectedCommandGroup,data:{id:this.getCommandId,name:this.selectedInterface,command:this.selectedCommand,arguments:this.formData}};this.$emit("change",{data:e,valid:this.isValid})}}},{key:"changeCommandGroup",value:function(t){this.commandGroup=t}},{key:"changeCommandTarget",value:function(t){this.isValid=!0,this.commandTarget=t}},{key:"sendCommand",value:function(){var t=this,e={name:this.selectedCommandGroup,data:{id:this.getCommandId,name:this.selectedInterface,command:this.selectedCommand,arguments:this.formData}},a="/api/gateway/";if(this.currentItem&&this.currentItem.klass===n.Gateway&&(a+="".concat(this.currentItem.id,"/command")),this.currentItem&&this.currentItem.klass===n.Relay&&(a+="".concat(this.currentItem.parentId,"/relay/").concat(this.currentItem.id,"/command")),this.currentItem&&this.currentItem.klass===n.Channel||this.currentItem&&this.currentItem.klass===n.Peripheral||this.currentItem&&this.currentItem.klass===n.Connector){if(this.currentItem.parentKlass===n.Gateway)switch(this.currentItem.klass){case n.Channel:a+="".concat(this.currentItem.parentId,"/channel/").concat(this.currentItem.id,"/command");break;case n.Peripheral:a+="".concat(this.currentItem.parentId,"/peripheral/").concat(this.currentItem.id,"/command");break;case n.Connector:a+="".concat(this.currentItem.parentId,"/connector/").concat(this.currentItem.id,"/command");break}if(this.currentItem.parentKlass===n.Relay)switch(this.currentItem.klass){case n.Channel:a+="".concat(this.gateway.id,"/relay/").concat(this.currentItem.parentId,"/channel/").concat(this.currentItem.id,"/command");break;case n.Peripheral:a+="".concat(this.gateway.id,"/relay/").concat(this.currentItem.parentId,"/peripheral/").concat(this.currentItem.id,"/command");break;case n.Connector:a+="".concat(this.gateway.id,"/relay/").concat(this.currentItem.parentId,"/connector/").concat(this.currentItem.id,"/command");break}}R()({url:a,method:"POST",baseURL:this.getAPIBaseUrl,data:e}).then((function(e){t.addNotify({type:"info",message:"Command successfully sent..."}),t.closeThisModal()})).catch((function(e){var a="Command NOT sent: "+e.message;t.addNotify({type:"error",message:a}),console.error(e.message)}))}},{key:"formIsValid",get:function(){return!this.isValid}},{key:"currentItem",get:function(){return this.getInterface(this.targetId)}},{key:"selectedCommandGroup",get:function(){return this.commandGroup?(this.resetForm(),this.commandGroup):this.defaultCommandGroup}},{key:"selectedCommandTarget",get:function(){return this.commandTarget?this.commandTarget:this.defaultCommandTarget}},{key:"defaultCommandGroup",get:function(){return void 0!==this.options&&void 0!==this.options.targetGroup?this.options.targetGroup:this.commandGroupOptions?Object.keys(this.commandGroupOptions)[0]:""}},{key:"defaultCommandTarget",get:function(){return this.commandTargetOptions?(this.changeCommandTarget(Object.keys(this.commandTargetOptions)[0]),Object.keys(this.commandTargetOptions)[0]):""}},{key:"commandGroupOptions",get:function(){return this.currentItem?this.getCommandGroupFor(this.currentItem.klass):""}},{key:"commandTargetOptions",get:function(){return this.currentItem?this.currentItem.klass===n.Gateway||this.currentItem.klass===n.Relay?this.getCommandTargetFor(this.selectedCommandGroup,this.currentItem.klass):this.getCommandTargetFor(this.selectedCommandGroup,this.currentItem.klass,this.interfaceTypeName(this.currentItem)):""}},{key:"selectedInterfaceKlass",get:function(){return void 0!==this.commandTarget?Ut.a.singular(this.commandTarget.split("_")[0]).toUpperCase():""}},{key:"selectedInterface",get:function(){return void 0!==this.commandTarget?this.commandTarget.split("_")[1]:""}},{key:"selectedCommand",get:function(){return void 0!==this.commandTarget?this.commandTarget.split("_")[2]:""}},{key:"getCommandId",get:function(){var t=this,e=this.getCapabilityFor(this.selectedInterface,this.selectedInterfaceKlass);if(e){var a=e.commands.find((function(e){return e.name===t.selectedCommand}));return a.id}return""}},{key:"isNotEmbeded",get:function(){return void 0===this.embeded||!0!==this.embeded}},{key:"hasOptions",get:function(){return!!this.options&&"{}"!==JSON.stringify(this.options)}},{key:"argumentOptions",get:function(){return!(!this.hasOptions||!this.options.formDefault)&&this.options.formDefault.arguments}}]),e}(Object(f["b"])(j));Object(h["a"])([Object(f["c"])()],Ne.prototype,"targetId",void 0),Object(h["a"])([Object(f["c"])()],Ne.prototype,"embeded",void 0),Object(h["a"])([Object(f["c"])()],Ne.prototype,"options",void 0),Object(h["a"])([Ie.Getter],Ne.prototype,"getInterface",void 0),Object(h["a"])([_e.Getter],Ne.prototype,"getCapabilityFor",void 0),Object(h["a"])([_e.Getter],Ne.prototype,"getCommandGroupFor",void 0),Object(h["a"])([_e.Getter],Ne.prototype,"getCommandTargetFor",void 0),Object(h["a"])([xe.Getter],Ne.prototype,"getAPIBaseUrl",void 0),Ne=Object(h["a"])([Object(f["a"])({components:{Input:Jt,Select:ae,GeneralForm:je}})],Ne);var Te=Ne,Re=Te,Ge=(a("e181"),Object(F["a"])(Re,Dt,St,!1,null,null,null)),Le=Ge.exports,Me=(Object(p["a"])("c3Module"),function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"mounted",value:function(){window.addEventListener("keydown",this.handleGlobalKeyDown,!0)}},{key:"beforeDestroy",value:function(){window.removeEventListener("keydown",this.handleGlobalKeyDown,!0)}}]),e}(Object(f["b"])(j)));Me=Object(h["a"])([Object(f["a"])({components:{RouteList:B,ChannelList:J,NetworkStats:Nt,ConnectorList:At,PheripheralList:nt,CommandCenterModal:Le}})],Me);var Ee=Me,Pe=Ee,Ae=Object(F["a"])(Pe,vt,bt,!1,null,null,null),De=Ae.exports,Se=function(){var t=this,e=t.$createElement,a=t._self._c||e;return void 0!==t.c3Interface?a("div",{staticClass:"c3modal-body"},[a("div",{staticClass:"c3modal-header",class:{"is-return":!!t.c3Interface.isReturnChannel,"has-error":!!t.c3Interface.error}},[a("h1",[a("span",{staticClass:"capitalize"},[t._v(t._s(t.c3Interface.klass.toLowerCase())+" ")]),t._v("\n ID: "+t._s(t.c3Interface.id||"")+"\n ")]),a("div",{staticClass:"flex-row"},[a("div",{staticClass:"details"},[a("p",[t._v("\n Parent\n "),a("span",{staticClass:"c3link capitalize"},[t._v("\n "+t._s(t.c3Interface.parentKlass.toLowerCase())+" /\n "+t._s(t.c3Interface.parentId)+"\n ")])]),a("p",{staticClass:"capitalize"},[t._v("\n "+t._s(t.c3Interface.klass.toLowerCase())+" Type\n "),a("span",[t._v("\n "+t._s(t.interfaceTypeName(t.c3Interface))+"\n ")])]),a("p",[t._v("\n Jitter [min/max]\n "),a("span",[t._v("\n "+t._s(t.getInterfaceJitter)+"\n ")])])]),a("div",{staticClass:"actions"},[t.showRelayDropdown?a("span",{staticClass:"c3modal-more-btn icon more"},[t._v("\n INTERFACE OPTIONS\n ")]):t._e(),a("ul",{staticClass:"c3modal-menu"},[a("li",{directives:[{name:"show",rawName:"v-show",value:t.showNewRelayButton,expression:"showNewRelayButton"}],staticClass:"c3modal-menu-item",on:{click:function(e){t.openModal(t.c3Interface.id,"CREATE_RELAY",t.generateOprions())}}},[t._v("\n New Relay\n ")]),a("li",{directives:[{name:"show",rawName:"v-show",value:t.showConnectRelayButton,expression:"showConnectRelayButton"}],staticClass:"c3modal-menu-item",on:{click:function(e){t.openModal(t.c3Interface.uid,"CONNECT_RELAY",t.generateOprions())}}},[t._v("\n Connect Relay\n ")])]),a("button",{staticClass:"c3btn c3btn--outline",on:{click:function(e){return t.openModal(t.c3Interface.uid,"COMMAND_CENTER")}}},[t._v("\n Command Center\n ")])])]),t.c3Interface.error&&""!==t.c3Interface.error?a("p",{staticClass:"message-with-icon"},[a("span",{staticClass:"icon warning"}),t._v("\n Error: "+t._s(t.c3Interface.error)+"\n ")]):t._e(),t.c3Interface.isReturnChannel&&"false"!==t.c3Interface.isReturnChannel?a("p",{staticClass:"message-with-icon"},[a("span",{staticClass:"icon return"}),t._v("\n This is a Gateway Return Channel (GRC).\n ")]):t._e(),t.c3Interface.isNegotiationChannel&&"false"!==t.c3Interface.isNegotiationChannel?a("p",{staticClass:"message-with-icon"},[a("span",{staticClass:"icon exclamation"}),t._v("\n This is a Negotiation Channel.\n ")]):t._e()]),a("div",{staticClass:"c3modal-details"},[""!==t.c3Interface.propertiesText?[a("h1",[t._v("Properties")]),a("pre",{staticClass:"c3command"},[t._v(t._s(t.c3Interface.propertiesText))])]:t._e()],2)]):t._e()},Fe=[],Ue=(a("4917"),a("8615"),Object(p["a"])("c3Module")),Be=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"showButtons",value:function(){return!(this.isReturnChannel()||!this.isChannel())}},{key:"isChannel",value:function(){return!!this.c3Interface&&this.c3Interface.klass===n.Channel}},{key:"isReturnChannel",value:function(){return!!this.c3Interface&&!0===this.c3Interface.isReturnChannel}},{key:"isNegotiationChannel",value:function(){return!!this.c3Interface&&!0===this.c3Interface.isNegotiationChannel}},{key:"getArguments",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g;return this.isChannel()&&t.propertiesText&&t.propertiesText.arguments?JSON.parse(JSON.stringify(t.propertiesText.arguments)):[]}},{key:"getArgumentsAttributes",value:function(t){return Array.isArray(t[0])?t[0]:[]}},{key:"getPropertiesArguments",value:function(t){var e=[];return Object.values(t).forEach((function(t){Array.isArray(t)||e.push(t)})),e}},{key:"getInterfaceParentId",value:function(){return this.c3Interface&&this.c3Interface.parentId?this.c3Interface.parentId:""}},{key:"generateSourceOptions",value:function(){return{relay:this.getRelay(this.getInterfaceParentId()),interface:this.c3Interface}}},{key:"changeInputOutputIDs",value:function(t){var e={name:"",type:"",value:""},a={name:"",type:"",value:""},n="";return t.length&&(e=t.find((function(t){return"Input ID"===t.name}))||"",a=t.find((function(t){return"Output ID"===t.name}))||""),n=a.value,a.value=e.value,e.value=n,t}},{key:"isNormalChannel",value:function(){var t=JSON.stringify(this.getArguments(this.c3Interface));return!!t.match(/Input ID/g)&&!!t.match(/Output ID/g)}},{key:"generateCommandCenterArguments",value:function(){var t=[],e=this.getArgumentsAttributes(this.getArguments(this.c3Interface));e.length>0&&(e=this.changeInputOutputIDs(e));var a=this.getPropertiesArguments(this.getArguments(this.c3Interface));return e.length&&e.forEach((function(e){t.push(e)})),a.length&&a.forEach((function(e){t.push(e)})),t}},{key:"getPrefix",value:function(){return this.isNormalChannel()?"AddChannel":this.isNegotiationChannel()?"AddNegotiationChannel":""}},{key:"getInterfaceTypeString",value:function(){return this.c3Interface?this.interfaceTypeName(this.c3Interface):""}},{key:"generateOprions",value:function(){return{formDefault:{prefix:this.getPrefix(),interface:this.getInterfaceTypeString(),arguments:this.generateCommandCenterArguments()},source:this.generateSourceOptions()}}},{key:"mounted",value:function(){window.addEventListener("keydown",this.handleGlobalKeyDown,!0)}},{key:"beforeDestroy",value:function(){window.removeEventListener("keydown",this.handleGlobalKeyDown,!0)}},{key:"c3Interface",get:function(){var t=this.getInterface(this.targetId);return t||this.closeThisModal(),t}},{key:"showRelayDropdown",get:function(){return this.showConnectRelayButton||this.showNewRelayButton}},{key:"showConnectRelayButton",get:function(){return this.showButtons()}},{key:"showNewRelayButton",get:function(){return this.showButtons()}},{key:"getInterfaceJitter",get:function(){return this.c3Interface?this.c3Interface.propertiesText.jitter:"[N/A, N/A]"}}]),e}(Object(f["b"])(j));Object(h["a"])([Object(f["c"])()],Be.prototype,"targetId",void 0),Object(h["a"])([Ue.Getter],Be.prototype,"getRelay",void 0),Object(h["a"])([Ue.Getter],Be.prototype,"getInterface",void 0),Object(h["a"])([Ue.Getter],Be.prototype,"getNodeKlass",void 0),Be=Object(h["a"])([f["a"]],Be);var $e=Be,Ve=$e,Ke=(a("83cd"),Object(F["a"])(Ve,Se,Fe,!1,null,"4d83b87a",null)),ze=Ke.exports,He=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3modal-body"},[a("div",{staticClass:"c3modal-details"},[a("h1",[t._v("Relay Setup")]),a("p",[t._v("Please setup a Relay.")]),a("Input",{staticClass:"form-element",attrs:{legend:"Name / Auto Generated ID",help:"If you do not enter a name an ID will be automatically generated."},on:{change:function(e){return t.changeName(e,t.relayName)}}}),a("Input",{staticClass:"form-element",attrs:{legend:"Parent Gateway Build ID",value:t.gatewayBuildsId,disabled:!0}}),a("div",{staticClass:"form-row"},[a("Select",{staticClass:"form-element",attrs:{legend:"TargetSuffix",selected:t.selectedTargetSuffix,options:{dll:"dll",exe:"exe",shellcode:"shellcode"},border:!0},on:{change:function(e){return t.changeTargetSuffix(e,t.targetSuffix)}}}),a("Select",{staticClass:"form-element",attrs:{legend:"Architecture",selected:t.selectedArchitecture,options:{x86:"x86",x64:"x64"},border:!0},on:{change:function(e){return t.changeArchitecture(e,t.architecture)}}})],1),a("div",{staticClass:"c3modal-form"},[t.donutSelected?a("DonutForm",{on:{change:function(e){return t.changeDonutForm(e,t.formData)}}}):t._e()],1),a("div",{staticClass:"c3modal-form"},[a("h1",[t._v("Add Command")]),a("p",[t._v("Please Select the first command to the Relay.")]),a("CommandCenterModal",{staticClass:"embeded-modal",attrs:{"target-id":"new",embeded:!0,options:t.addNewRelayToOptions},on:{change:function(e){return t.changeForm(e,t.formData)}}})],1),a("dir",{staticClass:"flex-row c3modal-actions"},[a("button",{staticClass:"c3btn c3btn--grey",on:{click:function(e){return e.target!==e.currentTarget?null:t.closeThisModal()}}},[t._v("Cancel")]),a("button",{staticClass:"c3btn c3btn",attrs:{disabled:t.formIsValid},on:{click:function(e){return t.createNewRelay()}}},[t._v("Create and Download Relay")])])],1)])},Ze=[],Ye=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"donut-form"},[a("h1",[t._v("Add Command")]),a("Select",{staticClass:"form-element line",attrs:{legend:"Format",selected:t.selectedFormat,options:{Binary:"Binary",Base64:"Base64",Ruby:"Ruby",C:"C",Python:"Python",Powershell:"Powershell",Csharp:"Csharp",HeX:"HeX"},border:!0},on:{change:function(e){return t.changeFormat(e,t.format)}}}),a("Select",{staticClass:"form-element half-line",attrs:{legend:"Compress",selected:t.selectedCompress,options:{None:"None",Aplib:"aPLib",Lznt1:"Lznt1",Xpress:"Xpress",Xpress_huff:"Xpress_huff"},border:!0},on:{change:function(e){return t.changeCompress(e,t.compress)}}}),a("Select",{staticClass:"form-element half-line",attrs:{legend:"Entropy",selected:t.selectedEntropy,options:{None:"None",Random:"Random",Default:"Default"},border:!0},on:{change:function(e){return t.changeEntropy(e,t.entropy)}}}),a("Select",{staticClass:"form-element half-line",attrs:{legend:"ExitOpt",selected:t.selectedExitOpt,options:{Exit_thread:"Exit_thread",Exit_process:"Exit_process"},border:!0},on:{change:function(e){return t.changeExitOpt(e,t.exitOpt)}}}),a("Select",{staticClass:"form-element half-line",attrs:{legend:"Bypass",selected:t.selectedBypass,options:{None:"None",Abort:"Abort",Continue:"Continue"},border:!0},on:{change:function(e){return t.changeBypass(e,t.bypass)}}})],1)},Je=[],Xe=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.format="Binary",t.compress="None",t.entropy="Default",t.exitOpt="Exit_thread",t.bypass="None",t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"changeFormat",value:function(t){this.format=t,this.emitDonut()}},{key:"changeCompress",value:function(t){this.compress=t,this.emitDonut()}},{key:"changeEntropy",value:function(t){this.entropy=t,this.emitDonut()}},{key:"changeExitOpt",value:function(t){this.exitOpt=t,this.emitDonut()}},{key:"changeBypass",value:function(t){this.bypass=t,this.emitDonut()}},{key:"emitDonut",value:function(){var t={format:this.format.toUpperCase(),compress:this.compress.toUpperCase(),entropy:this.entropy.toUpperCase(),exitOpt:this.exitOpt.toUpperCase(),bypass:this.bypass.toUpperCase()};this.$emit("change",t)}},{key:"mounted",value:function(){this.emitDonut()}},{key:"selectedFormat",get:function(){return this.format}},{key:"selectedCompress",get:function(){return this.compress}},{key:"selectedEntropy",get:function(){return this.entropy}},{key:"selectedExitOpt",get:function(){return this.exitOpt}},{key:"selectedBypass",get:function(){return this.bypass}}]),e}(f["d"]);Xe=Object(h["a"])([Object(f["a"])({components:{Select:ae}})],Xe);var We=Xe,qe=We,Qe=(a("7ba3"),Object(F["a"])(qe,Ye,Je,!1,null,"1b8b4092",null)),ta=Qe.exports,ea=(Object(p["a"])("c3Module"),Object(p["a"])("c3Capability")),aa=Object(p["a"])("optionsModule"),na=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.formData={},t.relayName="",t.isValid=!1,t.targetSuffix="exe",t.architecture="x64",t.commandGroup="Relay",t.commandTarget="",t.donutSelected=!1,t.donutFormData={},t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"changeCommandTarget",value:function(t){this.isValid=!0,this.commandTarget=t}},{key:"mounted",value:function(){window.addEventListener("keydown",this.handleGlobalKeyDown,!0)}},{key:"beforeDestroy",value:function(){window.removeEventListener("keydown",this.handleGlobalKeyDown,!0)}},{key:"changeName",value:function(t){this.relayName=t.value}},{key:"changeForm",value:function(t){this.isValid=t.valid,this.formData=t.data}},{key:"changeDonutForm",value:function(t){this.donutFormData=t}},{key:"changeTargetSuffix",value:function(t){this.targetSuffix=t,"shellcode"===this.targetSuffix?this.donutSelected=!0:this.donutSelected=!1}},{key:"changeArchitecture",value:function(t){this.architecture=t}},{key:"createNewRelay",value:function(){var t=this,e={type:this.selectedTargetSuffix,architecture:this.selectedArchitecture,parentGatewayBuildId:this.gatewayBuildsId,name:this.relayName,startupCommands:[this.formData],donut:this.donutFormData};R()({url:"/api/build/customize",method:"POST",baseURL:this.getAPIBaseUrl,data:e,responseType:"blob"}).then((function(e){var a="",n=new Blob([e.data],{type:e.data.type}),i=e.headers["content-disposition"],s=window.URL.createObjectURL(n),o=document.createElement("a");o.href=s,void 0!==i&&(a=i.split("filename=")[1].split(";")[0].replace(/%20/gi,"-")),"string"===typeof a&&""!==a||(a="relay.exe"),o.href=s,o.setAttribute("download",a),document.body.appendChild(o),o.click(),o.remove(),window.URL.revokeObjectURL(s),t.closeThisModal()})).catch((function(e){t.addNotify({type:"error",message:e.message}),console.error(e.message)}))}},{key:"formIsValid",get:function(){return!this.isValid}},{key:"selectedTargetSuffix",get:function(){return this.targetSuffix}},{key:"selectedArchitecture",get:function(){return this.architecture}},{key:"gatewayBuildsId",get:function(){return this.gateway.buildId?this.gateway.buildId:""}},{key:"selectedCommand",get:function(){return void 0!==this.commandTarget?this.commandTarget.split("_")[2]:""}},{key:"selectedCommandTarget",get:function(){return this.commandTarget?this.commandTarget:this.defaultCommandTarget}},{key:"commandTargetOptions",get:function(){return this.getCommandTargetFor("NewRelayCommandGroup",n.Relay)}},{key:"selectedCommandGroup",get:function(){return this.commandGroup?"":this.commandGroup}},{key:"selectedInterface",get:function(){return void 0!==this.commandTarget?this.commandTarget.split("_")[1]:""}},{key:"defaultCommandTarget",get:function(){return this.commandTargetOptions?(this.changeCommandTarget(Object.keys(this.commandTargetOptions)[0]),Object.keys(this.commandTargetOptions)[0]):""}},{key:"addNewRelayToOptions",get:function(){return{formDefault:this.options.formDefault,source:this.options.source,targetGroup:"NewRelayCommandGroup"}}}]),e}(Object(f["b"])(j));Object(h["a"])([Object(f["c"])()],na.prototype,"options",void 0),Object(h["a"])([ea.Getter],na.prototype,"getCommandTargetFor",void 0),Object(h["a"])([ea.Getter],na.prototype,"getTypesForInterfaceKlass",void 0),Object(h["a"])([aa.Getter],na.prototype,"getAPIBaseUrl",void 0),na=Object(h["a"])([Object(f["a"])({components:{Input:Jt,Select:ae,DonutForm:ta,GeneralForm:je,CommandCenterModal:Le}})],na);var ia=na,sa=ia,oa=(a("4556"),Object(F["a"])(sa,He,Ze,!1,null,null,null)),ra=oa.exports,ca=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3modal-body"},[a("div",{staticClass:"c3modal-details"},[t._m(0),a("p",[t._v("Please setup a Gateway to begin using c3.")]),a("Input",{staticClass:"form-element",attrs:{legend:"Name / Auto Generated ID",help:"If you do not enter a name an ID will be automatically generated."},on:{change:function(e){return t.changeName(e,t.gatewayName)}}}),a("div",{staticClass:"form-row"},[a("Select",{staticClass:"form-element",attrs:{legend:"TargetSuffix",selected:t.selectedTargetSuffix,options:{exe:"exe"},border:!0},on:{change:function(e){return t.changeTargetSuffix(e,t.targetSuffix)}}}),a("Select",{staticClass:"form-element",attrs:{legend:"Architecture",selected:t.selectedArchitecture,options:{x86:"x86",x64:"x64"},border:!0},on:{change:function(e){return t.changeArchitecture(e,t.architecture)}}})],1),a("dir",{staticClass:"flex-row c3modal-actions"},[a("button",{directives:[{name:"show",rawName:"v-show",value:!1!==t.hasSelectedGateway,expression:"hasSelectedGateway !== false"}],staticClass:"c3btn c3btn--grey",on:{click:function(e){return e.target!==e.currentTarget?null:t.closeThisModal()}}},[t._v("\n Cancel\n ")]),a("button",{staticClass:"c3btn c3btn pull-right",on:{click:function(e){return t.createNewGateway()}}},[t._v("\n Create and download Gateway\n ")])])],1)])},la=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3modal-title-wrapper"},[a("h1",[t._v("Gateway Setup")])])}],da=Object(p["a"])("c3Module"),ua=Object(p["a"])("optionsModule"),ha=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.gatewayName="",t.targetSuffix="exe",t.architecture="x64",t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"mounted",value:function(){window.addEventListener("keydown",this.handleGlobalKeyDown,!0)}},{key:"beforeDestroy",value:function(){window.removeEventListener("keydown",this.handleGlobalKeyDown,!0)}},{key:"changeName",value:function(t){this.gatewayName=t.value}},{key:"changeTargetSuffix",value:function(t){this.targetSuffix=t}},{key:"changeArchitecture",value:function(t){this.architecture=t}},{key:"createNewGateway",value:function(){var t=this,e="/api/gateway/exe/".concat(this.architecture);this.gatewayName&&""!==this.gatewayName&&(e+="?name=".concat(this.gatewayName)),R()({url:e,method:"GET",baseURL:this.getAPIBaseUrl,responseType:"blob"}).then((function(e){var a=new Blob([e.data],{type:e.data.type}),n=window.URL.createObjectURL(a),i=document.createElement("a");i.href=n;var s=e.headers["content-disposition"],o="";void 0!==s&&(o=s.split("filename=")[1].split(";")[0].replace(/%20/gi,"-")),"string"===typeof o&&""!==o||(o="gateway.exe"),i.href=n,i.setAttribute("download",o),document.body.appendChild(i),i.click(),i.remove(),window.URL.revokeObjectURL(n),t.closeThisModal()})).catch((function(e){t.addNotify({type:"error",message:e.message}),console.error(e.message)}))}},{key:"selectedTargetSuffix",get:function(){return this.targetSuffix}},{key:"selectedArchitecture",get:function(){return this.architecture}},{key:"hasSelectedGateway",get:function(){return this.getGateways.length>0}}]),e}(Object(f["b"])(j));Object(h["a"])([Object(f["c"])()],ha.prototype,"targetId",void 0),Object(h["a"])([da.Getter],ha.prototype,"getGateways",void 0),Object(h["a"])([ua.Getter],ha.prototype,"getAPIBaseUrl",void 0),ha=Object(h["a"])([Object(f["a"])({components:{Input:Jt,Select:ae}})],ha);var fa=ha,pa=fa,ga=Object(F["a"])(pa,ca,la,!1,null,null,null),ma=ga.exports,ya=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3modal-body"},[a("div",{staticClass:"c3modal-header"},[a("h1",[t._v("Source Relay & Interface")]),a("div",{staticClass:"flex-row"},[a("div",{staticClass:"details"},[a("p",[t._v("\n Relay "),a("span",[t._v(" "+t._s(t.relay.name)+" / "+t._s(t.relay.id))])]),a("p",[t._v("\n Build ID "),a("span",[t._v(t._s(t.relay.buildId))])]),a("p",[t._v("\n "+t._s(t.c3Interface.klass.toLowerCase())+" ID\n "),a("span",[t._v(t._s(t.c3Interface.id||""))])]),a("p",[t._v("\n "+t._s(t.c3Interface.klass.toLowerCase())+" Type\n "),a("span",[t._v(t._s(t.interfaceTypeName(t.c3Interface)))])])])])]),a("div",{staticClass:"c3modal-details"},[a("div",{staticStyle:{"padding-bottom":"24px"}},[a("h1",[t._v("Select target Relay")]),a("Select",{staticClass:"form-element",attrs:{legend:"Target Relay",selected:t.selectedRelay,options:t.generateRelayList(),border:!0},on:{change:function(e){return t.changeTargetRelay(e,t.targetRelay)}}})],1),a("div",{staticClass:"c3modal-form"},[a("CommandCenterModal",{staticClass:"embeded-modal",attrs:{"target-id":t.selectedRelay,embeded:!1,options:t.addNewRelayGroupToOptions},on:{change:function(e){return t.changeForm(e,t.formData)}}})],1)])])},va=[],ba=Object(p["a"])("c3Module"),wa=Object(p["a"])("c3Capability"),Ca=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.formData={},t.isValid=!1,t.targetRelay="",t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"generateRelayList",value:function(){var t=this,e={},a="",n=0,i="null",s=this.getRelays;return s.forEach((function(i,s){i.id!==t.relay.id&&(n++,e[i.id]="".concat(i.id," ").concat(i.name?"- "+i.name+" ":""),""===a&&(a=i.id))})),0===n&&(e[i]="Nothing to select...",a=i),""===this.targetRelay&&(this.targetRelay=a),e}},{key:"mounted",value:function(){window.addEventListener("keydown",this.handleGlobalKeyDown,!0)}},{key:"beforeDestroy",value:function(){window.removeEventListener("keydown",this.handleGlobalKeyDown,!0)}},{key:"changeForm",value:function(t){this.isValid=t.valid,this.formData=t.data}},{key:"changeTargetRelay",value:function(t){this.targetRelay=t}},{key:"relay",get:function(){return this.sourceRelay}},{key:"c3Interface",get:function(){return this.sourceInterface}},{key:"hasOptions",get:function(){return!!this.options&&"{}"!==JSON.stringify(this.options)}},{key:"sourceRelay",get:function(){return this.hasOptions&&this.options.source&&this.options.source.relay?this.options.source.relay:g}},{key:"sourceInterface",get:function(){return this.hasOptions&&this.options.source&&this.options.source.interface?this.options.source.interface:g}},{key:"formIsValid",get:function(){return!this.isValid}},{key:"selectedRelay",get:function(){return this.targetRelay}},{key:"addNewRelayGroupToOptions",get:function(){return{formDefault:this.options.formDefault,source:this.options.source,targetGroup:"NewRelayCommandGroup"}}},{key:"showConnectRelayButton",get:function(){return!0}}]),e}(Object(f["b"])(j));Object(h["a"])([Object(f["c"])()],Ca.prototype,"targetId",void 0),Object(h["a"])([Object(f["c"])()],Ca.prototype,"options",void 0),Object(h["a"])([wa.Getter],Ca.prototype,"getCommandTargetFor",void 0),Object(h["a"])([wa.Getter],Ca.prototype,"getTypesForInterfaceKlass",void 0),Object(h["a"])([ba.Getter],Ca.prototype,"getRelays",void 0),Object(h["a"])([ba.Getter],Ca.prototype,"getRelay",void 0),Object(h["a"])([ba.Getter],Ca.prototype,"getInterface",void 0),Object(h["a"])([ba.Getter],Ca.prototype,"getInterfacesFor",void 0),Ca=Object(h["a"])([Object(f["a"])({components:{Input:Jt,Select:ae,GeneralForm:je,CommandCenterModal:Le}})],Ca);var Oa=Ca,ka=Oa,ja=(a("d94a"),Object(F["a"])(ka,ya,va,!1,null,null,null)),Ia=ja.exports,_a=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3modal-body"},[a("div",{staticClass:"c3modal-details"},[a("h1",{staticClass:"c3network-title"},[t._v("\n Network Configuration\n ")]),a("div",{staticClass:"form-row "},[a("Input",{key:"c3-url-field",staticClass:"form-element",attrs:{legend:"Url",value:t.c3Url,disabled:!1,validate:"required",name:"Url"},on:{change:function(e){return t.setUrl(e,t.c3Url)}}})],1),a("div",{staticClass:"form-row"},[a("Input",{key:"c3-port-field",staticClass:"form-element",attrs:{legend:"Port",value:t.c3Port,disabled:!1,validate:"required|numeric|max_value:65535",name:"Port"},on:{change:function(e){return t.setPort(e,t.c3Port)}}})],1),a("dir",{staticClass:"flex-row c3modal-actions"},[a("button",{staticClass:"c3btn c3btn--grey",on:{click:function(e){return e.target!==e.currentTarget?null:t.closeThisModal()}}},[t._v("\n Cancel\n ")]),a("button",{staticClass:"c3btn c3btn pull-right",attrs:{disabled:!t.isFormValid},on:{click:function(e){return t.saveNetworkConfig()}}},[t._v("\n Save Confing\n ")])])],1)])},xa=[],Na=Object(p["a"])("optionsModule"),Ta=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.c3Url="http://localhost",t.c3UrlIsValid=!0,t.c3Port=52935,t.c3PortIsValid=!0,t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"setUrl",value:function(t){t.valid?(this.c3UrlIsValid=!0,this.c3Url=t.value):this.c3UrlIsValid=!1}},{key:"setPort",value:function(t){t.valid?(this.c3PortIsValid=!0,this.c3Port=parseInt(t.value,10)):this.c3PortIsValid=!1}},{key:"saveNetworkConfig",value:function(){this.isFormValid&&(this.setBaseURL(this.c3Url),this.setBasePort(this.c3Port))}},{key:"getUrl",get:function(){return this.getAPIUrl}},{key:"getPort",get:function(){return this.getAPIPort}},{key:"isFormValid",get:function(){return this.c3UrlIsValid&&this.c3PortIsValid}}]),e}(Object(f["b"])(j));Object(h["a"])([Na.Getter],Ta.prototype,"getAPIUrl",void 0),Object(h["a"])([Na.Getter],Ta.prototype,"getAPIPort",void 0),Object(h["a"])([Na.Mutation],Ta.prototype,"setBaseURL",void 0),Object(h["a"])([Na.Mutation],Ta.prototype,"setBasePort",void 0),Ta=Object(h["a"])([Object(f["a"])({components:{Input:Jt}})],Ta);var Ra=Ta,Ga=Ra,La=Object(F["a"])(Ga,_a,xa,!1,null,null,null),Ma=La.exports,Ea=Object(p["a"])("modalModule"),Pa=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"isGateway",value:function(){return this.activeModal.modalTarget===n.Gateway}},{key:"isRelay",value:function(){return this.activeModal.modalTarget===n.Relay}},{key:"isChannel",value:function(){return this.activeModal.modalTarget===n.Channel}},{key:"isPeripheral",value:function(){return this.activeModal.modalTarget===n.Peripheral}},{key:"isConnector",value:function(){return this.activeModal.modalTarget===n.Connector}},{key:"isInterface",value:function(){return this.activeModal.modalTarget===n.Channel||this.activeModal.modalTarget===n.Peripheral||this.activeModal.modalTarget===n.Connector}},{key:"options",value:function(){return this.activeModal.modalOptions}},{key:"currentModal",get:function(){return this.activeModal}},{key:"targetUid",get:function(){return this.activeModal.modalTargetId||""}}]),e}(Object(f["b"])(j));Object(h["a"])([Ea.Getter],Pa.prototype,"activeModal",void 0),Pa=Object(h["a"])([Object(f["a"])({components:{RelayModal:lt,CommandModal:yt,GatewayModal:De,OptionsModal:Ma,InterfaceModal:ze,CreateRelayModal:ra,ConnectRelayModal:Ia,CommandCenterModal:Le,CreateGatewayModal:ma}})],Pa);var Aa=Pa,Da=Aa,Sa=(a("e72f"),Object(F["a"])(Da,m,y,!1,null,null,null)),Fa=Sa.exports,Ua=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3canvas",class:{"c3canvas-fs":t.isFullscreen}},[a("div",{ref:"c3canvas",attrs:{id:"c3canvas"}}),a("span",{staticClass:"c3canvas-fs-btn icon",class:t.fullscreenIcon,on:{click:function(e){t.isFullscreen=!t.isFullscreen}}}),a("span",{staticClass:"c3canvas-more-btn icon more"}),a("ul",{staticClass:"c3canvas-menu"},[a("li",{staticClass:"c3canvas-menu-item"},[a("Toggle",{key:"toggle-tree-view-button",attrs:{legend:"Tree View",checked:t.getTreeView,disabled:!1},on:{change:t.toggleTreeView}})],1),a("li",{staticClass:"c3canvas-menu-item"},[a("Toggle",{key:"toggle-interfaces-button",attrs:{legend:"Interfaces",checked:t.getInterfaces,disabled:!1},on:{change:function(e){return t.toggleInterfaces(e)}}})],1),a("li",{staticClass:"c3canvas-menu-item"},[a("Toggle",{key:"toggle-labels-button",attrs:{legend:"Labels",checked:t.getShowLabels,disabled:!1},on:{change:function(e){return t.toggleLabels(e)}}})],1),a("li",{staticClass:"c3canvas-menu-item"},[a("Toggle",{key:"toggle-physics-button",attrs:{legend:"Physics",checked:t.getPhysics,disabled:!1},on:{change:function(e){return t.togglePhysics(e)}}})],1),a("li",{staticClass:"c3canvas-menu-item"},[a("Toggle",{key:"toggle-smooth-edges",attrs:{legend:"Smooth Edges",checked:t.getSmoothEdges,disabled:!1},on:{change:function(e){return t.toggleSmoothEdges(e)}}})],1),a("li",{staticClass:"c3canvas-menu-item",on:{click:t.reloadGraph}},[t._v("Reload Graph")]),a("li",{staticClass:"c3canvas-menu-divider"}),a("li",{staticClass:"c3canvas-menu-item",on:{click:function(e){return t.openModal("","CREATE_GATEWAY")}}},[t._v("\n New Gateway\n ")]),a("li",{staticClass:"c3canvas-menu-item",on:{click:function(e){return t.openModal("","CREATE_RELAY")}}},[t._v("\n New Relay\n ")])]),t._m(0)])},Ba=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"progress-bar"},[a("div",{staticClass:"progress-bar-status",attrs:{id:"progress-bar-status"}})])}],$a=(a("6762"),a("2fdb"),a("4f27")),Va=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3checkbox-wrapper"},[a("div",{staticClass:"c3checkbox-row",on:{click:t.clickOnLabel}},[t._v("\n "+t._s(t.legend)+"  \n "),t.hasHelp?a("span",{staticClass:"icon help"},[a("div",{staticClass:"help-text"},[t._v(t._s(t.help))])]):t._e()]),a("div",{staticClass:"c3toggle",class:{disabled:t.isDisabled}},[a("input",t._b({ref:"booleanCheckbox",staticClass:"c3toggle-input",attrs:{type:"checkbox",id:t.inputUID,name:t.inputUID,disabled:t.disabled},domProps:{checked:t.getIsChecked},on:{change:t.toogleToggle}},"input",t.$attrs,!1)),a("label",{staticClass:"c3toggle-label",on:{click:t.clickOnLabel}})])])},Ka=[],za=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.isChecked=t.getIsChecked,t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"mounted",value:function(){this.$refs.booleanCheckbox.checked=this.getIsChecked}},{key:"toogleToggle",value:function(){this.isChecked=!this.isChecked,this.$emit("change",{value:!0===this.isChecked,valid:!0})}},{key:"clickOnLabel",value:function(){this.toogleToggle()}},{key:"getIsChecked",get:function(){return!(!this.checked||"boolean"!==typeof this.checked||!0!==this.checked)}}]),e}(Object(f["b"])(j,Kt));Object(h["a"])([Object(f["c"])()],za.prototype,"checked",void 0),za=Object(h["a"])([f["a"]],za);var Ha=za,Za=Ha,Ya=(a("08b0"),Object(F["a"])(Za,Va,Ka,!1,null,"999b190e",null)),Ja=Ya.exports,Xa=Object(p["a"])("c3Module"),Wa=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.startNode=g,t.paths=[],t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"findPath",value:function(t){this.setStartNode(t),this.paths=[],this.paths.push(this.startNode.uid);var e=0;if(this.hasPathEndpoints())return[];while(this.startNode&&this.startNode.uid!==this.targetNode.uid)this.nextNode=this.startNode,this.handleNodeChannel(),this.handleConnectorAndPeripheral(),this.handleRelay(),this.setStartNode(this.nextNode.uid),e++,this.checkEndLoop(e);return this.paths}},{key:"setStartNode",value:function(t){this.startNode=this.getNodes.find((function(e){return e.uid===t}))||g}},{key:"hasPathEndpoints",value:function(){return this.startNode.klass===n.Undefined||this.targetNode.klass===n.Undefined}},{key:"handleNodeChannel",value:function(){return this.isChannel(this.startNode)&&this.setNextNodeForChannel()}},{key:"handleConnectorAndPeripheral",value:function(){return this.isStartNodeConnectorOrPeripheral()&&this.setNextAndParentNode()}},{key:"handleRelay",value:function(){return this.isStartNodeRelay()&&this.setNextNodeForRelay()}},{key:"checkEndLoop",value:function(t){t>100&&(this.paths=[],this.setStartNode(this.targetNode.uid))}},{key:"getParentNode",value:function(){var t=this;return this.getNodes.find((function(e){return e.uid===t.startNode.parentId}))||g}},{key:"isStartNodeConnectorOrPeripheral",value:function(){return this.startNode.klass===n.Peripheral||this.startNode.klass===n.Connector}},{key:"isChannel",value:function(t){return t.klass===n.Channel}},{key:"isStartNodeRelay",value:function(){return this.startNode.klass===n.Relay}},{key:"isReturnChannel",value:function(t){return!0===t.isReturnChannel}},{key:"getChannelNeighbours",value:function(){var t=this;return this.getEdges.filter((function(e){return e.to===t.startNode.uid||e.from===t.startNode.uid}))}},{key:"getRelayNeighbours",value:function(){var t=this;return this.getEdges.filter((function(e){return e.from===t.startNode.uid}))}},{key:"getPossibeNext",value:function(t,e){return this.getNodes.find((function(a){return a.uid===t[e]}))||g}},{key:"insertParentNodeToPaths",value:function(){return this.getParentNode().klass!==n.Undefined&&this.paths.push(this.nextNode.uid)}},{key:"setNextAndParentNode",value:function(){this.nextNode=this.getParentNode(),this.insertParentNodeToPaths()}},{key:"setAndInsertNextNode",value:function(t){this.nextNode=t,this.paths.push(t.uid)}},{key:"setNextNodeForChannel",value:function(){this.isReturnChannel(this.startNode)?this.setNextNodeForReturnChannel():this.setNextAndParentNode()}},{key:"setNextNodeForReturnChannel",value:function(){var t=this;this.getChannelNeighbours().forEach((function(e){var a=t.getPossibeNext(e,"from");t.isChannel(a)&&t.setAndInsertNextNode(a)}))}},{key:"setNextNodeForRelay",value:function(){var t=this;this.getRelayNeighbours().forEach((function(e){var a=t.getPossibeNext(e,"to");t.isReturnChannel(a)&&t.setAndInsertNextNode(a)}))}},{key:"targetNode",get:function(){return this.getNodes.find((function(t){return t.klass===n.Gateway}))||g}}]),e}(f["d"]);Object(h["a"])([Xa.Getter],Wa.prototype,"getNodes",void 0),Object(h["a"])([Xa.Getter],Wa.prototype,"getEdges",void 0),Wa=Object(h["a"])([f["a"]],Wa);var qa=Wa,Qa=Object(p["a"])("c3Module"),tn=Object(p["a"])("visModule"),en=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.container=null,t.isSmooth=!1,t.isFullscreen=!1,t.lastClickNodeId="",t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"mounted",value:function(){this.createVisCanvas()}},{key:"createVisCanvas",value:function(){var t=this;this.container=this.$refs.c3canvas,window.networkc3=new $a["Network"](this.container,this.getGrapData,this.graphOtions),window.networkc3.on("click",(function(e){var a=window.networkc3.getNodeAt(e.pointer.DOM);t.lastClickNodeId===a?a&&t.openModal(a,t.nodeKlass(a)):t.lastClickNodeId=a,t.deselectNodes(),t.clearPath(),a&&t.selectNode(a)})),window.networkc3.on("startStabilizing",(function(t){var e=document.getElementById("progress-bar-status");null!==e&&(e.style.width="1px")})),window.networkc3.on("stabilizationProgress",(function(e){var a=Math.floor(e.iterations/t.getOptions.physics.stabilization.updateInterval),n=document.getElementById("progress-bar-status");null!==n&&(n.style.width=a+"%")})),window.networkc3.on("stabilized",(function(t){var e=document.getElementById("progress-bar-status");null!==e&&(e.style.width="1px")}))}},{key:"nodeKlass",value:function(t){return this.getNodeKlass(t)}},{key:"toggleTreeView",value:function(t){this.setTreeView(t.value),window.networkc3.setOptions(this.graphOtions),this.setGraphData()}},{key:"togglePhysics",value:function(t){this.setPhysics(t.value),window.networkc3.setOptions(this.graphOtions),this.setGraphData()}},{key:"toggleInterfaces",value:function(t){this.setShowInterfaces(t.value),this.generateNodes(),this.generateEdges(),this.setGraphData()}},{key:"toggleLabels",value:function(t){this.setShowLabels(t.value),this.generateNodes(),this.generateEdges(),this.setGraphData()}},{key:"toggleSmoothEdges",value:function(t){this.isSmooth=t.value,this.setSmoothEdge(t.value),window.networkc3.setOptions(this.graphOtions),this.setGraphData()}},{key:"reloadGraph",value:function(){var t=this.graphOtions;t.layout.randomSeed=Math.floor(785496*Math.random())+1,window.networkc3.setOptions(t),this.setGraphData()}},{key:"deselectNodes",value:function(){this.getVisNodes.forEach((function(t){window.networkc3.body.data.nodes.update([{id:t.id,shadow:{enabled:!1}}])}))}},{key:"clearPath",value:function(){this.getVisEdges.forEach((function(t){var e=window.networkc3.body.data.edges.get(t.id);(e.color&&0!==Object.keys(e.color).length||e.width&&1!==e.width)&&window.networkc3.body.data.edges.update([{id:t.id,color:{},width:1}])}))}},{key:"selectNode",value:function(t){window.networkc3.body.data.nodes.update([{id:t,shadow:{enabled:!0}}]);var e=this.getPathsFromGateway(t);this.getVisEdges.forEach((function(t){e&&e.includes(t.from)&&e.includes(t.to)&&window.networkc3.body.data.edges.update([{id:t.id,color:{color:"#AB61F6"},width:4}])}))}},{key:"getPathsFromGateway",value:function(t){return this.findPath(t)}},{key:"fullscreenIcon",get:function(){return this.isFullscreen?"zoomin":"fullscreen"}},{key:"graphOtions",get:function(){return this.getOptions}},{key:"graphData",get:function(){return this.getGrapData}},{key:"getTreeView",get:function(){return this.graphOtions.layout.hierarchical.enabled}},{key:"getPhysics",get:function(){return this.graphOtions.physics.enabled}},{key:"getInterfaces",get:function(){return this.getShowInterfaces}},{key:"getSmoothEdges",get:function(){return this.isSmooth}}]),e}(Object(f["b"])(j,qa));Object(h["a"])([tn.Action],en.prototype,"generateNodes",void 0),Object(h["a"])([tn.Action],en.prototype,"generateEdges",void 0),Object(h["a"])([tn.Getter],en.prototype,"getVisNodes",void 0),Object(h["a"])([tn.Getter],en.prototype,"getVisEdges",void 0),Object(h["a"])([tn.Getter],en.prototype,"getGrapData",void 0),Object(h["a"])([tn.Getter],en.prototype,"getOptions",void 0),Object(h["a"])([tn.Getter],en.prototype,"getShowInterfaces",void 0),Object(h["a"])([tn.Getter],en.prototype,"getShowLabels",void 0),Object(h["a"])([tn.Mutation],en.prototype,"setPhysics",void 0),Object(h["a"])([tn.Mutation],en.prototype,"setTreeView",void 0),Object(h["a"])([tn.Mutation],en.prototype,"setOptions",void 0),Object(h["a"])([tn.Mutation],en.prototype,"setSmoothEdge",void 0),Object(h["a"])([tn.Mutation],en.prototype,"setGraphData",void 0),Object(h["a"])([tn.Mutation],en.prototype,"setShowInterfaces",void 0),Object(h["a"])([tn.Mutation],en.prototype,"setShowLabels",void 0),Object(h["a"])([Qa.Action],en.prototype,"fetchGateway",void 0),Object(h["a"])([Qa.Getter],en.prototype,"getNodeKlass",void 0),en=Object(h["a"])([Object(f["a"])({components:{Toggle:Ja}})],en);var an=en,nn=an,sn=(a("8a9f"),Object(F["a"])(nn,Ua,Ba,!1,null,null,null)),on=sn.exports,rn=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3footer"},[t._v("C3 dashboard - Labs")])},cn=[],ln=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),e}(i["a"]);ln=Object(h["a"])([f["a"]],ln);var dn=ln,un=dn,hn=(a("085e"),Object(F["a"])(un,rn,cn,!1,null,"b810e06a",null)),fn=hn.exports,pn=function(){var t=this,e=t.$createElement;t._self._c;return t._m(0)},gn=[function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"c3navbar"},[n("img",{staticClass:"c3navbar-logo",attrs:{alt:"C3 logo",src:a("9b19")}}),n("div",{staticClass:"c3navbar-left"},[n("span",{staticClass:"c3navbar-left--title"},[t._v("C3")])])])}],mn=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),e}(i["a"]);mn=Object(h["a"])([f["a"]],mn);var yn=mn,vn=yn,bn=(a("b404"),Object(F["a"])(vn,pn,gn,!1,null,"6bb0e8c9",null)),wn=bn.exports,Cn=function(){var t=this,e=t.$createElement,a=t._self._c||e;return t.hasSelectedGateway?a("div",{staticClass:"c3controll"},[a("span",{staticClass:"c3controll-help icon exclamation"}),a("ul",{staticClass:"c3controll-tabs"},[a("li",{class:{active:t.activeIsRelay},on:{click:function(e){return t.setActiveTab("relay")}}},[t._v("\n Relays\n ")]),a("li",{class:{active:t.activeIsInterface},on:{click:function(e){return t.setActiveTab("interface")}}},[t._v("\n Interfaces\n ")]),a("li",{class:{active:t.activeIsCommands},on:{click:function(e){return t.setActiveTab("command")}}},[t._v("\n Commands\n ")])]),t.activeIsRelay?a("RelaysTab"):t._e(),t.activeIsInterface?a("InterfacesTab"):t._e(),t.activeIsCommands?a("CommandsTab"):t._e()],1):t._e()},On=[],kn=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3tab"},[a("RelayList",{attrs:{"show-empty":!0},on:{count:function(e){return t.setCount(e)}}}),a("DataTableFooter",{attrs:{results:t.getCount}})],1)},jn=[],In=function(){var t=this,e=t.$createElement,a=t._self._c||e;return t.relays.length||t.displayEmpty?a("div",{staticClass:"c3InterfaceList"},[a("h1",{directives:[{name:"show",rawName:"v-show",value:t.hasTitle,expression:"hasTitle"}]},[t._v(t._s(t.title))]),t.relays.length?[a("table",{staticClass:"datatable"},[t._m(0),a("tbody",t._l(t.relays,(function(e,n){return a("tr",{directives:[{name:"show",rawName:"v-show",value:n>=t.minIndex&&n= minIndex && index < maxIndex"}],key:e.id,on:{click:function(a){return t.openModal(e.uid,e.klass)}}},[a("td",{staticClass:"c3link"},[a("span",{staticClass:"c3tab-info-dot not-active",class:{"is-active":!!e.isActive,"has-error":!!e.error}}),t._v("\n "+t._s(e.id)+"\n ")]),a("td",[t._v(t._s(e.name))]),a("td",[t._v(t._s(e.buildId))])])})),0)])]:t.displayEmpty?[t._v("\n No relays found...\n ")]:t._e()],2):t._e()},_n=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("thead",[a("tr",[a("th",[t._v("Relay ID")]),a("th",[t._v("Name")]),a("th",[t._v("Build ID")])])])}],xn=Object(p["a"])("c3Module"),Nn=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"relays",get:function(){return this.$emit("count",this.getRelays.length),this.getRelays}}]),e}(Object(f["b"])(j,L));Object(h["a"])([xn.Getter],Nn.prototype,"getRelays",void 0),Nn=Object(h["a"])([f["a"]],Nn);var Tn=Nn,Rn=Tn,Gn=(a("3be9"),Object(F["a"])(Rn,In,_n,!1,null,"1502dd23",null)),Ln=Gn.exports,Mn=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3tabfooter"},[a("div",{staticClass:"c3tabfooter-info"},[t._v("Result: "+t._s(t.results))]),a("div",{staticClass:"c3tabfooter-action"},[t._v("\n Items per page:\n "),a("Select",{staticStyle:{"max-width":"60px","margin-bottom":"0"},attrs:{selected:t.perPage,options:{5:"5",10:"10",25:"25",50:"50",100:"100",1e3:"All"},border:!1,up:!0},on:{change:function(e){return t.changePerPage(e,t.page)}}})],1),a("div",{staticClass:"c3tabfooter-paginator"},[a("span",{staticClass:"c3tabfooter-controll",on:{click:function(e){return e.target!==e.currentTarget?null:t.prevPage(e)}}},[t._v("\n <  \n ")]),t._v("\n Page: "+t._s(t.actualPage)+" of "+t._s(t.maxPage)+"\n "),a("span",{staticClass:"c3tabfooter-controll",on:{click:function(e){return e.target!==e.currentTarget?null:t.nextPage(e)}}},[t._v("\n   >\n ")])])])},En=[],Pn=Object(p["a"])("paginateModule"),An=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.page="5",t.perPage="5",t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"created",value:function(){this.perPage=""+this.itemPerPage}},{key:"changePerPage",value:function(t){this.perPage=t,this.setItemPerPage(+this.perPage)}},{key:"nextPage",value:function(){this.actualPage1&&this.setActualPage(this.actualPage-1)}},{key:"actualPage",get:function(){return this.getActualPage}},{key:"itemPerPage",get:function(){return this.getItemPerPage}},{key:"maxPage",get:function(){var t=Math.ceil(this.results/this.itemPerPage);return 0===t?1:t}}]),e}(Object(f["b"])(j));Object(h["a"])([Object(f["c"])()],An.prototype,"results",void 0),Object(h["a"])([Pn.Getter],An.prototype,"getActualPage",void 0),Object(h["a"])([Pn.Getter],An.prototype,"getItemPerPage",void 0),Object(h["a"])([Pn.Mutation],An.prototype,"setActualPage",void 0),Object(h["a"])([Pn.Mutation],An.prototype,"setItemPerPage",void 0),An=Object(h["a"])([Object(f["a"])({components:{Select:ae}})],An);var Dn=An,Sn=Dn,Fn=(a("1ece"),Object(F["a"])(Sn,Mn,En,!1,null,"399d122b",null)),Un=Fn.exports,Bn=Object(p["a"])("c3Module"),$n=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.rCount=0,t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"setCount",value:function(t){this.rCount=t}},{key:"getCount",get:function(){return this.rCount}}]),e}(Object(f["b"])(j));Object(h["a"])([Bn.Getter],$n.prototype,"getRelays",void 0),$n=Object(h["a"])([Object(f["a"])({components:{RelayList:Ln,DataTableFooter:Un}})],$n);var Vn=$n,Kn=Vn,zn=Object(F["a"])(Kn,kn,jn,!1,null,null,null),Hn=zn.exports,Zn=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3tab"},[a("CommandList",{attrs:{"show-empty":!0,"status-filter":t.selectedCommandStatus,"command-for-filter":t.selectedCommandFor}}),a("DataTableFooter",{attrs:{results:t.getCount}})],1)},Yn=[],Jn=function(){var t=this,e=t.$createElement,a=t._self._c||e;return t.commands.length||t.displayEmpty?a("div",{staticClass:"c3CommandList"},[a("h1",{directives:[{name:"show",rawName:"v-show",value:t.hasTitle,expression:"hasTitle"}]},[t._v(t._s(t.title))]),t.commands.length?[a("table",{staticClass:"datatable"},[t._m(0),a("tbody",t._l(t.commands,(function(e){return a("tr",{key:e.id,on:{click:function(a){return t.openModal(e.id,"COMMAND")}}},[a("td",{staticClass:"c3link"},[t._v("\n "+t._s(e.id)+"\n ")]),a("td",{staticClass:"command-for"},[t._v("\n "+t._s(t.commandType(e).toLowerCase())+"\n ")]),a("td",[t._v("\n "+t._s(t.commandTypeId(e))+"\n ")])])})),0)])]:t.displayEmpty?[t._v("\n No commands found...\n ")]:t._e()],2):t._e()},Xn=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("thead",[a("tr",[a("th",[t._v("Command ID")]),a("th",[t._v("Command for")]),a("th",[t._v("ID")])])])}],Wn=Object(p["a"])("c3CommandModule"),qn=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"commands",get:function(){var t=this,e=this.getCommands;return"COMPLETE"===this.statusFilter?e=e.filter((function(t){return!1===t.isPending})):"PENDING"===this.statusFilter&&(e=e.filter((function(t){return!0===t.isPending}))),"ALL"!==this.commandForFilter&&(e=e.filter((function(e){return t.commandType(e)===t.commandForFilter}))),this.$emit("count",e.length),e}}]),e}(Object(f["b"])(j,L));Object(h["a"])([Object(f["c"])()],qn.prototype,"statusFilter",void 0),Object(h["a"])([Object(f["c"])()],qn.prototype,"commandForFilter",void 0),Object(h["a"])([Wn.Getter],qn.prototype,"getCommands",void 0),Object(h["a"])([Wn.Getter],qn.prototype,"getCommandCount",void 0),qn=Object(h["a"])([f["a"]],qn);var Qn=qn,ti=Qn,ei=(a("b72f"),Object(F["a"])(ti,Jn,Xn,!1,null,"66d149bc",null)),ai=ei.exports,ni=Object(p["a"])("paginateModule"),ii=Object(p["a"])("c3CommandModule"),si=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.commandFor="ALL",t.commandStatus="ALL",t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"onGetLastChange",value:function(t,e){this.fetchCommands(this.gateway.id)}},{key:"selectCommandFor",value:function(t){this.commandFor=t}},{key:"selectCommandStatus",value:function(t){this.commandStatus=t}},{key:"getCount",get:function(){return this.getCommandCount}},{key:"selectedCommandFor",get:function(){return this.commandFor}},{key:"selectedCommandStatus",get:function(){return this.commandStatus}}]),e}(Object(f["b"])(j));Object(h["a"])([ii.Getter],si.prototype,"getCommandCount",void 0),Object(h["a"])([ii.Action],si.prototype,"fetchCommands",void 0),Object(h["a"])([ni.Getter],si.prototype,"getActualPage",void 0),Object(h["a"])([ni.Getter],si.prototype,"getLastChange",void 0),Object(h["a"])([ni.Getter],si.prototype,"getItemPerPage",void 0),Object(h["a"])([ni.Mutation],si.prototype,"setActualPage",void 0),Object(h["a"])([Object(f["e"])("getLastChange")],si.prototype,"onGetLastChange",null),si=Object(h["a"])([Object(f["a"])({components:{Select:ae,CommandList:ai,DataTableFooter:Un}})],si);var oi=si,ri=oi,ci=Object(F["a"])(ri,Zn,Yn,!1,null,null,null),li=ci.exports,di=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3tab"},[a("div",{staticClass:"c3tab-filters"},[a("Select",{key:"type-filter",attrs:{legend:"Filter by type",selected:t.selectedInterfaceType,options:{ALL:"All",CHANNEL:"Channel",PERIPHERAL:"Peripheral",CONNECTOR:"Connector"},border:!0,up:!1},on:{change:function(e){return t.selectInterfaceType(e,t.interfaceType)}}}),a("Select",{key:"return-channel-filter",attrs:{legend:"Filter by Return Channel",selected:t.selectedReturnChannel,options:{ALL:"All",YES:"Yes",NO:"No"},border:!0,up:!1,disabled:t.isChannelOrAllForDisabled},on:{change:function(e){return t.selectReturnChannel(e,t.returnChannel)}}}),a("Select",{key:"negotiation-channel-filter",attrs:{legend:"Filter by Negotiation Channel",selected:t.selectedNegotiationChannel,options:{ALL:"All",YES:"Yes",NO:"No"},border:!0,up:!1,disabled:t.isChannelOrAllForDisabled},on:{change:function(e){return t.selectNegotiationChannel(e,t.negotiationChannel)}}})],1),a("InterfaceList",{attrs:{"show-empty":!0,"return-channel-filter":t.selectedReturnChannel,"negotiation-channel-filter":t.selectedNegotiationChannel,"interface-type-filter":t.selectedInterfaceType},on:{count:function(e){return t.setCount(e)}}}),a("DataTableFooter",{attrs:{results:t.getCount}})],1)},ui=[],hi=function(){var t=this,e=t.$createElement,a=t._self._c||e;return t.c3Interfaces.length||t.displayEmpty?a("div",{staticClass:"c3CommandList"},[a("h1",{directives:[{name:"show",rawName:"v-show",value:t.hasTitle,expression:"hasTitle"}]},[t._v(t._s(t.title))]),t.c3Interfaces.length?[a("table",{staticClass:"datatable"},[t._m(0),a("tbody",t._l(t.c3Interfaces,(function(e,n){return a("tr",{directives:[{name:"show",rawName:"v-show",value:n>=t.minIndex&&n= minIndex && index < maxIndex"}],key:e.uid,on:{click:function(a){return t.openModal(e.uid,e.klass)}}},[a("td",{staticClass:"c3link"},[a("span",{staticClass:"c3tab-info-dot",class:{"is-return":!!e.isReturnChannel,"has-error":!!e.error}}),t._v("\n "+t._s(e.id)+"\n ")]),a("td",{staticClass:"capitalize"},[t._v(t._s(e.klass.toLowerCase()))]),a("td",[t._v(t._s(t.interfaceTypeName(e)))]),a("td",[t._v(t._s(t.interfaceType(e)))])])})),0)])]:t.displayEmpty?[t._v("\n No interfaces found...\n ")]:t._e()],2):t._e()},fi=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("thead",[a("tr",[a("th",[t._v("Interface ID")]),a("th",[t._v("Type")]),a("th",[t._v("Name")]),a("th",[t._v("Channel Type")])])])}],pi=Object(p["a"])("c3Module"),gi=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"c3Interfaces",get:function(){var t=[];return t="ALL"===this.interfaceTypeFilter?this.getInterfaces():this.getInterfaces([this.interfaceTypeFilter]),"YES"===this.returnChannelFilter?t=t.filter((function(t){return!!t.isReturnChannel})):"NO"===this.returnChannelFilter&&(t=t.filter((function(t){return!t.isReturnChannel}))),"YES"===this.negotiationChannelFilter?t=t.filter((function(t){return!!t.isNegotiationChannel})):"NO"===this.negotiationChannelFilter&&(t=t.filter((function(t){return!t.isNegotiationChannel}))),this.$emit("count",t.length),t}}]),e}(Object(f["b"])(j,L));Object(h["a"])([Object(f["c"])()],gi.prototype,"returnChannelFilter",void 0),Object(h["a"])([Object(f["c"])()],gi.prototype,"interfaceTypeFilter",void 0),Object(h["a"])([Object(f["c"])()],gi.prototype,"negotiationChannelFilter",void 0),Object(h["a"])([pi.Getter],gi.prototype,"getCommands",void 0),Object(h["a"])([pi.Getter],gi.prototype,"getInterfaces",void 0),gi=Object(h["a"])([f["a"]],gi);var mi=gi,yi=mi,vi=(a("4160"),Object(F["a"])(yi,hi,fi,!1,null,"1bdb58ac",null)),bi=vi.exports,wi=(Object(p["a"])("c3Module"),function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.iCount=0,t.interfaceByType="ALL",t.returnChannel="ALL",t.negotiationChannel="ALL",t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"setCount",value:function(t){this.iCount=t}},{key:"selectInterfaceType",value:function(t){"PERIPHERAL"!==this.interfaceByType&&"CONNECTOR"!==this.interfaceByType||"ALL"!==t&&"CHANNEL"!==t||(this.selectReturnChannel("ALL"),this.selectNegotiationChannel("ALL")),this.interfaceByType=t}},{key:"selectReturnChannel",value:function(t){this.returnChannel=t}},{key:"selectNegotiationChannel",value:function(t){this.negotiationChannel=t}},{key:"getCount",get:function(){return this.iCount}},{key:"selectedInterfaceType",get:function(){return this.interfaceByType}},{key:"selectedReturnChannel",get:function(){return this.returnChannel}},{key:"selectedNegotiationChannel",get:function(){return this.negotiationChannel}},{key:"isChannelOrAllForDisabled",get:function(){var t="ALL"===this.selectedInterfaceType||"CHANNEL"===this.selectedInterfaceType;return t||(this.selectReturnChannel("NO"),this.selectNegotiationChannel("NO")),!t}}]),e}(Object(f["b"])(j)));wi=Object(h["a"])([Object(f["a"])({components:{Select:ae,InterfaceList:bi,DataTableFooter:Un}})],wi);var Ci=wi,Oi=Ci,ki=Object(F["a"])(Oi,di,ui,!1,null,null,null),ji=ki.exports,Ii=Object(p["a"])("c3Module"),_i=Object(p["a"])("paginateModule"),xi=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.activeTab="relay",t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"setActiveTab",value:function(t){this.setActualPage(1),this.activeTab=t}},{key:"activeIsRelay",get:function(){return"relay"===this.activeTab}},{key:"activeIsInterface",get:function(){return"interface"===this.activeTab}},{key:"activeIsCommands",get:function(){return"command"===this.activeTab}},{key:"hasSelectedGateway",get:function(){return this.hasGatewaySelected}}]),e}(Object(f["b"])(j));Object(h["a"])([_i.Mutation],xi.prototype,"setActualPage",void 0),Object(h["a"])([Ii.Getter],xi.prototype,"hasGatewaySelected",void 0),xi=Object(h["a"])([Object(f["a"])({components:{RelaysTab:Hn,CommandsTab:li,InterfacesTab:ji}})],xi);var Ni=xi,Ti=Ni,Ri=(a("1d22"),Object(F["a"])(Ti,Cn,On,!1,null,null,null)),Gi=Ri.exports,Li=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3side"},[a("div",{staticClass:"c3side-title-wrapper"},[a("h1",{staticClass:"c3side-title"},[t._v("Network")]),a("span",{staticClass:"c3side-config-link",on:{click:function(e){return t.openModal("","OPTIONS")}}},[t._v("EDIT CONFIG")])]),a("div",{staticClass:"c3side-body"},[a("NetworkStats"),a("div",{staticClass:"c3side-refresh-wrapper"},[a("span",{staticClass:"c3side-refres-title"},[t._v("\n Refresh Rate\n ")]),a("Select",{staticClass:"c3site-refresh-dropdown",staticStyle:{"margin-bottom":"0"},attrs:{selected:t.selectedRefreshRate,options:t.refreshRates(),border:!1},on:{change:function(e){return t.setRefreshRate(e,t.refreshRate)}}})],1),a("Toggle",{key:"toggle-auto-update-button",attrs:{legend:"Auto Update",name:"autoUpdate",checked:t.getAutoUpdateEnabled,help:"Auto Update checks for network changes automatically,\n this may result in live updated to the graph and data tables when enabled",disabled:!1},on:{change:function(e){return t.toggleAutoUpdate(e)}}}),a("div",{staticClass:"c3btn-group"},[a("button",{staticClass:"c3btn c3btn--grey",on:{click:function(e){return t.openModal("","CREATE_GATEWAY")}}},[t._v("\n New Gateway\n ")])])],1)])},Mi=[],Ei=(Object(p["a"])("c3Module"),Object(p["a"])("visModule")),Pi=Object(p["a"])("optionsModule"),Ai=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.refreshRate="2",t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"toggleAutoUpdate",value:function(t){this.setAutoUpdateEnabled(t.value)}},{key:"setRefreshRate",value:function(t){this.refreshRate=t,this.setRefreshInterval(1e3*parseInt(t,10))}},{key:"refreshRates",value:function(){return{1:"1 second",2:"2 seconds",5:"5 seconds",10:"10 seconds",20:"20 seconds",30:"30 seconds",60:"1 minute",120:"2 minutes",300:"5 minutes",600:"10 minutes",1800:"30 minutes",3600:"1 hour"}}},{key:"getAutoUpdate",get:function(){return this.getAutoUpdateEnabled}},{key:"selectedRefreshRate",get:function(){return this.refreshRate}}]),e}(Object(f["b"])(j));Object(h["a"])([Ei.Getter],Ai.prototype,"getAutoUpdateEnabled",void 0),Object(h["a"])([Ei.Mutation],Ai.prototype,"setAutoUpdateEnabled",void 0),Object(h["a"])([Pi.Getter],Ai.prototype,"getRefreshInterval",void 0),Object(h["a"])([Pi.Mutation],Ai.prototype,"setRefreshInterval",void 0),Ai=Object(h["a"])([Object(f["a"])({components:{Toggle:Ja,Select:ae,NetworkStats:Nt}})],Ai);var Di=Ai,Si=Di,Fi=(a("5a6f"),Object(F["a"])(Si,Li,Mi,!1,null,"b05e13a0",null)),Ui=Fi.exports,Bi=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3gateway"},[t._m(0),a("SelectGatewayForm")],1)},$i=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3gateway-row"},[a("span",{staticClass:"c3gateway-title"},[t._v("\n Gateway Selection\n ")])])}],Vi=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"c3gateway-row"},[a("Select",{attrs:{legend:"Gateways",selected:t.selectedGateway,options:t.gateways,border:!0,up:!1},on:{change:function(e){return t.selectGateway(e,t.activeGateway)}}})],1)},Ki=[],zi=Object(p["a"])("c3Module"),Hi=function(t){function e(){var t;return Object(r["a"])(this,e),t=Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments)),t.activeGateway="",t}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"selectGateway",value:function(t){this.activeGateway=t,this.changeGateway(),this.addNotify({type:"info",message:"Gateway [".concat(this.selectedGateway,"] selected...")})}},{key:"changeGateway",value:function(){this.fetchGateway({gatewayId:this.selectedGateway})}},{key:"selectedGateway",get:function(){return this.activeGateway}},{key:"gateways",get:function(){var t=this.getGateways,e={};return t.forEach((function(t,a){e[t.agentId]="".concat(t.name," - ").concat(t.agentId)})),t.length>0&&""===this.selectedGateway&&(this.activeGateway=t[0].agentId,this.fetchGateway({gatewayId:this.selectedGateway})),e}}]),e}(Object(f["b"])(j));Object(h["a"])([zi.Action],Hi.prototype,"fetchGateway",void 0),Object(h["a"])([zi.Getter],Hi.prototype,"getGateways",void 0),Hi=Object(h["a"])([Object(f["a"])({components:{Select:ae}})],Hi);var Zi=Hi,Yi=Zi,Ji=(a("9622"),Object(F["a"])(Yi,Vi,Ki,!1,null,"b0c691b0",null)),Xi=Ji.exports,Wi=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),e}(Object(f["b"])(j));Wi=Object(h["a"])([Object(f["a"])({components:{SelectGatewayForm:Xi}})],Wi);var qi=Wi,Qi=qi,ts=(a("b0db"),Object(F["a"])(Qi,Bi,$i,!1,null,null,null)),es=ts.exports,as=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("transition-group",{staticClass:"c3notify",attrs:{name:"slide",tag:"ul"}},t._l(t.notifies,(function(e){return a("li",{key:e.id,class:"c3notify-"+e.type,staticStyle:{right:"0"}},[e.title?a("h1",[t._v(t._s(e.title))]):t._e(),a("p",[t._v(t._s(e.message))]),a("span",{staticClass:"c3notify-close icon close",on:{click:function(a){return a.target!==a.currentTarget?null:t.deleteNotify(e.id)}}})])})),0)},ns=[],is=Object(p["a"])("notifyModule"),ss=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"deleteNotify",value:function(t){this.removeNotify(t)}},{key:"notifies",get:function(){return this.getNotifies}}]),e}(i["a"]);Object(h["a"])([is.Getter],ss.prototype,"getNotifies",void 0),Object(h["a"])([is.Mutation],ss.prototype,"removeNotify",void 0),ss=Object(h["a"])([f["a"]],ss);var os=ss,rs=os,cs=(a("0673"),Object(F["a"])(rs,as,ns,!1,null,null,null)),ls=cs.exports,ds=Object(p["a"])("c3Module"),us=Object(p["a"])("visModule"),hs=Object(p["a"])("paginateModule"),fs=Object(p["a"])("c3CommandModule"),ps=Object(p["a"])("optionsModule"),gs=function(t){function e(){return Object(r["a"])(this,e),Object(l["a"])(this,Object(d["a"])(e).apply(this,arguments))}return Object(u["a"])(e,t),Object(c["a"])(e,[{key:"mounted",value:function(){this.updateData(),this.setTime=setInterval(this.updateData,this.refreshRate)}},{key:"destroy",value:function(){clearInterval(this.setTime)}},{key:"setNewRefreshRate",value:function(t,e){clearInterval(this.setTime),this.setTime=setInterval(this.updateData,this.refreshRate)}},{key:"onGetGrapDataChange",value:function(t,e){void 0!==window.networkc3&&window.networkc3.setData(this.getGrapData),this.fetchCommands(this.gateway.id),this.fetchCapability({gatewayId:this.gateway.id})}},{key:"updateData",value:function(){!0===this.getAutoUpdateEnabled&&(this.fetchGateways(),this.gateway&&this.gateway.klass!==n.Undefined&&this.fetchGateway({gatewayId:this.gateway.id}))}},{key:"gateway",get:function(){return void 0===this.getGateway?g:this.getGateway}},{key:"hasSelectedGateway",get:function(){return this.getGateways.length>0}},{key:"refreshRate",get:function(){return this.getRefreshInterval}}]),e}(i["a"]);Object(h["a"])([hs.Mutation],gs.prototype,"setActualPage",void 0),Object(h["a"])([ds.Action],gs.prototype,"fetchGateways",void 0),Object(h["a"])([ds.Action],gs.prototype,"fetchGateway",void 0),Object(h["a"])([ds.Action],gs.prototype,"fetchCapability",void 0),Object(h["a"])([ds.Getter],gs.prototype,"getGateway",void 0),Object(h["a"])([ds.Getter],gs.prototype,"getGateways",void 0),Object(h["a"])([us.Action],gs.prototype,"generateNodes",void 0),Object(h["a"])([us.Getter],gs.prototype,"getGrapData",void 0),Object(h["a"])([us.Getter],gs.prototype,"getAutoUpdateEnabled",void 0),Object(h["a"])([fs.Action],gs.prototype,"fetchCommands",void 0),Object(h["a"])([ps.Getter],gs.prototype,"getRefreshInterval",void 0),Object(h["a"])([Object(f["e"])("getRefreshInterval")],gs.prototype,"setNewRefreshRate",null),Object(h["a"])([Object(f["e"])("getGrapData")],gs.prototype,"onGetGrapDataChange",null),gs=Object(h["a"])([Object(f["a"])({components:{Navbar:wn,GatewayForm:es,Canvas:on,Controll:Gi,SideMenu:Ui,Footer:fn,Modal:Fa,Notification:ls,CreateGatewayModal:ma}})],gs);var ms=gs,ys=ms,vs=(a("cf25"),Object(F["a"])(ys,s,o,!1,null,null,null)),bs=vs.exports,ws=a("2f62"),Cs=a("6821f"),Os=a.n(Cs),ks=!0,js={gateways:[],gateway:null,nodes:[],edges:[],relayTimestamps:[],mustRefresh:!1,lastGetHash:""},Is={getNodes:function(t){return t.nodes},getEdges:function(t){return t.edges},getGateways:function(t){return t.gateways},getGateway:function(t){return t.nodes.find((function(t){return t.klass===n.Gateway}))},hasGatewaySelected:function(t){return!!t.gateway},getRelays:function(t){return t.nodes.filter((function(t){return t.klass===n.Relay}))},getRelay:function(t){return function(e){return t.nodes.find((function(t){return t.id===e&&t.klass===n.Relay}))}},getGatewayRoutes:function(t){return t.gateway?t.gateway.routes:[]},getRelayRoutes:function(t){return function(e){if(t.gateway){var a=t.gateway.relays.find((function(t){return t.agentId===e}));if(a)return a.routes}return[]}},getInterface:function(t){return function(e){if("new"===e)return{uid:"new",klass:n.Relay,id:"new",buildId:"",name:"new",pending:!0,isActive:!1,type:-1,error:null,parentId:null,parentKlass:n.Gateway,initialCommand:{},timestamp:Math.floor(Date.now()/1e3)};t.nodes.find((function(t){return t.uid===e}));return t.nodes.find((function(t){return t.uid===e}))}},getInterfaces:function(t){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[n.Channel,n.Connector,n.Peripheral];return t.nodes.filter((function(t){return e.includes(t.klass)}))}},getInterfacesFor:function(t){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[n.Channel,n.Connector,n.Peripheral],a=arguments.length>1?arguments[1]:void 0;return""!==a&&null!==a||!t.gateway||(a=t.gateway.agentId),t.nodes.filter((function(t){return e.includes(t.klass)&&t.parentId===a}))}},getNodeKlass:function(t){return function(e){var a=t.nodes.find((function(t){return t.uid===e}));return a?a.klass:n.Undefined}}},_s={updateGateways:function(t,e){t.gateways=e},updateGateway:function(t,e){t.gateway=e},populateNodes:function(t,e){var a=function(){for(var t=arguments.length,e=new Array(t),a=0;a0)return t.modals[t.modals.length-1]}},Ls={newModal:function(t,e){var a=!1;t.modals.length>1&&(a=t.modals[t.modals.length-2]),!1!==a&&a.modalTarget===e.modalTarget&&a.modalTargetId===e.modalTargetId?t.modals.pop():t.modals.push(e)},closeModal:function(t){t.modals.length>0&&t.modals.pop()},closeModalAll:function(t){t.modals=[]}},Ms={},Es={namespaced:Ts,state:Rs,getters:Gs,mutations:Ls,actions:Ms},Ps=!0,As={itemPerPage:5,actualPage:1,lastChange:Date.now()},Ds={getItemPerPage:function(t){return t.itemPerPage},getActualPage:function(t){return t.actualPage},getLastChange:function(t){return t.lastChange}},Ss={setItemPerPage:function(t,e){t.actualPage=1,t.itemPerPage=e,t.lastChange=Date.now()},setActualPage:function(t,e){t.actualPage=e,t.lastChange=Date.now()}},Fs={},Us={namespaced:Ps,state:As,getters:Ds,mutations:Ss,actions:Fs},Bs='',$s='',Vs='',Ks='',zs='',Hs='',Zs='',Ys='',Js='',Xs='',Ws='',qs='',Qs='',to='',eo='',ao='',no='',io='',so='',oo="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(Bs),ro="data:image/svg+xml;charset=utf-8,"+encodeURIComponent($s),co="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(Vs),lo="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(Hs),uo="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(Zs),ho="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(Ks),fo="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(zs),po="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(Ys),go="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(Js),mo=(encodeURIComponent(Xs),encodeURIComponent(Ws),encodeURIComponent(qs),"data:image/svg+xml;charset=utf-8,"+encodeURIComponent(Qs)),yo="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(to),vo="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(eo),bo="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(ao),wo="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(no),Co="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(io),Oo="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(so),ko=10,jo=20,Io=30,_o=40,xo=50,No=5,To=2,Ro=3,Go=5,Lo={nodes:{font:{color:"#fff",background:"#222",size:12,face:"Roboto Mono",strokeWidth:0,vadjust:0},shadow:{enabled:!1,color:"rgba(75,174,97,1)",size:20,x:0,y:0},widthConstraint:{maximum:75},margin:{top:0}},edges:{font:{color:"#fff",background:"#222",size:12,face:"Roboto Mono",strokeWidth:0},color:{color:"#BDBDBD",highlight:"#27ae60"},smooth:!1},groups:{10:{shape:"image",image:mo,size:30},11:{shape:"image",image:vo,size:30},13:{shape:"image",image:yo,size:30},14:{shape:"image",image:vo,size:30},20:{shape:"image",image:bo,size:30},21:{shape:"image",image:Oo,size:30},23:{shape:"image",image:wo,size:30},24:{shape:"image",image:Oo,size:30},25:{shape:"image",image:Co,size:30},26:{shape:"image",image:Oo,size:30},28:{shape:"image",image:Co,size:30},29:{shape:"image",image:Oo,size:30},30:{shape:"image",image:oo,size:20},31:{shape:"image",image:co,size:20},32:{shape:"image",image:ro,size:20},33:{shape:"image",image:co,size:20},35:{shape:"image",image:ho,size:25},36:{shape:"image",image:fo,size:25},40:{shape:"image",image:lo,size:20},41:{shape:"image",image:uo,size:20},50:{shape:"image",image:po,size:20},51:{shape:"image",image:go,size:20}},layout:{randomSeed:921401,improvedLayout:!0,hierarchical:{enabled:!0,direction:"LR",parentCentralization:!0,blockShifting:!0,levelSeparation:150,treeSpacing:200,nodeSpacing:100,edgeMinimization:!0,sortMethod:"hubsize"}},physics:{enabled:!0,solver:"barnesHut",barnesHut:{gravitationalConstant:-4500,springLength:100,springConstant:.01,damping:.1,avoidOverlap:0},minVelocity:.45,stabilization:{enabled:!0,iterations:1e3,updateInterval:10,onlyDynamicEdges:!1,fit:!0}},interaction:{navigationButtons:!0,keyboard:!1}},Mo=3,Eo=5e3,Po=!0,Ao={nodes:{},edges:{},options:Lo,showInterfaces:!0,showLabels:!0,autoUpdateEnabled:!0,graphData:{nodes:new $a["DataSet"]({}),edges:new $a["DataSet"]({})}},Do={getVisNodes:function(t){return t.nodes},getVisEdges:function(t){return t.edges},getGrapData:function(t){return t.graphData},getOptions:function(t){return t.options},getShowInterfaces:function(t){return t.showInterfaces},getShowLabels:function(t){return t.showLabels},getAutoUpdateEnabled:function(t){return t.autoUpdateEnabled}},So={setNodes:function(t,e){t.nodes=e},setEdges:function(t,e){t.edges=e},setGraphData:function(t){var e=new $a["DataSet"](t.nodes),a=new $a["DataSet"](t.edges),n={nodes:e,edges:a};t.graphData=n},setOptions:function(t,e){t.options=e},setShowInterfaces:function(t,e){t.showInterfaces=e},setShowLabels:function(t,e){t.showLabels=e},setTreeView:function(t,e){t.options.layout.hierarchical.enabled=e,t.options.physics.stabilization.onlyDynamicEdges=!0===e},setPhysics:function(t,e){t.options.physics.enabled=e},setSmoothEdge:function(t,e){t.options.edges.smooth=e},setAutoUpdateEnabled:function(t,e){t.autoUpdateEnabled=e}},Fo={generateNodes:function(t){var e=t.rootGetters["c3Module/getNodes"],a=t.rootGetters["c3Module/getGateway"].timestamp,i=t.rootGetters["c3Module/getGateway"].isActive,s=function(t,e,a){var i=0;null!==t.error&&++i;var s=!0;switch(void 0!==t.isActive&&!1===t.isActive&&(s=!1),t.klass===n.Relay&&(t.timestamp&&(s=!(t.timestamp-1&&(t.notifys[a]=e)},removeNotify:function(t,e){var a=t.notifys.findIndex((function(t){return t.id===e}));a>-1&&t.notifys.splice(a,1)},removeOldestNotify:function(t){var e=t.notifys.length;if(e>0){var a=t.notifys[0];a.timeoutID&&clearTimeout(a.timeoutID),t.notifys.splice(0,1)}}},zo={insertNotify:function(t,e){var a=function(a){e.id=Math.random().toString(36).substr(2),e.timeoutID=setTimeout((function(){return t.commit("removeNotify",e.id),!0}),Eo),t.commit("addNotify",e)},n=t.state.notifys.length;if(n>0)if(e.message!==t.state.notifys[n-1].message)a(e);else{var i=t.state.notifys[n-1];clearTimeout(i.timeoutID),i.timeoutID=setTimeout((function(){return t.commit("removeNotify",i.id),!0}),Eo),t.commit("updateNotify",i)}else a(e);n>=Mo&&t.commit("removeOldestNotify")}},Ho={namespaced:Bo,state:$o,getters:Vo,mutations:Ko,actions:zo},Zo=!0,Yo={capability:{},interfaceList:[]},Jo={getCommandGroupFor:function(t){return function(e){var a={};switch(e){case n.Gateway:t.capability&&t.capability.commands&&(a=t.capability.commands);break;case n.Relay:t.capability&&t.capability.relayCommands&&(a=t.capability.relayCommands.commands);break;case n.Channel:t.capability&&t.capability.channelCommands&&(a=t.capability.channelCommands.commands);break;case n.Peripheral:t.capability&&t.capability.peripheralCommands&&(a=t.capability.peripheralCommands.commands);break;case n.Connector:t.capability&&t.capability.connectorCommands&&(a=t.capability.connectorCommands.commands);break}var i={};return void 0!==a.length&&a.forEach((function(t){var e=t.name;i[e]=e})),i}},getCommandTargetFor:function(t){return function(e,a,i){var s={};switch(a){case n.Gateway:t.capability&&t.capability.commands&&(s=t.capability.commands);break;case n.Relay:t.capability&&t.capability.relayCommands&&(s=t.capability.relayCommands.commands);break;case n.Channel:t.capability&&t.capability.channelCommands&&(s=t.capability.channelCommands.commands);break;case n.Peripheral:t.capability&&t.capability.peripheralCommands&&(s=t.capability.peripheralCommands.commands);break;case n.Connector:t.capability&&t.capability.connectorCommands&&(s=t.capability.connectorCommands.commands);break}var o={};void 0!==s.length&&(o=s.find((function(t){return t.name===e})));var r={};if(o&&o.arguments){var c=o.arguments.find((function(t){return"form"===t.type}));c.defaultValue.forEach((function(t){if(void 0===i)r[t.replace(/:/g,"_")]=t.split(":")[2];else{var e=t.split(":")[1];e===i&&(r[t.replace(/:/g,"_")]=t.split(":")[2])}}))}return r}},getTypeNameForInterface:function(t){return function(e,a){var n=t.interfaceList.find((function(t){return""+t.type===""+e}));return void 0!==n?n.name:""}},getTypesForInterfaceKlass:function(t){return function(e){return t.interfaceList.filter((function(t){return t.klass===e}))}},getCapabilityFor:function(t){return function(e,a){return t.interfaceList.find((function(t){return t.name===e&&t.klass===a}))}}},Xo={updateCapability:function(t,e){t.interfaceList=[],t.capability=e},populateList:function(t){var e=function(e){t.capability&&t.capability[e]&&t.capability[e].forEach((function(a){var i={type:a.type,name:a.name,commands:a.commands};switch(e){case"channels":i.klass=n.Channel;break;case"connectors":i.klass=n.Connector;break;case"peripherals":i.klass=n.Peripheral;break;case"gateway":i.klass=n.Gateway;break;case"relay":i.klass=n.Relay;break}t.interfaceList.push(i)}))};e("channels"),e("connectors"),e("peripherals"),e("gateway"),e("relay")}},Wo={fetchCapability:function(t,e){if(e.gatewayId){var a="/api/gateway/".concat(e.gatewayId,"/capability"),n="".concat(t.rootGetters["optionsModule/getAPIUrl"],":").concat(t.rootGetters["optionsModule/getAPIPort"]);R.a.get(a,{baseURL:n}).then((function(e){t.commit("updateCapability",e.data),t.commit("populateList",e.data)})).catch((function(e){t.dispatch("notifyModule/insertNotify",{type:"error",message:e.message},{root:!0}),console.error(e.message)}))}else t.dispatch("notifyModule/insertNotify",{type:"error",message:"missing: gatewayId"},{root:!0}),console.error("missing: gatewayId")}},qo={namespaced:Zo,state:Yo,getters:Jo,mutations:Xo,actions:Wo},Qo=!0,tr={baseUrl:"http://localhost",port:52935,refreshInterval:2e3},er={getAPIUrl:function(t){return t.baseUrl},getAPIPort:function(t){return t.port},getAPIBaseUrl:function(t){return t.baseUrl+":"+t.port},getRefreshInterval:function(t){return t.refreshInterval}},ar={setBaseURL:function(t,e){t.baseUrl=e},setBasePort:function(t,e){t.port=e},setRefreshInterval:function(t,e){t.refreshInterval=e}},nr={},ir={namespaced:Qo,state:tr,getters:er,mutations:ar,actions:nr},sr=!0,or={commands:[],totalCount:0},rr={getCommands:function(t){return t.commands},getCommand:function(t){return function(e){return t.commands.find((function(t){return""+t.id===""+e}))}},getCommandCount:function(t){return t.totalCount}},cr={updateCommands:function(t,e){t.commands=e},updateTotalCount:function(t,e){t.totalCount=e}},lr={fetchCommands:function(t,e){if(e){var a=t.rootGetters["paginateModule/getActualPage"],n=t.rootGetters["paginateModule/getItemPerPage"],i="/api/gateway/".concat(e,"/command?all=true&page=").concat(a,"&perPage=").concat(n),s="".concat(t.rootGetters["optionsModule/getAPIUrl"],":").concat(t.rootGetters["optionsModule/getAPIPort"]);R.a.get(i,{baseURL:s}).then((function(e){t.commit("updateCommands",e.data);var a=0;e.headers["X-Total-Count"]?a=e.headers["X-Total-Count"]:e.headers["x-total-count"]&&(a=e.headers["x-total-count"]),a&&t.commit("updateTotalCount",a)})).catch((function(e){t.dispatch("notifyModule/insertNotify",{type:"error",message:e.message},{root:!0}),console.error(e.message)}))}else t.dispatch("notifyModule/insertNotify",{type:"error",message:"missing: gatewayId"},{root:!0}),console.error("missing: gatewayId")}},dr={namespaced:sr,state:or,getters:rr,mutations:cr,actions:lr};i["a"].use(ws["a"]);var ur={state:{version:"1.0.0"},modules:{c3Module:Ns,visModule:Uo,modalModule:Es,notifyModule:Ho,c3Capability:qo,optionsModule:ir,paginateModule:Us,c3CommandModule:dr}},hr=new ws["a"].Store(ur),fr=a("7bb1");a("b107"),a("5207");i["a"].config.productionTip=!1,window.networkc3={},i["a"].use(fr["a"],{inject:!1,validity:!0}),new i["a"]({store:hr,render:function(t){return t(bs)}}).$mount("#app")},ceb2:function(t,e,a){"use strict";var n=a("c4d2"),i=a.n(n);i.a},cf25:function(t,e,a){"use strict";var n=a("56cc"),i=a.n(n);i.a},d271:function(t,e,a){},d94a:function(t,e,a){"use strict";var n=a("c777"),i=a.n(n);i.a},e181:function(t,e,a){"use strict";var n=a("4dd2"),i=a.n(n);i.a},e1b5:function(t,e,a){"use strict";var n=a("7d44"),i=a.n(n);i.a},e2a8:function(t,e,a){},e347:function(t,e,a){"use strict";var n=a("4ccb"),i=a.n(n);i.a},e3a5:function(t,e,a){"use strict";var n=a("7f68"),i=a.n(n);i.a},e72f:function(t,e,a){"use strict";var n=a("9412"),i=a.n(n);i.a},e9db:function(t,e,a){},eef7:function(t,e,a){},f2d7:function(t,e,a){},f32c:function(t,e,a){},fc0c:function(t,e,a){"use strict";var n=a("b839"),i=a.n(n);i.a}}); +//# sourceMappingURL=app.eaa4650c.js.map \ No newline at end of file diff --git a/Src/WebController/Backend/wwwroot/js/app.eaa4650c.js.map b/Src/WebController/Backend/wwwroot/js/app.eaa4650c.js.map new file mode 100644 index 0000000..7fadc3d --- /dev/null +++ b/Src/WebController/Backend/wwwroot/js/app.eaa4650c.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/Notification.vue?4c46","webpack:///./src/components/Footer.vue?a7cb","webpack:///./src/components/form/Toggle.vue?675a","webpack:///./src/components/form/Input.vue?6853","webpack:///./src/components/partial/PeripheralList.vue?0267","webpack:///./src/components/Controll.vue?4be5","webpack:///./src/components/datatables/DataTableFooter.vue?03f9","webpack:///./src/components/form/Textarea.vue?646a","webpack:///./src/components/partial/NetworkStats.vue?1d4e","webpack:///./src/components/partial/RelayList.vue?c11a","webpack:///./src/components/modals/Relay.vue?19ce","webpack:///./src/components/partial/InterfaceList.vue?82ba","webpack:///./src/components/modals/CreateRelay.vue?ff18","webpack:///./src/components/SideMenu.vue?750a","webpack:///./src/components/partial/DonutForm.vue?4ebf","webpack:///./src/components/modals/Interface.vue?4fbb","webpack:///./src/components/partial/ChannelList.vue?db22","webpack:///./src/components/Canvas.vue?405d","webpack:///./src/components/form/SelectGatewayForm.vue?2fba","webpack:///./src/assets/logo.svg","webpack:///./src/components/GatewayForm.vue?9973","webpack:///./src/components/Navbar.vue?3ae9","webpack:///./src/components/partial/CommandList.vue?5b7a","webpack:///./src/components/modals/Command.vue?4204","webpack:///./src/types/c3types.ts","webpack:///./src/App.vue?9c21","webpack:///./src/components/Modal.vue?27ce","webpack:///./src/c3.ts","webpack:///./src/components/modals/Relay.vue?f686","webpack:///./src/components/partial/RouteList.vue?b966","webpack:///./src/components/partial/Partial.ts","webpack:///./src/components/partial/RouteList.vue?06ec","webpack:///./src/components/partial/RouteList.vue?7d6e","webpack:///./src/components/partial/RouteList.vue","webpack:///./src/components/partial/ChannelList.vue?7e96","webpack:///./src/components/partial/ChannelList.vue?faea","webpack:///./src/components/partial/ChannelList.vue?6305","webpack:///./src/components/partial/ChannelList.vue","webpack:///./src/components/partial/PeripheralList.vue?f981","webpack:///./src/components/partial/PeripheralList.vue?1531","webpack:///./src/components/partial/PeripheralList.vue?378d","webpack:///./src/components/partial/PeripheralList.vue","webpack:///./src/components/modals/Relay.vue?6330","webpack:///./src/components/modals/Relay.vue?8630","webpack:///./src/components/modals/Relay.vue","webpack:///./src/components/modals/Command.vue?b741","webpack:///./src/components/modals/Command.vue?8ca1","webpack:///./src/components/modals/Command.vue?c60c","webpack:///./src/components/modals/Command.vue","webpack:///./src/components/modals/Gateway.vue?12d9","webpack:///./src/components/partial/NetworkStats.vue?0f19","webpack:///./src/components/partial/NetworkStats.vue?c9ff","webpack:///./src/components/partial/NetworkStats.vue?6899","webpack:///./src/components/partial/NetworkStats.vue","webpack:///./src/components/partial/ConnectorList.vue?7acd","webpack:///./src/components/partial/ConnectorList.vue?a4e8","webpack:///./src/components/partial/ConnectorList.vue?4a28","webpack:///./src/components/partial/ConnectorList.vue","webpack:///./src/components/modals/CommandCenter.vue?1d66","webpack:///./src/components/form/Input.vue?1a0b","webpack:///./src/components/form/C3FormElement.ts","webpack:///./src/components/form/Input.vue?0950","webpack:///./src/components/form/Input.vue?b457","webpack:///./src/components/form/Input.vue","webpack:///./src/components/form/Select.vue?e7fc","webpack:///./src/components/form/Select.vue?5ae7","webpack:///./src/components/form/Select.vue?9c6b","webpack:///./src/components/form/Select.vue","webpack:///./src/components/form/GeneralForm.vue?073f","webpack:///./src/components/form/CheckBox.vue?a023","webpack:///./src/components/form/CheckBox.vue?2a9d","webpack:///./src/components/form/CheckBox.vue?e74f","webpack:///./src/components/form/CheckBox.vue","webpack:///./src/components/form/Textarea.vue?6d16","webpack:///./src/components/form/Textarea.vue?b2ff","webpack:///./src/components/form/Textarea.vue?404a","webpack:///./src/components/form/Textarea.vue","webpack:///./src/components/form/GeneralForm.vue?492d","webpack:///./src/components/form/GeneralForm.vue?1dcc","webpack:///./src/components/form/GeneralForm.vue","webpack:///./src/components/modals/CommandCenter.vue?1834","webpack:///./src/components/modals/CommandCenter.vue?4b8f","webpack:///./src/components/modals/CommandCenter.vue","webpack:///./src/components/modals/Gateway.vue?139e","webpack:///./src/components/modals/Gateway.vue?d72d","webpack:///./src/components/modals/Gateway.vue","webpack:///./src/components/modals/Interface.vue?fa05","webpack:///./src/components/modals/Interface.vue?d51e","webpack:///./src/components/modals/Interface.vue?84e7","webpack:///./src/components/modals/Interface.vue","webpack:///./src/components/modals/CreateRelay.vue?c13d","webpack:///./src/components/partial/DonutForm.vue?4d6a","webpack:///./src/components/partial/DonutForm.vue?e442","webpack:///./src/components/partial/DonutForm.vue?0e68","webpack:///./src/components/partial/DonutForm.vue","webpack:///./src/components/modals/CreateRelay.vue?6c1d","webpack:///./src/components/modals/CreateRelay.vue?9a90","webpack:///./src/components/modals/CreateRelay.vue","webpack:///./src/components/modals/CreateGateway.vue?1235","webpack:///./src/components/modals/CreateGateway.vue?a2ac","webpack:///./src/components/modals/CreateGateway.vue?de3f","webpack:///./src/components/modals/CreateGateway.vue","webpack:///./src/components/modals/ConnectRelays.vue?c7fd","webpack:///./src/components/modals/ConnectRelays.vue?380a","webpack:///./src/components/modals/ConnectRelays.vue?a4d9","webpack:///./src/components/modals/ConnectRelays.vue","webpack:///./src/components/modals/Options.vue?723a","webpack:///./src/components/modals/Options.vue?7b67","webpack:///./src/components/modals/Options.vue?61d2","webpack:///./src/components/modals/Options.vue","webpack:///./src/components/Modal.vue?fcbb","webpack:///./src/components/Modal.vue?2e40","webpack:///./src/components/Modal.vue","webpack:///./src/components/Canvas.vue?113f","webpack:///./src/components/form/Toggle.vue?061b","webpack:///./src/components/form/Toggle.vue?acac","webpack:///./src/components/form/Toggle.vue?c9d7","webpack:///./src/components/form/Toggle.vue","webpack:///./src/lib/path.ts","webpack:///./src/components/Canvas.vue?65a0","webpack:///./src/components/Canvas.vue?1a0e","webpack:///./src/components/Canvas.vue","webpack:///./src/components/Footer.vue?97b0","webpack:///./src/components/Footer.vue?47c3","webpack:///./src/components/Footer.vue?4a0f","webpack:///./src/components/Footer.vue","webpack:///./src/components/Navbar.vue?6689","webpack:///./src/components/Navbar.vue?6c59","webpack:///./src/components/Navbar.vue?1bdf","webpack:///./src/components/Navbar.vue","webpack:///./src/components/Controll.vue?8f8b","webpack:///./src/components/datatables/Relays.vue?b547","webpack:///./src/components/partial/RelayList.vue?d874","webpack:///./src/components/partial/RelayList.vue?e3da","webpack:///./src/components/partial/RelayList.vue?c946","webpack:///./src/components/partial/RelayList.vue","webpack:///./src/components/datatables/DataTableFooter.vue?1797","webpack:///./src/components/datatables/DataTableFooter.vue?283b","webpack:///./src/components/datatables/DataTableFooter.vue?e8ee","webpack:///./src/components/datatables/DataTableFooter.vue","webpack:///./src/components/datatables/Relays.vue?e99b","webpack:///./src/components/datatables/Relays.vue?8d18","webpack:///./src/components/datatables/Relays.vue","webpack:///./src/components/datatables/Commands.vue?b624","webpack:///./src/components/partial/CommandList.vue?e4a8","webpack:///./src/components/partial/CommandList.vue?ce21","webpack:///./src/components/partial/CommandList.vue?9d8b","webpack:///./src/components/partial/CommandList.vue","webpack:///./src/components/datatables/Commands.vue?14cf","webpack:///./src/components/datatables/Commands.vue?67c2","webpack:///./src/components/datatables/Commands.vue","webpack:///./src/components/datatables/Interfaces.vue?b20d","webpack:///./src/components/partial/InterfaceList.vue?a085","webpack:///./src/components/partial/InterfaceList.vue?90ef","webpack:///./src/components/partial/InterfaceList.vue?c5e5","webpack:///./src/components/partial/InterfaceList.vue","webpack:///./src/components/datatables/Interfaces.vue?a48b","webpack:///./src/components/datatables/Interfaces.vue?fb57","webpack:///./src/components/datatables/Interfaces.vue","webpack:///./src/components/Controll.vue?60cb","webpack:///./src/components/Controll.vue?71af","webpack:///./src/components/Controll.vue","webpack:///./src/components/SideMenu.vue?6962","webpack:///./src/components/SideMenu.vue?4ee6","webpack:///./src/components/SideMenu.vue?e9cd","webpack:///./src/components/SideMenu.vue","webpack:///./src/components/GatewayForm.vue?c4ea","webpack:///./src/components/form/SelectGatewayForm.vue?3ece","webpack:///./src/components/form/SelectGatewayForm.vue?cf7c","webpack:///./src/components/form/SelectGatewayForm.vue?e87b","webpack:///./src/components/form/SelectGatewayForm.vue","webpack:///./src/components/GatewayForm.vue?8fdb","webpack:///./src/components/GatewayForm.vue?0c0a","webpack:///./src/components/GatewayForm.vue","webpack:///./src/components/Notification.vue?c548","webpack:///./src/components/Notification.vue?b843","webpack:///./src/components/Notification.vue?22c7","webpack:///./src/components/Notification.vue","webpack:///./src/App.vue?ec60","webpack:///./src/App.vue?640d","webpack:///./src/App.vue","webpack:///./src/store/C3Module.ts","webpack:///./src/store/ModalModule.ts","webpack:///./src/store/PaginateModule.ts","webpack:///./src/components/assets/SvgIconsForVis.ts","webpack:///./src/options.ts","webpack:///./src/store/VisModule.ts","webpack:///./src/store/NotifyModule.ts","webpack:///./src/store/C3Capability.ts","webpack:///./src/store/OptionsModule.ts","webpack:///./src/store/C3Command.ts","webpack:///./src/store.ts","webpack:///./src/main.ts","webpack:///./src/components/form/CheckBox.vue?d099","webpack:///./src/App.vue?6f35","webpack:///./src/components/modals/ConnectRelays.vue?87d0","webpack:///./src/components/modals/CommandCenter.vue?c973","webpack:///./src/components/form/GeneralForm.vue?7efc","webpack:///./src/components/partial/RouteList.vue?d3b6","webpack:///./src/components/partial/ConnectorList.vue?d946","webpack:///./src/components/Modal.vue?6b67","webpack:///./src/components/form/Select.vue?2e91"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","NodeKlass","_vm","this","_h","$createElement","_c","_self","attrs","hasSelectedGateway","staticClass","_e","_v","staticRenderFns","nullNode","uid","klass","Undefined","id","pending","isActive","type","error","parentId","parentKlass","isReturnChannel","isNegotiationChannel","initialCommand","propertiesText","class","activeModal","modalTarget","toLowerCase","isGateway","targetUid","isRelay","options","isInterface","on","$event","target","currentTarget","closeThisModal","closeAllModal","C3Module","NotifyModule","ModalModule","C3Capability","PaginateModule","modal","newModal","modalTargetId","modalOptions","closeModal","closeModalAll","notify","insertNotify","c3Interface","getTypeNameForInterface","addNotify","message","c3Channel","c3Command","interfaceId","undefined","relayAgentId","getNodeKlass","gateway","Relay","Gateway","returnClass","isPending","e","keyCode","unixTimestamp","time","Date","timeStr","toISOString","replace","getItemPerPage","getActualPage","itemPerPage","actualPage","maxIndex","getGateway","Mutation","Action","Getter","relay","_s","openModal","buildId","unixTimeToString","timestamp","hostInfo","computerName","userName","domain","processId","isElevated","osMajorVersion","osMinorVersion","osBuildNumber","osServicePackMajor","osServicePackMinor","osProductType","osVersion","targetId","JSON","stringify","routes","displayEmpty","directives","rawName","expression","title","_m","_l","route","destinationAgent","receivingInterface","outgoingInterface","isNeighbour","staticStyle","sendCommand","showEmpty","C3OptionsModule","routeToDelete","getCommandId","command","arguments","apiURL","getRelay","url","method","baseURL","getAPIBaseUrl","then","response","catch","msg","console","getRelayRoutes","getGatewayRoutes","interfaceKlass","capability","getCapabilityFor","com","commands","find","component","channels","channel","interfaceTypeName","interfaceType","getInterfacesFor","Channel","peripherals","peripheral","Peripheral","addEventListener","handleGlobalKeyDown","removeEventListener","components","RouteList","ChannelList","PheripheralList","InterfaceUID","commandType","isCommandPending","commandTypeId","C3CommandModule","getCommand","countRelays","countChannels","countConnectors","countPheripherals","port","getAPIUrl","getAPIPort","getRefreshInterval","getRelays","getInterfaces","Connector","connectors","connector","currentItem","selectedCommandGroup","commandGroupOptions","changeCommandGroup","commandGroup","selectedCommandTarget","commandTargetOptions","changeCommandTarget","commandTarget","selectedInterface","selectedCommand","selectedInterfaceKlass","argumentOptions","changeForm","formData","formIsValid","help","onClickRandom","_b","ref","dirty","isDirty","isDisabled","inputUID","autocomplete","domProps","changeInputText","gainFocus","lostFocus","composing","inputText","$attrs","clickOnLabel","legend","errors","first","disabled","Math","random","toString","substring","focused","getValue","intervalTimer","handleEnterAndTabKeyDown","setInterval","clearInterval","$refs","textinput","focus","$validator","verify","validate","valid","isValid","$emit","substr","rand","parseInt","$_veeValidate","validator","toggleSelect","hasBorder","selectedValue","dropDownIcon","directionReverse","style","selected","isSelected","selectAndClose","isOpen","border","up","selectRef","selectUlStyle","calculateSelectUlOffset","selectedId","feedback","rect","$el","getBoundingClientRect","scrollLeft","pageXOffset","document","documentElement","scrollTop","pageYOffset","top","left","width","keys","forEach","field","getFieldType","tag","validation","randomize","setDefaultValue","defaultValue","description","onChange","getIconKlass","Array","isArray","isChecked","_i","_q","$$a","$$el","$$c","checked","$$v","$$i","concat","toogleCheckBox","getIsChecked","isCheckedValue","dataText","updateTextarea","updateTextfield","textareainput","base64","reader","FileReader","file","fileinput","readAsDataURL","files","onload","argumentsArray","argumentObjects","f","payload","index","findIndex","emitFormData","clearArray","element","getCommandFrom","rData","v","min","max","inputId","outputId","hasOptions","output","item","input","inputName","inputValue","newValue","argument","getValidationRule","getRandomLenght","argumentItem","setArgumentData","interfaceName","Input","Select","Textarea","CheckBox","formDirty","formDefault","prefix","interface","dataToEmit","getInterface","resetForm","defaultCommandGroup","defaultCommandTarget","targetGroup","getCommandGroupFor","getCommandTargetFor","singular","split","toUpperCase","embeded","GeneralForm","NetworkStats","ConnectorList","CommandCenterModal","CommandCenter","getInterfaceJitter","generateOprions","isChannel","node","parse","interfaceAguments","propertiesAurguments","values","objectOrArray","getInterfaceParentId","attributes","tmp","a","argumentsString","getArguments","match","optionsArguments","getArgumentsAttributes","changeInputOutputIDs","propertiesArguments","getPropertiesArguments","isNormalChannel","getPrefix","getInterfaceTypeString","generateCommandCenterArguments","source","generateSourceOptions","showConnectRelayButton","showNewRelayButton","showButtons","jitter","changeName","relayName","gatewayBuildsId","selectedTargetSuffix","dll","exe","shellcode","changeTargetSuffix","targetSuffix","selectedArchitecture","x86","x64","changeArchitecture","architecture","changeDonutForm","addNewRelayToOptions","createNewRelay","selectedFormat","Binary","Base64","Ruby","C","Python","Powershell","Csharp","HeX","changeFormat","format","selectedCompress","None","Aplib","Lznt1","Xpress","Xpress_huff","changeCompress","compress","selectedEntropy","Random","Default","changeEntropy","entropy","selectedExitOpt","Exit_thread","Exit_process","changeExitOpt","exitOpt","selectedBypass","Abort","Continue","changeBypass","bypass","emitDonut","donut","donutSelected","donutFormData","parentGatewayBuildId","startupCommands","responseType","fileName","blob","Blob","contentDisposition","headers","URL","createObjectURL","link","createElement","href","setAttribute","body","appendChild","click","remove","revokeObjectURL","DonutForm","gatewayName","createNewGateway","apiUrl","getGateways","selectedRelay","generateRelayList","changeTargetRelay","targetRelay","addNewRelayGroupToOptions","selectOptions","optionsCount","nullLiteral","nodes","sourceRelay","sourceInterface","c3Url","setUrl","c3Port","setPort","isFormValid","saveNetworkConfig","c3UrlIsValid","c3PortIsValid","setBaseURL","setBasePort","RelayModal","CommandModal","Command","GatewayModal","OptionsModal","Options","InterfaceModal","Interface","CreateRelayModal","CreateRelay","ConnectRelayModal","CreateGatewayModal","CreateGateway","isFullscreen","fullscreenIcon","getTreeView","toggleTreeView","toggleInterfaces","getShowLabels","toggleLabels","getPhysics","togglePhysics","getSmoothEdges","toggleSmoothEdges","reloadGraph","toogleToggle","booleanCheckbox","startNode","paths","nodeId","setStartNode","iterations","hasPathEndpoints","targetNode","nextNode","handleNodeChannel","handleConnectorAndPeripheral","handleRelay","checkEndLoop","getNodes","setNextNodeForChannel","isStartNodeConnectorOrPeripheral","setNextAndParentNode","isStartNodeRelay","setNextNodeForRelay","getEdges","filter","edge","to","from","neighbour","getParentNode","insertParentNodeToPaths","setNextNodeForReturnChannel","getChannelNeighbours","possibleNext","getPossibeNext","setAndInsertNextNode","getRelayNeighbours","VisModule","container","isSmooth","lastClickNodeId","createVisCanvas","c3canvas","networkc3","getGrapData","graphOtions","params","nodeid","getNodeAt","pointer","DOM","nodeKlass","deselectNodes","clearPath","selectNode","progressBarStatus","getElementById","status","floor","getOptions","physics","stabilization","updateInterval","progressBar","b","setTreeView","setOptions","setGraphData","setPhysics","setShowInterfaces","generateNodes","generateEdges","setShowLabels","setSmoothEdge","layout","randomSeed","getVisNodes","update","shadow","enabled","getVisEdges","tmpEdge","edges","color","getPathsFromGateway","includes","findPath","hierarchical","getShowInterfaces","Toggle","active","activeIsRelay","setActiveTab","activeIsInterface","activeIsCommands","setCount","getCount","relays","minIndex","results","perPage","changePerPage","page","prevPage","maxPage","nextPage","perPageCount","setItemPerPage","setActualPage","maxpage","ceil","rCount","RelayList","DataTableFooter","selectedCommandStatus","selectedCommandFor","commandsArray","getCommands","statusFilter","commandForFilter","commandFor","commandStatus","oldValue","fetchCommands","getCommandCount","CommandList","selectedInterfaceType","ALL","CHANNEL","PERIPHERAL","CONNECTOR","selectInterfaceType","selectedReturnChannel","YES","NO","isChannelOrAllForDisabled","selectReturnChannel","returnChannel","selectedNegotiationChannel","selectNegotiationChannel","negotiationChannel","c3Interfaces","interfaces","interfaceTypeFilter","returnChannelFilter","c3Node","negotiationChannelFilter","iCount","interfaceByType","emitedCountNumber","newtype","filterReturnChannel","filterNegotiationChannel","InterfaceList","activeTab","hasGatewaySelected","RelaysTab","Relays","CommandsTab","Commands","InterfacesTab","Interfaces","selectedRefreshRate","refreshRates","setRefreshRate","refreshRate","getAutoUpdateEnabled","toggleAutoUpdate","setAutoUpdateEnabled","rate","setRefreshInterval","1","2","5","10","20","30","60","120","300","600","1800","3600","selectedGateway","gateways","selectGateway","activeGateway","changeGateway","fetchGateway","gatewayId","g","agentId","SelectGatewayForm","deleteNotify","removeNotify","getNotifies","updateData","setTime","setData","fetchCapability","fetchGateways","Navbar","GatewayForm","Canvas","Controll","SideMenu","Footer","Modal","Notification","namespaced","state","relayTimestamps","mustRefresh","lastGetHash","getters","c3State","now","mutations","updateGateways","updateGateway","populateNodes","uuid","args","join","isRelayActive","gatewayTimestamp","relayTimestamp","iid","newTime","populateEdges","guid","interfaceIsExist","dashes","isDashed","actions","context","nodeIds","dispatch","root","rootGetters","commit","hash","c3Module","modals","modalState","last","pop","modalModule","lastChange","paginateState","getLastChange","paginateModule","svgChannelActive","svgChannelReturn","svgChannelError","svgNegotiationActive","svgNegotiationError","svgPeripheralActive","svgPeripheralError","svgConnectorActive","svgConnectorError","svgInterfaceActive","svgInterfaceInactive","svgInterfaceError","svgGatewayActive","svgGatewayInactive","svgGatewayError","svgRelayActive","svgRelayInactive","svgRelayGhost","svgRelayError","ChannelActive","encodeURIComponent","ChannelReturn","ChannelError","PeripheralActive","PeripheralError","NegotiationActive","NegotiationError","ConnectorActive","ConnectorError","GatewayActive","GatewayInactive","GatewayError","RelayActive","RelayInactive","RelayGhost","RelayError","GATEWAY","RELAY","NEGOTIATION_CHANNEL","RETURN_CHANNEL","INACTIVE","GHOST","VisOptions","font","background","size","face","strokeWidth","vadjust","x","y","widthConstraint","maximum","margin","highlight","smooth","groups","shape","image","11","13","14","21","23","24","25","26","28","29","31","32","33","35","36","40","41","50","51","improvedLayout","direction","parentCentralization","blockShifting","levelSeparation","treeSpacing","nodeSpacing","edgeMinimization","sortMethod","solver","barnesHut","gravitationalConstant","springLength","springConstant","damping","avoidOverlap","minVelocity","onlyDynamicEdges","fit","interaction","navigationButtons","keyboard","maximumToast","notifyLenght","showInterfaces","showLabels","autoUpdateEnabled","graphData","visState","setNodes","setEdges","graph","gatewayLastStartTime","gatewayIsActive","setGroup","gatewayStartTime","isGatewayActive","group","interfaccesIncluded","label","es","visModule","notifys","notifyState","updateNotify","notifyIndex","removeOldestNotify","notifyCount","timeoutID","clearTimeout","addNotification","notification","setTimeout","lastNotify","notifyModule","interfaceList","capabilityState","relayCommands","channelCommands","peripheralCommands","connectorCommands","option","commandName","currentType","commandList","form","commandItem","optionType","k","getTypesForInterfaceKlass","updateCapability","populateList","getItem","c3Capability","baseUrl","refreshInterval","optionsState","optionsModule","totalCount","C3State","updateCommands","updateTotalCount","c3CommandModule","use","store","version","Store","config","productionTip","inject","validity","render","h","$mount"],"mappings":"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","file":"js/app.eaa4650c.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notification.vue?vue&type=style&index=0&lang=sass&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notification.vue?vue&type=style&index=0&lang=sass&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Footer.vue?vue&type=style&index=0&id=b810e06a&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Footer.vue?vue&type=style&index=0&id=b810e06a&scoped=true&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toggle.vue?vue&type=style&index=0&id=999b190e&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toggle.vue?vue&type=style&index=0&id=999b190e&scoped=true&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Input.vue?vue&type=style&index=0&id=25c89b67&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Input.vue?vue&type=style&index=0&id=25c89b67&scoped=true&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PeripheralList.vue?vue&type=style&index=0&id=147c4e18&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PeripheralList.vue?vue&type=style&index=0&id=147c4e18&scoped=true&lang=sass&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Controll.vue?vue&type=style&index=0&lang=sass&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Controll.vue?vue&type=style&index=0&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataTableFooter.vue?vue&type=style&index=0&id=399d122b&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataTableFooter.vue?vue&type=style&index=0&id=399d122b&scoped=true&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Textarea.vue?vue&type=style&index=0&id=29e94b45&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Textarea.vue?vue&type=style&index=0&id=29e94b45&scoped=true&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NetworkStats.vue?vue&type=style&index=0&id=04e7ff84&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NetworkStats.vue?vue&type=style&index=0&id=04e7ff84&scoped=true&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RelayList.vue?vue&type=style&index=0&id=1502dd23&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RelayList.vue?vue&type=style&index=0&id=1502dd23&scoped=true&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Relay.vue?vue&type=style&index=0&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Relay.vue?vue&type=style&index=0&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InterfaceList.vue?vue&type=style&index=0&id=1bdb58ac&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InterfaceList.vue?vue&type=style&index=0&id=1bdb58ac&scoped=true&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateRelay.vue?vue&type=style&index=0&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateRelay.vue?vue&type=style&index=0&lang=sass&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideMenu.vue?vue&type=style&index=0&id=b05e13a0&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideMenu.vue?vue&type=style&index=0&id=b05e13a0&scoped=true&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DonutForm.vue?vue&type=style&index=0&id=1b8b4092&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DonutForm.vue?vue&type=style&index=0&id=1b8b4092&scoped=true&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Interface.vue?vue&type=style&index=0&id=4d83b87a&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Interface.vue?vue&type=style&index=0&id=4d83b87a&scoped=true&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChannelList.vue?vue&type=style&index=0&id=5d31269e&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChannelList.vue?vue&type=style&index=0&id=5d31269e&scoped=true&lang=sass&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Canvas.vue?vue&type=style&index=0&lang=sass&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Canvas.vue?vue&type=style&index=0&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectGatewayForm.vue?vue&type=style&index=0&id=b0c691b0&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectGatewayForm.vue?vue&type=style&index=0&id=b0c691b0&scoped=true&lang=sass&\"","module.exports = __webpack_public_path__ + \"img/logo.5691b232.svg\";","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GatewayForm.vue?vue&type=style&index=0&lang=sass&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GatewayForm.vue?vue&type=style&index=0&lang=sass&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navbar.vue?vue&type=style&index=0&id=6bb0e8c9&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navbar.vue?vue&type=style&index=0&id=6bb0e8c9&scoped=true&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommandList.vue?vue&type=style&index=0&id=66d149bc&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommandList.vue?vue&type=style&index=0&id=66d149bc&scoped=true&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Command.vue?vue&type=style&index=0&id=461f9dc0&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Command.vue?vue&type=style&index=0&id=461f9dc0&scoped=true&lang=sass&\"","export interface C3State {\r\n edges: C3Edge[];\r\n nodes: C3Node[];\r\n gateways: GatewayHeader[];\r\n gateway?: C3Gateway | null;\r\n relayTimestamps?: C3RelayTime[];\r\n mustRefresh?: boolean;\r\n lastGetHash: string;\r\n}\r\n\r\nexport enum NodeKlass {\r\n Channel = 'CHANNEL',\r\n Connector = 'CONNECTOR',\r\n Gateway = 'GATEWAY',\r\n Interface = 'INTERFACE',\r\n Peripheral = 'PERIPHERAL',\r\n Relay = 'RELAY',\r\n Undefined = 'UNDEFINED'\r\n}\r\n\r\nexport interface C3RelayTime {\r\n id: string;\r\n time: number;\r\n}\r\n\r\nexport interface C3Node {\r\n id: string;\r\n uid: string;\r\n name?: string;\r\n klass: NodeKlass;\r\n buildId?: string;\r\n pending: boolean;\r\n isActive?: boolean;\r\n type: number;\r\n timestamp?: number;\r\n error: string | null;\r\n initialCommand?: any;\r\n propertiesText?: any;\r\n parentId: string | null;\r\n parentKlass: string | null;\r\n isReturnChannel?: boolean;\r\n isNegotiationChannel?: boolean;\r\n hostInfo?: C3HostInfo;\r\n [key: string]: any;\r\n}\r\n\r\nexport const nullNode: C3Node = {\r\n uid: '',\r\n klass: NodeKlass.Undefined,\r\n id: '',\r\n name: 'Null Node',\r\n pending: false,\r\n isActive: false,\r\n type: 0,\r\n error: null,\r\n parentId: null,\r\n parentKlass: null,\r\n isReturnChannel: false,\r\n isNegotiationChannel: false,\r\n initialCommand: {},\r\n propertiesText: {}\r\n};\r\n\r\nexport interface C3Edge {\r\n id: string;\r\n klass: NodeKlass;\r\n isNegotiationChannel?: boolean;\r\n length: number;\r\n dashes: boolean;\r\n from: string;\r\n to: string;\r\n color?: string;\r\n [key: string]: any;\r\n}\r\n\r\nexport interface C3Interface {\r\n iid: string;\r\n type: number;\r\n error?: string;\r\n pending?: boolean;\r\n parentId?: string;\r\n initialCommand?: any;\r\n propertiesText?: any;\r\n isReturnChannel?: boolean;\r\n isNegotiationChannel?: boolean;\r\n}\r\n\r\nexport interface C3Route {\r\n isNeighbour?: boolean;\r\n destinationAgent: string;\r\n outgoingInterface: string;\r\n receivingInterface: string;\r\n}\r\n\r\nexport interface C3Relay {\r\n buildId: string;\r\n agentId: string;\r\n channels: C3Interface[];\r\n error?: string;\r\n initialCommand?: any;\r\n propertiesText?: any;\r\n name: string;\r\n pending: boolean;\r\n peripherals: C3Interface[];\r\n routes: C3Route[];\r\n isActive: boolean;\r\n timestamp?: number;\r\n hostInfo: C3HostInfo;\r\n}\r\n\r\nexport interface C3HostInfo {\r\n computerName: string;\r\n userName: string;\r\n domain: string;\r\n osMajorVersion: number;\r\n osMinorVersion: number;\r\n osBuildNumber: number;\r\n osServicePackMajor: number;\r\n osServicePackMinor: number;\r\n osProductType: number;\r\n processId: number;\r\n isElevated: boolean;\r\n osVersion: string;\r\n}\r\n\r\nexport interface GatewayHeader {\r\n agentId: string;\r\n buildId: string;\r\n name: string;\r\n isActive: boolean;\r\n}\r\n\r\nexport interface C3Gateway {\r\n agentId: string;\r\n buildId: string;\r\n channels: C3Interface[];\r\n connectors: C3Interface[];\r\n error?: string;\r\n initialCommand?: any;\r\n propertiesText?: any;\r\n name: string;\r\n pending: boolean;\r\n peripherals: C3Interface[];\r\n relays: C3Relay[];\r\n routes: C3Route[];\r\n isActive: boolean;\r\n timestamp?: number;\r\n}\r\n\r\ninterface C3Args {\r\n args: C3Opts[];\r\n}\r\n\r\ninterface C3Opts {\r\n [key: string]: string;\r\n}\r\n\r\nexport interface C3Command {\r\n name: string;\r\n id: string | number;\r\n isPending: boolean;\r\n data: C3Opts[] | C3Args;\r\n interfaceId?: string | number;\r\n relayAgentId?: string | number;\r\n}\r\n\r\nexport interface C3Parent {\r\n agentId: string;\r\n parentType: string;\r\n}\r\n\r\nexport interface FetchData {\r\n relayId?: string;\r\n gatewayId: string;\r\n interfaceId?: string;\r\n}\r\n\r\nexport interface C3FieldDefault {\r\n name: string;\r\n type?: string;\r\n value: string;\r\n}\r\n\r\nexport interface FormOptions {\r\n prefix: string;\r\n interface: string;\r\n arguments: C3FieldDefault[];\r\n}\r\n\r\nexport interface SourceOptions {\r\n relay?: C3Node;\r\n interface?: C3Node;\r\n}\r\nexport interface C3CommandCenterOptions {\r\n formDefault?: FormOptions;\r\n source?: SourceOptions;\r\n targetGroup?: string;\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('Navbar'),(_vm.hasSelectedGateway === true)?_c('div',{staticClass:\"c3body\"},[_c('div',{staticClass:\"c3body-main\"},[_c('GatewayForm'),_c('Canvas'),_c('Controll')],1),_c('SideMenu')],1):_vm._e(),(_vm.hasSelectedGateway === false)?_c('div',{staticClass:\"c3body-no-gateway-message\"},[_c('h1',[_vm._v(\"There are currently no active Gateways\")]),_c('p',[_vm._v(\"\\n Once a gateway has been detected it will automatically show up and this\\n message will not appear, c3 checks for any gateway every minute.\\n \")])]):_vm._e(),(_vm.hasSelectedGateway === false)?_c('CreateGatewayModal',{staticClass:\"c3body-gateway\"}):_vm._e(),_c('div'),_c('Footer'),_c('Modal'),_c('Notification')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.currentModal)?_c('div',{staticClass:\"c3modal\",class:this.activeModal.modalTarget.toLowerCase()},[_c('div',{staticClass:\"c3modal-holder\"},[(_vm.isGateway())?_c('GatewayModal',{attrs:{\"target-id\":_vm.targetUid}}):_vm._e(),(_vm.isRelay())?_c('RelayModal',{attrs:{\"target-id\":_vm.targetUid}}):_vm._e(),(this.activeModal.modalTarget === 'CREATE_GATEWAY')?_c('CreateGatewayModal'):_vm._e(),(this.activeModal.modalTarget === 'CREATE_RELAY')?_c('CreateRelayModal',{attrs:{\"options\":_vm.options()}}):_vm._e(),(this.activeModal.modalTarget === 'COMMAND_CENTER')?_c('CommandCenterModal',{attrs:{\"target-id\":_vm.targetUid,\"options\":_vm.options()}}):_vm._e(),(this.activeModal.modalTarget === 'CONNECT_RELAY')?_c('ConnectRelayModal',{attrs:{\"target-id\":_vm.targetUid,\"options\":_vm.options()}}):_vm._e(),(this.activeModal.modalTarget === 'COMMAND')?_c('CommandModal',{attrs:{\"target-id\":_vm.targetUid}}):_vm._e(),(this.activeModal.modalTarget === 'OPTIONS')?_c('OptionsModal'):_vm._e(),(_vm.isInterface())?_c('InterfaceModal',{attrs:{\"target-id\":_vm.targetUid}}):_vm._e(),_c('span',{staticClass:\"c3modal-back icon back\",on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.closeThisModal()}}},[_vm._v(\"Back\")]),_c('span',{staticClass:\"c3modal-close icon close\",on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.closeAllModal()}}})],1)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Vue, Component } from 'vue-property-decorator';\r\nimport { namespace } from 'vuex-class';\r\n\r\nimport { GetNodeKlassFn } from '@/store/C3Module';\r\nimport { Notify, InsertNotifyFn } from '@/store/NotifyModule';\r\nimport { NewModalFn, CloseModalFn } from '@/store/ModalModule';\r\nimport { GetTypeNameForInterfaceFn } from '@/store/C3Capability';\r\nimport { C3Node, C3Command, NodeKlass, nullNode } from '@/types/c3types';\r\n\r\nconst C3Module = namespace('c3Module');\r\nconst NotifyModule = namespace('notifyModule');\r\nconst ModalModule = namespace('modalModule');\r\nconst C3Capability = namespace('c3Capability');\r\nconst PaginateModule = namespace('paginateModule');\r\n\r\n@Component\r\nexport default class C3 extends Vue {\r\n @ModalModule.Mutation public newModal!: NewModalFn;\r\n @ModalModule.Mutation public closeModal!: CloseModalFn;\r\n @ModalModule.Mutation public closeModalAll!: CloseModalFn;\r\n\r\n @NotifyModule.Action public insertNotify!: InsertNotifyFn;\r\n\r\n @C3Capability.Getter\r\n public getTypeNameForInterface!: GetTypeNameForInterfaceFn;\r\n\r\n @PaginateModule.Getter public getItemPerPage!: number;\r\n @PaginateModule.Getter public getActualPage!: number;\r\n\r\n @C3Module.Getter public getNodeKlass!: GetNodeKlassFn;\r\n @C3Module.Getter public getGateway!: C3Node;\r\n\r\n get itemPerPage() {\r\n return this.getItemPerPage;\r\n }\r\n\r\n get actualPage() {\r\n return this.getActualPage;\r\n }\r\n\r\n get maxIndex() {\r\n return this.itemPerPage * this.actualPage;\r\n }\r\n\r\n get minIndex() {\r\n return this.maxIndex - this.itemPerPage;\r\n }\r\n\r\n public openModal(id: string, modal: string, options: any = {}) {\r\n this.newModal({\r\n modalTarget: modal,\r\n modalTargetId: id,\r\n modalOptions: options\r\n });\r\n }\r\n\r\n public closeThisModal(): void {\r\n this.closeModal();\r\n }\r\n\r\n public closeAllModal(): void {\r\n this.closeModalAll();\r\n }\r\n\r\n public addNotify(notify: Notify): void {\r\n this.insertNotify(notify);\r\n }\r\n\r\n public interfaceTypeName(c3Interface: C3Node): string {\r\n if (c3Interface && c3Interface.type !== null) {\r\n if (c3Interface.klass) {\r\n return this.getTypeNameForInterface(\r\n c3Interface.type,\r\n c3Interface.klass\r\n );\r\n }\r\n this.addNotify({\r\n type: 'error',\r\n message:\r\n 'Interface Type cannot be determined. Must be a channel, connector or peripheral.'\r\n });\r\n }\r\n return '';\r\n }\r\n\r\n public interfaceType(c3Channel: C3Node): string {\r\n if (!!c3Channel.isReturnChannel) {\r\n return 'Return Channel';\r\n }\r\n if (!!c3Channel.isNegotiationChannel) {\r\n return 'Negotiation Channel';\r\n }\r\n\r\n return '';\r\n }\r\n\r\n get gateway() {\r\n if (this.getGateway === undefined) {\r\n return nullNode;\r\n }\r\n return this.getGateway;\r\n }\r\n\r\n public commandType(c3Command: C3Command): string {\r\n if (c3Command.interfaceId && c3Command.interfaceId !== undefined) {\r\n if (c3Command.relayAgentId && c3Command.relayAgentId !== undefined) {\r\n return this.getNodeKlass(\r\n c3Command.interfaceId + '-' + c3Command.relayAgentId\r\n );\r\n }\r\n return this.getNodeKlass(c3Command.interfaceId + '-' + this.gateway.id);\r\n }\r\n if (c3Command.relayAgentId && c3Command.relayAgentId !== undefined) {\r\n return NodeKlass.Relay;\r\n }\r\n return NodeKlass.Gateway;\r\n }\r\n\r\n public commandTypeId(c3Command: C3Command): string {\r\n if (c3Command.relayAgentId && c3Command.relayAgentId !== undefined) {\r\n return '' + c3Command.relayAgentId;\r\n }\r\n if (c3Command.interfaceId && c3Command.interfaceId !== undefined) {\r\n return '' + c3Command.interfaceId;\r\n }\r\n if (this.gateway) {\r\n return '' + this.gateway.id;\r\n }\r\n return 'error';\r\n }\r\n\r\n public isCommandPending(\r\n c3Command: C3Command,\r\n returnClass: boolean = false\r\n ): string {\r\n if (returnClass) {\r\n if (c3Command.isPending === true) {\r\n return 'Pending';\r\n }\r\n return 'Complete';\r\n }\r\n if (c3Command.isPending === true) {\r\n return 'is-complete';\r\n }\r\n return 'not-complete';\r\n }\r\n\r\n public handleGlobalKeyDown(e: any): void {\r\n if (e.keyCode === 27) {\r\n this.closeAllModal();\r\n }\r\n }\r\n\r\n public unixTimeToString(unixTimestamp: number) {\r\n const time = new Date(unixTimestamp * 1000);\r\n let timeStr = time.toISOString();\r\n timeStr = timeStr.replace(/-/g, '/');\r\n timeStr = timeStr.replace('T', ' ');\r\n timeStr = timeStr.replace('.000Z', '');\r\n return timeStr;\r\n }\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.relay !== undefined)?_c('div',{staticClass:\"c3modal-body\"},[_c('div',{staticClass:\"c3modal-header\",class:{ 'has-error': !!_vm.relay.error }},[_c('h1',[_vm._v(\"\\n Relay: \"),_c('span',[_vm._v(\" \"+_vm._s(_vm.relay.name)+\" / \"+_vm._s(_vm.relay.id))])]),_c('div',{staticClass:\"flex-row\"},[_c('div',{staticClass:\"details\"},[_c('p',[_vm._v(\"\\n Parent\\n \"),_c('span',{staticClass:\"c3link\",on:{\"click\":function($event){return _vm.openModal(_vm.relay.parentId, _vm.relay.parentKlass)}}},[_c('span',{staticClass:\"capitalize\"},[_vm._v(_vm._s(_vm.relay.parentKlass.toLowerCase())+\" /\\n \")]),_vm._v(\"\\n \"+_vm._s(_vm.relay.parentId)+\"\\n \")])]),_c('p',[_vm._v(\"\\n Build ID \"),_c('span',[_vm._v(_vm._s(_vm.relay.buildId))])]),_c('p',[_vm._v(\"\\n Last seen \"),_c('span',[_vm._v(_vm._s(_vm.unixTimeToString(_vm.relay.timestamp)))])])]),_c('div',{staticClass:\"actions\"},[_c('button',{staticClass:\"c3btn c3btn--outline\",on:{\"click\":function($event){return _vm.openModal(_vm.relay.id, 'COMMAND_CENTER')}}},[_vm._v(\"\\n Command Center\\n \")])])]),_c('div',{staticClass:\"flex-row host-info\"},[_c('div',{staticClass:\"details\"},[_c('p',[_c('span',{staticClass:\"details-title\"},[_vm._v(\"Computer Name \")]),_c('span',{staticClass:\"details-value\"},[_vm._v(_vm._s(_vm.relay.hostInfo.computerName))])]),_c('p',[_c('span',{staticClass:\"details-title\"},[_vm._v(\"User Name \")]),_c('span',{staticClass:\"details-value\"},[_vm._v(_vm._s(_vm.relay.hostInfo.userName))])]),_c('p',[_c('span',{staticClass:\"details-title\"},[_vm._v(\"Domain \")]),_c('span',{staticClass:\"details-value\"},[_vm._v(_vm._s(_vm.relay.hostInfo.domain === '' ? '-' : _vm.relay.hostInfo.domain))])]),_c('p',[_c('span',{staticClass:\"details-title\"},[_vm._v(\"processId \")]),_c('span',{staticClass:\"details-value\"},[_vm._v(_vm._s(_vm.relay.hostInfo.processId))])]),_c('p',[_c('span',{staticClass:\"details-title\"},[_vm._v(\"is Elevated \")]),_c('span',{staticClass:\"details-value\"},[_vm._v(_vm._s(_vm.relay.hostInfo.isElevated))])])]),_c('div',{staticClass:\"details\"},[_c('p',[_c('span',{staticClass:\"details-title\"},[_vm._v(\"OS Major Version \")]),_c('span',{staticClass:\"details-value\"},[_vm._v(_vm._s(_vm.relay.hostInfo.osMajorVersion))])]),_c('p',[_c('span',{staticClass:\"details-title\"},[_vm._v(\"OS Minor Version \")]),_c('span',{staticClass:\"details-value\"},[_vm._v(_vm._s(_vm.relay.hostInfo.osMinorVersion))])]),_c('p',[_c('span',{staticClass:\"details-title\"},[_vm._v(\"OS Build Number \")]),_c('span',{staticClass:\"details-value\"},[_vm._v(_vm._s(_vm.relay.hostInfo.osBuildNumber))])]),_c('p',[_c('span',{staticClass:\"details-title\"},[_vm._v(\"OS Service Pack Major \")]),_c('span',{staticClass:\"details-value\"},[_vm._v(_vm._s(_vm.relay.hostInfo.osServicePackMajor))])]),_c('p',[_c('span',{staticClass:\"details-title\"},[_vm._v(\"OS Service Pack Minor \")]),_c('span',{staticClass:\"details-value\"},[_vm._v(_vm._s(_vm.relay.hostInfo.osServicePackMinor))])]),_c('p',[_c('span',{staticClass:\"details-title\"},[_vm._v(\"OS Product Type \")]),_c('span',{staticClass:\"details-value\"},[_vm._v(_vm._s(_vm.relay.hostInfo.osProductType))])]),_c('p',[_c('span',{staticClass:\"details-title\"},[_vm._v(\"OS Version \")]),_c('span',{staticClass:\"details-value\"},[_vm._v(_vm._s(_vm.relay.hostInfo.osVersion))])])])]),(_vm.relay.error && _vm.relay.error !== '')?_c('p',{staticClass:\"message-with-icon\"},[_c('span',{staticClass:\"icon warning\"}),_vm._v(\"\\n Error: \"+_vm._s(_vm.relay.error)+\"\\n \")]):_vm._e()]),_c('div',{staticClass:\"c3modal-details\"},[_c('ChannelList',{attrs:{\"target-id\":_vm.targetId,\"title\":\"Channels\",\"show-empty\":true}}),_c('PheripheralList',{attrs:{\"target-id\":_vm.targetId,\"title\":\"Peripherals\",\"show-empty\":true}}),_c('RouteList',{attrs:{\"target-id\":_vm.targetId,\"parent-id\":_vm.relay.id,\"parent-klass\":\"RELAY\",\"title\":\"Routes\",\"show-empty\":true}}),(JSON.stringify(_vm.relay.initialCommand) !== '{}')?[_c('h1',[_vm._v(\"Command\")]),_c('pre',{staticClass:\"c3command\"},[_vm._v(_vm._s(JSON.stringify(_vm.relay.initialCommand, null, 4)))])]:_vm._e()],2)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return ((_vm.routes && _vm.routes.length) || _vm.displayEmpty)?_c('div',{staticClass:\"c3route-list\"},[_c('h1',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasTitle),expression:\"hasTitle\"}]},[_vm._v(_vm._s(_vm.title))]),(_vm.routes.length)?[_c('table',{staticClass:\"datatable\"},[_vm._m(0),_c('tbody',_vm._l((_vm.routes),function(route){return _c('tr',{key:route.destinationAgent},[_c('td',[_vm._v(_vm._s(route.destinationAgent)+\":\"+_vm._s(route.receivingInterface))]),_c('td',[_vm._v(_vm._s(route.destinationAgent))]),_c('td',[_vm._v(_vm._s(route.outgoingInterface))]),_c('td',[_vm._v(_vm._s(route.receivingInterface))]),_c('td',[_vm._v(_vm._s(route.isNeighbour ? 'Yes' : ''))]),_c('td',{staticStyle:{\"position\":\"relative\"}},[_c('span',{staticClass:\"c3route-list-more-btn icon more\"}),_c('ul',{staticClass:\"c3route-list-menu\"},[_c('li',{staticClass:\"c3route-list-menu-item\",on:{\"click\":function($event){return _vm.sendCommand(\n route.destinationAgent + ':' + route.receivingInterface\n )}}},[_vm._v(\"\\n Delete\\n \")])])])])}),0)])]:(_vm.displayEmpty)?[_vm._v(\"\\n No routes found...\\n \")]:_vm._e()],2):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Route ID\")]),_c('th',[_vm._v(\"Destination Agent\")]),_c('th',[_vm._v(\"Outgoing Interface\")]),_c('th',[_vm._v(\"Receiving Interface\")]),_c('th',[_vm._v(\"Is Neighbour\")]),_c('th')])])}]\n\nexport { render, staticRenderFns }","import { Prop, Component } from 'vue-property-decorator';\r\nimport Vue from 'vue';\r\n\r\n/**\r\n * Shared Class for *List components\r\n *\r\n * @export\r\n * @class Partial\r\n * @extends {Vue}\r\n */\r\n\r\n@Component\r\nexport default class Partial extends Vue {\r\n @Prop() public title!: string;\r\n @Prop() public showEmpty!: boolean;\r\n\r\n get hasTitle() {\r\n return !!this.title && this.title !== '';\r\n }\r\n\r\n get displayEmpty() {\r\n return !!this.showEmpty && this.showEmpty === true;\r\n }\r\n}\r\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport axios from 'axios';\r\nimport { namespace } from 'vuex-class';\r\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\r\n\r\nimport { NodeKlass, C3Route } from '@/types/c3types';\r\nimport { GetRelayRoutesFn, GetRelayFn } from '@/store/C3Module';\r\n\r\nimport C3 from '@/c3';\r\nimport Partial from '@/components/partial/Partial';\r\nimport { GetCapabilityForFn } from '@/store/C3Capability';\r\n\r\nconst C3Module = namespace('c3Module');\r\nconst C3Capability = namespace('c3Capability');\r\nconst C3OptionsModule = namespace('optionsModule');\r\n\r\n@Component\r\nexport default class RouteList extends Mixins(C3, Partial) {\r\n @Prop() public targetId!: string;\r\n @Prop() public parentId!: string;\r\n @Prop() public parentKlass!: NodeKlass;\r\n\r\n @C3Module.Getter public getRelay!: GetRelayFn;\r\n @C3Module.Getter public getGatewayRoutes!: C3Route[];\r\n @C3Module.Getter public getRelayRoutes!: GetRelayRoutesFn;\r\n\r\n @C3Capability.Getter public getCapabilityFor!: GetCapabilityForFn;\r\n\r\n @C3OptionsModule.Getter public getAPIBaseUrl!: string;\r\n\r\n get routes() {\r\n if (!this.targetId) {\r\n return this.getGatewayRoutes;\r\n }\r\n return this.getRelayRoutes(this.targetId);\r\n }\r\n\r\n get getCommandId() {\r\n const interfaceKlass = !!this.targetId ? 'RELAY' : 'GATEWAY';\r\n const capability = this.getCapabilityFor(\r\n 'Command',\r\n interfaceKlass as NodeKlass\r\n );\r\n if (!!capability) {\r\n const com = capability.commands.find((c: any) => {\r\n return c.name === 'RemoveRoute';\r\n });\r\n return com.id;\r\n }\r\n return '';\r\n }\r\n\r\n get relay() {\r\n const r = this.getRelay(this.targetId);\r\n if (!r) {\r\n this.closeThisModal();\r\n }\r\n return r;\r\n }\r\n\r\n public sendCommand(routeToDelete: string): void {\r\n let data = null;\r\n\r\n if (!this.targetId) {\r\n data = {\r\n name: 'GatewayCommandGroup',\r\n data: {\r\n id: this.getCommandId,\r\n name: 'Command',\r\n command: 'RemoveRoute',\r\n arguments: [\r\n {\r\n type: 'string',\r\n name: 'RouteID',\r\n value: routeToDelete\r\n }\r\n ]\r\n }\r\n };\r\n } else {\r\n data = {\r\n name: 'RelayCommandGroup',\r\n data: {\r\n id: this.getCommandId,\r\n name: 'Command',\r\n command: 'RemoveRoute',\r\n arguments: [\r\n {\r\n type: 'string',\r\n name: 'RouteID',\r\n value: routeToDelete\r\n }\r\n ]\r\n }\r\n };\r\n }\r\n\r\n // POST /api/gateway/{gatewayId}/command\r\n // POST /api/gateway/{gatewayId}/relay/{relayId}/command\r\n\r\n let apiURL = '/api/gateway/';\r\n\r\n if (!!this.parentKlass && this.parentKlass === NodeKlass.Gateway) {\r\n apiURL = apiURL + `${this.parentId}/command`;\r\n }\r\n\r\n if (!!this.parentKlass && this.parentKlass === NodeKlass.Relay) {\r\n const relay = this.getRelay(this.parentId);\r\n if (!!relay) {\r\n apiURL = apiURL + `${relay.parentId}/relay/${this.parentId}/command`;\r\n } else {\r\n apiURL = apiURL + `${this.parentId}/command`;\r\n }\r\n }\r\n\r\n axios({\r\n url: apiURL,\r\n method: 'POST',\r\n baseURL: this.getAPIBaseUrl,\r\n data\r\n })\r\n .then(response => {\r\n this.addNotify({\r\n type: 'info',\r\n message: 'Command successfully sent...'\r\n });\r\n this.closeThisModal();\r\n })\r\n .catch(error => {\r\n const msg: string = 'Command NOT sent: ' + error.message;\r\n this.addNotify({\r\n type: 'error',\r\n message: msg\r\n });\r\n // tslint:disable-next-line:no-console\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RouteList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RouteList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RouteList.vue?vue&type=template&id=35f03fb2&scoped=true&\"\nimport script from \"./RouteList.vue?vue&type=script&lang=ts&\"\nexport * from \"./RouteList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RouteList.vue?vue&type=style&index=0&id=35f03fb2&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"35f03fb2\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.channels.length || _vm.displayEmpty)?_c('div',{staticClass:\"c3InterfaceList\"},[_c('h1',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasTitle),expression:\"hasTitle\"}]},[_vm._v(_vm._s(_vm.title))]),(_vm.channels.length)?[_c('table',{staticClass:\"datatable\"},[_vm._m(0),_c('tbody',_vm._l((_vm.channels),function(channel){return _c('tr',{key:channel.id,on:{\"click\":function($event){return _vm.openModal(channel.uid, channel.klass)}}},[_c('td',{staticClass:\"c3link\"},[_vm._v(_vm._s(channel.id))]),_c('td',[_vm._v(_vm._s(_vm.interfaceTypeName(channel)))]),_c('td',[_vm._v(_vm._s(_vm.interfaceType(channel)))])])}),0)])]:(_vm.displayEmpty)?[_vm._v(\"\\n No channels found...\\n \")]:_vm._e()],2):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Channel ID\")]),_c('th',[_vm._v(\"Name\")]),_c('th',[_vm._v(\"Channel Type\")])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { namespace } from 'vuex-class';\r\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\r\n\r\nimport { NodeKlass } from '@/types/c3types';\r\nimport { GetInterfacesForFn } from '@/store/C3Module';\r\n\r\nimport C3 from '@/c3';\r\nimport Partial from '@/components/partial/Partial';\r\n\r\nconst C3Module = namespace('c3Module');\r\n\r\n@Component\r\nexport default class ChannelList extends Mixins(C3, Partial) {\r\n @Prop() public targetId!: string;\r\n\r\n @C3Module.Getter public getInterfacesFor!: GetInterfacesForFn;\r\n\r\n get channels() {\r\n if (!this.targetId) {\r\n return this.getInterfacesFor(NodeKlass.Channel, null);\r\n }\r\n return this.getInterfacesFor(NodeKlass.Channel, this.targetId);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChannelList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChannelList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChannelList.vue?vue&type=template&id=5d31269e&scoped=true&\"\nimport script from \"./ChannelList.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChannelList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ChannelList.vue?vue&type=style&index=0&id=5d31269e&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5d31269e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.peripherals.length || _vm.displayEmpty)?_c('div',{staticClass:\"c3InterfaceList\"},[_c('h1',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasTitle),expression:\"hasTitle\"}]},[_vm._v(_vm._s(_vm.title))]),(_vm.peripherals.length)?[_c('table',{staticClass:\"datatable\"},[_vm._m(0),_c('tbody',_vm._l((_vm.peripherals),function(peripheral){return _c('tr',{key:peripheral.id,on:{\"click\":function($event){return _vm.openModal(peripheral.uid, peripheral.klass)}}},[_c('td',{staticClass:\"c3link\"},[_vm._v(_vm._s(peripheral.id))]),_c('td',[_vm._v(_vm._s(_vm.interfaceTypeName(peripheral)))])])}),0)])]:(_vm.displayEmpty)?[_vm._v(\"\\n No peripherals found...\\n \")]:_vm._e()],2):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Peripheral ID\")]),_c('th',[_vm._v(\"Name\")])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { namespace } from 'vuex-class';\r\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\r\n\r\nimport { NodeKlass } from '@/types/c3types';\r\nimport { GetInterfacesForFn } from '@/store/C3Module';\r\n\r\nimport C3 from '@/c3';\r\nimport Partial from '@/components/partial/Partial';\r\n\r\nconst C3Module = namespace('c3Module');\r\n\r\n@Component\r\nexport default class PeripheralList extends Mixins(C3, Partial) {\r\n @Prop() public targetId!: string;\r\n\r\n @C3Module.Getter public getInterfacesFor!: GetInterfacesForFn;\r\n\r\n get peripherals() {\r\n if (!this.targetId) {\r\n return this.getInterfacesFor(NodeKlass.Peripheral, null);\r\n }\r\n return this.getInterfacesFor(NodeKlass.Peripheral, this.targetId);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PeripheralList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PeripheralList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PeripheralList.vue?vue&type=template&id=147c4e18&scoped=true&\"\nimport script from \"./PeripheralList.vue?vue&type=script&lang=ts&\"\nexport * from \"./PeripheralList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PeripheralList.vue?vue&type=style&index=0&id=147c4e18&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"147c4e18\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { namespace } from 'vuex-class';\r\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\r\n\r\nimport { C3Relay, C3Interface, NodeKlass } from '@/types/c3types';\r\nimport { GetRelayFn, GetInterfacesForFn } from '@/store/C3Module';\r\n\r\nimport C3 from '@/c3';\r\nimport RouteList from '@/components/partial/RouteList.vue';\r\nimport ChannelList from '@/components/partial/ChannelList.vue';\r\nimport PheripheralList from '@/components/partial/PeripheralList.vue';\r\n\r\nconst C3Module = namespace('c3Module');\r\n\r\n@Component({\r\n components: {\r\n RouteList,\r\n ChannelList,\r\n PheripheralList\r\n }\r\n})\r\nexport default class RelayModal extends Mixins(C3) {\r\n @Prop() public targetId!: string;\r\n\r\n @C3Module.Getter public getRelay!: GetRelayFn;\r\n\r\n get relay() {\r\n const r = this.getRelay(this.targetId);\r\n if (!r) {\r\n this.closeThisModal();\r\n }\r\n return r;\r\n }\r\n\r\n public mounted(): void {\r\n (window as any).addEventListener('keydown', this.handleGlobalKeyDown, true);\r\n }\r\n\r\n public beforeDestroy(): void {\r\n (window as any).removeEventListener(\r\n 'keydown',\r\n this.handleGlobalKeyDown,\r\n true\r\n );\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Relay.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Relay.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Relay.vue?vue&type=template&id=ffa370a2&\"\nimport script from \"./Relay.vue?vue&type=script&lang=ts&\"\nexport * from \"./Relay.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Relay.vue?vue&type=style&index=0&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.c3Command !== undefined)?_c('div',{staticClass:\"c3modal-body\"},[_c('div',{staticClass:\"c3modal-details\"},[_c('h1',[_vm._v(\"\\n Command Details\\n \")]),_c('table',{staticClass:\"datatable\"},[_vm._m(0),_c('tbody',[_c('tr',{on:{\"click\":function($event){_vm.openModal(_vm.InterfaceUID(_vm.c3Command), _vm.commandType(_vm.c3Command))}}},[_c('td',[_c('span',{staticClass:\"c3tab-pending\",class:_vm.isCommandPending(_vm.c3Command)}),_vm._v(\"\\n \"+_vm._s(_vm.c3Command.id)+\"\\n \")]),_c('td',[_vm._v(\"\\n \"+_vm._s(_vm.isCommandPending(_vm.c3Command, true))+\"\\n \")]),_c('td',{staticClass:\"hover-link command-for\"},[_vm._v(\"\\n \"+_vm._s(_vm.commandType(_vm.c3Command).toLowerCase())+\"\\n \")]),_c('td',[_vm._v(\"\\n \"+_vm._s(_vm.commandTypeId(_vm.c3Command))+\"\\n \")])])])]),_c('pre',{staticClass:\"c3command\"},[_vm._v(_vm._s(JSON.stringify(_vm.c3Command, null, 4)))])])]):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Command ID\")]),_c('th',[_vm._v(\"Status\")]),_c('th',[_vm._v(\"Command for\")]),_c('th',[_vm._v(\"ID\")])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { namespace } from 'vuex-class';\r\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\r\n\r\nimport { Notify } from '@/store/NotifyModule';\r\nimport { GetCommandFn } from '@/store/C3Module';\r\nimport {\r\n C3Interface,\r\n C3Gateway,\r\n C3Relay,\r\n NodeKlass,\r\n C3Command,\r\n C3Node\r\n} from '@/types/c3types';\r\n\r\nimport C3 from '@/c3';\r\n\r\nconst C3CommandModule = namespace('c3CommandModule');\r\nconst nodeKlass = NodeKlass;\r\n\r\n@Component\r\nexport default class CommandModal extends Mixins(C3) {\r\n @Prop() public targetId!: string;\r\n\r\n @C3CommandModule.Getter public getCommand!: GetCommandFn;\r\n\r\n get c3Command() {\r\n const target = this.getCommand(this.targetId);\r\n if (!target) {\r\n this.closeThisModal();\r\n this.addNotify({\r\n type: 'error',\r\n message: `The Commandyou looking for: ${this.targetId}, not exist.`\r\n });\r\n }\r\n return target;\r\n }\r\n\r\n public mounted(): void {\r\n (window as any).addEventListener('keydown', this.handleGlobalKeyDown, true);\r\n }\r\n\r\n public beforeDestroy(): void {\r\n (window as any).removeEventListener(\r\n 'keydown',\r\n this.handleGlobalKeyDown,\r\n true\r\n );\r\n }\r\n\r\n public InterfaceUID(c: C3Command): string | number {\r\n if (!!c.interfaceId) {\r\n if (!!c.relayAgentId) {\r\n return c.interfaceId + '-' + c.relayAgentId;\r\n }\r\n return c.interfaceId + '-' + this.gateway.id;\r\n }\r\n if (!!c.relayAgentId) {\r\n return c.relayAgentId;\r\n }\r\n return this.gateway.id;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Command.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Command.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Command.vue?vue&type=template&id=461f9dc0&scoped=true&\"\nimport script from \"./Command.vue?vue&type=script&lang=ts&\"\nexport * from \"./Command.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Command.vue?vue&type=style&index=0&id=461f9dc0&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"461f9dc0\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.gateway !== null)?_c('div',{staticClass:\"c3modal-body\"},[_c('div',{staticClass:\"c3modal-header\",class:{ 'has-error': !!_vm.gateway.error }},[_c('h1',[_vm._v(\"\\n Gateway: \"),_c('span',[_vm._v(\" \"+_vm._s(_vm.gateway.name)+\" / \"+_vm._s(_vm.gateway.id))])]),_c('div',{staticClass:\"flex-row\"},[_c('div',{staticClass:\"details\"},[_c('p',[_vm._v(\"\\n Build ID \"),_c('span',[_vm._v(_vm._s(_vm.gateway.buildId))])]),_c('p',[_vm._v(\"\\n Start time \"),_c('span',[_vm._v(_vm._s(_vm.unixTimeToString(_vm.gateway.timestamp)))])])]),_c('div',{staticClass:\"actions\"},[_c('button',{staticClass:\"c3btn c3btn--grey\",on:{\"click\":function($event){return _vm.openModal('', 'CREATE_RELAY')}}},[_vm._v(\"\\n New Relay\\n \")])])]),(_vm.gateway.error && _vm.gateway.error !== '')?_c('p',{staticClass:\"message-with-icon\"},[_c('span',{staticClass:\"icon warning\"}),_vm._v(\"\\n Error: \"+_vm._s(_vm.gateway.error)+\"\\n \")]):_vm._e(),_c('div',{staticClass:\"flex-row\"},[_c('NetworkStats',{staticStyle:{\"width\":\"250px\"}}),_c('div',{staticClass:\"actions\"},[_c('button',{staticClass:\"c3btn c3btn--outline\",on:{\"click\":function($event){return _vm.openModal(_vm.gateway.id, 'COMMAND_CENTER')}}},[_vm._v(\"\\n Command Center\\n \")])])],1)]),_c('div',{staticClass:\"c3modal-details\"},[_c('ChannelList',{attrs:{\"target-id\":null,\"title\":\"Channels\",\"show-empty\":true}}),_c('PheripheralList',{attrs:{\"target-id\":null,\"title\":\"Peripherals\",\"show-empty\":true}}),_c('ConnectorList',{attrs:{\"title\":\"Connectors\",\"show-empty\":true}}),_c('RouteList',{attrs:{\"target-id\":null,\"parent-id\":_vm.gateway.id,\"parent-klass\":\"GATEWAY\",\"title\":\"Routes\",\"show-empty\":true}})],1)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3Stats\"},[_c('p',[_c('span',[_vm._v(\"Relays\")]),_c('span',[_vm._v(_vm._s(_vm.countRelays))])]),_c('p',[_c('span',[_vm._v(\"Channels\")]),_c('span',[_vm._v(_vm._s(_vm.countChannels))])]),_c('p',[_c('span',[_vm._v(\"Connectors\")]),_c('span',[_vm._v(_vm._s(_vm.countConnectors))])]),_c('p',[_c('span',[_vm._v(\"Peripherals\")]),_c('span',[_vm._v(_vm._s(_vm.countPheripherals))])]),_c('p',[_c('span',[_vm._v(\"URL\")]),_c('span',[_vm._v(_vm._s(_vm.url))])]),_c('p',[_c('span',[_vm._v(\"Port\")]),_c('span',[_vm._v(_vm._s(_vm.port))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { namespace } from 'vuex-class';\r\nimport { Component, Mixins } from 'vue-property-decorator';\r\n\r\nimport { GetInterfacesFn } from '@/store/C3Module';\r\nimport { GatewayHeader, NodeKlass, C3Node } from '@/types/c3types';\r\n\r\nimport C3 from '@/c3';\r\n\r\nconst C3Module = namespace('c3Module');\r\nconst C3OptionsModule = namespace('optionsModule');\r\n\r\n@Component\r\nexport default class NetworkStats extends Mixins(C3) {\r\n @C3Module.Getter public getRelays!: C3Node[];\r\n @C3Module.Getter public getInterfaces!: GetInterfacesFn;\r\n\r\n @C3OptionsModule.Getter public getAPIUrl!: string;\r\n @C3OptionsModule.Getter public getAPIPort!: number;\r\n @C3OptionsModule.Getter public getRefreshInterval!: number;\r\n\r\n get url() {\r\n return this.getAPIUrl;\r\n }\r\n\r\n get port() {\r\n return this.getAPIPort;\r\n }\r\n\r\n get refreshInterval() {\r\n return this.getRefreshInterval;\r\n }\r\n\r\n get countRelays() {\r\n return this.getRelays.length;\r\n }\r\n\r\n get countChannels() {\r\n return this.getInterfaces([NodeKlass.Channel]).length;\r\n }\r\n\r\n get countConnectors() {\r\n return this.getInterfaces([NodeKlass.Connector]).length;\r\n }\r\n\r\n get countPheripherals() {\r\n return this.getInterfaces([NodeKlass.Peripheral]).length;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NetworkStats.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NetworkStats.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NetworkStats.vue?vue&type=template&id=04e7ff84&scoped=true&\"\nimport script from \"./NetworkStats.vue?vue&type=script&lang=ts&\"\nexport * from \"./NetworkStats.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NetworkStats.vue?vue&type=style&index=0&id=04e7ff84&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"04e7ff84\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.connectors.length || _vm.displayEmpty)?_c('div',{staticClass:\"c3InterfaceList\"},[_c('h1',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasTitle),expression:\"hasTitle\"}]},[_vm._v(_vm._s(_vm.title))]),(_vm.connectors.length)?[_c('table',{staticClass:\"datatable\"},[_vm._m(0),_c('tbody',_vm._l((_vm.connectors),function(connector){return _c('tr',{key:connector.id,on:{\"click\":function($event){return _vm.openModal(connector.uid, connector.klass)}}},[_c('td',{staticClass:\"c3link\"},[_vm._v(_vm._s(connector.id))]),_c('td',[_vm._v(_vm._s(_vm.interfaceTypeName(connector)))])])}),0)])]:(_vm.displayEmpty)?[_vm._v(\"\\n No connectors found...\\n \")]:_vm._e()],2):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Connector ID\")]),_c('th',[_vm._v(\"Name\")])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { namespace } from 'vuex-class';\r\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\r\n\r\nimport { NodeKlass } from '@/types/c3types';\r\nimport { GetInterfacesForFn } from '@/store/C3Module';\r\n\r\nimport C3 from '@/c3';\r\nimport Partial from '@/components/partial/Partial';\r\n\r\nconst C3Module = namespace('c3Module');\r\n\r\n@Component\r\nexport default class ConnectorList extends Mixins(C3, Partial) {\r\n @C3Module.Getter public getInterfacesFor!: GetInterfacesForFn;\r\n\r\n get connectors() {\r\n // Only Gateway can have a connector...\r\n return this.getInterfacesFor(NodeKlass.Connector, null);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectorList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectorList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ConnectorList.vue?vue&type=template&id=660d5fa2&scoped=true&\"\nimport script from \"./ConnectorList.vue?vue&type=script&lang=ts&\"\nexport * from \"./ConnectorList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ConnectorList.vue?vue&type=style&index=0&id=660d5fa2&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"660d5fa2\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3modal-body\"},[_c('div',{staticClass:\"c3modal-details\"},[(_vm.isNotEmbeded)?_c('h1',[_vm._v(\"\\n Create Command for: \"+_vm._s(_vm.currentItem.klass)+\" - \"+_vm._s(_vm.currentItem.name)+\"\\n \"+_vm._s(_vm.interfaceTypeName(_vm.currentItem))+\"/ \"+_vm._s(_vm.currentItem.id)+\"\\n \")]):_vm._e(),_c('div',{staticClass:\"c3command-group\"},[_c('Select',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}],staticClass:\"form-element\",attrs:{\"legend\":\"Select Command Group\",\"selected\":_vm.selectedCommandGroup,\"options\":_vm.commandGroupOptions,\"border\":true},on:{\"change\":function($event){return _vm.changeCommandGroup($event, _vm.commandGroup)}}}),_c('Select',{staticClass:\"form-element\",attrs:{\"legend\":\"Select Command\",\"selected\":_vm.selectedCommandTarget,\"options\":_vm.commandTargetOptions,\"border\":true},on:{\"change\":function($event){return _vm.changeCommandTarget($event, _vm.commandTarget)}}})],1),(_vm.selectedInterface !== undefined && _vm.selectedCommand !== undefined)?_c('GeneralForm',{key:_vm.selectedInterface + _vm.selectedCommand + _vm.selectedCommand,attrs:{\"klass\":_vm.selectedInterfaceKlass,\"interface-name\":_vm.selectedInterface,\"command\":_vm.selectedCommand,\"target-id\":_vm.targetId,\"target\":_vm.selectedInterface,\"options\":_vm.argumentOptions},on:{\"change\":function($event){return _vm.changeForm($event, _vm.formData)}}}):_vm._e(),(_vm.isNotEmbeded)?_c('dir',{staticClass:\"flex-row c3modal-actions\"},[_c('button',{staticClass:\"c3btn c3btn--grey\",on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.closeThisModal()}}},[_vm._v(\"\\n Cancel\\n \")]),_c('button',{staticClass:\"c3btn\",attrs:{\"disabled\":_vm.formIsValid},on:{\"click\":function($event){return _vm.sendCommand()}}},[_vm._v(\"\\n Send Command\\n \")])]):_vm._e()],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3input-wrapper\"},[(_vm.hasHelp)?_c('span',{staticClass:\"icon help\"},[_c('div',{staticClass:\"help-text\"},[_vm._v(\"\\n \"+_vm._s(_vm.help)+\"\\n \")])]):_vm._e(),(_vm.random)?_c('span',{staticClass:\"icon random\",on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.onClickRandom($event)}}}):_vm._e(),_c('input',_vm._b({directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.inputText),expression:\"inputText\"},{name:\"validate\",rawName:\"v-validate\",value:(_vm.validate),expression:\"validate\"}],ref:\"textinput\",staticClass:\"c3input-input\",class:{ dirty: _vm.isDirty },attrs:{\"type\":\"text\",\"disabled\":_vm.isDisabled,\"name\":_vm.inputUID,\"autocomplete\":_vm.autocomplete},domProps:{\"value\":(_vm.inputText)},on:{\"change\":_vm.changeInputText,\"focus\":function($event){return _vm.gainFocus()},\"blur\":function($event){return _vm.lostFocus()},\"input\":function($event){if($event.target.composing){ return; }_vm.inputText=$event.target.value}}},'input',_vm.$attrs,false)),_c('label',{staticClass:\"c3input-label\",class:{ dirty: _vm.isDirty },on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.clickOnLabel()}}},[_vm._v(\"\\n \"+_vm._s(_vm.legend)+\"\\n \")]),_c('span',{staticClass:\"error-message\"},[_vm._v(_vm._s(_vm.errors.first(_vm.inputUID)))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Prop, Component } from 'vue-property-decorator';\r\nimport Vue from 'vue';\r\n\r\n/**\r\n * Shared Class for CheckBox, Input, Textarea and Toggle\r\n *\r\n * @export\r\n * @class C3FormElement\r\n * @extends {Vue}\r\n */\r\n\r\n@Component\r\nexport default class C3FormElement extends Vue {\r\n @Prop() public help!: string;\r\n @Prop() public name!: string;\r\n @Prop() public legend!: string;\r\n @Prop() public disabled!: boolean;\r\n @Prop() public autocomplete!: string;\r\n\r\n get hasHelp() {\r\n return !!this.help;\r\n }\r\n\r\n get isDisabled() {\r\n return !!this.disabled;\r\n }\r\n\r\n get inputUID() {\r\n return !!this.name\r\n ? this.name\r\n : Math.random()\r\n .toString(36)\r\n .substring(2);\r\n }\r\n}\r\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\r\n\r\nimport C3FormElement from '@/components/form/C3FormElement';\r\n\r\nimport C3 from '@/c3';\r\n\r\n@Component({\r\n $_veeValidate: {\r\n validator: 'new'\r\n }\r\n})\r\nexport default class Input extends Mixins(C3, C3FormElement) {\r\n @Prop() public value!: string;\r\n @Prop() public random!: string;\r\n @Prop() public validate!: string;\r\n\r\n public focused: boolean = false;\r\n public inputText: string = this.getValue;\r\n public intervalTimer: any = null;\r\n\r\n get getValue() {\r\n if ((this.value === '' || this.value === undefined) && this.random) {\r\n return this.rand(parseInt(this.random, 10));\r\n }\r\n return this.value || '';\r\n }\r\n\r\n get isDirty() {\r\n return !!this.value || !!this.inputText;\r\n }\r\n\r\n public mounted(): void {\r\n this.changeInputText();\r\n (window as any).addEventListener(\r\n 'inputkeypress',\r\n this.handleEnterAndTabKeyDown,\r\n true\r\n );\r\n }\r\n\r\n public beforeDestroy(): void {\r\n (window as any).removeEventListener(\r\n 'inputkeypress',\r\n this.handleEnterAndTabKeyDown,\r\n true\r\n );\r\n }\r\n\r\n public gainFocus(): void {\r\n this.focused = true;\r\n this.intervalTimer = setInterval(this.changeInputText, 500);\r\n }\r\n\r\n public lostFocus(): void {\r\n this.focused = false;\r\n clearInterval(this.intervalTimer);\r\n this.changeInputText();\r\n }\r\n\r\n public clickOnLabel(): void {\r\n (this.$refs.textinput as HTMLInputElement).focus();\r\n }\r\n\r\n public changeInputText() {\r\n this.$validator\r\n .verify((this.$refs.textinput as HTMLInputElement).value, this.validate)\r\n .then(valid => {\r\n const isValid = valid.valid;\r\n this.$emit('change', {\r\n value: this.inputText,\r\n valid: isValid\r\n });\r\n });\r\n }\r\n\r\n public handleEnterAndTabKeyDown(e: any): void {\r\n if (e.keyCode === 13 || e.keyCode === 9) {\r\n this.changeInputText();\r\n }\r\n }\r\n\r\n public rand(n: number) {\r\n if (n < 1) {\r\n n = 1;\r\n }\r\n if (n > 10) {\r\n n = 10;\r\n }\r\n return Math.random()\r\n .toString(36)\r\n .substring(2)\r\n .substr(0, n);\r\n }\r\n\r\n public onClickRandom() {\r\n this.inputText = this.rand(parseInt(this.random, 10));\r\n // We need to run the validation manualy because the value changed programaticaly\r\n // and not by user interaction.\r\n this.$validator.validate().then(valid => {\r\n this.changeInputText();\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Input.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Input.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Input.vue?vue&type=template&id=25c89b67&scoped=true&\"\nimport script from \"./Input.vue?vue&type=script&lang=ts&\"\nexport * from \"./Input.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Input.vue?vue&type=style&index=0&id=25c89b67&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"25c89b67\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3select\",class:{ disabled: _vm.isDisabled }},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isOpen),expression:\"isOpen\"}],staticClass:\"c3select-close\",on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.toggleSelect()}}}),_c('div',{staticClass:\"c3select-select\"},[_c('span',{staticClass:\"c3select-selected\",class:{ 'c3select-border': _vm.hasBorder },on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.toggleSelect()}}},[_vm._v(\"\\n \"+_vm._s(_vm.selectedValue)+\"\\n \")]),(_vm.legend)?_c('span',{staticClass:\"c3select-legend\"},[_vm._v(\"\\n \"+_vm._s(_vm.legend)+\"\\n \")]):_vm._e(),_c('span',{staticClass:\"c3select-icon icon\",class:_vm.dropDownIcon,on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.toggleSelect()}}})]),_c('ul',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isOpen),expression:\"isOpen\"}],staticClass:\"c3select-options\",class:{ 'c3select-direction-up': _vm.directionReverse },style:(_vm.selectUlStyle)},_vm._l((_vm.options),function(value,id){return _c('li',{key:id,staticClass:\"c3select-option\",class:{ selected: _vm.isSelected(id) },on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.selectAndClose(id)}}},[_vm._v(\"\\n \"+_vm._s(value)+\"\\n \")])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\r\n\r\nimport C3 from '@/c3';\r\nimport C3FormElement from './C3FormElement';\r\n\r\n@Component\r\nexport default class Select extends Mixins(C3, C3FormElement) {\r\n @Prop() public up!: boolean;\r\n @Prop() public legend!: string;\r\n @Prop() public border!: boolean;\r\n @Prop() public selected!: string;\r\n @Prop() public options!: { [key: string]: string };\r\n @Prop() public feedback!: string;\r\n\r\n public isOpen: boolean = false;\r\n public hasBorder: boolean = this.border || false;\r\n public directionReverse: boolean = this.up || false;\r\n public selectRef: string = Math.random()\r\n .toString(36)\r\n .substring(2);\r\n public selectUlStyle: string = '';\r\n\r\n get dropDownIcon() {\r\n return this.isOpen ? 'carrotup' : 'carrotdown';\r\n }\r\n\r\n get selectedValue(): string {\r\n let value: string = '';\r\n Object.keys(this.options).forEach(e => {\r\n if (this.selected === e) {\r\n value = this.options[e];\r\n }\r\n });\r\n return value;\r\n }\r\n\r\n public mounted(): void {\r\n if (!this.up) {\r\n this.calculateSelectUlOffset();\r\n }\r\n }\r\n\r\n public isSelected(selectedId: string) {\r\n return this.selected === selectedId ? 'selected' : '';\r\n }\r\n\r\n public toggleSelect(): void {\r\n this.calculateSelectUlOffset();\r\n if (!this.isDisabled) {\r\n this.isOpen = !this.isOpen;\r\n }\r\n }\r\n\r\n public selectAndClose(value: string): void {\r\n if (this.feedback === 'validated') {\r\n this.$emit('change', { value, valid: true });\r\n } else {\r\n this.$emit('change', value);\r\n }\r\n this.toggleSelect();\r\n }\r\n\r\n public calculateSelectUlOffset(): void {\r\n const rect = this.$el.getBoundingClientRect();\r\n const scrollLeft =\r\n window.pageXOffset || document.documentElement.scrollLeft;\r\n const scrollTop = window.pageYOffset || document.documentElement.scrollTop;\r\n if (this.directionReverse) {\r\n this.selectUlStyle =\r\n `position: fixed; margin-bottom: -31px; bottom: calc(100vh - ${rect.top +\r\n scrollTop}px);` +\r\n ` left: ${rect.left + scrollLeft}px; width: ${rect.width}px;`;\r\n } else {\r\n this.selectUlStyle =\r\n `position: fixed; margin-top: 31px; top: ${rect.top + scrollTop}px;` +\r\n ` left: ${rect.left + scrollLeft}px; width: ${rect.width}px;`;\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Select.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Select.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Select.vue?vue&type=template&id=434d5f55&scoped=true&\"\nimport script from \"./Select.vue?vue&type=script&lang=ts&\"\nexport * from \"./Select.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Select.vue?vue&type=style&index=0&id=434d5f55&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"434d5f55\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3form\"},[_vm._l((_vm.argumentsArray),function(field){return _c(_vm.getFieldType(field),_vm._b({key:field.id,tag:\"component\",attrs:{\"legend\":field.name,\"validate\":field.validation,\"name\":field.name,\"random\":field.randomize,\"value\":_vm.setDefaultValue(field.name, field.defaultValue),\"help\":field.description,\"autocomplete\":\"off\",\"border\":\"ture\",\"options\":field.options,\"selected\":field.selected,\"feedback\":field.feedback},on:{\"change\":function($event){return _vm.onChange($event, field.id)}}},'component',field,false))}),_vm._l((_vm.argumentObjects),function(field){return _c(_vm.getFieldType(field),_vm._b({key:field.id,tag:\"component\",attrs:{\"legend\":field.name,\"validate\":field.validation,\"random\":field.randomize,\"name\":field.name,\"value\":_vm.setDefaultValue(field.name, field.defaultValue),\"help\":field.description,\"autocomplete\":\"off\",\"border\":\"ture\",\"options\":field.options,\"selected\":field.selected,\"feedback\":field.feedback},on:{\"change\":function($event){return _vm.onChange($event, field.id)}}},'component',field,false))})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3checkbox-wrapper\"},[(_vm.hasHelp)?_c('span',{staticClass:\"icon help\"},[_c('div',{staticClass:\"help-text\"},[_vm._v(\"\\n \"+_vm._s(_vm.help)+\"\\n \")])]):_vm._e(),_c('label',{staticClass:\"icon checkbox\",class:_vm.getIconKlass,attrs:{\"for\":_vm.inputUID}},[_vm._v(\"\\n \"+_vm._s(_vm.legend)+\"\\n \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.isChecked),expression:\"isChecked\"}],ref:\"booleanCheckbox\",attrs:{\"type\":\"checkbox\",\"value\":\"None\",\"id\":_vm.inputUID,\"name\":_vm.inputUID,\"true-value\":\"true\",\"false-value\":\"false\",\"disabled\":_vm.disabled,\"autocomplete\":_vm.autocomplete},domProps:{\"checked\":Array.isArray(_vm.isChecked)?_vm._i(_vm.isChecked,\"None\")>-1:_vm._q(_vm.isChecked,\"true\")},on:{\"change\":[function($event){var $$a=_vm.isChecked,$$el=$event.target,$$c=$$el.checked?(\"true\"):(\"false\");if(Array.isArray($$a)){var $$v=\"None\",$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.isChecked=$$a.concat([$$v]))}else{$$i>-1&&(_vm.isChecked=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.isChecked=$$c}},_vm.toogleCheckBox]}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\r\n\r\nimport C3FormElement from '@/components/form/C3FormElement';\r\n\r\nimport C3 from '@/c3';\r\n\r\n@Component\r\nexport default class CheckBox extends Mixins(C3, C3FormElement) {\r\n @Prop() public value!: string;\r\n\r\n public isChecked: string = this.getIsChecked;\r\n\r\n get getIconKlass() {\r\n const checked: string = this.isChecked === 'true' ? '-on' : '-off';\r\n const disabled: string = this.isDisabled ? '--disabled' : '';\r\n return `checkbox${checked}${disabled}`;\r\n }\r\n\r\n get getIsChecked() {\r\n if (this.value && typeof this.value === 'boolean' && this.value === true) {\r\n return 'true';\r\n }\r\n return 'false';\r\n }\r\n\r\n public mounted(): void {\r\n this.toogleCheckBox();\r\n }\r\n\r\n // boolean true or false, nothing to validate here\r\n public toogleCheckBox(): void {\r\n const isCheckedValue = this.isChecked === 'true' ? true : false;\r\n this.$emit('change', {\r\n value: isCheckedValue,\r\n valid: true\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CheckBox.vue?vue&type=template&id=180a7aec&scoped=true&\"\nimport script from \"./CheckBox.vue?vue&type=script&lang=ts&\"\nexport * from \"./CheckBox.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CheckBox.vue?vue&type=style&index=0&id=180a7aec&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"180a7aec\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3textarea\"},[(_vm.hasHelp)?_c('span',{staticClass:\"icon help\"},[_c('div',{staticClass:\"help-text\"},[_vm._v(\"\\n \"+_vm._s(_vm.help)+\"\\n \")])]):_vm._e(),_c('div',{staticClass:\"textarea\",class:{ focus: _vm.focused }},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.dataText),expression:\"dataText\"}],ref:\"textareainput\",staticClass:\"c3textarea-input\",class:{ focus: _vm.focused },attrs:{\"rows\":\"5\",\"cols\":\"33\",\"type\":\"checkbox\",\"id\":_vm.inputUID,\"name\":_vm.inputUID,\"disabled\":_vm.disabled,\"autocomplete\":_vm.autocomplete},domProps:{\"value\":(_vm.dataText)},on:{\"input\":[function($event){if($event.target.composing){ return; }_vm.dataText=$event.target.value},_vm.updateTextarea],\"focus\":function($event){_vm.focused = true},\"blur\":function($event){return _vm.lostFocus()}}}),_c('label',{staticClass:\"c3textarea-label\",class:{ dirty: _vm.isDirty, focus: _vm.focused },on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.clickOnLabel()}}},[_vm._v(\"\\n \"+_vm._s(_vm.legend)+\"\\n \")]),_vm._m(0)]),_c('input',{ref:\"fileinput\",staticStyle:{\"visibility\":\"hidden\"},attrs:{\"id\":\"payload-file\",\"type\":\"file\"},on:{\"change\":_vm.updateTextfield}})])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{staticClass:\"c3textarea-upload-button\",attrs:{\"for\":\"payload-file\"}},[_c('span',{staticClass:\"icon upload\"},[_c('div',{staticClass:\"help-text\"},[_vm._v(\"\\n Select file to upload...\\n \")])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\r\n\r\nimport C3FormElement from '@/components/form/C3FormElement';\r\n\r\nimport C3 from '@/c3';\r\n\r\n@Component\r\nexport default class Textarea extends Mixins(C3, C3FormElement) {\r\n @Prop() public value!: string;\r\n\r\n public dataText: string = '';\r\n public focused: boolean = false;\r\n\r\n get isDirty() {\r\n return !!this.value || !!this.dataText;\r\n }\r\n\r\n public mounted(): void {\r\n this.updateTextarea();\r\n }\r\n\r\n public lostFocus(): void {\r\n this.focused = false;\r\n this.updateTextarea();\r\n }\r\n\r\n // can be anything so nothing to validate here\r\n public updateTextarea(): void {\r\n this.$emit('change', {\r\n value: this.dataText,\r\n valid: true\r\n });\r\n }\r\n\r\n public clickOnLabel(): void {\r\n (this.$refs.textareainput as HTMLInputElement).focus();\r\n }\r\n\r\n public updateTextfield(): void {\r\n const reader = new FileReader();\r\n const file: any = this.$refs.fileinput as HTMLInputElement;\r\n let base64: string;\r\n\r\n reader.readAsDataURL(file.files[0]);\r\n\r\n reader.onload = () => {\r\n base64 = reader.result as string;\r\n if (!base64) {\r\n base64 = (base64 as string).replace(/^data:(.*;base64,)?/, '');\r\n }\r\n this.dataText = base64;\r\n this.updateTextarea();\r\n // If manualy delete the content and select the same file, we need to populate the data again.\r\n // To do this we need to reset the input field. If we don't do that selecting the same file\r\n // is not trigger the change event.\r\n try {\r\n (this.$refs.fileinput as HTMLInputElement).value = '';\r\n if ((this.$refs.fileinput as HTMLInputElement).value) {\r\n (this.$refs.fileinput as HTMLInputElement).type = 'text';\r\n (this.$refs.fileinput as HTMLInputElement).type = 'file';\r\n }\r\n } catch (e) {\r\n // tslint:disable-next-line:no-console\r\n console.error('Error during input element reset.');\r\n }\r\n };\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Textarea.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Textarea.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Textarea.vue?vue&type=template&id=29e94b45&scoped=true&\"\nimport script from \"./Textarea.vue?vue&type=script&lang=ts&\"\nexport * from \"./Textarea.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Textarea.vue?vue&type=style&index=0&id=29e94b45&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"29e94b45\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { namespace } from 'vuex-class';\r\nimport { Component, Prop, Watch, Mixins } from 'vue-property-decorator';\r\n\r\nimport { NodeKlass, C3Node, C3FieldDefault } from '@/types/c3types';\r\nimport { GetCapabilityForFn } from '@/store/C3Capability';\r\nimport { GetTypeNameForInterfaceFn } from '@/store/C3Capability';\r\n\r\nimport C3 from '@/c3';\r\nimport Input from '@/components/form/Input.vue';\r\nimport Select from '@/components/form/Select.vue';\r\nimport CheckBox from '@/components/form/CheckBox.vue';\r\nimport Textarea from '@/components/form/Textarea.vue';\r\n\r\nconst C3Capability = namespace('c3Capability');\r\nconst C3Module = namespace('c3Module');\r\n\r\n@Component({\r\n components: {\r\n Input,\r\n Select,\r\n Textarea,\r\n CheckBox\r\n }\r\n})\r\nexport default class GeneralForm extends Mixins(C3) {\r\n @Prop() public command!: any;\r\n @Prop() public target!: string;\r\n @Prop() public klass!: NodeKlass;\r\n @Prop() public targetId!: string;\r\n @Prop() public interfaceName!: any;\r\n @Prop() public options!: C3FieldDefault[];\r\n\r\n public isValid: boolean = false;\r\n // hold the command argumentum array part\r\n public argumentsArray: any = [];\r\n // hold the command argumentum objects outside the array\r\n public argumentObjects: any = [];\r\n\r\n // get the capability from store\r\n @C3Capability.Getter public getCapabilityFor!: GetCapabilityForFn;\r\n @C3Capability.Getter\r\n public getTypeNameForInterface!: GetTypeNameForInterfaceFn;\r\n\r\n get capability() {\r\n return this.getCapabilityFor(this.interfaceName, this.klass);\r\n }\r\n\r\n get hasOptions() {\r\n if (this.options) {\r\n return JSON.stringify(this.options) === '{}' ? false : true;\r\n }\r\n return false;\r\n }\r\n\r\n // TODO: add more field type\r\n public getFieldType(f: any): string {\r\n switch (f.type) {\r\n case 'boolean':\r\n return 'CheckBox';\r\n case 'base64':\r\n return 'Textarea';\r\n case 'base32':\r\n return 'Textarea';\r\n case 'binary':\r\n return 'Textarea';\r\n }\r\n return 'Input';\r\n }\r\n\r\n public onChange(payload: any, id: any) {\r\n this.isValid = true;\r\n let index = this.argumentsArray.findIndex((i: any) => {\r\n return i.id === id;\r\n });\r\n if (index > -1) {\r\n this.argumentsArray[index].value = payload.value;\r\n this.argumentsArray[index].isValid = payload.valid;\r\n }\r\n index = this.argumentObjects.findIndex((i: any) => {\r\n return i.id === id;\r\n });\r\n if (index > -1) {\r\n this.argumentObjects[index].value = payload.value;\r\n this.argumentObjects[index].isValid = payload.valid;\r\n }\r\n\r\n this.emitFormData();\r\n }\r\n\r\n // emit back the form data\r\n public emitFormData(): void {\r\n this.isValid = true;\r\n\r\n const formData = [this.clearArray(this.argumentsArray)];\r\n this.clearArray(this.argumentObjects).forEach((element: any) => {\r\n formData.push(element);\r\n });\r\n\r\n const formIsValid = this.isValid;\r\n\r\n this.$emit('change', {\r\n data: formData,\r\n valid: formIsValid\r\n });\r\n }\r\n\r\n // populate the argumentsArray and argumentObjects arrays on load\r\n public mounted(): void {\r\n this.getCommandFrom();\r\n this.emitFormData();\r\n }\r\n\r\n public clearArray(data: any): any {\r\n const rData: any = [];\r\n\r\n if (data) {\r\n data.forEach((element: any) => {\r\n if (!element.isValid) {\r\n this.isValid = false;\r\n }\r\n\r\n const t = element.type;\r\n const n = element.name;\r\n const v = element.value;\r\n\r\n rData.push({\r\n type: t,\r\n name: n,\r\n value: v\r\n });\r\n });\r\n }\r\n\r\n return rData;\r\n }\r\n\r\n public getValidationRule(e: any): string {\r\n let validation: string = '';\r\n\r\n if (!!e.type && e.type === 'ip') {\r\n validation = 'ip|';\r\n }\r\n if (!!e.type && (e.type === 'int16' || e.type === 'uint16')) {\r\n validation = 'numeric|';\r\n if (!e.min && e.type === 'uint16') {\r\n validation = validation + 'min_value:0|';\r\n }\r\n }\r\n if (!!e.type && e.type === 'boolean') {\r\n validation = '';\r\n }\r\n if (!!e.min && parseInt(e.min, 10) > 0) {\r\n if (!!e.type && e.type === 'string') {\r\n validation = validation + 'min:' + e.min + '|';\r\n }\r\n if (!!e.type && (e.type === 'int16' || e.type === 'uint16')) {\r\n validation = validation + 'min_value:' + e.min + '|';\r\n }\r\n validation = validation + 'required|';\r\n }\r\n if (!!e.max && e.min && parseInt(e.max, 10) >= parseInt(e.min, 10)) {\r\n if (!!e.type && e.type === 'string') {\r\n validation = validation + 'max:' + e.max + '|';\r\n }\r\n if (!!e.type && (e.type === 'int16' || e.type === 'uint16')) {\r\n validation = validation + 'max_value:' + e.max + '|';\r\n }\r\n }\r\n return validation;\r\n }\r\n\r\n public getRandomLenght(e: any): number | undefined {\r\n // If no minimum then dont show the random button.\r\n if ((e.randomize && e.randomize === true) || e.randomize === 'true') {\r\n if (e.min && parseInt(e.min, 10) > 0) {\r\n return parseInt(e.min, 10);\r\n } else {\r\n e.randomize = 8;\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n public getCrossArgumentOption(inputId: string): string | boolean {\r\n const outputId = inputId === 'Input ID' ? 'Output ID' : 'Input ID';\r\n\r\n if (this.hasOptions) {\r\n const output = this.options.find((item: C3FieldDefault) => {\r\n return item.name === outputId;\r\n });\r\n if (output) {\r\n return output.value;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public getArgumentOption(input: string): string | boolean {\r\n if (this.hasOptions) {\r\n const output = this.options.find((item: C3FieldDefault) => {\r\n return item.name === input;\r\n });\r\n if (output) {\r\n return output.value;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public setDefaultValue(inputName: string, inputValue: any) {\r\n const value = inputValue;\r\n if (this.hasOptions) {\r\n const newValue = this.options.find(item => {\r\n return inputName === item.name;\r\n });\r\n if (!!newValue) {\r\n return newValue.value;\r\n }\r\n }\r\n return value;\r\n }\r\n\r\n public setArgumentData(argument: any): any {\r\n argument.validation = this.getValidationRule(argument);\r\n argument.id = Math.random()\r\n .toString(36)\r\n .substring(2);\r\n if (this.getRandomLenght(argument)) {\r\n argument.randomize = this.getRandomLenght(argument);\r\n }\r\n\r\n argument.value = {\r\n value: '',\r\n valid: false\r\n };\r\n\r\n return argument;\r\n }\r\n\r\n // populate the argumentsArray and argumentObjects arrays\r\n public getCommandFrom(): any {\r\n if (\r\n this.capability &&\r\n this.capability.commands &&\r\n this.capability.commands.length > 0\r\n ) {\r\n const com = this.capability.commands.find((c: any) => {\r\n return c.name === this.command;\r\n });\r\n if (com !== undefined && com.arguments) {\r\n this.argumentsArray = [];\r\n this.argumentObjects = [];\r\n com.arguments.forEach((argument: any) => {\r\n if (Array.isArray(argument)) {\r\n argument.forEach((argumentItem: any) => {\r\n argumentItem = this.setArgumentData(argumentItem);\r\n });\r\n this.argumentsArray = argument;\r\n } else {\r\n argument = this.setArgumentData(argument);\r\n this.argumentObjects.push(argument);\r\n }\r\n });\r\n } else {\r\n this.addNotify({\r\n type: 'info',\r\n message: \"Command not set up correctly, Form can't be generated.\"\r\n });\r\n }\r\n }\r\n return false;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GeneralForm.vue?vue&type=template&id=1600bbf3&\"\nimport script from \"./GeneralForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./GeneralForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GeneralForm.vue?vue&type=style&index=0&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport pluralize from 'pluralize';\r\nimport axios from 'axios';\r\nimport { namespace } from 'vuex-class';\r\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\r\n\r\nimport { GetInterfaceFn } from '@/store/C3Module';\r\nimport { C3Gateway, NodeKlass, C3CommandCenterOptions } from '@/types/c3types';\r\nimport {\r\n GetTypesForInterfaceKlassFn,\r\n GetCommandGroupForFn,\r\n GetCommandTargetForFn,\r\n GetCapabilityForFn\r\n} from '@/store/C3Capability';\r\n\r\nimport C3 from '@/c3';\r\nimport Input from '@/components/form/Input.vue';\r\nimport Select from '@/components/form/Select.vue';\r\nimport GeneralForm from '@/components/form/GeneralForm.vue';\r\nimport AddChannelForm from '@/components/form/AddChannelForm.vue';\r\n\r\nconst C3Module = namespace('c3Module');\r\nconst C3Capability = namespace('c3Capability');\r\nconst C3OptionsModule = namespace('optionsModule');\r\n\r\n@Component({\r\n components: {\r\n Input,\r\n Select,\r\n GeneralForm\r\n }\r\n})\r\nexport default class CommandCenterModal extends Mixins(C3) {\r\n @Prop() public targetId!: string;\r\n @Prop() public embeded!: boolean;\r\n @Prop() public options!: C3CommandCenterOptions;\r\n\r\n @C3Module.Getter public getInterface!: GetInterfaceFn;\r\n\r\n @C3Capability.Getter public getCapabilityFor!: GetCapabilityForFn;\r\n @C3Capability.Getter public getCommandGroupFor!: GetCommandGroupForFn;\r\n @C3Capability.Getter public getCommandTargetFor!: GetCommandTargetForFn;\r\n\r\n @C3OptionsModule.Getter public getAPIBaseUrl!: string;\r\n\r\n public formData: any = {};\r\n public isValid: boolean = false;\r\n public commandGroup: string = '';\r\n public commandTarget: string = '';\r\n public formDirty: boolean = false;\r\n\r\n get formIsValid() {\r\n return !this.isValid;\r\n }\r\n\r\n get currentItem() {\r\n return this.getInterface(this.targetId);\r\n }\r\n\r\n get selectedCommandGroup() {\r\n if (!this.commandGroup) {\r\n return this.defaultCommandGroup;\r\n }\r\n this.resetForm();\r\n return this.commandGroup;\r\n }\r\n\r\n get selectedCommandTarget() {\r\n if (!this.commandTarget) {\r\n return this.defaultCommandTarget;\r\n }\r\n return this.commandTarget;\r\n }\r\n\r\n get defaultCommandGroup() {\r\n if (this.options !== undefined && this.options.targetGroup !== undefined) {\r\n return this.options.targetGroup;\r\n }\r\n if (!!this.commandGroupOptions) {\r\n return Object.keys(this.commandGroupOptions)[0];\r\n }\r\n return '';\r\n }\r\n\r\n get defaultCommandTarget() {\r\n if (!!this.commandTargetOptions) {\r\n this.changeCommandTarget(Object.keys(this.commandTargetOptions)[0]);\r\n return Object.keys(this.commandTargetOptions)[0];\r\n }\r\n return '';\r\n }\r\n\r\n get commandGroupOptions() {\r\n if (!!this.currentItem) {\r\n return this.getCommandGroupFor(this.currentItem.klass);\r\n }\r\n return '';\r\n }\r\n\r\n get commandTargetOptions() {\r\n if (!!this.currentItem) {\r\n if (\r\n this.currentItem.klass === NodeKlass.Gateway ||\r\n this.currentItem.klass === NodeKlass.Relay\r\n ) {\r\n return this.getCommandTargetFor(\r\n this.selectedCommandGroup,\r\n this.currentItem.klass\r\n );\r\n }\r\n return this.getCommandTargetFor(\r\n this.selectedCommandGroup,\r\n this.currentItem.klass,\r\n this.interfaceTypeName(this.currentItem)\r\n );\r\n }\r\n return '';\r\n }\r\n\r\n get selectedInterfaceKlass() {\r\n if (this.commandTarget !== undefined) {\r\n return pluralize.singular(this.commandTarget.split('_')[0]).toUpperCase();\r\n }\r\n return '';\r\n }\r\n\r\n get selectedInterface() {\r\n if (this.commandTarget !== undefined) {\r\n return this.commandTarget.split('_')[1];\r\n }\r\n return '';\r\n }\r\n\r\n get selectedCommand() {\r\n if (this.commandTarget !== undefined) {\r\n return this.commandTarget.split('_')[2];\r\n }\r\n return '';\r\n }\r\n\r\n get getCommandId() {\r\n const capability = this.getCapabilityFor(\r\n this.selectedInterface,\r\n this.selectedInterfaceKlass as NodeKlass\r\n );\r\n if (!!capability) {\r\n const com = capability.commands.find((c: any) => {\r\n return c.name === this.selectedCommand;\r\n });\r\n return com.id;\r\n }\r\n return '';\r\n }\r\n\r\n get isNotEmbeded(): boolean {\r\n if (this.embeded === undefined) {\r\n return true;\r\n }\r\n return this.embeded === true ? false : true;\r\n }\r\n\r\n get hasOptions() {\r\n if (this.options) {\r\n return JSON.stringify(this.options) === '{}' ? false : true;\r\n }\r\n return false;\r\n }\r\n\r\n get argumentOptions() {\r\n if (this.hasOptions) {\r\n if (!!this.options.formDefault) {\r\n return this.options.formDefault.arguments;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n public mounted(): void {\r\n (window as any).addEventListener('keydown', this.handleGlobalKeyDown, true);\r\n if (this.hasOptions) {\r\n if (!!this.options.formDefault) {\r\n const target = Object.keys(this.commandTargetOptions).find(key => {\r\n if (!!this.options && !!this.options.formDefault) {\r\n // TODO: found a better way to found the must select options.\r\n return (\r\n this.commandTargetOptions[key] ===\r\n this.options.formDefault.prefix +\r\n this.options.formDefault.interface\r\n );\r\n }\r\n return false;\r\n });\r\n if (!!target) {\r\n this.commandTarget = target;\r\n }\r\n }\r\n }\r\n }\r\n\r\n public beforeDestroy(): void {\r\n (window as any).removeEventListener(\r\n 'keydown',\r\n this.handleGlobalKeyDown,\r\n true\r\n );\r\n }\r\n\r\n public resetForm(): void {\r\n this.commandTarget = '';\r\n }\r\n\r\n public changeForm(data: any): void {\r\n this.isValid = data.valid;\r\n if (data.data.length === 1 && data.data[0].length === 0) {\r\n this.formData = [];\r\n } else {\r\n if (data.data[0].length === 0) {\r\n data.data.shift();\r\n }\r\n this.formData = data.data;\r\n }\r\n\r\n // if the command center embeded to the new relay form we\r\n // want to give the form data to create relay form\r\n if (this.targetId === 'new') {\r\n const dataToEmit = {\r\n name: this.selectedCommandGroup,\r\n data: {\r\n id: this.getCommandId,\r\n name: this.selectedInterface,\r\n command: this.selectedCommand,\r\n arguments: this.formData\r\n }\r\n };\r\n this.$emit('change', {\r\n data: dataToEmit,\r\n valid: this.isValid\r\n });\r\n }\r\n }\r\n\r\n public changeCommandGroup(n: string): void {\r\n this.commandGroup = n;\r\n }\r\n\r\n public changeCommandTarget(n: string): void {\r\n this.isValid = true;\r\n this.commandTarget = n;\r\n }\r\n\r\n public sendCommand(): void {\r\n const data = {\r\n name: this.selectedCommandGroup,\r\n data: {\r\n id: this.getCommandId,\r\n name: this.selectedInterface,\r\n command: this.selectedCommand,\r\n arguments: this.formData\r\n }\r\n };\r\n\r\n // POST /api/gateway/{gatewayId}/command\r\n // POST /api/gateway/{gatewayId}/interface/{interfaceId}/command\r\n // POST /api/gateway/{gatewayId}/relay/{relayId}/command\r\n // POST /api/gateway/{gatewayId}/relay/{relayId}/interface/{interfaceId}/command\r\n\r\n let apiURL = '/api/gateway/';\r\n\r\n if (!!this.currentItem && this.currentItem.klass === NodeKlass.Gateway) {\r\n apiURL = apiURL + `${this.currentItem.id}/command`;\r\n }\r\n if (!!this.currentItem && this.currentItem.klass === NodeKlass.Relay) {\r\n apiURL =\r\n apiURL +\r\n `${this.currentItem.parentId}/relay/${this.currentItem.id}/command`;\r\n }\r\n if (\r\n (!!this.currentItem && this.currentItem.klass === NodeKlass.Channel) ||\r\n (!!this.currentItem && this.currentItem.klass === NodeKlass.Peripheral) ||\r\n (!!this.currentItem && this.currentItem.klass === NodeKlass.Connector)\r\n ) {\r\n if (this.currentItem.parentKlass === NodeKlass.Gateway) {\r\n switch (this.currentItem.klass) {\r\n case NodeKlass.Channel:\r\n apiURL =\r\n apiURL +\r\n `${this.currentItem.parentId}/channel/${this.currentItem.id}/command`;\r\n break;\r\n case NodeKlass.Peripheral:\r\n apiURL =\r\n apiURL +\r\n `${this.currentItem.parentId}/peripheral/${this.currentItem.id}/command`;\r\n break;\r\n case NodeKlass.Connector:\r\n apiURL =\r\n apiURL +\r\n `${this.currentItem.parentId}/connector/${this.currentItem.id}/command`;\r\n break;\r\n }\r\n }\r\n if (this.currentItem.parentKlass === NodeKlass.Relay) {\r\n switch (this.currentItem.klass) {\r\n case NodeKlass.Channel:\r\n apiURL =\r\n apiURL +\r\n `${this.gateway.id}/relay/${this.currentItem.parentId}/channel/${this.currentItem.id}/command`;\r\n break;\r\n case NodeKlass.Peripheral:\r\n apiURL =\r\n apiURL +\r\n `${this.gateway.id}/relay/${this.currentItem.parentId}/peripheral/${this.currentItem.id}/command`;\r\n break;\r\n case NodeKlass.Connector:\r\n apiURL =\r\n apiURL +\r\n `${this.gateway.id}/relay/${this.currentItem.parentId}/connector/${this.currentItem.id}/command`;\r\n break;\r\n }\r\n }\r\n }\r\n axios({\r\n url: apiURL,\r\n method: 'POST',\r\n baseURL: this.getAPIBaseUrl,\r\n data\r\n })\r\n .then(response => {\r\n this.addNotify({\r\n type: 'info',\r\n message: 'Command successfully sent...'\r\n });\r\n this.closeThisModal();\r\n })\r\n .catch(error => {\r\n const msg: string = 'Command NOT sent: ' + error.message;\r\n this.addNotify({\r\n type: 'error',\r\n message: msg\r\n });\r\n // tslint:disable-next-line:no-console\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommandCenter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommandCenter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CommandCenter.vue?vue&type=template&id=86dea0d6&\"\nimport script from \"./CommandCenter.vue?vue&type=script&lang=ts&\"\nexport * from \"./CommandCenter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CommandCenter.vue?vue&type=style&index=0&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { namespace } from 'vuex-class';\r\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\r\n\r\nimport { C3Relay, C3Interface, NodeKlass, C3Node } from '@/types/c3types';\r\n\r\nimport C3 from '@/c3';\r\nimport RouteList from '@/components/partial/RouteList.vue';\r\nimport ChannelList from '@/components/partial/ChannelList.vue';\r\nimport NetworkStats from '@/components/partial/NetworkStats.vue';\r\nimport ConnectorList from '@/components/partial/ConnectorList.vue';\r\nimport PheripheralList from '@/components/partial/PeripheralList.vue';\r\nimport CommandCenterModal from '@/components/modals/CommandCenter.vue';\r\n\r\nconst C3Module = namespace('c3Module');\r\n\r\n@Component({\r\n components: {\r\n RouteList,\r\n ChannelList,\r\n NetworkStats,\r\n ConnectorList,\r\n PheripheralList,\r\n CommandCenterModal\r\n }\r\n})\r\nexport default class GatewayModal extends Mixins(C3) {\r\n public mounted(): void {\r\n (window as any).addEventListener('keydown', this.handleGlobalKeyDown, true);\r\n }\r\n\r\n public beforeDestroy(): void {\r\n (window as any).removeEventListener(\r\n 'keydown',\r\n this.handleGlobalKeyDown,\r\n true\r\n );\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Gateway.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Gateway.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Gateway.vue?vue&type=template&id=2d145cc2&\"\nimport script from \"./Gateway.vue?vue&type=script&lang=ts&\"\nexport * from \"./Gateway.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.c3Interface !== undefined)?_c('div',{staticClass:\"c3modal-body\"},[_c('div',{staticClass:\"c3modal-header\",class:{\n 'is-return': !!_vm.c3Interface.isReturnChannel,\n 'has-error': !!_vm.c3Interface.error\n }},[_c('h1',[_c('span',{staticClass:\"capitalize\"},[_vm._v(_vm._s(_vm.c3Interface.klass.toLowerCase())+\" \")]),_vm._v(\"\\n ID: \"+_vm._s(_vm.c3Interface.id || '')+\"\\n \")]),_c('div',{staticClass:\"flex-row\"},[_c('div',{staticClass:\"details\"},[_c('p',[_vm._v(\"\\n Parent\\n \"),_c('span',{staticClass:\"c3link capitalize\"},[_vm._v(\"\\n \"+_vm._s(_vm.c3Interface.parentKlass.toLowerCase())+\" /\\n \"+_vm._s(_vm.c3Interface.parentId)+\"\\n \")])]),_c('p',{staticClass:\"capitalize\"},[_vm._v(\"\\n \"+_vm._s(_vm.c3Interface.klass.toLowerCase())+\" Type\\n \"),_c('span',[_vm._v(\"\\n \"+_vm._s(_vm.interfaceTypeName(_vm.c3Interface))+\"\\n \")])]),_c('p',[_vm._v(\"\\n Jitter [min/max]\\n \"),_c('span',[_vm._v(\"\\n \"+_vm._s(_vm.getInterfaceJitter)+\"\\n \")])])]),_c('div',{staticClass:\"actions\"},[(_vm.showRelayDropdown)?_c('span',{staticClass:\"c3modal-more-btn icon more\"},[_vm._v(\"\\n INTERFACE OPTIONS\\n \")]):_vm._e(),_c('ul',{staticClass:\"c3modal-menu\"},[_c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showNewRelayButton),expression:\"showNewRelayButton\"}],staticClass:\"c3modal-menu-item\",on:{\"click\":function($event){_vm.openModal(_vm.c3Interface.id, 'CREATE_RELAY', _vm.generateOprions())}}},[_vm._v(\"\\n New Relay\\n \")]),_c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showConnectRelayButton),expression:\"showConnectRelayButton\"}],staticClass:\"c3modal-menu-item\",on:{\"click\":function($event){_vm.openModal(_vm.c3Interface.uid, 'CONNECT_RELAY', _vm.generateOprions())}}},[_vm._v(\"\\n Connect Relay\\n \")])]),_c('button',{staticClass:\"c3btn c3btn--outline\",on:{\"click\":function($event){return _vm.openModal(_vm.c3Interface.uid, 'COMMAND_CENTER')}}},[_vm._v(\"\\n Command Center\\n \")])])]),(!!_vm.c3Interface.error && _vm.c3Interface.error !== '')?_c('p',{staticClass:\"message-with-icon\"},[_c('span',{staticClass:\"icon warning\"}),_vm._v(\"\\n Error: \"+_vm._s(_vm.c3Interface.error)+\"\\n \")]):_vm._e(),(\n !!_vm.c3Interface.isReturnChannel &&\n _vm.c3Interface.isReturnChannel !== 'false'\n )?_c('p',{staticClass:\"message-with-icon\"},[_c('span',{staticClass:\"icon return\"}),_vm._v(\"\\n This is a Gateway Return Channel (GRC).\\n \")]):_vm._e(),(\n !!_vm.c3Interface.isNegotiationChannel &&\n _vm.c3Interface.isNegotiationChannel !== 'false'\n )?_c('p',{staticClass:\"message-with-icon\"},[_c('span',{staticClass:\"icon exclamation\"}),_vm._v(\"\\n This is a Negotiation Channel.\\n \")]):_vm._e()]),_c('div',{staticClass:\"c3modal-details\"},[(_vm.c3Interface.propertiesText !== '')?[_c('h1',[_vm._v(\"Properties\")]),_c('pre',{staticClass:\"c3command\"},[_vm._v(_vm._s(_vm.c3Interface.propertiesText))])]:_vm._e()],2)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { namespace } from 'vuex-class';\r\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\r\n\r\nimport { Notify } from '@/store/NotifyModule';\r\nimport { GetInterfaceFn, GetNodeKlassFn, GetRelayFn } from '@/store/C3Module';\r\nimport {\r\n C3Interface,\r\n C3Gateway,\r\n C3Relay,\r\n NodeKlass,\r\n C3Node,\r\n C3FieldDefault,\r\n C3CommandCenterOptions,\r\n SourceOptions,\r\n nullNode\r\n} from '@/types/c3types';\r\n\r\nimport C3 from '@/c3';\r\n\r\nconst nodeKlass = NodeKlass;\r\nconst C3Module = namespace('c3Module');\r\n\r\n@Component\r\nexport default class InterfaceModal extends Mixins(C3) {\r\n @Prop() public targetId!: string;\r\n\r\n @C3Module.Getter public getRelay!: GetRelayFn;\r\n @C3Module.Getter public getInterface!: GetInterfaceFn;\r\n @C3Module.Getter public getNodeKlass!: GetNodeKlassFn;\r\n\r\n get c3Interface() {\r\n const target = this.getInterface(this.targetId);\r\n if (!target) {\r\n this.closeThisModal();\r\n }\r\n return target;\r\n }\r\n\r\n get showRelayDropdown() {\r\n return this.showConnectRelayButton || this.showNewRelayButton;\r\n }\r\n\r\n get showConnectRelayButton() {\r\n return this.showButtons();\r\n }\r\n\r\n get showNewRelayButton() {\r\n return this.showButtons();\r\n }\r\n\r\n public showButtons() {\r\n if (this.isReturnChannel() || !this.isChannel()) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n get getInterfaceJitter() {\r\n if (this.c3Interface) {\r\n return this.c3Interface.propertiesText.jitter;\r\n }\r\n return '[N/A, N/A]';\r\n }\r\n\r\n public isChannel(): boolean {\r\n if (!!this.c3Interface) {\r\n return this.c3Interface.klass === NodeKlass.Channel;\r\n }\r\n return false;\r\n }\r\n\r\n public isReturnChannel(): boolean {\r\n if (!!this.c3Interface) {\r\n return this.c3Interface.isReturnChannel === true;\r\n }\r\n return false;\r\n }\r\n\r\n public isNegotiationChannel(): boolean {\r\n if (!!this.c3Interface) {\r\n return this.c3Interface.isNegotiationChannel === true;\r\n }\r\n return false;\r\n }\r\n\r\n public getArguments(node: C3Node = nullNode): any {\r\n if (this.isChannel()) {\r\n if (!!node.propertiesText && !!node.propertiesText.arguments) {\r\n return JSON.parse(JSON.stringify(node.propertiesText.arguments));\r\n }\r\n }\r\n return [];\r\n }\r\n\r\n public getArgumentsAttributes(interfaceAguments: any): any {\r\n if (Array.isArray(interfaceAguments[0])) {\r\n return interfaceAguments[0];\r\n }\r\n return [];\r\n }\r\n\r\n public getPropertiesArguments(interfaceAguments: any): C3FieldDefault[] {\r\n const propertiesAurguments: C3FieldDefault[] = [];\r\n\r\n Object.values(interfaceAguments).forEach(\r\n (objectOrArray: C3FieldDefault | any) => {\r\n if (!Array.isArray(objectOrArray)) {\r\n propertiesAurguments.push(objectOrArray);\r\n }\r\n }\r\n );\r\n\r\n return propertiesAurguments;\r\n }\r\n\r\n public getInterfaceParentId(): string {\r\n if (!!this.c3Interface && !!this.c3Interface.parentId) {\r\n return this.c3Interface.parentId;\r\n }\r\n return '';\r\n }\r\n\r\n public generateSourceOptions(): SourceOptions {\r\n return {\r\n relay: this.getRelay(this.getInterfaceParentId()),\r\n interface: this.c3Interface\r\n };\r\n }\r\n\r\n public changeInputOutputIDs(attributes: any) {\r\n let inputId = {\r\n name: '',\r\n type: '',\r\n value: ''\r\n };\r\n\r\n let outputId = {\r\n name: '',\r\n type: '',\r\n value: ''\r\n };\r\n\r\n let tmp = '';\r\n\r\n if (!!attributes.length) {\r\n inputId =\r\n attributes.find((a: C3FieldDefault) => {\r\n return a.name === 'Input ID';\r\n }) || '';\r\n outputId =\r\n attributes.find((a: C3FieldDefault) => {\r\n return a.name === 'Output ID';\r\n }) || '';\r\n }\r\n\r\n tmp = outputId.value;\r\n outputId.value = inputId.value;\r\n inputId.value = tmp;\r\n\r\n return attributes;\r\n }\r\n\r\n public isNormalChannel(): boolean {\r\n const argumentsString = JSON.stringify(this.getArguments(this.c3Interface));\r\n\r\n return (\r\n !!argumentsString.match(/Input ID/g) &&\r\n !!argumentsString.match(/Output ID/g)\r\n );\r\n }\r\n\r\n public generateCommandCenterArguments(): C3FieldDefault[] {\r\n const optionsArguments: C3FieldDefault[] = [];\r\n\r\n let attributes = this.getArgumentsAttributes(\r\n this.getArguments(this.c3Interface)\r\n );\r\n if (attributes.length > 0) {\r\n attributes = this.changeInputOutputIDs(attributes);\r\n }\r\n\r\n const propertiesArguments = this.getPropertiesArguments(\r\n this.getArguments(this.c3Interface)\r\n );\r\n\r\n if (!!attributes.length) {\r\n attributes.forEach((element: C3FieldDefault) => {\r\n optionsArguments.push(element);\r\n });\r\n }\r\n if (!!propertiesArguments.length) {\r\n propertiesArguments.forEach((element: C3FieldDefault) => {\r\n optionsArguments.push(element);\r\n });\r\n }\r\n\r\n return optionsArguments;\r\n }\r\n\r\n public getPrefix(): string {\r\n if (this.isNormalChannel()) {\r\n return 'AddChannel';\r\n }\r\n if (this.isNegotiationChannel()) {\r\n return 'AddNegotiationChannel';\r\n }\r\n return '';\r\n }\r\n\r\n public getInterfaceTypeString(): string {\r\n if (this.c3Interface) {\r\n return this.interfaceTypeName(this.c3Interface);\r\n }\r\n return '';\r\n }\r\n\r\n public generateOprions(): C3CommandCenterOptions {\r\n return {\r\n formDefault: {\r\n prefix: this.getPrefix(),\r\n interface: this.getInterfaceTypeString(),\r\n arguments: this.generateCommandCenterArguments()\r\n },\r\n source: this.generateSourceOptions()\r\n };\r\n }\r\n\r\n public mounted(): void {\r\n (window as any).addEventListener('keydown', this.handleGlobalKeyDown, true);\r\n }\r\n\r\n public beforeDestroy(): void {\r\n (window as any).removeEventListener(\r\n 'keydown',\r\n this.handleGlobalKeyDown,\r\n true\r\n );\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Interface.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Interface.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Interface.vue?vue&type=template&id=4d83b87a&scoped=true&\"\nimport script from \"./Interface.vue?vue&type=script&lang=ts&\"\nexport * from \"./Interface.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Interface.vue?vue&type=style&index=0&id=4d83b87a&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4d83b87a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3modal-body\"},[_c('div',{staticClass:\"c3modal-details\"},[_c('h1',[_vm._v(\"Relay Setup\")]),_c('p',[_vm._v(\"Please setup a Relay.\")]),_c('Input',{staticClass:\"form-element\",attrs:{\"legend\":\"Name / Auto Generated ID\",\"help\":\"If you do not enter a name an ID will be automatically generated.\"},on:{\"change\":function($event){return _vm.changeName($event, _vm.relayName)}}}),_c('Input',{staticClass:\"form-element\",attrs:{\"legend\":\"Parent Gateway Build ID\",\"value\":_vm.gatewayBuildsId,\"disabled\":true}}),_c('div',{staticClass:\"form-row\"},[_c('Select',{staticClass:\"form-element\",attrs:{\"legend\":\"TargetSuffix\",\"selected\":_vm.selectedTargetSuffix,\"options\":{ dll: 'dll', exe: 'exe', shellcode: 'shellcode'},\"border\":true},on:{\"change\":function($event){return _vm.changeTargetSuffix($event, _vm.targetSuffix)}}}),_c('Select',{staticClass:\"form-element\",attrs:{\"legend\":\"Architecture\",\"selected\":_vm.selectedArchitecture,\"options\":{ x86: 'x86', x64: 'x64' },\"border\":true},on:{\"change\":function($event){return _vm.changeArchitecture($event, _vm.architecture)}}})],1),_c('div',{staticClass:\"c3modal-form\"},[(_vm.donutSelected)?_c('DonutForm',{on:{\"change\":function($event){return _vm.changeDonutForm($event, _vm.formData)}}}):_vm._e()],1),_c('div',{staticClass:\"c3modal-form\"},[_c('h1',[_vm._v(\"Add Command\")]),_c('p',[_vm._v(\"Please Select the first command to the Relay.\")]),_c('CommandCenterModal',{staticClass:\"embeded-modal\",attrs:{\"target-id\":'new',\"embeded\":true,\"options\":_vm.addNewRelayToOptions},on:{\"change\":function($event){return _vm.changeForm($event, _vm.formData)}}})],1),_c('dir',{staticClass:\"flex-row c3modal-actions\"},[_c('button',{staticClass:\"c3btn c3btn--grey\",on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.closeThisModal()}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"c3btn c3btn\",attrs:{\"disabled\":_vm.formIsValid},on:{\"click\":function($event){return _vm.createNewRelay()}}},[_vm._v(\"Create and Download Relay\")])])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"donut-form\"},[_c('h1',[_vm._v(\"Add Command\")]),_c('Select',{staticClass:\"form-element line\",attrs:{\"legend\":\"Format\",\"selected\":_vm.selectedFormat,\"options\":{\n Binary: 'Binary',\n Base64: 'Base64',\n Ruby: 'Ruby',\n C: 'C',\n Python: 'Python',\n Powershell: 'Powershell',\n Csharp: 'Csharp',\n HeX: 'HeX'\n },\"border\":true},on:{\"change\":function($event){return _vm.changeFormat($event, _vm.format)}}}),_c('Select',{staticClass:\"form-element half-line\",attrs:{\"legend\":\"Compress\",\"selected\":_vm.selectedCompress,\"options\":{\n None: 'None',\n\tAplib: 'aPLib',\n Lznt1: 'Lznt1',\n Xpress: 'Xpress',\n Xpress_huff: 'Xpress_huff'\n },\"border\":true},on:{\"change\":function($event){return _vm.changeCompress($event, _vm.compress)}}}),_c('Select',{staticClass:\"form-element half-line\",attrs:{\"legend\":\"Entropy\",\"selected\":_vm.selectedEntropy,\"options\":{\n None: 'None',\n Random: 'Random',\n Default: 'Default'\n },\"border\":true},on:{\"change\":function($event){return _vm.changeEntropy($event, _vm.entropy)}}}),_c('Select',{staticClass:\"form-element half-line\",attrs:{\"legend\":\"ExitOpt\",\"selected\":_vm.selectedExitOpt,\"options\":{\n Exit_thread: 'Exit_thread',\n Exit_process: 'Exit_process'\n },\"border\":true},on:{\"change\":function($event){return _vm.changeExitOpt($event, _vm.exitOpt)}}}),_c('Select',{staticClass:\"form-element half-line\",attrs:{\"legend\":\"Bypass\",\"selected\":_vm.selectedBypass,\"options\":{\n None: 'None',\n Abort: 'Abort',\n Continue: 'Continue'\n },\"border\":true},on:{\"change\":function($event){return _vm.changeBypass($event, _vm.bypass)}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { namespace } from 'vuex-class';\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\n\r\nimport C3 from '@/c3';\r\nimport Select from '../form/Select.vue';\r\n\r\n@Component({\r\n components: {\r\n Select\r\n }\r\n})\r\nexport default class DonutForm extends Vue {\r\n public format: string = 'Binary';\r\n public compress: string = 'None';\r\n public entropy: string = 'Default';\r\n public exitOpt: string = 'Exit_thread';\r\n public bypass: string = 'None';\r\n\r\n get selectedFormat() {\r\n return this.format;\r\n }\r\n\r\n public changeFormat(a: string): void {\r\n this.format = a;\r\n this.emitDonut();\r\n }\r\n\r\n get selectedCompress() {\r\n return this.compress;\r\n }\r\n\r\n public changeCompress(a: string): void {\r\n this.compress = a;\r\n this.emitDonut();\r\n }\r\n\r\n get selectedEntropy() {\r\n return this.entropy;\r\n }\r\n\r\n public changeEntropy(a: string): void {\r\n this.entropy = a;\r\n this.emitDonut();\r\n }\r\n\r\n get selectedExitOpt() {\r\n return this.exitOpt;\r\n }\r\n\r\n public changeExitOpt(a: string): void {\r\n this.exitOpt = a;\r\n this.emitDonut();\r\n }\r\n\r\n get selectedBypass() {\r\n return this.bypass;\r\n }\r\n\r\n public changeBypass(a: string): void {\r\n this.bypass = a;\r\n this.emitDonut();\r\n }\r\n\r\n public emitDonut(): void {\r\n const donut = {\r\n format: this.format.toUpperCase(),\r\n compress: this.compress.toUpperCase(),\r\n entropy: this.entropy.toUpperCase(),\r\n exitOpt: this.exitOpt.toUpperCase(),\r\n bypass: this.bypass.toUpperCase()\r\n };\r\n\r\n this.$emit('change', donut);\r\n }\r\n\r\n public mounted(): void {\r\n this.emitDonut();\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DonutForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DonutForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DonutForm.vue?vue&type=template&id=1b8b4092&scoped=true&\"\nimport script from \"./DonutForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./DonutForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DonutForm.vue?vue&type=style&index=0&id=1b8b4092&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1b8b4092\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport axios from 'axios';\r\nimport { namespace } from 'vuex-class';\r\nimport { Component, Mixins, Prop } from 'vue-property-decorator';\r\n\r\nimport { C3Gateway, NodeKlass, C3CommandCenterOptions } from '@/types/c3types';\r\nimport {\r\n GetTypesForInterfaceKlassFn,\r\n InterfaceItem,\r\n GetCommandTargetForFn\r\n} from '@/store/C3Capability';\r\n\r\nimport C3 from '@/c3';\r\nimport Input from '@/components/form/Input.vue';\r\nimport Select from '@/components/form/Select.vue';\r\nimport DonutForm from '@/components/partial/DonutForm.vue';\r\nimport GeneralForm from '@/components/form/GeneralForm.vue';\r\nimport AddChannelForm from '@/components/form/AddChannelForm.vue';\r\nimport CommandCenterModal from './CommandCenter.vue';\r\n\r\nconst C3Module = namespace('c3Module');\r\nconst C3Capability = namespace('c3Capability');\r\nconst C3OptionsModule = namespace('optionsModule');\r\n\r\n@Component({\r\n components: {\r\n Input,\r\n Select,\r\n DonutForm,\r\n GeneralForm,\r\n CommandCenterModal\r\n }\r\n})\r\nexport default class CreateRelayModal extends Mixins(C3) {\r\n @Prop() public options!: C3CommandCenterOptions;\r\n\r\n @C3Capability.Getter public getCommandTargetFor!: GetCommandTargetForFn;\r\n @C3Capability.Getter\r\n public getTypesForInterfaceKlass!: GetTypesForInterfaceKlassFn;\r\n\r\n @C3OptionsModule.Getter public getAPIBaseUrl!: string;\r\n\r\n public formData: any = {};\r\n public relayName: string = '';\r\n public isValid: boolean = false;\r\n public targetSuffix: string = 'exe';\r\n public architecture: string = 'x64';\r\n public commandGroup: string = 'Relay';\r\n public commandTarget: string = '';\r\n public donutSelected: boolean = false;\r\n public donutFormData: object = {};\r\n\r\n get formIsValid() {\r\n return !this.isValid;\r\n }\r\n\r\n get selectedTargetSuffix() {\r\n return this.targetSuffix;\r\n }\r\n\r\n get selectedArchitecture() {\r\n return this.architecture;\r\n }\r\n\r\n get gatewayBuildsId() {\r\n if (this.gateway.buildId) {\r\n return this.gateway.buildId;\r\n }\r\n return '';\r\n }\r\n\r\n get selectedCommand() {\r\n if (this.commandTarget !== undefined) {\r\n return this.commandTarget.split('_')[2];\r\n }\r\n return '';\r\n }\r\n\r\n get selectedCommandTarget() {\r\n if (!this.commandTarget) {\r\n return this.defaultCommandTarget;\r\n }\r\n return this.commandTarget;\r\n }\r\n\r\n get commandTargetOptions() {\r\n return this.getCommandTargetFor('NewRelayCommandGroup', NodeKlass.Relay);\r\n }\r\n\r\n get selectedCommandGroup() {\r\n if (!this.commandGroup) {\r\n return this.commandGroup;\r\n }\r\n return '';\r\n }\r\n\r\n get selectedInterface() {\r\n if (this.commandTarget !== undefined) {\r\n return this.commandTarget.split('_')[1];\r\n }\r\n return '';\r\n }\r\n\r\n get defaultCommandTarget() {\r\n if (!!this.commandTargetOptions) {\r\n this.changeCommandTarget(Object.keys(this.commandTargetOptions)[0]);\r\n return Object.keys(this.commandTargetOptions)[0];\r\n }\r\n return '';\r\n }\r\n\r\n get addNewRelayToOptions() {\r\n return {\r\n formDefault: this.options.formDefault,\r\n source: this.options.source,\r\n targetGroup: 'NewRelayCommandGroup'\r\n };\r\n }\r\n\r\n public changeCommandTarget(n: string): void {\r\n this.isValid = true;\r\n this.commandTarget = n;\r\n }\r\n\r\n public mounted(): void {\r\n (window as any).addEventListener('keydown', this.handleGlobalKeyDown, true);\r\n }\r\n\r\n public beforeDestroy(): void {\r\n (window as any).removeEventListener(\r\n 'keydown',\r\n this.handleGlobalKeyDown,\r\n true\r\n );\r\n }\r\n\r\n public changeName(n: any): void {\r\n this.relayName = n.value;\r\n }\r\n\r\n public changeForm(data: any): void {\r\n this.isValid = data.valid;\r\n this.formData = data.data;\r\n }\r\n\r\n public changeDonutForm(data: any): void {\r\n this.donutFormData = data;\r\n }\r\n\r\n public changeTargetSuffix(t: string): void {\r\n this.targetSuffix = t;\r\n if (this.targetSuffix === 'shellcode') {\r\n this.donutSelected = true;\r\n } else {\r\n this.donutSelected = false;\r\n }\r\n }\r\n\r\n public changeArchitecture(a: string): void {\r\n this.architecture = a;\r\n }\r\n\r\n public createNewRelay(): void {\r\n const data = {\r\n type: this.selectedTargetSuffix,\r\n architecture: this.selectedArchitecture,\r\n parentGatewayBuildId: this.gatewayBuildsId,\r\n name: this.relayName,\r\n startupCommands: [this.formData],\r\n donut: this.donutFormData\r\n };\r\n axios({\r\n url: '/api/build/customize',\r\n method: 'POST',\r\n baseURL: this.getAPIBaseUrl,\r\n data,\r\n responseType: 'blob'\r\n })\r\n .then(response => {\r\n let fileName = '';\r\n const blob = new Blob([response.data], { type: response.data.type });\r\n const contentDisposition = response.headers['content-disposition'];\r\n const url = window.URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n\r\n link.href = url;\r\n\r\n if (contentDisposition !== undefined) {\r\n fileName = contentDisposition\r\n .split('filename=')[1]\r\n .split(';')[0]\r\n .replace(/%20/gi, '-');\r\n }\r\n\r\n if (typeof fileName !== 'string' || fileName === '') {\r\n fileName = 'relay.exe';\r\n }\r\n\r\n link.href = url;\r\n link.setAttribute('download', fileName);\r\n document.body.appendChild(link);\r\n link.click();\r\n link.remove();\r\n window.URL.revokeObjectURL(url);\r\n\r\n this.closeThisModal();\r\n })\r\n .catch(error => {\r\n this.addNotify({\r\n type: 'error',\r\n message: error.message\r\n });\r\n // tslint:disable-next-line:no-console\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateRelay.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateRelay.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CreateRelay.vue?vue&type=template&id=d88d1052&\"\nimport script from \"./CreateRelay.vue?vue&type=script&lang=ts&\"\nexport * from \"./CreateRelay.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CreateRelay.vue?vue&type=style&index=0&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3modal-body\"},[_c('div',{staticClass:\"c3modal-details\"},[_vm._m(0),_c('p',[_vm._v(\"Please setup a Gateway to begin using c3.\")]),_c('Input',{staticClass:\"form-element\",attrs:{\"legend\":\"Name / Auto Generated ID\",\"help\":\"If you do not enter a name an ID will be automatically generated.\"},on:{\"change\":function($event){return _vm.changeName($event, _vm.gatewayName)}}}),_c('div',{staticClass:\"form-row\"},[_c('Select',{staticClass:\"form-element\",attrs:{\"legend\":\"TargetSuffix\",\"selected\":_vm.selectedTargetSuffix,\"options\":{ exe: 'exe' },\"border\":true},on:{\"change\":function($event){return _vm.changeTargetSuffix($event, _vm.targetSuffix)}}}),_c('Select',{staticClass:\"form-element\",attrs:{\"legend\":\"Architecture\",\"selected\":_vm.selectedArchitecture,\"options\":{ x86: 'x86', x64: 'x64' },\"border\":true},on:{\"change\":function($event){return _vm.changeArchitecture($event, _vm.architecture)}}})],1),_c('dir',{staticClass:\"flex-row c3modal-actions\"},[_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasSelectedGateway !== false),expression:\"hasSelectedGateway !== false\"}],staticClass:\"c3btn c3btn--grey\",on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.closeThisModal()}}},[_vm._v(\"\\n Cancel\\n \")]),_c('button',{staticClass:\"c3btn c3btn pull-right\",on:{\"click\":function($event){return _vm.createNewGateway()}}},[_vm._v(\"\\n Create and download Gateway\\n \")])])],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3modal-title-wrapper\"},[_c('h1',[_vm._v(\"Gateway Setup\")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport axios from 'axios';\r\nimport { namespace } from 'vuex-class';\r\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\r\n\r\nimport { GatewayHeader } from '@/types/c3types';\r\n\r\nimport C3 from '@/c3';\r\nimport Input from '@/components/form/Input.vue';\r\nimport Select from '@/components/form/Select.vue';\r\n\r\nconst C3Module = namespace('c3Module');\r\nconst C3OptionsModule = namespace('optionsModule');\r\n\r\n@Component({\r\n components: {\r\n Input,\r\n Select\r\n }\r\n})\r\nexport default class CreateGatewayModal extends Mixins(C3) {\r\n @Prop() public targetId!: string;\r\n\r\n @C3Module.Getter public getGateways!: GatewayHeader[];\r\n\r\n @C3OptionsModule.Getter public getAPIBaseUrl!: string;\r\n\r\n public gatewayName: string = '';\r\n public targetSuffix: string = 'exe';\r\n public architecture: string = 'x64';\r\n\r\n get selectedTargetSuffix() {\r\n return this.targetSuffix;\r\n }\r\n\r\n get selectedArchitecture() {\r\n return this.architecture;\r\n }\r\n\r\n get hasSelectedGateway() {\r\n return this.getGateways.length > 0;\r\n }\r\n\r\n public mounted(): void {\r\n (window as any).addEventListener('keydown', this.handleGlobalKeyDown, true);\r\n }\r\n\r\n public beforeDestroy(): void {\r\n (window as any).removeEventListener(\r\n 'keydown',\r\n this.handleGlobalKeyDown,\r\n true\r\n );\r\n }\r\n\r\n public changeName(n: any): void {\r\n this.gatewayName = n.value;\r\n }\r\n\r\n public changeTargetSuffix(t: string): void {\r\n this.targetSuffix = t;\r\n }\r\n\r\n public changeArchitecture(a: string): void {\r\n this.architecture = a;\r\n }\r\n\r\n public createNewGateway(): void {\r\n let apiUrl = `/api/gateway/exe/${this.architecture}`;\r\n if (this.gatewayName && this.gatewayName !== '') {\r\n apiUrl = apiUrl + `?name=${this.gatewayName}`;\r\n }\r\n axios({\r\n url: apiUrl,\r\n method: 'GET',\r\n baseURL: this.getAPIBaseUrl,\r\n responseType: 'blob'\r\n })\r\n .then(response => {\r\n const blob = new Blob([response.data], { type: response.data.type });\r\n const url = window.URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n const contentDisposition = response.headers['content-disposition'];\r\n let fileName = '';\r\n\r\n if (contentDisposition !== undefined) {\r\n fileName = contentDisposition\r\n .split('filename=')[1]\r\n .split(';')[0]\r\n .replace(/%20/gi, '-');\r\n }\r\n\r\n if (typeof fileName !== 'string' || fileName === '') {\r\n fileName = 'gateway.exe';\r\n }\r\n\r\n link.href = url;\r\n link.setAttribute('download', fileName);\r\n document.body.appendChild(link);\r\n link.click();\r\n link.remove();\r\n window.URL.revokeObjectURL(url);\r\n\r\n this.closeThisModal();\r\n })\r\n .catch(error => {\r\n this.addNotify({\r\n type: 'error',\r\n message: error.message\r\n });\r\n // tslint:disable-next-line:no-console\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateGateway.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateGateway.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CreateGateway.vue?vue&type=template&id=10e920f4&\"\nimport script from \"./CreateGateway.vue?vue&type=script&lang=ts&\"\nexport * from \"./CreateGateway.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3modal-body\"},[_c('div',{staticClass:\"c3modal-header\"},[_c('h1',[_vm._v(\"Source Relay & Interface\")]),_c('div',{staticClass:\"flex-row\"},[_c('div',{staticClass:\"details\"},[_c('p',[_vm._v(\"\\n Relay \"),_c('span',[_vm._v(\" \"+_vm._s(_vm.relay.name)+\" / \"+_vm._s(_vm.relay.id))])]),_c('p',[_vm._v(\"\\n Build ID \"),_c('span',[_vm._v(_vm._s(_vm.relay.buildId))])]),_c('p',[_vm._v(\"\\n \"+_vm._s(_vm.c3Interface.klass.toLowerCase())+\" ID\\n \"),_c('span',[_vm._v(_vm._s(_vm.c3Interface.id || ''))])]),_c('p',[_vm._v(\"\\n \"+_vm._s(_vm.c3Interface.klass.toLowerCase())+\" Type\\n \"),_c('span',[_vm._v(_vm._s(_vm.interfaceTypeName(_vm.c3Interface)))])])])])]),_c('div',{staticClass:\"c3modal-details\"},[_c('div',{staticStyle:{\"padding-bottom\":\"24px\"}},[_c('h1',[_vm._v(\"Select target Relay\")]),_c('Select',{staticClass:\"form-element\",attrs:{\"legend\":\"Target Relay\",\"selected\":_vm.selectedRelay,\"options\":_vm.generateRelayList(),\"border\":true},on:{\"change\":function($event){return _vm.changeTargetRelay($event, _vm.targetRelay)}}})],1),_c('div',{staticClass:\"c3modal-form\"},[_c('CommandCenterModal',{staticClass:\"embeded-modal\",attrs:{\"target-id\":_vm.selectedRelay,\"embeded\":false,\"options\":_vm.addNewRelayGroupToOptions},on:{\"change\":function($event){return _vm.changeForm($event, _vm.formData)}}})],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { namespace } from 'vuex-class';\r\nimport { Component, Mixins, Prop } from 'vue-property-decorator';\r\n\r\nimport {\r\n C3Gateway,\r\n NodeKlass,\r\n C3Node,\r\n C3Relay,\r\n nullNode\r\n} from '@/types/c3types';\r\nimport {\r\n GetTypesForInterfaceKlassFn,\r\n InterfaceItem,\r\n GetCommandTargetForFn\r\n} from '@/store/C3Capability';\r\n\r\nimport C3 from '@/c3';\r\nimport Input from '@/components/form/Input.vue';\r\nimport Select from '@/components/form/Select.vue';\r\nimport GeneralForm from '@/components/form/GeneralForm.vue';\r\nimport AddChannelForm from '@/components/form/AddChannelForm.vue';\r\nimport CommandCenterModal from './CommandCenter.vue';\r\nimport {\r\n GetRelayFn,\r\n GetInterfaceFn,\r\n GetInterfacesForFn\r\n} from '@/store/C3Module';\r\n\r\nconst C3Module = namespace('c3Module');\r\nconst C3Capability = namespace('c3Capability');\r\n\r\n@Component({\r\n components: {\r\n Input,\r\n Select,\r\n GeneralForm,\r\n CommandCenterModal\r\n }\r\n})\r\nexport default class ConnectRelayModal extends Mixins(C3) {\r\n @Prop() public targetId!: string;\r\n @Prop() public options!: any;\r\n\r\n @C3Capability.Getter public getCommandTargetFor!: GetCommandTargetForFn;\r\n @C3Capability.Getter\r\n public getTypesForInterfaceKlass!: GetTypesForInterfaceKlassFn;\r\n\r\n @C3Module.Getter public getRelays!: C3Node[];\r\n @C3Module.Getter public getRelay!: GetRelayFn;\r\n @C3Module.Getter public getInterface!: GetInterfaceFn;\r\n @C3Module.Getter public getInterfacesFor!: GetInterfacesForFn;\r\n\r\n public formData: any = {};\r\n public isValid: boolean = false;\r\n public targetRelay: string = '';\r\n\r\n get relay() {\r\n return this.sourceRelay;\r\n }\r\n\r\n get c3Interface() {\r\n return this.sourceInterface;\r\n }\r\n\r\n get hasOptions() {\r\n if (this.options) {\r\n return JSON.stringify(this.options) === '{}' ? false : true;\r\n }\r\n return false;\r\n }\r\n\r\n get sourceRelay() {\r\n if (this.hasOptions) {\r\n if (!!this.options.source && !!this.options.source.relay) {\r\n return this.options.source.relay;\r\n }\r\n }\r\n return nullNode;\r\n }\r\n\r\n get sourceInterface() {\r\n if (this.hasOptions) {\r\n if (!!this.options.source && !!this.options.source.interface) {\r\n return this.options.source.interface;\r\n }\r\n }\r\n return nullNode;\r\n }\r\n\r\n // check the form is valid\r\n get formIsValid() {\r\n return !this.isValid;\r\n }\r\n\r\n // hold the actual selected relay\r\n get selectedRelay() {\r\n return this.targetRelay;\r\n }\r\n\r\n get addNewRelayGroupToOptions() {\r\n return {\r\n formDefault: this.options.formDefault,\r\n source: this.options.source,\r\n targetGroup: 'NewRelayCommandGroup'\r\n };\r\n }\r\n\r\n public generateRelayList(): any {\r\n const selectOptions: any = {};\r\n let first: string = '';\r\n let optionsCount = 0;\r\n const nullLiteral: string = 'null';\r\n const nodes = this.getRelays;\r\n nodes.forEach((node, index) => {\r\n if (node.id !== this.relay.id) {\r\n optionsCount++;\r\n selectOptions[node.id] = `${node.id} ${\r\n node.name ? '- ' + node.name + ' ' : ''\r\n }`;\r\n if (first === '') {\r\n first = node.id;\r\n }\r\n }\r\n });\r\n if (optionsCount === 0) {\r\n selectOptions[nullLiteral] = `Nothing to select...`;\r\n first = nullLiteral;\r\n }\r\n // select the first relay if nothing selected yet\r\n if (this.targetRelay === '') {\r\n this.targetRelay = first;\r\n }\r\n return selectOptions;\r\n }\r\n\r\n get showConnectRelayButton() {\r\n return true;\r\n }\r\n\r\n public mounted(): void {\r\n (window as any).addEventListener('keydown', this.handleGlobalKeyDown, true);\r\n }\r\n\r\n public beforeDestroy(): void {\r\n (window as any).removeEventListener(\r\n 'keydown',\r\n this.handleGlobalKeyDown,\r\n true\r\n );\r\n }\r\n\r\n public changeForm(data: any): void {\r\n this.isValid = data.valid;\r\n this.formData = data.data;\r\n }\r\n\r\n public changeTargetRelay(t: string): void {\r\n this.targetRelay = t;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectRelays.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectRelays.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ConnectRelays.vue?vue&type=template&id=770e143b&\"\nimport script from \"./ConnectRelays.vue?vue&type=script&lang=ts&\"\nexport * from \"./ConnectRelays.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ConnectRelays.vue?vue&type=style&index=0&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3modal-body\"},[_c('div',{staticClass:\"c3modal-details\"},[_c('h1',{staticClass:\"c3network-title\"},[_vm._v(\"\\n Network Configuration\\n \")]),_c('div',{staticClass:\"form-row \"},[_c('Input',{key:'c3-url-field',staticClass:\"form-element\",attrs:{\"legend\":\"Url\",\"value\":_vm.c3Url,\"disabled\":false,\"validate\":\"required\",\"name\":\"Url\"},on:{\"change\":function($event){return _vm.setUrl($event, _vm.c3Url)}}})],1),_c('div',{staticClass:\"form-row\"},[_c('Input',{key:'c3-port-field',staticClass:\"form-element\",attrs:{\"legend\":\"Port\",\"value\":_vm.c3Port,\"disabled\":false,\"validate\":\"required|numeric|max_value:65535\",\"name\":\"Port\"},on:{\"change\":function($event){return _vm.setPort($event, _vm.c3Port)}}})],1),_c('dir',{staticClass:\"flex-row c3modal-actions\"},[_c('button',{staticClass:\"c3btn c3btn--grey\",on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.closeThisModal()}}},[_vm._v(\"\\n Cancel\\n \")]),_c('button',{staticClass:\"c3btn c3btn pull-right\",attrs:{\"disabled\":!_vm.isFormValid},on:{\"click\":function($event){return _vm.saveNetworkConfig()}}},[_vm._v(\"\\n Save Confing\\n \")])])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { namespace } from 'vuex-class';\r\nimport { Component, Mixins } from 'vue-property-decorator';\r\n\r\nimport C3 from '@/c3';\r\nimport { SetBaseURLFn, SetBasePortFn } from '@/store/OptionsModule';\r\nimport Input from '../form/Input.vue';\r\n\r\nconst C3OptionsModule = namespace('optionsModule');\r\n\r\n@Component({\r\n components: {\r\n Input\r\n }\r\n})\r\nexport default class OptionsModal extends Mixins(C3) {\r\n @C3OptionsModule.Getter public getAPIUrl!: string;\r\n @C3OptionsModule.Getter public getAPIPort!: string;\r\n @C3OptionsModule.Mutation public setBaseURL!: SetBaseURLFn;\r\n @C3OptionsModule.Mutation public setBasePort!: SetBasePortFn;\r\n\r\n public c3Url: string = 'http://localhost';\r\n public c3UrlIsValid: boolean = true;\r\n public c3Port: number = 52935;\r\n public c3PortIsValid: boolean = true;\r\n\r\n get getUrl() {\r\n return this.getAPIUrl;\r\n }\r\n\r\n get getPort() {\r\n return this.getAPIPort;\r\n }\r\n\r\n public setUrl(url: any) {\r\n if (url.valid) {\r\n this.c3UrlIsValid = true;\r\n this.c3Url = url.value;\r\n } else {\r\n this.c3UrlIsValid = false;\r\n }\r\n }\r\n\r\n public setPort(port: any) {\r\n if (port.valid) {\r\n this.c3PortIsValid = true;\r\n this.c3Port = parseInt(port.value, 10);\r\n } else {\r\n this.c3PortIsValid = false;\r\n }\r\n }\r\n\r\n get isFormValid() {\r\n return this.c3UrlIsValid && this.c3PortIsValid;\r\n }\r\n\r\n public saveNetworkConfig(): void {\r\n if (this.isFormValid) {\r\n this.setBaseURL(this.c3Url);\r\n this.setBasePort(this.c3Port);\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Options.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Options.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Options.vue?vue&type=template&id=9e0c4068&\"\nimport script from \"./Options.vue?vue&type=script&lang=ts&\"\nexport * from \"./Options.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { namespace } from 'vuex-class';\r\nimport { Component, Mixins } from 'vue-property-decorator';\r\n\r\nimport { NodeKlass } from '@/types/c3types';\r\nimport { C3Modal } from '@/store/ModalModule';\r\n\r\nimport C3 from '@/c3';\r\nimport RelayModal from '@/components/modals/Relay.vue';\r\nimport CommandModal from '@/components/modals/Command.vue';\r\nimport GatewayModal from '@/components/modals/Gateway.vue';\r\nimport InterfaceModal from '@/components/modals/Interface.vue';\r\nimport CreateRelayModal from '@/components/modals/CreateRelay.vue';\r\nimport CommandCenterModal from '@/components/modals/CommandCenter.vue';\r\nimport CreateGatewayModal from '@/components/modals/CreateGateway.vue';\r\nimport ConnectRelayModal from '@/components/modals/ConnectRelays.vue';\r\nimport OptionsModal from '@/components/modals/Options.vue';\r\n\r\nconst ModalModule = namespace('modalModule');\r\n\r\n@Component({\r\n components: {\r\n RelayModal,\r\n CommandModal,\r\n GatewayModal,\r\n OptionsModal,\r\n InterfaceModal,\r\n CreateRelayModal,\r\n ConnectRelayModal,\r\n CommandCenterModal,\r\n CreateGatewayModal\r\n }\r\n})\r\nexport default class Modal extends Mixins(C3) {\r\n @ModalModule.Getter public activeModal!: C3Modal;\r\n\r\n get currentModal() {\r\n return this.activeModal;\r\n }\r\n\r\n get targetUid() {\r\n return this.activeModal.modalTargetId || '';\r\n }\r\n\r\n public isGateway(): boolean {\r\n return this.activeModal.modalTarget === NodeKlass.Gateway;\r\n }\r\n\r\n public isRelay(): boolean {\r\n return this.activeModal.modalTarget === NodeKlass.Relay;\r\n }\r\n\r\n public isChannel(): boolean {\r\n return this.activeModal.modalTarget === NodeKlass.Channel;\r\n }\r\n\r\n public isPeripheral(): boolean {\r\n return this.activeModal.modalTarget === NodeKlass.Peripheral;\r\n }\r\n\r\n public isConnector(): boolean {\r\n return this.activeModal.modalTarget === NodeKlass.Connector;\r\n }\r\n\r\n public isInterface(): boolean {\r\n return (\r\n this.activeModal.modalTarget === NodeKlass.Channel ||\r\n this.activeModal.modalTarget === NodeKlass.Peripheral ||\r\n this.activeModal.modalTarget === NodeKlass.Connector\r\n );\r\n }\r\n\r\n public options(): any {\r\n return this.activeModal.modalOptions;\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Modal.vue?vue&type=template&id=09edb09d&\"\nimport script from \"./Modal.vue?vue&type=script&lang=ts&\"\nexport * from \"./Modal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Modal.vue?vue&type=style&index=0&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3canvas\",class:{ 'c3canvas-fs': _vm.isFullscreen }},[_c('div',{ref:\"c3canvas\",attrs:{\"id\":\"c3canvas\"}}),_c('span',{staticClass:\"c3canvas-fs-btn icon\",class:_vm.fullscreenIcon,on:{\"click\":function($event){_vm.isFullscreen = !_vm.isFullscreen}}}),_c('span',{staticClass:\"c3canvas-more-btn icon more\"}),_c('ul',{staticClass:\"c3canvas-menu\"},[_c('li',{staticClass:\"c3canvas-menu-item\"},[_c('Toggle',{key:\"toggle-tree-view-button\",attrs:{\"legend\":\"Tree View\",\"checked\":_vm.getTreeView,\"disabled\":false},on:{\"change\":_vm.toggleTreeView}})],1),_c('li',{staticClass:\"c3canvas-menu-item\"},[_c('Toggle',{key:\"toggle-interfaces-button\",attrs:{\"legend\":\"Interfaces\",\"checked\":_vm.getInterfaces,\"disabled\":false},on:{\"change\":function($event){return _vm.toggleInterfaces($event)}}})],1),_c('li',{staticClass:\"c3canvas-menu-item\"},[_c('Toggle',{key:\"toggle-labels-button\",attrs:{\"legend\":\"Labels\",\"checked\":_vm.getShowLabels,\"disabled\":false},on:{\"change\":function($event){return _vm.toggleLabels($event)}}})],1),_c('li',{staticClass:\"c3canvas-menu-item\"},[_c('Toggle',{key:\"toggle-physics-button\",attrs:{\"legend\":\"Physics\",\"checked\":_vm.getPhysics,\"disabled\":false},on:{\"change\":function($event){return _vm.togglePhysics($event)}}})],1),_c('li',{staticClass:\"c3canvas-menu-item\"},[_c('Toggle',{key:\"toggle-smooth-edges\",attrs:{\"legend\":\"Smooth Edges\",\"checked\":_vm.getSmoothEdges,\"disabled\":false},on:{\"change\":function($event){return _vm.toggleSmoothEdges($event)}}})],1),_c('li',{staticClass:\"c3canvas-menu-item\",on:{\"click\":_vm.reloadGraph}},[_vm._v(\"Reload Graph\")]),_c('li',{staticClass:\"c3canvas-menu-divider\"}),_c('li',{staticClass:\"c3canvas-menu-item\",on:{\"click\":function($event){return _vm.openModal('', 'CREATE_GATEWAY')}}},[_vm._v(\"\\n New Gateway\\n \")]),_c('li',{staticClass:\"c3canvas-menu-item\",on:{\"click\":function($event){return _vm.openModal('', 'CREATE_RELAY')}}},[_vm._v(\"\\n New Relay\\n \")])]),_vm._m(0)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"progress-bar\"},[_c('div',{staticClass:\"progress-bar-status\",attrs:{\"id\":\"progress-bar-status\"}})])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3checkbox-wrapper\"},[_c('div',{staticClass:\"c3checkbox-row\",on:{\"click\":_vm.clickOnLabel}},[_vm._v(\"\\n \"+_vm._s(_vm.legend)+\"  \\n \"),(_vm.hasHelp)?_c('span',{staticClass:\"icon help\"},[_c('div',{staticClass:\"help-text\"},[_vm._v(_vm._s(_vm.help))])]):_vm._e()]),_c('div',{staticClass:\"c3toggle\",class:{ disabled: _vm.isDisabled }},[_c('input',_vm._b({ref:\"booleanCheckbox\",staticClass:\"c3toggle-input\",attrs:{\"type\":\"checkbox\",\"id\":_vm.inputUID,\"name\":_vm.inputUID,\"disabled\":_vm.disabled},domProps:{\"checked\":_vm.getIsChecked},on:{\"change\":_vm.toogleToggle}},'input',_vm.$attrs,false)),_c('label',{staticClass:\"c3toggle-label\",on:{\"click\":_vm.clickOnLabel}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\r\n\r\nimport C3FormElement from '@/components/form/C3FormElement';\r\n\r\nimport C3 from '@/c3';\r\n\r\n@Component\r\nexport default class Toggle extends Mixins(C3, C3FormElement) {\r\n @Prop() public checked!: string;\r\n\r\n public isChecked: boolean = this.getIsChecked;\r\n\r\n get getIsChecked() {\r\n if (\r\n this.checked &&\r\n typeof this.checked === 'boolean' &&\r\n this.checked === true\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public mounted(): void {\r\n (this.$refs\r\n .booleanCheckbox as HTMLInputElement).checked = this.getIsChecked;\r\n }\r\n\r\n // boolean true or false, nothing to validate here\r\n public toogleToggle(): void {\r\n this.isChecked = !this.isChecked;\r\n this.$emit('change', {\r\n value: this.isChecked === true ? true : false,\r\n valid: true\r\n });\r\n }\r\n\r\n public clickOnLabel(): void {\r\n this.toogleToggle();\r\n // (this.$refs.booleanCheckbox as HTMLInputElement).checked = this.isChecked;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toggle.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toggle.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Toggle.vue?vue&type=template&id=999b190e&scoped=true&\"\nimport script from \"./Toggle.vue?vue&type=script&lang=ts&\"\nexport * from \"./Toggle.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Toggle.vue?vue&type=style&index=0&id=999b190e&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"999b190e\",\n null\n \n)\n\nexport default component.exports","import { namespace } from 'vuex-class';\r\nimport { Vue, Component } from 'vue-property-decorator';\r\nimport { NodeKlass, C3Node, C3Edge, nullNode } from '@/types/c3types';\r\n\r\nconst C3Module = namespace('c3Module');\r\n\r\n/**\r\n * Path finding Class for Highlight the path on the graph from the selected node\r\n * to the gateway\r\n *\r\n * @export\r\n * @class Path\r\n * @extends {Vue}\r\n */\r\n@Component\r\nexport default class FindThePathToGateway extends Vue {\r\n @C3Module.Getter public getNodes!: C3Node[];\r\n @C3Module.Getter public getEdges!: C3Edge[];\r\n\r\n private startNode: C3Node = nullNode;\r\n private paths: string[] = [];\r\n private nextNode!: C3Node;\r\n\r\n get targetNode() {\r\n return (\r\n this.getNodes.find(node => {\r\n return node.klass === NodeKlass.Gateway;\r\n }) || nullNode\r\n );\r\n }\r\n\r\n public findPath(nodeId: string) {\r\n this.setStartNode(nodeId);\r\n\r\n this.paths = [];\r\n\r\n this.paths.push(this.startNode!.uid);\r\n\r\n let iterations = 0;\r\n\r\n if (this.hasPathEndpoints()) {\r\n return [];\r\n }\r\n\r\n while (!!this.startNode && this.startNode.uid !== this.targetNode.uid) {\r\n // set the next node equal to the current node\r\n this.nextNode = this.startNode;\r\n\r\n // set the next node if the start node is channel\r\n this.handleNodeChannel();\r\n\r\n // set the next node if the start node is connector or pheripheral\r\n this.handleConnectorAndPeripheral();\r\n\r\n // set the next node if the start node is relay\r\n this.handleRelay();\r\n\r\n // set start node to the next node towards the gateway\r\n this.setStartNode(this.nextNode.uid);\r\n\r\n // If something goes wrong, don't let the browser to stuck in an infinite loop.\r\n iterations++;\r\n\r\n // check we found the gateway or accidentaly stuck inside an infinite loop.\r\n this.checkEndLoop(iterations);\r\n }\r\n\r\n return this.paths;\r\n }\r\n\r\n // find the start node by Id and set it to the startNode\r\n private setStartNode(nodeId: string): void {\r\n this.startNode =\r\n this.getNodes.find(node => {\r\n return node.uid === nodeId;\r\n }) || nullNode;\r\n }\r\n\r\n // check booth start end target node has a valid NodeKlass\r\n private hasPathEndpoints(): boolean {\r\n return (\r\n this.startNode.klass === NodeKlass.Undefined ||\r\n this.targetNode.klass === NodeKlass.Undefined\r\n );\r\n }\r\n\r\n private handleNodeChannel() {\r\n return this.isChannel(this.startNode) && this.setNextNodeForChannel();\r\n }\r\n\r\n private handleConnectorAndPeripheral() {\r\n return (\r\n this.isStartNodeConnectorOrPeripheral() && this.setNextAndParentNode()\r\n );\r\n }\r\n\r\n private handleRelay() {\r\n return this.isStartNodeRelay() && this.setNextNodeForRelay();\r\n }\r\n\r\n // don't let the loop run more than 100 times (possible infinite loop)\r\n private checkEndLoop(iterations: number) {\r\n if (iterations > 100) {\r\n this.paths = [];\r\n this.setStartNode(this.targetNode.uid);\r\n }\r\n }\r\n\r\n // get the parent node for the startNode\r\n private getParentNode(): C3Node {\r\n return (\r\n this.getNodes.find(node => {\r\n return node.uid === this.startNode!.parentId;\r\n }) || nullNode\r\n );\r\n }\r\n\r\n private isStartNodeConnectorOrPeripheral(): boolean {\r\n return (\r\n this.startNode.klass === NodeKlass.Peripheral ||\r\n this.startNode.klass === NodeKlass.Connector\r\n );\r\n }\r\n\r\n private isChannel(node: C3Node): boolean {\r\n return node.klass === NodeKlass.Channel;\r\n }\r\n\r\n private isStartNodeRelay(): boolean {\r\n return this.startNode.klass === NodeKlass.Relay;\r\n }\r\n\r\n private isReturnChannel(node: C3Node): boolean {\r\n return node.isReturnChannel === true;\r\n }\r\n\r\n // find all the neighbours for the channel by the edges\r\n private getChannelNeighbours(): C3Edge[] {\r\n return this.getEdges.filter(edge => {\r\n return (\r\n edge.to === this.startNode!.uid || edge.from === this.startNode!.uid\r\n );\r\n });\r\n }\r\n\r\n // find all the neighbours for the relay by the edges\r\n private getRelayNeighbours(): C3Edge[] {\r\n return this.getEdges.filter(edge => {\r\n return edge.from === this.startNode!.uid;\r\n });\r\n }\r\n\r\n // look for possible neighbour on the edges by the uid\r\n // target: Enum ['from', 'to']\r\n private getPossibeNext(neighbour: C3Edge, target: string): C3Node {\r\n return (\r\n this.getNodes.find(node => {\r\n return node.uid === neighbour[target];\r\n }) || nullNode\r\n );\r\n }\r\n\r\n private insertParentNodeToPaths() {\r\n return (\r\n this.getParentNode().klass !== NodeKlass.Undefined &&\r\n this.paths.push(this.nextNode!.uid)\r\n );\r\n }\r\n\r\n private setNextAndParentNode(): void {\r\n // The parent is the way to find the gateway\r\n this.nextNode = this.getParentNode();\r\n this.insertParentNodeToPaths();\r\n }\r\n\r\n private setAndInsertNextNode(node: C3Node): void {\r\n // We found the way to the gateway\r\n this.nextNode = node;\r\n this.paths.push(node.uid);\r\n }\r\n\r\n // for not return channel the parent is the next node is the next step towards the gateway\r\n private setNextNodeForChannel(): void {\r\n if (this.isReturnChannel(this.startNode)) {\r\n this.setNextNodeForReturnChannel();\r\n } else {\r\n this.setNextAndParentNode();\r\n }\r\n }\r\n\r\n private setNextNodeForReturnChannel(): void {\r\n // The parent is in the oposite direction as for the normal channel\r\n // and we using the edge to get the path\r\n this.getChannelNeighbours().forEach(neighbour => {\r\n const possibleNext = this.getPossibeNext(neighbour, 'from');\r\n if (this.isChannel(possibleNext)) {\r\n this.setAndInsertNextNode(possibleNext);\r\n }\r\n });\r\n }\r\n\r\n // for relay we use the edge to found the way to the gateway\r\n private setNextNodeForRelay(): void {\r\n this.getRelayNeighbours().forEach(neighbour => {\r\n const possibleNext = this.getPossibeNext(neighbour, 'to');\r\n if (this.isReturnChannel(possibleNext)) {\r\n this.setAndInsertNextNode(possibleNext);\r\n }\r\n });\r\n }\r\n}\r\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { namespace } from 'vuex-class';\r\nimport { VisOptions } from '@/options';\r\nimport { Component, Watch, Mixins } from 'vue-property-decorator';\r\nimport { DataSet, DataView, Network, Options } from 'vis';\r\n\r\nimport { NodeKlass, C3Node, C3Edge, nullNode } from '@/types/c3types';\r\nimport { GetNodeKlassFn, FetchC3DataFn } from '@/store/C3Module';\r\nimport {\r\n SetOptionslFn,\r\n SetGraphDataFn,\r\n GenerateNodesFn,\r\n GenerateEdgesFn,\r\n SetOptionFn\r\n} from '@/store/VisModule';\r\n\r\nimport C3 from '@/c3';\r\nimport Toggle from '@/components/form/Toggle.vue';\r\nimport FindThePathToGateway from '@/lib/path';\r\n\r\nconst C3Module = namespace('c3Module');\r\nconst VisModule = namespace('visModule');\r\n\r\n@Component({\r\n components: {\r\n Toggle\r\n }\r\n})\r\nexport default class Canvas extends Mixins(C3, FindThePathToGateway) {\r\n get fullscreenIcon() {\r\n return this.isFullscreen ? 'zoomin' : 'fullscreen';\r\n }\r\n\r\n get graphOtions() {\r\n return this.getOptions;\r\n }\r\n\r\n get graphData() {\r\n return this.getGrapData;\r\n }\r\n\r\n get getTreeView() {\r\n return this.graphOtions.layout.hierarchical.enabled;\r\n }\r\n\r\n get getPhysics() {\r\n return this.graphOtions.physics.enabled;\r\n }\r\n\r\n get getInterfaces() {\r\n return this.getShowInterfaces;\r\n }\r\n\r\n get getSmoothEdges() {\r\n return this.isSmooth;\r\n }\r\n\r\n @VisModule.Action public generateNodes!: GenerateNodesFn;\r\n @VisModule.Action public generateEdges!: GenerateEdgesFn;\r\n\r\n @VisModule.Getter public getVisNodes!: any;\r\n @VisModule.Getter public getVisEdges!: any;\r\n @VisModule.Getter public getGrapData!: object;\r\n @VisModule.Getter public getOptions!: Options;\r\n @VisModule.Getter public getShowInterfaces!: boolean;\r\n @VisModule.Getter public getShowLabels!: boolean;\r\n\r\n @VisModule.Mutation public setPhysics!: SetOptionFn;\r\n @VisModule.Mutation public setTreeView!: SetOptionFn;\r\n @VisModule.Mutation public setOptions!: SetOptionslFn;\r\n @VisModule.Mutation public setSmoothEdge!: SetOptionFn;\r\n @VisModule.Mutation public setGraphData!: SetGraphDataFn;\r\n @VisModule.Mutation public setShowInterfaces!: SetOptionFn;\r\n @VisModule.Mutation public setShowLabels!: SetOptionFn;\r\n\r\n @C3Module.Action public fetchGateway!: FetchC3DataFn;\r\n\r\n @C3Module.Getter public getNodeKlass!: GetNodeKlassFn;\r\n\r\n public container: any = null;\r\n public isSmooth: boolean = false;\r\n public isFullscreen: boolean = false;\r\n public lastClickNodeId: string = '';\r\n\r\n public mounted(): void {\r\n this.createVisCanvas();\r\n }\r\n\r\n public createVisCanvas(): void {\r\n this.container = this.$refs.c3canvas;\r\n (window as any).networkc3 = new Network(\r\n this.container,\r\n this.getGrapData,\r\n this.graphOtions\r\n );\r\n\r\n (window as any).networkc3.on('click', (params: any) => {\r\n const nodeid = (window as any).networkc3.getNodeAt(params.pointer.DOM);\r\n if (this.lastClickNodeId === nodeid) {\r\n if (!!nodeid) {\r\n this.openModal(nodeid, this.nodeKlass(nodeid));\r\n }\r\n } else {\r\n this.lastClickNodeId = nodeid;\r\n }\r\n this.deselectNodes();\r\n this.clearPath();\r\n if (!!nodeid) {\r\n this.selectNode(nodeid);\r\n }\r\n });\r\n\r\n (window as any).networkc3.on('startStabilizing', (params: any) => {\r\n const progressBarStatus = document.getElementById('progress-bar-status');\r\n if (progressBarStatus !== null) {\r\n progressBarStatus.style.width = '1px';\r\n }\r\n });\r\n\r\n (window as any).networkc3.on('stabilizationProgress', (params: any) => {\r\n const status = Math.floor(\r\n params.iterations / this.getOptions.physics.stabilization.updateInterval\r\n );\r\n const progressBarStatus = document.getElementById('progress-bar-status');\r\n if (progressBarStatus !== null) {\r\n progressBarStatus.style.width = status + '%';\r\n }\r\n });\r\n\r\n (window as any).networkc3.on('stabilized', (params: any) => {\r\n const progressBar = document.getElementById('progress-bar-status');\r\n if (progressBar !== null) {\r\n progressBar.style.width = '1px';\r\n }\r\n });\r\n }\r\n\r\n public nodeKlass(nodeid: string): NodeKlass {\r\n return this.getNodeKlass(nodeid);\r\n }\r\n\r\n public toggleTreeView(b: any): void {\r\n this.setTreeView(b.value);\r\n (window as any).networkc3.setOptions(this.graphOtions);\r\n this.setGraphData();\r\n }\r\n\r\n public togglePhysics(b: any): void {\r\n this.setPhysics(b.value);\r\n (window as any).networkc3.setOptions(this.graphOtions);\r\n this.setGraphData();\r\n }\r\n\r\n public toggleInterfaces(b: any): void {\r\n this.setShowInterfaces(b.value);\r\n this.generateNodes();\r\n this.generateEdges();\r\n this.setGraphData();\r\n }\r\n\r\n public toggleLabels(b: any): void {\r\n this.setShowLabels(b.value);\r\n this.generateNodes();\r\n this.generateEdges();\r\n this.setGraphData();\r\n }\r\n\r\n public toggleSmoothEdges(b: any): void {\r\n this.isSmooth = b.value;\r\n this.setSmoothEdge(b.value);\r\n (window as any).networkc3.setOptions(this.graphOtions);\r\n this.setGraphData();\r\n }\r\n\r\n public reloadGraph(): void {\r\n const o = this.graphOtions;\r\n o.layout.randomSeed = Math.floor(Math.random() * 785496) + 1;\r\n (window as any).networkc3.setOptions(o);\r\n this.setGraphData();\r\n }\r\n\r\n public deselectNodes(): void {\r\n this.getVisNodes.forEach((nodeId: any) => {\r\n (window as any).networkc3.body.data.nodes.update([\r\n {\r\n id: nodeId.id,\r\n shadow: {\r\n enabled: false\r\n }\r\n }\r\n ]);\r\n });\r\n }\r\n\r\n public clearPath(): void {\r\n this.getVisEdges.forEach((edge: any) => {\r\n const tmpEdge = (window as any).networkc3.body.data.edges.get(edge.id);\r\n if (\r\n (!!tmpEdge.color && Object.keys(tmpEdge.color).length !== 0) ||\r\n (!!tmpEdge.width && tmpEdge.width !== 1)\r\n ) {\r\n (window as any).networkc3.body.data.edges.update([\r\n {\r\n id: edge.id,\r\n color: {},\r\n width: 1\r\n }\r\n ]);\r\n }\r\n });\r\n }\r\n\r\n public selectNode(nodeId: string): void {\r\n (window as any).networkc3.body.data.nodes.update([\r\n {\r\n id: nodeId,\r\n shadow: {\r\n enabled: true\r\n }\r\n }\r\n ]);\r\n\r\n const paths = this.getPathsFromGateway(nodeId);\r\n this.getVisEdges.forEach((edge: any) => {\r\n if (!!paths && paths.includes(edge.from) && paths.includes(edge.to)) {\r\n (window as any).networkc3.body.data.edges.update([\r\n {\r\n id: edge.id,\r\n color: {\r\n color: '#AB61F6'\r\n },\r\n width: 4\r\n }\r\n ]);\r\n }\r\n });\r\n }\r\n\r\n public getPathsFromGateway(nodeId: string) {\r\n return this.findPath(nodeId);\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Canvas.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Canvas.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Canvas.vue?vue&type=template&id=32d34af7&\"\nimport script from \"./Canvas.vue?vue&type=script&lang=ts&\"\nexport * from \"./Canvas.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Canvas.vue?vue&type=style&index=0&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3footer\"},[_vm._v(\"C3 dashboard - Labs\")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\r\nimport Vue from 'vue';\r\nimport { Component } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class Footer extends Vue {}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Footer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Footer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Footer.vue?vue&type=template&id=b810e06a&scoped=true&\"\nimport script from \"./Footer.vue?vue&type=script&lang=ts&\"\nexport * from \"./Footer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Footer.vue?vue&type=style&index=0&id=b810e06a&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b810e06a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3navbar\"},[_c('img',{staticClass:\"c3navbar-logo\",attrs:{\"alt\":\"C3 logo\",\"src\":require(\"@/assets/logo.svg\")}}),_c('div',{staticClass:\"c3navbar-left\"},[_c('span',{staticClass:\"c3navbar-left--title\"},[_vm._v(\"C3\")])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\r\nimport Vue from 'vue';\r\nimport { Component } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class Navbar extends Vue {}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navbar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navbar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Navbar.vue?vue&type=template&id=6bb0e8c9&scoped=true&\"\nimport script from \"./Navbar.vue?vue&type=script&lang=ts&\"\nexport * from \"./Navbar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Navbar.vue?vue&type=style&index=0&id=6bb0e8c9&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6bb0e8c9\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.hasSelectedGateway)?_c('div',{staticClass:\"c3controll\"},[_c('span',{staticClass:\"c3controll-help icon exclamation\"}),_c('ul',{staticClass:\"c3controll-tabs\"},[_c('li',{class:{ active: _vm.activeIsRelay },on:{\"click\":function($event){return _vm.setActiveTab('relay')}}},[_vm._v(\"\\n Relays\\n \")]),_c('li',{class:{ active: _vm.activeIsInterface },on:{\"click\":function($event){return _vm.setActiveTab('interface')}}},[_vm._v(\"\\n Interfaces\\n \")]),_c('li',{class:{ active: _vm.activeIsCommands },on:{\"click\":function($event){return _vm.setActiveTab('command')}}},[_vm._v(\"\\n Commands\\n \")])]),(_vm.activeIsRelay)?_c('RelaysTab'):_vm._e(),(_vm.activeIsInterface)?_c('InterfacesTab'):_vm._e(),(_vm.activeIsCommands)?_c('CommandsTab'):_vm._e()],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3tab\"},[_c('RelayList',{attrs:{\"show-empty\":true},on:{\"count\":function($event){return _vm.setCount($event)}}}),_c('DataTableFooter',{attrs:{\"results\":_vm.getCount}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.relays.length || _vm.displayEmpty)?_c('div',{staticClass:\"c3InterfaceList\"},[_c('h1',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasTitle),expression:\"hasTitle\"}]},[_vm._v(_vm._s(_vm.title))]),(_vm.relays.length)?[_c('table',{staticClass:\"datatable\"},[_vm._m(0),_c('tbody',_vm._l((_vm.relays),function(relay,index){return _c('tr',{directives:[{name:\"show\",rawName:\"v-show\",value:(index >= _vm.minIndex && index < _vm.maxIndex),expression:\"index >= minIndex && index < maxIndex\"}],key:relay.id,on:{\"click\":function($event){return _vm.openModal(relay.uid, relay.klass)}}},[_c('td',{staticClass:\"c3link\"},[_c('span',{staticClass:\"c3tab-info-dot not-active\",class:{\n 'is-active': !!relay.isActive,\n 'has-error': !!relay.error\n }}),_vm._v(\"\\n \"+_vm._s(relay.id)+\"\\n \")]),_c('td',[_vm._v(_vm._s(relay.name))]),_c('td',[_vm._v(_vm._s(relay.buildId))])])}),0)])]:(_vm.displayEmpty)?[_vm._v(\"\\n No relays found...\\n \")]:_vm._e()],2):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Relay ID\")]),_c('th',[_vm._v(\"Name\")]),_c('th',[_vm._v(\"Build ID\")])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { namespace } from 'vuex-class';\r\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\r\n\r\nimport { NodeKlass, C3Node } from '@/types/c3types';\r\n\r\nimport C3 from '@/c3';\r\nimport Partial from '@/components/partial/Partial';\r\n\r\nconst C3Module = namespace('c3Module');\r\n\r\n@Component\r\nexport default class RelayList extends Mixins(C3, Partial) {\r\n @C3Module.Getter public getRelays!: C3Node[];\r\n\r\n get relays() {\r\n this.$emit('count', this.getRelays.length);\r\n return this.getRelays;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RelayList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RelayList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RelayList.vue?vue&type=template&id=1502dd23&scoped=true&\"\nimport script from \"./RelayList.vue?vue&type=script&lang=ts&\"\nexport * from \"./RelayList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RelayList.vue?vue&type=style&index=0&id=1502dd23&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1502dd23\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3tabfooter\"},[_c('div',{staticClass:\"c3tabfooter-info\"},[_vm._v(\"Result: \"+_vm._s(_vm.results))]),_c('div',{staticClass:\"c3tabfooter-action\"},[_vm._v(\"\\n Items per page:\\n \"),_c('Select',{staticStyle:{\"max-width\":\"60px\",\"margin-bottom\":\"0\"},attrs:{\"selected\":_vm.perPage,\"options\":{\n '5': '5',\n '10': '10',\n '25': '25',\n '50': '50',\n '100': '100',\n '1000': 'All'\n },\"border\":false,\"up\":true},on:{\"change\":function($event){return _vm.changePerPage($event, _vm.page)}}})],1),_c('div',{staticClass:\"c3tabfooter-paginator\"},[_c('span',{staticClass:\"c3tabfooter-controll\",on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.prevPage($event)}}},[_vm._v(\"\\n <  \\n \")]),_vm._v(\"\\n Page: \"+_vm._s(_vm.actualPage)+\" of \"+_vm._s(_vm.maxPage)+\"\\n \"),_c('span',{staticClass:\"c3tabfooter-controll\",on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.nextPage($event)}}},[_vm._v(\"\\n   >\\n \")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { namespace } from 'vuex-class';\r\nimport { Component, Prop, Watch, Mixins } from 'vue-property-decorator';\r\n\r\nimport { SetActualPageFn, SetItemPerPageFn } from '@/store/PaginateModule';\r\n\r\nimport C3 from '@/c3';\r\nimport Select from '@/components/form/Select.vue';\r\n\r\nconst PaginateModule = namespace('paginateModule');\r\n\r\n@Component({\r\n components: {\r\n Select\r\n }\r\n})\r\nexport default class DataTableFooter extends Mixins(C3) {\r\n @Prop() public results!: number;\r\n\r\n @PaginateModule.Getter public getActualPage!: number;\r\n @PaginateModule.Getter public getItemPerPage!: number;\r\n\r\n @PaginateModule.Mutation public setActualPage!: SetActualPageFn;\r\n @PaginateModule.Mutation public setItemPerPage!: SetItemPerPageFn;\r\n\r\n public page: string = '5';\r\n public perPage: string = '5';\r\n\r\n public created(): void {\r\n this.perPage = '' + this.itemPerPage;\r\n }\r\n\r\n public changePerPage(perPageCount: string): void {\r\n this.perPage = perPageCount;\r\n this.setItemPerPage(+this.perPage);\r\n }\r\n\r\n public nextPage(): void {\r\n if (this.actualPage < this.maxPage) {\r\n this.setActualPage(this.actualPage + 1);\r\n }\r\n }\r\n\r\n public prevPage(): void {\r\n if (this.actualPage > 1) {\r\n this.setActualPage(this.actualPage - 1);\r\n }\r\n }\r\n\r\n get actualPage() {\r\n return this.getActualPage;\r\n }\r\n\r\n get itemPerPage() {\r\n return this.getItemPerPage;\r\n }\r\n\r\n get maxPage() {\r\n const maxpage: number = Math.ceil(this.results / this.itemPerPage);\r\n return maxpage === 0 ? 1 : maxpage;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataTableFooter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataTableFooter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DataTableFooter.vue?vue&type=template&id=399d122b&scoped=true&\"\nimport script from \"./DataTableFooter.vue?vue&type=script&lang=ts&\"\nexport * from \"./DataTableFooter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DataTableFooter.vue?vue&type=style&index=0&id=399d122b&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"399d122b\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\r\nimport { namespace } from 'vuex-class';\r\nimport { Component, Mixins } from 'vue-property-decorator';\r\n\r\nimport { C3Node } from '@/types/c3types';\r\n\r\nimport C3 from '@/c3';\r\nimport RelayList from '@/components/partial/RelayList.vue';\r\nimport DataTableFooter from '@/components/datatables/DataTableFooter.vue';\r\n\r\nconst C3Module = namespace('c3Module');\r\n\r\n@Component({\r\n components: {\r\n RelayList,\r\n DataTableFooter\r\n }\r\n})\r\nexport default class RelaysTab extends Mixins(C3) {\r\n @C3Module.Getter public getRelays!: C3Node[];\r\n\r\n public rCount: number = 0;\r\n\r\n get getCount() {\r\n return this.rCount;\r\n }\r\n\r\n public setCount(n: number): void {\r\n this.rCount = n;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Relays.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Relays.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Relays.vue?vue&type=template&id=50b602bd&\"\nimport script from \"./Relays.vue?vue&type=script&lang=ts&\"\nexport * from \"./Relays.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3tab\"},[_c('CommandList',{attrs:{\"show-empty\":true,\"status-filter\":_vm.selectedCommandStatus,\"command-for-filter\":_vm.selectedCommandFor}}),_c('DataTableFooter',{attrs:{\"results\":_vm.getCount}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.commands.length || _vm.displayEmpty)?_c('div',{staticClass:\"c3CommandList\"},[_c('h1',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasTitle),expression:\"hasTitle\"}]},[_vm._v(_vm._s(_vm.title))]),(_vm.commands.length)?[_c('table',{staticClass:\"datatable\"},[_vm._m(0),_c('tbody',_vm._l((_vm.commands),function(c3Command){return _c('tr',{key:c3Command.id,on:{\"click\":function($event){return _vm.openModal(c3Command.id, 'COMMAND')}}},[_c('td',{staticClass:\"c3link\"},[_vm._v(\"\\n \"+_vm._s(c3Command.id)+\"\\n \")]),_c('td',{staticClass:\"command-for\"},[_vm._v(\"\\n \"+_vm._s(_vm.commandType(c3Command).toLowerCase())+\"\\n \")]),_c('td',[_vm._v(\"\\n \"+_vm._s(_vm.commandTypeId(c3Command))+\"\\n \")])])}),0)])]:(_vm.displayEmpty)?[_vm._v(\"\\n No commands found...\\n \")]:_vm._e()],2):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Command ID\")]),_c('th',[_vm._v(\"Command for\")]),_c('th',[_vm._v(\"ID\")])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { namespace } from 'vuex-class';\r\nimport { Component, Prop, Mixins } from 'vue-property-decorator';\r\n\r\nimport { GetNodeKlassFn } from '@/store/C3Module';\r\nimport {\r\n NodeKlass,\r\n C3Node,\r\n C3Command,\r\n C3Gateway,\r\n nullNode\r\n} from '@/types/c3types';\r\n\r\nimport C3 from '@/c3';\r\nimport Partial from '@/components/partial/Partial';\r\n\r\nconst C3CommandModule = namespace('c3CommandModule');\r\n\r\n@Component\r\nexport default class CommandList extends Mixins(C3, Partial) {\r\n @Prop() public statusFilter!: string;\r\n @Prop() public commandForFilter!: string;\r\n\r\n @C3CommandModule.Getter public getCommands!: C3Command[];\r\n @C3CommandModule.Getter public getCommandCount!: number;\r\n\r\n get commands() {\r\n let commandsArray = this.getCommands;\r\n\r\n if (this.statusFilter === 'COMPLETE') {\r\n commandsArray = commandsArray.filter((c3Command: C3Command) => {\r\n return c3Command.isPending === false;\r\n });\r\n } else if (this.statusFilter === 'PENDING') {\r\n commandsArray = commandsArray.filter((c3Command: C3Command) => {\r\n return c3Command.isPending === true;\r\n });\r\n }\r\n\r\n if (this.commandForFilter !== 'ALL') {\r\n commandsArray = commandsArray.filter((c3Command: C3Command) => {\r\n return this.commandType(c3Command) === this.commandForFilter;\r\n });\r\n }\r\n\r\n this.$emit('count', commandsArray.length);\r\n return commandsArray;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommandList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommandList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CommandList.vue?vue&type=template&id=66d149bc&scoped=true&\"\nimport script from \"./CommandList.vue?vue&type=script&lang=ts&\"\nexport * from \"./CommandList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CommandList.vue?vue&type=style&index=0&id=66d149bc&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"66d149bc\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { namespace } from 'vuex-class';\r\nimport { Component, Mixins, Watch } from 'vue-property-decorator';\r\n\r\nimport { C3Node, C3Command } from '@/types/c3types';\r\n\r\nimport C3 from '@/c3';\r\nimport Select from '@/components/form/Select.vue';\r\nimport CommandList from '@/components/partial/CommandList.vue';\r\nimport DataTableFooter from '@/components/datatables/DataTableFooter.vue';\r\nimport { FetchC3CommandFn } from '@/store/C3Command';\r\nimport { SetActualPageFn } from '@/store/PaginateModule';\r\n\r\nconst PaginateModule = namespace('paginateModule');\r\nconst C3CommandModule = namespace('c3CommandModule');\r\n\r\n@Component({\r\n components: {\r\n Select,\r\n CommandList,\r\n DataTableFooter\r\n }\r\n})\r\nexport default class CommandsTab extends Mixins(C3) {\r\n @C3CommandModule.Getter public getCommandCount!: number;\r\n\r\n @C3CommandModule.Action public fetchCommands!: FetchC3CommandFn;\r\n\r\n @PaginateModule.Getter public getActualPage!: number;\r\n @PaginateModule.Getter public getLastChange!: number;\r\n @PaginateModule.Getter public getItemPerPage!: number;\r\n\r\n @PaginateModule.Mutation public setActualPage!: SetActualPageFn;\r\n\r\n // public commandCount: number = 0;\r\n public commandFor: string = 'ALL';\r\n public commandStatus: string = 'ALL';\r\n\r\n get getCount() {\r\n return this.getCommandCount;\r\n }\r\n\r\n get selectedCommandFor() {\r\n return this.commandFor;\r\n }\r\n\r\n get selectedCommandStatus() {\r\n return this.commandStatus;\r\n }\r\n\r\n // Command count set by the back-end response. No filtering, so the results count won't change.\r\n // public setCount(count: number): void {\r\n // this.commandCount = count;\r\n // }\r\n\r\n // If the actual page or item per page change: fetch the command logs\r\n @Watch('getLastChange')\r\n public onGetLastChange(value: any, oldValue: any) {\r\n this.fetchCommands(this.gateway.id);\r\n }\r\n\r\n public selectCommandFor(r: string) {\r\n this.commandFor = r;\r\n }\r\n\r\n public selectCommandStatus(t: string) {\r\n this.commandStatus = t;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Commands.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Commands.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Commands.vue?vue&type=template&id=7f656a79&\"\nimport script from \"./Commands.vue?vue&type=script&lang=ts&\"\nexport * from \"./Commands.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3tab\"},[_c('div',{staticClass:\"c3tab-filters\"},[_c('Select',{key:\"type-filter\",attrs:{\"legend\":\"Filter by type\",\"selected\":_vm.selectedInterfaceType,\"options\":{\n ALL: 'All',\n CHANNEL: 'Channel',\n PERIPHERAL: 'Peripheral',\n CONNECTOR: 'Connector'\n },\"border\":true,\"up\":false},on:{\"change\":function($event){return _vm.selectInterfaceType($event, _vm.interfaceType)}}}),_c('Select',{key:\"return-channel-filter\",attrs:{\"legend\":\"Filter by Return Channel\",\"selected\":_vm.selectedReturnChannel,\"options\":{ ALL: 'All', YES: 'Yes', NO: 'No' },\"border\":true,\"up\":false,\"disabled\":_vm.isChannelOrAllForDisabled},on:{\"change\":function($event){return _vm.selectReturnChannel($event, _vm.returnChannel)}}}),_c('Select',{key:\"negotiation-channel-filter\",attrs:{\"legend\":\"Filter by Negotiation Channel\",\"selected\":_vm.selectedNegotiationChannel,\"options\":{ ALL: 'All', YES: 'Yes', NO: 'No' },\"border\":true,\"up\":false,\"disabled\":_vm.isChannelOrAllForDisabled},on:{\"change\":function($event){return _vm.selectNegotiationChannel($event, _vm.negotiationChannel)}}})],1),_c('InterfaceList',{attrs:{\"show-empty\":true,\"return-channel-filter\":_vm.selectedReturnChannel,\"negotiation-channel-filter\":_vm.selectedNegotiationChannel,\"interface-type-filter\":_vm.selectedInterfaceType},on:{\"count\":function($event){return _vm.setCount($event)}}}),_c('DataTableFooter',{attrs:{\"results\":_vm.getCount}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.c3Interfaces.length || _vm.displayEmpty)?_c('div',{staticClass:\"c3CommandList\"},[_c('h1',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasTitle),expression:\"hasTitle\"}]},[_vm._v(_vm._s(_vm.title))]),(_vm.c3Interfaces.length)?[_c('table',{staticClass:\"datatable\"},[_vm._m(0),_c('tbody',_vm._l((_vm.c3Interfaces),function(c3Interface,index){return _c('tr',{directives:[{name:\"show\",rawName:\"v-show\",value:(index >= _vm.minIndex && index < _vm.maxIndex),expression:\"index >= minIndex && index < maxIndex\"}],key:c3Interface.uid,on:{\"click\":function($event){return _vm.openModal(c3Interface.uid, c3Interface.klass)}}},[_c('td',{staticClass:\"c3link\"},[_c('span',{staticClass:\"c3tab-info-dot\",class:{\n 'is-return': !!c3Interface.isReturnChannel,\n 'has-error': !!c3Interface.error\n }}),_vm._v(\"\\n \"+_vm._s(c3Interface.id)+\"\\n \")]),_c('td',{staticClass:\"capitalize\"},[_vm._v(_vm._s(c3Interface.klass.toLowerCase()))]),_c('td',[_vm._v(_vm._s(_vm.interfaceTypeName(c3Interface)))]),_c('td',[_vm._v(_vm._s(_vm.interfaceType(c3Interface)))])])}),0)])]:(_vm.displayEmpty)?[_vm._v(\"\\n No interfaces found...\\n \")]:_vm._e()],2):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Interface ID\")]),_c('th',[_vm._v(\"Type\")]),_c('th',[_vm._v(\"Name\")]),_c('th',[_vm._v(\"Channel Type\")])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { namespace } from 'vuex-class';\r\nimport { Component, Prop, Mixins, Provide } from 'vue-property-decorator';\r\n\r\nimport { GetNodeKlassFn, GetInterfacesFn } from '@/store/C3Module';\r\nimport {\r\n NodeKlass,\r\n C3Node,\r\n C3Command,\r\n C3Gateway,\r\n nullNode\r\n} from '@/types/c3types';\r\n\r\nimport C3 from '@/c3';\r\nimport Partial from '@/components/partial/Partial';\r\n\r\nconst C3Module = namespace('c3Module');\r\n\r\n@Component\r\nexport default class InterfaceList extends Mixins(C3, Partial) {\r\n @Prop() public returnChannelFilter!: string;\r\n @Prop() public interfaceTypeFilter!: string;\r\n @Prop() public negotiationChannelFilter!: string;\r\n\r\n @C3Module.Getter public getCommands!: C3Command[];\r\n @C3Module.Getter public getInterfaces!: GetInterfacesFn;\r\n\r\n get c3Interfaces() {\r\n let interfaces = [];\r\n if (this.interfaceTypeFilter === 'ALL') {\r\n interfaces = this.getInterfaces();\r\n } else {\r\n interfaces = this.getInterfaces([this.interfaceTypeFilter as NodeKlass]);\r\n }\r\n\r\n if (this.returnChannelFilter === 'YES') {\r\n interfaces = interfaces.filter((c3Node: C3Node) => {\r\n return !!c3Node.isReturnChannel;\r\n });\r\n } else if (this.returnChannelFilter === 'NO') {\r\n interfaces = interfaces.filter((c3Node: C3Node) => {\r\n return !c3Node.isReturnChannel;\r\n });\r\n }\r\n\r\n if (this.negotiationChannelFilter === 'YES') {\r\n interfaces = interfaces.filter((c3Node: C3Node) => {\r\n return !!c3Node.isNegotiationChannel;\r\n });\r\n } else if (this.negotiationChannelFilter === 'NO') {\r\n interfaces = interfaces.filter((c3Node: C3Node) => {\r\n return !c3Node.isNegotiationChannel;\r\n });\r\n }\r\n\r\n this.$emit('count', interfaces.length);\r\n return interfaces;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InterfaceList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InterfaceList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InterfaceList.vue?vue&type=template&id=1bdb58ac&scoped=true&\"\nimport script from \"./InterfaceList.vue?vue&type=script&lang=ts&\"\nexport * from \"./InterfaceList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InterfaceList.vue?vue&type=style&index=0&id=1bdb58ac&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1bdb58ac\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { namespace } from 'vuex-class';\r\nimport { Component, Mixins } from 'vue-property-decorator';\r\n\r\nimport { c3Module, GetInterfacesFn } from '@/store/C3Module';\r\nimport { C3Interface, NodeKlass, C3Node } from '@/types/c3types';\r\n\r\nimport C3 from '@/c3';\r\nimport Select from '@/components/form/Select.vue';\r\nimport InterfaceList from '@/components/partial/InterfaceList.vue';\r\nimport DataTableFooter from '@/components/datatables/DataTableFooter.vue';\r\n\r\nconst C3Module = namespace('c3Module');\r\n\r\n@Component({\r\n components: {\r\n Select,\r\n InterfaceList,\r\n DataTableFooter\r\n }\r\n})\r\nexport default class InterfacesTab extends Mixins(C3) {\r\n public iCount = 0;\r\n public interfaceByType: string = 'ALL';\r\n public returnChannel: string = 'ALL';\r\n public negotiationChannel: string = 'ALL';\r\n\r\n get getCount() {\r\n return this.iCount;\r\n }\r\n\r\n get selectedInterfaceType() {\r\n return this.interfaceByType;\r\n }\r\n\r\n get selectedReturnChannel() {\r\n return this.returnChannel;\r\n }\r\n\r\n get selectedNegotiationChannel() {\r\n return this.negotiationChannel;\r\n }\r\n\r\n get isChannelOrAllForDisabled() {\r\n const isChannel =\r\n this.selectedInterfaceType === 'ALL' ||\r\n this.selectedInterfaceType === 'CHANNEL';\r\n if (!isChannel) {\r\n this.selectReturnChannel('NO');\r\n this.selectNegotiationChannel('NO');\r\n }\r\n return isChannel ? false : true;\r\n }\r\n\r\n public setCount(emitedCountNumber: number): void {\r\n this.iCount = emitedCountNumber;\r\n }\r\n\r\n public selectInterfaceType(newtype: string) {\r\n if (\r\n (this.interfaceByType === 'PERIPHERAL' ||\r\n this.interfaceByType === 'CONNECTOR') &&\r\n (newtype === 'ALL' || newtype === 'CHANNEL')\r\n ) {\r\n this.selectReturnChannel('ALL');\r\n this.selectNegotiationChannel('ALL');\r\n }\r\n this.interfaceByType = newtype;\r\n }\r\n\r\n public selectReturnChannel(filterReturnChannel: string) {\r\n this.returnChannel = filterReturnChannel;\r\n }\r\n\r\n public selectNegotiationChannel(filterNegotiationChannel: string) {\r\n this.negotiationChannel = filterNegotiationChannel;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Interfaces.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Interfaces.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Interfaces.vue?vue&type=template&id=02432b36&\"\nimport script from \"./Interfaces.vue?vue&type=script&lang=ts&\"\nexport * from \"./Interfaces.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { namespace } from 'vuex-class';\r\nimport { Component, Mixins } from 'vue-property-decorator';\r\n\r\nimport { SetActualPageFn } from '@/store/PaginateModule';\r\n\r\nimport C3 from '@/c3';\r\nimport RelaysTab from '@/components/datatables/Relays.vue';\r\nimport CommandsTab from '@/components/datatables/Commands.vue';\r\nimport InterfacesTab from '@/components/datatables/Interfaces.vue';\r\n\r\nconst C3Module = namespace('c3Module');\r\nconst PaginateModule = namespace('paginateModule');\r\n\r\n@Component({\r\n components: {\r\n RelaysTab,\r\n CommandsTab,\r\n InterfacesTab\r\n }\r\n})\r\nexport default class Controll extends Mixins(C3) {\r\n @PaginateModule.Mutation public setActualPage!: SetActualPageFn;\r\n\r\n @C3Module.Getter public hasGatewaySelected!: boolean;\r\n\r\n public activeTab: string = 'relay';\r\n\r\n get activeIsRelay() {\r\n return this.activeTab === 'relay';\r\n }\r\n\r\n get activeIsInterface() {\r\n return this.activeTab === 'interface';\r\n }\r\n\r\n get activeIsCommands() {\r\n return this.activeTab === 'command';\r\n }\r\n\r\n get hasSelectedGateway() {\r\n return this.hasGatewaySelected;\r\n }\r\n\r\n public setActiveTab(s: string): void {\r\n this.setActualPage(1);\r\n this.activeTab = s;\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Controll.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Controll.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Controll.vue?vue&type=template&id=85e3a344&\"\nimport script from \"./Controll.vue?vue&type=script&lang=ts&\"\nexport * from \"./Controll.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Controll.vue?vue&type=style&index=0&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3side\"},[_c('div',{staticClass:\"c3side-title-wrapper\"},[_c('h1',{staticClass:\"c3side-title\"},[_vm._v(\"Network\")]),_c('span',{staticClass:\"c3side-config-link\",on:{\"click\":function($event){return _vm.openModal('', 'OPTIONS')}}},[_vm._v(\"EDIT CONFIG\")])]),_c('div',{staticClass:\"c3side-body\"},[_c('NetworkStats'),_c('div',{staticClass:\"c3side-refresh-wrapper\"},[_c('span',{staticClass:\"c3side-refres-title\"},[_vm._v(\"\\n Refresh Rate\\n \")]),_c('Select',{staticClass:\"c3site-refresh-dropdown\",staticStyle:{\"margin-bottom\":\"0\"},attrs:{\"selected\":_vm.selectedRefreshRate,\"options\":_vm.refreshRates(),\"border\":false},on:{\"change\":function($event){return _vm.setRefreshRate($event, _vm.refreshRate)}}})],1),_c('Toggle',{key:\"toggle-auto-update-button\",attrs:{\"legend\":\"Auto Update\",\"name\":\"autoUpdate\",\"checked\":_vm.getAutoUpdateEnabled,\"help\":\"Auto Update checks for network changes automatically,\\n this may result in live updated to the graph and data tables when enabled\",\"disabled\":false},on:{\"change\":function($event){return _vm.toggleAutoUpdate($event)}}}),_c('div',{staticClass:\"c3btn-group\"},[_c('button',{staticClass:\"c3btn c3btn--grey\",on:{\"click\":function($event){return _vm.openModal('', 'CREATE_GATEWAY')}}},[_vm._v(\"\\n New Gateway\\n \")])])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { namespace } from 'vuex-class';\r\nimport { Component, Mixins } from 'vue-property-decorator';\r\n\r\nimport { GetInterfacesFn } from '@/store/C3Module';\r\nimport { SetAutoUpdateEnabledFn } from '@/store/VisModule';\r\nimport { GatewayHeader, NodeKlass, C3Node } from '@/types/c3types';\r\n\r\nimport C3 from '@/c3';\r\nimport Toggle from '@/components/form/Toggle.vue';\r\nimport NetworkStats from '@/components/partial/NetworkStats.vue';\r\nimport Select from '@/components/form/Select.vue';\r\nimport { SetRefreshIntervalFn } from '@/store/OptionsModule';\r\n\r\nconst C3Module = namespace('c3Module');\r\nconst VisModule = namespace('visModule');\r\nconst C3OptionsModule = namespace('optionsModule');\r\n\r\n@Component({\r\n components: {\r\n Toggle,\r\n Select,\r\n NetworkStats\r\n }\r\n})\r\nexport default class SideMenu extends Mixins(C3) {\r\n @VisModule.Getter public getAutoUpdateEnabled!: boolean;\r\n @VisModule.Mutation public setAutoUpdateEnabled!: SetAutoUpdateEnabledFn;\r\n\r\n @C3OptionsModule.Getter public getRefreshInterval!: number;\r\n @C3OptionsModule.Mutation public setRefreshInterval!: SetRefreshIntervalFn;\r\n\r\n public refreshRate: string = '2';\r\n\r\n get getAutoUpdate() {\r\n return this.getAutoUpdateEnabled;\r\n }\r\n\r\n public toggleAutoUpdate(d: any): void {\r\n this.setAutoUpdateEnabled(d.value);\r\n }\r\n\r\n get selectedRefreshRate() {\r\n return this.refreshRate;\r\n }\r\n\r\n public setRefreshRate(rate: any) {\r\n this.refreshRate = rate;\r\n this.setRefreshInterval(parseInt(rate, 10) * 1000);\r\n }\r\n\r\n private refreshRates() {\r\n return {\r\n 1: '1 second',\r\n 2: '2 seconds',\r\n 5: '5 seconds',\r\n 10: '10 seconds',\r\n 20: '20 seconds',\r\n 30: '30 seconds',\r\n 60: '1 minute',\r\n 120: '2 minutes',\r\n 300: '5 minutes',\r\n 600: '10 minutes',\r\n 1800: '30 minutes',\r\n 3600: '1 hour'\r\n };\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SideMenu.vue?vue&type=template&id=b05e13a0&scoped=true&\"\nimport script from \"./SideMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./SideMenu.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SideMenu.vue?vue&type=style&index=0&id=b05e13a0&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b05e13a0\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3gateway\"},[_vm._m(0),_c('SelectGatewayForm')],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3gateway-row\"},[_c('span',{staticClass:\"c3gateway-title\"},[_vm._v(\"\\n Gateway Selection\\n \")])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c3gateway-row\"},[_c('Select',{attrs:{\"legend\":\"Gateways\",\"selected\":_vm.selectedGateway,\"options\":_vm.gateways,\"border\":true,\"up\":false},on:{\"change\":function($event){return _vm.selectGateway($event, _vm.activeGateway)}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { namespace } from 'vuex-class';\r\nimport { Component, Mixins } from 'vue-property-decorator';\r\n\r\nimport { FetchC3DataFn } from '@/store/C3Module';\r\nimport { C3Relay, C3Interface, GatewayHeader } from '@/types/c3types';\r\n\r\nimport C3 from '@/c3';\r\nimport Select from '@/components/form/Select.vue';\r\n\r\nconst C3Module = namespace('c3Module');\r\n\r\n@Component({\r\n components: {\r\n Select\r\n }\r\n})\r\nexport default class SelectGatewayForm extends Mixins(C3) {\r\n @C3Module.Action public fetchGateway!: FetchC3DataFn;\r\n\r\n @C3Module.Getter public getGateways!: GatewayHeader[];\r\n\r\n public activeGateway: string = '';\r\n\r\n get selectedGateway() {\r\n return this.activeGateway;\r\n }\r\n\r\n get gateways() {\r\n const gateways: GatewayHeader[] = this.getGateways;\r\n const g: any = {};\r\n\r\n gateways.forEach((gateway: GatewayHeader, index: number) => {\r\n g[gateway.agentId] = `${gateway.name} - ${gateway.agentId}`;\r\n });\r\n\r\n if (gateways.length > 0 && this.selectedGateway === '') {\r\n this.activeGateway = gateways[0].agentId;\r\n this.fetchGateway({ gatewayId: this.selectedGateway });\r\n }\r\n return g;\r\n }\r\n\r\n public selectGateway(id: string): void {\r\n this.activeGateway = id;\r\n this.changeGateway();\r\n this.addNotify({\r\n type: 'info',\r\n message: `Gateway [${this.selectedGateway}] selected...`\r\n });\r\n }\r\n\r\n public changeGateway(): void {\r\n this.fetchGateway({ gatewayId: this.selectedGateway });\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectGatewayForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectGatewayForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SelectGatewayForm.vue?vue&type=template&id=b0c691b0&scoped=true&\"\nimport script from \"./SelectGatewayForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./SelectGatewayForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SelectGatewayForm.vue?vue&type=style&index=0&id=b0c691b0&scoped=true&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b0c691b0\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Mixins } from 'vue-property-decorator';\r\n\r\nimport C3 from '@/c3';\r\nimport SelectGatewayForm from '@/components/form/SelectGatewayForm.vue';\r\n\r\n@Component({\r\n components: {\r\n SelectGatewayForm\r\n }\r\n})\r\nexport default class GatewayForm extends Mixins(C3) {}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GatewayForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GatewayForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GatewayForm.vue?vue&type=template&id=0f8125e8&\"\nimport script from \"./GatewayForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./GatewayForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GatewayForm.vue?vue&type=style&index=0&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition-group',{staticClass:\"c3notify\",attrs:{\"name\":\"slide\",\"tag\":\"ul\"}},_vm._l((_vm.notifies),function(notify){return _c('li',{key:notify.id,class:'c3notify-' + notify.type,staticStyle:{\"right\":\"0\"}},[(notify.title)?_c('h1',[_vm._v(_vm._s(notify.title))]):_vm._e(),_c('p',[_vm._v(_vm._s(notify.message))]),_c('span',{staticClass:\"c3notify-close icon close\",on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.deleteNotify(notify.id)}}})])}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from 'vue';\r\nimport { namespace } from 'vuex-class';\r\nimport { Component, Mixins } from 'vue-property-decorator';\r\n\r\nimport { Notify, RemoveNotifyFn } from '@/store/NotifyModule';\r\n\r\nconst NotifyModule = namespace('notifyModule');\r\n\r\n@Component\r\nexport default class Notification extends Vue {\r\n @NotifyModule.Getter public getNotifies!: Notify[];\r\n\r\n @NotifyModule.Mutation public removeNotify!: RemoveNotifyFn;\r\n\r\n get notifies() {\r\n return this.getNotifies;\r\n }\r\n\r\n public deleteNotify(id: string): void {\r\n this.removeNotify(id);\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notification.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notification.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Notification.vue?vue&type=template&id=1dc002b5&\"\nimport script from \"./Notification.vue?vue&type=script&lang=ts&\"\nexport * from \"./Notification.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Notification.vue?vue&type=style&index=0&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from 'vue';\r\nimport { Component, Watch } from 'vue-property-decorator';\r\nimport { State, Getter, Action, Mutation, namespace } from 'vuex-class';\r\n\r\nimport { Func } from '@/types/Func';\r\nimport { FetchC3DataFn } from './store/C3Module';\r\nimport { FetchC3CommandFn } from './store/C3Command';\r\nimport { gateway } from '../tests/unit/store/mockdata';\r\nimport { SetActualPageFn } from '@/store/PaginateModule';\r\nimport { GatewayHeader, C3Node, nullNode, NodeKlass } from '@/types/c3types';\r\n\r\nimport Modal from '@/components/Modal.vue';\r\nimport Canvas from '@/components/Canvas.vue';\r\nimport Footer from '@/components/Footer.vue';\r\nimport Navbar from '@/components/Navbar.vue';\r\nimport Controll from '@/components/Controll.vue';\r\nimport SideMenu from '@/components/SideMenu.vue';\r\nimport GatewayForm from '@/components/GatewayForm.vue';\r\nimport Notification from '@/components/Notification.vue';\r\nimport CreateGatewayModal from '@/components/modals/CreateGateway.vue';\r\n\r\nconst C3Module = namespace('c3Module');\r\nconst VisModule = namespace('visModule');\r\nconst PaginateModule = namespace('paginateModule');\r\nconst C3CommandModule = namespace('c3CommandModule');\r\nconst C3OptionsModule = namespace('optionsModule');\r\n\r\n@Component({\r\n components: {\r\n Navbar,\r\n GatewayForm,\r\n Canvas,\r\n Controll,\r\n SideMenu,\r\n Footer,\r\n Modal,\r\n Notification,\r\n CreateGatewayModal\r\n }\r\n})\r\nexport default class App extends Vue {\r\n @PaginateModule.Mutation public setActualPage!: SetActualPageFn;\r\n\r\n @C3Module.Action public fetchGateways!: Func;\r\n @C3Module.Action public fetchGateway!: FetchC3DataFn;\r\n @C3Module.Action public fetchCapability!: FetchC3DataFn;\r\n\r\n @C3Module.Getter public getGateway!: C3Node;\r\n @C3Module.Getter public getGateways!: GatewayHeader[];\r\n\r\n @VisModule.Action public generateNodes!: Func;\r\n\r\n @VisModule.Getter public getGrapData!: object;\r\n @VisModule.Getter public getAutoUpdateEnabled!: boolean;\r\n\r\n @C3CommandModule.Action public fetchCommands!: FetchC3CommandFn;\r\n\r\n @C3OptionsModule.Getter public getRefreshInterval!: number;\r\n\r\n public setTime: any;\r\n\r\n get gateway() {\r\n if (this.getGateway === undefined) {\r\n return nullNode;\r\n }\r\n\r\n return this.getGateway;\r\n }\r\n\r\n get hasSelectedGateway() {\r\n return this.getGateways.length > 0;\r\n }\r\n\r\n get refreshRate() {\r\n return this.getRefreshInterval;\r\n }\r\n\r\n public mounted(): void {\r\n this.updateData();\r\n\r\n this.setTime = setInterval(this.updateData, this.refreshRate);\r\n }\r\n\r\n public destroy(): void {\r\n clearInterval(this.setTime);\r\n }\r\n\r\n @Watch('getRefreshInterval')\r\n public setNewRefreshRate(value: any, oldValue: any) {\r\n clearInterval(this.setTime);\r\n this.setTime = setInterval(this.updateData, this.refreshRate);\r\n }\r\n\r\n @Watch('getGrapData')\r\n public onGetGrapDataChange(value: any, oldValue: any) {\r\n if ((window as any).networkc3 !== undefined) {\r\n (window as any).networkc3.setData(this.getGrapData);\r\n }\r\n this.fetchCommands(this.gateway.id);\r\n this.fetchCapability({ gatewayId: this.gateway.id });\r\n }\r\n\r\n public updateData(): void {\r\n if (this.getAutoUpdateEnabled === true) {\r\n this.fetchGateways();\r\n if (this.gateway && this.gateway.klass !== NodeKlass.Undefined) {\r\n this.fetchGateway({ gatewayId: this.gateway.id });\r\n }\r\n }\r\n }\r\n}\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--13-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--13-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=46f9f2a7&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=sass&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { Module, GetterTree, MutationTree, ActionTree } from 'vuex';\r\n\r\nimport md5 from 'md5';\r\nimport axios from 'axios';\r\nimport { RootState } from '@/types/store/RootState';\r\nimport {\r\n C3State,\r\n C3Relay,\r\n C3Interface,\r\n C3Gateway,\r\n GatewayHeader,\r\n NodeKlass,\r\n C3Node,\r\n C3Edge,\r\n FetchData,\r\n C3Command,\r\n C3Route,\r\n C3RelayTime\r\n} from '@/types/c3types';\r\n\r\nconst namespaced: boolean = true;\r\n// State\r\n\r\nexport const state: C3State = {\r\n gateways: [],\r\n gateway: null,\r\n nodes: [],\r\n edges: [],\r\n relayTimestamps: [],\r\n mustRefresh: false,\r\n lastGetHash: ''\r\n};\r\n\r\n// Getters\r\n\r\nexport type GetGatewayFn = () => C3Node | undefined;\r\nexport type GetRelayFn = (id: string) => C3Node | undefined;\r\nexport type GetInterfaceFn = (uid: string) => C3Node | undefined;\r\nexport type GetInterfacesFn = (nodeKlass?: NodeKlass[]) => C3Node[];\r\nexport type GetInterfacesForFn = (\r\n nodeKlass: NodeKlass | NodeKlass[],\r\n parentId: string | null\r\n) => C3Node[];\r\nexport type GetNodeKlassFn = (uid: string) => NodeKlass;\r\nexport type GetCommandFn = (id: string) => C3Command | undefined;\r\nexport type GetRelayRoutesFn = (id: string) => C3Route[];\r\n\r\nexport const getters: GetterTree = {\r\n getNodes(c3State): C3Node[] {\r\n return c3State.nodes;\r\n },\r\n\r\n getEdges(c3State): C3Edge[] {\r\n return c3State.edges;\r\n },\r\n\r\n // return gateways agentIds\r\n getGateways(c3State): GatewayHeader[] {\r\n return c3State.gateways;\r\n },\r\n\r\n // return the selected gateway\r\n getGateway(c3State): C3Node | undefined {\r\n return c3State.nodes.find(node => {\r\n return node.klass === NodeKlass.Gateway;\r\n });\r\n },\r\n\r\n hasGatewaySelected(c3State): boolean {\r\n if (c3State.gateway) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n\r\n // return all relays from the selected gateway\r\n getRelays(c3State): C3Node[] {\r\n return c3State.nodes.filter(node => {\r\n return node.klass === NodeKlass.Relay;\r\n });\r\n },\r\n\r\n getRelay: c3State => (id: string): C3Node | undefined => {\r\n return c3State.nodes.find(node => {\r\n return node.id === id && node.klass === NodeKlass.Relay;\r\n });\r\n },\r\n\r\n getGatewayRoutes(c3State): C3Route[] {\r\n if (c3State.gateway) {\r\n return c3State.gateway.routes;\r\n }\r\n return [];\r\n },\r\n\r\n getRelayRoutes: c3State => (id: string): C3Route[] => {\r\n if (!!c3State.gateway) {\r\n const relay = c3State.gateway.relays.find(target => {\r\n return target.agentId === id;\r\n });\r\n if (!!relay) {\r\n return relay.routes;\r\n }\r\n }\r\n return [];\r\n },\r\n\r\n getInterface: c3State => (uid: string): C3Node | undefined => {\r\n if (uid === 'new') {\r\n return {\r\n uid: 'new',\r\n klass: NodeKlass.Relay,\r\n id: 'new',\r\n buildId: '',\r\n name: 'new',\r\n pending: true,\r\n isActive: false,\r\n type: -1,\r\n error: null,\r\n parentId: null,\r\n parentKlass: NodeKlass.Gateway,\r\n initialCommand: {},\r\n timestamp: Math.floor(Date.now() / 1000)\r\n };\r\n }\r\n\r\n const c = c3State.nodes.find(node => {\r\n return node.uid === uid;\r\n });\r\n return c3State.nodes.find(node => {\r\n return node.uid === uid;\r\n });\r\n },\r\n\r\n getInterfaces: c3State => (\r\n nodeKlass: NodeKlass[] = [\r\n NodeKlass.Channel,\r\n NodeKlass.Connector,\r\n NodeKlass.Peripheral\r\n ]\r\n ): C3Node[] => {\r\n return c3State.nodes.filter(node => {\r\n return nodeKlass.includes(node.klass);\r\n });\r\n },\r\n\r\n getInterfacesFor: c3State => (\r\n nodeKlass: NodeKlass | NodeKlass[] = [\r\n NodeKlass.Channel,\r\n NodeKlass.Connector,\r\n NodeKlass.Peripheral\r\n ],\r\n parentId: string | null\r\n ): C3Node[] => {\r\n if ((parentId === '' || parentId === null) && c3State.gateway) {\r\n parentId = c3State.gateway.agentId;\r\n }\r\n return c3State.nodes.filter(node => {\r\n return nodeKlass.includes(node.klass) && node.parentId === parentId;\r\n });\r\n },\r\n\r\n getNodeKlass: c3State => (uid: string): NodeKlass => {\r\n const n = c3State.nodes.find(node => {\r\n return node.uid === uid;\r\n });\r\n if (n) {\r\n return n.klass;\r\n }\r\n return NodeKlass.Undefined;\r\n }\r\n};\r\n\r\n// Mutations\r\n\r\nexport type UpdateGatewaysFn = (relays: GatewayHeader[]) => void;\r\nexport type UpdateGatewayFn = (relays: C3Gateway) => void;\r\n\r\nexport const mutations: MutationTree = {\r\n updateGateways(c3State, g: GatewayHeader[]) {\r\n c3State.gateways = g;\r\n },\r\n\r\n updateGateway(c3State, g: C3Gateway) {\r\n c3State.gateway = g;\r\n },\r\n\r\n populateNodes(c3State, data: C3Gateway) {\r\n const uuid = (...args: string[]): string => {\r\n return args.join('-');\r\n };\r\n\r\n const isRelayActive = (relay: C3Relay): boolean => {\r\n let active = relay.isActive;\r\n\r\n // If gateway down the relays are not managable either.\r\n if (data.isActive === false) {\r\n active = false;\r\n }\r\n\r\n return active;\r\n };\r\n\r\n c3State.nodes = [];\r\n c3State.mustRefresh = false;\r\n\r\n if (c3State.relayTimestamps === undefined) {\r\n c3State.relayTimestamps = [];\r\n }\r\n\r\n let gatewayTimestamp = 0;\r\n let relayTimestamp = 0;\r\n const relayTimestamps: C3RelayTime[] = [];\r\n\r\n if (!!data.timestamp) {\r\n gatewayTimestamp = data.timestamp;\r\n }\r\n\r\n c3State.nodes.push({\r\n uid: data.agentId,\r\n klass: NodeKlass.Gateway,\r\n id: data.agentId,\r\n buildId: data.buildId,\r\n name: data.name,\r\n pending: data.pending || false,\r\n isActive: data.isActive,\r\n type: -1,\r\n error: data.error || null,\r\n parentId: null,\r\n parentKlass: null,\r\n timestamp: gatewayTimestamp\r\n });\r\n\r\n data.channels.forEach((i: C3Interface) => {\r\n c3State.nodes.push({\r\n uid: uuid(i.iid, data.agentId),\r\n klass: NodeKlass.Channel,\r\n id: i.iid,\r\n pending: i.pending || false,\r\n type: i.type,\r\n error: i.error || null,\r\n parentId: data.agentId,\r\n isReturnChannel: i.isReturnChannel || false,\r\n isNegotiationChannel: i.isNegotiationChannel || false,\r\n parentKlass: NodeKlass.Gateway,\r\n propertiesText: i.propertiesText || ''\r\n });\r\n });\r\n\r\n data.peripherals.forEach((i: C3Interface) => {\r\n c3State.nodes.push({\r\n uid: uuid(i.iid, data.agentId),\r\n klass: NodeKlass.Peripheral,\r\n id: i.iid,\r\n pending: i.pending || false,\r\n type: i.type,\r\n error: i.error || null,\r\n parentId: data.agentId,\r\n parentKlass: NodeKlass.Gateway,\r\n propertiesText: i.propertiesText || ''\r\n });\r\n });\r\n\r\n data.connectors.forEach((i: C3Interface) => {\r\n c3State.nodes.push({\r\n uid: uuid(i.iid, data.agentId),\r\n klass: NodeKlass.Connector,\r\n id: i.iid,\r\n pending: i.pending || false,\r\n type: i.type,\r\n error: i.error || null,\r\n parentId: data.agentId,\r\n parentKlass: NodeKlass.Gateway,\r\n propertiesText: i.propertiesText || ''\r\n });\r\n });\r\n\r\n data.relays.forEach((relay: C3Relay) => {\r\n if (!!relay.timestamp) {\r\n relayTimestamp = relay.timestamp;\r\n if (relayTimestamp < gatewayTimestamp) {\r\n relayTimestamps!.push({\r\n id: relay.agentId,\r\n time: relayTimestamp\r\n });\r\n } else {\r\n const newTime = c3State.relayTimestamps!.find(t => {\r\n return t.id === relay.agentId;\r\n });\r\n if (newTime !== undefined) {\r\n c3State.mustRefresh = true;\r\n }\r\n }\r\n }\r\n\r\n c3State.nodes.push({\r\n uid: relay.agentId,\r\n klass: NodeKlass.Relay,\r\n id: relay.agentId,\r\n buildId: relay.buildId,\r\n name: relay.name,\r\n pending: relay.pending || false,\r\n isActive: isRelayActive(relay),\r\n type: -1,\r\n error: relay.error || null,\r\n parentId: data.agentId,\r\n parentKlass: NodeKlass.Gateway,\r\n initialCommand: relay.initialCommand || {},\r\n timestamp: relayTimestamp,\r\n hostInfo: relay.hostInfo\r\n });\r\n\r\n relay.channels.forEach((i: C3Interface) => {\r\n c3State.nodes.push({\r\n uid: uuid(i.iid, relay.agentId),\r\n klass: NodeKlass.Channel,\r\n id: i.iid,\r\n pending: i.pending || false,\r\n type: i.type,\r\n error: i.error || null,\r\n parentId: relay.agentId,\r\n isReturnChannel: i.isReturnChannel || false,\r\n isNegotiationChannel: i.isNegotiationChannel || false,\r\n parentKlass: NodeKlass.Relay,\r\n propertiesText: i.propertiesText || ''\r\n });\r\n });\r\n\r\n relay.peripherals.forEach((i: C3Interface) => {\r\n c3State.nodes.push({\r\n uid: uuid(i.iid, relay.agentId),\r\n klass: NodeKlass.Peripheral,\r\n id: i.iid,\r\n pending: i.pending || false,\r\n type: i.type,\r\n error: i.error || null,\r\n parentId: relay.agentId,\r\n parentKlass: NodeKlass.Relay,\r\n propertiesText: i.propertiesText || ''\r\n });\r\n });\r\n });\r\n c3State.relayTimestamps = relayTimestamps;\r\n },\r\n\r\n populateEdges(c3State, data: C3Gateway) {\r\n const uuid = (...args: string[]): string => {\r\n return args.join('-');\r\n };\r\n\r\n const guid = () => {\r\n return Math.random()\r\n .toString(36)\r\n .substring(2);\r\n };\r\n\r\n const interfaceIsExist = (agentId: string, iid: string) => {\r\n const relay = data.relays.find((r: C3Relay) => {\r\n return r.agentId === agentId;\r\n });\r\n if (relay !== undefined) {\r\n const c = relay.channels.find((i: C3Interface) => {\r\n return i.iid === iid;\r\n });\r\n if (c !== undefined) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n c3State.edges = [];\r\n\r\n data.channels.forEach((i: C3Interface) => {\r\n c3State.edges.push({\r\n id: guid(),\r\n klass: NodeKlass.Interface,\r\n isNegotiationChannel: !!i.isNegotiationChannel,\r\n length: 0,\r\n dashes: false,\r\n from: data.agentId,\r\n to: uuid(i.iid, data.agentId)\r\n });\r\n });\r\n\r\n data.peripherals.forEach((i: C3Interface) => {\r\n c3State.edges.push({\r\n id: guid(),\r\n klass: NodeKlass.Interface,\r\n length: 0,\r\n dashes: false,\r\n from: data.agentId,\r\n to: uuid(i.iid, data.agentId)\r\n });\r\n });\r\n\r\n data.connectors.forEach((i: C3Interface) => {\r\n c3State.edges.push({\r\n id: guid(),\r\n klass: NodeKlass.Interface,\r\n length: 0,\r\n dashes: true,\r\n from: data.agentId,\r\n to: uuid(i.iid, data.agentId)\r\n });\r\n });\r\n\r\n data.routes.forEach(route => {\r\n if (route.isNeighbour === true) {\r\n c3State.edges.push({\r\n id: guid(),\r\n klass: NodeKlass.Relay,\r\n length: 100,\r\n dashes: false,\r\n from: data.agentId,\r\n to: route.destinationAgent\r\n });\r\n\r\n c3State.edges.push({\r\n id: guid(),\r\n klass: NodeKlass.Interface,\r\n length: 0,\r\n dashes: false,\r\n from: uuid(route.outgoingInterface, data.agentId),\r\n to: uuid(route.receivingInterface, route.destinationAgent)\r\n });\r\n }\r\n });\r\n\r\n data.relays.forEach((relay: C3Relay) => {\r\n relay.channels.forEach((i: C3Interface) => {\r\n c3State.edges.push({\r\n id: guid(),\r\n klass: NodeKlass.Interface,\r\n isNegotiationChannel: !!i.isNegotiationChannel,\r\n length: 0,\r\n dashes: false,\r\n from: relay.agentId,\r\n to: uuid(i.iid, relay.agentId)\r\n });\r\n });\r\n\r\n relay.peripherals.forEach((i: C3Interface) => {\r\n c3State.edges.push({\r\n id: guid(),\r\n klass: NodeKlass.Interface,\r\n length: 0,\r\n dashes: false,\r\n from: relay.agentId,\r\n to: uuid(i.iid, relay.agentId)\r\n });\r\n });\r\n\r\n relay.routes.forEach(route => {\r\n if (route.isNeighbour === true) {\r\n let isDashed = true;\r\n if (\r\n interfaceIsExist(\r\n route.destinationAgent,\r\n route.receivingInterface\r\n ) &&\r\n interfaceIsExist(relay.agentId, route.outgoingInterface)\r\n ) {\r\n isDashed = false;\r\n }\r\n c3State.edges.push({\r\n id: guid(),\r\n klass: NodeKlass.Relay,\r\n length: 100,\r\n dashes: isDashed,\r\n from: relay.agentId,\r\n to: route.destinationAgent\r\n });\r\n\r\n c3State.edges.push({\r\n id: guid(),\r\n klass: NodeKlass.Interface,\r\n length: 0,\r\n dashes: false,\r\n from: uuid(route.outgoingInterface, relay.agentId),\r\n to: uuid(route.receivingInterface, route.destinationAgent)\r\n });\r\n }\r\n });\r\n });\r\n }\r\n};\r\n\r\n// Actions\r\n\r\nexport type FetchC3DataFn = (data: FetchData) => void;\r\n\r\nconst actions: ActionTree = {\r\n fetchCapability(context, nodeIds: FetchData) {\r\n context.dispatch('c3Capability/fetchCapability', nodeIds, { root: true });\r\n },\r\n\r\n fetchGateways(context): void {\r\n const baseURL = `${context.rootGetters['optionsModule/getAPIUrl']}:${context.rootGetters['optionsModule/getAPIPort']}`;\r\n axios\r\n .get('/api/gateway', { baseURL })\r\n .then(response => {\r\n context.commit('updateGateways', response.data);\r\n })\r\n .catch(error => {\r\n context.dispatch(\r\n 'notifyModule/insertNotify',\r\n { type: 'error', message: error.message },\r\n { root: true }\r\n );\r\n // tslint:disable-next-line:no-console\r\n console.error(error.message);\r\n });\r\n },\r\n\r\n fetchGateway(context, nodeIds: FetchData) {\r\n if (nodeIds.gatewayId) {\r\n const url = `/api/gateway/${nodeIds.gatewayId}`;\r\n const baseURL = `${context.rootGetters['optionsModule/getAPIUrl']}:${context.rootGetters['optionsModule/getAPIPort']}`;\r\n axios\r\n .get(url, { baseURL })\r\n .then(response => {\r\n let hash: string = '';\r\n\r\n if (context.state.mustRefresh !== true) {\r\n hash = md5(\r\n JSON.stringify(response.data).replace(\r\n /\"timestamp\":[0-9]*[,]{0,1}/g,\r\n ''\r\n )\r\n );\r\n }\r\n\r\n // store the gateway\r\n context.commit('updateGateway', response.data);\r\n context.commit('populateNodes', response.data);\r\n context.commit('populateEdges', response.data);\r\n\r\n if (context.state.mustRefresh || hash !== context.state.lastGetHash) {\r\n // generate the data structure to vis library\r\n context.dispatch('visModule/generateNodes', {}, { root: true });\r\n context.dispatch('visModule/generateEdges', {}, { root: true });\r\n context.commit('visModule/setGraphData', {}, { root: true });\r\n context.state.lastGetHash = hash;\r\n }\r\n })\r\n .catch(error => {\r\n context.dispatch(\r\n 'notifyModule/insertNotify',\r\n { type: 'error', message: error.message },\r\n { root: true }\r\n );\r\n // tslint:disable-next-line:no-console\r\n console.error(error.message);\r\n });\r\n } else {\r\n context.dispatch(\r\n 'notifyModule/insertNotify',\r\n { type: 'error', message: 'missing: gatewayId' },\r\n { root: true }\r\n );\r\n // tslint:disable-next-line:no-console\r\n console.error('missing: gatewayId');\r\n }\r\n }\r\n};\r\n\r\nexport const c3Module: Module = {\r\n namespaced,\r\n state,\r\n getters,\r\n mutations,\r\n actions\r\n};\r\n","import { Module, GetterTree, MutationTree, ActionTree } from 'vuex';\r\n\r\nimport { RootState } from '@/types/store/RootState';\r\n\r\nconst namespaced: boolean = true;\r\n\r\nexport interface ModalState {\r\n modals: C3Modal[];\r\n}\r\n\r\nexport interface C3Modal {\r\n modalTarget: string;\r\n modalTargetId: any;\r\n modalOptions: any;\r\n}\r\n\r\n// State\r\n\r\nconst state: ModalState = {\r\n modals: []\r\n};\r\n\r\n// Getters\r\nconst getters: GetterTree = {\r\n activeModal(modalState): C3Modal | undefined {\r\n if (modalState.modals.length > 0) {\r\n return modalState.modals[modalState.modals.length - 1];\r\n }\r\n return undefined;\r\n }\r\n};\r\n\r\n// Mutations\r\n\r\nexport type NewModalFn = (m: C3Modal) => void;\r\nexport type CloseModalFn = () => void;\r\n\r\nconst mutations: MutationTree = {\r\n newModal(modalState, m: C3Modal) {\r\n let last: any = false;\r\n if (modalState.modals.length > 1) {\r\n last = modalState.modals[modalState.modals.length - 2];\r\n }\r\n if (\r\n last !== false &&\r\n last.modalTarget === m.modalTarget &&\r\n last.modalTargetId === m.modalTargetId\r\n ) {\r\n modalState.modals.pop();\r\n } else {\r\n modalState.modals.push(m);\r\n }\r\n },\r\n\r\n closeModal(modalState) {\r\n if (modalState.modals.length > 0) {\r\n modalState.modals.pop();\r\n }\r\n },\r\n\r\n closeModalAll(modalState) {\r\n modalState.modals = [];\r\n }\r\n};\r\n\r\n// Actions\r\n\r\nexport const actions: ActionTree = {};\r\n\r\nexport const modalModule: Module = {\r\n namespaced,\r\n state,\r\n getters,\r\n mutations,\r\n actions\r\n};\r\n","import { Module, GetterTree, MutationTree, ActionTree } from 'vuex';\r\nimport { RootState } from '@/types/store/RootState';\r\n\r\nconst namespaced: boolean = true;\r\n\r\ninterface PaginateState {\r\n itemPerPage: number;\r\n actualPage: number;\r\n lastChange: number;\r\n}\r\n\r\n// State\r\n\r\nconst state: PaginateState = {\r\n itemPerPage: 5,\r\n actualPage: 1,\r\n lastChange: Date.now()\r\n};\r\n\r\n// Getters\r\n\r\nconst getters: GetterTree = {\r\n getItemPerPage(paginateState): number {\r\n return paginateState.itemPerPage;\r\n },\r\n\r\n getActualPage(paginateState): number {\r\n return paginateState.actualPage;\r\n },\r\n\r\n getLastChange(paginateState): number {\r\n return paginateState.lastChange;\r\n }\r\n};\r\n\r\n// Mutations\r\n\r\nexport type SetItemPerPageFn = (itemPerPage: number) => void;\r\nexport type SetActualPageFn = (itemPerPage: number) => void;\r\n\r\nexport const mutations: MutationTree = {\r\n setItemPerPage(paginateState, itemPerPage: number): void {\r\n paginateState.actualPage = 1;\r\n paginateState.itemPerPage = itemPerPage;\r\n paginateState.lastChange = Date.now();\r\n },\r\n\r\n setActualPage(paginateState, actualPage: number): void {\r\n paginateState.actualPage = actualPage;\r\n paginateState.lastChange = Date.now();\r\n }\r\n};\r\n\r\n// Actions\r\n\r\nconst actions: ActionTree = {};\r\n\r\nexport const paginateModule: Module = {\r\n namespaced,\r\n state,\r\n getters,\r\n mutations,\r\n actions\r\n};\r\n","// tslint:disable max-line-length\r\nconst svgChannelActive =\r\n '';\r\nconst svgChannelReturn =\r\n '';\r\nconst svgChannelError =\r\n '';\r\n\r\nconst svgNegotiationActive =\r\n '';\r\nconst svgNegotiationError =\r\n '';\r\n\r\nconst svgPeripheralActive =\r\n '';\r\nconst svgPeripheralError =\r\n '';\r\n\r\nconst svgConnectorActive =\r\n '';\r\nconst svgConnectorError =\r\n '';\r\n\r\nconst svgInterfaceActive =\r\n '';\r\nconst svgInterfaceInactive =\r\n '';\r\nconst svgInterfaceError =\r\n '';\r\n\r\nconst svgGatewayActive =\r\n '';\r\nconst svgGatewayInactive =\r\n '';\r\nconst svgGatewayError =\r\n '';\r\n\r\nconst svgRelayActive =\r\n '';\r\nconst svgRelayInactive =\r\n '';\r\nconst svgRelayGhost =\r\n '';\r\nconst svgRelayError =\r\n '';\r\n\r\nexport const ChannelActive =\r\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgChannelActive);\r\nexport const ChannelReturn =\r\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgChannelReturn);\r\nexport const ChannelError =\r\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgChannelError);\r\n\r\nexport const PeripheralActive =\r\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgPeripheralActive);\r\nexport const PeripheralError =\r\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgPeripheralError);\r\n\r\nexport const NegotiationActive =\r\n 'data:image/svg+xml;charset=utf-8,' +\r\n encodeURIComponent(svgNegotiationActive);\r\nexport const NegotiationError =\r\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgNegotiationError);\r\n\r\nexport const ConnectorActive =\r\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgConnectorActive);\r\nexport const ConnectorError =\r\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgConnectorError);\r\n\r\nexport const InterfaceActive =\r\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgInterfaceActive);\r\nexport const InterfaceInactive =\r\n 'data:image/svg+xml;charset=utf-8,' +\r\n encodeURIComponent(svgInterfaceInactive);\r\nexport const InterfaceError =\r\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgInterfaceError);\r\n\r\nexport const GatewayActive =\r\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgGatewayActive);\r\nexport const GatewayInactive =\r\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgGatewayInactive);\r\nexport const GatewayError =\r\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgGatewayError);\r\n\r\nexport const RelayActive =\r\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgRelayActive);\r\nexport const RelayInactive =\r\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgRelayInactive);\r\nexport const RelayGhost =\r\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgRelayGhost);\r\nexport const RelayError =\r\n 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgRelayError);\r\n","import {\r\n GatewayActive,\r\n GatewayError,\r\n RelayActive,\r\n RelayError,\r\n ChannelActive,\r\n ChannelReturn,\r\n ChannelError,\r\n PeripheralError,\r\n PeripheralActive,\r\n ConnectorActive,\r\n ConnectorError,\r\n GatewayInactive,\r\n RelayInactive,\r\n RelayGhost,\r\n NegotiationActive,\r\n NegotiationError\r\n} from '@/components/assets/SvgIconsForVis';\r\n\r\nexport const GATEWAY: number = 10;\r\nexport const RELAY: number = 20;\r\nexport const CHANNEL: number = 30;\r\nexport const PERIPHERAL: number = 40;\r\nexport const CONNECTOR: number = 50;\r\nexport const NEGOTIATION_CHANNEL: number = 5;\r\nexport const ERROR: number = 1;\r\nexport const RETURN_CHANNEL: number = 2;\r\nexport const INACTIVE: number = 3;\r\nexport const GHOST: number = 5;\r\n\r\n// The Vis Options for visualisation\r\nexport const VisOptions: any = {\r\n nodes: {\r\n font: {\r\n color: '#fff',\r\n background: '#222',\r\n size: 12,\r\n face: 'Roboto Mono',\r\n strokeWidth: 0,\r\n vadjust: 0\r\n },\r\n shadow: {\r\n enabled: false,\r\n color: 'rgba(75,174,97,1)',\r\n size: 20,\r\n x: 0,\r\n y: 0\r\n },\r\n widthConstraint: {\r\n maximum: 75\r\n },\r\n margin: {\r\n top: 0\r\n }\r\n },\r\n edges: {\r\n font: {\r\n color: '#fff',\r\n background: '#222',\r\n size: 12,\r\n face: 'Roboto Mono',\r\n strokeWidth: 0\r\n },\r\n color: {\r\n color: '#BDBDBD',\r\n highlight: '#27ae60'\r\n },\r\n smooth: false\r\n },\r\n groups: {\r\n // GATEWAY\r\n 10: {\r\n shape: 'image',\r\n image: GatewayActive,\r\n size: 30\r\n },\r\n // GATEWAY + ERROR\r\n 11: {\r\n shape: 'image',\r\n image: GatewayError,\r\n size: 30\r\n },\r\n // GATEWAY + INACTIVE\r\n 13: {\r\n shape: 'image',\r\n image: GatewayInactive,\r\n size: 30\r\n },\r\n // GATEWAY + INACTIVE + ERROR\r\n 14: {\r\n shape: 'image',\r\n image: GatewayError,\r\n size: 30\r\n },\r\n // RELAY\r\n 20: {\r\n shape: 'image',\r\n image: RelayActive,\r\n size: 30\r\n },\r\n // RELAY + ERROR\r\n 21: {\r\n shape: 'image',\r\n image: RelayError,\r\n size: 30\r\n },\r\n // RELAY + INACTIVE\r\n 23: {\r\n shape: 'image',\r\n image: RelayInactive,\r\n size: 30\r\n },\r\n // RELAY + INACTIVE +ERROR\r\n 24: {\r\n shape: 'image',\r\n image: RelayError,\r\n size: 30\r\n },\r\n // RELAY + GHOST\r\n 25: {\r\n shape: 'image',\r\n image: RelayGhost,\r\n size: 30\r\n },\r\n // RELAY + GHOST + ERROR\r\n 26: {\r\n shape: 'image',\r\n image: RelayError,\r\n size: 30\r\n },\r\n // RELAY + INACTIVE + GHOST\r\n 28: {\r\n shape: 'image',\r\n image: RelayGhost,\r\n size: 30\r\n },\r\n // RELAY + INACTIVE + GHOST + ERROR\r\n 29: {\r\n shape: 'image',\r\n image: RelayError,\r\n size: 30\r\n },\r\n // CHANNEL\r\n 30: {\r\n shape: 'image',\r\n image: ChannelActive,\r\n size: 20\r\n },\r\n // CHANNEL + ERROR\r\n 31: {\r\n shape: 'image',\r\n image: ChannelError,\r\n size: 20\r\n },\r\n // CHANNEL + RETURN_CHANNEL\r\n 32: {\r\n shape: 'image',\r\n image: ChannelReturn,\r\n size: 20\r\n },\r\n // CHANNEL + RETURN_CHANNEL + ERROR\r\n 33: {\r\n shape: 'image',\r\n image: ChannelError,\r\n size: 20\r\n },\r\n // NEGOTIATION_CHANNEL\r\n 35: {\r\n shape: 'image',\r\n image: NegotiationActive,\r\n size: 25\r\n },\r\n // NEGOTIATION_CHANNEL + ERROR\r\n 36: {\r\n shape: 'image',\r\n image: NegotiationError,\r\n size: 25\r\n },\r\n // PERIPHERAL\r\n 40: {\r\n shape: 'image',\r\n image: PeripheralActive,\r\n size: 20\r\n },\r\n // PERIPHERAL + ERROR\r\n 41: {\r\n shape: 'image',\r\n image: PeripheralError,\r\n size: 20\r\n },\r\n // CONNECTOR\r\n 50: {\r\n shape: 'image',\r\n image: ConnectorActive,\r\n size: 20\r\n },\r\n // CONNECTOR + ERROR\r\n 51: {\r\n shape: 'image',\r\n image: ConnectorError,\r\n size: 20\r\n }\r\n },\r\n layout: {\r\n randomSeed: 921401,\r\n improvedLayout: true,\r\n hierarchical: {\r\n enabled: true,\r\n direction: 'LR',\r\n parentCentralization: true,\r\n blockShifting: true,\r\n levelSeparation: 150,\r\n treeSpacing: 200,\r\n nodeSpacing: 100,\r\n edgeMinimization: true,\r\n sortMethod: 'hubsize'\r\n }\r\n },\r\n physics: {\r\n enabled: true,\r\n solver: 'barnesHut',\r\n barnesHut: {\r\n gravitationalConstant: -4500,\r\n springLength: 100,\r\n springConstant: 0.01,\r\n damping: 0.1,\r\n avoidOverlap: 0\r\n },\r\n minVelocity: 0.45,\r\n stabilization: {\r\n enabled: true,\r\n iterations: 1000,\r\n updateInterval: 10,\r\n onlyDynamicEdges: false,\r\n fit: true\r\n }\r\n },\r\n interaction: {\r\n navigationButtons: true,\r\n keyboard: false\r\n }\r\n};\r\n\r\n// maximum toast shown\r\nexport const maximumToast: number = 3;\r\n\r\n// the data refresh rate in milisecond\r\nexport const refreshInterval: number = 2000;\r\n\r\nexport const notifyLenght = 5000;\r\n","import { Module, GetterTree, MutationTree, ActionTree } from 'vuex';\r\nimport { DataSet, Node, Edge, Options } from 'vis';\r\n\r\nimport { RootState } from '@/types/store/RootState';\r\nimport { C3Edge, NodeKlass, C3Node } from '@/types/c3types';\r\nimport {\r\n GATEWAY,\r\n RELAY,\r\n CHANNEL,\r\n PERIPHERAL,\r\n CONNECTOR,\r\n RETURN_CHANNEL,\r\n VisOptions,\r\n INACTIVE,\r\n NEGOTIATION_CHANNEL,\r\n GHOST\r\n} from '@/options';\r\n\r\nconst namespaced: boolean = true;\r\n\r\ninterface VisState {\r\n nodes: any;\r\n edges: any;\r\n options: any;\r\n autoUpdateEnabled: boolean;\r\n showInterfaces: boolean;\r\n showLabels: boolean;\r\n graphData: {\r\n nodes: any;\r\n edges: any;\r\n };\r\n}\r\n\r\n// State\r\n\r\nconst state: VisState = {\r\n nodes: {},\r\n edges: {},\r\n options: VisOptions,\r\n showInterfaces: true,\r\n showLabels: true,\r\n autoUpdateEnabled: true,\r\n graphData: {\r\n nodes: new DataSet({}),\r\n edges: new DataSet({})\r\n }\r\n};\r\n\r\n// Getters\r\nconst getters: GetterTree = {\r\n getVisNodes(visState): any {\r\n return visState.nodes;\r\n },\r\n\r\n getVisEdges(visState): any {\r\n return visState.edges;\r\n },\r\n\r\n getGrapData(visState): object {\r\n return visState.graphData;\r\n },\r\n\r\n getOptions(visState): Options {\r\n return visState.options;\r\n },\r\n\r\n getShowInterfaces(visState): boolean {\r\n return visState.showInterfaces;\r\n },\r\n\r\n getShowLabels(visState): boolean {\r\n return visState.showLabels;\r\n },\r\n\r\n getAutoUpdateEnabled(visState): boolean {\r\n return visState.autoUpdateEnabled;\r\n }\r\n};\r\n\r\n// Mutations\r\n\r\nexport type SetGraphDataFn = () => void;\r\nexport type SetOptionFn = (b: boolean) => void;\r\nexport type SetAutoUpdateEnabledFn = (d: boolean) => void;\r\nexport type SetOptionslFn = (options: Options) => void;\r\n\r\nconst mutations: MutationTree = {\r\n setNodes(visState, n) {\r\n visState.nodes = n;\r\n },\r\n\r\n setEdges(visState, e) {\r\n visState.edges = e;\r\n },\r\n\r\n setGraphData(visState) {\r\n const nodes = new DataSet(visState.nodes);\r\n const edges = new DataSet(visState.edges);\r\n const graph = { nodes, edges };\r\n visState.graphData = graph;\r\n },\r\n\r\n setOptions(visState, options: Options): void {\r\n visState.options = options;\r\n },\r\n\r\n setShowInterfaces(visState, b: boolean): void {\r\n visState.showInterfaces = b;\r\n },\r\n\r\n setShowLabels(visState, b: boolean): void {\r\n visState.showLabels = b;\r\n },\r\n\r\n setTreeView(visState, b: boolean): void {\r\n visState.options.layout.hierarchical.enabled = b;\r\n if (b === true) {\r\n visState.options.physics.stabilization.onlyDynamicEdges = true;\r\n } else {\r\n visState.options.physics.stabilization.onlyDynamicEdges = false;\r\n }\r\n },\r\n\r\n setPhysics(visState, b: boolean): void {\r\n visState.options.physics.enabled = b;\r\n },\r\n\r\n setSmoothEdge(visState, b: boolean): void {\r\n visState.options.edges.smooth = b;\r\n },\r\n\r\n setAutoUpdateEnabled(visState, d: boolean): void {\r\n visState.autoUpdateEnabled = d;\r\n }\r\n};\r\n\r\n// Actions\r\n\r\nexport type GenerateNodesFn = () => void;\r\nexport type GenerateEdgesFn = () => void;\r\n\r\nconst actions: ActionTree = {\r\n generateNodes(context) {\r\n const ns: C3Node[] = context.rootGetters['c3Module/getNodes'];\r\n const gatewayLastStartTime =\r\n context.rootGetters['c3Module/getGateway'].timestamp;\r\n const gatewayIsActive = context.rootGetters['c3Module/getGateway'].isActive;\r\n\r\n const setGroup = (\r\n target: C3Node,\r\n gatewayStartTime: number,\r\n isGatewayActive: boolean\r\n ): string => {\r\n let group: number = 0;\r\n\r\n // Add error if target has an error\r\n if (target.error !== null) {\r\n ++group;\r\n }\r\n\r\n let active = true;\r\n\r\n // If Target down told by API then make inactive\r\n if (target.isActive !== undefined && target.isActive === false) {\r\n active = false;\r\n }\r\n\r\n // If relay last seen begore gateway last start than we think gateway maybe down\r\n if (target.klass === NodeKlass.Relay) {\r\n if (!!target.timestamp) {\r\n if (target.timestamp < gatewayStartTime) {\r\n active = false;\r\n } else {\r\n active = true;\r\n }\r\n }\r\n\r\n // if gateway down the hole network down\r\n if (!isGatewayActive) {\r\n active = false;\r\n }\r\n\r\n if (target.isActive === false) {\r\n group = group + GHOST;\r\n }\r\n }\r\n\r\n if (!active) {\r\n group = group + INACTIVE;\r\n }\r\n\r\n switch (target.klass) {\r\n case NodeKlass.Channel:\r\n group += CHANNEL;\r\n if (target.isReturnChannel === true) {\r\n group += RETURN_CHANNEL;\r\n }\r\n if (target.isNegotiationChannel === true) {\r\n group += NEGOTIATION_CHANNEL;\r\n }\r\n return '' + group;\r\n case NodeKlass.Relay:\r\n group += RELAY;\r\n return '' + group;\r\n case NodeKlass.Peripheral:\r\n group += PERIPHERAL;\r\n return '' + group;\r\n case NodeKlass.Gateway:\r\n group += GATEWAY;\r\n return '' + group;\r\n case NodeKlass.Connector:\r\n group += CONNECTOR;\r\n return '' + group;\r\n }\r\n\r\n return '' + group;\r\n };\r\n const nodes: Node[] = [];\r\n const interfaccesIncluded: boolean = context.state.showInterfaces;\r\n\r\n ns.forEach((node: C3Node) => {\r\n if (\r\n context.state.showInterfaces === true ||\r\n (interfaccesIncluded !== true && node.klass === NodeKlass.Gateway) ||\r\n node.klass === NodeKlass.Relay\r\n ) {\r\n const group = setGroup(node, gatewayLastStartTime, gatewayIsActive);\r\n let label = '';\r\n if (context.state.showLabels) {\r\n label = node.name || '';\r\n }\r\n\r\n nodes.push({\r\n id: node.uid,\r\n group,\r\n label\r\n });\r\n } else {\r\n if (!!node.isNegotiationChannel && node.isNegotiationChannel === true) {\r\n const group = setGroup(node, gatewayLastStartTime, gatewayIsActive);\r\n let label = '';\r\n if (context.state.showLabels) {\r\n label = node.name || '';\r\n }\r\n\r\n nodes.push({\r\n id: node.uid,\r\n group,\r\n label\r\n });\r\n }\r\n }\r\n });\r\n\r\n context.commit('setNodes', nodes);\r\n },\r\n\r\n generateEdges(context) {\r\n const es: C3Edge[] = context.rootGetters['c3Module/getEdges'];\r\n const edges: Edge[] = [];\r\n const interfaccesIncluded: boolean = context.state.showInterfaces;\r\n\r\n es.forEach(edge => {\r\n if (interfaccesIncluded === true && edge.klass === NodeKlass.Interface) {\r\n edges.push({\r\n id: edge.id,\r\n length: edge.length,\r\n dashes: edge.dashes,\r\n from: edge.from,\r\n to: edge.to\r\n });\r\n }\r\n\r\n if (interfaccesIncluded !== true && edge.klass === NodeKlass.Interface) {\r\n if (!!edge.isNegotiationChannel) {\r\n edges.push({\r\n id: edge.id,\r\n length: edge.length,\r\n dashes: edge.dashes,\r\n from: edge.from,\r\n to: edge.to\r\n });\r\n }\r\n }\r\n\r\n if (interfaccesIncluded !== true && edge.klass !== NodeKlass.Interface) {\r\n const e = {\r\n id: edge.id,\r\n length: edge.length,\r\n dashes: edge.dashes,\r\n from: edge.from,\r\n to: edge.to,\r\n color: {}\r\n };\r\n if (edge.dashes === true) {\r\n e.color = {\r\n color: '#FFC24B'\r\n };\r\n }\r\n edges.push(e);\r\n }\r\n });\r\n context.commit('setEdges', edges);\r\n }\r\n};\r\n\r\nexport const visModule: Module = {\r\n namespaced,\r\n state,\r\n getters,\r\n mutations,\r\n actions\r\n};\r\n","import { Module, GetterTree, MutationTree, ActionTree } from 'vuex';\r\n\r\nimport { notifyLenght, maximumToast } from '@/options';\r\nimport { RootState } from '@/types/store/RootState';\r\n\r\nconst namespaced: boolean = true;\r\n\r\nexport interface Notify {\r\n id?: string;\r\n type: string;\r\n title?: string;\r\n message: string;\r\n timeoutID?: any;\r\n}\r\n\r\ninterface NotifyState {\r\n notifys: Notify[];\r\n}\r\n\r\n// State\r\n\r\nexport const state: NotifyState = {\r\n notifys: []\r\n};\r\n\r\n// Getters\r\n\r\nconst getters: GetterTree = {\r\n getNotifies(notifyState): Notify[] {\r\n return notifyState.notifys;\r\n }\r\n};\r\n\r\n// Mutations\r\n\r\nexport type AddNotifyFn = (notify: Notify) => void;\r\nexport type UpdateNotifyFn = (notify: Notify) => void;\r\nexport type RemoveNotifyFn = (id: string) => void;\r\n\r\nexport const mutations: MutationTree = {\r\n addNotify(notifyState, notify: Notify): void {\r\n notifyState.notifys.push(notify);\r\n },\r\n\r\n updateNotify(notifyState, notify: Notify): void {\r\n const notifyIndex = notifyState.notifys.findIndex(n => n.id === notify.id);\r\n if (notifyIndex > -1) {\r\n notifyState.notifys[notifyIndex] = notify;\r\n }\r\n },\r\n\r\n removeNotify(notifyState, id: string): void {\r\n const notifyIndex = notifyState.notifys.findIndex(n => n.id === id);\r\n if (notifyIndex > -1) {\r\n notifyState.notifys.splice(notifyIndex, 1);\r\n }\r\n },\r\n\r\n removeOldestNotify(notifyState): void {\r\n const notifyCount = notifyState.notifys.length;\r\n\r\n if (notifyCount > 0) {\r\n const notify = notifyState.notifys[0];\r\n if (!!notify.timeoutID) {\r\n clearTimeout(notify.timeoutID);\r\n }\r\n notifyState.notifys.splice(0, 1);\r\n }\r\n }\r\n};\r\n\r\n// Actions\r\n\r\nexport type InsertNotifyFn = (notify: Notify) => void;\r\n\r\nconst actions: ActionTree = {\r\n insertNotify(context, notify: Notify) {\r\n const addNotification = (notification: Notify) => {\r\n notify.id = Math.random()\r\n .toString(36)\r\n .substr(2);\r\n notify.timeoutID = setTimeout((): boolean => {\r\n context.commit('removeNotify', notify.id);\r\n return true;\r\n }, notifyLenght);\r\n context.commit('addNotify', notify);\r\n };\r\n\r\n // Check how many notification we have\r\n const notifyCount = context.state.notifys.length;\r\n\r\n // Don' add duplicate notifications\r\n // Mostly affecting: Network error - if backand not reachable\r\n if (notifyCount > 0) {\r\n if (notify.message !== context.state.notifys[notifyCount - 1].message) {\r\n addNotification(notify);\r\n } else {\r\n // Replace the timeout for the notification\r\n const lastNotify = context.state.notifys[notifyCount - 1];\r\n\r\n clearTimeout(lastNotify.timeoutID);\r\n\r\n lastNotify.timeoutID = setTimeout((): boolean => {\r\n context.commit('removeNotify', lastNotify.id);\r\n return true;\r\n }, notifyLenght);\r\n context.commit('updateNotify', lastNotify);\r\n }\r\n } else {\r\n addNotification(notify);\r\n }\r\n\r\n // If we already reach the maximum notification limit\r\n // remove the oldest\r\n if (notifyCount >= maximumToast) {\r\n context.commit('removeOldestNotify');\r\n }\r\n }\r\n};\r\n\r\nexport const notifyModule: Module = {\r\n namespaced,\r\n state,\r\n getters,\r\n mutations,\r\n actions\r\n};\r\n","import { Module, GetterTree, MutationTree, ActionTree } from 'vuex';\r\n\r\nimport axios from 'axios';\r\nimport { RootState } from '@/types/store/RootState';\r\nimport { FetchData, NodeKlass } from '@/types/c3types';\r\n\r\nconst namespaced: boolean = true;\r\n\r\nexport interface InterfaceItem {\r\n type: number;\r\n name: string;\r\n klass: NodeKlass;\r\n commands: any;\r\n}\r\n\r\nexport interface CapabilityState {\r\n capability: any;\r\n interfaceList: InterfaceItem[];\r\n}\r\n\r\n// State\r\n\r\nexport const state: CapabilityState = {\r\n capability: {},\r\n interfaceList: []\r\n};\r\n\r\n// Getters\r\nexport type GetTypeNameForInterfaceFn = (t: number, k: NodeKlass) => string;\r\nexport type GetTypesForInterfaceKlassFn = (k: NodeKlass) => InterfaceItem[];\r\nexport type GetCapabilityForFn = (\r\n t: string,\r\n k: NodeKlass\r\n) => InterfaceItem | undefined;\r\nexport type GetCommandGroupForFn = (k: NodeKlass) => any;\r\nexport type GetCommandTargetForFn = (\r\n commandName: string,\r\n nodeKlass: NodeKlass,\r\n currentType?: string | number\r\n) => any;\r\n\r\nexport const getters: GetterTree = {\r\n getCommandGroupFor: capabilityState => (nodeKlass: NodeKlass): any => {\r\n let commands: any = {};\r\n\r\n switch (nodeKlass) {\r\n case NodeKlass.Gateway:\r\n if (capabilityState.capability && capabilityState.capability.commands) {\r\n commands = capabilityState.capability.commands;\r\n }\r\n break;\r\n case NodeKlass.Relay:\r\n if (\r\n capabilityState.capability &&\r\n capabilityState.capability.relayCommands\r\n ) {\r\n commands = capabilityState.capability.relayCommands.commands;\r\n }\r\n break;\r\n case NodeKlass.Channel:\r\n if (\r\n capabilityState.capability &&\r\n capabilityState.capability.channelCommands\r\n ) {\r\n commands = capabilityState.capability.channelCommands.commands;\r\n }\r\n break;\r\n case NodeKlass.Peripheral:\r\n if (\r\n capabilityState.capability &&\r\n capabilityState.capability.peripheralCommands\r\n ) {\r\n commands = capabilityState.capability.peripheralCommands.commands;\r\n }\r\n break;\r\n case NodeKlass.Connector:\r\n if (\r\n capabilityState.capability &&\r\n capabilityState.capability.connectorCommands\r\n ) {\r\n commands = capabilityState.capability.connectorCommands.commands;\r\n }\r\n break;\r\n }\r\n\r\n const options: any = {};\r\n if (commands.length !== undefined) {\r\n commands.forEach((element: any) => {\r\n const option = element.name;\r\n options[option] = option;\r\n });\r\n }\r\n\r\n return options;\r\n },\r\n\r\n getCommandTargetFor: capabilityState => (\r\n commandName: string,\r\n nodeKlass: NodeKlass,\r\n currentType?: number | string\r\n ): any => {\r\n let commands: any = {};\r\n\r\n switch (nodeKlass) {\r\n case NodeKlass.Gateway:\r\n if (capabilityState.capability && capabilityState.capability.commands) {\r\n commands = capabilityState.capability.commands;\r\n }\r\n break;\r\n case NodeKlass.Relay:\r\n if (\r\n capabilityState.capability &&\r\n capabilityState.capability.relayCommands\r\n ) {\r\n commands = capabilityState.capability.relayCommands.commands;\r\n }\r\n break;\r\n case NodeKlass.Channel:\r\n if (\r\n capabilityState.capability &&\r\n capabilityState.capability.channelCommands\r\n ) {\r\n commands = capabilityState.capability.channelCommands.commands;\r\n }\r\n break;\r\n case NodeKlass.Peripheral:\r\n if (\r\n capabilityState.capability &&\r\n capabilityState.capability.peripheralCommands\r\n ) {\r\n commands = capabilityState.capability.peripheralCommands.commands;\r\n }\r\n break;\r\n case NodeKlass.Connector:\r\n if (\r\n capabilityState.capability &&\r\n capabilityState.capability.connectorCommands\r\n ) {\r\n commands = capabilityState.capability.connectorCommands.commands;\r\n }\r\n break;\r\n }\r\n\r\n let commandList: any = {};\r\n if (commands.length !== undefined) {\r\n commandList = commands.find((command: any) => {\r\n return command.name === commandName;\r\n });\r\n }\r\n\r\n const options: any = {};\r\n\r\n if (commandList && commandList.arguments) {\r\n const form = commandList.arguments.find((commandItem: any) => {\r\n return commandItem.type === 'form';\r\n });\r\n\r\n form.defaultValue.forEach((option: any) => {\r\n if (currentType === undefined) {\r\n options[option.replace(/:/g, '_')] = option.split(':')[2];\r\n } else {\r\n const optionType = option.split(':')[1];\r\n if (optionType === currentType) {\r\n options[option.replace(/:/g, '_')] = option.split(':')[2];\r\n }\r\n }\r\n });\r\n }\r\n\r\n return options;\r\n },\r\n\r\n getTypeNameForInterface: capabilityState => (\r\n t: number,\r\n k: NodeKlass\r\n ): string | undefined => {\r\n const item = capabilityState.interfaceList.find((i: InterfaceItem) => {\r\n return '' + i.type === '' + t; // && i.klass === k;\r\n });\r\n if (item !== undefined) {\r\n return item.name;\r\n }\r\n return '';\r\n },\r\n\r\n getTypesForInterfaceKlass: capabilityState => (\r\n k: NodeKlass\r\n ): InterfaceItem[] => {\r\n return capabilityState.interfaceList.filter((i: InterfaceItem) => {\r\n return i.klass === k;\r\n });\r\n },\r\n\r\n getCapabilityFor: capabilityState => (\r\n n: string,\r\n k: NodeKlass\r\n ): InterfaceItem | undefined => {\r\n return capabilityState.interfaceList.find((i: InterfaceItem) => {\r\n return i.name === n && i.klass === k;\r\n });\r\n }\r\n};\r\n\r\n// Mutations\r\n\r\nexport const mutations: MutationTree = {\r\n updateCapability(capabilityState, c: any) {\r\n capabilityState.interfaceList = [];\r\n capabilityState.capability = c;\r\n },\r\n\r\n populateList(capabilityState) {\r\n const getItem = (i: string) => {\r\n if (capabilityState.capability && capabilityState.capability[i]) {\r\n capabilityState.capability[i].forEach((element: InterfaceItem) => {\r\n const item: any = {\r\n type: element.type,\r\n name: element.name,\r\n commands: element.commands\r\n };\r\n\r\n switch (i) {\r\n case 'channels':\r\n item.klass = NodeKlass.Channel;\r\n break;\r\n case 'connectors':\r\n item.klass = NodeKlass.Connector;\r\n break;\r\n case 'peripherals':\r\n item.klass = NodeKlass.Peripheral;\r\n break;\r\n case 'gateway':\r\n item.klass = NodeKlass.Gateway;\r\n break;\r\n case 'relay':\r\n item.klass = NodeKlass.Relay;\r\n break;\r\n }\r\n\r\n capabilityState.interfaceList.push(item);\r\n });\r\n }\r\n };\r\n\r\n getItem('channels');\r\n getItem('connectors');\r\n getItem('peripherals');\r\n getItem('gateway');\r\n getItem('relay');\r\n }\r\n};\r\n\r\n// Actions\r\n\r\nconst actions: ActionTree = {\r\n fetchCapability(context, d: FetchData): void {\r\n if (d.gatewayId) {\r\n const url = `/api/gateway/${d.gatewayId}/capability`;\r\n const baseURL = `${context.rootGetters['optionsModule/getAPIUrl']}:${context.rootGetters['optionsModule/getAPIPort']}`;\r\n axios\r\n .get(url, { baseURL })\r\n .then(response => {\r\n context.commit('updateCapability', response.data);\r\n context.commit('populateList', response.data);\r\n })\r\n .catch(error => {\r\n context.dispatch(\r\n 'notifyModule/insertNotify',\r\n { type: 'error', message: error.message },\r\n { root: true }\r\n );\r\n // tslint:disable-next-line:no-console\r\n console.error(error.message);\r\n });\r\n } else {\r\n context.dispatch(\r\n 'notifyModule/insertNotify',\r\n { type: 'error', message: 'missing: gatewayId' },\r\n { root: true }\r\n );\r\n // tslint:disable-next-line:no-console\r\n console.error('missing: gatewayId');\r\n }\r\n }\r\n};\r\n\r\nexport const c3Capability: Module = {\r\n namespaced,\r\n state,\r\n getters,\r\n mutations,\r\n actions\r\n};\r\n","import { Module, GetterTree, MutationTree, ActionTree } from 'vuex';\r\nimport { RootState } from '@/types/store/RootState';\r\nimport { refreshInterval } from '@/options';\r\n\r\nconst namespaced: boolean = true;\r\n\r\ninterface OptionsState {\r\n baseUrl: string;\r\n port: number;\r\n refreshInterval: number;\r\n}\r\n\r\n// State\r\n\r\nconst state: OptionsState = {\r\n baseUrl: 'http://localhost',\r\n port: 52935,\r\n refreshInterval: 2000\r\n};\r\n\r\n// Getters\r\n\r\nconst getters: GetterTree = {\r\n getAPIUrl(optionsState): string {\r\n return optionsState.baseUrl;\r\n },\r\n\r\n getAPIPort(optionsState): number {\r\n return optionsState.port;\r\n },\r\n\r\n getAPIBaseUrl(optionsState): string {\r\n return optionsState.baseUrl + ':' + optionsState.port;\r\n },\r\n\r\n getRefreshInterval(optionsState): number {\r\n return optionsState.refreshInterval;\r\n }\r\n};\r\n\r\n// Mutations\r\n\r\nexport type SetBaseURLFn = (url: string) => void;\r\nexport type SetBasePortFn = (port: number) => void;\r\nexport type SetRefreshIntervalFn = (refreshInterval: number) => void;\r\n\r\nexport const mutations: MutationTree = {\r\n setBaseURL(optionsState, url: string): void {\r\n optionsState.baseUrl = url;\r\n },\r\n\r\n setBasePort(optionsState, port: number): void {\r\n optionsState.port = port;\r\n },\r\n\r\n setRefreshInterval(optionsState, refreshRate: number): void {\r\n optionsState.refreshInterval = refreshRate;\r\n }\r\n};\r\n\r\n// Actions\r\n\r\nconst actions: ActionTree = {};\r\n\r\nexport const optionsModule: Module = {\r\n namespaced,\r\n state,\r\n getters,\r\n mutations,\r\n actions\r\n};\r\n","import { Module, GetterTree, MutationTree, ActionTree } from 'vuex';\r\n\r\nimport axios from 'axios';\r\nimport { RootState } from '@/types/store/RootState';\r\nimport { C3Command } from '@/types/c3types';\r\n\r\nconst namespaced: boolean = true;\r\n// State\r\n\r\nexport interface C3CommandState {\r\n commands: C3Command[];\r\n totalCount: number;\r\n}\r\n\r\nexport const state: C3CommandState = {\r\n commands: [],\r\n totalCount: 0\r\n};\r\n\r\n// Getters\r\n\r\nexport type GetCommandFn = (id: string) => C3Command | undefined;\r\n\r\nexport const getters: GetterTree = {\r\n // return gateways agentIds\r\n getCommands(C3State): C3Command[] {\r\n return C3State.commands;\r\n },\r\n\r\n getCommand: C3State => (id: string | number): C3Command | undefined => {\r\n return C3State.commands.find(command => {\r\n return '' + command.id === '' + id;\r\n });\r\n },\r\n\r\n getCommandCount(C3State): number {\r\n return C3State.totalCount;\r\n }\r\n};\r\n\r\n// Mutations\r\n\r\nexport const mutations: MutationTree = {\r\n updateCommands(C3State, data: any) {\r\n C3State.commands = data;\r\n },\r\n\r\n updateTotalCount(C3State, totalCount: number) {\r\n C3State.totalCount = totalCount;\r\n }\r\n};\r\n\r\n// Actions\r\n\r\nexport type FetchC3CommandFn = (gatewayId: string) => void;\r\n\r\nconst actions: ActionTree = {\r\n fetchCommands(context, gatewayId: string) {\r\n if (!!gatewayId) {\r\n const page = context.rootGetters['paginateModule/getActualPage'];\r\n const perPage = context.rootGetters['paginateModule/getItemPerPage'];\r\n\r\n const url = `/api/gateway/${gatewayId}/command?all=true&page=${page}&perPage=${perPage}`;\r\n const baseURL = `${context.rootGetters['optionsModule/getAPIUrl']}:${context.rootGetters['optionsModule/getAPIPort']}`;\r\n\r\n axios\r\n .get(url, { baseURL })\r\n .then(response => {\r\n // store the gateway\r\n context.commit('updateCommands', response.data);\r\n\r\n let totalCount = 0;\r\n if (!!response.headers['X-Total-Count']) {\r\n totalCount = response.headers['X-Total-Count'];\r\n } else if (response.headers['x-total-count']) {\r\n totalCount = response.headers['x-total-count'];\r\n }\r\n if (!!totalCount) {\r\n context.commit('updateTotalCount', totalCount);\r\n }\r\n })\r\n .catch(error => {\r\n context.dispatch(\r\n 'notifyModule/insertNotify',\r\n { type: 'error', message: error.message },\r\n { root: true }\r\n );\r\n // tslint:disable-next-line:no-console\r\n console.error(error.message);\r\n });\r\n } else {\r\n context.dispatch(\r\n 'notifyModule/insertNotify',\r\n { type: 'error', message: 'missing: gatewayId' },\r\n { root: true }\r\n );\r\n // tslint:disable-next-line:no-console\r\n console.error('missing: gatewayId');\r\n }\r\n }\r\n};\r\n\r\nexport const c3CommandModule: Module = {\r\n namespaced,\r\n state,\r\n getters,\r\n mutations,\r\n actions\r\n};\r\n","import Vue from 'vue';\r\nimport Vuex, { StoreOptions } from 'vuex';\r\n\r\nimport { RootState } from '@/types/store/RootState';\r\n\r\nimport { c3Module } from '@/store/C3Module';\r\nimport { modalModule } from '@/store/ModalModule';\r\nimport { paginateModule } from '@/store/PaginateModule';\r\nimport { visModule } from '@/store/VisModule';\r\nimport { notifyModule } from '@/store/NotifyModule';\r\nimport { c3Capability } from '@/store/C3Capability';\r\nimport { optionsModule } from '@/store/OptionsModule';\r\nimport { c3CommandModule } from '@/store/C3Command';\r\n\r\nVue.use(Vuex);\r\n\r\nconst store: StoreOptions = {\r\n state: {\r\n version: '1.0.0'\r\n },\r\n modules: {\r\n c3Module,\r\n visModule,\r\n modalModule,\r\n notifyModule,\r\n c3Capability,\r\n optionsModule,\r\n paginateModule,\r\n c3CommandModule\r\n }\r\n};\r\n\r\nexport default new Vuex.Store(store);\r\n","import Vue from 'vue';\r\nimport App from './App.vue';\r\nimport store from './store';\r\nimport VeeValidate from 'vee-validate';\r\n\r\nimport './scss/main.scss';\r\nimport 'vis/dist/vis.css';\r\n\r\nVue.config.productionTip = false;\r\n\r\n(window as any).networkc3 = {};\r\n\r\nVue.use(VeeValidate, {\r\n inject: false,\r\n validity: true\r\n});\r\n\r\nnew Vue({\r\n store,\r\n render: h => h(App)\r\n}).$mount('#app');\r\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=style&index=0&id=180a7aec&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=style&index=0&id=180a7aec&scoped=true&lang=sass&\"","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=sass&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectRelays.vue?vue&type=style&index=0&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectRelays.vue?vue&type=style&index=0&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommandCenter.vue?vue&type=style&index=0&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommandCenter.vue?vue&type=style&index=0&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralForm.vue?vue&type=style&index=0&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralForm.vue?vue&type=style&index=0&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RouteList.vue?vue&type=style&index=0&id=35f03fb2&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RouteList.vue?vue&type=style&index=0&id=35f03fb2&scoped=true&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectorList.vue?vue&type=style&index=0&id=660d5fa2&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectorList.vue?vue&type=style&index=0&id=660d5fa2&scoped=true&lang=sass&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=style&index=0&lang=sass&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=style&index=0&lang=sass&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Select.vue?vue&type=style&index=0&id=434d5f55&scoped=true&lang=sass&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Select.vue?vue&type=style&index=0&id=434d5f55&scoped=true&lang=sass&\""],"sourceRoot":""} \ No newline at end of file