PageSourceSearch

https://insights.cyrisk.com/js/9422.68d5850f.js

js cyrisk.com collected 2026-10-04 13:27:44 UTC 23,729 bytes, 1 lines download raw bytes

1"use strict";(self["webpackChunkcyrisk"]=self["webpackChunkcyrisk"]||[]).push([[9422],{18017:function(e,t,a){a.d(t,{Cj:function(){return l},XF:function(){return n},aN:function(){return s},he:function(){return o},k9:function(){return r},zg:function(){return i}});a(74423);const o=e=>{switch(e){case"vulnerable_service":return"VUL-CHK";case"privacy_check":return"PRD-CHK";case"domain_configuration":return"DOM-CHK";default:return"RUL-CHK"}},r=(e,t)=>{const a=/[a-z]/g,o=/[A-Z]/g,r=/[0-9]/g,i=/[-_!@#$%^&*(),.?":{}|<>\\]/g,n={...e};return n.upper=!!t.match(o),n.lower=!!t.match(a),n.number=!!t.match(r),n.special=!!t.match(i),n.length=t.length>7,n},i=(e,t)=>{if("boolean"===typeof e)return e?"Yes":"No";if(!e)return"Not Provided";if(Array.isArray(e)){if(!e.length)return"None";e=e.join(", ")}if("string"===typeof e){if(!t)return e;t.includes("noUnderscores")&&(e=e.replace(/_/g," ")),t.includes("titleCase")&&(e=e.replace(/(?:^|\s|-)\S/g,e=>e.toUpperCase())),t.includes("capitalize")&&(e=e.charAt(0).toUpperCase()+e.slice(1))}return t.includes("numberCommas")&&(e=e.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")),t.includes("infinite")&&-1===e&&(e="unlimited"),e},n=e=>{const t=new Date(e);return"string"===typeof e&&"[object Date]"===Object.prototype.toString.call(t)?isNaN(t.getTime())?e:t.toLocaleDateString("en-US",{hour:"numeric",hour12:!0,minute:"numeric"}):e},l=e=>{if(!e)return"Not Provided";const t=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD"});return t.format(e)},s=e=>{const t=e.getFullYear(),a=e.getMonth()+1,o=e.getDate();return`${t}-${a}-${o}`}},72279:function(e,t,a){a.d(t,{A:function(){return d}});var o=a(96913);const r={key:0,id:"preload-text",class:"text-center"};function i(e,t,a,i,n,l){return(0,o.openBlock)(),(0,o.createElementBlock)("div",{id:"preloader",style:(0,o.normalizeStyle)(l.displayPadding)},[(0,o.createElementVNode)("div",{class:"wrapper",style:(0,o.normalizeStyle)(l.displaySize)},[t[0]||(t[0]=(0,o.createElementVNode)("img",{class:"loader",src:"/preloader.gif",alt:"preloader"},null,-1)),l.displayMessage?((0,o.openBlock)(),(0,o.createElementBlock)("h4",r,(0,o.toDisplayString)(l.displayMessage),1)):(0,o.createCommentVNode)("",!0),(0,o.renderSlot)(e.$slots,"default",{},void 0,!0)],4)],4)}var n={name:"preloader",props:{message:String,size:Number,padding:Number},data(){return{}},computed:{displayMessage(){return"none"!==this.message?this.message?this.message:"Loading...":null},displaySize(){return this.size?{"font-size":`${this.size}em`}:{"font-size":"1em"}},displayPadding(){return this.padding?{padding:`${this.padding}em`}:{padding:"3em"}}}},l=a(66262);const s=(0,l.A)(n,[["render",i],["__scopeId","data-v-3919876b"]]);var d=s},39422:function(e,t,a){a.r(t),a.d(t,{default:function(){return oe}});var o=a(96913);const r={id:"frameworks"},i={class:"text-left button-row"},n={id:"table-wrapper"};function l(e,t,a,l,s,d){const c=(0,o.resolveComponent)("add-framework-button"),u=(0,o.resolveComponent)("framework-help-button"),p=(0,o.resolveComponent)("framework-table"),f=(0,o.resolveComponent)("card");return(0,o.openBlock)(),(0,o.createElementBlock)("div",r,[(0,o.createVNode)(f,{class:"p-4"},{default:(0,o.withCtx)(()=>[t[0]||(t[0]=(0,o.createElementVNode)("h1",{class:"text-left mb-3"},[(0,o.createElementVNode)("i",{class:"fas fa-cubes"}),(0,o.createTextVNode)(" Frameworks")],-1)),(0,o.createElementVNode)("div",i,[(0,o.createVNode)(c,{onUpdated:d.frameworksUpdated,class:"d-inline-block mr-2"},null,8,["onUpdated"]),(0,o.createVNode)(u,{class:"d-inline-block"})]),(0,o.createElementVNode)("div",n,[((0,o.openBlock)(),(0,o.createBlock)(p,{key:"framework-table-"+s.updateKey}))])],void 0,!0),_:1})])}const s={id:"framework-table"};function d(e,t,a,r,i,n){const l=(0,o.resolveComponent)("preloader"),d=(0,o.resolveComponent)("DxSearchPanel"),c=(0,o.resolveComponent)("DxPaging"),u=(0,o.resolveComponent)("DxColumn"),p=(0,o.resolveComponent)("DxMasterDetail"),f=(0,o.resolveComponent)("framework-detail"),m=(0,o.resolveComponent)("DxTexts"),h=(0,o.resolveComponent)("DxEditing"),v=(0,o.resolveComponent)("DxButton"),b=(0,o.resolveComponent)("DxDataGrid");return(0,o.openBlock)(),(0,o.createElementBlock)("div",s,[i.loading?((0,o.openBlock)(),(0,o.createBlock)(l,{key:0})):((0,o.openBlock)(),(0,o.createBlock)(b,{key:1,"show-borders":!1,"data-source":i.data.results,onRowRemoved:t[0]||(t[0]=e=>n.rowDeleted(e)),"allow-search":!0,"page-size":15,"allow-column-resizing":!0,class:"framework-detail-table"},{frameworkDetailTemplate:(0,o.withCtx)(({data:e})=>[(0,o.createVNode)(f,{data:e.row.data.framework_data},null,8,["data"])]),default:(0,o.withCtx)(()=>[(0,o.createVNode)(d,{visible:!0,width:300}),(0,o.createVNode)(c,{"page-size":10}),(0,o.createVNode)(u,{"data-field":"framework",caption:"Framework"}),(0,o.createVNode)(u,{"data-field":"version",caption:"Version"}),(0,o.createVNode)(u,{"data-field":"created_datetime",caption:"Created","customize-text":n.formatCreated},null,8,["customize-text"]),(0,o.createVNode)(p,{enabled:!0,template:"frameworkDetailTemplate"}),(0,o.createVNode)(h,{"use-icons":!0,"allow-adding":!1,"allow-updating":!1,"allow-deleting":!0,mode:"row"},{default:(0,o.withCtx)(()=>[(0,o.createVNode)(m,{confirmDeleteMessage:"Are you sure you want to delete this framework? The framework and all assessments created with it will be permanently lost."})],void 0,!0),_:1}),(0,o.createVNode)(u,{type:"buttons",width:110},{default:(0,o.withCtx)(()=>[(0,o.createVNode)(v,{name:"delete",icon:"/delete.png"})],void 0,!0),_:1})],void 0,!0),_:1},8,["data-source"]))])}var c=a(4612),u=a(38317),p=a(72279);const f={class:"compliance-detail"};function m(e,t,a,r,i,n){const l=(0,o.resolveComponent)("DxFilterRow"),s=(0,o.resolveComponent)("DxColumn"),d=(0,o.resolveComponent)("DxDataGrid");return(0,o.openBlock)(),(0,o.createElementBlock)("div",f,[(0,o.createVNode)(d,{"show-borders":!1,"data-source":a.data,"allow-column-resizing":!0,class:"framework-detail-table"},{default:(0,o.withCtx)(()=>[(0,o.createVNode)(l,{visible:!0}),(0,o.createVNode)(s,{"data-field":"order_id",caption:"Order ID"}),(0,o.createVNode)(s,{"data-field":"section_id",caption:"Section ID"}),(0,o.createVNode)(s,{"data-field":"section_label",caption:"Section Label"}),(0,o.createVNode)(s,{"data-field":"sub_section_id",caption:"Sub Section ID"}),(0,o.createVNode)(s,{"data-field":"sub_section_label",caption:"Sub Section Label"}),(0,o.createVNode)(s,{"data-field":"question_id",caption:"Question ID"}),(0,o.createVNode)(s,{"data-field":"label",caption:"Label"}),(0,o.createVNode)(s,{"data-field":"title",caption:"Title"}),(0,o.createVNode)(s,{"data-field":"attach_files",caption:"Attach Files"}
1),(0,o.createVNode)(s,{"data-field":"type",caption:"Type"}),(0,o.createVNode)(s,{"data-field":"values",caption:"Values"}),(0,o.createVNode)(s,{"data-field":"depends_on",caption:"Dependency"}),(0,o.createVNode)(s,{"data-field":"depends_on_value",caption:"Dependency Value"}),(0,o.createVNode)(s,{"data-field":"operation",caption:"Operation"}),(0,o.createVNode)(s,{"data-field":"required",caption:"Required"}),(0,o.createVNode)(s,{"data-field":"internal_reference",caption:"Internal Reference"}),(0,o.createVNode)(s,{"data-field":"impact_rating",caption:"Impact Rating"})],void 0,!0),_:1},8,["data-source"])])}var h={components:{DxDataGrid:c.jf,DxColumn:c.VZ,DxFilterRow:c.Ri},props:{data:Array},methods:{}},v=a(66262);const b=(0,v.A)(h,[["render",m],["__scopeId","data-v-12993a45"]]);var g=b,w=a(18017),k={components:{DxDataGrid:c.jf,DxColumn:c.VZ,DxEditing:c.rW,DxTexts:c.xB,DxMasterDetail:c.Sj,frameworkDetail:g,preloader:p.A,DxSearchPanel:c.xG,DxPaging:c.N0,DxButton:c.x0},data(){return{loading:!0,data:null}},methods:{formatCreated(e){return(0,w.XF)(e.value)},async init(){this.data=await u.A.call({action:"get",endpoint:"frameworks",limit:9999}).then(e=>e.data).catch(e=>{console.error(e),this.catchError("Error fetching frameworks.")}),this.data&&(this.loading=!1)},async rowDeleted(e){await u.A.call({action:"delete",endpoint:"frameworks",ID:e.data.id}).then(()=>{this.dialog("Framework deleted")}).catch(e=>{console.error(e),this.catchError("Error deleting framework."),this.init()})}},created(){this.init()}};const x=(0,v.A)(k,[["render",d],["__scopeId","data-v-b8523912"]]);var _=x;const y={class:"add-framework-button"};function V(e,t,a,r,i,n){const l=(0,o.resolveComponent)("add-framewwork"),s=(0,o.resolveComponent)("dx-popup");return(0,o.openBlock)(),(0,o.createElementBlock)("div",y,[(0,o.createElementVNode)("div",{class:"blu-button",id:"add-fw-popup",name:"add-fw-popup","aria-label":"open popup to add framework",onClick:t[0]||(t[0]=e=>i.popupOpen=!0)},[...t[2]||(t[2]=[(0,o.createElementVNode)("i",{class:"fas fa-plus"},null,-1),(0,o.createTextVNode)(" New Framework ",-1)])]),(0,o.createVNode)(s,{height:e.gPopupHeight(400),width:e.gPopupWidth(600),title:"Add Framework",visible:i.popupOpen,"onUpdate:visible":t[1]||(t[1]=e=>i.popupOpen=e)},{default:(0,o.withCtx)(()=>[(0,o.createElementVNode)("div",null,[i.popupOpen?((0,o.openBlock)(),(0,o.createBlock)(l,{key:0,onClose:n.addComplete},null,8,["onClose"])):(0,o.createCommentVNode)("",!0)])],void 0,!0),_:1},8,["height","width","visible"])])}var N=a(679);const C={class:"add-framework"},D={class:"file-input-wrapper"},q={key:0,class:"error mt-1"},E={class:"py-1 px-3"};function A(e,t,a,r,i,n){const l=(0,o.resolveComponent)("preloader"),s=(0,o.resolveComponent)("dx-required-rule"),d=(0,o.resolveComponent)("dx-string-length-rule"),c=(0,o.resolveComponent)("dx-validator"),u=(0,o.resolveComponent)("dx-text-box"),p=(0,o.resolveComponent)("DxValidationGroup"),f=(0,o.resolveComponent)("dx-scroll-view"),m=(0,o.resolveComponent)("dx-popup");return(0,o.openBlock)(),(0,o.createElementBlock)("div",C,[i.loading?((0,o.openBlock)(),(0,o.createBlock)(l,{key:0})):(0,o.createCommentVNode)("",!0),i.loading?(0,o.createCommentVNode)("",!0):((0,o.openBlock)(),(0,o.createBlock)(p,{key:1,ref:"setup",id:"frameworkGroup"},{default:(0,o.withCtx)(()=>[t[4]||(t[4]=(0,o.createElementVNode)("label",null,"Select File",-1)),(0,o.createElementVNode)("div",D,[(0,o.createElementVNode)("input",{name:"framework-file",id:"framework-file","aria-label":"framework file",type:"file",class:"file",ref:"file",onChange:t[0]||(t[0]=e=>n.selectFile())},null,544),i.error?((0,o.openBlock)(),(0,o.createElementBlock)("div",q,(0,o.toDisplayString)(i.error),1)):(0,o.createCommentVNode)("",!0)]),t[5]||(t[5]=(0,o.createElementVNode)("label",null,"Name",-1)),(0,o.createVNode)(u,{autocomplete:"off",id:"fw-name-dx","input-attr":{name:"fw-name",id:"fw-name","aria-label":"enter fw-name"},modelValue:i.name,"onUpdate:modelValue":t[1]||(t[1]=e=>i.name=e)},{default:(0,o.withCtx)(()=>[(0,o.createVNode)(c,{validationGroup:"frameworkGroup"},{default:(0,o.withCtx)(()=>[(0,o.createVNode)(s,{message:"Please provide a framework name"}),(0,o.createVNode)(d,{max:255,message:"Please limit this field to no more that 255 characters"})],void 0,!0),_:1})],void 0,!0),_:1},8,["modelValue"]),(0,o.createElementVNode)("div",{class:"submit-framework blu-button",onClick:t[2]||(t[2]=(...e)=>n.submitFramework&&n.submitFramework(...e)),id:"submit-framework",name:"submit-framework","aria-label":"submit framework"}," Submit ")],void 0,!0),_:1},512)),(0,o.createVNode)(m,{height:e.gPopupHeight(800),width:e.gPopupWidth(600),title:"Error adding framework",visible:i.popupOpen,"onUpdate:visible":t[3]||(t[3]=e=>i.popupOpen=e)},{default:(0,o.withCtx)(()=>[(0,o.createVNode)(f,null,{default:(0,o.withCtx)(()=>[(0,o.createElementVNode)("div",E,[t[6]||(t[6]=(0,o.createElementVNode)("h1",{class:"mb-3 big"},[(0,o.createElementVNode)("i",{class:"fas fa-exclamation-triangle error"}),(0,o.createTextVNode)(" Errors: ")],-1)),((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(i.postErrors,(e,t)=>((0,o.openBlock)(),(0,o.createElementBlock)("p",{class:"error",key:t},(0,o.toDisplayString)(e),1))),128))])],void 0,!0),_:1})],void 0,!0),_:1},8,["height","width","visible"])])}a(74423),a(44114),a(18111),a(7588),a(61701),a(17642),a(58004),a(33853),a(45876),a(32475),a(15024),a(31698),a(64979);var B=a(92259),S=a.n(B),F=a(16498),I=a(97043),P=a(40464),T=a(7628),U=a(40925),O={components:{DxTextBox:F.Ay,DxValidator:I.Z2,DxRequiredRule:I.az,DxStringLengthRule:I.Wx,DxValidationGroup:P.A,preloader:p.A,DxPopup:N.jF,DxScrollView:T.$},data(){return{file:null,fileIsValid:!0,error:"",data:null,name:"",loading:!1,validKeys:["order_id","section_id","section_label","question_id","depends_on","depends_on_value","info","type","label","maturity_value","o
1peration","internal_reference","values","required","internal_reference","sub_section_id","sub_section_label","attach_files","title","impact_rating"],postErrors:[],popupOpen:!1}},methods:{init(){this.file=null,this.fileIsValid=!0,this.error="",this.loading=!1},async submitFramework(){this.postErrors=null;const e=U.A.validateGroup("frameworkGroup");this.file||(this.error="Please select a file."),this.file&&this.fileIsValid&&e.isValid&&(this.loading=!0,u.A.call({action:"post",endpoint:"frameworks",params:{framework:this.name,framework_data:this.data}}).then(()=>{this.dialog("Framework added succesfully"),this.$emit("close")}).catch(e=>{this.postErrors=this.formatErrors(e.response.data),this.popupOpen=!0}),this.loading=!1)},formatErrors(e){const t=[];if(e.framework_data){let a=1;for(const o of e.framework_data){a++;for(const e in o)t.push(`Row: ${a}, Column: ${e}, Error: ${o[e]}`)}}return t},fixKeys(e){return e.trim().toLowerCase().replace(" ","_")},fixValues(e,t){switch(e){case"values":return t?Array.from(new Set(t.split("|").map(e=>e.trim()))):null;case"maturity_value":return t?t.split("|").map(e=>e.trim()):null;case"required":return!(!t||"true"!=t.toLowerCase()&&1!=t);case"type":return t.toLowerCase();case"impact_rating":return Number(t);case"attach_files":if(!t)return!1;break}return"'"===t?null:t},idiotProofData(e){for(const t of e){const e=Object.keys(t);e.forEach(e=>{const a=this.fixKeys(e);if(t[a]=this.fixValues(a,t[e]),a!==e&&delete t[e],!this.validKeys.includes(a))throw`invalid header in csv file! "${e}"`}),t.answers=t.values?.map((e,a)=>({answer_text:e,maturity_value:t.maturity_value?.[a]}))||[],delete t.values,delete t.maturity_value}return this.validateRows(e),e},hasDuplicates(e){return new Set(e).size!==e.length},validateRows(e){const t=[],a=[],o=[],r=[];for(const l of e)t.push(l.question_id),a.includes(l.section_id)||a.push(l.section_id),o.includes(l.sub_section_id)||o.push(l.sub_section_id),r.includes(l.depends_on)||r.push(l.depends_on);const i=r.filter(e=>!t.includes(e));if(i.length>1)throw`Dependency  ${i.join(", ")} not found`;if(this.hasDuplicates(t))throw"Duplicate question ids";const n=a.filter(e=>o.includes(e));if(n.length)throw`Section and subsection IDs cannot be identical ${n.join(", ")}`},async selectFile(){if(this.error="",this.file=this.$refs.file.files[0],this.fileIsValid=this.validateFile(this.file),this.fileIsValid)try{this.data=await this.read(this.file).catch(e=>{console.error(e),this.catchError("Error reading file. Please try again.")});const e=await S()({trim:!0,flatKeys:!0}).fromString(this.data).then(e=>e);this.data=this.idiotProofData(e)}catch(e){console.error(e),this.catchError("Error selecting file",1e4),this.file=null}else this.error="Invalid file type. Please select a valid .csv file."},read(e){const t=new FileReader;return new Promise((a,o)=>{t.onerror=()=>{t.abort(),o(new DOMException("Problem parsing input file."))},t.onload=()=>{a(t.result)},t.readAsText(e)})},validateFile(e){const t=["text/csv","text/plain","application/vnd.ms-excel","application/vnd.msexcel","application/excel","text/x-csv","application/csv","application/x-csv","text/comma-separated-values","text/x-comma-separated-values","text/tab-separated-values"];return!!t.includes(e.type)}},created(){this.init()}};const z=(0,v.A)(O,[["render",A],["__scopeId","data-v-14e626d3"]]);var $=z,R={components:{DxPopup:N.jF,addFramewwork:$},data(){return{popupOpen:!1}},methods:{addComplete(){this.popupOpen=!1,this.$emit("updated")}}};const L=(0,v.A)(R,[["render",V],["__scopeId","data-v-66bab29a"]]);var j=L;const G={id:"framework-info"};function K(e,t,a,r,i,n){const l=(0,o.resolveComponent)("framework-help"),s=(0,o.resolveComponent)("dx-scroll-view"),d=(0,o.resolveComponent)("dx-popup");return(0,o.openBlock)(),(0,o.createElementBlock)("div",G,[(0,o.createElementVNode)("div",{class:"blu-button",onClick:t[0]||(t[0]=e=>i.popupOpen=!0),id:"help-fw-popup",name:"help-fw-popup","aria-label":"open popup to get help regarding framework"},[...t[2]||(t[2]=[(0,o.createTextVNode)(" Help ",-1),(0,o.createElementVNode)("i",{class:"fas fa-question-circle"},null,-1)])]),(0,o.createVNode)(d,{height:e.gPopupHeight(800),width:e.gPopupWidth(1200),title:"Help",visible:i.popupOpen,"onUpdate:visible":t[1]||(t[1]=e=>i.popupOpen=e)},{default:(0,o.withCtx)(()=>[(0,o.createVNode)(s,null,{default:(0,o.withCtx)(()=>[(0,o.createVNode)(l)],void 0,!0),_:1})],void 0,!0),_:1},8,["height","width","visible"])])}const H={id:"framework-help"};function M(e,t,a,r,i,n){return(0,o.openBlock)(),(0,o.createElementBlock)("div",H,[...t[0]||(t[0]=[(0,o.createStaticVNode)('<h1 data-v-5bf0511c>Adding A New Framework</h1><p data-v-5bf0511c> To create a new Framework, first create a CSV file with the headers listed below, if a feild is not required (<i class="fas fa-asterisk" data-v-5bf0511c></i>) you may leave it blank. </p><p data-v-5bf0511c><strong data-v-5bf0511c><a href="/example-framework.csv" data-v-5bf0511c>Download Example CSV</a></strong></p><p data-v-5bf0511c> Click the new framework button <span class="blu-button" data-v-5bf0511c><i class="fas fa-plus" data-v-5bf0511c></i>
1 New Framework </span>; in the popup that follows, click browse to attach your file. Enter a name and version number and click submit. </p><ul data-v-5bf0511c><li data-v-5bf0511c><strong data-v-5bf0511c>order_id</strong><i class="fas fa-asterisk" data-v-5bf0511c></i>: A five digit numeric ID that is used to determine the order in which the questions will appear. </li><li data-v-5bf0511c><strong data-v-5bf0511c>section_id</strong><i class="fas fa-asterisk" data-v-5bf0511c></i>: Used to sort questions into groups, all questions of the same section_id appear as a single editable section of the framework. </li><li data-v-5bf0511c><strong data-v-5bf0511c>section_label</strong><i class="fas fa-asterisk" data-v-5bf0511c></i>: A human-readable text string used to label the section. This label is what will appear in the user interface. </li><li data-v-5bf0511c><strong data-v-5bf0511c>question_id</strong><i class="fas fa-asterisk" data-v-5bf0511c></i>: A unique identification string for each question. Please ensure all question_ids are distinct and not repeated. </li><li data-v-5bf0511c><strong data-v-5bf0511c>depends_on</strong>: This column is the question_id of a separate question upon which the current question will use to determine its visibility in the UI. It should be an exact match for another question_id within the same sheet. See depends_on_value below for usage. </li><li data-v-5bf0511c><strong data-v-5bf0511c>depends_on_value</strong>: The submitted value of a separate question necessary for the question to show. You must include a valid question_id within the depends_on column of this row for this to take effect. For example, if Question A depends on question B, then the submitted_value of question B must contain the depends_on_value of question A, or the UI will not display question A. </li><li data-v-5bf0511c><strong data-v-5bf0511c>info</strong>: A block of text used for the information popup on a question; if none is provided, the info button is not shown. </li><li data-v-5bf0511c><strong data-v-5bf0511c>type</strong><i class="fas fa-asterisk" data-v-5bf0511c></i>: The type of editor that the UI will display for the question, options below: <ul data-v-5bf0511c><li data-v-5bf0511c><strong data-v-5bf0511c>boolean</strong>: A simple true or false toggle.</li><li data-v-5bf0511c><strong data-v-5bf0511c>currency</strong>: A number box with two decimal places and prefixed with &quot;$&quot;. </li><li data-v-5bf0511c><strong data-v-5bf0511c>date</strong> A date box / date picker.</li><li data-v-5bf0511c><strong data-v-5bf0511c>domain ip</strong>: An input for creating a list of domains and/or ip addresses. </li><li data-v-5bf0511c><strong data-v-5bf0511c>email</strong>: A textbox that allows only the entering of strings that appear to be valid email addresses. </li><li data-v-5bf0511c><strong data-v-5bf0511c>file</strong>: An interface for uploading or saving a link to a document. </li><li data-v-5bf0511c><strong data-v-5bf0511c>multi file</strong>: Like the file type, but allows for multiple files / links. </li><li data-v-5bf0511c><strong data-v-5bf0511c>multi select</strong>: A drop-down menu that allows selecting any combination of items within the list via a check box. </li><li data-v-5bf0511c><strong data-v-5bf0511c>number</strong>: A simple numerical input.</li><li data-v-5bf0511c><strong data-v-5bf0511c>percent</strong>: A numerical input limited to within 0 and 100 and suffixed with &quot;%.&quot; </li><li data-v-5bf0511c><strong data-v-5bf0511c>phone</strong>: A numerical input that allows only numbers that appear to be valid US phone numbers, masked with &quot;+1 (___) ___-____&quot; </li><li data-v-5bf0511c><strong data-v-5bf0511c>select</strong>: A drop-down select menu that allows the selection of a single item. </li><li data-v-5bf0511c><strong data-v-5bf0511c>string</strong>: A small single-line text field.</li><li data-v-5bf0511c><strong data-v-5bf0511c>string array</strong>: An interface for creating a list of strings from user input. </li><li data-v-5bf0511c><strong data-v-5bf0511c>textarea</strong>: A multiline text field.</li><li data-v-5bf0511c><strong data-v-5bf0511c>time frame</strong>: A time frame selection interface that allows the entry of a unit of measure ( options: &quot;seconds,&quot; &quot;minutes,&quot; &quot;hours,&quot; &quot;days,&quot; &quot;weeks&quot; ) and a number of the selected unit. The units of measure provided are pulled from the values field of this row, so be sure to add at least one unit of measure to the values array. </li></ul></li><li data-v-5bf0511c><strong data-v-5bf0511c>label</strong><i class="fas fa-asterisk" data-v-5bf0511c></i>: The question as it appears in the UI. </li><li data-v-5bf0511c><strong data-v-5bf0511c>operation</strong>: The logical operation that should be performed when comparing this assessment to others in a status check. Options: &quot;gt&quot; ( greater than ), &quot;gte&quot; ( greater than or equal ), &quot;lt&quot; ( less than ), &quot;lte&quot; ( less than or equal ) and &quot;eq&quot; ( equal ). </li><li data-v-5bf0511c><strong data-v-5bf0511c>values</strong>: The predetermined values that will be used by the editor if it is of type select or multi select, you may use a list of arbitrary values separated by the pipe symbol &quot;|&quot;, for example &quot;value1 | value2 | value3&quot;. </li><li data-v-5bf0511c><strong data-v-5bf0511c>required</strong>: A TRUE or FALSE value that determines whether or not the field should be required to save the section. </li></ul>',5)])])}var W={};const Z=(0,v.A)(W,[["render",M],["__scopeId","data-v-5bf0511c"]]);var Y=Z,Q={components:{DxPopup:N.jF,frameworkHelp:Y,DxScrollView:T.$},data(){return{popupOpen:!1}}};const X=(0,v.A)(Q,[["render",K],["__scopeId","data-v-294e9f0f"]]);var J=X,ee=a(31078),te={components:{frameworkTable:_,addFrameworkButton:j,frameworkHelpButton:J,card:ee.A},data(){return{updateKey:0,loading:!0}},methods:{frameworksUpdated(){this.updateKey++}},created(){this.loading=!1}};const ae=(0,v.A)(te,[["render",l],["__scopeId","data-v-ac462d92"]]);var oe=ae}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.