@mohsinonxrm/pptb-commandbar-studio 0.9.0-beta.1 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +179 -0
- package/README.md +11 -13
- package/SECURITY.md +4 -4
- package/dist/assets/BulkPublishModal-BWRed6Fv.js +36 -0
- package/dist/assets/CommandEditorPanel-B7W3Sqiu.js +1 -0
- package/dist/assets/CommandPalette-Fc4MPKvd.js +1 -0
- package/dist/assets/CompareView-D1FOwnU1.js +7 -0
- package/dist/assets/CrmParameterEditor-DO6Rt764.js +1 -0
- package/dist/assets/EditorDrawer-BtFb9OzQ.js +2 -0
- package/dist/assets/HideInsteadOfDeleteModal-fdtkLfSG.js +1 -0
- package/dist/assets/IconPickerModal-FyQ9ud3R.js +1 -0
- package/dist/assets/ImportXmlModal-BZq0Iglk.js +1 -0
- package/dist/assets/MonacoEditor-CEYP9b6u.js +2 -0
- package/dist/assets/NewButtonModal-5nQ-f2by.js +1 -0
- package/dist/assets/NewGroupModal-vEuxSpnD.js +1 -0
- package/dist/assets/NewTabModal-DNzMru8E.js +1 -0
- package/dist/assets/RuleEditorPanel-B0u4b6vi.js +1 -0
- package/dist/assets/ScriptView-Ct4i8Jja.js +1 -0
- package/dist/assets/TabDisplayRulesPanel-HMmGkIxe.js +1 -0
- package/dist/assets/TranslationsView-DT4Ce3_W.js +1 -0
- package/dist/assets/WebResourceBrowser-L3R7UTNR.js +1 -0
- package/dist/assets/XmlView-CyLtgYex.js +2 -0
- package/dist/assets/{dnd-C1w9VFfC.js → dnd-iy5K5XAJ.js} +2 -2
- package/dist/assets/fluent-ui-CQyNN9H3.js +59 -0
- package/dist/assets/index-D7TexD30.js +136 -0
- package/dist/assets/monaco-DQA8g3bM.css +1 -0
- package/dist/assets/monaco-cQE5XS3B.js +1010 -0
- package/dist/assets/monacoSetup-BIq1zGyP.js +1 -0
- package/dist/assets/preload-helper-PPVm8Dsz.js +1 -0
- package/dist/assets/{server.browser-xEJRzS2D.js → server.browser-DTeSoizu.js} +1 -1
- package/dist/assets/useReplaceWebResourceConfirm-BdTw98QF.js +1 -0
- package/dist/assets/useStableKeys-49o4VnxU.js +1 -0
- package/dist/assets/{xmlValidator-PbODaIQV.js → xmlValidator-xIq-x9Ub.js} +2 -2
- package/dist/icons/icon.svg +4 -7
- package/dist/index.html +4 -6
- package/package.json +3 -1
- package/dist/assets/BulkPublishModal-DzDZJg0U.js +0 -36
- package/dist/assets/CommandEditorPanel-DsCP9yG4.js +0 -1
- package/dist/assets/CommandPalette-ID3kRJ9l.js +0 -1
- package/dist/assets/CompareView-DGsrcdoN.js +0 -7
- package/dist/assets/CrmParameterEditor-C22QGWff.js +0 -1
- package/dist/assets/EditorDrawer-CvCe9WeO.js +0 -2
- package/dist/assets/HideInsteadOfDeleteModal-3j9g-E9l.js +0 -1
- package/dist/assets/IconPickerModal-BLoDLbLR.js +0 -1
- package/dist/assets/ImportXmlModal-BD-L1QzJ.js +0 -1
- package/dist/assets/MonacoEditor-BMKRZv-g.js +0 -2
- package/dist/assets/NewButtonModal-COYXwEyk.js +0 -1
- package/dist/assets/NewGroupModal-boP_t1fI.js +0 -1
- package/dist/assets/NewTabModal-BI4afbC5.js +0 -1
- package/dist/assets/RuleEditorPanel-l8QnRFj6.js +0 -1
- package/dist/assets/ScriptView-BVyCmRvD.js +0 -1
- package/dist/assets/TabDisplayRulesPanel-gORq6MO7.js +0 -1
- package/dist/assets/TranslationsView-DubBATog.js +0 -1
- package/dist/assets/WebResourceBrowser-BATScmTw.js +0 -1
- package/dist/assets/XmlView-Bn4KlTw3.js +0 -2
- package/dist/assets/abap-DLDM7-KI.js +0 -1
- package/dist/assets/apex-DNDY2TF8.js +0 -1
- package/dist/assets/azcli-Y6nb8tq_.js +0 -1
- package/dist/assets/bat-BwHxbl9M.js +0 -1
- package/dist/assets/bicep-CFznDFnq.js +0 -2
- package/dist/assets/cameligo-Bf6VGUru.js +0 -1
- package/dist/assets/clojure-Dnu-v4kV.js +0 -1
- package/dist/assets/coffee-Bd8akH9Z.js +0 -1
- package/dist/assets/cpp-BbWJElDN.js +0 -1
- package/dist/assets/csharp-Co3qMtFm.js +0 -1
- package/dist/assets/csp-D-4FJmMZ.js +0 -1
- package/dist/assets/css-DdJfP1eB.js +0 -3
- package/dist/assets/css.worker-C_6RgliQ.js +0 -97
- package/dist/assets/cssMode-yNaVDuBb.js +0 -1
- package/dist/assets/cypher-cTPe9QuQ.js +0 -1
- package/dist/assets/dart-BOtBlQCF.js +0 -1
- package/dist/assets/dockerfile-BG73LgW2.js +0 -1
- package/dist/assets/ecl-BEgZUVRK.js +0 -1
- package/dist/assets/elixir-BkW5O-1t.js +0 -1
- package/dist/assets/flow9-BeJ5waoc.js +0 -1
- package/dist/assets/fluent-icons-CQEhzzaC.js +0 -1
- package/dist/assets/fluent-ui-BEjALNLO.js +0 -59
- package/dist/assets/freemarker2-CzWSO7cF.js +0 -3
- package/dist/assets/fsharp-PahG7c26.js +0 -1
- package/dist/assets/go-acbASCJo.js +0 -1
- package/dist/assets/graphql-BxJiqAUM.js +0 -1
- package/dist/assets/handlebars-BpG2O9CH.js +0 -1
- package/dist/assets/hcl-DtV1sZF8.js +0 -1
- package/dist/assets/html-Bm7ESfBq.js +0 -1
- package/dist/assets/html.worker-CLyYFd_g.js +0 -474
- package/dist/assets/htmlMode--CmpAV7s.js +0 -1
- package/dist/assets/index-6so8O90C.js +0 -136
- package/dist/assets/ini-Kd9XrMLS.js +0 -1
- package/dist/assets/java-CXBNlu9o.js +0 -1
- package/dist/assets/javascript-DYy3TIq5.js +0 -1
- package/dist/assets/json.worker-BggoxaER.js +0 -62
- package/dist/assets/jsonMode-DwsyQ3o1.js +0 -7
- package/dist/assets/julia-cl7-CwDS.js +0 -1
- package/dist/assets/kotlin-s7OhZKlX.js +0 -1
- package/dist/assets/less-9HpZscsL.js +0 -2
- package/dist/assets/lexon-OrD6JF1K.js +0 -1
- package/dist/assets/liquid-qkuWCPaY.js +0 -1
- package/dist/assets/lspLanguageFeatures-Cgd9CNvq.js +0 -4
- package/dist/assets/lua-Cyyb5UIc.js +0 -1
- package/dist/assets/m3-B8OfTtLu.js +0 -1
- package/dist/assets/markdown-BFxVWTOG.js +0 -1
- package/dist/assets/mdx-CtHfOclF.js +0 -1
- package/dist/assets/mips-CiqrrVzr.js +0 -1
- package/dist/assets/monaco-BIO15LCS.js +0 -1005
- package/dist/assets/monaco-DdLsZAcA.css +0 -1
- package/dist/assets/msdax-DmeGPVcC.js +0 -1
- package/dist/assets/mysql-C_tMU-Nz.js +0 -1
- package/dist/assets/objective-c-BDtDVThU.js +0 -1
- package/dist/assets/pascal-vHIfCaH5.js +0 -1
- package/dist/assets/pascaligo-DtZ0uQbO.js +0 -1
- package/dist/assets/perl-Ub6l9XKa.js +0 -1
- package/dist/assets/pgsql-BlNEE0v7.js +0 -1
- package/dist/assets/php-BBUBE1dy.js +0 -1
- package/dist/assets/pla-DSh2-awV.js +0 -1
- package/dist/assets/postiats-CocnycG-.js +0 -1
- package/dist/assets/powerquery-tScXyioY.js +0 -1
- package/dist/assets/powershell-COWaemsV.js +0 -1
- package/dist/assets/protobuf-Brw8urJB.js +0 -2
- package/dist/assets/pug-8SOpv6rk.js +0 -1
- package/dist/assets/python-CazlH6B-.js +0 -1
- package/dist/assets/qsharp-Bw9ernYp.js +0 -1
- package/dist/assets/r-j7ic8hl3.js +0 -1
- package/dist/assets/razor-BfGfB6aB.js +0 -1
- package/dist/assets/redis-Bu5POkcn.js +0 -1
- package/dist/assets/redshift-Bs9aos_-.js +0 -1
- package/dist/assets/restructuredtext-CqXO7rUv.js +0 -1
- package/dist/assets/ruby-zBfavPgS.js +0 -1
- package/dist/assets/rust-BzKRNQWT.js +0 -1
- package/dist/assets/sb-BBc9UKZt.js +0 -1
- package/dist/assets/scala-D9hQfWCl.js +0 -1
- package/dist/assets/scheme-BPhDTwHR.js +0 -1
- package/dist/assets/scss-CBJaRo0y.js +0 -3
- package/dist/assets/shell-DiJ1NA_G.js +0 -1
- package/dist/assets/solidity-Db0IVjzk.js +0 -1
- package/dist/assets/sophia-CnS9iZB_.js +0 -1
- package/dist/assets/sparql-CJmd_6j2.js +0 -1
- package/dist/assets/sql-ClhHkBeG.js +0 -1
- package/dist/assets/st-CHwy0fLd.js +0 -1
- package/dist/assets/swift-CnmFD0ga.js +0 -1
- package/dist/assets/systemverilog-Bs9z6M-B.js +0 -1
- package/dist/assets/tcl-Dm6ycUr_.js +0 -1
- package/dist/assets/tsMode-BZv6gTt6.js +0 -11
- package/dist/assets/twig-Csy3S7wG.js +0 -1
- package/dist/assets/typescript-BgDL1fzP.js +0 -1
- package/dist/assets/typespec-Btyra-wh.js +0 -1
- package/dist/assets/useReplaceWebResourceConfirm-DND-V0vw.js +0 -1
- package/dist/assets/useStableKeys-BkDn7til.js +0 -1
- package/dist/assets/vb-Db0cS2oM.js +0 -1
- package/dist/assets/wgsl-BTesnYfV.js +0 -298
- package/dist/assets/workers-BZ4mXA5s.js +0 -1
- package/dist/assets/xml-Cl6spsD4.js +0 -1
- package/dist/assets/yaml-El-x4GhS.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{L as o,m as V,N as Ie,K as $e}from"./fluent-icons-CQEhzzaC.js";import{u as Ne}from"./useReplaceWebResourceConfirm-DND-V0vw.js";import{b as se,a as Te,a6 as N,R as ne,an as te,Y as We,ao as ie,ap as U,aq as Be,ar as le,as as Le,G as M,at as Ee,au as Fe,av as Pe,aw as Ge,ax as De,F as z}from"./index-6so8O90C.js";import{a as t,R as ce}from"./monaco-BIO15LCS.js";import{Z as de,ah as Ve,ai as H,L as ue,N as ge,a8 as pe,b1 as Ue,c as Me,b3 as he,T as ze,h as C,b as O,af as _,ag as He,F as Oe,X as _e,t as a}from"./fluent-ui-BEjALNLO.js";import"./dnd-C1w9VFfC.js";function Xe({text:s}){return o.jsx(o.Fragment,{children:s.split(/(?=[A-Z])/).map((h,c)=>o.jsxs(t.Fragment,{children:[c>0&&o.jsx("wbr",{}),h]},c))})}const Ze=[{category:"Actions",keywords:["Add","Delete","Edit","Save","Copy","Paste","Undo","Redo","Send","Print","Refresh"]},{category:"Communication",keywords:["Mail","Chat","Phone","Call","Message"]},{category:"Navigation",keywords:["Arrow","Chevron","Navigation","Home","Back","Forward"]},{category:"System",keywords:["Settings","Info","Warning","Dismiss","Question","Checkmark","Error"]},{category:"Security",keywords:["Lock","Shield","Key","Fingerprint"]},{category:"People",keywords:["Person","People","Contact","User"]},{category:"Business",keywords:["Building","Briefcase","Money","Credit","Cart","Tag","Receipt"]},{category:"Files",keywords:["Document","Folder","Attach","Upload","Download","File"]},{category:"Web",keywords:["Globe","Link","Open","Browser","World"]},{category:"Time",keywords:["Calendar","Clock","Timer","History"]},{category:"Rating",keywords:["Star","Heart","Thumb"]},{category:"View",keywords:["Eye","Zoom","View","Window","Preview"]},{category:"Layout",keywords:["Grid","List","Table","Panel","Column","Row"]},{category:"Development",keywords:["Code","Bug","Branch","Wrench","Tool","Terminal"]},{category:"Media",keywords:["Play","Pause","Stop","Video","Audio","Camera"]},{category:"Analytics",keywords:["Chart","Data","Poll","Graph","Trend"]}],qe=["Add","Delete","Edit","Save","Copy","Cut","ClipboardPaste","Share","Mail","Chat","Phone","Search","Filter","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","ChevronDown","ChevronUp","Navigation","Home","Settings","Info","Warning","Checkmark","Dismiss","QuestionCircle","LockClosed","LockOpen","Shield","Person","People","PersonAdd","Building","Briefcase","Money","CreditCard","Cart","Tag","Document","DocumentBulletList","Folder","FolderOpen","Attach","ArrowDownload","ArrowUpload","Globe","Link","Open","Calendar","Clock","Timer","Star","Heart","ThumbLike","ThumbDislike","Eye","EyeOff","ZoomIn","ZoomOut","Maximize","Minimize","Grid","List","Table","TableSimple","Code","Bug","Play","Pause","Stop","Refresh","ArrowSync","ArrowUndo","ArrowRedo","Printer","Send","Rocket","Sparkle","Trophy","Lightbulb","Bot","DataBar","ChartMultiple","Poll"];function Ye(s){for(const h of Ze)if(h.keywords.some(c=>s.includes(c)))return h.category;return"General"}const me=qe.map(s=>({name:s,category:Ye(s)})),Ke=["All",...Array.from(new Set(me.map(s=>s.category))).sort()],Qe=$e({content:{display:"flex",flexDirection:"column",gap:a.spacingVerticalS,height:"min(560px, calc(100vh - 240px))",minHeight:"320px",overflowY:"hidden"},toolbar:{display:"flex",alignItems:"center",gap:a.spacingHorizontalS,flexWrap:"wrap",flexShrink:0},search:{flex:"1 1 220px",minWidth:0},category:{minWidth:"160px"},variant:{display:"flex",gap:a.spacingHorizontalXS},iconGrid:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(88px, 1fr))",gap:a.spacingHorizontalXS,overflowY:"auto",flex:1,minHeight:0,padding:a.spacingHorizontalXXS},iconTile:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:a.spacingVerticalXS,minHeight:"72px",height:"auto",padding:a.spacingVerticalS,fontWeight:a.fontWeightRegular},iconTileSelected:{backgroundColor:a.colorBrandBackground2,border:`1px solid ${a.colorBrandStroke1}`},iconLabel:{fontSize:a.fontSizeBase200,textAlign:"center",lineHeight:a.lineHeightBase200,overflowWrap:"anywhere"},muted:{color:a.colorNeutralForeground3},selection:{display:"flex",alignItems:"center",gap:a.spacingHorizontalS,padding:`${a.spacingVerticalXS} ${a.spacingHorizontalS}`,backgroundColor:a.colorNeutralBackground3,borderRadius:a.borderRadiusMedium,flexShrink:0,minWidth:0},selectionText:{minWidth:0,display:"flex",flexDirection:"column"},resourceList:{listStyleType:"none",margin:0,padding:a.spacingHorizontalXXS,flex:1,minHeight:0,overflowY:"auto",display:"flex",flexDirection:"column",gap:a.spacingVerticalXXS},resourceRow:{width:"100%",justifyContent:"flex-start",fontFamily:a.fontFamilyMonospace,fontWeight:a.fontWeightRegular,fontSize:a.fontSizeBase200,textAlign:"start",overflowWrap:"anywhere"},dropZone:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:a.spacingVerticalM,padding:a.spacingVerticalL,textAlign:"center",border:`2px dashed ${a.colorNeutralStroke2}`,borderRadius:a.borderRadiusMedium,color:a.colorNeutralForeground3},dropZoneActive:{border:`2px dashed ${a.colorBrandStroke1}`,backgroundColor:a.colorBrandBackground2}}),X=300,no=()=>{const s=Qe(),h=Ne(),c=se(e=>e.iconPickerOpen),R=se(e=>e.closeIconPicker),Z=Te(e=>e.setButtonProp),A=N(e=>e.selectedButtonId),I=N(e=>e.selectedGroupId),q=N(e=>e.tabId),Y=N(e=>e.location),T=ne(e=>e.publisherPrefix),v=ne(e=>e.activeSolution),[K,d]=t.useState(null),[Q,$]=t.useState(null),[g,J]=t.useState("fluent"),[W,fe]=t.useState(""),[w,be]=t.useState("All"),[m,ee]=t.useState("regular"),[l,Se]=t.useState(null),[f,B]=t.useState(""),[x,L]=t.useState([]),[we,oe]=t.useState(!1),[E,xe]=t.useState(""),[b,y]=t.useState(!1),[ye,F]=t.useState(!1),re=t.useRef(null),Ce=de({axis:"grid-linear"}),ve=de({axis:"vertical"});ce.useEffect(()=>{c||(d(null),$(null))},[c]),ce.useEffect(()=>{!c||g!=="webresource"||(oe(!0),te("svg").then(e=>L(e)).catch(()=>L([])).finally(()=>oe(!1)))},[c,g]);const k=t.useMemo(()=>{const e=E.toLowerCase();return x.filter(r=>!e||r.name.toLowerCase().includes(e))},[E,x]),P=t.useMemo(()=>{const e=W.toLowerCase();return me.filter(r=>(w==="All"||r.category===w)&&(e===""||r.name.toLowerCase().includes(e)))},[W,w]),ke=async()=>{if(!l||!A||!I)return;const e=z(),r=M.getState();if(d(null),!v||v.isManaged){d("Select an unmanaged solution first — the icon is added to it as an SVG web resource.");return}y(!0);try{const n=await Ee(l,m,T,Fe,{busy:{onProgress:i=>r.logInfo("webresource",i)},guard:e});n.publishError&&r.logWarn("webresource",`Publishing icon web resource ${n.name} failed: ${n.publishError}. Pick the icon again or publish customizations before using the button.`),Z(Y,q,I,A,{icon:U(l),image16:`$webresource:${n.name}`,image32:`$webresource:${n.name}`}),r.logInfo("webresource",`${n.created?"Uploaded":"Reusing"} icon web resource ${n.name} (solution ${v.uniqueName}).`),R()}catch(n){const i=n instanceof Error?n.message:String(n);r.logError("webresource",`Fluent icon "${l}" could not be added as a web resource: ${i}`),d(`Could not add the icon as a web resource: ${i}`)}finally{y(!1)}},je=async()=>{if(!f||!A||!I)return;const e=le(f),r=z(),n=M.getState();d(null),$(null);const i=e.startsWith("$webresource:")?e.slice(13).trim():null;let p=null;if(i){y(!0);try{const S=x.find(G=>G.name===i),u=await Pe(i,S,r);u.solutionUniqueName&&n.logInfo("webresource",`Added web resource ${i} to solution ${u.solutionUniqueName}.`),p=u.solutionWarning??null}catch(S){const u=S instanceof Error?S.message:String(S);if(/^No web resource named /.test(u)){d(u);return}p=`The icon was set, but ${i} could not be added to the solution: ${u}`,n.logError("webresource",p)}finally{y(!1)}}if(Z(Y,q,I,A,{image16:e,image32:e}),p){$(p);return}R()},Re=async e=>{const r=z();if(!v||v.isManaged){d("Select an unmanaged solution first — the SVG is added to it as a web resource.");return}d(null),y(!0);try{const n=await new Promise((u,G)=>{const j=new FileReader;j.onerror=()=>G(j.error??new Error("Failed to read SVG")),j.onload=()=>{const D=String(j.result??"");u(D.includes(",")?D.split(",")[1]??"":D)},j.readAsDataURL(e)}),i=`${T||"new"}_/icons/${e.name}`,p=await Ge(i,n,11,{displayName:e.name,guard:r,onExisting:h.onExisting});$([p.solutionWarning,p.publishWarning].filter(Boolean).join(" ")||null),B(`$webresource:${i}`),J("webresource");const S=await te("svg");L(S)}catch(n){if(n instanceof De)return;const i=n instanceof Error?n.message:String(n);M.getState().logError("webresource",`SVG upload failed: ${i}`),d(`Upload failed: ${i}`)}finally{y(!1)}},ae=e=>{if(e){if(!/\.svg$/i.test(e.name)){d(`${e.name} isn't an SVG file.`);return}Re(e)}},Ae=f.startsWith("$webresource:")?f.slice(13):f;return o.jsxs(o.Fragment,{children:[h.dialog,o.jsxs(We,{open:c,onOpenChange:e=>!e&&R(),title:"Choose an icon",size:"large",contentClassName:s.content,startActions:o.jsx(Le,{prefix:"Saves to"}),actions:o.jsxs(o.Fragment,{children:[o.jsx(C,{onClick:R,children:"Cancel"}),g==="fluent"&&o.jsx(C,{appearance:"primary",disabled:!l||b,onClick:()=>{ke()},children:b?"Adding icon…":`Use ${l??"icon"}`}),g==="webresource"&&o.jsx(C,{appearance:"primary",disabled:!f||b,onClick:()=>{je()},children:b?"Adding icon…":"Use web resource"})]}),children:[o.jsxs(Ve,{selectedValue:g,onTabSelect:(e,r)=>J(r.value),children:[o.jsx(H,{value:"fluent",children:"Fluent icons"}),o.jsx(H,{value:"webresource",children:"Web resources"}),o.jsx(H,{value:"upload",children:"Upload SVG"})]}),K&&o.jsx(ue,{intent:"error",children:o.jsx(ge,{children:K})}),Q&&o.jsx(ue,{intent:"warning",children:o.jsxs(ge,{children:["Icon applied. ",Q]})}),g==="fluent"&&o.jsxs(o.Fragment,{children:[o.jsxs("div",{className:s.toolbar,children:[o.jsx(pe,{className:s.search,placeholder:"Search icons","aria-label":"Search icons",value:W,onChange:(e,r)=>fe(r.value)}),o.jsx(Ue,{className:s.category,"aria-label":"Category",value:w==="All"?"All categories":w,selectedOptions:[w],onOptionSelect:(e,r)=>be(String(r.optionValue??"All")),children:Ke.map(e=>o.jsx(Me,{value:e,text:e==="All"?"All categories":e,children:e==="All"?"All categories":e},e))}),o.jsxs("div",{className:s.variant,role:"group","aria-label":"Icon style",children:[o.jsx(he,{checked:m==="regular",onClick:()=>ee("regular"),children:"Regular"}),o.jsx(he,{checked:m==="filled",onClick:()=>ee("filled"),children:"Filled"})]})]}),o.jsxs("div",{className:s.iconGrid,role:"group","aria-label":`${P.length} icons`,...Ce,children:[P.map(e=>{const r=l===e.name;return o.jsx(ze,{content:`${e.name} · ${e.category}`,relationship:"description",children:o.jsxs(C,{appearance:"subtle","aria-pressed":r,className:V(s.iconTile,r&&s.iconTileSelected),onClick:()=>Se(e.name),children:[o.jsx(ie,{name:U(e.name),size:24,variant:m}),o.jsx("span",{className:s.iconLabel,children:o.jsx(Xe,{text:e.name})})]})},e.name)}),P.length===0&&o.jsx(O,{className:s.muted,children:"No icon matches."})]}),l&&o.jsxs("div",{className:s.selection,role:"status",children:[o.jsx(ie,{name:U(l),size:24,variant:m}),o.jsxs("span",{className:s.selectionText,children:[o.jsxs(O,{weight:"semibold",children:[l," ·"," ",m==="regular"?"Regular":"Filled"]}),o.jsxs(_,{className:s.muted,children:["Added to your solution as"," ",Be(T||"new",l,m)]})]})]})]}),g==="webresource"&&o.jsxs(o.Fragment,{children:[o.jsx(pe,{placeholder:"Search SVG web resources","aria-label":"Search SVG web resources",value:E,onChange:(e,r)=>xe(r.value)}),we?o.jsx(He,{size:"small",label:"Loading web resources…"}):o.jsxs(o.Fragment,{children:[o.jsx(_,{className:s.muted,role:"status",children:k.length>X?`Showing ${X} of ${k.length.toLocaleString()} SVG web resources. Search to find others.`:k.length===x.length?`${x.length.toLocaleString()} SVG web resources`:`${k.length} of ${x.length.toLocaleString()} SVG web resources`}),o.jsx("ul",{className:s.resourceList,"aria-label":"SVG web resources",...ve,children:k.slice(0,X).map(e=>{const r=`$webresource:${e.name}`,n=f===r;return o.jsx("li",{children:o.jsx(C,{appearance:"subtle","aria-pressed":n,className:V(s.resourceRow,n&&s.iconTileSelected),onClick:()=>B(r),children:e.name})},e.id)})})]}),o.jsx(Oe,{label:"Web resource",hint:"Image16 and Image32 are both set to it. SVG works at every size.",children:o.jsx(_e,{placeholder:"publisher_/icons/icon.svg",value:Ae,onChange:(e,r)=>B(r.value?le(r.value):"")})})]}),g==="upload"&&o.jsxs("div",{className:V(s.dropZone,ye&&s.dropZoneActive),onDragOver:e=>{e.preventDefault(),F(!0)},onDragLeave:()=>F(!1),onDrop:e=>{e.preventDefault(),F(!1),ae(e.dataTransfer.files?.[0])},children:[o.jsx(Ie,{fontSize:48}),o.jsx(O,{children:"Drop an SVG file here"}),o.jsx(_,{children:"It's uploaded as a web resource in your solution, then listed under Web resources to use."}),o.jsx("input",{ref:re,type:"file",accept:".svg",hidden:!0,disabled:b,onChange:e=>{const r=e.target.files?.[0];e.target.value="",ae(r)}}),o.jsx(C,{appearance:"primary",disabled:b,onClick:()=>re.current?.click(),children:b?"Uploading…":"Choose SVG…"})]})]})]})};export{no as IconPickerModal,no as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{L as c,K as ze}from"./fluent-icons-CQEhzzaC.js";import{a as W}from"./monaco-BIO15LCS.js";import{ad as Ne,t as Fe,ae as Pe,af as We,ag as Ue,ah as _e,ai as Ye,b as ne,R as De,Y as Je,a as Ke,a6 as Ve}from"./index-6so8O90C.js";import{a as Qe}from"./xmlValidator-PbODaIQV.js";import{M as Ze}from"./MonacoEditor-BMKRZv-g.js";import{b as k,af as de,L as et,N as tt,B as Ie,h as _,t as E}from"./fluent-ui-BEjALNLO.js";import"./dnd-C1w9VFfC.js";import"./ruleKinds-BKTUiZ1-.js";import"./crmParameters-rgfZhhzN.js";const ge=["HomepageGrid","SubGrid","Form"],ue=[...ge,"Application"],pe=new Set(["Button","FlyoutAnchor","SplitButton","TextBox","ComboBox","CheckBox"]),me=new Set(["flyout","splitButton"]),he=/^Mscrm\.(HomepageGrid|SubGrid|Form)\.([^.]+)\./,ve="._children",ot=/<(EnableRule|DisplayRule)\b[^>]*?\sId="([^"]+)"/,fe=/\$LocLabels:([^"'\s<]+)/g,Le="cbs.import.Tab",nt="cbs.import.Group",je=(i,f)=>JSON.stringify(i)===JSON.stringify(f);function U(i){return i?Array.from(i.children):[]}function st(i){return Object.fromEntries(Array.from(i.attributes).map(f=>[f.name,f.value]))}function it(i,f,d){const m=i.documentElement;if(m.tagName==="RibbonDiffXml")return m;const h=Array.from(i.getElementsByTagName("RibbonDiffXml")),$=Array.from(i.querySelectorAll("Entities > Entity")).flatMap(l=>{const A=U(l),O=A.find(v=>v.tagName==="RibbonDiffXml"),T=A.find(v=>v.tagName==="Name")?.textContent?.trim()??"";return O?[{name:T,rdx:O}]:[]}),w=h.find(l=>l.parentElement===m);if($.length===0&&!w){if(h.length===1)return h[0];throw new Error(h.length===0?"No <RibbonDiffXml> element found.":`The XML has ${h.length} <RibbonDiffXml> elements and none belongs to a table or the application ribbon — paste just one.`)}const G=[...$.map(l=>l.name||"(unnamed table)"),...w?["the application ribbon"]:[]].join(", ");if(d){if(w)return w;throw new Error(`The XML has no application ribbon RibbonDiffXml (it has: ${G}). Open that table's ribbon to import its customizations.`)}const S=$.find(l=>l.name.toLowerCase()===f.toLowerCase());if(S)return S.rdx;throw new Error(`The XML has no RibbonDiffXml for ${f||"the loaded table"} (it has: ${G}). Load that table, or open the application ribbon for the application ribbon's customizations.`)}function rt(i){switch(i){case"HomePageGrid":return"HomepageGrid";case"Form":return"Form";case"SubGridStandard":case"SubGridAssociated":return"SubGrid";default:return}}function at(i){const f=i.languageCode??1033,d=i.entityLogicalName,m=new DOMParser().parseFromString(i.xml,"application/xml");if(m.querySelector("parsererror"))throw new Error("The XML is not well-formed.");const h=i.activeLocation==="Application",$=it(m,d,h),w=new XMLSerializer,G=w.serializeToString($),S=[],l=[],A=[],O=!!d&&new RegExp(`Mscrm\\.(HomepageGrid|SubGrid|Form)\\.${d.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\.`,"i").test(G),T=h&&!($===m.documentElement&&O);$!==m.documentElement?A.push(`Imported the RibbonDiffXml of ${T?"the application ribbon":d} from the document.`):h&&!T&&A.push(`The XML's Locations name the ${d} table, so it was imported as that table's customizations, not the application ribbon's.`);const v=T?"Application":ge.includes(i.activeLocation)?i.activeLocation:"HomepageGrid",B=Ne(G,i.activeLocation,d),H=(e,t,o)=>{const s=new Map,n=new Map;for(const y of t)s.set(y.id,y),n.set(y.id,(n.get(y.id)??0)+1);for(const[y,x]of n)x>1&&A.push(`${o} ${y} is defined ${x} times in the XML — the last one was used.`);const u=Array.from(s.values()),a=[...e],p=[];let b=0;for(const y of u){const x=a.findIndex(D=>D.id===y.id);if(x>=0&&je(a[x],y)){b++;continue}S.push(`${o} ${y.id} ${x>=0?"updated":"added"}`),x>=0?a[x]=y:a.push(y),p.push(y.id)}return{out:a,changedIds:p,unchanged:b}},L=H(i.commands,B.commands,"Command"),z=H(i.enableRules,B.enableRules,"Enable rule"),N=H(i.displayRules,B.displayRules,"Display rule"),C=H(i.locLabels,B.locLabels,"Label"),X=C.out,q=L.unchanged+z.unchanged+N.unchanged+C.unchanged,M=(e,t)=>e&&Ye(e,X,f)||t,j=JSON.parse(JSON.stringify(i.ribbons));let I=!1,F=0;const r=new Set,g=e=>{if(T)return ue.slice().reverse();const t=he.exec(e),o=t&&t[2]!=="{!EntityLogicalName}"?t[1]:v;return[o,...ge.filter(s=>s!==o),"Application"]},R=(e,t)=>{T&&e!=="Application"?A.push(`${t} is on the table's ribbon (${e}), not the application ribbon: the change is published with the table.`):!T&&e==="Application"&&A.push(`${t} was found only on the application ribbon: the change is published to the application ribbon and affects every table.`)},ie=[],P=(e,t)=>{e&&e!==t&&ie.push(e)},Y=e=>{for(const t of g(e))for(const o of j[t].tabs){const s=o.groups.find(n=>n.id===e);if(s)return{location:t,tab:o,group:s}}},J=e=>{for(const t of g(e)){const o=j[t].tabs.find(s=>s.id===e);if(o)return{location:t,tab:o}}},K=e=>{for(const t of g(e)){const o=[];for(const s of j[t].tabs)for(const n of s.groups)for(const u of n.buttons)u.id===e&&o.push({group:n,button:u});if(o.length>0)return{location:t,found:o}}},V=(e,t)=>{const o=he.exec(t);let s="it isn't in the loaded ribbon";o&&o[2]!=="{!EntityLogicalName}"&&d&&o[2]!==d?s=`it belongs to the ${o[2]} table, but ${d} is loaded`:(o?.[2]==="{!EntityLogicalName}"||t.startsWith("Mscrm.Global"))&&(s="it belongs to the application ribbon, which isn't loaded with it"),l.push(`${e}: Location "${t}" not found — ${s}.`)},Ee=U($.querySelector(":scope > RuleDefinitions > TabDisplayRules")).map(e=>w.serializeToString(e)).join(""),re=e=>Ne(`<RibbonDiffXml><UI><Ribbon><Tabs>${e}</Tabs></Ribbon></UI><RuleDefinitions><TabDisplayRules>${Ee}</TabDisplayRules></RuleDefinitions></RibbonDiffXml>`,i.activeLocation,d,X).ribbon.tabs[0],Q=e=>w.serializeToString(e),ye=e=>re(`<Tab Id="${Le}"><Groups><Group Id="${nt}"><Controls>${Q(e)}</Controls></Group></Groups></Tab>`)?.groups[0]?.buttons.find(t=>t.id===e.getAttribute("Id")),xe=e=>{const t=e.source;t&&(e.label=M(t.labelToken,e.id),t.tooltipTitleToken&&(e.tooltipTitle=M(t.tooltipTitleToken,"")),t.tooltipBodyToken&&(e.tooltipBody=M(t.tooltipBodyToken,"")))},Z=e=>{for(const t of e.source?.xml?[e.source.xml]:Object.values(e.source?.attributes??{}))for(const[,o]of t.matchAll(fe))X.some(s=>s.id===o)||l.push(`${e.id}: references label ${o}, which neither the XML nor the loaded ribbon defines — add its <LocLabel>, or its text won't show unless another solution defines it (the pre-publish check warns).`)},$e=e=>({titleToken:e.getAttribute("Title")??void 0,attributes:st(e)}),Ae=(e,t)=>(_e(e,{origin:"unmanaged"}),e.hidden=!1,t!==void 0&&!e.source?.attributes.Sequence&&(e.sequence=t),xe(e),Z(e),e),ae=e=>l.push(`${e}: flyout / split buttons and their menus can't be imported yet (#27).`),Oe=(e,t)=>{const o=new Set(Array.from(e.querySelectorAll("Menu *")).map(n=>n.getAttribute("Id")).filter(n=>!!n)),s=[];for(const n of t?.buttons??[])o.has(n.id)||(me.has(n.kind)?ae(n.id):s.push(Ae(n)));return s},ee=(e,t)=>{const o=e.findIndex(s=>s.sequence>t.sequence);e.splice(o<0?e.length:o,0,t)},we=(e,t,o)=>{const s=K(e),n=ye(t);if(!s||!n)return!1;xe(n),Z(n),R(s.location,e);for(const{group:u,button:a}of s.found){if(n.kind!==a.kind)return l.push(`${e}: changing a <${t.tagName}> into another kind of control isn't supported.`),!0;if(me.has(a.kind))return ae(e),!0;const p=JSON.parse(JSON.stringify(a));Object.assign(a,{label:n.label,tooltipTitle:n.tooltipTitle,tooltipBody:n.tooltipBody,icon:n.icon,image16:n.image16,image32:n.image32,commandId:n.commandId,templateAlias:n.templateAlias||a.templateAlias,source:structuredClone(n.source)});const b=n.source?.attributes.Sequence?n.sequence:o;b!==void 0&&b!==a.sequence&&(a.origin==="unmanaged"?(u.buttons.splice(u.buttons.indexOf(a),1),a.sequence=b,ee(u.buttons,a)):l.push(`${e}: Sequence ${b} not applied — only your own buttons can be re-ordered.`)),Ue(p,a)||p.sequence!==a.sequence?(I=!0,S.push(`Updated ${a.label} (${e}) on ${s.location}`),n.templateAlias||A.push(`${e}: the override has no TemplateAlias — ${a.templateAlias} from the loaded control is kept.`)):(Object.assign(a,p),je(p.source?.attributes,n.source?.attributes)?F++:l.push(`${e}: the override only changes attributes CBS doesn't publish yet (label, tooltip, icon, command and template alias are).`))}return!0},Ce=(e,t,o,s)=>{const n=t.getAttribute("Id");if(!n)return l.push(`CustomAction ${e.getAttribute("Id")}: the control has no Id.`);const u=K(n);if(u){u.found.some(b=>b.group.id===o)||l.push(`${n}: already in group ${u.found[0].group.id} — updated there, not moved to ${o}.`),we(n,t,s)&&P(e.getAttribute("Id"),`${n}.Override.CustomAction`);return}const a=Y(o);if(!a)return V(`${n}`,e.getAttribute("Location")??"");const p=ye(t);if(!p)return l.push(`${n}: couldn't read the <${t.tagName}>.`);if(me.has(p.kind))return ae(n);ee(a.group.buttons,Ae(p,s)),R(a.location,n),P(e.getAttribute("Id"),`${n}.CustomAction`),I=!0,S.push(`Added ${p.label} (${n}) to ${a.group.id} on ${a.location}`)},Se=(e,t)=>{const o=re(`<Tab Id="${Le}"><Groups>${Q(e)}</Groups></Tab>`)?.groups[0];if(!o)return;const s=$e(e);return Z({id:o.id,source:s}),{...o,label:M(s.titleToken,o.id),source:s,sequence:e.getAttribute("Sequence")===null?t??o.sequence:o.sequence,buttons:Oe(e,o)}},Xe=(e,t,o,s)=>{const n=t.getAttribute("Id");if(!n)return l.push(`CustomAction ${e.getAttribute("Id")}: the group has no Id.`);if(Y(n)){l.push(`Group ${n} already exists — it was left as is (re-titling groups isn't supported).`);for(const b of U(t.querySelector(":scope > Controls")))pe.has(b.tagName)?Ce(e,b,n,void 0):Pe(We[b.tagName])&&l.push(`${b.getAttribute("Id")??"(no Id)"}: adding a <${b.tagName}> to an existing group isn't supported — Command Bar Studio shows it read-only.`);return}const a=J(o);if(!a)return V(`Group ${n}`,e.getAttribute("Location")??"");const p=Se(t,s);if(!p)return l.push(`Group ${n}: couldn't read the <Group>.`);ee(a.tab.groups,p),R(a.location,n),P(e.getAttribute("Id"),`${n}.CustomAction`),I=!0,S.push(`Added group ${p.label} (${n}) with ${p.buttons.length} control(s) to ${o} on ${a.location}`)},ke=(e,t,o)=>{const s=t.getAttribute("Id");if(!s)return l.push(`CustomAction ${e.getAttribute("Id")}: the tab has no Id.`);if(J(s))return l.push(`Tab ${s} already exists — it was left as is.`);const n=re(Q(t));if(!n)return l.push(`Tab ${s}: couldn't read the <Tab>.`);const u=n.tabDisplayRules.flatMap(D=>D.rules.map(Te=>Te.kind==="EntityRule"?rt(Te.context):void 0)),a=T?"Application":u.find(D=>!!D)??he.exec(s)?.[1]??v,b=Array.from(t.querySelectorAll(":scope > Groups > Group")).map(D=>Se(D,void 0)).filter(D=>!!D),y=$e(t);Z({id:s,source:y});const x={...n,label:M(y.titleToken,s),source:y,sequence:t.getAttribute("Sequence")===null?o??n.sequence:n.sequence,groups:b};ee(j[a].tabs,x),P(e.getAttribute("Id"),`${s}.CustomAction`),x.commandId&&(r.add(x.commandId),L.out.some(D=>D.id===x.commandId)||(L.out.push({id:x.commandId,enableRules:[],displayRules:[],actions:[]}),L.changedIds.push(x.commandId),A.push(`Tab ${s}: its Command ${x.commandId} has no CommandDefinition in the XML — an empty one was added.`))),I=!0,S.push(`Added tab ${x.label} (${s}) with ${b.length} group(s) to ${a}`),t.querySelector(":scope > Scaling > Scale")&&l.push(`Tab ${s}: its <Scale> steps weren't imported — CBS writes a default MaxSize for each group.`)},Ge=e=>{const t=e.getAttribute("Location")??"",o=K(t);if(o){const s=o.found.filter(n=>!n.button.hidden);for(const n of s)n.button.hidden=!0;s.length>0?(R(o.location,t),P(e.getAttribute("HideActionId"),`${t}.HideAction`),I=!0,S.push(`Hid ${s[0].button.label} (${t}) on ${o.location}`)):F++;return}if(Y(t)||J(t))return l.push(`Hiding ${t}: hiding whole groups or tabs isn't supported yet — hide their buttons.`);l.push(`Hiding ${t}: not found in the loaded ribbon (it may belong to another table, or already be hidden by your customizations).`)},Me=e=>{const t=e.getAttribute("Id")??"(no Id)",o=e.getAttribute("Location")??"",s=e.getAttribute("Sequence"),n=s===null?void 0:parseInt(s,10),u=U(e.querySelector(":scope > CommandUIDefinition"))[0];if(!u)return l.push(`CustomAction ${t}: no <CommandUIDefinition> content.`);const a=u.tagName;if(o.endsWith(ve)){const p=o.slice(0,-ve.length);return p.endsWith(".Controls")&&pe.has(a)?Ce(e,u,p.slice(0,-9),n):p.endsWith(".Groups")&&a==="Group"?Xe(e,u,p.slice(0,-7),n):p==="Mscrm.Tabs"&&a==="Tab"?ke(e,u,n):p.endsWith(".Scaling")&&(a==="MaxSize"||a==="Scale")?l.push(`CustomAction ${t}: <${a}> scaling isn't imported — CBS writes a default MaxSize for each new group.`):l.push(`CustomAction ${t}: a <${a}> at "${o}" isn't supported.`)}if(pe.has(a)&&u.getAttribute("Id")===o){if(we(o,u,n)){P(t,`${o}.Override.CustomAction`);return}return V(`Override ${t}`,o)}return K(o)||Y(o)||J(o)?l.push(`CustomAction ${t}: replacing ${o} with a <${a}> isn't supported — only overriding a control with the same Id is.`):V(`CustomAction ${t}`,o)},Be=U($.querySelector(":scope > CustomActions"));for(const e of Be)e.tagName==="CustomAction"?Me(e):e.tagName==="HideCustomAction"?Ge(e):l.push(`<${e.tagName}> in CustomActions isn't supported.`);const te=new Set;for(const e of ue)for(const t of j[e].tabs)for(const o of t.groups)for(const s of o.buttons)for(const n of Fe(s))te.add(n);for(const e of r)te.add(e);const le=new Set,ce=new Set;for(const e of L.out)if(te.has(e.id)){e.enableRules.forEach(t=>le.add(t)),e.displayRules.forEach(t=>ce.add(t));for(const t of e.rawRuleRefs??[]){const o=ot.exec(t.xml);o&&(o[1]==="EnableRule"?le:ce).add(o[2])}}const oe=(e,t,o,s)=>{for(const n of e)t.has(n)||l.push(`${o} ${n} was imported but ${s}, so it won't be published.`)};oe(L.changedIds,te,"Command","no button on the loaded ribbon uses it"),oe(z.changedIds,le,"Enable rule","no command a button uses references it"),oe(N.changedIds,ce,"Display rule","no command a button uses references it");const Re=new Set(Array.from(Q($).matchAll(fe),e=>e[1]));for(const e of ue)for(const t of j[e].tabs)for(const o of t.groups)for(const s of o.buttons)for(const n of Object.values(s.source?.attributes??{}))for(const u of n.matchAll(fe))Re.add(u[1]);oe(C.changedIds,Re,"Label","nothing references it");const qe=Array.from($.querySelectorAll(":scope > RuleDefinitions > TabDisplayRules > TabDisplayRule"));for(const e of qe){const t=e.getAttribute("TabCommand")??"";r.has(t)||l.push(`TabDisplayRule for ${t}: only the display rules of tabs this import adds are imported.`);const o=U(e).filter(s=>s.tagName!=="EntityRule"&&s.tagName!=="PageRule");o.length>0&&l.push(`TabDisplayRule for ${t}: ${o.map(s=>`<${s.tagName}>`).join(", ")} not imported — only EntityRule and PageRule are supported.`)}ie.length>0&&A.push(`Ids normalised: CBS publishes CustomAction / HideCustomAction ids as {control}.CustomAction, {control}.Override.CustomAction and {control}.HideAction, so ${ie.join(", ")} will be written under those ids.`),q+F>0&&S.push(`${q+F} control(s) / definition(s) were already up to date`);const He=I||L.changedIds.length+z.changedIds.length+N.changedIds.length+C.changedIds.length>0;return{ribbons:I?j:i.ribbons,commands:L.out,enableRules:z.out,displayRules:N.out,locLabels:X,applied:S,notApplied:l,notes:A,changed:He}}function lt(i,f){const d=Ke.getState(),m=at({xml:i,ribbons:d.ribbons,commands:d.commands,enableRules:d.enableRules,displayRules:d.displayRules,locLabels:d.locLabels,entityLogicalName:De.getState().activeEntity?.logicalName??d.ribbons.HomepageGrid.entityLogicalName,activeLocation:Ve.getState().location,languageCode:d.baseLanguageCode});return f&&m.changed&&d.applyImport(m,`${m.applied.length} change(s)`),m}const ct=ze({content:{display:"grid",gridTemplateColumns:"1.4fr 1fr",gap:E.spacingHorizontalL,height:"min(560px, calc(100vh - 240px))",minHeight:"320px",overflowY:"hidden","@media (max-width: 760px)":{gridTemplateColumns:"1fr",gridTemplateRows:"minmax(240px, 1.4fr) 1fr",overflowY:"auto"}},editorColumn:{display:"flex",flexDirection:"column",gap:E.spacingVerticalXS,minHeight:0,minWidth:0},editor:{flex:1,minHeight:"200px",border:`1px solid ${E.colorNeutralStroke2}`,borderRadius:E.borderRadiusMedium,overflow:"hidden"},muted:{color:E.colorNeutralForeground3},results:{display:"flex",flexDirection:"column",gap:E.spacingVerticalM,minHeight:0,minWidth:0,overflowY:"auto",paddingRight:E.spacingHorizontalXS},section:{display:"flex",flexDirection:"column",gap:E.spacingVerticalXS},list:{listStyleType:"none",margin:0,padding:0,display:"flex",flexDirection:"column",gap:E.spacingVerticalXS},row:{display:"flex",alignItems:"flex-start",gap:E.spacingHorizontalS,minWidth:0},rowBadge:{flexShrink:0,marginTop:"2px"},rowText:{minWidth:0,overflowWrap:"anywhere"},problemButton:{textAlign:"start",justifyContent:"flex-start",minWidth:0,height:"auto",padding:0,fontWeight:E.fontWeightRegular}});function be(i){return/^Added\b|\badded$/.test(i)?"Add":/^Updated\b|\bupdated$/.test(i)?"Update":/^Hid\b/.test(i)?"Hide":null}const dt={Add:"success",Update:"brand",Hide:"informative"};function ut(i,f,d){const m=i.map(h=>{const $=h.lineHint?Number(/\d+/.exec(h.lineHint)?.[0]):void 0;return{severity:h.severity==="warning"?"warning":"error",text:h.message,line:Number.isFinite($)?$:void 0}});d&&m.push({severity:"error",text:d});for(const h of f?.notApplied??[])m.push({severity:"warning",text:h});return m}const se=(i,f)=>`${i} ${f}${i===1?"":"s"}`,At=()=>{const i=ct(),f=ne(r=>r.importXmlOpen),d=ne(r=>r.importXmlSeed),m=ne(r=>r.importXmlNote),h=ne(r=>r.closeImportXml),$=De(r=>r.activeEntity?.displayName??r.activeEntity?.logicalName),[w,G]=W.useState(""),[S,l]=W.useState([]),[A,O]=W.useState(null),[T,v]=W.useState(""),B=W.useRef(null);W.useEffect(()=>{f&&(G(d),l([]),O(null),v(""))},[f,d]);const H=r=>{G(r),A?.imported||(O(null),l([]),v(""))},L=r=>{const g=Qe(w);if(l(g),v(""),g.some(R=>R.severity!=="warning")){O(null);return}try{O({result:lt(w,r),imported:r})}catch(R){O(null),v(R instanceof Error?R.message:String(R))}},z=r=>{const g=B.current;g&&(g.revealLineInCenter(r),g.setPosition({lineNumber:r,column:1}),g.focus())},N=A?.imported===!0,C=A?.result,X=C?.applied??[],q=ut(S,C,T),M=q.some(r=>r.severity==="error"),j=!!C||S.length>0||!!T,I=C&&!N?X.filter(r=>be(r)).length:0,F=N?C.changed?`Imported ${se(X.filter(r=>be(r)).length,"change")}`:"Nothing to import: the session already has all of it":j?`Preview · ${se(I,"change")}, ${se(q.length,"problem")}`:"Preview";return c.jsxs(Je,{open:f,onOpenChange:r=>!r&&h(),title:"Import RibbonDiffXml",size:"large",contentClassName:i.content,actions:N?c.jsx(_,{appearance:"primary",onClick:h,children:"Close"}):c.jsxs(c.Fragment,{children:[c.jsx(_,{onClick:h,children:"Cancel"}),c.jsx(_,{onClick:()=>L(!1),disabled:!w.trim(),children:j?"Preview again":"Preview"}),c.jsx(_,{appearance:"primary",onClick:()=>L(!0),disabled:!w.trim()||M,children:I>0?`Import ${se(I,"change")}`:"Import"})]}),children:[c.jsxs("div",{className:i.editorColumn,children:[c.jsx(k,{weight:"semibold",id:"import-xml-label",children:"Paste RibbonDiffXml"}),c.jsxs(de,{className:i.muted,children:["From Ribbon Workbench or a solution's customizations.xml. Only"," ",$??"this table","'s part is used."]}),c.jsx("div",{className:i.editor,role:"group","aria-labelledby":"import-xml-label",children:c.jsx(Ze,{language:"xml",value:w,onChange:H,readOnly:N,height:"100%",onMount:r=>{B.current=r},options:{wordWrap:"on",lineNumbers:"on",padding:{top:8}}})})]}),c.jsxs("section",{className:i.results,"aria-label":"Preview",children:[c.jsx(k,{weight:"semibold",role:"status",children:F}),!j&&c.jsxs(c.Fragment,{children:[m&&!w&&c.jsx(et,{intent:"info",children:c.jsx(tt,{children:m})}),c.jsx(k,{className:i.muted,children:"Preview shows what the import changes, and any problems, before anything changes. Commands, rules and labels are added or replaced by ID; buttons, groups and tabs are added to the ribbon; overrides and hides change the existing controls. The import is one change: Undo takes it all back."})]}),q.length>0&&c.jsxs("div",{className:i.section,children:[c.jsx(k,{weight:"semibold",children:"Problems"}),c.jsx("ul",{className:i.list,"aria-label":"Problems",children:q.map((r,g)=>c.jsxs("li",{className:i.row,children:[c.jsx(Ie,{className:i.rowBadge,size:"medium",appearance:"tint",color:r.severity==="error"?"danger":"warning",children:r.severity==="error"?"Error":"Warning"}),r.line?c.jsx(_,{appearance:"transparent",className:i.problemButton,onClick:()=>z(r.line),children:c.jsxs("span",{className:i.rowText,children:["Line ",r.line,": ",r.text]})}):c.jsx(k,{className:i.rowText,children:r.text})]},g))}),!M&&!N&&I>0&&C.notApplied.length>0&&c.jsx(de,{className:i.muted,children:"Warnings don't stop the import: they say what won't be imported or published."})]}),X.length>0&&c.jsxs("div",{className:i.section,children:[c.jsx(k,{weight:"semibold",children:N?"Imported":"Changes"}),c.jsx("ul",{className:i.list,"aria-label":"Changes",children:X.map((r,g)=>{const R=be(r);return c.jsxs("li",{className:i.row,children:[R&&c.jsx(Ie,{className:i.rowBadge,size:"medium",appearance:"tint",color:dt[R],children:R}),c.jsx(k,{className:i.rowText,children:r})]},g)})})]}),C&&C.notes.length>0&&c.jsxs("div",{className:i.section,children:[c.jsx(k,{weight:"semibold",children:"Good to know"}),c.jsx("ul",{className:i.list,children:C.notes.map((r,g)=>c.jsx("li",{children:c.jsx(k,{className:i.rowText,children:r})},g))})]}),N&&C.changed&&c.jsx(de,{className:i.muted,children:"Review the changes on the canvas, then publish. Undo takes the whole import back."})]})]})};export{At as ImportXmlModal,At as default};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./monaco-BIO15LCS.js","./monaco-DdLsZAcA.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{a as l,R as f,_ as h}from"./monaco-BIO15LCS.js";import{L as t}from"./fluent-icons-CQEhzzaC.js";import{b as u}from"./index-6so8O90C.js";import{ag as x}from"./fluent-ui-BEjALNLO.js";const _=f.lazy(()=>h(()=>import("./monaco-BIO15LCS.js").then(o=>o.i),__vite__mapDeps([0,1]),import.meta.url)),v=({language:o,value:r,onChange:a,readOnly:s=!1,height:i="100%",options:m={},onMount:n})=>{const d=u(e=>e.themeMode)==="dark"?"vs-dark":"vs",c={readOnly:s,minimap:{enabled:!1},wordWrap:o==="xml"?"on":"off",scrollBeyondLastLine:!1,automaticLayout:!0,...m},p=e=>{a&&e!==void 0&&a(e)};return t.jsx(l.Suspense,{fallback:t.jsx(x,{size:"medium",label:"Loading editor…"}),children:t.jsx(_,{height:i,language:o,value:r,theme:d,options:c,onChange:p,onMount:n})})};export{v as M};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{L as e}from"./fluent-icons-CQEhzzaC.js";import{a as B}from"./monaco-BIO15LCS.js";import{b as v,a as i,a6 as m,R as p,Y as K,s as T,a7 as Y,G as _}from"./index-6so8O90C.js";import{F as C,X as q,Y as z,h as I}from"./fluent-ui-BEjALNLO.js";import"./dnd-C1w9VFfC.js";const H=()=>{const n=v(t=>t.newButtonGroupId),r=v(t=>t.closeNewButton),j=i(t=>t.createButton),w=i(t=>t.upsertCommand),y=i(t=>t.batch),N=m(t=>t.selectButtonInContext),R=p(t=>t.publisherPrefix),E=p(t=>t.activeSolution),s=m(t=>t.location),L=m(t=>t.tabId),F=p(t=>t.activeEntity),P=n!==null,[c,b]=B.useState("New Button"),[f,h]=B.useState("button"),k=()=>{if(!n||!s)return;const t=E?.publisherPrefix?.trim()||R?.trim()||"new",a=F?.logicalName??"global",l=i.getState().ribbons,A=i.getState().commands,x=new Set(A.map(o=>o.id));for(const o of Object.values(l))for(const d of o.tabs)for(const G of d.groups)for(const O of T(G))x.add(O.id);const{id:g,commandId:S}=Y(t,a,s,c,x),u=l[s].tabs.find(o=>o.groups.some(d=>d.id===n))?.id??L;if(!l[s].tabs.some(o=>o.id===u)){_.getState().logError("canvas",`Could not add the button: group ${n} was not found.`),r();return}y(()=>{j({location:s,tabId:u,groupId:n,button:{id:g,label:c,kind:f,templateAlias:"o1",commandId:S,hidden:!1,oob:!1,custom:!0,managed:!1}}),w({id:S,enableRules:[],displayRules:[],actions:[]})}),N(s,u,n,g),b("New Button"),h("button"),r()};return e.jsxs(K,{open:P,onOpenChange:t=>!t&&r(),size:"small",title:"New button",actions:e.jsxs(e.Fragment,{children:[e.jsx(I,{appearance:"secondary",onClick:r,children:"Cancel"}),e.jsx(I,{appearance:"primary",onClick:k,disabled:!c.trim(),children:"Create button"})]}),children:[e.jsx(C,{label:"Label",required:!0,hint:"A command is created with it; edit it in the command editor.",children:e.jsx(q,{value:c,onChange:(t,a)=>b(a.value),"data-autofocus":!0})}),e.jsx(C,{label:"Kind",children:e.jsxs(z,{value:f,onChange:(t,a)=>h(a.value),children:[e.jsx("option",{value:"button",children:"Button"}),e.jsx("option",{value:"flyout",children:"Flyout"}),e.jsx("option",{value:"splitButton",children:"Split button"})]})})]})};export{H as NewButtonModal,H as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{L as a}from"./fluent-icons-CQEhzzaC.js";import{a as u}from"./monaco-BIO15LCS.js";import{b as m,a as g,a6 as d,Y as j,a8 as T}from"./index-6so8O90C.js";import{F as h,X as f,Y as C,h as b}from"./fluent-ui-BEjALNLO.js";import"./dnd-C1w9VFfC.js";const s="Mscrm.Templates.Flexible2",I=()=>{const x=m(e=>e.newGroupOpen),t=m(e=>e.closeNewGroup),w=g(e=>e.createGroup),n=d(e=>e.location),l=d(e=>e.tabId),[o,c]=u.useState("New Group"),[p,i]=u.useState(s),G=()=>{!n||!l||(w({location:n,tabId:l,group:{label:o,template:p,buttons:[]}}),c("New Group"),i(s),t())};return a.jsxs(j,{open:x,onOpenChange:e=>!e&&t(),size:"small",title:"New group",actions:a.jsxs(a.Fragment,{children:[a.jsx(b,{appearance:"secondary",onClick:t,children:"Cancel"}),a.jsx(b,{appearance:"primary",onClick:G,disabled:!o.trim(),children:"Create group"})]}),children:[a.jsx(h,{label:"Label",required:!0,children:a.jsx(f,{value:o,onChange:(e,r)=>c(r.value),"data-autofocus":!0})}),a.jsx(h,{label:"Group template",hint:"How the group's buttons shrink when the classic ribbon is narrow. Unified Interface ignores it.",children:a.jsx(C,{value:p,onChange:(e,r)=>i(r.value),children:T.map(e=>a.jsxs("option",{value:e,children:[e.replace(/^Mscrm\.Templates\./,""),e===s?" (recommended)":""]},e))})})]})};export{I as NewGroupModal,I as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{L as a,K as k}from"./fluent-icons-CQEhzzaC.js";import{a as f,R as D}from"./monaco-BIO15LCS.js";import{a6 as L,a as l,R as T,b as x,a9 as M,aa as O,ab as _,Y as F,I as z,ac as U}from"./index-6so8O90C.js";import{F as y,X as w,I as $,h as v,t as H}from"./fluent-ui-BEjALNLO.js";import"./dnd-C1w9VFfC.js";const N={HomepageGrid:"home grid",Form:"form",SubGrid:"sub-grid",Application:""},B=k({body:{display:"flex",flexDirection:"column",gap:H.spacingHorizontalM}}),Y=()=>{const S=B(),[o,b]=f.useState("New Tab"),[d,u]=f.useState(""),s=L(e=>e.location),j=l(e=>e.createTab),i=l(e=>e.ribbons),p=l(e=>e.baseline),m=l(e=>e.layers),C=T(e=>e.activeEntity);T(e=>e.publisherPrefix);const A=x(e=>e.newTabOpen),r=x(e=>e.closeNewTab),h=D.useMemo(()=>M({baseline:p,layers:m},i),[p,m,i]),R=s==="Application"?"global":C?.logicalName??i[s].entityLogicalName,g=O(R,`${s}.${o}`,"Tab",h),t=d.trim(),n=t?_(t)??(/[^a-zA-Z0-9._]/.test(t)?"Use letters, digits, dots and underscores only":h.has(t)?"This ID is already used":null):null,I=t||g,E=()=>{n||(j(s,{id:I,label:o,tabDisplayRules:[],groups:[]}),b("New Tab"),u(""),r())};return a.jsx(F,{open:A,onOpenChange:e=>!e&&r(),size:"small",title:s==="Application"?"New tab":`New tab on the ${N[s]}`,actions:a.jsxs(a.Fragment,{children:[a.jsx(v,{appearance:"secondary",onClick:r,children:"Cancel"}),a.jsx(v,{appearance:"primary",disabled:!o.trim()||!!n,onClick:E,children:"Create tab"})]}),children:a.jsxs("div",{className:S.body,children:[a.jsx(y,{label:"Tab label",required:!0,hint:s==="Application"?"A tab shows only where a tab rule allows it: add one in Tab rules before publishing.":`It gets a tab rule for this table's ${N[s]}; change it in Tab rules.`,children:a.jsx(w,{value:o,onChange:(e,c)=>b(c.value),placeholder:"My Tab","data-autofocus":!0})}),a.jsx(y,{label:"Tab ID",hint:"Leave blank to generate one from the label.",validationState:n?"error":"none",validationMessage:n??void 0,children:a.jsx(w,{value:d,onChange:(e,c)=>u(c.value),placeholder:g})}),a.jsx(z,{label:"ID it gets",value:I}),a.jsx($,{size:"small",info:U,children:"How Unified Interface shows a new tab"})]})})};export{Y as NewTabModal,Y as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{L as a,K as W,i as le,ad as K,dg as te,s as re,A as se,df as ie}from"./fluent-icons-CQEhzzaC.js";import{a as L,R as oe}from"./monaco-BIO15LCS.js";import{b as F,a as M}from"./index-6so8O90C.js";import{R as ce,i as ue,a as V}from"./ruleKinds-BKTUiZ1-.js";import{Z as de,a8 as pe,I as z,af as w,h as D,t as o,b as _,B as he,T as me,F as b,b2 as P,X as j,C as ge,c as xe,Y as ye,P as q,k as Y,l as Q,ar as ve,M as be,s as Re,v as fe,w as Ce,x as H}from"./fluent-ui-BEjALNLO.js";import{C as je}from"./CrmParameterEditor-C22QGWff.js";import{u as Se}from"./useStableKeys-BkDn7til.js";import{D as Te,c as Ne,S as $e,v as Oe,f as Ee,C as ke,g as we}from"./dnd-C1w9VFfC.js";import"./crmParameters-rgfZhhzN.js";const Ie=W({root:{display:"flex",flexDirection:"column",gap:o.spacingVerticalXS},searchRow:{display:"flex",alignItems:"center",gap:o.spacingHorizontalS,marginBottom:o.spacingVerticalXS},search:{flex:1,minWidth:0},group:{display:"flex",flexDirection:"column",gap:o.spacingVerticalXXS},groupLabel:{color:o.colorNeutralForeground3,fontWeight:o.fontWeightSemibold,paddingTop:o.spacingVerticalXS},kindButton:{justifyContent:"flex-start",textAlign:"left"}});function Pe(e){switch(e){case"CommandClientTypeRule":return{kind:e,type:"Modern"};case"CrmClientTypeRule":return{kind:e,type:"Web"};case"FormStateRule":return{kind:e,state:"Existing"};case"FormTypeRule":return{kind:e,type:"Main"};case"SelectionCountRule":return{kind:e,minimum:1};case"EntityRule":return{kind:e};case"CustomRule":return{kind:e,library:"$webresource:",functionName:""};case"ValueRule":return{kind:e,field:"",value:""};case"SkuRule":return{kind:e,sku:"Online"};case"OrRule":return{kind:e,groups:[[{kind:"FormStateRule",state:"Existing"}],[{kind:"FormStateRule",state:"Create"}]]};case"FeatureControlRule":return{kind:e,featureControlBit:"",expectedValue:!0};case"OrganizationSettingRule":return{kind:e,setting:"IsSharepointEnabled"};case"EntityPrivilegeRule":return{kind:e,privilegeType:"Read",privilegeDepth:"Basic"};case"EntityPropertyRule":return{kind:e,propertyName:"IsCustomizable",propertyValue:!0};case"RecordPrivilegeRule":return{kind:e,privilegeType:"Read"};case"RelationshipTypeRule":return{kind:e,appliesTo:"SelectedEntity"};case"MiscellaneousPrivilegeRule":return{kind:e,privilegeName:"ExportToExcel"};case"FormEntityContextRule":return{kind:e,entityName:""};case"PageRule":return{kind:e,address:""};case"CrmOfflineAccessStateRule":return{kind:e,state:"Online"};case"CrmOutlookClientTypeRule":return{kind:e,type:"CrmForOutlook"};case"CrmOutlookClientVersionRule":return{kind:e,major:15,minor:0,build:0,revision:0};case"DeviceTypeRule":return{kind:e,type:"Web"};case"OptionSetRule":return{kind:e,optionSet:"",stateCode:"",objectTypeCode:""};case"OutlookItemTrackingRule":return{kind:e,trackedInCrm:!0};case"OutlookRenderTypeRule":return{kind:e,type:"Web"};case"OutlookVersionRule":return{kind:e,version:"2010"};case"HideForTabletExperienceRule":return{kind:e};case"ReferencingAttributeRequiredRule":return{kind:e};default:return{kind:e}}}const Z=({onSelect:e,container:t,insideOr:u=!1})=>{const c=Ie(),[g,f]=L.useState(""),i=de({axis:"vertical"}),x=ce.map(h=>({...h,kinds:h.kinds.filter(m=>{if(t&&!ue(m,t,u)||u&&m==="OrRule")return!1;const O=V[m]??m;return!g||O.toLowerCase().includes(g.toLowerCase())||m.toLowerCase().includes(g.toLowerCase())})})).filter(h=>h.kinds.length>0);return a.jsxs("div",{className:c.root,children:[a.jsxs("div",{className:c.searchRow,children:[a.jsx(pe,{className:c.search,placeholder:"Search steps","aria-label":"Search steps",value:g,onChange:(h,m)=>f(m.value)}),a.jsx(z,{info:"Show on grid or quick action comes from Microsoft's rules (Mscrm.ShowOnGrid, Mscrm.ShowOnQuickAction): add them to the command by ID instead.",children:a.jsx("span",{className:c.groupLabel,children:"Not here?"})})]}),a.jsxs("div",{role:"group","aria-label":"Kinds of step",...i,children:[x.map(h=>a.jsxs("div",{className:c.group,children:[a.jsx(w,{className:c.groupLabel,children:h.label}),h.kinds.map(m=>a.jsx(D,{appearance:"subtle",className:c.kindButton,onClick:()=>e(Pe(m)),children:V[m]??m},m))]},h.label)),x.length===0&&a.jsx(w,{children:"No kind of step matches."})]})]})},J=W({step:{display:"flex",flexDirection:"column",minWidth:0,gap:o.spacingVerticalXS,padding:o.spacingVerticalS,border:`1px solid ${o.colorNeutralStroke2}`,borderRadius:o.borderRadiusMedium,backgroundColor:o.colorNeutralBackground2},header:{display:"flex",alignItems:"center",gap:o.spacingHorizontalXS},title:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:o.spacingHorizontalXS},kindBadge:{flexShrink:0},fields:{display:"flex",flexDirection:"column",gap:o.spacingVerticalXS,minWidth:0},row:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(150px, 1fr))",gap:o.spacingHorizontalS,alignItems:"end",minWidth:0,"& > *":{minWidth:0,gridTemplateColumns:"minmax(0, 1fr)"},"& select":{minWidth:0}},number:{maxWidth:"140px"},muted:{color:o.colorNeutralForeground3},nested:{display:"flex",flexDirection:"column",gap:o.spacingVerticalXS,paddingLeft:o.spacingHorizontalM,borderLeft:`2px solid ${o.colorBrandStroke2}`},nestedToolbar:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:o.spacingHorizontalXS},pickerSurface:{minWidth:"300px",maxHeight:"50vh",overflowY:"auto",padding:o.spacingVerticalS}}),G=e=>e.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2").replace(/^Is /,"").toLowerCase().replace(/^./,t=>t.toUpperCase()),k=[["PrimaryEntity","Primary table (the form or grid)"],["SelectedEntity","Selected records"]],Ae=[["Form","Form"],["HomePageGrid","Home page grid"],["SubGridStandard","Sub-grid"],["SubGridAssociated","Associated grid"]],De=[["Create","New record"],["Existing","Existing record"],["ReadOnly","Read-only"],["Disabled","Disabled"],["BulkEdit","Bulk edit"]],Fe=[["Main","Main"],["Preview","Preview"],["AppointmentBook","Appointment book"],["Dashboard","Dashboard"],["Quick","Quick view"],["QuickCreate","Quick create"],["Card","Card"],["MainInteractionCentric","Main (interactive experience)"]],Me=[["None","None"],["Phone","Phone"],["Tablet","Tablet"],["Web","Web"],["Outlook","Outlook"],["InteractionCentric","Interactive experience"]],U=[["Create","Create"],["Read","Read"],["Write","Write"],["Delete","Delete"],["Assign","Assign"],["Share","Share"],["Append","Append"],["AppendTo","Append to"]],X=[["None","None"],["Basic","User (Basic)"],["Local","Business unit (Local)"],["Deep","Parent: child business units (Deep)"],["Global","Organization (Global)"]],_e=["DuplicateDetectionEnabled","GridFiltersEnabled","HasStateCode","IsConnectionsEnabled","MailMergeEnabled","WorksWithQueue","HasActivities","IsActivity","HasNotes","IsCustomizable","IsActivityParty","HasEmailAddresses","IsChildEntity","IsImportable","IsEnabledForCharts","IsBusinessProcessEnabled","HasFeedback","IsBPFEntity"],Le=["IsSharepointEnabled","IsSOPIntegrationEnabled","IsFiscalCalendarDefined","IsReadFormModeDefined","IsBPFEntityCustomizationFeatureEnabled"],Ve=["ExportToExcel","MailMerge","GoOffline","OfflineSynchronize","PublishReports"];function p({label:e,info:t,value:u,choices:c,anyLabel:g,disabled:f,onChange:i}){return a.jsx(b,{label:t?{children:(x,h)=>a.jsx(z,{...h,info:t,children:e})}:e,children:a.jsxs(ye,{value:u??"",disabled:f,onChange:(x,h)=>i(h.value||void 0),children:[g!==void 0&&a.jsx("option",{value:"",children:g}),c.map(([x,h])=>a.jsx("option",{value:x,children:h},x))]})})}function A({label:e,value:t,required:u,min:c=0,onChange:g}){const f=J();return a.jsx(b,{label:e,children:a.jsx(ve,{className:f.number,min:c,value:t??null,onChange:(i,x)=>{const h=x.displayValue?.trim(),m=x.value!==void 0&&x.value!==null?x.value:h?parseInt(h,10):void 0;if(m===void 0)return u?void 0:g(void 0);Number.isInteger(m)&&m>=c&&g(m)}})})}const ee=({step:e,onChange:t,onRemove:u,container:c,number:g,menu:f})=>{const i=J(),[x,h]=oe.useState(null),m=e.kind!=="OrRule"&&e.kind!=="RawRule",O=m?e.invertResult:void 0,E=m?e.default:void 0,y=V[e.kind]??e.kind,l=n=>{t({...e,...n})},T=(n,s)=>a.jsx(b,{label:"Table",hint:"Its logical name; empty for any.",children:a.jsx(j,{value:n??"",onChange:(C,v)=>s(v.value||void 0)})}),I=()=>{switch(e.kind){case"CommandClientTypeRule":return a.jsx(p,{label:"Client",value:e.type,choices:[["Modern","Modern (Unified Interface: web, tablets and phones)"],["Refresh","Refresh (legacy updated web client)"],["Legacy","Legacy (classic ribbon + Outlook list views)"]],onChange:n=>l({type:n})});case"CrmClientTypeRule":return a.jsx(p,{label:"Client",value:e.type,choices:[["Web","Web"],["Outlook","Outlook"]],onChange:n=>l({type:n})});case"FormStateRule":return a.jsx(p,{label:"State",value:e.state,choices:De,onChange:n=>l({state:n})});case"FormTypeRule":return a.jsx(p,{label:"Form type",value:e.type,choices:Fe,onChange:n=>l({type:n})});case"SelectionCountRule":return a.jsxs("div",{className:i.row,children:[a.jsx(A,{label:"At least",value:e.minimum,onChange:n=>l({minimum:n})}),a.jsx(A,{label:"At most",value:e.maximum,onChange:n=>l({maximum:n})}),a.jsx(p,{label:"Applies to",value:e.appliesTo,choices:k,anyLabel:"Any",onChange:n=>l({appliesTo:n})})]});case"EntityRule":return a.jsxs("div",{className:i.row,children:[T(e.entityName,n=>l({entityName:n})),a.jsx(p,{label:"Applies to",value:e.appliesTo,choices:k,anyLabel:"Any",onChange:n=>l({appliesTo:n})}),a.jsx(p,{label:"Where",value:e.context,choices:Ae,anyLabel:"Anywhere",onChange:n=>l({context:n})})]});case"FormEntityContextRule":return a.jsx(b,{label:"The form's table",hint:"Its logical name.",children:a.jsx(j,{value:e.entityName,onChange:(n,s)=>l({entityName:s.value})})});case"CustomRule":return a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:i.row,children:[a.jsx(b,{label:"Library",hint:"A JavaScript web resource ($webresource:…).",children:a.jsx(j,{value:e.library,onChange:(n,s)=>l({library:s.value}),placeholder:"$webresource:publisher_/scripts/file.js"})}),a.jsx(b,{label:"Function",hint:"The function's full name, including its namespace.",children:a.jsx(j,{value:e.functionName,onChange:(n,s)=>l({functionName:s.value})})})]}),a.jsx(b,{label:"Parameters, in order",children:a.jsx(je,{params:e.params??[],onChange:n=>l({params:n.length?n:void 0})})}),a.jsx(w,{className:i.muted,children:"In Unified Interface the function can return a Promise of true or false; one that hasn't settled after 10 seconds counts as false."})]});case"CrmOfflineAccessStateRule":return a.jsx(p,{label:"State",value:e.state,choices:[["Online","Online"],["Offline","Offline"]],onChange:n=>l({state:n})});case"CrmOutlookClientTypeRule":return a.jsx(p,{label:"Outlook client",value:e.type,choices:[["CrmForOutlook","Outlook"],["CrmForOutlookOfflineAccess","Outlook with offline access"]],onChange:n=>l({type:n})});case"CrmOutlookClientVersionRule":return a.jsxs("div",{className:i.row,children:[a.jsx(A,{label:"Major",value:e.major,required:!0,onChange:n=>n!==void 0&&l({major:n})}),a.jsx(A,{label:"Minor",value:e.minor,onChange:n=>l({minor:n})}),a.jsx(A,{label:"Build",value:e.build,onChange:n=>l({build:n})}),a.jsx(A,{label:"Revision",value:e.revision,onChange:n=>l({revision:n})})]});case"DeviceTypeRule":return a.jsx(p,{label:"Device",value:e.type,choices:Me,onChange:n=>l({type:n})});case"EntityPrivilegeRule":return a.jsxs("div",{className:i.row,children:[T(e.entityName,n=>l({entityName:n})),a.jsx(p,{label:"Applies to",value:e.appliesTo,choices:k,anyLabel:"Any",onChange:n=>l({appliesTo:n})}),a.jsx(p,{label:"Privilege",value:e.privilegeType,choices:U,onChange:n=>l({privilegeType:n})}),a.jsx(p,{label:"Depth",value:e.privilegeDepth,choices:X,onChange:n=>l({privilegeDepth:n})})]});case"EntityPropertyRule":return a.jsxs("div",{className:i.row,children:[T(e.entityName,n=>l({entityName:n})),a.jsx(p,{label:"Applies to",value:e.appliesTo,choices:k,anyLabel:"Any",onChange:n=>l({appliesTo:n})}),a.jsx(p,{label:"Property",value:e.propertyName,choices:_e.map(n=>[n,G(n)]),onChange:n=>l({propertyName:n})}),a.jsx(P,{label:"The property is true",checked:e.propertyValue,onChange:(n,s)=>l({propertyValue:s.checked===!0})})]});case"ValueRule":return a.jsxs("div",{className:i.row,children:[a.jsx(b,{label:"Column",hint:"Its logical name.",children:a.jsx(j,{value:e.field,onChange:(n,s)=>l({field:s.value})})}),a.jsx(b,{label:"Equals",children:a.jsx(j,{value:e.value,onChange:(n,s)=>l({value:s.value})})})]});case"OrRule":{const n=C=>t({...e,groups:C.filter(v=>v.length>0)}),s=(C,v)=>a.jsxs(q,{open:x===C,onOpenChange:($,R)=>h(R.open?C:null),positioning:"below-start",children:[a.jsx(Y,{children:a.jsx(D,{icon:a.jsx(K,{}),appearance:"secondary",size:"small",children:v})}),a.jsx(Q,{className:i.pickerSurface,children:a.jsx(Z,{container:c,insideOr:!0,onSelect:$=>{n(C==="new"?[...e.groups,[$]]:e.groups.map((R,N)=>N===C?[...R,$]:R)),h(null)}})})]});return a.jsxs("div",{className:i.nested,children:[e.groups.map((C,v)=>a.jsxs("div",{className:i.nested,children:[a.jsxs(_,{size:200,weight:"semibold",children:[v===0?"Either":"Or",C.length>1?" (all of)":""]}),C.map(($,R)=>a.jsx(ee,{step:$,container:c,onChange:N=>n(e.groups.map((r,d)=>d===v?r.map((S,ne)=>ne===R?N:S):r)),onRemove:()=>n(e.groups.map((N,r)=>r===v?N.filter((d,S)=>S!==R):N))},`${v}-${R}-${$.kind}`)),a.jsx("div",{className:i.nestedToolbar,children:s(v,"And…")})]},v)),a.jsxs("div",{className:i.nestedToolbar,children:[s("new","Add an Or branch"),a.jsx(w,{className:i.muted,children:"An Or needs at least two branches."})]})]})}case"FeatureControlRule":return a.jsxs("div",{className:i.row,children:[a.jsx(b,{label:"Feature control bit",children:a.jsx(j,{value:e.featureControlBit,onChange:(n,s)=>l({featureControlBit:s.value})})}),a.jsx(P,{label:"The bit is set",checked:e.expectedValue,onChange:(n,s)=>l({expectedValue:s.checked===!0})})]});case"RawRule":return a.jsxs(a.Fragment,{children:[a.jsx(w,{className:i.muted,children:"Command Bar Studio doesn't edit this rule; it is kept exactly as loaded."}),a.jsx("pre",{style:{margin:0,whiteSpace:"pre-wrap",fontSize:"11px"},children:e.xml})]});case"SkuRule":return a.jsx(p,{label:"Deployment",value:e.sku,choices:[["Online","Online"],["OnPremise","On-premises"],["Spla","Hosted (SPLA)"]],onChange:n=>l({sku:n})});case"OrganizationSettingRule":return a.jsx(p,{label:"Setting is on",value:e.setting,choices:Le.map(n=>[n,G(n)]),onChange:n=>l({setting:n})});case"MiscellaneousPrivilegeRule":return a.jsxs("div",{className:i.row,children:[a.jsx(b,{label:"Privilege",children:a.jsx(ge,{freeform:!0,value:e.privilegeName,placeholder:"ExportToExcel",onChange:n=>l({privilegeName:n.target.value}),onOptionSelect:(n,s)=>s.optionValue&&l({privilegeName:s.optionValue}),children:Ve.map(n=>a.jsx(xe,{value:n,children:n},n))})}),a.jsx(p,{label:"Depth",value:e.privilegeDepth,choices:X,anyLabel:"Any",onChange:n=>l({privilegeDepth:n})})]});case"OptionSetRule":return a.jsxs("div",{className:i.row,children:[a.jsx(b,{label:"Choice column",children:a.jsx(j,{value:e.optionSet,onChange:(n,s)=>l({optionSet:s.value})})}),a.jsx(b,{label:"State code",children:a.jsx(j,{value:e.stateCode,onChange:(n,s)=>l({stateCode:s.value})})}),a.jsx(b,{label:"Table type code",children:a.jsx(j,{value:e.objectTypeCode,onChange:(n,s)=>l({objectTypeCode:s.value})})})]});case"OutlookItemTrackingRule":return a.jsxs("div",{className:i.row,children:[a.jsx(P,{label:"The item is tracked",checked:e.trackedInCrm,onChange:(n,s)=>l({trackedInCrm:s.checked===!0})}),a.jsx(p,{label:"Applies to",value:e.appliesTo??"PrimaryEntity",choices:k.slice(0,1),onChange:n=>l({appliesTo:n})})]});case"OutlookRenderTypeRule":return a.jsx(p,{label:"Shown in",value:e.type,choices:[["Web","Web"],["Outlook","Outlook"]],onChange:n=>l({type:n})});case"OutlookVersionRule":return a.jsx(p,{label:"Outlook version",value:e.version,choices:[["2003","2003"],["2007","2007"],["2010","2010"]],onChange:n=>l({version:n})});case"PageRule":return a.jsx(b,{label:"Page address contains",children:a.jsx(j,{value:e.address,onChange:(n,s)=>l({address:s.value}),placeholder:"main.aspx"})});case"RecordPrivilegeRule":return a.jsxs("div",{className:i.row,children:[a.jsx(p,{label:"Privilege",value:e.privilegeType,choices:U,onChange:n=>l({privilegeType:n})}),a.jsx(p,{label:"Applies to",value:e.appliesTo,choices:k.slice(0,1),anyLabel:"The selected record",onChange:n=>l({appliesTo:n})})]});case"RelationshipTypeRule":return a.jsxs("div",{className:i.row,children:[a.jsx(p,{label:"Applies to",value:e.appliesTo,choices:k.slice(1),disabled:!0,onChange:()=>{}}),a.jsx(p,{label:"Relationship",value:e.relationshipType,choices:[["OneToMany","One-to-many"],["ManyToMany","Many-to-many"],["NoRelationship","No relationship"]],anyLabel:"Any",onChange:n=>l({relationshipType:n})}),a.jsx(P,{label:"Custom relationships too",checked:e.allowCustomRelationship===!0,onChange:(n,s)=>l({allowCustomRelationship:s.checked===!0})}),a.jsx(P,{label:"System relationships too",checked:e.allowSystemRelationship===!0,onChange:(n,s)=>l({allowSystemRelationship:s.checked===!0})})]});default:return a.jsx(w,{className:i.muted,children:"Nothing to set for this step."})}};return a.jsxs("div",{className:i.step,children:[a.jsxs("div",{className:i.header,children:[a.jsxs("div",{className:i.title,children:[g!==void 0&&a.jsxs(_,{weight:"semibold",children:[g,"."]}),a.jsx(he,{appearance:"outline",size:"medium",className:i.kindBadge,children:y})]}),f,a.jsx(me,{content:`Remove ${y} step`,relationship:"label",children:a.jsx(D,{appearance:"subtle",icon:a.jsx(le,{}),size:"small",onClick:u})})]}),a.jsxs("div",{className:i.fields,children:[I(),m&&a.jsxs("div",{className:i.row,children:[a.jsx(p,{label:"If it can't be evaluated",info:"What the step counts as when it can't be evaluated.",value:E===void 0?void 0:String(E),choices:[["true","Passes"],["false","Fails"]],anyLabel:"Not set",onChange:n=>l({default:n===void 0?void 0:n==="true"})}),a.jsx(b,{hint:"The step passes when its condition is false.",children:a.jsx(P,{label:"Invert result",checked:O===!0,onChange:(n,s)=>l({invertResult:s.checked===!0?!0:void 0})})})]})]})]})};function Be(e){return e.length===0?"No steps defined — a rule needs at least one before it can be published.":e.map(B).join(" AND ")}function B(e){const t="invertResult"in e&&e.invertResult?"NOT ":"";switch(e.kind){case"SelectionCountRule":{const u=e.minimum!==void 0?`at least ${e.minimum}`:null,c=e.maximum!==void 0?`at most ${e.maximum}`:null,g=[u,c].filter(Boolean).join(" and "),f=e.appliesTo?` (${e.appliesTo})`:"";return`${t}Selection count is ${g}${f}`}case"EntityRule":{const u=e.entityName??"any entity",c=e.context?` in ${e.context} context`:"",g=e.appliesTo?` (${e.appliesTo})`:"";return`${t}Entity is "${u}"${c}${g}`}case"FormStateRule":return`${t}Form state is "${e.state}"`;case"CommandClientTypeRule":return`${t}Client type is "${e.type}" (${We(e.type)})`;case"CrmClientTypeRule":return`${t}CRM client type is "${e.type}"`;case"CustomRule":return`${t}Custom rule: ${e.functionName}() from ${e.library}`;case"OrRule":return`(${e.groups.map(c=>c.length===1?B(c[0]):`(${c.map(B).join(" AND ")})`).join(" OR ")})`;case"FeatureControlRule":return`${t}Feature "${e.featureControlBit}" is ${e.expectedValue?"on":"off"}`;case"RawRule":return`${e.tagName} (kept as XML)`;case"MiscellaneousPrivilegeRule":{const u=e.privilegeDepth?` at ${e.privilegeDepth} depth`:"";return`${t}User has "${e.privilegeName}" privilege${u}`}case"EntityPrivilegeRule":{const u=e.entityName?` on "${e.entityName}"`:"",c=e.appliesTo?` (${e.appliesTo})`:"";return`${t}User has ${e.privilegeType} privilege${u} at ${e.privilegeDepth} depth${c}`}case"EntityPropertyRule":{const u=e.entityName?` for "${e.entityName}"`:"";return`${t}Entity property "${e.propertyName}" is ${e.propertyValue}${u}`}case"FormTypeRule":return`${t}Form type is "${e.type}"`;case"FormEntityContextRule":return`${t}Form entity context is "${e.entityName}"`;case"ValueRule":return`${t}Field "${e.field}" equals "${e.value}"`;case"SkuRule":return`${t}SKU is "${e.sku}"`;case"HideForTabletExperienceRule":return`${t}Hide for tablet experience`;case"OrganizationSettingRule":return`${t}Organization setting "${e.setting}" is enabled`;case"PageRule":return`${t}Page address matches "${e.address}"`;case"RecordPrivilegeRule":{const u=e.appliesTo?` (${e.appliesTo})`:"";return`${t}User has ${e.privilegeType} privilege on current record${u}`}case"RelationshipTypeRule":{const u=e.relationshipType??"any";return`${t}Relationship type is "${u}" (${e.appliesTo})`}case"ReferencingAttributeRequiredRule":return`${t}Referencing attribute is required`;case"OutlookItemTrackingRule":return`${t}Outlook item is ${e.trackedInCrm?"":"not "}tracked in CRM`;case"OutlookRenderTypeRule":return`${t}Outlook render type is "${e.type}"`;case"OutlookVersionRule":return`${t}Outlook version is "${e.version}"`;case"CrmOfflineAccessStateRule":return`${t}CRM offline state is "${e.state}"`;case"CrmOutlookClientTypeRule":return`${t}CRM Outlook client type is "${e.type}"`;case"CrmOutlookClientVersionRule":return`${t}CRM Outlook client version is ${e.major}.${e.minor??0}+`;case"DeviceTypeRule":return`${t}Device type is "${e.type}"`;case"OptionSetRule":return`${t}Option set "${e.optionSet}" state code is "${e.stateCode}"`;default:return"Unknown rule step"}}function We(e){switch(e){case"Modern":return"Unified Interface";case"Refresh":return"legacy updated web client";case"Legacy":return"Classic ribbon / Outlook list views";default:return e}}const ae=W({body:{display:"flex",flexDirection:"column",gap:o.spacingVerticalM,minWidth:0},stepsList:{display:"flex",flexDirection:"column",gap:o.spacingVerticalS,listStyle:"none",padding:0,margin:0},muted:{color:o.colorNeutralForeground3},summary:{padding:o.spacingVerticalS,backgroundColor:o.colorNeutralBackground3,borderRadius:o.borderRadiusMedium,color:o.colorNeutralForeground2,fontSize:o.fontSizeBase200},pickerPopover:{maxHeight:"60vh",overflowY:"auto",minWidth:"320px",padding:o.spacingVerticalM},sortableInner:{display:"flex",alignItems:"flex-start",gap:o.spacingHorizontalXS,minWidth:0},dragHandle:{marginTop:o.spacingVerticalXS,cursor:"grab",touchAction:"none"},stepBody:{flex:1,minWidth:0}}),ze=[],ea=()=>{const e=ae(),t=F(r=>r.ruleEditorOpen),u=F(r=>r.ruleEditorId),c=F(r=>r.ruleEditorKind),g=F(r=>r.closeRuleEditor),f=M(r=>r.enableRules),i=M(r=>r.displayRules),x=M(r=>r.upsertEnableRule),h=M(r=>r.upsertDisplayRule),[m,O]=L.useState(!1),E=c==="enable",y=E?f.find(r=>r.id===u):i.find(r=>r.id===u);L.useEffect(()=>{t&&u&&!y&&g()},[t,u,y,g]);const l=Se(`${c}:${y?.id??""}`,y?.steps??ze),T=l.keys;if(!y)return null;const I=r=>{E?x({...y,steps:r}):h({...y,steps:r})},n=(r,d)=>{const S=[...y.steps];S[r]=d,l.update(),I(S)},s=r=>{l.remove(r),I(y.steps.filter((d,S)=>S!==r))},C=r=>{l.add(),I([...y.steps,r]),O(!1)},v=(r,d)=>{r===d||r<0||d<0||d>=y.steps.length||(l.move(r,d),I(we(y.steps,r,d)))},$=r=>{r.over&&v(T.indexOf(String(r.active.id)),T.indexOf(String(r.over.id)))},R=y.steps.length,N=E?"enable":"display";return a.jsxs("div",{className:e.body,children:[E?a.jsx(z,{info:"Enable rules take fewer kinds of step than display rules; Add step only offers the ones they take.",children:"Passes when every step below is true."}):a.jsx(_,{children:"Passes when every step below is true."}),R>0?a.jsx(Te,{collisionDetection:Ne,onDragEnd:$,children:a.jsx($e,{items:T,strategy:Oe,children:a.jsx("ol",{className:e.stepsList,"aria-label":"Rule steps",children:y.steps.map((r,d)=>a.jsx(He,{id:T[d],draggable:R>1,children:a.jsx(ee,{step:r,number:d+1,menu:R>1&&a.jsxs(be,{children:[a.jsx(Re,{disableButtonEnhancement:!0,children:a.jsx(D,{appearance:"subtle",size:"small",icon:a.jsx(te,{}),"aria-label":`More for step ${d+1}`})}),a.jsx(fe,{children:a.jsxs(Ce,{children:[a.jsx(H,{icon:a.jsx(re,{}),disabled:d===0,onClick:()=>v(d,d-1),children:"Move up"}),a.jsx(H,{icon:a.jsx(se,{}),disabled:d===R-1,onClick:()=>v(d,d+1),children:"Move down"})]})})]}),onChange:S=>n(d,S),onRemove:()=>s(d),container:N})},T[d]))})})}):a.jsx(_,{className:e.muted,children:"No steps yet. A rule needs at least one step: add one before you publish, or remove the rule from its commands."}),a.jsx("div",{children:a.jsxs(q,{open:m,onOpenChange:(r,d)=>O(d.open),positioning:"below-start",children:[a.jsx(Y,{children:a.jsx(D,{icon:a.jsx(K,{}),onClick:()=>O(!0),children:"Add step"})}),a.jsx(Q,{className:e.pickerPopover,children:a.jsx(Z,{onSelect:C,container:N})})]})}),R>0&&a.jsxs(a.Fragment,{children:[a.jsx(w,{className:e.muted,children:"In words"}),a.jsx("div",{className:e.summary,role:"note","aria-label":"Rule summary",children:Be(y.steps)})]})]})};function He({id:e,draggable:t,children:u}){const c=ae(),{attributes:g,listeners:f,setNodeRef:i,setActivatorNodeRef:x,transform:h,transition:m}=Ee({id:e,disabled:!t});return a.jsx("li",{ref:i,style:{transform:ke.Transform.toString(h),transition:m},children:a.jsxs("div",{className:c.sortableInner,children:[t&&a.jsx(D,{ref:x,appearance:"subtle",size:"small",className:c.dragHandle,icon:a.jsx(ie,{}),...g,...f,"aria-label":"Drag to reorder step"}),a.jsx("div",{className:c.stepBody,children:u})]})})}export{ea as RuleEditorPanel,ea as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{L as e,K as B}from"./fluent-icons-CQEhzzaC.js";import{a as r}from"./monaco-BIO15LCS.js";import{aJ as N,aK as W,as as M,aw as R,F as k}from"./index-6so8O90C.js";import{M as L}from"./MonacoEditor-BMKRZv-g.js";import{L as d,N as u,ag as D,h as T,t as l}from"./fluent-ui-BEjALNLO.js";import"./dnd-C1w9VFfC.js";const H=B({root:{flex:1,display:"flex",flexDirection:"column",gap:l.spacingVerticalS,minHeight:"300px"},editor:{flex:1,minHeight:"240px",border:`1px solid ${l.colorNeutralStroke2}`,borderRadius:l.borderRadiusMedium,overflow:"hidden"},save:{display:"flex",alignItems:"center",justifyContent:"flex-end",gap:l.spacingHorizontalS}}),O=s=>s?new TextDecoder().decode(Uint8Array.from(atob(s),n=>n.charCodeAt(0))):"",U=s=>{const n=new TextEncoder().encode(s);let o="";for(let i=0;i<n.length;i+=1)o+=String.fromCharCode(n[i]);return btoa(o)},V={html:1,css:2,js:3,xml:4,png:5,jpg:6,gif:7,xsl:9,ico:10,svg:11,resx:12},z=s=>V[s.split(".").pop()?.toLowerCase()??""]??3;function P({name:s,editable:n}){const o=H(),[i,S]=r.useState(!0),[f,p]=r.useState(!1),[g,w]=r.useState(!1),[x,c]=r.useState(null),[m,h]=r.useState(null),[y,v]=r.useState(""),[b,j]=r.useState(!1);r.useEffect(()=>{let a=!0;return(async()=>{try{const t=await N(s);if(!a)return;if(!t){w(!0);return}const E=await W(t.id);a&&v(O(E))}catch(t){a&&c(t instanceof Error?t.message:"Couldn't load the script.")}finally{a&&S(!1)}})(),()=>{a=!1}},[s]);const C=async()=>{const a=k();p(!0),c(null),h(null);try{const t=await R(s,U(y),z(s),{displayName:s.split("/").pop(),guard:a});h([t.solutionWarning,t.publishWarning].filter(Boolean).join(" ")||null),j(!1)}catch(t){c(t instanceof Error?t.message:"Couldn't save the script.")}finally{p(!1)}};return e.jsxs("div",{className:o.root,children:[g&&e.jsx(d,{intent:"warning",children:e.jsxs(u,{children:["There's no web resource named ",s," in this environment. Check the action's library."]})}),x&&e.jsx(d,{intent:"error",children:e.jsx(u,{children:x})}),m&&e.jsx(d,{intent:"warning",children:e.jsx(u,{children:m})}),i?e.jsx(D,{size:"small",label:"Loading the script…"}):!g&&e.jsxs(e.Fragment,{children:[n&&e.jsxs("div",{className:o.save,children:[e.jsx(M,{prefix:"Saves to"}),e.jsx(T,{appearance:"primary",disabled:!b||f,onClick:()=>{C()},children:f?"Saving…":"Save script"})]}),e.jsx("div",{className:o.editor,children:e.jsx(L,{language:"javascript",value:y,readOnly:!n,onChange:a=>{v(a),j(!0)},options:{wordWrap:"on"}})})]})]})}export{P as ScriptView,P as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{L as e,ac as F,ad as w,K as O}from"./fluent-icons-CQEhzzaC.js";import{R as C}from"./monaco-BIO15LCS.js";import{b as V,a as p,aj as z,aL as $}from"./index-6so8O90C.js";import{u as I}from"./useStableKeys-BkDn7til.js";import{b as j,L as K,N as U,T as W,h as v,F as b,Y as f,X as A,M as X,s as Y,v as q,w as J,x as M,af as Q,t as o}from"./fluent-ui-BEjALNLO.js";import"./dnd-C1w9VFfC.js";function Z(d){return(d??[]).flatMap(r=>r.rules)}const ee=[],P=()=>({kind:"EntityRule",appliesTo:"PrimaryEntity",context:"HomePageGrid"}),se=()=>({kind:"PageRule",address:""}),ae=O({body:{display:"flex",flexDirection:"column",gap:o.spacingVerticalM},muted:{color:o.colorNeutralForeground3},steps:{listStyleType:"none",margin:0,padding:0,display:"flex",flexDirection:"column",gap:o.spacingVerticalS},step:{display:"flex",flexDirection:"column",gap:o.spacingVerticalS,padding:o.spacingVerticalM,border:`1px solid ${o.colorNeutralStroke2}`,borderRadius:o.borderRadiusMedium},stepHeader:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:o.spacingHorizontalS},fields:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(150px, 1fr))",gap:o.spacingHorizontalS,minWidth:0}}),re=({location:d,tabId:r})=>{const c=ae(),S=V(s=>s.editorBack),T=p(s=>s.ribbons[d]),D=p(s=>s.setTabDisplayRules),E=p(s=>s.locLabels),B=p(s=>s.baseLanguageCode),L=z(),n=T.tabs.find(s=>s.id===r),m=d==="Application",N=p(s=>!s.baseline[d]?.tabs.some(a=>a.id===r)),R=p(s=>$(s,d)),l=!!n&&!N&&R!==void 0&&!R.includes(r),u=C.useMemo(()=>Z(n?.tabDisplayRules),[n?.tabDisplayRules]),x=I(`tabRules:${d}:${r}`,n?u:ee),k=!n;if(C.useEffect(()=>{k&&S()},[k,S]),!n)return null;const g=s=>D(d,r,s.length>0?[{tabCommand:n.commandId??"",rules:s}]:[]),h=(s,a)=>{g(u.map((t,i)=>i===s?a:t)),x.update()},y=s=>{g([...u,s]),x.add()},G=s=>{g(u.filter((a,t)=>t!==s)),x.remove(s)},H=s=>[...new Set([T.entityLogicalName,s.entityName].filter(a=>!!a))],_=L(n.label,E,B,n.source?.titleToken)||n.id;return e.jsxs("div",{className:c.body,children:[e.jsxs(j,{children:["Tabs are hidden unless their display rule matches. ",e.jsx("strong",{children:_})," shows where ",e.jsx("strong",{children:"any"})," step below matches."]}),l&&e.jsx(K,{intent:"info",children:e.jsx(U,{children:"Another solution adds this tab, so its display rule can't be changed here."})}),u.length>0?e.jsx("ol",{className:c.steps,"aria-label":"Display rule steps",children:u.map((s,a)=>e.jsxs("li",{className:c.step,children:[e.jsxs("div",{className:c.stepHeader,children:[e.jsxs(j,{weight:"semibold",children:[a+1,". ",s.kind==="PageRule"?"Page":"Table"]}),!l&&e.jsx(W,{content:"Remove step",relationship:"label",children:e.jsx(v,{appearance:"subtle",size:"small",icon:e.jsx(F,{}),onClick:()=>G(a)})})]}),s.kind==="EntityRule"&&e.jsxs("div",{className:c.fields,children:[e.jsx(b,{label:"Applies to",children:e.jsxs(f,{value:s.appliesTo??"",disabled:l,onChange:(t,i)=>h(a,{...s,appliesTo:i.value||void 0}),children:[e.jsx("option",{value:"",children:"Any"}),e.jsx("option",{value:"PrimaryEntity",children:"Primary entity"}),e.jsx("option",{value:"SelectedEntity",children:"Selected entity"})]})}),e.jsx(b,{label:"Context",children:e.jsxs(f,{value:s.context??"",disabled:l,onChange:(t,i)=>h(a,{...s,context:i.value||void 0}),children:[e.jsx("option",{value:"",children:"Any"}),e.jsx("option",{value:"Form",children:"Form"}),e.jsx("option",{value:"HomePageGrid",children:"Home Page Grid"}),e.jsx("option",{value:"SubGridStandard",children:"SubGrid Standard"}),e.jsx("option",{value:"SubGridAssociated",children:"SubGrid Associated"})]})}),m?e.jsx(b,{label:"Table",hint:"Leave empty for any table.",children:e.jsx(A,{value:s.entityName??"",disabled:l,onChange:(t,i)=>h(a,{...s,entityName:i.value||void 0})})}):e.jsx(b,{label:"Table",children:e.jsxs(f,{value:s.entityName??"",disabled:l,onChange:(t,i)=>h(a,{...s,entityName:i.value||void 0}),children:[e.jsx("option",{value:"",children:"Any"}),H(s).map(t=>e.jsx("option",{value:t,children:t},t))]})})]}),s.kind==="PageRule"&&e.jsx(b,{label:"Address pattern",validationState:s.address.trim()?"none":"error",validationMessage:s.address.trim()?void 0:"Enter the page address.",children:e.jsx(A,{value:s.address,disabled:l,onChange:(t,i)=>h(a,{...s,address:i.value}),placeholder:"https://…"})})]},x.keys[a]))}):e.jsx(j,{className:c.muted,children:l?"This tab has no display rule of its own.":N&&!m?"No steps: when you publish, this new tab gets the default rule for its location (this table, where the tab is).":"No steps: this tab will be hidden."}),!l&&(m?e.jsx("div",{children:e.jsxs(X,{children:[e.jsx(Y,{disableButtonEnhancement:!0,children:e.jsx(v,{icon:e.jsx(w,{}),children:"Add step"})}),e.jsx(q,{children:e.jsxs(J,{children:[e.jsx(M,{onClick:()=>y(P()),children:"Table"}),e.jsx(M,{onClick:()=>y(se()),children:"Page"})]})})]})}):e.jsx("div",{children:e.jsx(v,{icon:e.jsx(w,{}),onClick:()=>y(P()),children:"Add step"})})),e.jsx(Q,{className:c.muted,children:m?"Application ribbon tabs take table and page steps.":"A table's tabs take table steps only."})]})};export{re as TabDisplayRulesPanel,re as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{L as n,ac as ne,dq as se,ad as oe,K as ie}from"./fluent-icons-CQEhzzaC.js";import{a as S,R as le}from"./monaco-BIO15LCS.js";import{b as re,a as j,s as de,aP as A,aQ as ce,aR as ue,aS as ge}from"./index-6so8O90C.js";import{L as K,N as U,b as _,af as G,T as W,h as O,F as q,av as pe,X as be,C as he,c as me,t as u}from"./fluent-ui-BEjALNLO.js";import"./dnd-C1w9VFfC.js";const z={1033:"English (United States)",1031:"German",1034:"Spanish (traditional)",1036:"French",1040:"Italian",1041:"Japanese",1042:"Korean",1043:"Dutch",1044:"Norwegian",1045:"Polish",1046:"Portuguese (Brazil)",1049:"Russian",1053:"Swedish",1054:"Thai",1055:"Turkish",1057:"Indonesian",1058:"Ukrainian",1066:"Vietnamese",2052:"Chinese (Simplified)",3082:"Spanish (Spain)"},p=m=>z[m]??`Language ${m}`,fe="",k=[{field:"label",name:"Label"},{field:"tooltipTitle",name:"Tooltip title"},{field:"tooltipBody",name:"Tooltip body",multiline:!0}],xe=ie({body:{display:"flex",flexDirection:"column",gap:u.spacingVerticalM},muted:{color:u.colorNeutralForeground3},add:{display:"flex",alignItems:"flex-end",gap:u.spacingHorizontalS},addField:{flex:"0 1 320px",minWidth:0},language:{display:"flex",flexDirection:"column",gap:u.spacingVerticalS,padding:u.spacingVerticalM,border:`1px solid ${u.colorNeutralStroke2}`,borderRadius:u.borderRadiusMedium},languageHeader:{display:"flex",alignItems:"center",gap:u.spacingHorizontalS},languageName:{flex:1,minWidth:0},fields:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))",gap:u.spacingHorizontalM,alignItems:"start"}}),Se=({buttonId:m})=>{const d=xe(),M=re(e=>e.editorBack),D=j(e=>e.ribbons),y=j(e=>e.locLabels),s=j(e=>e.baseLanguageCode),J=j(e=>e.upsertLocLabel),Q=j(e=>e.setButtonProp),b=S.useMemo(()=>{for(const[e,t]of Object.entries(D))for(const a of t.tabs)for(const l of a.groups)for(const o of de(l))if(o.id===m)return{button:o,location:e,tabId:a.id,groupId:l.id}},[D,m]),[X,F]=S.useState([]),[T,P]=S.useState(""),[Y,Z]=S.useState(!1),V=!b;if(le.useEffect(()=>{V&&M()},[V,M]),!b)return null;const{button:i}=b,h=i.source,L={label:A(h?.labelToken,ge(i.id),i.label,y,s),tooltipTitle:A(h?.tooltipTitleToken,ue(i.id),i.tooltipTitle,y,s),tooltipBody:A(h?.tooltipBodyToken,ce(i.id),i.tooltipBody,y,s)},H={label:h?.labelToken,tooltipTitle:h?.tooltipTitleToken,tooltipBody:h?.tooltipBodyToken},f=k.filter(({field:e})=>L[e]===null&&H[e]).map(({field:e})=>H[e].slice(11)).filter((e,t,a)=>a.indexOf(e)===t),v=i.origin!==void 0&&i.origin!=="unmanaged",x=e=>y.find(t=>t.id===L[e]),C=e=>i[e]??"",N=(e,t)=>t===s?C(e):x(e)?.titles.find(a=>a.languageCode===t)?.description??"",I=[s,...new Set([...k.flatMap(({field:e})=>(x(e)?.titles??[]).map(t=>t.languageCode)),...X].filter(e=>e!==s))].sort((e,t)=>e===s?-1:t===s?1:e-t),B=(e,t,a,l)=>{const o=L[e];if(!o)return;const g=x(e),c=new Map((g?.titles??[]).filter(r=>r.languageCode!==s).map(r=>[r.languageCode,r.description]));t!==null&&t!==s&&(a?c.set(t,a):c.delete(t)),!(!g&&c.size===0)&&J({id:o,titles:[...l?[{languageCode:s,description:l}]:[],...[...c].map(([r,R])=>({languageCode:r,description:R}))]})},w=(e,t,a)=>{if(t!==s)return B(e,t,a,C(e));e==="label"&&(Z(!a),!a)||(Q(b.location,b.tabId,b.groupId,i.id,{[e]:e==="label"?a:a||void 0}),x(e)&&B(e,null,"",a))},ee=e=>{for(const{field:t}of k)x(t)?.titles.some(a=>a.languageCode===e)&&B(t,e,"",C(t));F(t=>t.filter(a=>a!==e))},$=e=>{const t=Number(/\d+/.exec(e)?.[0])||Number(Object.entries(z).find(([,a])=>a===e)?.[0]);!t||I.includes(t)||(F(a=>[...a,t]),P(""))},te=(e,t,a)=>{const l=document.getElementById(a),o=N(e,t),g=l?.selectionStart??o.length,c=l?.selectionEnd??o.length;w(e,t,o.slice(0,g)+fe+o.slice(c))},ae=Object.keys(z).map(Number).filter(e=>!I.includes(e));return n.jsxs("div",{className:d.body,children:[v?n.jsx(K,{intent:"info",children:n.jsx(U,{children:"This button isn't yours, so its text is read-only. Customise it in Properties to give it text of its own, then translate it."})}):n.jsxs(_,{children:[p(s)," is the organization's base language: its text is the button's own. Other languages are published with it."]}),f.length>0&&n.jsx(K,{intent:"info",children:n.jsxs(U,{children:[f.join(", ")," ",f.length===1?"is a label":"are labels"," of another solution, shared with the controls that use"," ",f.length===1?"it":"them",", so"," ",f.length===1?"it isn't":"they aren't"," edited here. Change the text in Properties to give this button a label of its own."]})}),I.map(e=>n.jsxs("section",{className:d.language,"aria-label":`${p(e)} (${e})`,children:[n.jsxs("div",{className:d.languageHeader,children:[n.jsxs(_,{weight:"semibold",className:d.languageName,children:[p(e)," ",n.jsxs(G,{className:d.muted,children:[e,e===s?" · base language":""]})]}),e!==s&&!v&&n.jsx(W,{content:`Remove ${p(e)}`,relationship:"label",children:n.jsx(O,{appearance:"subtle",size:"small",icon:n.jsx(ne,{}),onClick:()=>ee(e)})})]}),n.jsx("div",{className:d.fields,children:k.map(({field:t,name:a,multiline:l})=>{const o=`tr-${e}-${t}`,g=v||!L[t],c=`${a} (${p(e)})`,r=t==="label"&&e===s&&Y;return n.jsx(q,{label:a,validationState:r?"error":"none",validationMessage:r?"A button needs a label.":void 0,children:l?n.jsx(pe,{id:o,"aria-label":c,value:N(t,e),readOnly:g,resize:"vertical",onChange:(R,E)=>w(t,e,E.value)}):n.jsx(be,{id:o,"aria-label":c,value:r?"":N(t,e),readOnly:g,onChange:(R,E)=>w(t,e,E.value),contentAfter:g?void 0:n.jsx(W,{content:"Insert a line break",relationship:"label",children:n.jsx(O,{appearance:"transparent",size:"small",icon:n.jsx(se,{}),onClick:()=>te(t,e,o)})})})},t)})})]},e)),!v&&n.jsxs("div",{className:d.add,children:[n.jsx(q,{label:"Add a language",className:d.addField,children:n.jsx(he,{freeform:!0,placeholder:"Language or LCID",value:T,onChange:e=>P(e.target.value),onOptionSelect:(e,t)=>t.optionValue&&$(t.optionValue),onKeyDown:e=>e.key==="Enter"&&$(T),children:ae.map(e=>n.jsx(me,{value:String(e),text:`${p(e)} (${e})`,children:`${p(e)} (${e})`},e))})}),n.jsx(O,{icon:n.jsx(oe,{}),disabled:!T.trim(),onClick:()=>$(T),children:"Add"})]}),n.jsx(G,{className:d.muted,children:"The line break button puts Dataverse's line break (two zero-width spaces) where a long label should wrap."})]})};export{Se as TranslationsView,Se as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{L as s,m as de,bw as me,K as he,bI as B,a5 as j,V as w}from"./fluent-icons-CQEhzzaC.js";import{b as M,R as xe,an as _,Y as ge,ay as pe,az as fe,aA as X,aB as be,as as je,aw as we,ax as ve,G as Se,aC as A,F as ye}from"./index-6so8O90C.js";import{a as t}from"./monaco-BIO15LCS.js";import{u as Ce}from"./useReplaceWebResourceConfirm-DND-V0vw.js";import{a5 as Re,a8 as Ee,Y as We,b2 as Ne,L as P,N as Y,ag as Ie,b as $,ac as De,h as D,a6 as K,ae as Be,a4 as V,t as h}from"./fluent-ui-BEjALNLO.js";import"./dnd-C1w9VFfC.js";const Z=he({content:{display:"flex",flexDirection:"column",gap:h.spacingVerticalS,height:"min(560px, calc(100vh - 220px))",minHeight:"240px",overflowY:"hidden"},toolbar:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:h.spacingHorizontalS,flexShrink:0},search:{flex:1,minWidth:"200px"},box:{flex:1,minHeight:0,overflowX:"auto",overflowY:"hidden"},row:{cursor:"pointer"},muted:{color:h.colorNeutralForeground3},state:{padding:h.spacingVerticalL,textAlign:"center"},reference:{flexShrink:0,overflowWrap:"anywhere",fontFamily:h.fontFamilyMonospace}}),He={js:s.jsx(w,{}),ts:s.jsx(w,{}),css:s.jsx(w,{}),html:s.jsx(w,{}),svg:s.jsx(j,{}),png:s.jsx(j,{}),gif:s.jsx(j,{}),jpg:s.jsx(j,{}),xml:s.jsx(B,{}),resx:s.jsx(B,{})};function v(n){return n.split(".").pop()?.toLowerCase()??""}const ke=[{label:"All types",value:"all"},{label:".js",value:"js"},{label:".html",value:"html"},{label:".svg",value:"svg"},{label:".png",value:"png"},{label:".css",value:"css"},{label:".xml",value:"xml"},{label:".resx",value:"resx"}],Le=[K({columnId:"name",renderHeaderCell:()=>"Name",renderCell:n=>s.jsx(V,{truncate:!0,media:He[v(n.name)]??s.jsx(B,{}),description:n.description||void 0,children:n.name})}),K({columnId:"modified",renderHeaderCell:()=>"Modified",renderCell:n=>s.jsx(V,{truncate:!0,children:n.modifiedOn?new Date(n.modifiedOn).toLocaleDateString():"—"})})],Oe={name:{minWidth:240,idealWidth:720},modified:{minWidth:96,idealWidth:120}},q=52,Fe=34,J=t.createContext({choose:()=>{}});function Ge({item:n,style:o}){const x=Z(),{choose:c}=t.useContext(J);return s.jsx(X,{style:o,className:x.row,"data-web-resource":n.name,onDoubleClick:()=>c(n),onKeyDown:i=>{i.key==="Enter"&&(i.preventDefault(),c(n))},children:({renderCell:i})=>s.jsx(Be,{children:i(n)})})}const Te=({item:n},o)=>s.jsx(Ge,{item:n,style:o}),Ye=({onSelect:n})=>{const o=Z(),x=Ce(),c=M(e=>e.webResourceBrowserOpen),i=M(e=>e.closeWebResourceBrowser),Q=xe(e=>e.publisherPrefix),H=t.useRef(null),[S,k]=t.useState([]),[L,g]=t.useState(!1),[O,F]=t.useState(!1),[y,d]=t.useState(null),[C,R]=t.useState(null),[E,ee]=t.useState(""),[p,se]=t.useState("all"),[W,ae]=t.useState(!0),[f,G]=t.useState(null),N=t.useRef(null),[te,T]=t.useState(0),ne=f!==null;t.useLayoutEffect(()=>{T(N.current?.clientHeight??0)},[c,L,y,C,ne]),t.useEffect(()=>{const e=N.current;if(!e||typeof ResizeObserver>"u")return;const a=new ResizeObserver(([r])=>T(Math.floor(r.contentRect.height)));return a.observe(e),()=>a.disconnect()},[c]);const re=Re({tabBehavior:"unlimited",ignoreDefaultKeydown:{Enter:!0}}),I=t.useMemo(()=>{const e=E.toLowerCase();return S.filter(a=>{const r=v(a.name),l=e===""||a.name.toLowerCase().includes(e)||(a.description??"").toLowerCase().includes(e),u=p==="all"||r===p,b=!W||a.isCustom;return l&&u&&b})},[S,E,p,W]),m=I.find(e=>e.id===f)??null;t.useEffect(()=>{c&&(G(null),g(!0),d(null),R(null),_().then(e=>k(e)).catch(e=>d(e instanceof Error?e.message:String(e))).finally(()=>g(!1)))},[c]);const oe=async()=>{g(!0),d(null);try{k(await _())}catch(e){d(e instanceof Error?e.message:String(e))}finally{g(!1)}},le=e=>new Promise((a,r)=>{const l=new FileReader;l.onerror=()=>r(l.error??new Error("Unable to read file")),l.onload=()=>{const u=String(l.result??"");a(u.includes(",")?u.split(",")[1]??"":u)},l.readAsDataURL(e)}),ce=e=>{const a=v(e.name);return`${Q||"new"}_/${a==="js"||a==="css"||a==="html"||a==="xml"?"scripts":a==="svg"||a==="png"?"icons":"webresources"}/${e.name}`},ie=async e=>{const a=ye();F(!0),R(null);try{const r=await le(e),l=v(e.name),u={html:1,css:2,js:3,xml:4,png:5,jpg:6,gif:7,xsl:9,ico:10,svg:11,resx:12}[l]??4,b=await we(ce(e),r,u,{displayName:e.name,guard:a,onExisting:x.onExisting});await oe(),R([b.solutionWarning,b.publishWarning].filter(Boolean).join(" ")||null)}catch(r){if(r instanceof ve)return;const l=r instanceof Error?r.message:String(r);d(l),Se.getState().logError("webresource",`Upload of ${e.name} failed: ${l}`)}finally{F(!1)}},z=()=>{A.clear(),i()},U=e=>{A.invoke(e),n?.(e),i()},ue=Math.max(q,te-Fe);return s.jsxs(s.Fragment,{children:[x.dialog,s.jsxs(ge,{open:c,onOpenChange:e=>!e&&z(),title:"Choose a web resource",size:"large",contentClassName:o.content,startActions:s.jsxs(s.Fragment,{children:[s.jsx(D,{icon:s.jsx(me,{}),disabled:O,onClick:()=>H.current?.click(),children:O?"Uploading…":"Upload…"}),s.jsx(je,{prefix:"Uploads to"})]}),actions:s.jsxs(s.Fragment,{children:[s.jsx(D,{appearance:"secondary",onClick:z,children:"Cancel"}),s.jsx(D,{appearance:"primary",disabled:!m,onClick:()=>m&&U(m),children:"Select"})]}),children:[s.jsx("input",{ref:H,type:"file",accept:".js,.html,.svg,.png,.css,.xml,.resx,.jpg,.gif,.ico,.xsl",style:{display:"none"},onChange:e=>{const a=e.target.files?.[0];e.currentTarget.value="",a&&ie(a)}}),s.jsxs("div",{className:o.toolbar,children:[s.jsx(Ee,{"aria-label":"Search the web resources by name",placeholder:"Search by name…",value:E,onChange:(e,a)=>ee(a.value),className:o.search}),s.jsx(We,{"aria-label":"Type",value:p,onChange:(e,a)=>se(a.value),children:ke.map(e=>s.jsx("option",{value:e.value,children:e.label},e.value))}),s.jsx(Ne,{label:"Custom only",checked:W,onChange:(e,a)=>ae(a.checked===!0)})]}),y&&s.jsx(P,{intent:"error",children:s.jsx(Y,{children:y})}),C&&s.jsx(P,{intent:"warning",children:s.jsx(Y,{children:C})}),s.jsx("div",{ref:N,className:o.box,...re,children:L?s.jsx(Ie,{className:o.state,size:"small",label:"Loading web resources…"}):I.length===0?s.jsx($,{as:"p",className:de(o.state,o.muted),children:S.length===0?"No web resources in this environment.":"No web resources match."}):s.jsx(J.Provider,{value:{choose:U},children:s.jsxs(pe,{items:I,columns:Le,columnSizingOptions:Oe,resizableColumns:!0,getRowId:e=>e.id,focusMode:"composite",selectionMode:"single",subtleSelection:!0,"aria-label":"Web resources",selectedItems:f?new Set([f]):new Set,onSelectionChange:(e,a)=>{const r=[...a.selectedItems][0];G(r??null)},children:[s.jsx(fe,{children:s.jsx(X,{children:({renderHeaderCell:e})=>s.jsx(De,{children:e()})})}),s.jsx(be,{itemSize:q,height:ue,listProps:{width:"100%"},children:Te})]})})}),m&&s.jsxs($,{size:200,className:o.reference,children:[s.jsx("span",{className:o.muted,children:"Reference: "}),"$webresource:",m.name]})]})]})};export{Ye as WebResourceBrowser,Ye as default};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{L as n,aa as P,by as O,dp as B,bw as V,K as U}from"./fluent-icons-CQEhzzaC.js";import{a as s}from"./monaco-BIO15LCS.js";import{a as b,b as E,an as _,g as H,am as K,Z as G,aM as W}from"./index-6so8O90C.js";import{M as z}from"./MonacoEditor-BMKRZv-g.js";import{af as Q,ah as Y,ai as Z,n as q,p as y,L as J,N as ee,t as R}from"./fluent-ui-BEjALNLO.js";import"./dnd-C1w9VFfC.js";const te=["Add","AddCircle","Alert","AppFolder","Archive","ArrowClockwise","ArrowCounterclockwise","ArrowDown","ArrowExport","ArrowImport","ArrowLeft","ArrowRight","ArrowSync","ArrowUp","Attach","Beaker","Bookmark","Bug","Building","Calculator","CalendarLtr","CalendarMonth","Call","Camera","Cart","Chart","Checkmark","CheckmarkCircle","Circle","ClipboardTask","Clock","Cloud","Code","CodeBlock","Comment","ContactCard","Copy","CreditCard","Crown","Cube","CursorClick","DataBarVertical","Delete","Diamond","Document","DocumentCopy","DocumentEdit","DocumentText","Download","Edit","Emoji","ErrorCircle","Eye","EyeOff","Filter","Flag","Flow","FolderOpen","Globe","Grid","Group","Heart","Home","Image","Info","Key","Library","Link","List","Location","Lock","Mail","Map","MegaphoneLoud","Money","MoreCircle","MoreHorizontal","Note","NoteEdit","NumberCircle1","Open","Organization","Pause","People","PeopleCommunity","Person","PersonAdd","PersonSearch","Phone","Play","Plug","Print","Question","Refresh","Rename","Save","Search","Send","Settings","Share","Shield","ShoppingBag","Sparkle","Star","StarEmphasis","Stop","Table","Tag","TaskList","TextBulletList","TextDescription","ThumbLike","Timer","ToggleLeft","ToggleRight","Tool","Translate","Umbrella","Unlock","Upload","Video","Warning","Wrench"];function A(a,C){const h=[];return h.push(a.languages.registerCompletionItemProvider("xml",{triggerCharacters:[":","$"],provideCompletionItems(m,e){const r=m.getValueInRange({startLineNumber:e.lineNumber,startColumn:1,endLineNumber:e.lineNumber,endColumn:e.column});if(!r.includes("$LocLabels:"))return{suggestions:[]};const d=r.lastIndexOf("$LocLabels:")+11,i=r.slice(d),u={startLineNumber:e.lineNumber,startColumn:e.column-i.length,endLineNumber:e.lineNumber,endColumn:e.column};return{suggestions:b.getState().locLabels.map(c=>({label:c.id,kind:a.languages.CompletionItemKind.Reference,insertText:c.id,range:u,detail:"LocLabel reference"}))}}})),h.push(a.languages.registerCompletionItemProvider("xml",{triggerCharacters:[":","$"],provideCompletionItems(m,e){const r=m.getValueInRange({startLineNumber:e.lineNumber,startColumn:1,endLineNumber:e.lineNumber,endColumn:e.column});if(!r.includes("$webresource:"))return{suggestions:[]};const d=r.lastIndexOf("$webresource:")+13,i=r.slice(d),u={startLineNumber:e.lineNumber,startColumn:e.column-i.length,endLineNumber:e.lineNumber,endColumn:e.column};return{suggestions:C().map(c=>({label:c,kind:a.languages.CompletionItemKind.File,insertText:c,range:u,detail:"Web resource"}))}}})),h.push(a.languages.registerCompletionItemProvider("xml",{triggerCharacters:['"'],provideCompletionItems(m,e){const r=m.getValueInRange({startLineNumber:e.lineNumber,startColumn:1,endLineNumber:e.lineNumber,endColumn:e.column});if(!/Command\s*=\s*"[^"]*$/.test(r))return{suggestions:[]};const i=r.match(/Command\s*=\s*"([^"]*)$/)?.[1]??"",u={startLineNumber:e.lineNumber,startColumn:e.column-i.length,endLineNumber:e.lineNumber,endColumn:e.column};return{suggestions:b.getState().commands.map(c=>({label:c.id,kind:a.languages.CompletionItemKind.Function,insertText:c.id,range:u,detail:"CommandDefinition"}))}}})),h.push(a.languages.registerCompletionItemProvider("xml",{triggerCharacters:['"'],provideCompletionItems(m,e){const r=m.getValueInRange({startLineNumber:e.lineNumber,startColumn:1,endLineNumber:e.lineNumber,endColumn:e.column});if(!/ModernImage\s*=\s*"[^"]*$/.test(r))return{suggestions:[]};const i=r.match(/ModernImage\s*=\s*"([^"]*)$/)?.[1]??"",u={startLineNumber:e.lineNumber,startColumn:e.column-i.length,endLineNumber:e.lineNumber,endColumn:e.column};return{suggestions:te.map(l=>({label:l,kind:a.languages.CompletionItemKind.Color,insertText:l,range:u,detail:"Fluent icon (ModernImage)",documentation:`Renders the ${l}_20_Regular Fluent icon`}))}}})),h}function w(a){a.forEach(C=>C.dispose())}const ne=U({root:{flex:1,display:"flex",flexDirection:"column",gap:R.spacingVerticalS,minHeight:"320px"},muted:{color:R.colorNeutralForeground3},editor:{flex:1,minHeight:"240px",border:`1px solid ${R.colorNeutralStroke2}`,borderRadius:R.borderRadiusMedium,overflow:"hidden"}}),re=["HomepageGrid","SubGrid","Form","Application"],me=({location:a})=>{const C=ne(),h=E(t=>t.closeEditor),m=E(t=>t.openImportXml),e=b(t=>t.ribbons),r=b(t=>t.baseline),d=b(t=>t.commands),i=b(t=>t.displayRules),u=b(t=>t.enableRules),p=b(t=>t.locLabels),[l,c]=s.useState(a),[S,g]=s.useState(null),[$,T]=s.useState(!1),f=s.useRef(0);s.useEffect(()=>{f.current++,g(null)},[l]);const[k,v]=s.useState([]),M=s.useRef(null),I=s.useRef(null),x=s.useRef([]);s.useEffect(()=>{_().then(t=>v(t.map(o=>o.name))).catch(()=>v([]))},[]),s.useEffect(()=>()=>{w(x.current),x.current=[]},[]);const D=s.useCallback((t,o)=>{M.current=t,I.current=o,w(x.current),x.current=A(o,()=>k)},[k]);s.useEffect(()=>{I.current&&(w(x.current),x.current=A(I.current,()=>k))},[k]);const j=()=>{M.current?.getAction("editor.action.formatDocument")?.run()},N=s.useCallback(t=>{try{return`<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
${H({location:t,current:e[t],baseline:r[t],commands:d,displayRules:i,enableRules:u,locLabels:p,entityLogicalName:e[t].entityLogicalName})}`}catch(o){return`<!-- Error generating XML: ${String(o)} -->`}},[e,r,d,i,u,p])(l);s.useEffect(()=>{f.current++,g(null)},[N]);const F=async()=>{const t=f.current,o=await G(N);t===f.current&&g(o.ok?{intent:"success",text:"Copied the XML to the clipboard."}:{intent:"error",text:`Couldn't copy (${o.error}). Click in the XML, press Ctrl+A, then Ctrl+C.`})},X=async()=>{const t=f.current,o=`RibbonDiffXml_${l}.xml`;T(!0),g(null);try{const L=await W(o,N,[{name:"XML",extensions:["xml"]}]);if(t!==f.current)return;L.ok&&L.path?g({intent:"success",text:`Saved to ${L.path}.`}):L.ok?g({intent:"success",text:`Started downloading ${o}. If no file appears, use Copy.`}):L.canceled?g(null):g({intent:"error",text:`Couldn't save the file (${L.error}). Use Copy instead.`})}finally{T(!1)}};return n.jsxs("div",{className:C.root,children:[n.jsx(Q,{className:C.muted,children:"Your changes to this location, as RibbonDiffXml. Publish merges them into your solution's layer; its View XML shows the merged result."}),n.jsx(Y,{size:"small",selectedValue:l,onTabSelect:(t,o)=>c(o.value),children:re.map(t=>n.jsx(Z,{value:t,children:K[t].label},t))}),n.jsxs(q,{size:"small","aria-label":"XML actions",children:[n.jsx(y,{icon:n.jsx(P,{}),onClick:()=>{F()},children:"Copy"}),n.jsx(y,{icon:n.jsx(O,{}),disabled:$,onClick:()=>{X()},children:"Download"}),n.jsx(y,{icon:n.jsx(B,{}),onClick:j,children:"Format"}),n.jsx(y,{icon:n.jsx(V,{}),onClick:()=>{h(),m(N)},children:"Import this XML"})]}),S&&n.jsx(J,{intent:S.intent,role:"status",children:n.jsx(ee,{children:S.text})}),n.jsx("div",{className:C.editor,children:n.jsx(z,{language:"xml",value:N,readOnly:!0,height:"100%",onMount:D})})]})};export{me as XmlView,me as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e={comments:{lineComment:"*"},brackets:[["[","]"],["(",")"]]},t={defaultToken:"invalid",ignoreCase:!0,tokenPostfix:".abap",keywords:["abap-source","abbreviated","abstract","accept","accepting","according","activation","actual","add","add-corresponding","adjacent","after","alias","aliases","align","all","allocate","alpha","analysis","analyzer","and","append","appendage","appending","application","archive","area","arithmetic","as","ascending","aspect","assert","assign","assigned","assigning","association","asynchronous","at","attributes","authority","authority-check","avg","back","background","backup","backward","badi","base","before","begin","between","big","binary","bintohex","bit","black","blank","blanks","blob","block","blocks","blue","bound","boundaries","bounds","boxed","break-point","buffer","by","bypassing","byte","byte-order","call","calling","case","cast","casting","catch","center","centered","chain","chain-input","chain-request","change","changing","channels","character","char-to-hex","check","checkbox","ci_","circular","class","class-coding","class-data","class-events","class-methods","class-pool","cleanup","clear","client","clob","clock","close","coalesce","code","coding","col_background","col_group","col_heading","col_key","col_negative","col_normal","col_positive","col_total","collect","color","column","columns","comment","comments","commit","common","communication","comparing","component","components","compression","compute","concat","concat_with_space","concatenate","cond","condense","condition","connect","connection","constants","context","contexts","continue","control","controls","conv","conversion","convert","copies","copy","corresponding","country","cover","cpi","create","creating","critical","currency","currency_conversion","current","cursor","cursor-selection","customer","customer-function","dangerous","data","database","datainfo","dataset","date","dats_add_days","dats_add_months","dats_days_between","dats_is_valid","daylight","dd/mm/yy","dd/mm/yyyy","ddmmyy","deallocate","decimal_shift","decimals","declarations","deep","default","deferred","define","defining","definition","delete","deleting","demand","department","descending","describe","destination","detail","dialog","directory","disconnect","display","display-mode","distinct","divide","divide-corresponding","division","do","dummy","duplicate","duplicates","duration","during","dynamic","dynpro","edit","editor-call","else","elseif","empty","enabled","enabling","encoding","end","endat","endcase","endcatch","endchain","endclass","enddo","endenhancement","end-enhancement-section","endexec","endform","endfunction","endian","endif","ending","endinterface","end-lines","endloop","endmethod","endmodule","end-of-definition","end-of-editing","end-of-file","end-of-page","end-of-selection","endon","endprovide","endselect","end-test-injection","end-test-seam","endtry","endwhile","endwith","engineering","enhancement","enhancement-point","enhancements","enhancement-section","entries","entry","enum","environment","equiv","errormessage","errors","escaping","event","events","exact","except","exception","exceptions","exception-table","exclude","excluding","exec","execute","exists","exit","exit-command","expand","expanding","expiration","explicit","exponent","export","exporting","extend","extended","extension","extract","fail","fetch","field","field-groups","fields","field-symbol","field-symbols","file","filter","filters","filter-table","final","find","first","first-line","fixed-point","fkeq","fkge","flush","font","for","form","format","forward","found","frame","frames","free","friends","from","function","functionality","function-pool","further","gaps","generate","get","giving","gkeq","gkge","global","grant","green","group","groups","handle","handler","harmless","hashed","having","hdb","header","headers","heading","head-lines","help-id","help-request","hextobin","hide","high","hint","hold","hotspot","icon","id","identification","identifier","ids","if","ignore","ignoring","immediately","implementation","implementations","implemented","implicit","import","importing","in","inactive","incl","include","includes","including","increment","index","index-line","infotypes","inheriting","init","initial","initialization","inner","inout","input","insert","instance","instances","instr","intensified","interface","interface-pool","interfaces","internal","intervals","into","inverse","inverted-date","is","iso","job","join","keep","keeping","kernel","key","keys","keywords","kind","language","last","late","layout","leading","leave","left","left-justified","leftplus","leftspace","legacy","length","let","level","levels","like","line","lines","line-count","linefeed","line-selection","line-size","list","listbox","list-processing","little","llang","load","load-of-program","lob","local","locale","locator","logfile","logical","log-point","long","loop","low","lower","lpad","lpi","ltrim","mail","main","major-id","mapping","margin","mark","mask","match","matchcode","max","maximum","medium","members","memory","mesh","message","message-id","messages","messaging","method","methods","min","minimum","minor-id","mm/dd/yy","mm/dd/yyyy","mmddyy","mode","modif","modifier","modify","module","move","move-corresponding","multiply","multiply-corresponding","name","nametab","native","nested","nesting","new","new-line","new-page","new-section","next","no","no-display","no-extension","no-gap","no-gaps","no-grouping","no-heading","no-scrolling","no-sign","no-title","no-topofpage","no-zero","node","nodes","non-unicode","non-unique","not","null","number","object","objects","obligatory","occurrence","occurrences","occurs","of","off","offset","ole","on","only","open","option","optional","options","or","order","other","others","out","outer","output","output-length","overflow","overlay","pack","package","pad","padding","page","pages","parameter","parameters","parameter-table","part","partially","pattern","percentage","perform","performing","person","pf1","pf10","pf11","pf12","pf13","pf14","pf15","pf2","pf3","pf4","pf5","pf6","pf7","pf8","pf9","pf-status","pink","places","pool","pos_high","pos_low","position","pragmas","precompiled","preferred","preserving","primary","print","print-control","priority","private","procedure","process","program","property","protected","provide","public","push","pushbutton","put","queue-only","quickinfo","radiobutton","raise","raising","range","ranges","read","reader","read-only","receive","received","receiver","receiving","red","redefinition","reduce","reduced","ref","reference","refresh","regex","reject","remote","renaming","replace","replacement","replacing","report","request","requested","reserve","reset","resolution","respecting","responsible","result","results","resumable","resume","retry","return","returncode","returning","returns","right","right-justified","rightplus","rightspace","risk","rmc_communication_failure","rmc_invalid_status","rmc_system_failure","role","rollback","rows","rpad","rtrim","run","sap","sap-spool","saving","scale_preserving","scale_preserving_scientific","scan","scientific","scientific_with_leading_zero","scroll","scroll-boundary","scrolling","search","secondary","seconds","section","select","selection","selections","selection-screen","selection-set","selection-sets","selection-table","select-options","send","separate","separated","set","shared","shift","short","shortdump-id","sign_as_postfix","single","size","skip","skipping","smart","some","sort","sortable","sorted","source","specified","split","spool","spots","sql","sqlscript","stable","stamp","standard","starting","start-of-editing","start-of-selection","state","statement","statements","static","statics","statusinfo","step-loop","stop","structure","structures","style","subkey","submatches","submit","subroutine","subscreen","subtract","subtract-corresponding","suffix","sum","summary","summing","supplied","supply","suppress","switch","switchstates","symbol","syncpoints","syntax","syntax-check","syntax-trace","system-call","system-exceptions","system-exit","tab","tabbed","table","tables","tableview","tabstrip","target","task","tasks","test","testing","test-injection","test-seam","text","textpool","then","throw","time","times","timestamp","timezone","tims_is_valid","title","titlebar","title-lines","to","tokenization","tokens","top-lines","top-of-page","trace-file","trace-table","trailing","transaction","transfer","transformation","translate","transporting","trmac","truncate","truncation","try","tstmp_add_seconds","tstmp_current_utctimestamp","tstmp_is_valid","tstmp_seconds_between","type","type-pool","type-pools","types","uline","unassign","under","unicode","union","unique","unit_conversion","unix","unpack","until","unwind","up","update","upper","user","user-command","using","utf-8","valid","value","value-request","values","vary","varying","verification-message","version","via","view","visible","wait","warning","when","whenever","where","while","width","window","windows","with","with-heading","without","with-title","word","work","write","writer","xml","xsd","yellow","yes","yymmdd","zero","zone","abap_system_timezone","abap_user_timezone","access","action","adabas","adjust_numbers","allow_precision_loss","allowed","amdp","applicationuser","as_geo_json","as400","associations","balance","behavior","breakup","bulk","cds","cds_client","check_before_save","child","clients","corr","corr_spearman","cross","cycles","datn_add_days","datn_add_months","datn_days_between","dats_from_datn","dats_tims_to_tstmp","dats_to_datn","db2","db6","ddl","dense_rank","depth","deterministic","discarding","entities","entity","error","failed","finalize","first_value","fltp_to_dec","following","fractional","full","graph","grouping","hierarchy","hierarchy_ancestors","hierarchy_ancestors_aggregate","hierarchy_descendants","hierarchy_descendants_aggregate","hierarchy_siblings","incremental","indicators","lag","last_value","lead","leaves","like_regexpr","link","locale_sap","lock","locks","many","mapped","matched","measures","median","mssqlnt","multiple","nodetype","ntile","nulls","occurrences_regexpr","one","operations","oracle","orphans","over","parent","parents","partition","pcre","period","pfcg_mapping","preceding","privileged","product","projection","rank","redirected","replace_regexpr","reported","response","responses","root","row","row_number","sap_system_date","save","schema","session","sets","shortdump","siblings","spantree","start","stddev","string_agg","subtotal","sybase","tims_from_timn","tims_to_timn","to_blob","to_clob","total","trace-entry","tstmp_to_dats","tstmp_to_dst","tstmp_to_tims","tstmpl_from_utcl","tstmpl_to_utcl","unbounded","utcl_add_seconds","utcl_current","utcl_seconds_between","uuid","var","verbatim"],builtinFunctions:["abs","acos","asin","atan","bit-set","boolc","boolx","ceil","char_off","charlen","cmax","cmin","concat_lines_of","contains","contains_any_not_of","contains_any_of","cos","cosh","count","count_any_not_of","count_any_of","dbmaxlen","distance","escape","exp","find_any_not_of","find_any_of","find_end","floor","frac","from_mixed","ipow","line_exists","line_index","log","log10","matches","nmax","nmin","numofchar","repeat","rescale","reverse","round","segment","shift_left","shift_right","sign","sin","sinh","sqrt","strlen","substring","substring_after","substring_before","substring_from","substring_to","tan","tanh","to_lower","to_mixed","to_upper","trunc","utclong_add","utclong_current","utclong_diff","xsdbool","xstrlen"],typeKeywords:["b","c","d","decfloat16","decfloat34","f","i","int8","n","p","s","string","t","utclong","x","xstring","any","clike","csequence","decfloat","numeric","simple","xsequence","accp","char","clnt","cuky","curr","datn","dats","d16d","d16n","d16r","d34d","d34n","d34r","dec","df16_dec","df16_raw","df34_dec","df34_raw","fltp","geom_ewkb","int1","int2","int4","lang","lchr","lraw","numc","quan","raw","rawstring","sstring","timn","tims","unit","utcl","df16_scl","df34_scl","prec","varc","abap_bool","abap_false","abap_true","abap_undefined","me","screen","space","super","sy","syst","table_line","*sys*"],builtinMethods:["class_constructor","constructor"],derivedTypes:["%CID","%CID_REF","%CONTROL","%DATA","%ELEMENT","%FAIL","%KEY","%MSG","%PARAM","%PID","%PID_ASSOC","%PID_PARENT","%_HINTS"],cdsLanguage:["@AbapAnnotation","@AbapCatalog","@AccessControl","@API","@ClientDependent","@ClientHandling","@CompatibilityContract","@DataAging","@EndUserText","@Environment","@LanguageDependency","@MappingRole","@Metadata","@MetadataExtension","@ObjectModel","@Scope","@Semantics","$EXTENSION","$SELF"],selectors:["->","->*","=>","~","~*"],operators:[" +"," -","/","*","**","div","mod","=","#","@","+=","-=","*=","/=","**=","&&=","?=","&","&&","bit-and","bit-not","bit-or","bit-xor","m","o","z","<"," >","<=",">=","<>","><","=<","=>","bt","byte-ca","byte-cn","byte-co","byte-cs","byte-na","byte-ns","ca","cn","co","cp","cs","eq","ge","gt","le","lt","na","nb","ne","np","ns","*/","*:","--","/*","//"],symbols:/[=><!~?&+\-*\/\^%#@]+/,tokenizer:{root:[[/[a-z_\/$%@]([\w\/$%]|-(?!>))*/,{cases:{"@typeKeywords":"type","@keywords":"keyword","@cdsLanguage":"annotation","@derivedTypes":"type","@builtinFunctions":"type","@builtinMethods":"type","@operators":"key","@default":"identifier"}}],[/<[\w]+>/,"identifier"],[/##[\w|_]+/,"comment"],{include:"@whitespace"},[/[:,.]/,"delimiter"],[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@selectors":"tag","@operators":"key","@default":""}}],[/'/,{token:"string",bracket:"@open",next:"@stringquote"}],[/`/,{token:"string",bracket:"@open",next:"@stringping"}],[/\|/,{token:"string",bracket:"@open",next:"@stringtemplate"}],[/\d+/,"number"]],stringtemplate:[[/[^\\\|]+/,"string"],[/\\\|/,"string"],[/\|/,{token:"string",bracket:"@close",next:"@pop"}]],stringping:[[/[^\\`]+/,"string"],[/`/,{token:"string",bracket:"@close",next:"@pop"}]],stringquote:[[/[^\\']+/,"string"],[/'/,{token:"string",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/^\*.*$/,"comment"],[/\".*$/,"comment"]]}};export{e as conf,t as language};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:<editor-fold\\b))"),end:new RegExp("^\\s*//\\s*(?:(?:#?endregion\\b)|(?:</editor-fold>))")}}},s=["abstract","activate","and","any","array","as","asc","assert","autonomous","begin","bigdecimal","blob","boolean","break","bulk","by","case","cast","catch","char","class","collect","commit","const","continue","convertcurrency","decimal","default","delete","desc","do","double","else","end","enum","exception","exit","export","extends","false","final","finally","float","for","from","future","get","global","goto","group","having","hint","if","implements","import","in","inner","insert","instanceof","int","interface","into","join","last_90_days","last_month","last_n_days","last_week","like","limit","list","long","loop","map","merge","native","new","next_90_days","next_month","next_n_days","next_week","not","null","nulls","number","object","of","on","or","outer","override","package","parallel","pragma","private","protected","public","retrieve","return","returning","rollback","savepoint","search","select","set","short","sort","stat","static","strictfp","super","switch","synchronized","system","testmethod","then","this","this_month","this_week","throw","throws","today","tolabel","tomorrow","transaction","transient","trigger","true","try","type","undelete","update","upsert","using","virtual","void","volatile","webservice","when","where","while","yesterday"],o=e=>e.charAt(0).toUpperCase()+e.substr(1);let t=[];s.forEach(e=>{t.push(e),t.push(e.toUpperCase()),t.push(o(e))});const i={defaultToken:"",tokenPostfix:".apex",keywords:t,operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+(_+\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,tokenizer:{root:[[/[a-z_$][\w$]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],[/[A-Z][\w\$]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"type.identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,"annotation"],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@apexdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],apexdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]]}};export{n as conf,i as language};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e={comments:{lineComment:"#"}},t={defaultToken:"keyword",ignoreCase:!0,tokenPostfix:".azcli",str:/[^#\s]/,tokenizer:{root:[{include:"@comment"},[/\s-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":{token:"key.identifier",next:"@type"}}}],[/^-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":{token:"key.identifier",next:"@type"}}}]],type:[{include:"@comment"},[/-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":"key.identifier"}}],[/@str+\s*/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}]],comment:[[/#.*$/,{cases:{"@eos":{token:"comment",next:"@popall"}}}]]}};export{e as conf,t as language};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e={comments:{lineComment:"REM"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],folding:{markers:{start:new RegExp("^\\s*(::\\s*|REM\\s+)#region"),end:new RegExp("^\\s*(::\\s*|REM\\s+)#endregion")}}},s={defaultToken:"",ignoreCase:!0,tokenPostfix:".bat",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:/call|defined|echo|errorlevel|exist|for|goto|if|pause|set|shift|start|title|not|pushd|popd/,symbols:/[=><!~?&|+\-*\/\^;\.,]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^(\s*)(rem(?:\s.*|))$/,["","comment"]],[/(\@?)(@keywords)(?!\w)/,[{token:"keyword"},{token:"keyword.$2"}]],[/[ \t\r\n]+/,""],[/setlocal(?!\w)/,"keyword.tag-setlocal"],[/endlocal(?!\w)/,"keyword.tag-setlocal"],[/[a-zA-Z_]\w*/,""],[/:\w*/,"metatag"],[/%[^%]+%/,"variable"],[/%%[\w]+(?!\w)/,"variable"],[/[{}()\[\]]/,"@brackets"],[/@symbols/,"delimiter"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],string:[[/[^\\"'%]+/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/%[\w ]+%/,"variable"],[/%%[\w]+(?!\w)/,"variable"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}],[/$/,"string","@popall"]]}};export{e as conf,s as language};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const n=e=>`\\b${e}\\b`,t="[_a-zA-Z]",o="[_a-zA-Z0-9]",i=n(`${t}${o}*`),r=["targetScope","resource","module","param","var","output","for","in","if","existing"],s=["true","false","null"],c="[ \\t\\r\\n]",a="[0-9]+",g={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'"},{open:"'''",close:"'''"}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:"'''",close:"'''",notIn:["string","comment"]}],autoCloseBefore:`:.,=}])'
|
|
2
|
-
`,indentationRules:{increaseIndentPattern:new RegExp("^((?!\\/\\/).)*(\\{[^}\"'`]*|\\([^)\"'`]*|\\[[^\\]\"'`]*)$"),decreaseIndentPattern:new RegExp("^((?!.*?\\/\\*).*\\*/)?\\s*[\\}\\]].*$")}},l={defaultToken:"",tokenPostfix:".bicep",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],symbols:/[=><!~?:&|+\-*/^%]+/,keywords:r,namedLiterals:s,escapes:"\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\|'|\\${)",tokenizer:{root:[{include:"@expression"},{include:"@whitespace"}],stringVerbatim:[{regex:"(|'|'')[^']",action:{token:"string"}},{regex:"'''",action:{token:"string.quote",next:"@pop"}}],stringLiteral:[{regex:"\\${",action:{token:"delimiter.bracket",next:"@bracketCounting"}},{regex:"[^\\\\'$]+",action:{token:"string"}},{regex:"@escapes",action:{token:"string.escape"}},{regex:"\\\\.",action:{token:"string.escape.invalid"}},{regex:"'",action:{token:"string",next:"@pop"}}],bracketCounting:[{regex:"{",action:{token:"delimiter.bracket",next:"@bracketCounting"}},{regex:"}",action:{token:"delimiter.bracket",next:"@pop"}},{include:"expression"}],comment:[{regex:"[^\\*]+",action:{token:"comment"}},{regex:"\\*\\/",action:{token:"comment",next:"@pop"}},{regex:"[\\/*]",action:{token:"comment"}}],whitespace:[{regex:c},{regex:"\\/\\*",action:{token:"comment",next:"@comment"}},{regex:"\\/\\/.*$",action:{token:"comment"}}],expression:[{regex:"'''",action:{token:"string.quote",next:"@stringVerbatim"}},{regex:"'",action:{token:"string.quote",next:"@stringLiteral"}},{regex:a,action:{token:"number"}},{regex:i,action:{cases:{"@keywords":{token:"keyword"},"@namedLiterals":{token:"keyword"},"@default":{token:"identifier"}}}}]}};export{g as conf,l as language};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'},{open:"(*",close:"*)"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'},{open:"(*",close:"*)"}]},o={defaultToken:"",tokenPostfix:".cameligo",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["abs","assert","block","Bytes","case","Crypto","Current","else","failwith","false","for","fun","if","in","let","let%entry","let%init","List","list","Map","map","match","match%nat","mod","not","operation","Operation","of","record","Set","set","sender","skip","source","String","then","to","true","type","with"],typeKeywords:["int","unit","string","tz","nat","bool"],operators:["=",">","<","<=",">=","<>",":",":=","and","mod","or","+","-","*","/","@","&","^","%","->","<-","&&","||"],symbols:/[=><:@\^&|+\-*\/\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\$[0-9a-fA-F]{1,16}/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'/,"string","@string"],[/'[^\\']'/,"string"],[/'/,"string.invalid"],[/\#\d+/,"string"]],comment:[[/[^\(\*]+/,"comment"],[/\*\)/,"comment","@pop"],[/\(\*/,"comment"]],string:[[/[^\\']+/,"string"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\(\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}};export{e as conf,o as language};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e={comments:{lineComment:";;"},brackets:[["[","]"],["(",")"],["{","}"]],autoClosingPairs:[{open:"[",close:"]"},{open:'"',close:'"'},{open:"(",close:")"},{open:"{",close:"}"}],surroundingPairs:[{open:"[",close:"]"},{open:'"',close:'"'},{open:"(",close:")"},{open:"{",close:"}"}]},t={defaultToken:"",ignoreCase:!0,tokenPostfix:".clj",brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"}],constants:["true","false","nil"],numbers:/^(?:[+\-]?\d+(?:(?:N|(?:[eE][+\-]?\d+))|(?:\.?\d*(?:M|(?:[eE][+\-]?\d+))?)|\/\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\[\]\s"#'(),;@^`{}~]|$))/,characters:/^(?:\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\[\]\s"(),;@^`{}~]|$))/,escapes:/^\\(?:["'\\bfnrt]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,qualifiedSymbols:/^(?:(?:[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*(?:\.[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*\/)?(?:\/|[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*(?=[\\\[\]\s"(),;@^`{}~]|$))/,specialForms:[".","catch","def","do","if","monitor-enter","monitor-exit","new","quote","recur","set!","throw","try","var"],coreSymbols:["*","*'","*1","*2","*3","*agent*","*allow-unresolved-vars*","*assert*","*clojure-version*","*command-line-args*","*compile-files*","*compile-path*","*compiler-options*","*data-readers*","*default-data-reader-fn*","*e","*err*","*file*","*flush-on-newline*","*fn-loader*","*in*","*math-context*","*ns*","*out*","*print-dup*","*print-length*","*print-level*","*print-meta*","*print-namespace-maps*","*print-readably*","*read-eval*","*reader-resolver*","*source-path*","*suppress-read*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","+","+'","-","-'","->","->>","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods","..","/","<","<=","=","==",">",">=","EMPTY-NODE","Inst","StackTraceElement->vec","Throwable->map","accessor","aclone","add-classpath","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","amap","ancestors","and","any?","apply","areduce","array-map","as->","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assert","assoc","assoc!","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","binding","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","boolean?","booleans","bound-fn","bound-fn*","bound?","bounded-count","butlast","byte","byte-array","bytes","bytes?","case","cast","cat","char","char-array","char-escape-string","char-name-string","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","coll?","comment","commute","comp","comparator","compare","compare-and-set!","compile","complement","completing","concat","cond","cond->","cond->>","condp","conj","conj!","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","declare","dedupe","default-data-readers","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype","delay","delay?","deliver","denominator","deref","derive","descendants","destructure","disj","disj!","dissoc","dissoc!","distinct","distinct?","doall","dorun","doseq","dosync","dotimes","doto","double","double-array","double?","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-data","ex-info","extend","extend-protocol","extend-type","extenders","extends?","false?","ffirst","file-seq","filter","filterv","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn","fn?","fnext","fnil","for","force","format","frequencies","future","future-call","future-cancel","future-cancelled?","future-done?","future?","gen-class","gen-interface","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","halt-when","hash","hash-combine","hash-map","hash-ordered-coll","hash-set","hash-unordered-coll","ident?","identical?","identity","if-let","if-not","if-some","ifn?","import","in-ns","inc","inc'","indexed?","init-proxy","inst-ms","inst-ms*","inst?","instance?","int","int-array","int?","integer?","interleave","intern","interpose","into","into-array","ints","io!","isa?","iterate","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","lazy-cat","lazy-seq","let","letfn","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","locking","long","long-array","longs","loop","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memfn","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","mod","munge","name","namespace","namespace-munge","nat-int?","neg-int?","neg?","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","or","parents","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop","pop!","pop-thread-bindings","pos-int?","pos?","pr","pr-str","prefer-method","prefers","primitives-classnames","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy","proxy-call-with-super","proxy-mappings","proxy-name","proxy-super","push-thread-bindings","pvalues","qualified-ident?","qualified-keyword?","qualified-symbol?","quot","rand","rand-int","rand-nth","random-sample","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","refer-clojure","reify","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-watch","repeat","repeatedly","replace","replicate","require","reset!","reset-meta!","reset-vals!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","run!","satisfies?","second","select-keys","send","send-off","send-via","seq","seq?","seqable?","seque","sequence","sequential?","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","simple-ident?","simple-keyword?","simple-symbol?","slurp","some","some->","some->>","some-fn","some?","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","swap-vals!","symbol","symbol?","sync","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","test","the-ns","thread-bound?","time","to-array","to-array-2d","trampoline","transduce","transient","tree-seq","true?","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unquote","unquote-splicing","unreduced","unsigned-bit-shift-right","update","update-in","update-proxy","uri?","use","uuid?","val","vals","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","vswap!","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn","xml-seq","zero?","zipmap"],tokenizer:{root:[{include:"@whitespace"},[/@numbers/,"number"],[/@characters/,"string"],{include:"@string"},[/[()\[\]{}]/,"@brackets"],[/\/#"(?:\.|(?:")|[^"\n])*"\/g/,"regexp"],[/[#'@^`~]/,"meta"],[/@qualifiedSymbols/,{cases:{"^:.+$":"constant","@specialForms":"keyword","@coreSymbols":"keyword","@constants":"constant","@default":"identifier"}}]],whitespace:[[/[\s,]+/,"white"],[/;.*$/,"comment"],[/\(comment\b/,"comment","@comment"]],comment:[[/\(/,"comment","@push"],[/\)/,"comment","@pop"],[/[^()]/,"comment"]],string:[[/"/,"string","@multiLineString"]],multiLineString:[[/"/,"string","@popall"],[/@escapes/,"string.escape"],[/./,"string"]]}};export{e as conf,t as language};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\$\-\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{blockComment:["###","###"],lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},t={defaultToken:"",ignoreCase:!0,tokenPostfix:".coffee",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],regEx:/\/(?!\/\/)(?:[^\/\\]|\\.)*\/[igm]*/,keywords:["and","or","is","isnt","not","on","yes","@","no","off","true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","if","else","switch","for","while","do","try","catch","finally","class","extends","super","undefined","then","unless","until","loop","of","by","when"],symbols:/[=><!~?&%|+\-*\/\^\.,\:]+/,escapes:/\\(?:[abfnrtv\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/\@[a-zA-Z_]\w*/,"variable.predefined"],[/[a-zA-Z_]\w*/,{cases:{this:"variable.predefined","@keywords":{token:"keyword.$0"},"@default":""}}],[/[ \t\r\n]+/,""],[/###/,"comment","@comment"],[/#.*$/,"comment"],["///",{token:"regexp",next:"@hereregexp"}],[/^(\s*)(@regEx)/,["","regexp"]],[/(\()(\s*)(@regEx)/,["@brackets","","regexp"]],[/(\,)(\s*)(@regEx)/,["delimiter","","regexp"]],[/(\=)(\s*)(@regEx)/,["delimiter","","regexp"]],[/(\:)(\s*)(@regEx)/,["delimiter","","regexp"]],[/(\[)(\s*)(@regEx)/,["@brackets","","regexp"]],[/(\!)(\s*)(@regEx)/,["delimiter","","regexp"]],[/(\&)(\s*)(@regEx)/,["delimiter","","regexp"]],[/(\|)(\s*)(@regEx)/,["delimiter","","regexp"]],[/(\?)(\s*)(@regEx)/,["delimiter","","regexp"]],[/(\{)(\s*)(@regEx)/,["@brackets","","regexp"]],[/(\;)(\s*)(@regEx)/,["","","regexp"]],[/}/,{cases:{"$S2==interpolatedstring":{token:"string",next:"@pop"},"@default":"@brackets"}}],[/[{}()\[\]]/,"@brackets"],[/@symbols/,"delimiter"],[/\d+[eE]([\-+]?\d+)?/,"number.float"],[/\d+\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/0[0-7]+(?!\d)/,"number.octal"],[/\d+/,"number"],[/[,.]/,"delimiter"],[/"""/,"string",'@herestring."""'],[/'''/,"string","@herestring.'''"],[/"/,{cases:{"@eos":"string","@default":{token:"string",next:'@string."'}}}],[/'/,{cases:{"@eos":"string","@default":{token:"string",next:"@string.'"}}}]],string:[[/[^"'\#\\]+/,"string"],[/@escapes/,"string.escape"],[/\./,"string.escape.invalid"],[/\./,"string.escape.invalid"],[/#{/,{cases:{'$S2=="':{token:"string",next:"root.interpolatedstring"},"@default":"string"}}],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}],[/#/,"string"]],herestring:[[/("""|''')/,{cases:{"$1==$S2":{token:"string",next:"@pop"},"@default":"string"}}],[/[^#\\'"]+/,"string"],[/['"]+/,"string"],[/@escapes/,"string.escape"],[/\./,"string.escape.invalid"],[/#{/,{token:"string.quote",next:"root.interpolatedstring"}],[/#/,"string"]],comment:[[/[^#]+/,"comment"],[/###/,"comment","@pop"],[/#/,"comment"]],hereregexp:[[/[^\\\/#]+/,"regexp"],[/\\./,"regexp"],[/#.*$/,"comment"],["///[igm]*",{token:"regexp",next:"@pop"}],[/\//,"regexp"]]}};export{e as conf,t as language};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#pragma\\s+region\\b"),end:new RegExp("^\\s*#pragma\\s+endregion\\b")}}},n={defaultToken:"",tokenPostfix:".cpp",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["abstract","amp","array","auto","bool","break","case","catch","char","class","const","constexpr","const_cast","continue","cpu","decltype","default","delegate","delete","do","double","dynamic_cast","each","else","enum","event","explicit","export","extern","false","final","finally","float","for","friend","gcnew","generic","goto","if","in","initonly","inline","int","interface","interior_ptr","internal","literal","long","mutable","namespace","new","noexcept","nullptr","__nullptr","operator","override","partial","pascal","pin_ptr","private","property","protected","public","ref","register","reinterpret_cast","restrict","return","safe_cast","sealed","short","signed","sizeof","static","static_assert","static_cast","struct","switch","template","this","thread_local","throw","tile_static","true","try","typedef","typeid","typename","union","unsigned","using","virtual","void","volatile","wchar_t","where","while","_asm","_based","_cdecl","_declspec","_fastcall","_if_exists","_if_not_exists","_inline","_multiple_inheritance","_pascal","_single_inheritance","_stdcall","_virtual_inheritance","_w64","__abstract","__alignof","__asm","__assume","__based","__box","__builtin_alignof","__cdecl","__clrcall","__declspec","__delegate","__event","__except","__fastcall","__finally","__forceinline","__gc","__hook","__identifier","__if_exists","__if_not_exists","__inline","__int128","__int16","__int32","__int64","__int8","__interface","__leave","__m128","__m128d","__m128i","__m256","__m256d","__m256i","__m512","__m512d","__m512i","__m64","__multiple_inheritance","__newslot","__nogc","__noop","__nounwind","__novtordisp","__pascal","__pin","__pragma","__property","__ptr32","__ptr64","__raise","__restrict","__resume","__sealed","__single_inheritance","__stdcall","__super","__thiscall","__try","__try_cast","__typeof","__unaligned","__unhook","__uuidof","__value","__virtual_inheritance","__w64","__wchar_t"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>="],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[0abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,integersuffix:/([uU](ll|LL|l|L)|(ll|LL|l|L)?[uU]?)/,floatsuffix:/[fFlL]?/,encoding:/u|u8|U|L/,tokenizer:{root:[[/@encoding?R\"(?:([^ ()\\\t]*))\(/,{token:"string.raw.begin",next:"@raw.$1"}],[/[a-zA-Z_]\w*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],[/^\s*#\s*include/,{token:"keyword.directive.include",next:"@include"}],[/^\s*#\s*\w+/,"keyword.directive"],{include:"@whitespace"},[/\[\s*\[/,{token:"annotation",next:"@annotation"}],[/[{}()<>\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,"number.hex"],[/0[0-7']*[0-7](@integersuffix)/,"number.octal"],[/0[bB][0-1']*[0-1](@integersuffix)/,"number.binary"],[/\d[\d']*\d(@integersuffix)/,"number"],[/\d(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*\\$/,"comment","@linecomment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],linecomment:[[/.*[^\\]$/,"comment","@pop"],[/[^]+/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],raw:[[/[^)]+/,"string.raw"],[/\)$S2\"/,{token:"string.raw.end",next:"@pop"}],[/\)/,"string.raw"]],annotation:[{include:"@whitespace"},[/using|alignas/,"keyword"],[/[a-zA-Z0-9_]+/,"annotation"],[/[,:]/,"delimiter"],[/[()]/,"@brackets"],[/\]\s*\]/,{token:"annotation",next:"@pop"}]],include:[[/(\s*)(<)([^<>]*)(>)/,["","keyword.directive.include.begin","string.include.identifier",{token:"keyword.directive.include.end",next:"@pop"}]],[/(\s*)(")([^"]*)(")/,["","keyword.directive.include.begin","string.include.identifier",{token:"keyword.directive.include.end",next:"@pop"}]]]}};export{e as conf,n as language};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\$\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},t={defaultToken:"",tokenPostfix:".cs",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["extern","alias","using","bool","decimal","sbyte","byte","short","ushort","int","uint","long","ulong","char","float","double","object","dynamic","string","assembly","is","as","ref","out","this","base","new","typeof","void","checked","unchecked","default","delegate","var","const","if","else","switch","case","while","do","for","foreach","in","break","continue","goto","return","throw","try","catch","finally","lock","yield","from","let","where","join","on","equals","into","orderby","ascending","descending","select","group","by","namespace","partial","class","field","event","method","param","public","protected","internal","private","abstract","sealed","static","struct","readonly","volatile","virtual","override","params","get","set","add","remove","operator","true","false","implicit","explicit","interface","enum","null","async","await","fixed","sizeof","stackalloc","unsafe","nameof","when"],namespaceFollows:["namespace","using"],parenFollows:["if","for","while","switch","foreach","using","catch","when"],operators:["=","??","||","&&","|","^","&","==","!=","<=",">=","<<","+","-","*","/","%","!","~","++","--","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>=",">>","=>"],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/\@?[a-zA-Z_]\w*/,{cases:{"@namespaceFollows":{token:"keyword.$0",next:"@namespace"},"@keywords":{token:"keyword.$0",next:"@qualified"},"@default":{token:"identifier",next:"@qualified"}}}],{include:"@whitespace"},[/}/,{cases:{"$S2==interpolatedstring":{token:"string.quote",next:"@pop"},"$S2==litinterpstring":{token:"string.quote",next:"@pop"},"@default":"@brackets"}}],[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?[fFdD]?/,"number.float"],[/0[xX][0-9a-fA-F_]+/,"number.hex"],[/0[bB][01_]+/,"number.hex"],[/[0-9_]+/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,{token:"string.quote",next:"@string"}],[/\$\@"/,{token:"string.quote",next:"@litinterpstring"}],[/\@"/,{token:"string.quote",next:"@litstring"}],[/\$"/,{token:"string.quote",next:"@interpolatedstring"}],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],qualified:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],[/\./,"delimiter"],["","","@pop"]],namespace:[{include:"@whitespace"},[/[A-Z]\w*/,"namespace"],[/[\.=]/,"delimiter"],["","","@pop"]],comment:[[/[^\/*]+/,"comment"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",next:"@pop"}]],litstring:[[/[^"]+/,"string"],[/""/,"string.escape"],[/"/,{token:"string.quote",next:"@pop"}]],litinterpstring:[[/[^"{]+/,"string"],[/""/,"string.escape"],[/{{/,"string.escape"],[/}}/,"string.escape"],[/{/,{token:"string.quote",next:"root.litinterpstring"}],[/"/,{token:"string.quote",next:"@pop"}]],interpolatedstring:[[/[^\\"{]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/{{/,"string.escape"],[/}}/,"string.escape"],[/{/,{token:"string.quote",next:"root.interpolatedstring"}],[/"/,{token:"string.quote",next:"@pop"}]],whitespace:[[/^[ \t\v\f]*#((r)|(load))(?=\s)/,"directive.csx"],[/^[ \t\v\f]*#\w.*$/,"namespace.cpp"],[/[ \t\v\f\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}};export{e as conf,t as language};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const t={brackets:[],autoClosingPairs:[],surroundingPairs:[]},r={keywords:[],typeKeywords:[],tokenPostfix:".csp",operators:[],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/child-src/,"string.quote"],[/connect-src/,"string.quote"],[/default-src/,"string.quote"],[/font-src/,"string.quote"],[/frame-src/,"string.quote"],[/img-src/,"string.quote"],[/manifest-src/,"string.quote"],[/media-src/,"string.quote"],[/object-src/,"string.quote"],[/script-src/,"string.quote"],[/style-src/,"string.quote"],[/worker-src/,"string.quote"],[/base-uri/,"string.quote"],[/plugin-types/,"string.quote"],[/sandbox/,"string.quote"],[/disown-opener/,"string.quote"],[/form-action/,"string.quote"],[/frame-ancestors/,"string.quote"],[/report-uri/,"string.quote"],[/report-to/,"string.quote"],[/upgrade-insecure-requests/,"string.quote"],[/block-all-mixed-content/,"string.quote"],[/require-sri-for/,"string.quote"],[/reflected-xss/,"string.quote"],[/referrer/,"string.quote"],[/policy-uri/,"string.quote"],[/'self'/,"string.quote"],[/'unsafe-inline'/,"string.quote"],[/'unsafe-eval'/,"string.quote"],[/'strict-dynamic'/,"string.quote"],[/'unsafe-hashed-attributes'/,"string.quote"]]}};export{t as conf,r as language};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
const e={wordPattern:/(#?-?\d*\.\d\w*%?)|((::|[@#.!:])?[\w-?]+%?)|::|[@#.!:]/g,comments:{blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/"),end:new RegExp("^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/")}}},t={defaultToken:"",tokenPostfix:".css",ws:`[
|
|
2
|
-
\r\f]*`,identifier:"-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",brackets:[{open:"{",close:"}",token:"delimiter.bracket"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{root:[{include:"@selector"}],selector:[{include:"@comments"},{include:"@import"},{include:"@strings"},["[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)",{token:"keyword",next:"@keyframedeclaration"}],["[@](page|content|font-face|-moz-document)",{token:"keyword"}],["[@](charset|namespace)",{token:"keyword",next:"@declarationbody"}],["(url-prefix)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],["(url)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],{include:"@selectorname"},["[\\*]","tag"],["[>\\+,]","delimiter"],["\\[",{token:"delimiter.bracket",next:"@selectorattribute"}],["{",{token:"delimiter.bracket",next:"@selectorbody"}]],selectorbody:[{include:"@comments"},["[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))","attribute.name","@rulevalue"],["}",{token:"delimiter.bracket",next:"@pop"}]],selectorname:[["(\\.|#(?=[^{])|%|(@identifier)|:)+","tag"]],selectorattribute:[{include:"@term"},["]",{token:"delimiter.bracket",next:"@pop"}]],term:[{include:"@comments"},["(url-prefix)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],["(url)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],{include:"@functioninvocation"},{include:"@numbers"},{include:"@name"},{include:"@strings"},["([<>=\\+\\-\\*\\/\\^\\|\\~,])","delimiter"],[",","delimiter"]],rulevalue:[{include:"@comments"},{include:"@strings"},{include:"@term"},["!important","keyword"],[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],warndebug:[["[@](warn|debug)",{token:"keyword",next:"@declarationbody"}]],import:[["[@](import)",{token:"keyword",next:"@declarationbody"}]],urldeclaration:[{include:"@strings"},[`[^)\r
|
|
3
|
-
]+`,"string"],["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],parenthizedterm:[{include:"@term"},["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],declarationbody:[{include:"@term"},[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[/[^*/]+/,"comment"],[/./,"comment"]],name:[["@identifier","attribute.value"]],numbers:[["-?(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?",{token:"attribute.value.number",next:"@units"}],["#[0-9a-fA-F_]+(?!\\w)","attribute.value.hex"]],units:[["(em|ex|ch|rem|fr|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?","attribute.value.unit","@pop"]],keyframedeclaration:[["@identifier","attribute.value"],["{",{token:"delimiter.bracket",switchTo:"@keyframebody"}]],keyframebody:[{include:"@term"},["{",{token:"delimiter.bracket",next:"@selectorbody"}],["}",{token:"delimiter.bracket",next:"@pop"}]],functioninvocation:[["@identifier\\(",{token:"attribute.value",next:"@functionarguments"}]],functionarguments:[["\\$@identifier@ws:","attribute.name"],["[,]","delimiter"],{include:"@term"},["\\)",{token:"attribute.value",next:"@pop"}]],strings:[['~?"',{token:"string",next:"@stringenddoublequote"}],["~?'",{token:"string",next:"@stringendquote"}]],stringenddoublequote:[["\\\\.","string"],['"',{token:"string",next:"@pop"}],[/[^\\"]+/,"string"],[".","string"]],stringendquote:[["\\\\.","string"],["'",{token:"string",next:"@pop"}],[/[^\\']+/,"string"],[".","string"]]}};export{e as conf,t as language};
|