From e59cec6437d21bba004c728e096afe31d1fc6d3f Mon Sep 17 00:00:00 2001 From: Elizabeth Samuel Date: Wed, 12 Nov 2025 13:32:04 -0800 Subject: [PATCH 1/3] [PowerPoint] (shapes) Updates to include 1.4 Shape enums --- samples/powerpoint/shapes/get-set-shapes.yaml | 12 +- samples/powerpoint/shapes/shapes.yaml | 42 ++-- snippet-extractor-metadata/powerpoint.xlsx | Bin 16693 -> 16910 bytes snippet-extractor-output/snippets.yaml | 237 +++++++++++++++--- 4 files changed, 230 insertions(+), 61 deletions(-) diff --git a/samples/powerpoint/shapes/get-set-shapes.yaml b/samples/powerpoint/shapes/get-set-shapes.yaml index 521242f6..789c7262 100644 --- a/samples/powerpoint/shapes/get-set-shapes.yaml +++ b/samples/powerpoint/shapes/get-set-shapes.yaml @@ -53,7 +53,7 @@ script: shape2.load("id"); await context.sync(); - console.log(`IDs: ${shape1.id}, ${shape2.id}`) + console.log(`IDs: ${shape1.id}, ${shape2.id}`); slide1.setSelectedShapes([shape1.id, shape2.id]); await context.sync(); }); @@ -64,9 +64,11 @@ script: await PowerPoint.run(async (context) => { const shapes: PowerPoint.ShapeScopedCollection = context.presentation.getSelectedShapes(); const shapeCount = shapes.getCount(); - shapes.load("items"); + shapes.load("items/fill/type"); await context.sync(); shapes.items.map((shape) => { + const shapeFillType = shape.fill.type as PowerPoint.ShapeFillType; + console.log(`Shape ID ${shape.id} original fill type: ${shapeFillType}`); shape.fill.setSolidColor("red"); }); await context.sync(); @@ -115,9 +117,7 @@ script: } function generateRandomHexColor() { - return `#${Math.random() - .toString(16) - .substring(2, 8)}`; + return `#${Math.random().toString(16).substring(2, 8)}`; } async function createShapes() { @@ -131,7 +131,7 @@ script: const minNewShapeHeight = 50; for (let i = 0; i < 20; i++) { const rectangle: PowerPoint.Shape = currentSlide.shapes.addGeometricShape( - PowerPoint.GeometricShapeType.rectangle + PowerPoint.GeometricShapeType.rectangle, ); rectangle.height = getRandomBetween(minNewShapeWidth, maxNewShapeWidth); rectangle.width = getRandomBetween(minNewShapeHeight, maxNewShapeHeight); diff --git a/samples/powerpoint/shapes/shapes.yaml b/samples/powerpoint/shapes/shapes.yaml index 68c8d5c3..a82cb7a5 100644 --- a/samples/powerpoint/shapes/shapes.yaml +++ b/samples/powerpoint/shapes/shapes.yaml @@ -6,7 +6,7 @@ host: POWERPOINT api_set: PowerPointApi: '1.4' script: - content: |- + content: | document.getElementById("create-hexagon").addEventListener("click", () => tryCatch(createHexagon)); document.getElementById("shrink-hexagon").addEventListener("click", () => tryCatch(shrinkHexagon)); document.getElementById("move-hexagon").addEventListener("click", () => tryCatch(moveHexagon)); @@ -25,7 +25,7 @@ script: left: 100, top: 100, height: 150, - width: 150 + width: 150, }; const hexagon: PowerPoint.Shape = shapes.addGeometricShape(PowerPoint.GeometricShapeType.hexagon, shapeOptions); hexagon.name = "Hexagon"; @@ -69,13 +69,12 @@ script: // For a line, left and top are the coordinates of the start point, // while height and width are the coordinates of the end point. - const line: PowerPoint.Shape = shapes.addLine(PowerPoint.ConnectorType.straight, - { - left: 400, - top: 200, - height: 20, - width: 150 - }); + const line: PowerPoint.Shape = shapes.addLine(PowerPoint.ConnectorType.straight, { + left: 400, + top: 200, + height: 20, + width: 150, + }); line.name = "StraightLine"; await context.sync(); @@ -88,13 +87,12 @@ script: // location, and size. Then it names the text box. await PowerPoint.run(async (context) => { const shapes: PowerPoint.ShapeCollection = context.presentation.slides.getItemAt(0).shapes; - const textbox: PowerPoint.Shape = shapes.addTextBox("Hello!", - { - left: 100, - top: 300, - height: 300, - width: 450 - }); + const textbox: PowerPoint.Shape = shapes.addTextBox("Hello!", { + left: 100, + top: 300, + height: 300, + width: 450, + }); textbox.name = "Textbox"; return context.sync(); @@ -109,15 +107,17 @@ script: await PowerPoint.run(async (context) => { const shapes: PowerPoint.ShapeCollection = context.presentation.slides.getItemAt(0).shapes; const braces: PowerPoint.Shape = shapes.addGeometricShape(PowerPoint.GeometricShapeType.bracePair, { - left: 100, - top: 400, - height: 50, - width: 150 - }); + left: 100, + top: 400, + height: 50, + width: 150, + }); braces.name = "Braces"; braces.textFrame.textRange.text = "Shape text"; braces.textFrame.textRange.font.color = "purple"; + braces.textFrame.textRange.font.underline = PowerPoint.ShapeFontUnderlineStyle.single; braces.textFrame.verticalAlignment = PowerPoint.TextVerticalAlignment.middleCentered; + braces.textFrame.autoSizeSetting = PowerPoint.ShapeAutoSize.autoSizeShapeToFitText; return context.sync(); }); diff --git a/snippet-extractor-metadata/powerpoint.xlsx b/snippet-extractor-metadata/powerpoint.xlsx index a4f793ee20a141c4535f81004d7db3bb78ac9c71..56a24f0941217478a13ca6bb149041af4b475304 100644 GIT binary patch delta 8193 zcmY*;1yCGO)9tdj1a}D%ba7vN3GTMIOJE^D@ZgICLa+dfTL@0j;1-aN$@sv!2VWIr+ih-zE;Cqd`kgjy2b!6A>e@S{K~1K4 zyU4hz4YEFE&h3*wG`H9H^=qfkig3z}Sk>BLnX0u1HZ5T``H)&!BSFfops;1x*u3fx zU8re9_)Lx=Cfrc#g+h}T^cBU3Zf9zRa-aKhM+s}?1Oa^lZ6|&y$(RACy56czGDJ~N z`^ANBCzW81?t;P^2qf%eZI|l+*hot;Irh`E(KW0!nR`9CO}KQ#^Ia5E0{}nh+IW!+ z@wEN6kw&asc7X~JQ<$`Sw4Up{F~w*;C-=u0c+a@#21j%gu~Yab=(==at#nk~kHN^5 zODmHwLavnr+&2Dv-TfVzaaZ(AuE07>Z@xfOWw>t9TqwIp07N8yvU7)cp zO>p7^;SJ|=zNR5^;=bSbDb|Z*(({SlB@$9?qJDp1Ok3FWQ9Rfep%@_|W0~vm3r-!N z8$@yPJl!h|j*Z8Q%_?b|avrx3cJO(W-&|{ZbgX%*!)YeljNRQsANAVf1pR?|er_G@ z<&qcjvIHHh(!T$37QfvbR23@@oN-SKu=Y0vz^xB%m_OFy?%`QcZvq&d9)jsZ$a?yoe7(XR=vnx^^cQd#6HB^jXg{o$GOCF+4k7< zgH$_q;KNA8Osct-wUo)INq1(Gj>yQjEXE_nAqk?QDE^)0!FBvg>5piLbyngUE-Zc^ z7I>wgPnQq?c=&*Li^Bz%0x&>piOVO=p!+Y)sJ4N62yl&Bu7}}udWu;T6Dm5 z%hU2gO@@rA2sa%GnVLFqjs;ghmAG|bYin_C2Bu0~V6QW-ED(oy#p=fYbYodhc4p{= zR2%w1{?|XSWL=?3=8`L<|$IA%rD>AO?p0r@<<;jd9T|BkwI@Hm89Kl z!^jLS)D3*Y)4bpVyRl>tk$-HG7GRwkdbA`6AFk$c|P{9pq%#4K&g=hF}r8{~P zWM-@a$i5<0`elr3Ux$hP-sEM04n*mF(j&vwm!Nm`^3Df8=jGk;ih5l!BiE5Ts+anA zEOTF@J&Fnn<53)QOLzpVg{^FWTsFZG4+5$YHE0F;0eJK3mT6MHmDw{|RrJXrUaMIj zOEMT;MMvTIXYzETi)gtI8fzT~2IXNn64G(PJmi-P7PSE`)Xj#;a;`SDc=`Dfs7@M6 z;plb&JijEtUEf=?7HZu8A_D+VPk?`y#H{^TlLmqh=Dp*{vfWLe>9Hg1Y*%G8akf&3 z48jqu0sY@wyDKA?TOP*TJkK+K{VAB=+P%Fvgnw!Odv<>~bZjmOzdJO4x?OMhB3X+k z<$r&jV%~oFba#5Q{_&~)A*E94aTDHP-WKridu|neS9QC1)V-}?{&9D;#py|E^{)Nt zruFR?$;Z>%slLk9&M$T@G6$m88}Bo|OFSI$*E3y(r1YaU<=G&`wUqs9Cr z*->gwY54>jN~AY;UKNXtmLgVtE~t$niCVcIVWp3{&{si+Ev>N@3<1& z3i;3%=)BFuFptI5pE&iQs@n||Gh{!y>uBE0AT`6)6H{vz3#*I0HdFgydnAI)`W*`E zK1DUI^wbG#Y$#=e&CxI8`~qS||~~R2D7jetlsbPOH7A{>~2h zI8IHDx)w?UkWj8{CzuJw^I&)Nqrb}}5U~Q?=X#qYOu$7nuVlasIun3JC^A685ae`K_k!79u(LBf)ZgOG?P}qW)Hq`AO%C&$ zAj;3T--A1r^zEj+32fL)AiTLT9L~e?#kCbTznc@dTLB7wdOO5Hx~6LCGu*%;1_c7X@+Uc${hgs;@9bl7|K8e zgJQTVVJn58n~Uz{Je8T(=)wRx?f4FUeXf>Qi9C|S-!+H7TyFzw5a-zGJzLe45h<3` z@IJiaGvs-7;40=KL4r5>_h0%S26@yQhj+~89B$Hc7(s2^vY~8n^LWN?uqE)5g=N}A zc~*L*Am&S$SYS?y#ptTOzyOar#%pPE=@qSUPLFrKg05?yM$Y&@d>)gc`lz@2M<(zR zNwgDub`+}qaKCoeP1Qg<539Of(61fffvazT^F+5QPO^j&;n^hwGp2y?fE zB4++QRTs1G6K`c;%}zGPkFOi$Oe+~gu1dB5dp5S_60<+L=Y+T&MdtmF*zc^!Su8t! z--Tin|6MqSEu?h_TWM<%-b0lDm#K7Q4DNR{ZKEiW3>I$1uy9N2K9pi!B;RBo_@O#< z&M>!A)UTK|+%l7AfVi8a4P9*#e`XgOmY6RBCGO@?PtA`+YCFuIBC~9d4oAeWVMiyO zYigl)gX#J6$Vl8y>Kr*Wr$l6tv)qeeLC;Po)E+L7;Ej1v5Papg%6CjXI1bV#|hlP|gxTQSZ{6~~lnq{N`KjzLx zj+$EA6)=r?RuL-amX!d>;0nTMuweHt?tgyX=oSjkScvE9im{m!_X&j76UJv0%I>fc z_YE^g-Q~(@qXZCAlE*EA@Xg!t*=`@V_-26&%IF!`eq7^B5m;O;p+uiT$D&bQROC9p*6 zZ(2bh1pByGHRhWDc;ajBr)eZIA@xp)J8QWgIGc<{;3a%Q{TubXr?HlL8q-)|ff6bj z0gB)Du_TwzNfDxGM&3#BV`oI6)^QP*lR~%YQ3gwVj(X?BC*HJ)8Z`ollLb-?nx0%V zwGJL`g1Z}es=V8;F)ZMqOSrw~pXBtN)rqJ{g+?hxXzKn)~w6$=j!L6VLE z%ni@%;GPo^eU#p3evcMsXDqGl(;AGm3Hh&4c{NAofQv$auo{sURXXcoI6vH(ozSUb z-Q^(9TgcJ4y=G%OKhUwz?vGBL<(0*LWC^(0d z-8bcuKg(Uuzx)^Wbt)15v8BkpsR-UMm>}GSssKD=PiAuImftH8kbwn4gVE(*oodIE zcY|>mG+!y2GtEzsNP`!kL~y}R@!ln@pDi=-Kb*x8YPi&i5EYa7Fi>XFnt-sL<1K3o zwIgm+&uEc4ucI+V!`gn8FzRE8AZU*~YRqqb7U8^#ah{4}pIo^X$VdZbVS@$rn{xWpR;408W3wTy&z zai>`@YX31MR^^*WPdr-DN|V$zfH_)8 zL|E1zsRCjT5|Y?zM5=ef)Li5O#?(hWOxTCXkBDkWje7zGAGH#*Aqe{hbQo=(Pjoh3gwb(xsB#2+8gDxsMXvq+Qk=5 zded@qF=?6%OX){wpZv18YmZXU>TcJV-4>xXKf6V-Y0of~OFrT?W)ohCMqgZWDLuK& z7PCeL+6&Y|wOmmQWK?l|8qw0$knOmI&ciR_%hr z$*8I7wffE;1naae-8w&Ab91Vel{D4;a_k|?9Dnp!jk}~!_%R49GJz?cs%)dMeV@_@ z{AJwB|LG&iw)~st1p)R6%|C84*Kuj7d|s>j!IAB11U;Kp!tZm zt^?ajC_c`X9!lWdgb+QvG8NdfA_W%=L`t#@ z=UKkHXJ4y`+G)$_`IGmnHm~(fuyzG~{$!!8HPvY^ELZVF3D4VPx+$@sf5-_g#8zyd z8T6Le&(zKVKaX)l!ICnGYn8UJ^^Yy$Te>3%Py|kv6-!(fbVlVg4THGxY>i1c{ftt$eoLVO86~TYqfg({A?N}>J6yi?JLQE z*}wWp7sA9JZazv>=F^?IWxl9_hn2W@kznCXQSD;dOXfqh@qM&L(Y)pClL6=w#Q4{8 zW1%4ter8J2TbCkKYa~ppLA$^!bBW^@sGV1N8_DI+Z|9a-`Sb>w?!4)ANEd@X<{2xB zGK!s}YeFXMx(EISc9~T@++d_@^Dv0vSQs6Pr0MzAV?DI3=J%x-CifluBp84{H zc&X@z@EQIFtt%*L;y@}eK6?z%HgAhxMH^DBS2!!M2Cw1PO0I?~*Zi&%z+4o5`+>|q z2QL$E4K@Y^6)(V5m_Fm-vDFTBE;<{<{!Bq{_HfVkhB1z-cnTVu86c_xvK8jJ*73YY z5PkG_ixu8QyP7J20%eT+zNo`nf#%4qYnVxE-L9r)I!2e?xieL($@vOq7Bxt1uyTg3 zDA$NBc=&nRx^QP*_Ssl zhuf1kRU-j+hGA<|PSsLn=Om z&PKciPgfh@TnZ2Keb4dU0{)kc{kjBr?z#n_FAph7Q*ZE27G?!Iyn0h(?pp_bdj9-- z^H=ch3ArYT#sV8_d(=5ET! z?ZKhPM(cP1EIPSw>W9bFdlsojm#xe%L1kWjQ@`$yu5Xt}>Kw!TEJaI#tNH6mUOvKq zIUI?y%k4U_1uPDmxBK7Pu3!}uA-XPp(Q3d0&K*Q|>+V`o>`u34-c=T{D5z&q-y&+{ z!S4mGSrpvGBR=X+&J|`>mhJxe@`nGG)hO+(tZq+qH|4kXz0u?M#%6K-7weJfnt>(4 zb>bLWeusL$2F@O~iiA?Vi1IQX#@JTjgUT#*WG{i~lZjrFcb<95yQAgy8exccf$L4A zV%&#DLe(eLI1Fs&cFy^S(UXCsBx5Gys<}Z$c7@Wq(K@*t3IfQ2d8Djm##CCrV_x`Q zdy7&P@2#ZOrqDnONYQT1WR&j?z#^Rv4NE|2RH zHYd!1A8wCN|IxRRJRlCuVf-6|f$|9P_**lxeq*f(!Vh$&AT>$QpbK&Ix7N#|KgkUU z`U=@oQ)tg9)?2SI!3+l(i7#P=3~}FCD1KvY1P8~=Lu6(n{YD4lg6sG!$ajmzb8GZq z80y&WR%oLm5P>Nhb(22z2=o40_&aOagKiE5j!m$qBJNup5!K#s50pR~U-D>r`nMcl z@j?1Bxr}SJSIk?n)8WFVgI;;c=0zXtpt@@LN(vG`Gu5_SQ>|pE%Zo6w|AKutmbk+Ro_6OUk5@&LUVvSx6Oik1*Oi{)+!{1F+it`(F zU-2dr8BmiB6yeSh*}qFAnLLt}M&~`MV_y&Y+vxK6@No!NqV%Y)-Db0+A9D5EZ6<_18w{8OToprCPw-bv2*p9ij+ zyF9yq9!oXOUq9{mD08`o!}*=4jJ)cX$HaB~mJB<;DwG{p2K7Se)8+C&F*T_;eN~Dw zcmX+Ce`PXq}msvUml_76jkS;c2Fsp?-d z5|F4P&(C4L*F!giUoR}l`iNeSmsFOKzIDbBb2Qadj_uZ$4fW3I{Vw|hOLa{t`;`M8 zSCK2w?gpcFQm@*iBWJVy5Nnr1s#yr z^PCLZDWkVT=XTl?L79%V%6J0lbh6a*Cx!g5+l~L*R$&xA`4_jED^)b*Imxx{iE{}i zu-8Z5y=vPD>$SH$3x)KSrSIhNk;D^YWWqlJhe9Hgs&cDyOS!X!(H9wIiB}`%OCKeW z#mJ_*+t}Al;dHE93ZxsvtPdJj)_CoU?SSt!k@0LyYrk0~#KIhTz)4)ePBxi72t$~6 zsKOdL{#lNP65vWg<7bq3e}~GUG`st42U$ziBmvO2ZO3KU^0>Q*px0&Y?wqKe6e(-H zqJQcrq-PM^E3p+kxW*c#yXmf~sNu^v{l1a<%Hy-;iy$0$)}6}< z7qYyJ?`d*}*=wNZgkO!``@f;oqs!dmOA!JJ9&0CmCQ(jABMBMZd76_SceCE&;;pef zA^qns{uCD_5(>u(MiSzbTbd;PQ+#mzI*God0#@7~y9f&_;3R=6LV*X2vJ4x*L4@+q z!#kZ9!Njd(J5m^;b?EZ>vf2p*EpdvNJmVaZ%zpE)UQO_7DG@6+*L~k<=eBQg&fKah z);L3e`Hx4$R|0>1mboycEWN0Wo_G=cO2o5Se`<>F@%}5S9JL`!p&5>E!q5$!(_j0` z$K`UO&!N$OcL%sO%iYfzlpGt9@~VV=li>(>&4exS=#!wvr>q#_AIr+SKk1d|^9NX` ziND~JT3^E<@|JCfw&T05r0Npiq?@`4*kgY>e-BKr#r&3hx+3d`cmS?u=&$ANMc4ao zI*S|R3RBGt=u;A?NB^zpf(6RFfk()38saD1l zb3`8~SW1mcV_M#K4e)DICVKy}Hh`1fcV6t$;__-l@74csVYo~{#+%Zq%zVGoqnjs3 z)7Toh#bE7;#Xi;Toas2dyS$amdx_D9|7A}>19rkFmJwpP4);VN-=JPgr_;Cl+$xX`NdZb2p2&|EyQ0dWW_Hm{td@Bg)GoH zRxMond4c?*Ix_wm3zkuooh62Z%)RKq2xplOsT~k0*HNUJHN!Z{U)+s81;=N;w`=fedh^9Q-3NNX{mQ6}inCO3aGzKVY5e}QCtzSHfUUmu?x-rd(= z&~<0l%334zR_k}owhRVOi4k1W3JNq6e3K-d&LD5j)!%Hc;mrP2awK_gVSXL9V%4J` z@Y`NDfe;9-FSm09v$FNjbu((Hyw=Rm!~Gyf|jRQQBqhFZ;r05cNYT&0_bxOWw`U1q>9gV`O9;e-zIbE7lR@{bx=)^nOn zu<^RTDm>H^BX9e?;(j*Nl)^X^3JRs=sW0}3R3y#=)E3)(ZD8{q(O(Cm&bo5?7}_gN z5O5gTHVA(zPAkR{&-jM6iB%QMVm~CCm7C=**gYRf!|MF%c-(9WD(?#4R;lR~BwO{z zPW^d`!|r0@*5`_ivmYFxuE>UF^F#OzdK^#&6RWl+RTkyRhlc!3rP)qmybj5c!F`&# zYo8;Vud55KBQJSI;iq&ZvhHn`n}COl$rwt~=H(kHkkb#;$xqG7#}6VM^RDn*iF>ZW3({p zv(QlQgOL5IX3@tdrb&AhMuDOa6Q~)Z@;&@HV*$5f)#ivbR+1VEVMDb4>5l)92>$;& zjf#?bNGpghk`UlqX2iNAE%kp3Q~-eZxr6lIBb5z7Ed>E)a3j{am^d_5kbs=e2s8l3 zGlU-SPxn-xM@!Eq%YTiYM|C`iN-0sQf2#MdE%jXd{%^nXya*Hs1o%M!ArE1v{?Gm+ l0RRp_0D$0s`6&`a#6To~>|n$&L>y@sf%#l@U`YOh{2y^cWc2_5 delta 7951 zcmY*;byU?+)9wknySq!e8<7+b4GMykfV6b~DCs_QOM`SO%>n7|Zb^|=n#=oscdhT< z{m1^}Su?Zu%sew|)|%K5aAOd-Mh6w?z9mHw{uY%QFm%l1CGyX0cnY|O)lze#bCe~9 zS|_)Z8MOYbb?!#j12HZ$z0!TUi&asX|5bEIf=`(n+z3e zkjm3tRNCMu7PjBEtg``asU#tO`)KUwyz_0WDl$`N{=S;fbwDIZe~%ve1t&$;&8(at zJ<*_Qgk07Kb&BLtEz1 z4L^bxqRs`@-W>$Yoia&PJsG>G-|UK2caqdH1xZ8q&?7h4Jnpk)8%NuSnXM0cOX$yw z`<**9ak?m~9Fi95>~N(5v$Cq+8fHka9e2|W^fcK~2Ty>wFWsV& z-Po^j0{y(ZmT=Z%4x1uqTW`lvFz4)Oyz%bCaGp=?pM|OpQs0vGe6u*%Kf1&Be+YI6 zu(VB|9={(Y<1&aKhq%3hmgWTirX)RrkO72;hV&Ne{I4f2eo3OSbTc^n0WXbmyZ9MX zdyBd~1#=Tr@J21A7*B9jAMQam4}WI-#vE-Y1y^J*{%KKKTB{QqavpN9&T%?^Ppjn* z=31^CS9--8^P99yV1DVcb(#Z=6oD&-AYA`>z~=P8hevhCcxZf!nSr9&qP*u9`kNgo z`l+8Pz<@zcGForA&SYqXJ;mOH?rG2u3)E zU3Vcq2-E<;ZLzokIEbOrn%$tNy>w2hO?V8sqVKb1CM5Iks)sw|xK~FZ8EsG0qqDX1 zM6y#le8~r;=!YE!!43Uco@w3AXffS-N0lPs)+hPQ#JRe_ASyZd(YH9-U7xa?OOh^6 zWouWtroM)Hx(PeXAe#?O6C0_j9CFwl;Q!tbZD&b^+PbPCIy@4Zc`vn>9rrT!nOdXe<1To z$VaO*DQ-Y$`K*qvlXcTIBcyqFk|Fj&GlR!bDe5N!_3DaRzTM~MwpMcWr}%GPgS9<+ z$t8Il0}L6J`GSnyvny{VJaBv-Y>vrW{6i?xz#|0s<2d^UL##)hafbB#hD!k+zIL^v zWBmhv1$1^v4k-jI%(pZxuLUIYKFG~Yk+D|W0TLnv!1=l%aeBdCz%g-olp1Q zZE4q@Zq9n{#@D+(SUJi67B@HZ$gGt*{v*)D{5Lf9Cbs>gp~GdF4K@e?Y!!%v!@;xIY-LrG`WJ$ z$mM+E+~!DxjQ#z`b5f@|bo0x7JAmcHAUK(A1@_vRm(TfCFpej8{IezJXG{FF>z0?E z@nty0iovnLWJVZ*-pgrySWUrdd(Gstr0qQo)E{TTEdVSjt$w+#6UNDV)ik z8$+3+&x{ncE)xfNCm92bpkw zW#0^eglI0zp@BatEA9(EPyMJ7rPX=Svj9!xx#x8Vlf8B1#C)>Oici-}|LVYd^_f4@ zK+Tdj92l&s+luQ`DRx)<(wAJUT35g*R-J*O*h1_;h(O#jjFxfEbZTQkwu$BI?6+QT>H8aRbyKulcN0!j6}6`wuXzA zXrvGy-KTPDIWy3$Gi&bA_B*RS0arS2lHN|C;I~!`Wahei=GtiP-jZ>T^n344T{RG% zIw=}UtMLo9CL5`Pu!)hW7RRiy8ZG(RYyJWsqi?3RL5Zac9r)PA_kIeA(S7KI%1D^Q z(GJHmzLhGcvdd@Cb|ja_j(iox?GQSm5d0l#UJr)^uE52i=qvxBDCk< za3|3F5^QKKs>Vax&_@rpWcJyI^23_p9AY3A=1`B89FUjY+J6&s2nYeE`z_yWK_! zO(Uxal%wBY^U0pwP$?#>s*$oz3@wFykS$;u{l92AnaMIt+zC#MsZMnx(5PDU#KUBO0XfD@2fjBRTmozUopoc`&(D z!7e*AFQJ$|T=6SVjus%#0SXY8TeGTBt|G)gJ!lDV!gN;-i{ySTx<8@?WB8>GR;_!< zhka1Lw(gG&g1S2h`eaPmY&u-oip(lPg42ULj6mq9UnyF|q$v7Uw7629x9p4*PcRxI zWrSz8Y -t(jmfIz%W)mPZ^`-3*eIoL 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 diff --git a/snippet-extractor-output/snippets.yaml b/snippet-extractor-output/snippets.yaml index eba34b10..aaf3b704 100644 --- a/snippet-extractor-output/snippets.yaml +++ b/snippet-extractor-output/snippets.yaml @@ -16004,13 +16004,12 @@ PowerPoint.ConnectorType:enum: // For a line, left and top are the coordinates of the start point, // while height and width are the coordinates of the end point. - const line: PowerPoint.Shape = shapes.addLine(PowerPoint.ConnectorType.straight, - { - left: 400, - top: 200, - height: 20, - width: 150 - }); + const line: PowerPoint.Shape = shapes.addLine(PowerPoint.ConnectorType.straight, { + left: 400, + top: 200, + height: 20, + width: 150, + }); line.name = "StraightLine"; await context.sync(); @@ -16402,7 +16401,7 @@ PowerPoint.GeometricShapeType:enum: left: 100, top: 100, height: 150, - width: 150 + width: 150, }; const hexagon: PowerPoint.Shape = shapes.addGeometricShape(PowerPoint.GeometricShapeType.hexagon, shapeOptions); hexagon.name = "Hexagon"; @@ -16978,9 +16977,11 @@ PowerPoint.Shape#fill:member: await PowerPoint.run(async (context) => { const shapes: PowerPoint.ShapeScopedCollection = context.presentation.getSelectedShapes(); const shapeCount = shapes.getCount(); - shapes.load("items"); + shapes.load("items/fill/type"); await context.sync(); shapes.items.map((shape) => { + const shapeFillType = shape.fill.type as PowerPoint.ShapeFillType; + console.log(`Shape ID ${shape.id} original fill type: ${shapeFillType}`); shape.fill.setSolidColor("red"); }); await context.sync(); @@ -17221,13 +17222,44 @@ PowerPoint.ShapeAddOptions:interface: left: 100, top: 100, height: 150, - width: 150 + width: 150, }; const hexagon: PowerPoint.Shape = shapes.addGeometricShape(PowerPoint.GeometricShapeType.hexagon, shapeOptions); hexagon.name = "Hexagon"; await context.sync(); }); +PowerPoint.ShapeAutoSize:enum: + - >- + // Link to full sample: + https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/shapes/shapes.yaml + + + // This function gets the collection of shapes on the first slide, + + // and adds a brace pair, {}, to the collection, while specifying its + + // location and size. Then it names the shape, sets its text and font + + // color, and centers it inside the braces. + + await PowerPoint.run(async (context) => { + const shapes: PowerPoint.ShapeCollection = context.presentation.slides.getItemAt(0).shapes; + const braces: PowerPoint.Shape = shapes.addGeometricShape(PowerPoint.GeometricShapeType.bracePair, { + left: 100, + top: 400, + height: 50, + width: 150, + }); + braces.name = "Braces"; + braces.textFrame.textRange.text = "Shape text"; + braces.textFrame.textRange.font.color = "purple"; + braces.textFrame.textRange.font.underline = PowerPoint.ShapeFontUnderlineStyle.single; + braces.textFrame.verticalAlignment = PowerPoint.TextVerticalAlignment.middleCentered; + braces.textFrame.autoSizeSetting = PowerPoint.ShapeAutoSize.autoSizeShapeToFitText; + + return context.sync(); + }); PowerPoint.ShapeCollection:class: - >- // Link to full sample: @@ -17268,7 +17300,7 @@ PowerPoint.ShapeCollection#addGeometricShape:member(1): left: 100, top: 100, height: 150, - width: 150 + width: 150, }; const hexagon: PowerPoint.Shape = shapes.addGeometricShape(PowerPoint.GeometricShapeType.hexagon, shapeOptions); hexagon.name = "Hexagon"; @@ -17322,13 +17354,12 @@ PowerPoint.ShapeCollection#addLine:member(1): // For a line, left and top are the coordinates of the start point, // while height and width are the coordinates of the end point. - const line: PowerPoint.Shape = shapes.addLine(PowerPoint.ConnectorType.straight, - { - left: 400, - top: 200, - height: 20, - width: 150 - }); + const line: PowerPoint.Shape = shapes.addLine(PowerPoint.ConnectorType.straight, { + left: 400, + top: 200, + height: 20, + width: 150, + }); line.name = "StraightLine"; await context.sync(); @@ -17362,13 +17393,12 @@ PowerPoint.ShapeCollection#addTextBox:member(1): await PowerPoint.run(async (context) => { const shapes: PowerPoint.ShapeCollection = context.presentation.slides.getItemAt(0).shapes; - const textbox: PowerPoint.Shape = shapes.addTextBox("Hello!", - { - left: 100, - top: 300, - height: 300, - width: 450 - }); + const textbox: PowerPoint.Shape = shapes.addTextBox("Hello!", { + left: 100, + top: 300, + height: 300, + width: 450, + }); textbox.name = "Textbox"; return context.sync(); @@ -17517,9 +17547,11 @@ PowerPoint.ShapeFill#setSolidColor:member(1): await PowerPoint.run(async (context) => { const shapes: PowerPoint.ShapeScopedCollection = context.presentation.getSelectedShapes(); const shapeCount = shapes.getCount(); - shapes.load("items"); + shapes.load("items/fill/type"); await context.sync(); shapes.items.map((shape) => { + const shapeFillType = shape.fill.type as PowerPoint.ShapeFillType; + console.log(`Shape ID ${shape.id} original fill type: ${shapeFillType}`); shape.fill.setSolidColor("red"); }); await context.sync(); @@ -17541,7 +17573,7 @@ PowerPoint.ShapeFill#foregroundColor:member: const minNewShapeHeight = 50; for (let i = 0; i < 20; i++) { const rectangle: PowerPoint.Shape = currentSlide.shapes.addGeometricShape( - PowerPoint.GeometricShapeType.rectangle + PowerPoint.GeometricShapeType.rectangle, ); rectangle.height = getRandomBetween(minNewShapeWidth, maxNewShapeWidth); rectangle.width = getRandomBetween(minNewShapeHeight, maxNewShapeHeight); @@ -17576,6 +17608,46 @@ PowerPoint.ShapeFill#transparency:member: }); await context.sync(); }); +PowerPoint.ShapeFill#type:member: + - >- + // Link to full sample: + https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/shapes/get-set-shapes.yaml + + + // Changes the selected shapes fill color to red. + + await PowerPoint.run(async (context) => { + const shapes: PowerPoint.ShapeScopedCollection = context.presentation.getSelectedShapes(); + const shapeCount = shapes.getCount(); + shapes.load("items/fill/type"); + await context.sync(); + shapes.items.map((shape) => { + const shapeFillType = shape.fill.type as PowerPoint.ShapeFillType; + console.log(`Shape ID ${shape.id} original fill type: ${shapeFillType}`); + shape.fill.setSolidColor("red"); + }); + await context.sync(); + }); +PowerPoint.ShapeFillType:enum: + - >- + // Link to full sample: + https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/shapes/get-set-shapes.yaml + + + // Changes the selected shapes fill color to red. + + await PowerPoint.run(async (context) => { + const shapes: PowerPoint.ShapeScopedCollection = context.presentation.getSelectedShapes(); + const shapeCount = shapes.getCount(); + shapes.load("items/fill/type"); + await context.sync(); + shapes.items.map((shape) => { + const shapeFillType = shape.fill.type as PowerPoint.ShapeFillType; + console.log(`Shape ID ${shape.id} original fill type: ${shapeFillType}`); + shape.fill.setSolidColor("red"); + }); + await context.sync(); + }); PowerPoint.ShapeFont:class: - >- // Link to full sample: @@ -17602,6 +17674,68 @@ PowerPoint.ShapeFont#color:member: textRange.font.color = "green"; await context.sync(); }); +PowerPoint.ShapeFont#underline:member: + - >- + // Link to full sample: + https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/shapes/shapes.yaml + + + // This function gets the collection of shapes on the first slide, + + // and adds a brace pair, {}, to the collection, while specifying its + + // location and size. Then it names the shape, sets its text and font + + // color, and centers it inside the braces. + + await PowerPoint.run(async (context) => { + const shapes: PowerPoint.ShapeCollection = context.presentation.slides.getItemAt(0).shapes; + const braces: PowerPoint.Shape = shapes.addGeometricShape(PowerPoint.GeometricShapeType.bracePair, { + left: 100, + top: 400, + height: 50, + width: 150, + }); + braces.name = "Braces"; + braces.textFrame.textRange.text = "Shape text"; + braces.textFrame.textRange.font.color = "purple"; + braces.textFrame.textRange.font.underline = PowerPoint.ShapeFontUnderlineStyle.single; + braces.textFrame.verticalAlignment = PowerPoint.TextVerticalAlignment.middleCentered; + braces.textFrame.autoSizeSetting = PowerPoint.ShapeAutoSize.autoSizeShapeToFitText; + + return context.sync(); + }); +PowerPoint.ShapeFontUnderlineStyle:enum: + - >- + // Link to full sample: + https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/shapes/shapes.yaml + + + // This function gets the collection of shapes on the first slide, + + // and adds a brace pair, {}, to the collection, while specifying its + + // location and size. Then it names the shape, sets its text and font + + // color, and centers it inside the braces. + + await PowerPoint.run(async (context) => { + const shapes: PowerPoint.ShapeCollection = context.presentation.slides.getItemAt(0).shapes; + const braces: PowerPoint.Shape = shapes.addGeometricShape(PowerPoint.GeometricShapeType.bracePair, { + left: 100, + top: 400, + height: 50, + width: 150, + }); + braces.name = "Braces"; + braces.textFrame.textRange.text = "Shape text"; + braces.textFrame.textRange.font.color = "purple"; + braces.textFrame.textRange.font.underline = PowerPoint.ShapeFontUnderlineStyle.single; + braces.textFrame.verticalAlignment = PowerPoint.TextVerticalAlignment.middleCentered; + braces.textFrame.autoSizeSetting = PowerPoint.ShapeAutoSize.autoSizeShapeToFitText; + + return context.sync(); + }); PowerPoint.ShapeGroup:class: - >- // Link to full sample: @@ -17742,9 +17876,11 @@ PowerPoint.ShapeScopedCollection:class: await PowerPoint.run(async (context) => { const shapes: PowerPoint.ShapeScopedCollection = context.presentation.getSelectedShapes(); const shapeCount = shapes.getCount(); - shapes.load("items"); + shapes.load("items/fill/type"); await context.sync(); shapes.items.map((shape) => { + const shapeFillType = shape.fill.type as PowerPoint.ShapeFillType; + console.log(`Shape ID ${shape.id} original fill type: ${shapeFillType}`); shape.fill.setSolidColor("red"); }); await context.sync(); @@ -17971,7 +18107,7 @@ PowerPoint.Slide#setSelectedShapes:member(1): shape2.load("id"); await context.sync(); - console.log(`IDs: ${shape1.id}, ${shape2.id}`) + console.log(`IDs: ${shape1.id}, ${shape2.id}`); slide1.setSelectedShapes([shape1.id, shape2.id]); await context.sync(); }); @@ -19354,6 +19490,37 @@ PowerPoint.TextFrame:class: textRange10.setSelected(); await context.sync(); }); +PowerPoint.TextFrame#autoSizeSetting:member: + - >- + // Link to full sample: + https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/shapes/shapes.yaml + + + // This function gets the collection of shapes on the first slide, + + // and adds a brace pair, {}, to the collection, while specifying its + + // location and size. Then it names the shape, sets its text and font + + // color, and centers it inside the braces. + + await PowerPoint.run(async (context) => { + const shapes: PowerPoint.ShapeCollection = context.presentation.slides.getItemAt(0).shapes; + const braces: PowerPoint.Shape = shapes.addGeometricShape(PowerPoint.GeometricShapeType.bracePair, { + left: 100, + top: 400, + height: 50, + width: 150, + }); + braces.name = "Braces"; + braces.textFrame.textRange.text = "Shape text"; + braces.textFrame.textRange.font.color = "purple"; + braces.textFrame.textRange.font.underline = PowerPoint.ShapeFontUnderlineStyle.single; + braces.textFrame.verticalAlignment = PowerPoint.TextVerticalAlignment.middleCentered; + braces.textFrame.autoSizeSetting = PowerPoint.ShapeAutoSize.autoSizeShapeToFitText; + + return context.sync(); + }); PowerPoint.TextRange:class: - >- // Link to full sample: @@ -19494,15 +19661,17 @@ PowerPoint.TextVerticalAlignment:enum: await PowerPoint.run(async (context) => { const shapes: PowerPoint.ShapeCollection = context.presentation.slides.getItemAt(0).shapes; const braces: PowerPoint.Shape = shapes.addGeometricShape(PowerPoint.GeometricShapeType.bracePair, { - left: 100, - top: 400, - height: 50, - width: 150 - }); + left: 100, + top: 400, + height: 50, + width: 150, + }); braces.name = "Braces"; braces.textFrame.textRange.text = "Shape text"; braces.textFrame.textRange.font.color = "purple"; + braces.textFrame.textRange.font.underline = PowerPoint.ShapeFontUnderlineStyle.single; braces.textFrame.verticalAlignment = PowerPoint.TextVerticalAlignment.middleCentered; + braces.textFrame.autoSizeSetting = PowerPoint.ShapeAutoSize.autoSizeShapeToFitText; return context.sync(); }); From 94ead3b11feeae4c9c7a7d17533ca1d96ec7947b Mon Sep 17 00:00:00 2001 From: Elizabeth Samuel Date: Wed, 12 Nov 2025 13:37:48 -0800 Subject: [PATCH 2/3] Refine text ranges HTML --- samples/powerpoint/shapes/shapes.yaml | 2 +- .../powerpoint/text/get-set-textrange.yaml | 28 +++++++++++-------- snippet-extractor-output/snippets.yaml | 22 +++++++++------ 3 files changed, 32 insertions(+), 20 deletions(-) diff --git a/samples/powerpoint/shapes/shapes.yaml b/samples/powerpoint/shapes/shapes.yaml index a82cb7a5..d830e989 100644 --- a/samples/powerpoint/shapes/shapes.yaml +++ b/samples/powerpoint/shapes/shapes.yaml @@ -115,7 +115,7 @@ script: braces.name = "Braces"; braces.textFrame.textRange.text = "Shape text"; braces.textFrame.textRange.font.color = "purple"; - braces.textFrame.textRange.font.underline = PowerPoint.ShapeFontUnderlineStyle.single; + braces.textFrame.textRange.font.underline = PowerPoint.ShapeFontUnderlineStyle.heavy; braces.textFrame.verticalAlignment = PowerPoint.TextVerticalAlignment.middleCentered; braces.textFrame.autoSizeSetting = PowerPoint.ShapeAutoSize.autoSizeShapeToFitText; diff --git a/samples/powerpoint/text/get-set-textrange.yaml b/samples/powerpoint/text/get-set-textrange.yaml index f18a6bea..47eaed51 100644 --- a/samples/powerpoint/text/get-set-textrange.yaml +++ b/samples/powerpoint/text/get-set-textrange.yaml @@ -6,7 +6,7 @@ host: POWERPOINT api_set: PowerPointApi: '1.5' script: - content: |- + content: | document.getElementById("getSelectedTextRange").addEventListener("click", () => tryCatch(getSelectedTextRange)); document.getElementById("setSelectedTextRange").addEventListener("click", () => tryCatch(setSelectedTextRange)); document.getElementById("changeColor").addEventListener("click", () => tryCatch(changeColor)); @@ -45,7 +45,7 @@ script: finalTable += "Length" + textRange.length + ""; finalTable += ""; const outputSpan = document.getElementById("outputSpan"); - outputSpan.innerHTML = "" + outputSpan.innerHTML = ""; outputSpan.innerHTML += finalTable; }); } @@ -132,7 +132,10 @@ script: await PowerPoint.run(async (context) => { const slide1: PowerPoint.Slide = context.presentation.slides.getItem(savedTextSlideSelection[0]); const shape1: PowerPoint.Shape = slide1.shapes.getItem(savedTextShapeSelection[0]); - const textRange: PowerPoint.TextRange = shape1.textFrame.textRange.getSubstring(savedTextTextRangeStart, savedTextTextRangeLength); + const textRange: PowerPoint.TextRange = shape1.textFrame.textRange.getSubstring( + savedTextTextRangeStart, + savedTextTextRangeLength, + ); textRange.setSelected(); await context.sync(); }); @@ -151,16 +154,19 @@ script: template: content: |-
-

This sample shows how to get selected text, and how to select specific text.

+

This sample shows how to get selected text, and how to select specific text.

-

Try it out

- -
-
-
-
- +

Try it out

+

Before choosing the Get selected text range button, add text to a slide and select some text.

+ +
+
+
+
+

Output

+ +

Output from choosing the Get selected text range button is displayed in this section.

language: html style: diff --git a/snippet-extractor-output/snippets.yaml b/snippet-extractor-output/snippets.yaml index aaf3b704..3728ad75 100644 --- a/snippet-extractor-output/snippets.yaml +++ b/snippet-extractor-output/snippets.yaml @@ -16724,7 +16724,7 @@ PowerPoint.Presentation#getSelectedTextRange:member(1): finalTable += "Length" + textRange.length + ""; finalTable += ""; const outputSpan = document.getElementById("outputSpan"); - outputSpan.innerHTML = "" + outputSpan.innerHTML = ""; outputSpan.innerHTML += finalTable; }); - >- @@ -16737,7 +16737,10 @@ PowerPoint.Presentation#getSelectedTextRange:member(1): await PowerPoint.run(async (context) => { const slide1: PowerPoint.Slide = context.presentation.slides.getItem(savedTextSlideSelection[0]); const shape1: PowerPoint.Shape = slide1.shapes.getItem(savedTextShapeSelection[0]); - const textRange: PowerPoint.TextRange = shape1.textFrame.textRange.getSubstring(savedTextTextRangeStart, savedTextTextRangeLength); + const textRange: PowerPoint.TextRange = shape1.textFrame.textRange.getSubstring( + savedTextTextRangeStart, + savedTextTextRangeLength, + ); textRange.setSelected(); await context.sync(); }); @@ -17254,7 +17257,7 @@ PowerPoint.ShapeAutoSize:enum: braces.name = "Braces"; braces.textFrame.textRange.text = "Shape text"; braces.textFrame.textRange.font.color = "purple"; - braces.textFrame.textRange.font.underline = PowerPoint.ShapeFontUnderlineStyle.single; + braces.textFrame.textRange.font.underline = PowerPoint.ShapeFontUnderlineStyle.heavy; braces.textFrame.verticalAlignment = PowerPoint.TextVerticalAlignment.middleCentered; braces.textFrame.autoSizeSetting = PowerPoint.ShapeAutoSize.autoSizeShapeToFitText; @@ -17699,7 +17702,7 @@ PowerPoint.ShapeFont#underline:member: braces.name = "Braces"; braces.textFrame.textRange.text = "Shape text"; braces.textFrame.textRange.font.color = "purple"; - braces.textFrame.textRange.font.underline = PowerPoint.ShapeFontUnderlineStyle.single; + braces.textFrame.textRange.font.underline = PowerPoint.ShapeFontUnderlineStyle.heavy; braces.textFrame.verticalAlignment = PowerPoint.TextVerticalAlignment.middleCentered; braces.textFrame.autoSizeSetting = PowerPoint.ShapeAutoSize.autoSizeShapeToFitText; @@ -17730,7 +17733,7 @@ PowerPoint.ShapeFontUnderlineStyle:enum: braces.name = "Braces"; braces.textFrame.textRange.text = "Shape text"; braces.textFrame.textRange.font.color = "purple"; - braces.textFrame.textRange.font.underline = PowerPoint.ShapeFontUnderlineStyle.single; + braces.textFrame.textRange.font.underline = PowerPoint.ShapeFontUnderlineStyle.heavy; braces.textFrame.verticalAlignment = PowerPoint.TextVerticalAlignment.middleCentered; braces.textFrame.autoSizeSetting = PowerPoint.ShapeAutoSize.autoSizeShapeToFitText; @@ -19515,7 +19518,7 @@ PowerPoint.TextFrame#autoSizeSetting:member: braces.name = "Braces"; braces.textFrame.textRange.text = "Shape text"; braces.textFrame.textRange.font.color = "purple"; - braces.textFrame.textRange.font.underline = PowerPoint.ShapeFontUnderlineStyle.single; + braces.textFrame.textRange.font.underline = PowerPoint.ShapeFontUnderlineStyle.heavy; braces.textFrame.verticalAlignment = PowerPoint.TextVerticalAlignment.middleCentered; braces.textFrame.autoSizeSetting = PowerPoint.ShapeAutoSize.autoSizeShapeToFitText; @@ -19591,7 +19594,10 @@ PowerPoint.TextRange#setSelected:member(1): await PowerPoint.run(async (context) => { const slide1: PowerPoint.Slide = context.presentation.slides.getItem(savedTextSlideSelection[0]); const shape1: PowerPoint.Shape = slide1.shapes.getItem(savedTextShapeSelection[0]); - const textRange: PowerPoint.TextRange = shape1.textFrame.textRange.getSubstring(savedTextTextRangeStart, savedTextTextRangeLength); + const textRange: PowerPoint.TextRange = shape1.textFrame.textRange.getSubstring( + savedTextTextRangeStart, + savedTextTextRangeLength, + ); textRange.setSelected(); await context.sync(); }); @@ -19669,7 +19675,7 @@ PowerPoint.TextVerticalAlignment:enum: braces.name = "Braces"; braces.textFrame.textRange.text = "Shape text"; braces.textFrame.textRange.font.color = "purple"; - braces.textFrame.textRange.font.underline = PowerPoint.ShapeFontUnderlineStyle.single; + braces.textFrame.textRange.font.underline = PowerPoint.ShapeFontUnderlineStyle.heavy; braces.textFrame.verticalAlignment = PowerPoint.TextVerticalAlignment.middleCentered; braces.textFrame.autoSizeSetting = PowerPoint.ShapeAutoSize.autoSizeShapeToFitText; From dcebeb1b5145e3c6e046d2947cdc533fa171ddfa Mon Sep 17 00:00:00 2001 From: Elizabeth Samuel Date: Wed, 12 Nov 2025 15:45:44 -0800 Subject: [PATCH 3/3] Update TextRange snippet to include ParagraphFormat and BulletFormat references --- playlists-prod/powerpoint.yaml | 2 +- playlists/powerpoint.yaml | 2 +- .../powerpoint/text/get-set-textrange.yaml | 43 +++++- snippet-extractor-metadata/powerpoint.xlsx | Bin 16910 -> 17009 bytes snippet-extractor-output/snippets.yaml | 145 ++++++++++++++++-- 5 files changed, 167 insertions(+), 25 deletions(-) diff --git a/playlists-prod/powerpoint.yaml b/playlists-prod/powerpoint.yaml index 910edb0a..1864b779 100644 --- a/playlists-prod/powerpoint.yaml +++ b/playlists-prod/powerpoint.yaml @@ -186,4 +186,4 @@ https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/text/get-set-textrange.yaml group: Text api_set: - PowerPointApi: '1.5' \ No newline at end of file + PowerPointApi: '1.8' \ No newline at end of file diff --git a/playlists/powerpoint.yaml b/playlists/powerpoint.yaml index 810bc5be..46985f3b 100644 --- a/playlists/powerpoint.yaml +++ b/playlists/powerpoint.yaml @@ -186,4 +186,4 @@ https://raw.githubusercontent.com/OfficeDev/office-js-snippets/main/samples/powerpoint/text/get-set-textrange.yaml group: Text api_set: - PowerPointApi: '1.5' + PowerPointApi: '1.8' diff --git a/samples/powerpoint/text/get-set-textrange.yaml b/samples/powerpoint/text/get-set-textrange.yaml index 47eaed51..810332ba 100644 --- a/samples/powerpoint/text/get-set-textrange.yaml +++ b/samples/powerpoint/text/get-set-textrange.yaml @@ -4,7 +4,7 @@ name: Work with text range selections description: Get, set, load, and save text range selections. host: POWERPOINT api_set: - PowerPointApi: '1.5' + PowerPointApi: '1.8' script: content: | document.getElementById("getSelectedTextRange").addEventListener("click", () => tryCatch(getSelectedTextRange)); @@ -12,6 +12,9 @@ script: document.getElementById("changeColor").addEventListener("click", () => tryCatch(changeColor)); document.getElementById("saveTextSelection").addEventListener("click", () => tryCatch(saveTextSelection)); document.getElementById("loadTextSelection").addEventListener("click", () => tryCatch(loadTextSelection)); + document + .getElementById("getSelectedTextRangeProperties") + .addEventListener("click", () => tryCatch(getSelectedTextRangeComplexProperties)); async function getSelectedTextRange() { // Gets the selected text range and prints data about the range on the task pane. @@ -37,7 +40,7 @@ script: txtExplained = txtExplained.replace(/\v/g, "VV"); let finalTable = ""; finalTable += - "
"; + "
IndexId
"; finalTable += ""; finalTable += ""; finalTable += ""; @@ -141,6 +144,33 @@ script: }); } + async function getSelectedTextRangeComplexProperties() { + // Gets navigational (complex) properties of the selected text range. + await PowerPoint.run(async (context) => { + const textRange: PowerPoint.TextRange = context.presentation.getSelectedTextRange(); + textRange.load("font,paragraphFormat/bulletFormat,paragraphFormat/horizontalAlignment"); + await context.sync(); + + console.log("Font properties of selected text range:"); + console.log(`\tallCaps: ${textRange.font.allCaps}`); + console.log(`\tbold: ${textRange.font.bold}`); + console.log(`\tcolor: ${textRange.font.color}`); + console.log(`\tdoubleStrikethrough: ${textRange.font.doubleStrikethrough}`); + console.log(`\titalic: ${textRange.font.italic}`); + console.log(`\tname: ${textRange.font.name}`); + console.log(`\tsize: ${textRange.font.size}`); + console.log(`\tsmallCaps: ${textRange.font.smallCaps}`); + console.log(`\tstrikethrough: ${textRange.font.strikethrough}`); + console.log(`\tsubscript: ${textRange.font.subscript}`); + console.log(`\tsuperscript: ${textRange.font.superscript}`); + console.log(`\tunderline: ${textRange.font.underline}`); + + console.log("Paragraph format properties of selected text range:"); + console.log(`\tbulletFormat.visible: ${textRange.paragraphFormat.bulletFormat.visible}`); + console.log(`\thorizontalAlignment: ${textRange.paragraphFormat.horizontalAlignment}`); + }); + } + /** Default helper for invoking an action and handling errors. */ async function tryCatch(callback) { try { @@ -160,10 +190,11 @@ template:

Try it out

Before choosing the Get selected text range button, add text to a slide and select some text.

-
-
-
-
+ + + + +

Output

Output from choosing the Get selected text range button is displayed in this section.

diff --git a/snippet-extractor-metadata/powerpoint.xlsx b/snippet-extractor-metadata/powerpoint.xlsx index 56a24f0941217478a13ca6bb149041af4b475304..27d2f9dba0f8debe277ad83d17b2a3f4ce478887 100644 GIT binary patch delta 9005 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 NhBOn3qr^Wd{|i7h{&4^R delta 8926 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 diff --git a/snippet-extractor-output/snippets.yaml b/snippet-extractor-output/snippets.yaml index 3728ad75..91d9201b 100644 --- a/snippet-extractor-output/snippets.yaml +++ b/snippet-extractor-output/snippets.yaml @@ -15987,6 +15987,37 @@ PowerPoint.BorderProperties#weight:member: }); await context.sync(); }); +PowerPoint.BulletFormat:class: + - >- + // Link to full sample: + https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/text/get-set-textrange.yaml + + + // Gets navigational (complex) properties of the selected text range. + + await PowerPoint.run(async (context) => { + const textRange: PowerPoint.TextRange = context.presentation.getSelectedTextRange(); + textRange.load("font,paragraphFormat/bulletFormat,paragraphFormat/horizontalAlignment"); + await context.sync(); + + console.log("Font properties of selected text range:"); + console.log(`\tallCaps: ${textRange.font.allCaps}`); + console.log(`\tbold: ${textRange.font.bold}`); + console.log(`\tcolor: ${textRange.font.color}`); + console.log(`\tdoubleStrikethrough: ${textRange.font.doubleStrikethrough}`); + console.log(`\titalic: ${textRange.font.italic}`); + console.log(`\tname: ${textRange.font.name}`); + console.log(`\tsize: ${textRange.font.size}`); + console.log(`\tsmallCaps: ${textRange.font.smallCaps}`); + console.log(`\tstrikethrough: ${textRange.font.strikethrough}`); + console.log(`\tsubscript: ${textRange.font.subscript}`); + console.log(`\tsuperscript: ${textRange.font.superscript}`); + console.log(`\tunderline: ${textRange.font.underline}`); + + console.log("Paragraph format properties of selected text range:"); + console.log(`\tbulletFormat.visible: ${textRange.paragraphFormat.bulletFormat.visible}`); + console.log(`\thorizontalAlignment: ${textRange.paragraphFormat.horizontalAlignment}`); + }); PowerPoint.ConnectorType:enum: - >- // Link to full sample: @@ -16488,6 +16519,37 @@ PowerPoint.InsertSlideOptions:interface: presentation.insertSlidesFromBase64(chosenFileBase64, insertOptions); await context.sync(); }); +PowerPoint.ParagraphFormat:class: + - >- + // Link to full sample: + https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/text/get-set-textrange.yaml + + + // Gets navigational (complex) properties of the selected text range. + + await PowerPoint.run(async (context) => { + const textRange: PowerPoint.TextRange = context.presentation.getSelectedTextRange(); + textRange.load("font,paragraphFormat/bulletFormat,paragraphFormat/horizontalAlignment"); + await context.sync(); + + console.log("Font properties of selected text range:"); + console.log(`\tallCaps: ${textRange.font.allCaps}`); + console.log(`\tbold: ${textRange.font.bold}`); + console.log(`\tcolor: ${textRange.font.color}`); + console.log(`\tdoubleStrikethrough: ${textRange.font.doubleStrikethrough}`); + console.log(`\titalic: ${textRange.font.italic}`); + console.log(`\tname: ${textRange.font.name}`); + console.log(`\tsize: ${textRange.font.size}`); + console.log(`\tsmallCaps: ${textRange.font.smallCaps}`); + console.log(`\tstrikethrough: ${textRange.font.strikethrough}`); + console.log(`\tsubscript: ${textRange.font.subscript}`); + console.log(`\tsuperscript: ${textRange.font.superscript}`); + console.log(`\tunderline: ${textRange.font.underline}`); + + console.log("Paragraph format properties of selected text range:"); + console.log(`\tbulletFormat.visible: ${textRange.paragraphFormat.bulletFormat.visible}`); + console.log(`\thorizontalAlignment: ${textRange.paragraphFormat.horizontalAlignment}`); + }); PowerPoint.ParagraphHorizontalAlignment:enum: - >- // Link to full sample: @@ -16716,7 +16778,7 @@ PowerPoint.Presentation#getSelectedTextRange:member(1): txtExplained = txtExplained.replace(/\v/g, "VV"); let finalTable = ""; finalTable += - "
IndexId
Raw" + textRange.text + "
Html" + txtHtml + "
Exp" + txtExplained + "
"; + "
IndexId
"; finalTable += ""; finalTable += ""; finalTable += ""; @@ -17657,12 +17719,30 @@ PowerPoint.ShapeFont:class: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/text/get-set-textrange.yaml - // Sets the color of the selected text range to green. + // Gets navigational (complex) properties of the selected text range. await PowerPoint.run(async (context) => { const textRange: PowerPoint.TextRange = context.presentation.getSelectedTextRange(); - textRange.font.color = "green"; - await context.sync(); + textRange.load("font,paragraphFormat/bulletFormat,paragraphFormat/horizontalAlignment"); + await context.sync(); + + console.log("Font properties of selected text range:"); + console.log(`\tallCaps: ${textRange.font.allCaps}`); + console.log(`\tbold: ${textRange.font.bold}`); + console.log(`\tcolor: ${textRange.font.color}`); + console.log(`\tdoubleStrikethrough: ${textRange.font.doubleStrikethrough}`); + console.log(`\titalic: ${textRange.font.italic}`); + console.log(`\tname: ${textRange.font.name}`); + console.log(`\tsize: ${textRange.font.size}`); + console.log(`\tsmallCaps: ${textRange.font.smallCaps}`); + console.log(`\tstrikethrough: ${textRange.font.strikethrough}`); + console.log(`\tsubscript: ${textRange.font.subscript}`); + console.log(`\tsuperscript: ${textRange.font.superscript}`); + console.log(`\tunderline: ${textRange.font.underline}`); + + console.log("Paragraph format properties of selected text range:"); + console.log(`\tbulletFormat.visible: ${textRange.paragraphFormat.bulletFormat.visible}`); + console.log(`\thorizontalAlignment: ${textRange.paragraphFormat.horizontalAlignment}`); }); PowerPoint.ShapeFont#color:member: - >- @@ -19530,19 +19610,6 @@ PowerPoint.TextRange:class: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/text/get-set-textrange.yaml - // Sets the color of the selected text range to green. - - await PowerPoint.run(async (context) => { - const textRange: PowerPoint.TextRange = context.presentation.getSelectedTextRange(); - textRange.font.color = "green"; - await context.sync(); - }); -PowerPoint.TextRange#font:member: - - >- - // Link to full sample: - https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/text/get-set-textrange.yaml - - // Sets the color of the selected text range to green. await PowerPoint.run(async (context) => { @@ -19601,6 +19668,50 @@ PowerPoint.TextRange#setSelected:member(1): textRange.setSelected(); await context.sync(); }); +PowerPoint.TextRange#font:member: + - >- + // Link to full sample: + https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/text/get-set-textrange.yaml + + + // Sets the color of the selected text range to green. + + await PowerPoint.run(async (context) => { + const textRange: PowerPoint.TextRange = context.presentation.getSelectedTextRange(); + textRange.font.color = "green"; + await context.sync(); + }); +PowerPoint.TextRange#paragraphFormat:member: + - >- + // Link to full sample: + https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/text/get-set-textrange.yaml + + + // Gets navigational (complex) properties of the selected text range. + + await PowerPoint.run(async (context) => { + const textRange: PowerPoint.TextRange = context.presentation.getSelectedTextRange(); + textRange.load("font,paragraphFormat/bulletFormat,paragraphFormat/horizontalAlignment"); + await context.sync(); + + console.log("Font properties of selected text range:"); + console.log(`\tallCaps: ${textRange.font.allCaps}`); + console.log(`\tbold: ${textRange.font.bold}`); + console.log(`\tcolor: ${textRange.font.color}`); + console.log(`\tdoubleStrikethrough: ${textRange.font.doubleStrikethrough}`); + console.log(`\titalic: ${textRange.font.italic}`); + console.log(`\tname: ${textRange.font.name}`); + console.log(`\tsize: ${textRange.font.size}`); + console.log(`\tsmallCaps: ${textRange.font.smallCaps}`); + console.log(`\tstrikethrough: ${textRange.font.strikethrough}`); + console.log(`\tsubscript: ${textRange.font.subscript}`); + console.log(`\tsuperscript: ${textRange.font.superscript}`); + console.log(`\tunderline: ${textRange.font.underline}`); + + console.log("Paragraph format properties of selected text range:"); + console.log(`\tbulletFormat.visible: ${textRange.paragraphFormat.bulletFormat.visible}`); + console.log(`\thorizontalAlignment: ${textRange.paragraphFormat.horizontalAlignment}`); + }); PowerPoint.TextRun:interface: - >- // Link to full sample:
IndexId
Raw" + textRange.text + "
Html" + txtHtml + "
Exp" + txtExplained + "