Merge branch 'master' into development_aamir
# Conflicts: # assets/langs/ar-SA.json # assets/langs/en-US.json # lib/generated/locale_keys.g.dartmerge-requests/41/head
						commit
						6d5b2323ac
					
				| @ -1,3 +1,3 @@ | ||||
| org.gradle.jvmargs=-Xmx1536M | ||||
| org.gradle.jvmargs=-Xmx1836M | ||||
| android.useAndroidX=true | ||||
| android.enableJetifier=true | ||||
|  | ||||
| @ -0,0 +1,72 @@ | ||||
| <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="49.66" height="111.094" viewBox="0 0 49.66 111.094"> | ||||
|   <defs> | ||||
|     <clipPath id="clip-path"> | ||||
|       <rect id="Rectangle_17685" data-name="Rectangle 17685" width="111.63" height="15.945" transform="translate(0 0)" fill="none"/> | ||||
|     </clipPath> | ||||
|     <clipPath id="clip-path-2"> | ||||
|       <rect id="Rectangle_17626" data-name="Rectangle 17626" width="111.63" height="15.947" transform="translate(0 0)" fill="none"/> | ||||
|     </clipPath> | ||||
|     <clipPath id="clip-path-4"> | ||||
|       <rect id="Rectangle_17684" data-name="Rectangle 17684" width="111.63" height="15.894" transform="translate(0 0)" fill="none"/> | ||||
|     </clipPath> | ||||
|     <clipPath id="clip-path-5"> | ||||
|       <rect id="Rectangle_17683" data-name="Rectangle 17683" width="111.63" height="15.748" transform="translate(0 0)" fill="none"/> | ||||
|     </clipPath> | ||||
|   </defs> | ||||
|   <g id="Group_8908" data-name="Group 8908" transform="translate(-84.633 11.461)"> | ||||
|     <g id="Group_8886" data-name="Group 8886" transform="matrix(0.309, -0.951, 0.951, 0.309, 84.633, 94.705)"> | ||||
|       <g id="Group_8885" data-name="Group 8885" transform="translate(0)" clip-path="url(#clip-path)"> | ||||
|         <rect id="Rectangle_17623" data-name="Rectangle 17623" width="111.63" height="15.948" transform="translate(0 0)" fill="#407bff"/> | ||||
|         <g id="Group_8879" data-name="Group 8879" transform="translate(0 0)"> | ||||
|           <g id="Group_8878" data-name="Group 8878" clip-path="url(#clip-path-2)"> | ||||
|             <g id="Group_8877" data-name="Group 8877" transform="translate(0 0)" style="isolation: isolate"> | ||||
|               <g id="Group_8876" data-name="Group 8876" transform="translate(0)"> | ||||
|                 <g id="Group_8875" data-name="Group 8875" clip-path="url(#clip-path-2)"> | ||||
|                   <rect id="Rectangle_17624" data-name="Rectangle 17624" width="111.63" height="15.894" transform="translate(0 0)" fill="#fff"/> | ||||
|                 </g> | ||||
|               </g> | ||||
|             </g> | ||||
|           </g> | ||||
|         </g> | ||||
|         <rect id="Rectangle_17628" data-name="Rectangle 17628" width="7.973" height="7.973" transform="translate(0 7.974)" fill="#2e353a"/> | ||||
|         <rect id="Rectangle_17631" data-name="Rectangle 17631" width="7.974" height="7.973" transform="translate(7.973 0.001)" fill="#2e353a"/> | ||||
|         <rect id="Rectangle_17632" data-name="Rectangle 17632" width="7.974" height="7.974" transform="translate(15.947 7.973)" fill="#2e353a"/> | ||||
|         <rect id="Rectangle_17635" data-name="Rectangle 17635" width="7.973" height="7.973" transform="translate(23.921 0.001)" fill="#2e353a"/> | ||||
|         <rect id="Rectangle_17636" data-name="Rectangle 17636" width="7.974" height="7.974" transform="translate(31.894 7.973)" fill="#2e353a"/> | ||||
|         <rect id="Rectangle_17639" data-name="Rectangle 17639" width="7.974" height="7.973" transform="translate(39.868 0.001)" fill="#2e353a"/> | ||||
|         <rect id="Rectangle_17640" data-name="Rectangle 17640" width="7.974" height="7.974" transform="translate(47.842 7.973)" fill="#2e353a"/> | ||||
|         <rect id="Rectangle_17643" data-name="Rectangle 17643" width="7.974" height="7.973" transform="translate(55.815 0.001)" fill="#2e353a"/> | ||||
|         <rect id="Rectangle_17644" data-name="Rectangle 17644" width="7.974" height="7.974" transform="translate(63.788 7.973)" fill="#2e353a"/> | ||||
|         <rect id="Rectangle_17647" data-name="Rectangle 17647" width="7.973" height="7.973" transform="translate(71.762 0.001)" fill="#2e353a"/> | ||||
|         <rect id="Rectangle_17648" data-name="Rectangle 17648" width="7.974" height="7.974" transform="translate(79.736 7.973)" fill="#2e353a"/> | ||||
|         <rect id="Rectangle_17651" data-name="Rectangle 17651" width="7.973" height="7.973" transform="translate(87.71 0.001)" fill="#2e353a"/> | ||||
|         <rect id="Rectangle_17652" data-name="Rectangle 17652" width="7.974" height="7.974" transform="translate(95.683 7.973)" fill="#2e353a"/> | ||||
|         <rect id="Rectangle_17654" data-name="Rectangle 17654" width="7.974" height="7.973" transform="translate(103.656 0.001)" fill="#2e353a"/> | ||||
|         <g id="Group_8884" data-name="Group 8884" transform="translate(0 0)"> | ||||
|           <g id="Group_8883" data-name="Group 8883" clip-path="url(#clip-path-4)"> | ||||
|             <g id="Group_8882" data-name="Group 8882" transform="translate(0 0)" opacity="0.1" style="isolation: isolate"> | ||||
|               <g id="Group_8881" data-name="Group 8881" transform="translate(0)"> | ||||
|                 <g id="Group_8880" data-name="Group 8880" clip-path="url(#clip-path-5)"> | ||||
|                   <rect id="Rectangle_17656" data-name="Rectangle 17656" width="7.974" height="7.974" transform="translate(0 7.973)" fill="#fff"/> | ||||
|                   <rect id="Rectangle_17659" data-name="Rectangle 17659" width="7.974" height="7.974" transform="translate(7.974 0)" fill="#fff"/> | ||||
|                   <rect id="Rectangle_17660" data-name="Rectangle 17660" width="7.974" height="7.974" transform="translate(15.947 7.973)" fill="#fff"/> | ||||
|                   <rect id="Rectangle_17663" data-name="Rectangle 17663" width="7.974" height="7.974" transform="translate(23.921 0)" fill="#fff"/> | ||||
|                   <rect id="Rectangle_17664" data-name="Rectangle 17664" width="7.974" height="7.974" transform="translate(31.894 7.973)" fill="#fff"/> | ||||
|                   <rect id="Rectangle_17667" data-name="Rectangle 17667" width="7.974" height="7.974" transform="translate(39.868 0)" fill="#fff"/> | ||||
|                   <rect id="Rectangle_17668" data-name="Rectangle 17668" width="7.974" height="7.974" transform="translate(47.842 7.973)" fill="#fff"/> | ||||
|                   <rect id="Rectangle_17671" data-name="Rectangle 17671" width="7.974" height="7.974" transform="translate(55.815 0)" fill="#fff"/> | ||||
|                   <rect id="Rectangle_17672" data-name="Rectangle 17672" width="7.974" height="7.974" transform="translate(63.788 7.973)" fill="#fff"/> | ||||
|                   <rect id="Rectangle_17675" data-name="Rectangle 17675" width="7.974" height="7.974" transform="translate(71.762 0)" fill="#fff"/> | ||||
|                   <rect id="Rectangle_17676" data-name="Rectangle 17676" width="7.974" height="7.974" transform="translate(79.736 7.973)" fill="#fff"/> | ||||
|                   <rect id="Rectangle_17679" data-name="Rectangle 17679" width="7.974" height="7.974" transform="translate(87.71 0)" fill="#fff"/> | ||||
|                   <rect id="Rectangle_17680" data-name="Rectangle 17680" width="7.974" height="7.974" transform="translate(95.683 7.973)" fill="#fff"/> | ||||
|                   <rect id="Rectangle_17682" data-name="Rectangle 17682" width="7.974" height="7.974" transform="translate(103.656 0)" fill="#fff"/> | ||||
|                 </g> | ||||
|               </g> | ||||
|             </g> | ||||
|           </g> | ||||
|         </g> | ||||
|       </g> | ||||
|     </g> | ||||
|   </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 6.5 KiB | 
| @ -0,0 +1,223 @@ | ||||
| <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="111.471" height="81.697" viewBox="0 0 111.471 81.697"> | ||||
|   <defs> | ||||
|     <clipPath id="clip-path"> | ||||
|       <rect id="Rectangle_17532" data-name="Rectangle 17532" width="54.986" height="20.029" fill="none"/> | ||||
|     </clipPath> | ||||
|     <clipPath id="clip-path-2"> | ||||
|       <rect id="Rectangle_17534" data-name="Rectangle 17534" width="53.565" height="20.029" fill="none"/> | ||||
|     </clipPath> | ||||
|     <clipPath id="clip-path-5"> | ||||
|       <rect id="Rectangle_17611" data-name="Rectangle 17611" width="3.17" height="3.078" fill="none"/> | ||||
|     </clipPath> | ||||
|     <clipPath id="clip-path-6"> | ||||
|       <rect id="Rectangle_17612" data-name="Rectangle 17612" width="24.935" height="20.245" fill="none"/> | ||||
|     </clipPath> | ||||
|     <clipPath id="clip-path-7"> | ||||
|       <rect id="Rectangle_17613" data-name="Rectangle 17613" width="3.055" height="3.482" fill="none"/> | ||||
|     </clipPath> | ||||
|     <clipPath id="clip-path-8"> | ||||
|       <rect id="Rectangle_17614" data-name="Rectangle 17614" width="28.702" height="40.403" fill="none"/> | ||||
|     </clipPath> | ||||
|     <clipPath id="clip-path-9"> | ||||
|       <rect id="Rectangle_17615" data-name="Rectangle 17615" width="5.095" height="7.494" fill="none"/> | ||||
|     </clipPath> | ||||
|     <clipPath id="clip-path-10"> | ||||
|       <rect id="Rectangle_17616" data-name="Rectangle 17616" width="2.545" height="2.051" fill="none"/> | ||||
|     </clipPath> | ||||
|     <clipPath id="clip-path-11"> | ||||
|       <rect id="Rectangle_17617" data-name="Rectangle 17617" width="10.274" height="13.454" fill="none"/> | ||||
|     </clipPath> | ||||
|     <clipPath id="clip-path-12"> | ||||
|       <rect id="Rectangle_17619" data-name="Rectangle 17619" width="6.621" height="5.261" fill="none"/> | ||||
|     </clipPath> | ||||
|     <clipPath id="clip-path-13"> | ||||
|       <rect id="Rectangle_17620" data-name="Rectangle 17620" width="61.469" height="15.006" fill="none"/> | ||||
|     </clipPath> | ||||
|   </defs> | ||||
|   <g id="Group_8889" data-name="Group 8889" transform="translate(-0.31 -9.077)"> | ||||
|     <g id="Group_8902" data-name="Group 8902"> | ||||
|       <rect id="Rectangle_17523" data-name="Rectangle 17523" width="26.188" height="0.075" transform="translate(22.754 84.584)" fill="#ebebeb"/> | ||||
|       <g id="Group_8796" data-name="Group 8796" transform="translate(-14 -13.831)"> | ||||
|         <g id="Group_8903" data-name="Group 8903"> | ||||
|           <path id="Path_13976" data-name="Path 13976" d="M375.306,83.743l1.573-.7H389.2l2.8,5.96v1.567Z" transform="translate(-270.385 -58.043)" fill="#e0e0e0"/> | ||||
|           <rect id="Rectangle_17524" data-name="Rectangle 17524" width="1.229" height="49.47" transform="translate(114.478 30.231)" fill="#e0e0e0"/> | ||||
|           <path id="Path_13977" data-name="Path 13977" d="M392.3,92.514H378.694l-3.123-6.829h13.605Z" transform="translate(-270.576 -59.887)" fill="#f0f0f0"/> | ||||
|           <path id="Path_13978" data-name="Path 13978" d="M383.558,88.875c.321.7.022,1.271-.667,1.271a2.248,2.248,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-274.439 -61.228)" fill="#fafafa"/> | ||||
|           <path id="Path_13979" data-name="Path 13979" d="M394.938,88.875c.321.7.022,1.271-.667,1.271a2.247,2.247,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-282.637 -61.228)" fill="#fafafa"/> | ||||
|           <path id="Path_13980" data-name="Path 13980" d="M406.318,88.875c.321.7.022,1.271-.667,1.271a2.248,2.248,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-290.836 -61.228)" fill="#fafafa"/> | ||||
|           <path id="Path_13981" data-name="Path 13981" d="M417.7,88.875c.321.7.022,1.271-.667,1.271a2.247,2.247,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-299.034 -61.228)" fill="#fafafa"/> | ||||
|           <path id="Path_13982" data-name="Path 13982" d="M388.681,99.278c.321.7.022,1.271-.667,1.271a2.247,2.247,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-278.13 -68.499)" fill="#fafafa"/> | ||||
|           <path id="Path_13983" data-name="Path 13983" d="M400.061,99.278c.321.7.022,1.271-.667,1.271a2.247,2.247,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-286.328 -68.499)" fill="#fafafa"/> | ||||
|           <path id="Path_13984" data-name="Path 13984" d="M411.442,99.278c.321.7.022,1.271-.667,1.271a2.247,2.247,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-294.527 -68.499)" fill="#fafafa"/> | ||||
|           <path id="Path_13985" data-name="Path 13985" d="M422.821,99.278c.321.7.022,1.271-.667,1.271a2.247,2.247,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-302.725 -68.499)" fill="#fafafa"/> | ||||
|           <path id="Path_13986" data-name="Path 13986" d="M106.306,83.743l1.573-.7H120.2l2.8,5.96v1.567Z" transform="translate(-76.587 -58.043)" fill="#e0e0e0"/> | ||||
|           <rect id="Rectangle_17525" data-name="Rectangle 17525" width="1.229" height="49.47" transform="translate(39.276 30.231)" fill="#e0e0e0"/> | ||||
|           <path id="Path_13987" data-name="Path 13987" d="M123.3,92.514H109.694l-3.123-6.829h13.605Z" transform="translate(-76.778 -59.887)" fill="#f0f0f0"/> | ||||
|           <path id="Path_13988" data-name="Path 13988" d="M114.558,88.875c.321.7.022,1.271-.667,1.271a2.247,2.247,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-80.641 -61.228)" fill="#fafafa"/> | ||||
|           <path id="Path_13989" data-name="Path 13989" d="M125.939,88.875c.321.7.022,1.271-.667,1.271a2.247,2.247,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-88.84 -61.228)" fill="#fafafa"/> | ||||
|           <path id="Path_13990" data-name="Path 13990" d="M137.318,88.875c.321.7.022,1.271-.667,1.271a2.247,2.247,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-97.037 -61.228)" fill="#fafafa"/> | ||||
|           <path id="Path_13991" data-name="Path 13991" d="M148.7,88.875c.321.7.022,1.271-.667,1.271a2.247,2.247,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-105.236 -61.228)" fill="#fafafa"/> | ||||
|           <path id="Path_13992" data-name="Path 13992" d="M119.681,99.278c.321.7.022,1.271-.667,1.271a2.247,2.247,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-84.332 -68.499)" fill="#fafafa"/> | ||||
|           <path id="Path_13993" data-name="Path 13993" d="M131.061,99.278c.321.7.022,1.271-.667,1.271a2.247,2.247,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-92.53 -68.499)" fill="#fafafa"/> | ||||
|           <path id="Path_13994" data-name="Path 13994" d="M142.441,99.278c.321.7.022,1.271-.667,1.271a2.248,2.248,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-100.729 -68.499)" fill="#fafafa"/> | ||||
|           <path id="Path_13995" data-name="Path 13995" d="M153.822,99.278c.321.7.022,1.271-.667,1.271a2.247,2.247,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-108.928 -68.499)" fill="#fafafa"/> | ||||
|           <path id="Path_13996" data-name="Path 13996" d="M227.482,166.051H170.545v6.925h-7.227V180.2h-7.012v6.925h-7.288v22.882h78.464Z" transform="translate(-107.359 -116.056)" fill="#e0e0e0"/> | ||||
|           <rect id="Rectangle_17526" data-name="Rectangle 17526" width="48.83" height="6.254" transform="translate(63.186 50.666)" fill="#ebebeb"/> | ||||
|           <rect id="Rectangle_17527" data-name="Rectangle 17527" width="48.872" height="6.457" transform="translate(55.959 57.689)" fill="#ebebeb"/> | ||||
|           <rect id="Rectangle_17528" data-name="Rectangle 17528" width="48.849" height="6.358" transform="translate(48.948 64.712)" fill="#ebebeb"/> | ||||
|           <rect id="Rectangle_17529" data-name="Rectangle 17529" width="48.83" height="6.254" transform="translate(41.66 71.823)" fill="#ebebeb"/> | ||||
|         </g> | ||||
|       </g> | ||||
|       <g id="Group_8803" data-name="Group 8803" transform="translate(-14 -17.831)"> | ||||
|         <g id="Group_8904" data-name="Group 8904"> | ||||
|           <g id="Group_8801" data-name="Group 8801" transform="translate(17.645 78.597)" style="isolation: isolate"> | ||||
|             <g id="Group_8800" data-name="Group 8800"> | ||||
|               <g id="Group_8799" data-name="Group 8799" clip-path="url(#clip-path)"> | ||||
|                 <path id="Path_13998" data-name="Path 13998" d="M118.1,281.077H67.812l1.112-19.237,44.482-.792Z" transform="translate(-63.115 -261.048)" fill="#126055"/> | ||||
|               </g> | ||||
|             </g> | ||||
|           </g> | ||||
|         </g> | ||||
|       </g> | ||||
|       <path id="Path_13999" data-name="Path 13999" d="M101.091,261.048l-44.6,1.146-7.765,18.883h47.67Z" transform="translate(-47.216 -200.282)" fill="#407bff"/> | ||||
|       <g id="Group_8811" data-name="Group 8811" transform="translate(-14 -17.831)"> | ||||
|         <g id="Group_8905" data-name="Group 8905"> | ||||
|           <g id="Group_8806" data-name="Group 8806" transform="translate(14.31 78.597)" style="isolation: isolate"> | ||||
|             <g id="Group_8805" data-name="Group 8805"> | ||||
|               <g id="Group_8804" data-name="Group 8804" clip-path="url(#clip-path-2)"> | ||||
|                 <path id="Path_14000" data-name="Path 14000" d="M98.713,261.048l-44.552.705L46.1,281.076H94.22Z" transform="translate(-45.148 -261.048)" fill="#2bb8a6"/> | ||||
|               </g> | ||||
|             </g> | ||||
|           </g> | ||||
|           <g id="Group_8809" data-name="Group 8809" transform="translate(70.795 78.597)" style="isolation: isolate"> | ||||
|             <g id="Group_8808" data-name="Group 8808"> | ||||
|               <g id="Group_8807" data-name="Group 8807" clip-path="url(#clip-path)"> | ||||
|                 <path id="Path_14001" data-name="Path 14001" d="M308.221,281.077h-50.29l-4.7-20.029h50.29Z" transform="translate(-253.235 -261.048)" fill="#126055"/> | ||||
|               </g> | ||||
|             </g> | ||||
|           </g> | ||||
|         </g> | ||||
|       </g> | ||||
|       <path id="Path_14002" data-name="Path 14002" d="M291.211,261.048h-50.29l-4.7,20.029h50.29Z" transform="translate(-184.185 -200.282)" fill="#407bff"/> | ||||
|       <g id="Group_8816" data-name="Group 8816" transform="translate(-14 -17.831)"> | ||||
|         <g id="Group_8906" data-name="Group 8906"> | ||||
|           <g id="Group_8814" data-name="Group 8814" transform="translate(66.039 78.597)" style="isolation: isolate"> | ||||
|             <g id="Group_8813" data-name="Group 8813"> | ||||
|               <g id="Group_8812" data-name="Group 8812" clip-path="url(#clip-path)"> | ||||
|                 <path id="Path_14003" data-name="Path 14003" d="M291.211,261.048h-50.29l-4.7,20.029h50.29Z" transform="translate(-236.224 -261.048)" fill="#2bb8a6"/> | ||||
|               </g> | ||||
|             </g> | ||||
|           </g> | ||||
|         </g> | ||||
|       </g> | ||||
|       <g id="Group_8865" data-name="Group 8865" transform="translate(-14 -17.831)"> | ||||
|         <g id="Group_8901" data-name="Group 8901"> | ||||
|           <path id="Path_14006" data-name="Path 14006" d="M233.648,116.585a3.128,3.128,0,0,0-3.22-1.913c-2.516.25-4.939,3.663-7.222,2.961s-2-2.249-2-2.249-.839,2.227,2,4.095,6.7-2.849,9.921-1.444Z" transform="translate(-159.279 -80.134)" fill="#2e353a"/> | ||||
|           <path id="Path_14007" data-name="Path 14007" d="M240.7,114.478a4.2,4.2,0,0,0-3.5-2.829c-2.691-.226-4.263,3.437-6.325,2.829" transform="translate(-166.331 -78.027)" fill="none" stroke="#263238" stroke-linecap="round" stroke-linejoin="round" stroke-width="0.48"/> | ||||
|           <path id="Path_14008" data-name="Path 14008" d="M267.912,122.383s.956-4.252-2.358-5.11-4.805,1.234-5.364,3.55.851,5.538,3.85,5.006,3.751-2.438,3.871-3.446" transform="translate(-187.365 -81.827)" fill="#2e353a"/> | ||||
|           <path id="Path_14009" data-name="Path 14009" d="M288.639,115.829c2.724-1.365,6.3-4.351,6.235-5.439s-2.813-8.4-2.813-8.4a2.068,2.068,0,0,1-.631-.323c-.27-.218-.607-2.908-.2-3.054a11.433,11.433,0,0,1,2.093-.364c.337,0,.2,2.4.067,2.981,0,0,4.357,6.539,4.069,9.668s-7.04,8.572-9.4,9.341.585-4.41.585-4.41" transform="translate(-206.865 -68.668)" fill="#e4897b"/> | ||||
|           <path id="Path_14010" data-name="Path 14010" d="M186.8,270.838l.772-1.769,2.415.868,2.214.8-.6,2.261-2.542-1.142Z" transform="translate(-134.582 -188.057)" fill="#e4897b"/> | ||||
|           <path id="Path_14011" data-name="Path 14011" d="M177.621,264.516c.179.1-1.009,2.421-1.009,2.421a7.677,7.677,0,0,0-2.974,2.043c-.938,1.274-1.387.07-.688-1.531l1.728-3.96c.5-1.137,1.086.029,2.943,1.027" transform="translate(-124.355 -183.83)" fill="#2e353a"/> | ||||
|           <path id="Path_14012" data-name="Path 14012" d="M183.027,277.67a.233.233,0,0,1-.049-.005.242.242,0,0,1-.212-.178c-.078-.333.615-.966.755-1.089a.063.063,0,0,1,.027-.014h0s.008,0,.013,0a.076.076,0,0,1,.038.013h0s0,0,0,0h0l0,0h0a1.566,1.566,0,0,1,.434.873.417.417,0,0,1-.143.306c-.1.085-.181.106-.256.063-.114-.066-.157-.3-.168-.54a1.1,1.1,0,0,1-.289.51.261.261,0,0,1-.157.057m.435-1.034c-.293.283-.607.661-.57.817,0,.014.013.055.111.076a.132.132,0,0,0,.108-.029,1.8,1.8,0,0,0,.352-.863m.15-.021c-.03.419-.006.849.091.906.03.018.083-.023.112-.048a.277.277,0,0,0,.1-.2,1.2,1.2,0,0,0-.3-.654" transform="translate(-131.667 -193.169)" fill="#407bff"/> | ||||
|           <g id="Group_8845" data-name="Group 8845" transform="translate(54.432 81.856)" opacity="0.2" style="isolation: isolate"> | ||||
|             <g id="Group_8844" data-name="Group 8844"> | ||||
|               <g id="Group_8843" data-name="Group 8843" clip-path="url(#clip-path-5)"> | ||||
|                 <path id="Path_14013" data-name="Path 14013" d="M194.7,273.79l.934-1.916,2.236.811-.588,2.267Z" transform="translate(-194.704 -271.874)"/> | ||||
|               </g> | ||||
|             </g> | ||||
|           </g> | ||||
|           <path id="Path_14014" data-name="Path 14014" d="M223.861,235.868c-1.012,4.721-5.537,20.832-12.57,20.228s-12.2-4.774-12.345-6.678.4-2.95,2.159-2.954,6.907,1.7,9.153,1.524,4.342-10.438,4.342-10.438Z" transform="translate(-143.313 -164.853)" fill="#407bff"/> | ||||
|           <g id="Group_8848" data-name="Group 8848" transform="translate(55.612 71.015)" style="isolation: isolate"> | ||||
|             <g id="Group_8847" data-name="Group 8847"> | ||||
|               <g id="Group_8846" data-name="Group 8846" clip-path="url(#clip-path-6)"> | ||||
|                 <path id="Path_14015" data-name="Path 14015" d="M223.861,235.868c-1.012,4.721-5.537,20.832-12.57,20.228s-12.2-4.774-12.345-6.678.4-2.95,2.159-2.954,6.907,1.7,9.153,1.524,4.342-10.438,4.342-10.438Z" transform="translate(-198.925 -235.868)" fill="#157e8c"/> | ||||
|               </g> | ||||
|             </g> | ||||
|           </g> | ||||
|           <path id="Path_14016" data-name="Path 14016" d="M341.771,336.388l-1.666.776-1.276-2.372-1.168-2.178,1.839-1.267,1.2,2.668Z" transform="translate(-243.263 -231.585)" fill="#e4897b"/> | ||||
|           <path id="Path_14017" data-name="Path 14017" d="M344.957,348.294c-.075-.2,2.244-1.1,2.244-1.1a7.267,7.267,0,0,0,3.485.589c1.486-.286,1.082.937-.425,1.639l-3.729,1.736c-1.071.5-.8-.8-1.575-2.868" transform="translate(-248.519 -242.663)" fill="#2e353a"/> | ||||
|           <path id="Path_14018" data-name="Path 14018" d="M354.247,345.2a1.5,1.5,0,0,0-.169.026h-.038a.2.2,0,0,1-.058-.034v-.022a.028.028,0,0,0-.006-.02s.006-.011.006-.016h0c0-.009.013-.019.013-.029a1.661,1.661,0,0,1,.221-.963.365.365,0,0,1,.3-.127c.124,0,.2.05.233.135.044.131-.064.334-.2.524a.948.948,0,0,1,.531-.176.258.258,0,0,1,.187.108.3.3,0,0,1,.049.3c-.119.248-.739.3-1.065.3m.784-.567a1.708,1.708,0,0,0-.763.4c.393,0,.861-.062.929-.206.006-.013.024-.051-.037-.135a.135.135,0,0,0-.1-.055l-.03,0m-.525-.611c-.074,0-.135.092-.186.149a1.327,1.327,0,0,0-.177.735c.279-.292.526-.68.488-.792a.172.172,0,0,0-.113-.092Z" transform="translate(-255.017 -240.437)" fill="#407bff"/> | ||||
|           <g id="Group_8851" data-name="Group 8851" transform="translate(94.406 99.775)" opacity="0.2" style="isolation: isolate"> | ||||
|             <g id="Group_8850" data-name="Group 8850"> | ||||
|               <g id="Group_8849" data-name="Group 8849" clip-path="url(#clip-path-7)"> | ||||
|                 <path id="Path_14019" data-name="Path 14019" d="M340.75,334.1l-1.878.77-1.178-2.2,1.834-1.28Z" transform="translate(-337.695 -331.388)"/> | ||||
|               </g> | ||||
|             </g> | ||||
|           </g> | ||||
|           <path id="Path_14020" data-name="Path 14020" d="M249.431,204.77s-3.9,6.256-3.1,10.916c.942,5.5,13.25,11.694,16.6,14.431s4.927,13.073,9.1,15.056l2.274-.878a5.739,5.739,0,0,0,.292-4.65c-3.631-12.285-6.636-18.156-16.666-25.512a62.225,62.225,0,0,0,.383-8.972Z" transform="translate(-177.386 -143.118)" fill="#407bff"/> | ||||
|           <g id="Group_8854" data-name="Group 8854" transform="translate(68.833 61.652)" style="isolation: isolate"> | ||||
|             <g id="Group_8853" data-name="Group 8853"> | ||||
|               <g id="Group_8852" data-name="Group 8852" clip-path="url(#clip-path-8)"> | ||||
|                 <path id="Path_14021" data-name="Path 14021" d="M249.431,204.77s-3.9,6.256-3.1,10.916c.942,5.5,13.25,11.694,16.6,14.431s4.927,13.073,9.1,15.056l2.274-.878a5.739,5.739,0,0,0,.292-4.65c-3.631-12.285-6.636-18.156-16.666-25.512a62.225,62.225,0,0,0,.383-8.972Z" transform="translate(-246.219 -204.77)" fill="#1d92aa"/> | ||||
|               </g> | ||||
|             </g> | ||||
|           </g> | ||||
|           <path id="Path_14022" data-name="Path 14022" d="M278.512,244.82l-.559.217c-1.269-1.74-2.306-4.878-3.394-8.171-1.155-3.49-2.348-7.1-3.754-8.53a57.1,57.1,0,0,0-5.661-4.384c-5.13-3.712-10.948-7.918-11.336-10.484-.411-2.728.883-6.612,1.658-8.611l.6.027c-.735,1.876-2.105,5.844-1.7,8.488.349,2.306,6.559,6.8,11.093,10.08a57.033,57.033,0,0,1,5.737,4.447c1.5,1.532,2.664,5.043,3.894,8.764,1.062,3.213,2.158,6.527,3.427,8.156" transform="translate(-182.796 -143.179)" fill="#126055"/> | ||||
|           <g id="Group_8857" data-name="Group 8857" transform="translate(75.901 63.521)" opacity="0.1" style="isolation: isolate"> | ||||
|             <g id="Group_8856" data-name="Group 8856"> | ||||
|               <g id="Group_8855" data-name="Group 8855" clip-path="url(#clip-path-9)"> | ||||
|                 <path id="Path_14023" data-name="Path 14023" d="M276.146,218.472s-2.06-1.451-4.646-3.258l3.777,1.629a17.714,17.714,0,0,0,1.317-5.865c.034,3.146-.447,7.494-.447,7.494" transform="translate(-271.5 -210.978)"/> | ||||
|               </g> | ||||
|             </g> | ||||
|           </g> | ||||
|           <path id="Path_14024" data-name="Path 14024" d="M254.676,166.173l8.951.987a85.559,85.559,0,0,0,2.188-16.281,16.509,16.509,0,0,1-6.508.8,16.257,16.257,0,0,1-5.807-2.133,110.806,110.806,0,0,1,1.176,16.627" transform="translate(-182.631 -104.521)" fill="#2e353a"/> | ||||
|           <path id="Path_14025" data-name="Path 14025" d="M270.6,150.361a4.087,4.087,0,0,1-2.663-1.682c1.54-1.207.685-3.784.685-3.784l2.545.882a8.849,8.849,0,0,0-.242,1.168c-.222,1.7.492,1.816.492,1.816.348.986-.816,1.6-.816,1.6" transform="translate(-193.029 -101.27)" fill="#e4897b"/> | ||||
|           <g id="Group_8860" data-name="Group 8860" transform="translate(75.589 43.625)" opacity="0.2" style="isolation: isolate"> | ||||
|             <g id="Group_8859" data-name="Group 8859"> | ||||
|               <g id="Group_8858" data-name="Group 8858" clip-path="url(#clip-path-10)"> | ||||
|                 <path id="Path_14026" data-name="Path 14026" d="M272.928,145.777a8.851,8.851,0,0,0-.242,1.168,3.024,3.024,0,0,1-2.3-2.05Z" transform="translate(-270.383 -144.895)"/> | ||||
|               </g> | ||||
|             </g> | ||||
|           </g> | ||||
|           <path id="Path_14027" data-name="Path 14027" d="M269.361,121.076c2.282.178,2.928,1.551,2.925,4.1,0,3.181-.806,5.379-3.614,4.481-3.813-1.22-3.1-8.872.689-8.577" transform="translate(-191.738 -84.616)" fill="#e4897b"/> | ||||
|           <path id="Path_14028" data-name="Path 14028" d="M282.814,133.863a5.312,5.312,0,0,0,.6,1.071.61.61,0,0,1-.62.231Z" transform="translate(-203.732 -93.559)" fill="#de5753"/> | ||||
|           <path id="Path_14029" data-name="Path 14029" d="M276.76,131.956c-.009.2-.118.361-.243.354s-.219-.176-.21-.378.118-.361.243-.354.219.176.21.378" transform="translate(-199.062 -91.962)" fill="#2e353a"/> | ||||
|           <path id="Path_14030" data-name="Path 14030" d="M276.99,131.251l.416-.151s-.22.359-.416.151" transform="translate(-199.554 -91.628)" fill="#2e353a"/> | ||||
|           <path id="Path_14031" data-name="Path 14031" d="M285.117,132.224c-.009.2-.118.361-.243.354s-.219-.176-.21-.378.118-.361.243-.354.219.176.21.378" transform="translate(-205.082 -92.15)" fill="#2e353a"/> | ||||
|           <path id="Path_14032" data-name="Path 14032" d="M285.346,131.52l.416-.151s-.22.359-.416.151" transform="translate(-205.574 -91.816)" fill="#2e353a"/> | ||||
|           <path id="Path_14033" data-name="Path 14033" d="M275.641,127.141a1.127,1.127,0,0,0-1.015.294" transform="translate(-197.851 -88.846)" fill="none" stroke="#263238" stroke-linecap="round" stroke-linejoin="round" stroke-width="0.696"/> | ||||
|           <path id="Path_14034" data-name="Path 14034" d="M284.213,127.23a1.009,1.009,0,0,1,.9.273" transform="translate(-204.758 -88.909)" fill="none" stroke="#263238" stroke-linecap="round" stroke-linejoin="round" stroke-width="0.696"/> | ||||
|           <path id="Path_14035" data-name="Path 14035" d="M277.4,139.972a6.506,6.506,0,0,0-.323.833c-.049-.008-.1-.016-.146-.026-.659-.124-.927-.416-1.024-.7a1,1,0,0,1-.037-.438.959.959,0,0,1,.059-.244,3.027,3.027,0,0,0,1.247.532c.137.033.224.046.224.046" transform="translate(-198.74 -97.425)" fill="#2e353a"/> | ||||
|           <path id="Path_14036" data-name="Path 14036" d="M277.2,139.926l-.1.243a1.926,1.926,0,0,1-1.2-.531.952.952,0,0,1,.059-.244,3.026,3.026,0,0,0,1.247.532" transform="translate(-198.765 -97.425)" fill="#fff"/> | ||||
|           <path id="Path_14037" data-name="Path 14037" d="M277.048,142.361c-.659-.124-.927-.416-1.024-.7a2.066,2.066,0,0,1,.707.294.86.86,0,0,1,.317.409" transform="translate(-198.858 -99.008)" fill="#de5753"/> | ||||
|           <path id="Path_14038" data-name="Path 14038" d="M265.157,122.691a7.738,7.738,0,0,0,1.146-3.507s4.656-1.637,4.547,3.323c0,0,.737-4.355-3.179-4.758s-4.315,5.778-2.413,7.778a3.252,3.252,0,0,1-.1-2.835" transform="translate(-190.307 -82.283)" fill="#2e353a"/> | ||||
|           <path id="Path_14039" data-name="Path 14039" d="M264.724,133.543a1.048,1.048,0,0,0-1.011-1.069c-.713.028-1.155,1.565.579,2.078.249.074.409-.181.432-1.009" transform="translate(-189.536 -92.588)" fill="#e4897b"/> | ||||
|           <path id="Path_14040" data-name="Path 14040" d="M237.873,107.488a8.912,8.912,0,0,1,.736,6.06s-6.188-7.417-6.747-9.109,3.469-11.327,3.469-11.327a9.2,9.2,0,0,1-.533-2.484c.14-.452,1.887-1.505,2.306-1.2s.28,3.613.07,4.065l-.21.452s-2.154,8.725-1.881,9.368,2.789,4.18,2.789,4.18" transform="translate(-167.005 -62.462)" fill="#e4897b"/> | ||||
|           <path id="Path_14041" data-name="Path 14041" d="M267.432,119.779s-2.449,3.95-5.7,3.317c0,0-.159-2.991,2.016-3.648a4.62,4.62,0,0,1,3.683.33" transform="translate(-188.561 -83.327)" fill="#2e353a"/> | ||||
|           <path id="Path_14042" data-name="Path 14042" d="M276.032,121.068s1.02,1.65-1.759,2.741" transform="translate(-197.597 -84.617)" fill="none" stroke="#263238" stroke-linecap="round" stroke-linejoin="round" stroke-width="0.48"/> | ||||
|           <path id="Path_14043" data-name="Path 14043" d="M284.369,119.5s1.17,1.158,1.656-.5" transform="translate(-204.87 -83.169)" fill="none" stroke="#263238" stroke-linecap="round" stroke-linejoin="round" stroke-width="0.48"/> | ||||
|           <path id="Path_14044" data-name="Path 14044" d="M266.271,166.48l.253-.464s-.312-.1-.854-.235c.227-1.683.93-8.052-.785-12.184l-.318.263a8.484,8.484,0,0,1,.874,3.876l-5.924-.038s-.68-3.575-1.522-4.673l-.212.107a28.5,28.5,0,0,1,1.248,12.016,16.047,16.047,0,0,0-2.78.416l.226.452a32.211,32.211,0,0,1,5.022-.216l3.113.306a15.805,15.805,0,0,1,1.66.374" transform="translate(-184.612 -106.953)" fill="#407bff"/> | ||||
|           <g id="Group_8863" data-name="Group 8863" transform="translate(71.638 46.074)" style="isolation: isolate"> | ||||
|             <g id="Group_8862" data-name="Group 8862"> | ||||
|               <g id="Group_8861" data-name="Group 8861" clip-path="url(#clip-path-11)"> | ||||
|                 <path id="Path_14045" data-name="Path 14045" d="M266.271,166.48l.253-.464s-.312-.1-.854-.235c.227-1.683.93-8.052-.785-12.184l-.318.263a8.484,8.484,0,0,1,.874,3.876l-5.924-.038s-.68-3.575-1.522-4.673l-.212.107a28.5,28.5,0,0,1,1.248,12.016,16.047,16.047,0,0,0-2.78.416l.226.452a32.211,32.211,0,0,1,5.022-.216l3.113.306a15.805,15.805,0,0,1,1.66.374" transform="translate(-256.25 -153.026)" fill="#fff"/> | ||||
|               </g> | ||||
|             </g> | ||||
|           </g> | ||||
|           <path id="Path_14046" data-name="Path 14046" d="M274.7,176.706a1.261,1.261,0,0,1-.229.816.864.864,0,0,1-.71.28.848.848,0,0,1-.685-.274,1.184,1.184,0,0,1-.232-.786v-.108h.582v.15a.471.471,0,0,0,.087.322.3.3,0,0,0,.232.093.308.308,0,0,0,.252-.108.675.675,0,0,0,.089-.409v-.771a.636.636,0,0,1-1.082.126,1.256,1.256,0,0,1-.171-.717v-.771a1.156,1.156,0,0,1,.24-.786,1.014,1.014,0,0,1,1.387,0,1.156,1.156,0,0,1,.24.786Zm-.934-1.024a.3.3,0,0,0,.232-.094.47.47,0,0,0,.087-.322v-.759a.459.459,0,0,0-.087-.319.343.343,0,0,0-.464,0,.459.459,0,0,0-.087.319v.759a.469.469,0,0,0,.087.322.3.3,0,0,0,.232.094" transform="translate(-196.557 -121.255)" fill="#125765"/> | ||||
|           <path id="Path_14047" data-name="Path 14047" d="M282.617,176.706a1.261,1.261,0,0,1-.229.816.864.864,0,0,1-.71.28.848.848,0,0,1-.685-.274,1.184,1.184,0,0,1-.232-.786v-.108h.582v.15a.471.471,0,0,0,.087.322.3.3,0,0,0,.232.093.308.308,0,0,0,.252-.108.674.674,0,0,0,.09-.409v-.771a.636.636,0,0,1-1.082.126,1.257,1.257,0,0,1-.171-.717v-.771a1.156,1.156,0,0,1,.24-.786,1.014,1.014,0,0,1,1.387,0,1.156,1.156,0,0,1,.24.786Zm-.934-1.024a.3.3,0,0,0,.232-.094.469.469,0,0,0,.087-.322v-.759a.459.459,0,0,0-.087-.319.343.343,0,0,0-.464,0,.459.459,0,0,0-.087.319v.759a.469.469,0,0,0,.087.322.3.3,0,0,0,.232.094" transform="translate(-202.263 -121.255)" fill="#125765"/> | ||||
|         </g> | ||||
|       </g> | ||||
|       <g id="Group_8873" data-name="Group 8873" transform="translate(-14 -17.831)"> | ||||
|         <g id="Group_8907" data-name="Group 8907"> | ||||
|           <path id="Path_14048" data-name="Path 14048" d="M335.17,173.594a35.718,35.718,0,0,0-24.292-.479c-3.483,1.135-7.173,2.571-10.74,3.962q-1.448.564-2.9,1.126c-.542.209-1.5.615-1.581,1.194l.877,2.27c1.8-.674,2.709-1.04,4.557-1.76,3.534-1.376,7.19-2.8,10.6-3.911a34.29,34.29,0,0,1,20.62-.271l.763-.527-.372-.7h1.026l-1.026-.9h2.469Z" transform="translate(-213.001 -119.689)" fill="#2bb8a6"/> | ||||
|           <path id="Path_14049" data-name="Path 14049" d="M295.981,198.514s4.729.235,6.243,1.154l.047-2.47s-.022-.151-.452-.161c-1.46-.032-4.659-.34-5.414-.763-1.717-.963.781-1.868.781-1.868s-1.578.532-1.535,1.176a10.421,10.421,0,0,1,.33,2.931" transform="translate(-212.998 -135.875)" fill="#407bff"/> | ||||
|           <g id="Group_8868" data-name="Group 8868" transform="translate(82.653 58.532)" style="isolation: isolate"> | ||||
|             <g id="Group_8867" data-name="Group 8867"> | ||||
|               <g id="Group_8866" data-name="Group 8866" clip-path="url(#clip-path-12)"> | ||||
|                 <path id="Path_14050" data-name="Path 14050" d="M295.981,198.514s4.729.235,6.243,1.154l.047-2.47s-.022-.151-.452-.161c-1.46-.032-4.659-.34-5.414-.763-1.717-.963.781-1.868.781-1.868s-1.578.532-1.535,1.176a10.421,10.421,0,0,1,.33,2.931" transform="translate(-295.651 -194.407)" fill="#126055"/> | ||||
|               </g> | ||||
|             </g> | ||||
|           </g> | ||||
|           <g id="Group_8871" data-name="Group 8871" transform="translate(28.236 50.054)" style="isolation: isolate"> | ||||
|             <g id="Group_8870" data-name="Group 8870"> | ||||
|               <g id="Group_8869" data-name="Group 8869" clip-path="url(#clip-path-13)"> | ||||
|                 <path id="Path_14051" data-name="Path 14051" d="M162.458,180.077a.486.486,0,0,1-.308.569,14.681,14.681,0,0,1-4.38.608c-6.352,0-14.316-3.1-22.642-6.347-3.534-1.376-7.19-2.8-10.6-3.911a34.288,34.288,0,0,0-20.62-.271l-.763-.527.372-.7H102.49l1.026-.9H101v0a35.8,35.8,0,0,1,24.316-.479c3.483,1.135,7.185,2.572,10.752,3.962,9.673,3.77,20.479,7,25.608,5.573.328-.092.3-.186.212-.237a.369.369,0,0,0-.136-.042c.248.015.294.12.3.216a21.119,21.119,0,0,0,.409,2.491" transform="translate(-101 -166.248)" fill="#2bb8a6"/> | ||||
|               </g> | ||||
|             </g> | ||||
|           </g> | ||||
|         </g> | ||||
|       </g> | ||||
|     </g> | ||||
|   </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 27 KiB | 
| @ -0,0 +1,5 @@ | ||||
| <svg xmlns="http://www.w3.org/2000/svg" width="68.328" height="71.199" viewBox="0 0 68.328 71.199"> | ||||
|   <g id="light-bulb" transform="translate(-9.8)" opacity="0.07"> | ||||
|     <path id="XMLID_49_" d="M52.08,62.218V64.3a3.3,3.3,0,0,1-2.8,3.267l-.513,1.89A2.352,2.352,0,0,1,46.5,71.2H41.415a2.352,2.352,0,0,1-2.271-1.743l-.5-1.89a3.314,3.314,0,0,1-2.813-3.282V62.2A2,2,0,0,1,37.84,60.2H50.073A2.023,2.023,0,0,1,52.08,62.218Zm9.42-28.04a17.452,17.452,0,0,1-4.922,12.174,16.084,16.084,0,0,0-4.307,8.731A2.9,2.9,0,0,1,49.4,57.53H38.514A2.872,2.872,0,0,1,35.657,55.1a16.263,16.263,0,0,0-4.336-8.761A17.538,17.538,0,1,1,61.5,34.178ZM45.942,23.557a1.979,1.979,0,0,0-1.978-1.978A12.67,12.67,0,0,0,31.306,34.237a1.978,1.978,0,1,0,3.955,0,8.713,8.713,0,0,1,8.7-8.7A1.97,1.97,0,0,0,45.942,23.557ZM43.964,10.885a1.979,1.979,0,0,0,1.978-1.978V1.978a1.978,1.978,0,0,0-3.955,0V8.907A1.979,1.979,0,0,0,43.964,10.885ZM20.685,34.164a1.979,1.979,0,0,0-1.978-1.978H11.778a1.978,1.978,0,0,0,0,3.955h6.929A1.97,1.97,0,0,0,20.685,34.164ZM76.15,32.186H69.22a1.978,1.978,0,0,0,0,3.955H76.15a1.978,1.978,0,0,0,0-3.955ZM24.714,50.63l-4.908,4.908a1.973,1.973,0,0,0,2.783,2.8L27.5,53.428a1.973,1.973,0,1,0-2.783-2.8ZM61.822,18.283a1.975,1.975,0,0,0,1.392-.571L68.122,12.8a1.979,1.979,0,1,0-2.8-2.8l-4.908,4.908a1.972,1.972,0,0,0,0,2.8A2.009,2.009,0,0,0,61.822,18.283ZM24.714,17.7A1.973,1.973,0,1,0,27.5,14.9L22.589,9.991a1.979,1.979,0,0,0-2.8,2.8Zm38.5,32.933a1.979,1.979,0,0,0-2.8,2.8l4.908,4.908a1.973,1.973,0,0,0,2.784-2.8Z" fill="#fff"/> | ||||
|   </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 1.5 KiB | 
| @ -0,0 +1,309 @@ | ||||
| <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="333" height="88.222" viewBox="0 0 333 88.222"> | ||||
|   <defs> | ||||
|     <clipPath id="clip-path"> | ||||
|       <rect id="Rectangle_17532" data-name="Rectangle 17532" width="54.986" height="20.029" fill="none"/> | ||||
|     </clipPath> | ||||
|     <clipPath id="clip-path-2"> | ||||
|       <rect id="Rectangle_17534" data-name="Rectangle 17534" width="53.565" height="20.029" fill="none"/> | ||||
|     </clipPath> | ||||
|     <clipPath id="clip-path-5"> | ||||
|       <rect id="Rectangle_17611" data-name="Rectangle 17611" width="3.17" height="3.078" fill="none"/> | ||||
|     </clipPath> | ||||
|     <clipPath id="clip-path-6"> | ||||
|       <rect id="Rectangle_17612" data-name="Rectangle 17612" width="24.935" height="20.245" fill="none"/> | ||||
|     </clipPath> | ||||
|     <clipPath id="clip-path-7"> | ||||
|       <rect id="Rectangle_17613" data-name="Rectangle 17613" width="3.055" height="3.482" fill="none"/> | ||||
|     </clipPath> | ||||
|     <clipPath id="clip-path-8"> | ||||
|       <rect id="Rectangle_17614" data-name="Rectangle 17614" width="28.702" height="40.403" fill="none"/> | ||||
|     </clipPath> | ||||
|     <clipPath id="clip-path-9"> | ||||
|       <rect id="Rectangle_17615" data-name="Rectangle 17615" width="5.095" height="7.494" fill="none"/> | ||||
|     </clipPath> | ||||
|     <clipPath id="clip-path-10"> | ||||
|       <rect id="Rectangle_17616" data-name="Rectangle 17616" width="2.545" height="2.051" fill="none"/> | ||||
|     </clipPath> | ||||
|     <clipPath id="clip-path-11"> | ||||
|       <rect id="Rectangle_17617" data-name="Rectangle 17617" width="10.274" height="13.454" fill="none"/> | ||||
|     </clipPath> | ||||
|     <clipPath id="clip-path-12"> | ||||
|       <rect id="Rectangle_17619" data-name="Rectangle 17619" width="6.621" height="5.261" fill="none"/> | ||||
|     </clipPath> | ||||
|     <clipPath id="clip-path-13"> | ||||
|       <rect id="Rectangle_17620" data-name="Rectangle 17620" width="61.469" height="15.006" fill="none"/> | ||||
|     </clipPath> | ||||
|     <clipPath id="clip-path-14"> | ||||
|       <rect id="Rectangle_17693" data-name="Rectangle 17693" width="333" height="88" rx="15" transform="translate(1 4.523)" fill="#fff"/> | ||||
|     </clipPath> | ||||
|     <clipPath id="clip-path-15"> | ||||
|       <rect id="Rectangle_17685" data-name="Rectangle 17685" width="111.63" height="15.945" transform="translate(0 0)" fill="none"/> | ||||
|     </clipPath> | ||||
|     <clipPath id="clip-path-16"> | ||||
|       <rect id="Rectangle_17626" data-name="Rectangle 17626" width="111.63" height="15.947" transform="translate(0 0)" fill="none"/> | ||||
|     </clipPath> | ||||
|     <clipPath id="clip-path-18"> | ||||
|       <rect id="Rectangle_17684" data-name="Rectangle 17684" width="111.63" height="15.894" transform="translate(0 0)" fill="none"/> | ||||
|     </clipPath> | ||||
|     <clipPath id="clip-path-19"> | ||||
|       <rect id="Rectangle_17683" data-name="Rectangle 17683" width="111.63" height="15.748" transform="translate(0 0)" fill="none"/> | ||||
|     </clipPath> | ||||
|   </defs> | ||||
|   <g id="Group_8897" data-name="Group 8897" transform="translate(-21 -321.778)"> | ||||
|     <g id="Group_8890" data-name="Group 8890" transform="translate(20 317.477)"> | ||||
|       <g id="Group_8745" data-name="Group 8745"> | ||||
|         <rect id="Rectangle_17692" data-name="Rectangle 17692" width="333" height="88" rx="15" transform="translate(1 4.523)" fill="#fff"/> | ||||
|         <g id="Group_8889" data-name="Group 8889" transform="translate(1)"> | ||||
|           <g id="Group_8902" data-name="Group 8902"> | ||||
|             <rect id="Rectangle_17523" data-name="Rectangle 17523" width="26.188" height="0.075" transform="translate(22.754 84.584)" fill="#ebebeb"/> | ||||
|             <g id="Group_8796" data-name="Group 8796" transform="translate(-14 -13.831)"> | ||||
|               <g id="Group_8903" data-name="Group 8903"> | ||||
|                 <path id="Path_13976" data-name="Path 13976" d="M375.306,83.743l1.573-.7H389.2l2.8,5.96v1.567Z" transform="translate(-270.385 -58.043)" fill="#e0e0e0"/> | ||||
|                 <rect id="Rectangle_17524" data-name="Rectangle 17524" width="1.229" height="49.47" transform="translate(114.478 30.231)" fill="#e0e0e0"/> | ||||
|                 <path id="Path_13977" data-name="Path 13977" d="M392.3,92.514H378.694l-3.123-6.829h13.605Z" transform="translate(-270.576 -59.887)" fill="#f0f0f0"/> | ||||
|                 <path id="Path_13978" data-name="Path 13978" d="M383.558,88.875c.321.7.022,1.271-.667,1.271a2.248,2.248,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-274.439 -61.228)" fill="#fafafa"/> | ||||
|                 <path id="Path_13979" data-name="Path 13979" d="M394.938,88.875c.321.7.022,1.271-.667,1.271a2.247,2.247,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-282.637 -61.228)" fill="#fafafa"/> | ||||
|                 <path id="Path_13980" data-name="Path 13980" d="M406.318,88.875c.321.7.022,1.271-.667,1.271a2.248,2.248,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-290.836 -61.228)" fill="#fafafa"/> | ||||
|                 <path id="Path_13981" data-name="Path 13981" d="M417.7,88.875c.321.7.022,1.271-.667,1.271a2.247,2.247,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-299.034 -61.228)" fill="#fafafa"/> | ||||
|                 <path id="Path_13982" data-name="Path 13982" d="M388.681,99.278c.321.7.022,1.271-.667,1.271a2.247,2.247,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-278.13 -68.499)" fill="#fafafa"/> | ||||
|                 <path id="Path_13983" data-name="Path 13983" d="M400.061,99.278c.321.7.022,1.271-.667,1.271a2.247,2.247,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-286.328 -68.499)" fill="#fafafa"/> | ||||
|                 <path id="Path_13984" data-name="Path 13984" d="M411.442,99.278c.321.7.022,1.271-.667,1.271a2.247,2.247,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-294.527 -68.499)" fill="#fafafa"/> | ||||
|                 <path id="Path_13985" data-name="Path 13985" d="M422.821,99.278c.321.7.022,1.271-.667,1.271a2.247,2.247,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-302.725 -68.499)" fill="#fafafa"/> | ||||
|                 <path id="Path_13986" data-name="Path 13986" d="M106.306,83.743l1.573-.7H120.2l2.8,5.96v1.567Z" transform="translate(-76.587 -58.043)" fill="#e0e0e0"/> | ||||
|                 <rect id="Rectangle_17525" data-name="Rectangle 17525" width="1.229" height="49.47" transform="translate(39.276 30.231)" fill="#e0e0e0"/> | ||||
|                 <path id="Path_13987" data-name="Path 13987" d="M123.3,92.514H109.694l-3.123-6.829h13.605Z" transform="translate(-76.778 -59.887)" fill="#f0f0f0"/> | ||||
|                 <path id="Path_13988" data-name="Path 13988" d="M114.558,88.875c.321.7.022,1.271-.667,1.271a2.247,2.247,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-80.641 -61.228)" fill="#fafafa"/> | ||||
|                 <path id="Path_13989" data-name="Path 13989" d="M125.939,88.875c.321.7.022,1.271-.667,1.271a2.247,2.247,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-88.84 -61.228)" fill="#fafafa"/> | ||||
|                 <path id="Path_13990" data-name="Path 13990" d="M137.318,88.875c.321.7.022,1.271-.667,1.271a2.247,2.247,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-97.037 -61.228)" fill="#fafafa"/> | ||||
|                 <path id="Path_13991" data-name="Path 13991" d="M148.7,88.875c.321.7.022,1.271-.667,1.271a2.247,2.247,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-105.236 -61.228)" fill="#fafafa"/> | ||||
|                 <path id="Path_13992" data-name="Path 13992" d="M119.681,99.278c.321.7.022,1.271-.667,1.271a2.247,2.247,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-84.332 -68.499)" fill="#fafafa"/> | ||||
|                 <path id="Path_13993" data-name="Path 13993" d="M131.061,99.278c.321.7.022,1.271-.667,1.271a2.247,2.247,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-92.53 -68.499)" fill="#fafafa"/> | ||||
|                 <path id="Path_13994" data-name="Path 13994" d="M142.441,99.278c.321.7.022,1.271-.667,1.271a2.248,2.248,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-100.729 -68.499)" fill="#fafafa"/> | ||||
|                 <path id="Path_13995" data-name="Path 13995" d="M153.822,99.278c.321.7.022,1.271-.667,1.271a2.247,2.247,0,0,1-1.829-1.271c-.321-.7-.022-1.271.667-1.271a2.247,2.247,0,0,1,1.829,1.271" transform="translate(-108.928 -68.499)" fill="#fafafa"/> | ||||
|                 <path id="Path_13996" data-name="Path 13996" d="M227.482,166.051H170.545v6.925h-7.227V180.2h-7.012v6.925h-7.288v22.882h78.464Z" transform="translate(-107.359 -116.056)" fill="#e0e0e0"/> | ||||
|                 <rect id="Rectangle_17526" data-name="Rectangle 17526" width="48.83" height="6.254" transform="translate(63.186 50.666)" fill="#ebebeb"/> | ||||
|                 <rect id="Rectangle_17527" data-name="Rectangle 17527" width="48.872" height="6.457" transform="translate(55.959 57.689)" fill="#ebebeb"/> | ||||
|                 <rect id="Rectangle_17528" data-name="Rectangle 17528" width="48.849" height="6.358" transform="translate(48.948 64.712)" fill="#ebebeb"/> | ||||
|                 <rect id="Rectangle_17529" data-name="Rectangle 17529" width="48.83" height="6.254" transform="translate(41.66 71.823)" fill="#ebebeb"/> | ||||
|               </g> | ||||
|             </g> | ||||
|             <g id="Group_8803" data-name="Group 8803" transform="translate(-14 -17.831)"> | ||||
|               <g id="Group_8904" data-name="Group 8904"> | ||||
|                 <g id="Group_8801" data-name="Group 8801" transform="translate(17.645 78.597)" style="isolation: isolate"> | ||||
|                   <g id="Group_8800" data-name="Group 8800"> | ||||
|                     <g id="Group_8799" data-name="Group 8799" clip-path="url(#clip-path)"> | ||||
|                       <path id="Path_13998" data-name="Path 13998" d="M118.1,281.077H67.812l1.112-19.237,44.482-.792Z" transform="translate(-63.115 -261.048)" fill="#126055"/> | ||||
|                     </g> | ||||
|                   </g> | ||||
|                 </g> | ||||
|               </g> | ||||
|             </g> | ||||
|             <path id="Path_13999" data-name="Path 13999" d="M101.091,261.048l-44.6,1.146-7.765,18.883h47.67Z" transform="translate(-47.216 -200.282)" fill="#407bff"/> | ||||
|             <g id="Group_8811" data-name="Group 8811" transform="translate(-14 -17.831)"> | ||||
|               <g id="Group_8905" data-name="Group 8905"> | ||||
|                 <g id="Group_8806" data-name="Group 8806" transform="translate(14.31 78.597)" style="isolation: isolate"> | ||||
|                   <g id="Group_8805" data-name="Group 8805"> | ||||
|                     <g id="Group_8804" data-name="Group 8804" clip-path="url(#clip-path-2)"> | ||||
|                       <path id="Path_14000" data-name="Path 14000" d="M98.713,261.048l-44.552.705L46.1,281.076H94.22Z" transform="translate(-45.148 -261.048)" fill="#2bb8a6"/> | ||||
|                     </g> | ||||
|                   </g> | ||||
|                 </g> | ||||
|                 <g id="Group_8809" data-name="Group 8809" transform="translate(70.795 78.597)" style="isolation: isolate"> | ||||
|                   <g id="Group_8808" data-name="Group 8808"> | ||||
|                     <g id="Group_8807" data-name="Group 8807" clip-path="url(#clip-path)"> | ||||
|                       <path id="Path_14001" data-name="Path 14001" d="M308.221,281.077h-50.29l-4.7-20.029h50.29Z" transform="translate(-253.235 -261.048)" fill="#126055"/> | ||||
|                     </g> | ||||
|                   </g> | ||||
|                 </g> | ||||
|               </g> | ||||
|             </g> | ||||
|             <path id="Path_14002" data-name="Path 14002" d="M291.211,261.048h-50.29l-4.7,20.029h50.29Z" transform="translate(-184.185 -200.282)" fill="#407bff"/> | ||||
|             <g id="Group_8816" data-name="Group 8816" transform="translate(-14 -17.831)"> | ||||
|               <g id="Group_8906" data-name="Group 8906"> | ||||
|                 <g id="Group_8814" data-name="Group 8814" transform="translate(66.039 78.597)" style="isolation: isolate"> | ||||
|                   <g id="Group_8813" data-name="Group 8813"> | ||||
|                     <g id="Group_8812" data-name="Group 8812" clip-path="url(#clip-path)"> | ||||
|                       <path id="Path_14003" data-name="Path 14003" d="M291.211,261.048h-50.29l-4.7,20.029h50.29Z" transform="translate(-236.224 -261.048)" fill="#2bb8a6"/> | ||||
|                     </g> | ||||
|                   </g> | ||||
|                 </g> | ||||
|               </g> | ||||
|             </g> | ||||
|             <g id="Group_8865" data-name="Group 8865" transform="translate(-14 -17.831)"> | ||||
|               <g id="Group_8901" data-name="Group 8901"> | ||||
|                 <path id="Path_14006" data-name="Path 14006" d="M233.648,116.585a3.128,3.128,0,0,0-3.22-1.913c-2.516.25-4.939,3.663-7.222,2.961s-2-2.249-2-2.249-.839,2.227,2,4.095,6.7-2.849,9.921-1.444Z" transform="translate(-159.279 -80.134)" fill="#2e353a"/> | ||||
|                 <path id="Path_14007" data-name="Path 14007" d="M240.7,114.478a4.2,4.2,0,0,0-3.5-2.829c-2.691-.226-4.263,3.437-6.325,2.829" transform="translate(-166.331 -78.027)" fill="none" stroke="#263238" stroke-linecap="round" stroke-linejoin="round" stroke-width="0.48"/> | ||||
|                 <path id="Path_14008" data-name="Path 14008" d="M267.912,122.383s.956-4.252-2.358-5.11-4.805,1.234-5.364,3.55.851,5.538,3.85,5.006,3.751-2.438,3.871-3.446" transform="translate(-187.365 -81.827)" fill="#2e353a"/> | ||||
|                 <path id="Path_14009" data-name="Path 14009" d="M288.639,115.829c2.724-1.365,6.3-4.351,6.235-5.439s-2.813-8.4-2.813-8.4a2.068,2.068,0,0,1-.631-.323c-.27-.218-.607-2.908-.2-3.054a11.433,11.433,0,0,1,2.093-.364c.337,0,.2,2.4.067,2.981,0,0,4.357,6.539,4.069,9.668s-7.04,8.572-9.4,9.341.585-4.41.585-4.41" transform="translate(-206.865 -68.668)" fill="#e4897b"/> | ||||
|                 <path id="Path_14010" data-name="Path 14010" d="M186.8,270.838l.772-1.769,2.415.868,2.214.8-.6,2.261-2.542-1.142Z" transform="translate(-134.582 -188.057)" fill="#e4897b"/> | ||||
|                 <path id="Path_14011" data-name="Path 14011" d="M177.621,264.516c.179.1-1.009,2.421-1.009,2.421a7.677,7.677,0,0,0-2.974,2.043c-.938,1.274-1.387.07-.688-1.531l1.728-3.96c.5-1.137,1.086.029,2.943,1.027" transform="translate(-124.355 -183.83)" fill="#2e353a"/> | ||||
|                 <path id="Path_14012" data-name="Path 14012" d="M183.027,277.67a.233.233,0,0,1-.049-.005.242.242,0,0,1-.212-.178c-.078-.333.615-.966.755-1.089a.063.063,0,0,1,.027-.014h0s.008,0,.013,0a.076.076,0,0,1,.038.013h0s0,0,0,0h0l0,0h0a1.566,1.566,0,0,1,.434.873.417.417,0,0,1-.143.306c-.1.085-.181.106-.256.063-.114-.066-.157-.3-.168-.54a1.1,1.1,0,0,1-.289.51.261.261,0,0,1-.157.057m.435-1.034c-.293.283-.607.661-.57.817,0,.014.013.055.111.076a.132.132,0,0,0,.108-.029,1.8,1.8,0,0,0,.352-.863m.15-.021c-.03.419-.006.849.091.906.03.018.083-.023.112-.048a.277.277,0,0,0,.1-.2,1.2,1.2,0,0,0-.3-.654" transform="translate(-131.667 -193.169)" fill="#407bff"/> | ||||
|                 <g id="Group_8845" data-name="Group 8845" transform="translate(54.432 81.856)" opacity="0.2" style="isolation: isolate"> | ||||
|                   <g id="Group_8844" data-name="Group 8844"> | ||||
|                     <g id="Group_8843" data-name="Group 8843" clip-path="url(#clip-path-5)"> | ||||
|                       <path id="Path_14013" data-name="Path 14013" d="M194.7,273.79l.934-1.916,2.236.811-.588,2.267Z" transform="translate(-194.704 -271.874)"/> | ||||
|                     </g> | ||||
|                   </g> | ||||
|                 </g> | ||||
|                 <path id="Path_14014" data-name="Path 14014" d="M223.861,235.868c-1.012,4.721-5.537,20.832-12.57,20.228s-12.2-4.774-12.345-6.678.4-2.95,2.159-2.954,6.907,1.7,9.153,1.524,4.342-10.438,4.342-10.438Z" transform="translate(-143.313 -164.853)" fill="#407bff"/> | ||||
|                 <g id="Group_8848" data-name="Group 8848" transform="translate(55.612 71.015)" style="isolation: isolate"> | ||||
|                   <g id="Group_8847" data-name="Group 8847"> | ||||
|                     <g id="Group_8846" data-name="Group 8846" clip-path="url(#clip-path-6)"> | ||||
|                       <path id="Path_14015" data-name="Path 14015" d="M223.861,235.868c-1.012,4.721-5.537,20.832-12.57,20.228s-12.2-4.774-12.345-6.678.4-2.95,2.159-2.954,6.907,1.7,9.153,1.524,4.342-10.438,4.342-10.438Z" transform="translate(-198.925 -235.868)" fill="#157e8c"/> | ||||
|                     </g> | ||||
|                   </g> | ||||
|                 </g> | ||||
|                 <path id="Path_14016" data-name="Path 14016" d="M341.771,336.388l-1.666.776-1.276-2.372-1.168-2.178,1.839-1.267,1.2,2.668Z" transform="translate(-243.263 -231.585)" fill="#e4897b"/> | ||||
|                 <path id="Path_14017" data-name="Path 14017" d="M344.957,348.294c-.075-.2,2.244-1.1,2.244-1.1a7.267,7.267,0,0,0,3.485.589c1.486-.286,1.082.937-.425,1.639l-3.729,1.736c-1.071.5-.8-.8-1.575-2.868" transform="translate(-248.519 -242.663)" fill="#2e353a"/> | ||||
|                 <path id="Path_14018" data-name="Path 14018" d="M354.247,345.2a1.5,1.5,0,0,0-.169.026h-.038a.2.2,0,0,1-.058-.034v-.022a.028.028,0,0,0-.006-.02s.006-.011.006-.016h0c0-.009.013-.019.013-.029a1.661,1.661,0,0,1,.221-.963.365.365,0,0,1,.3-.127c.124,0,.2.05.233.135.044.131-.064.334-.2.524a.948.948,0,0,1,.531-.176.258.258,0,0,1,.187.108.3.3,0,0,1,.049.3c-.119.248-.739.3-1.065.3m.784-.567a1.708,1.708,0,0,0-.763.4c.393,0,.861-.062.929-.206.006-.013.024-.051-.037-.135a.135.135,0,0,0-.1-.055l-.03,0m-.525-.611c-.074,0-.135.092-.186.149a1.327,1.327,0,0,0-.177.735c.279-.292.526-.68.488-.792a.172.172,0,0,0-.113-.092Z" transform="translate(-255.017 -240.437)" fill="#407bff"/> | ||||
|                 <g id="Group_8851" data-name="Group 8851" transform="translate(94.406 99.775)" opacity="0.2" style="isolation: isolate"> | ||||
|                   <g id="Group_8850" data-name="Group 8850"> | ||||
|                     <g id="Group_8849" data-name="Group 8849" clip-path="url(#clip-path-7)"> | ||||
|                       <path id="Path_14019" data-name="Path 14019" d="M340.75,334.1l-1.878.77-1.178-2.2,1.834-1.28Z" transform="translate(-337.695 -331.388)"/> | ||||
|                     </g> | ||||
|                   </g> | ||||
|                 </g> | ||||
|                 <path id="Path_14020" data-name="Path 14020" d="M249.431,204.77s-3.9,6.256-3.1,10.916c.942,5.5,13.25,11.694,16.6,14.431s4.927,13.073,9.1,15.056l2.274-.878a5.739,5.739,0,0,0,.292-4.65c-3.631-12.285-6.636-18.156-16.666-25.512a62.225,62.225,0,0,0,.383-8.972Z" transform="translate(-177.386 -143.118)" fill="#407bff"/> | ||||
|                 <g id="Group_8854" data-name="Group 8854" transform="translate(68.833 61.652)" style="isolation: isolate"> | ||||
|                   <g id="Group_8853" data-name="Group 8853"> | ||||
|                     <g id="Group_8852" data-name="Group 8852" clip-path="url(#clip-path-8)"> | ||||
|                       <path id="Path_14021" data-name="Path 14021" d="M249.431,204.77s-3.9,6.256-3.1,10.916c.942,5.5,13.25,11.694,16.6,14.431s4.927,13.073,9.1,15.056l2.274-.878a5.739,5.739,0,0,0,.292-4.65c-3.631-12.285-6.636-18.156-16.666-25.512a62.225,62.225,0,0,0,.383-8.972Z" transform="translate(-246.219 -204.77)" fill="#1d92aa"/> | ||||
|                     </g> | ||||
|                   </g> | ||||
|                 </g> | ||||
|                 <path id="Path_14022" data-name="Path 14022" d="M278.512,244.82l-.559.217c-1.269-1.74-2.306-4.878-3.394-8.171-1.155-3.49-2.348-7.1-3.754-8.53a57.1,57.1,0,0,0-5.661-4.384c-5.13-3.712-10.948-7.918-11.336-10.484-.411-2.728.883-6.612,1.658-8.611l.6.027c-.735,1.876-2.105,5.844-1.7,8.488.349,2.306,6.559,6.8,11.093,10.08a57.033,57.033,0,0,1,5.737,4.447c1.5,1.532,2.664,5.043,3.894,8.764,1.062,3.213,2.158,6.527,3.427,8.156" transform="translate(-182.796 -143.179)" fill="#126055"/> | ||||
|                 <g id="Group_8857" data-name="Group 8857" transform="translate(75.901 63.521)" opacity="0.1" style="isolation: isolate"> | ||||
|                   <g id="Group_8856" data-name="Group 8856"> | ||||
|                     <g id="Group_8855" data-name="Group 8855" clip-path="url(#clip-path-9)"> | ||||
|                       <path id="Path_14023" data-name="Path 14023" d="M276.146,218.472s-2.06-1.451-4.646-3.258l3.777,1.629a17.714,17.714,0,0,0,1.317-5.865c.034,3.146-.447,7.494-.447,7.494" transform="translate(-271.5 -210.978)"/> | ||||
|                     </g> | ||||
|                   </g> | ||||
|                 </g> | ||||
|                 <path id="Path_14024" data-name="Path 14024" d="M254.676,166.173l8.951.987a85.559,85.559,0,0,0,2.188-16.281,16.509,16.509,0,0,1-6.508.8,16.257,16.257,0,0,1-5.807-2.133,110.806,110.806,0,0,1,1.176,16.627" transform="translate(-182.631 -104.521)" fill="#2e353a"/> | ||||
|                 <path id="Path_14025" data-name="Path 14025" d="M270.6,150.361a4.087,4.087,0,0,1-2.663-1.682c1.54-1.207.685-3.784.685-3.784l2.545.882a8.849,8.849,0,0,0-.242,1.168c-.222,1.7.492,1.816.492,1.816.348.986-.816,1.6-.816,1.6" transform="translate(-193.029 -101.27)" fill="#e4897b"/> | ||||
|                 <g id="Group_8860" data-name="Group 8860" transform="translate(75.589 43.625)" opacity="0.2" style="isolation: isolate"> | ||||
|                   <g id="Group_8859" data-name="Group 8859"> | ||||
|                     <g id="Group_8858" data-name="Group 8858" clip-path="url(#clip-path-10)"> | ||||
|                       <path id="Path_14026" data-name="Path 14026" d="M272.928,145.777a8.851,8.851,0,0,0-.242,1.168,3.024,3.024,0,0,1-2.3-2.05Z" transform="translate(-270.383 -144.895)"/> | ||||
|                     </g> | ||||
|                   </g> | ||||
|                 </g> | ||||
|                 <path id="Path_14027" data-name="Path 14027" d="M269.361,121.076c2.282.178,2.928,1.551,2.925,4.1,0,3.181-.806,5.379-3.614,4.481-3.813-1.22-3.1-8.872.689-8.577" transform="translate(-191.738 -84.616)" fill="#e4897b"/> | ||||
|                 <path id="Path_14028" data-name="Path 14028" d="M282.814,133.863a5.312,5.312,0,0,0,.6,1.071.61.61,0,0,1-.62.231Z" transform="translate(-203.732 -93.559)" fill="#de5753"/> | ||||
|                 <path id="Path_14029" data-name="Path 14029" d="M276.76,131.956c-.009.2-.118.361-.243.354s-.219-.176-.21-.378.118-.361.243-.354.219.176.21.378" transform="translate(-199.062 -91.962)" fill="#2e353a"/> | ||||
|                 <path id="Path_14030" data-name="Path 14030" d="M276.99,131.251l.416-.151s-.22.359-.416.151" transform="translate(-199.554 -91.628)" fill="#2e353a"/> | ||||
|                 <path id="Path_14031" data-name="Path 14031" d="M285.117,132.224c-.009.2-.118.361-.243.354s-.219-.176-.21-.378.118-.361.243-.354.219.176.21.378" transform="translate(-205.082 -92.15)" fill="#2e353a"/> | ||||
|                 <path id="Path_14032" data-name="Path 14032" d="M285.346,131.52l.416-.151s-.22.359-.416.151" transform="translate(-205.574 -91.816)" fill="#2e353a"/> | ||||
|                 <path id="Path_14033" data-name="Path 14033" d="M275.641,127.141a1.127,1.127,0,0,0-1.015.294" transform="translate(-197.851 -88.846)" fill="none" stroke="#263238" stroke-linecap="round" stroke-linejoin="round" stroke-width="0.696"/> | ||||
|                 <path id="Path_14034" data-name="Path 14034" d="M284.213,127.23a1.009,1.009,0,0,1,.9.273" transform="translate(-204.758 -88.909)" fill="none" stroke="#263238" stroke-linecap="round" stroke-linejoin="round" stroke-width="0.696"/> | ||||
|                 <path id="Path_14035" data-name="Path 14035" d="M277.4,139.972a6.506,6.506,0,0,0-.323.833c-.049-.008-.1-.016-.146-.026-.659-.124-.927-.416-1.024-.7a1,1,0,0,1-.037-.438.959.959,0,0,1,.059-.244,3.027,3.027,0,0,0,1.247.532c.137.033.224.046.224.046" transform="translate(-198.74 -97.425)" fill="#2e353a"/> | ||||
|                 <path id="Path_14036" data-name="Path 14036" d="M277.2,139.926l-.1.243a1.926,1.926,0,0,1-1.2-.531.952.952,0,0,1,.059-.244,3.026,3.026,0,0,0,1.247.532" transform="translate(-198.765 -97.425)" fill="#fff"/> | ||||
|                 <path id="Path_14037" data-name="Path 14037" d="M277.048,142.361c-.659-.124-.927-.416-1.024-.7a2.066,2.066,0,0,1,.707.294.86.86,0,0,1,.317.409" transform="translate(-198.858 -99.008)" fill="#de5753"/> | ||||
|                 <path id="Path_14038" data-name="Path 14038" d="M265.157,122.691a7.738,7.738,0,0,0,1.146-3.507s4.656-1.637,4.547,3.323c0,0,.737-4.355-3.179-4.758s-4.315,5.778-2.413,7.778a3.252,3.252,0,0,1-.1-2.835" transform="translate(-190.307 -82.283)" fill="#2e353a"/> | ||||
|                 <path id="Path_14039" data-name="Path 14039" d="M264.724,133.543a1.048,1.048,0,0,0-1.011-1.069c-.713.028-1.155,1.565.579,2.078.249.074.409-.181.432-1.009" transform="translate(-189.536 -92.588)" fill="#e4897b"/> | ||||
|                 <path id="Path_14040" data-name="Path 14040" d="M237.873,107.488a8.912,8.912,0,0,1,.736,6.06s-6.188-7.417-6.747-9.109,3.469-11.327,3.469-11.327a9.2,9.2,0,0,1-.533-2.484c.14-.452,1.887-1.505,2.306-1.2s.28,3.613.07,4.065l-.21.452s-2.154,8.725-1.881,9.368,2.789,4.18,2.789,4.18" transform="translate(-167.005 -62.462)" fill="#e4897b"/> | ||||
|                 <path id="Path_14041" data-name="Path 14041" d="M267.432,119.779s-2.449,3.95-5.7,3.317c0,0-.159-2.991,2.016-3.648a4.62,4.62,0,0,1,3.683.33" transform="translate(-188.561 -83.327)" fill="#2e353a"/> | ||||
|                 <path id="Path_14042" data-name="Path 14042" d="M276.032,121.068s1.02,1.65-1.759,2.741" transform="translate(-197.597 -84.617)" fill="none" stroke="#263238" stroke-linecap="round" stroke-linejoin="round" stroke-width="0.48"/> | ||||
|                 <path id="Path_14043" data-name="Path 14043" d="M284.369,119.5s1.17,1.158,1.656-.5" transform="translate(-204.87 -83.169)" fill="none" stroke="#263238" stroke-linecap="round" stroke-linejoin="round" stroke-width="0.48"/> | ||||
|                 <path id="Path_14044" data-name="Path 14044" d="M266.271,166.48l.253-.464s-.312-.1-.854-.235c.227-1.683.93-8.052-.785-12.184l-.318.263a8.484,8.484,0,0,1,.874,3.876l-5.924-.038s-.68-3.575-1.522-4.673l-.212.107a28.5,28.5,0,0,1,1.248,12.016,16.047,16.047,0,0,0-2.78.416l.226.452a32.211,32.211,0,0,1,5.022-.216l3.113.306a15.805,15.805,0,0,1,1.66.374" transform="translate(-184.612 -106.953)" fill="#407bff"/> | ||||
|                 <g id="Group_8863" data-name="Group 8863" transform="translate(71.638 46.074)" style="isolation: isolate"> | ||||
|                   <g id="Group_8862" data-name="Group 8862"> | ||||
|                     <g id="Group_8861" data-name="Group 8861" clip-path="url(#clip-path-11)"> | ||||
|                       <path id="Path_14045" data-name="Path 14045" d="M266.271,166.48l.253-.464s-.312-.1-.854-.235c.227-1.683.93-8.052-.785-12.184l-.318.263a8.484,8.484,0,0,1,.874,3.876l-5.924-.038s-.68-3.575-1.522-4.673l-.212.107a28.5,28.5,0,0,1,1.248,12.016,16.047,16.047,0,0,0-2.78.416l.226.452a32.211,32.211,0,0,1,5.022-.216l3.113.306a15.805,15.805,0,0,1,1.66.374" transform="translate(-256.25 -153.026)" fill="#fff"/> | ||||
|                     </g> | ||||
|                   </g> | ||||
|                 </g> | ||||
|                 <path id="Path_14046" data-name="Path 14046" d="M274.7,176.706a1.261,1.261,0,0,1-.229.816.864.864,0,0,1-.71.28.848.848,0,0,1-.685-.274,1.184,1.184,0,0,1-.232-.786v-.108h.582v.15a.471.471,0,0,0,.087.322.3.3,0,0,0,.232.093.308.308,0,0,0,.252-.108.675.675,0,0,0,.089-.409v-.771a.636.636,0,0,1-1.082.126,1.256,1.256,0,0,1-.171-.717v-.771a1.156,1.156,0,0,1,.24-.786,1.014,1.014,0,0,1,1.387,0,1.156,1.156,0,0,1,.24.786Zm-.934-1.024a.3.3,0,0,0,.232-.094.47.47,0,0,0,.087-.322v-.759a.459.459,0,0,0-.087-.319.343.343,0,0,0-.464,0,.459.459,0,0,0-.087.319v.759a.469.469,0,0,0,.087.322.3.3,0,0,0,.232.094" transform="translate(-196.557 -121.255)" fill="#125765"/> | ||||
|                 <path id="Path_14047" data-name="Path 14047" d="M282.617,176.706a1.261,1.261,0,0,1-.229.816.864.864,0,0,1-.71.28.848.848,0,0,1-.685-.274,1.184,1.184,0,0,1-.232-.786v-.108h.582v.15a.471.471,0,0,0,.087.322.3.3,0,0,0,.232.093.308.308,0,0,0,.252-.108.674.674,0,0,0,.09-.409v-.771a.636.636,0,0,1-1.082.126,1.257,1.257,0,0,1-.171-.717v-.771a1.156,1.156,0,0,1,.24-.786,1.014,1.014,0,0,1,1.387,0,1.156,1.156,0,0,1,.24.786Zm-.934-1.024a.3.3,0,0,0,.232-.094.469.469,0,0,0,.087-.322v-.759a.459.459,0,0,0-.087-.319.343.343,0,0,0-.464,0,.459.459,0,0,0-.087.319v.759a.469.469,0,0,0,.087.322.3.3,0,0,0,.232.094" transform="translate(-202.263 -121.255)" fill="#125765"/> | ||||
|               </g> | ||||
|             </g> | ||||
|             <g id="Group_8873" data-name="Group 8873" transform="translate(-14 -17.831)"> | ||||
|               <g id="Group_8907" data-name="Group 8907"> | ||||
|                 <path id="Path_14048" data-name="Path 14048" d="M335.17,173.594a35.718,35.718,0,0,0-24.292-.479c-3.483,1.135-7.173,2.571-10.74,3.962q-1.448.564-2.9,1.126c-.542.209-1.5.615-1.581,1.194l.877,2.27c1.8-.674,2.709-1.04,4.557-1.76,3.534-1.376,7.19-2.8,10.6-3.911a34.29,34.29,0,0,1,20.62-.271l.763-.527-.372-.7h1.026l-1.026-.9h2.469Z" transform="translate(-213.001 -119.689)" fill="#2bb8a6"/> | ||||
|                 <path id="Path_14049" data-name="Path 14049" d="M295.981,198.514s4.729.235,6.243,1.154l.047-2.47s-.022-.151-.452-.161c-1.46-.032-4.659-.34-5.414-.763-1.717-.963.781-1.868.781-1.868s-1.578.532-1.535,1.176a10.421,10.421,0,0,1,.33,2.931" transform="translate(-212.998 -135.875)" fill="#407bff"/> | ||||
|                 <g id="Group_8868" data-name="Group 8868" transform="translate(82.653 58.532)" style="isolation: isolate"> | ||||
|                   <g id="Group_8867" data-name="Group 8867"> | ||||
|                     <g id="Group_8866" data-name="Group 8866" clip-path="url(#clip-path-12)"> | ||||
|                       <path id="Path_14050" data-name="Path 14050" d="M295.981,198.514s4.729.235,6.243,1.154l.047-2.47s-.022-.151-.452-.161c-1.46-.032-4.659-.34-5.414-.763-1.717-.963.781-1.868.781-1.868s-1.578.532-1.535,1.176a10.421,10.421,0,0,1,.33,2.931" transform="translate(-295.651 -194.407)" fill="#126055"/> | ||||
|                     </g> | ||||
|                   </g> | ||||
|                 </g> | ||||
|                 <g id="Group_8871" data-name="Group 8871" transform="translate(28.236 50.054)" style="isolation: isolate"> | ||||
|                   <g id="Group_8870" data-name="Group 8870"> | ||||
|                     <g id="Group_8869" data-name="Group 8869" clip-path="url(#clip-path-13)"> | ||||
|                       <path id="Path_14051" data-name="Path 14051" d="M162.458,180.077a.486.486,0,0,1-.308.569,14.681,14.681,0,0,1-4.38.608c-6.352,0-14.316-3.1-22.642-6.347-3.534-1.376-7.19-2.8-10.6-3.911a34.288,34.288,0,0,0-20.62-.271l-.763-.527.372-.7H102.49l1.026-.9H101v0a35.8,35.8,0,0,1,24.316-.479c3.483,1.135,7.185,2.572,10.752,3.962,9.673,3.77,20.479,7,25.608,5.573.328-.092.3-.186.212-.237a.369.369,0,0,0-.136-.042c.248.015.294.12.3.216a21.119,21.119,0,0,0,.409,2.491" transform="translate(-101 -166.248)" fill="#2bb8a6"/> | ||||
|                     </g> | ||||
|                   </g> | ||||
|                 </g> | ||||
|               </g> | ||||
|             </g> | ||||
|           </g> | ||||
|         </g> | ||||
|         <path id="Path_13973" data-name="Path 13973" d="M-122.1,0,64.718-.222A14.962,14.962,0,0,1,79.68,14.741V72.595A14.962,14.962,0,0,1,64.718,87.557l-215.6.221Z" transform="translate(254 4.523)" fill="#125765"/> | ||||
|         <g id="Mask_Group_9" data-name="Mask Group 9" clip-path="url(#clip-path-14)"> | ||||
|           <g id="Group_8909" data-name="Group 8909"> | ||||
|             <g id="Group_8908" data-name="Group 8908" transform="translate(0 4.523)"> | ||||
|               <g id="Group_8886" data-name="Group 8886" transform="matrix(0.309, -0.951, 0.951, 0.309, 84.633, 94.705)"> | ||||
|                 <g id="Group_8885" data-name="Group 8885" transform="translate(0)" clip-path="url(#clip-path-15)"> | ||||
|                   <rect id="Rectangle_17623" data-name="Rectangle 17623" width="111.63" height="15.948" transform="translate(0 0)" fill="#407bff"/> | ||||
|                   <g id="Group_8879" data-name="Group 8879" transform="translate(0 0)"> | ||||
|                     <g id="Group_8878" data-name="Group 8878" clip-path="url(#clip-path-16)"> | ||||
|                       <g id="Group_8877" data-name="Group 8877" transform="translate(0 0)" style="isolation: isolate"> | ||||
|                         <g id="Group_8876" data-name="Group 8876" transform="translate(0)"> | ||||
|                           <g id="Group_8875" data-name="Group 8875" clip-path="url(#clip-path-16)"> | ||||
|                             <rect id="Rectangle_17624" data-name="Rectangle 17624" width="111.63" height="15.894" transform="translate(0 0)" fill="#fff"/> | ||||
|                           </g> | ||||
|                         </g> | ||||
|                       </g> | ||||
|                     </g> | ||||
|                   </g> | ||||
|                   <rect id="Rectangle_17628" data-name="Rectangle 17628" width="7.973" height="7.973" transform="translate(0 7.974)" fill="#2e353a"/> | ||||
|                   <rect id="Rectangle_17631" data-name="Rectangle 17631" width="7.974" height="7.973" transform="translate(7.973 0.001)" fill="#2e353a"/> | ||||
|                   <rect id="Rectangle_17632" data-name="Rectangle 17632" width="7.974" height="7.974" transform="translate(15.947 7.973)" fill="#2e353a"/> | ||||
|                   <rect id="Rectangle_17635" data-name="Rectangle 17635" width="7.973" height="7.973" transform="translate(23.921 0.001)" fill="#2e353a"/> | ||||
|                   <rect id="Rectangle_17636" data-name="Rectangle 17636" width="7.974" height="7.974" transform="translate(31.894 7.973)" fill="#2e353a"/> | ||||
|                   <rect id="Rectangle_17639" data-name="Rectangle 17639" width="7.974" height="7.973" transform="translate(39.868 0.001)" fill="#2e353a"/> | ||||
|                   <rect id="Rectangle_17640" data-name="Rectangle 17640" width="7.974" height="7.974" transform="translate(47.842 7.973)" fill="#2e353a"/> | ||||
|                   <rect id="Rectangle_17643" data-name="Rectangle 17643" width="7.974" height="7.973" transform="translate(55.815 0.001)" fill="#2e353a"/> | ||||
|                   <rect id="Rectangle_17644" data-name="Rectangle 17644" width="7.974" height="7.974" transform="translate(63.788 7.973)" fill="#2e353a"/> | ||||
|                   <rect id="Rectangle_17647" data-name="Rectangle 17647" width="7.973" height="7.973" transform="translate(71.762 0.001)" fill="#2e353a"/> | ||||
|                   <rect id="Rectangle_17648" data-name="Rectangle 17648" width="7.974" height="7.974" transform="translate(79.736 7.973)" fill="#2e353a"/> | ||||
|                   <rect id="Rectangle_17651" data-name="Rectangle 17651" width="7.973" height="7.973" transform="translate(87.71 0.001)" fill="#2e353a"/> | ||||
|                   <rect id="Rectangle_17652" data-name="Rectangle 17652" width="7.974" height="7.974" transform="translate(95.683 7.973)" fill="#2e353a"/> | ||||
|                   <rect id="Rectangle_17654" data-name="Rectangle 17654" width="7.974" height="7.973" transform="translate(103.656 0.001)" fill="#2e353a"/> | ||||
|                   <g id="Group_8884" data-name="Group 8884" transform="translate(0 0)"> | ||||
|                     <g id="Group_8883" data-name="Group 8883" clip-path="url(#clip-path-18)"> | ||||
|                       <g id="Group_8882" data-name="Group 8882" transform="translate(0 0)" opacity="0.1" style="isolation: isolate"> | ||||
|                         <g id="Group_8881" data-name="Group 8881" transform="translate(0)"> | ||||
|                           <g id="Group_8880" data-name="Group 8880" clip-path="url(#clip-path-19)"> | ||||
|                             <rect id="Rectangle_17656" data-name="Rectangle 17656" width="7.974" height="7.974" transform="translate(0 7.973)" fill="#fff"/> | ||||
|                             <rect id="Rectangle_17659" data-name="Rectangle 17659" width="7.974" height="7.974" transform="translate(7.974 0)" fill="#fff"/> | ||||
|                             <rect id="Rectangle_17660" data-name="Rectangle 17660" width="7.974" height="7.974" transform="translate(15.947 7.973)" fill="#fff"/> | ||||
|                             <rect id="Rectangle_17663" data-name="Rectangle 17663" width="7.974" height="7.974" transform="translate(23.921 0)" fill="#fff"/> | ||||
|                             <rect id="Rectangle_17664" data-name="Rectangle 17664" width="7.974" height="7.974" transform="translate(31.894 7.973)" fill="#fff"/> | ||||
|                             <rect id="Rectangle_17667" data-name="Rectangle 17667" width="7.974" height="7.974" transform="translate(39.868 0)" fill="#fff"/> | ||||
|                             <rect id="Rectangle_17668" data-name="Rectangle 17668" width="7.974" height="7.974" transform="translate(47.842 7.973)" fill="#fff"/> | ||||
|                             <rect id="Rectangle_17671" data-name="Rectangle 17671" width="7.974" height="7.974" transform="translate(55.815 0)" fill="#fff"/> | ||||
|                             <rect id="Rectangle_17672" data-name="Rectangle 17672" width="7.974" height="7.974" transform="translate(63.788 7.973)" fill="#fff"/> | ||||
|                             <rect id="Rectangle_17675" data-name="Rectangle 17675" width="7.974" height="7.974" transform="translate(71.762 0)" fill="#fff"/> | ||||
|                             <rect id="Rectangle_17676" data-name="Rectangle 17676" width="7.974" height="7.974" transform="translate(79.736 7.973)" fill="#fff"/> | ||||
|                             <rect id="Rectangle_17679" data-name="Rectangle 17679" width="7.974" height="7.974" transform="translate(87.71 0)" fill="#fff"/> | ||||
|                             <rect id="Rectangle_17680" data-name="Rectangle 17680" width="7.974" height="7.974" transform="translate(95.683 7.973)" fill="#fff"/> | ||||
|                             <rect id="Rectangle_17682" data-name="Rectangle 17682" width="7.974" height="7.974" transform="translate(103.656 0)" fill="#fff"/> | ||||
|                           </g> | ||||
|                         </g> | ||||
|                       </g> | ||||
|                     </g> | ||||
|                   </g> | ||||
|                 </g> | ||||
|               </g> | ||||
|             </g> | ||||
|           </g> | ||||
|         </g> | ||||
|       </g> | ||||
|     </g> | ||||
|     <g id="light-bulb" transform="translate(272.396 326.738)" opacity="0.07"> | ||||
|       <path id="XMLID_49_" d="M52.08,62.218V64.3a3.3,3.3,0,0,1-2.8,3.267l-.513,1.89A2.352,2.352,0,0,1,46.5,71.2H41.415a2.352,2.352,0,0,1-2.271-1.743l-.5-1.89a3.314,3.314,0,0,1-2.813-3.282V62.2A2,2,0,0,1,37.84,60.2H50.073A2.023,2.023,0,0,1,52.08,62.218Zm9.42-28.04a17.452,17.452,0,0,1-4.922,12.174,16.084,16.084,0,0,0-4.307,8.731A2.9,2.9,0,0,1,49.4,57.53H38.514A2.872,2.872,0,0,1,35.657,55.1a16.263,16.263,0,0,0-4.336-8.761A17.538,17.538,0,1,1,61.5,34.178ZM45.942,23.557a1.979,1.979,0,0,0-1.978-1.978A12.67,12.67,0,0,0,31.306,34.237a1.978,1.978,0,1,0,3.955,0,8.713,8.713,0,0,1,8.7-8.7A1.97,1.97,0,0,0,45.942,23.557ZM43.964,10.885a1.979,1.979,0,0,0,1.978-1.978V1.978a1.978,1.978,0,0,0-3.955,0V8.907A1.979,1.979,0,0,0,43.964,10.885ZM20.685,34.164a1.979,1.979,0,0,0-1.978-1.978H11.778a1.978,1.978,0,0,0,0,3.955h6.929A1.97,1.97,0,0,0,20.685,34.164ZM76.15,32.186H69.22a1.978,1.978,0,0,0,0,3.955H76.15a1.978,1.978,0,0,0,0-3.955ZM24.714,50.63l-4.908,4.908a1.973,1.973,0,0,0,2.783,2.8L27.5,53.428a1.973,1.973,0,1,0-2.783-2.8ZM61.822,18.283a1.975,1.975,0,0,0,1.392-.571L68.122,12.8a1.979,1.979,0,1,0-2.8-2.8l-4.908,4.908a1.972,1.972,0,0,0,0,2.8A2.009,2.009,0,0,0,61.822,18.283ZM24.714,17.7A1.973,1.973,0,1,0,27.5,14.9L22.589,9.991a1.979,1.979,0,0,0-2.8,2.8Zm38.5,32.933a1.979,1.979,0,0,0-2.8,2.8l4.908,4.908a1.973,1.973,0,0,0,2.784-2.8Z" fill="#fff"/> | ||||
|     </g> | ||||
|   </g> | ||||
| </svg> | ||||
| After Width: | Height: | Size: 37 KiB | 
											
												
													File diff suppressed because one or more lines are too long
												
											
										
									
								
											
												
													File diff suppressed because one or more lines are too long
												
											
										
									
								
											
												
													File diff suppressed because one or more lines are too long
												
											
										
									
								
											
												
													File diff suppressed because one or more lines are too long
												
											
										
									
								
											
												
													File diff suppressed because one or more lines are too long
												
											
										
									
								
											
												
													File diff suppressed because one or more lines are too long
												
											
										
									
								| @ -0,0 +1,22 @@ | ||||
| import 'package:flutter/material.dart'; | ||||
| import 'package:mohem_flutter_app/classes/colors.dart'; | ||||
| 
 | ||||
| class MyDecorations { | ||||
|   static Decoration shadowDecoration = BoxDecoration( | ||||
|     color: MyColors.kWhiteColor, | ||||
|     borderRadius: BorderRadius.circular(15), | ||||
|     boxShadow: [ | ||||
|       BoxShadow( | ||||
|         color: const Color(0xff000000).withOpacity(.05), | ||||
|         blurRadius: 26, | ||||
|         offset: const Offset(0, -3), | ||||
|       ), | ||||
|     ], | ||||
|   ); | ||||
| 
 | ||||
|   static Decoration answerContainerDecoration = BoxDecoration( | ||||
|     borderRadius: BorderRadius.circular(10), | ||||
|     color: MyColors.greyF7Color, | ||||
|     border: Border.all(width: 1, color: MyColors.lightGreyEFColor), | ||||
|   ); | ||||
| } | ||||
| @ -0,0 +1,7 @@ | ||||
| class MyLottieConsts { | ||||
|   static const String hourGlassLottie = "assets/lottie/hourglass.json"; | ||||
|   static const String celebrate1Lottie = "assets/lottie/celebrate1.json"; | ||||
|   static const String celebrate2Lottie = "assets/lottie/celebrate2.json"; | ||||
|   static const String winnerLottie = "assets/lottie/winner3.json"; | ||||
|   static const String allQuestions = "assets/lottie/all_questions.json"; | ||||
| } | ||||
| @ -0,0 +1,99 @@ | ||||
| class Advertisement { | ||||
|   Advertisement({ | ||||
|     this.advertisementId, | ||||
|     this.advertisementTitle, | ||||
|     this.durationInSeconds, | ||||
|     this.showDelete, | ||||
|     this.acknowledgment, | ||||
|     this.viewAttachFileColl, | ||||
|     this.isActive, | ||||
|     this.pageSize, | ||||
|     this.pageNo, | ||||
|     this.languageId, | ||||
|   }); | ||||
| 
 | ||||
|   final int? advertisementId; | ||||
|   final String? advertisementTitle; | ||||
|   final int? durationInSeconds; | ||||
|   final bool? showDelete; | ||||
|   final dynamic acknowledgment; | ||||
|   final List<ViewAttachFileColl>? viewAttachFileColl; | ||||
|   final bool? isActive; | ||||
|   final dynamic pageSize; | ||||
|   final dynamic pageNo; | ||||
|   final dynamic languageId; | ||||
| 
 | ||||
|   factory Advertisement.fromJson(Map<String, dynamic> json) => Advertisement( | ||||
|     advertisementId: json["advertisementId"] == null ? null : json["advertisementId"], | ||||
|     advertisementTitle: json["advertisementTitle"] == null ? null : json["advertisementTitle"], | ||||
|     durationInSeconds: json["durationInSeconds"] == null ? null : json["durationInSeconds"], | ||||
|     showDelete: json["showDelete"] == null ? null : json["showDelete"], | ||||
|     acknowledgment: json["acknowledgment"], | ||||
|     viewAttachFileColl: json["viewAttachFileColl"] == null ? null : List<ViewAttachFileColl>.from(json["viewAttachFileColl"].map((x) => ViewAttachFileColl.fromJson(x))), | ||||
|     isActive: json["isActive"] == null ? null : json["isActive"], | ||||
|     pageSize: json["pageSize"], | ||||
|     pageNo: json["pageNo"], | ||||
|     languageId: json["languageId"], | ||||
|   ); | ||||
| 
 | ||||
|   Map<String, dynamic> toJson() => { | ||||
|     "advertisementId": advertisementId == null ? null : advertisementId, | ||||
|     "advertisementTitle": advertisementTitle == null ? null : advertisementTitle, | ||||
|     "durationInSeconds": durationInSeconds == null ? null : durationInSeconds, | ||||
|     "showDelete": showDelete == null ? null : showDelete, | ||||
|     "acknowledgment": acknowledgment, | ||||
|     "viewAttachFileColl": viewAttachFileColl == null ? null : List<dynamic>.from(viewAttachFileColl!.map((x) => x.toJson())), | ||||
|     "isActive": isActive == null ? null : isActive, | ||||
|     "pageSize": pageSize, | ||||
|     "pageNo": pageNo, | ||||
|     "languageId": languageId, | ||||
|   }; | ||||
| } | ||||
| 
 | ||||
| class ViewAttachFileColl { | ||||
|   ViewAttachFileColl({ | ||||
|     this.attachmentId, | ||||
|     this.fileName, | ||||
|     this.contentType, | ||||
|     this.attachFileStream, | ||||
|     this.base64String, | ||||
|     this.isActive, | ||||
|     this.referenceItemId, | ||||
|     this.content, | ||||
|     this.filePath, | ||||
|   }); | ||||
| 
 | ||||
|   final dynamic attachmentId; | ||||
|   final String? fileName; | ||||
|   final String? contentType; | ||||
|   final dynamic attachFileStream; | ||||
|   final String? base64String; | ||||
|   final dynamic isActive; | ||||
|   final dynamic referenceItemId; | ||||
|   final dynamic content; | ||||
|   final dynamic filePath; | ||||
| 
 | ||||
|   factory ViewAttachFileColl.fromJson(Map<String, dynamic> json) => ViewAttachFileColl( | ||||
|     attachmentId: json["attachmentId"], | ||||
|     fileName: json["fileName"] == null ? null : json["fileName"], | ||||
|     contentType: json["contentType"] == null ? null : json["contentType"], | ||||
|     attachFileStream: json["attachFileStream"], | ||||
|     base64String: json["base64String"] == null ? null : json["base64String"], | ||||
|     isActive: json["isActive"], | ||||
|     referenceItemId: json["referenceItemId"], | ||||
|     content: json["content"], | ||||
|     filePath: json["filePath"], | ||||
|   ); | ||||
| 
 | ||||
|   Map<String, dynamic> toJson() => { | ||||
|     "attachmentId": attachmentId, | ||||
|     "fileName": fileName == null ? null : fileName, | ||||
|     "contentType": contentType == null ? null : contentType, | ||||
|     "attachFileStream": attachFileStream, | ||||
|     "base64String": base64String == null ? null : base64String, | ||||
|     "isActive": isActive, | ||||
|     "referenceItemId": referenceItemId, | ||||
|     "content": content, | ||||
|     "filePath": filePath, | ||||
|   }; | ||||
| } | ||||
| @ -0,0 +1,195 @@ | ||||
| // To parse this JSON data, do | ||||
| // | ||||
| //     final itgRes = itgResFromJson(jsonString); | ||||
| 
 | ||||
| import 'dart:convert'; | ||||
| 
 | ||||
| import 'package:mohem_flutter_app/models/itg/itg_response_model.dart'; | ||||
| 
 | ||||
| ItgMainRes itgResFromJson(String str) => ItgMainRes.fromJson(json.decode(str)); | ||||
| 
 | ||||
| String itgResToJson(ItgMainRes data) => json.encode(data.toJson()); | ||||
| 
 | ||||
| class ItgMainRes { | ||||
|   ItgMainRes({ | ||||
|     this.date, | ||||
|     this.languageId, | ||||
|     this.serviceName, | ||||
|     this.time, | ||||
|     this.androidLink, | ||||
|     this.authenticationTokenId, | ||||
|     this.data, | ||||
|     this.dataw, | ||||
|     this.dietType, | ||||
|     this.dietTypeId, | ||||
|     this.errorCode, | ||||
|     this.errorEndUserMessage, | ||||
|     this.errorEndUserMessageN, | ||||
|     this.errorMessage, | ||||
|     this.errorType, | ||||
|     this.foodCategory, | ||||
|     this.iosLink, | ||||
|     this.isAuthenticated, | ||||
|     this.mealOrderStatus, | ||||
|     this.mealType, | ||||
|     this.messageStatus, | ||||
|     this.numberOfResultRecords, | ||||
|     this.patientBlodType, | ||||
|     this.successMsg, | ||||
|     this.successMsgN, | ||||
|     this.vidaUpdatedResponse, | ||||
|     this.itgRequest, | ||||
|     this.itgFormAttachmentsList, | ||||
|     this.message, | ||||
|     this.mohemmItgDepartmentSectionsList, | ||||
|     this.mohemmItgPendingTaskResponseItem, | ||||
|     this.mohemmItgProjectDepartmentsList, | ||||
|     this.mohemmItgResponseItem, | ||||
|     this.mohemmItgSectionTopicsList, | ||||
|     this.mohemmItgTicketDetailsList, | ||||
|     this.mohemmItgTicketTransactionsList, | ||||
|     this.mohemmItgTicketsByEmployeeList, | ||||
|     this.mohemmItgProjectsList, | ||||
|     this.mohemmItgTicketTypesList, | ||||
|     this.referenceNumber, | ||||
|     this.requestType, | ||||
|     this.totalCount, | ||||
|     this.statuseCode, | ||||
|   }); | ||||
| 
 | ||||
|   final dynamic date; | ||||
|   final int? languageId; | ||||
|   final int? serviceName; | ||||
|   final dynamic time; | ||||
|   final dynamic androidLink; | ||||
|   final dynamic authenticationTokenId; | ||||
|   final dynamic data; | ||||
|   final bool? dataw; | ||||
|   final int? dietType; | ||||
|   final int? dietTypeId; | ||||
|   final dynamic errorCode; | ||||
|   final dynamic errorEndUserMessage; | ||||
|   final dynamic errorEndUserMessageN; | ||||
|   final dynamic errorMessage; | ||||
|   final int? errorType; | ||||
|   final int? foodCategory; | ||||
|   final dynamic iosLink; | ||||
|   final bool? isAuthenticated; | ||||
|   final int? mealOrderStatus; | ||||
|   final int? mealType; | ||||
|   final int? messageStatus; | ||||
|   final int? numberOfResultRecords; | ||||
|   final dynamic patientBlodType; | ||||
|   final dynamic successMsg; | ||||
|   final dynamic successMsgN; | ||||
|   final dynamic vidaUpdatedResponse; | ||||
|   final dynamic itgRequest; | ||||
|   final dynamic itgFormAttachmentsList; | ||||
|   final dynamic message; | ||||
|   final dynamic mohemmItgDepartmentSectionsList; | ||||
|   final dynamic mohemmItgPendingTaskResponseItem; | ||||
|   final dynamic mohemmItgProjectDepartmentsList; | ||||
|   final MohemmItgResponseItem? mohemmItgResponseItem; | ||||
|   final dynamic mohemmItgSectionTopicsList; | ||||
|   final dynamic mohemmItgTicketDetailsList; | ||||
|   final dynamic mohemmItgTicketTransactionsList; | ||||
|   final dynamic mohemmItgTicketsByEmployeeList; | ||||
|   final dynamic mohemmItgProjectsList; | ||||
|   final dynamic mohemmItgTicketTypesList; | ||||
|   final dynamic referenceNumber; | ||||
|   final dynamic requestType; | ||||
|   final int? totalCount; | ||||
|   final int? statuseCode; | ||||
| 
 | ||||
|   factory ItgMainRes.fromJson(Map<String, dynamic> json) => ItgMainRes( | ||||
|     date: json["Date"], | ||||
|     languageId: json["LanguageID"] == null ? null : json["LanguageID"], | ||||
|     serviceName: json["ServiceName"] == null ? null : json["ServiceName"], | ||||
|     time: json["Time"], | ||||
|     androidLink: json["AndroidLink"], | ||||
|     authenticationTokenId: json["AuthenticationTokenID"], | ||||
|     data: json["Data"], | ||||
|     dataw: json["Dataw"] == null ? null : json["Dataw"], | ||||
|     dietType: json["DietType"] == null ? null : json["DietType"], | ||||
|     dietTypeId: json["DietTypeID"] == null ? null : json["DietTypeID"], | ||||
|     errorCode: json["ErrorCode"], | ||||
|     errorEndUserMessage: json["ErrorEndUserMessage"], | ||||
|     errorEndUserMessageN: json["ErrorEndUserMessageN"], | ||||
|     errorMessage: json["ErrorMessage"], | ||||
|     errorType: json["ErrorType"] == null ? null : json["ErrorType"], | ||||
|     foodCategory: json["FoodCategory"] == null ? null : json["FoodCategory"], | ||||
|     iosLink: json["IOSLink"], | ||||
|     isAuthenticated: json["IsAuthenticated"] == null ? null : json["IsAuthenticated"], | ||||
|     mealOrderStatus: json["MealOrderStatus"] == null ? null : json["MealOrderStatus"], | ||||
|     mealType: json["MealType"] == null ? null : json["MealType"], | ||||
|     messageStatus: json["MessageStatus"] == null ? null : json["MessageStatus"], | ||||
|     numberOfResultRecords: json["NumberOfResultRecords"] == null ? null : json["NumberOfResultRecords"], | ||||
|     patientBlodType: json["PatientBlodType"], | ||||
|     successMsg: json["SuccessMsg"], | ||||
|     successMsgN: json["SuccessMsgN"], | ||||
|     vidaUpdatedResponse: json["VidaUpdatedResponse"], | ||||
|     itgRequest: json["ITGRequest"], | ||||
|     itgFormAttachmentsList: json["Itg_FormAttachmentsList"], | ||||
|     message: json["Message"], | ||||
|     mohemmItgDepartmentSectionsList: json["Mohemm_ITG_DepartmentSectionsList"], | ||||
|     mohemmItgPendingTaskResponseItem: json["Mohemm_ITG_Pending_Task_ResponseItem"], | ||||
|     mohemmItgProjectDepartmentsList: json["Mohemm_ITG_ProjectDepartmentsList"], | ||||
|     mohemmItgResponseItem: json["Mohemm_ITG_ResponseItem"] ==null ? null : MohemmItgResponseItem.fromJson(jsonDecode(json["Mohemm_ITG_ResponseItem"])), | ||||
|     mohemmItgSectionTopicsList: json["Mohemm_ITG_SectionTopicsList"], | ||||
|     mohemmItgTicketDetailsList: json["Mohemm_ITG_TicketDetailsList"], | ||||
|     mohemmItgTicketTransactionsList: json["Mohemm_ITG_TicketTransactionsList"], | ||||
|     mohemmItgTicketsByEmployeeList: json["Mohemm_ITG_TicketsByEmployeeList"], | ||||
|     mohemmItgProjectsList: json["Mohemm_Itg_ProjectsList"], | ||||
|     mohemmItgTicketTypesList: json["Mohemm_Itg_TicketTypesList"], | ||||
|     referenceNumber: json["ReferenceNumber"], | ||||
|     requestType: json["RequestType"], | ||||
|     totalCount: json["TotalCount"] == null ? null : json["TotalCount"], | ||||
|     statuseCode: json["statuseCode"] == null ? null : json["statuseCode"], | ||||
|   ); | ||||
| 
 | ||||
|   Map<String, dynamic> toJson() => { | ||||
|     "Date": date, | ||||
|     "LanguageID": languageId == null ? null : languageId, | ||||
|     "ServiceName": serviceName == null ? null : serviceName, | ||||
|     "Time": time, | ||||
|     "AndroidLink": androidLink, | ||||
|     "AuthenticationTokenID": authenticationTokenId, | ||||
|     "Data": data, | ||||
|     "Dataw": dataw == null ? null : dataw, | ||||
|     "DietType": dietType == null ? null : dietType, | ||||
|     "DietTypeID": dietTypeId == null ? null : dietTypeId, | ||||
|     "ErrorCode": errorCode, | ||||
|     "ErrorEndUserMessage": errorEndUserMessage, | ||||
|     "ErrorEndUserMessageN": errorEndUserMessageN, | ||||
|     "ErrorMessage": errorMessage, | ||||
|     "ErrorType": errorType == null ? null : errorType, | ||||
|     "FoodCategory": foodCategory == null ? null : foodCategory, | ||||
|     "IOSLink": iosLink, | ||||
|     "IsAuthenticated": isAuthenticated == null ? null : isAuthenticated, | ||||
|     "MealOrderStatus": mealOrderStatus == null ? null : mealOrderStatus, | ||||
|     "MealType": mealType == null ? null : mealType, | ||||
|     "MessageStatus": messageStatus == null ? null : messageStatus, | ||||
|     "NumberOfResultRecords": numberOfResultRecords == null ? null : numberOfResultRecords, | ||||
|     "PatientBlodType": patientBlodType, | ||||
|     "SuccessMsg": successMsg, | ||||
|     "SuccessMsgN": successMsgN, | ||||
|     "VidaUpdatedResponse": vidaUpdatedResponse, | ||||
|     "ITGRequest": itgRequest, | ||||
|     "Itg_FormAttachmentsList": itgFormAttachmentsList, | ||||
|     "Message": message, | ||||
|     "Mohemm_ITG_DepartmentSectionsList": mohemmItgDepartmentSectionsList, | ||||
|     "Mohemm_ITG_Pending_Task_ResponseItem": mohemmItgPendingTaskResponseItem, | ||||
|     "Mohemm_ITG_ProjectDepartmentsList": mohemmItgProjectDepartmentsList, | ||||
|     "Mohemm_ITG_ResponseItem": mohemmItgResponseItem == null ? null : mohemmItgResponseItem, | ||||
|     "Mohemm_ITG_SectionTopicsList": mohemmItgSectionTopicsList, | ||||
|     "Mohemm_ITG_TicketDetailsList": mohemmItgTicketDetailsList, | ||||
|     "Mohemm_ITG_TicketTransactionsList": mohemmItgTicketTransactionsList, | ||||
|     "Mohemm_ITG_TicketsByEmployeeList": mohemmItgTicketsByEmployeeList, | ||||
|     "Mohemm_Itg_ProjectsList": mohemmItgProjectsList, | ||||
|     "Mohemm_Itg_TicketTypesList": mohemmItgTicketTypesList, | ||||
|     "ReferenceNumber": referenceNumber, | ||||
|     "RequestType": requestType, | ||||
|     "TotalCount": totalCount == null ? null : totalCount, | ||||
|     "statuseCode": statuseCode == null ? null : statuseCode, | ||||
|   }; | ||||
| } | ||||
| @ -0,0 +1,159 @@ | ||||
| // To parse this JSON data, do | ||||
| // | ||||
| //     final mohemmItgResponseItem = mohemmItgResponseItemFromJson(jsonString); | ||||
| 
 | ||||
| import 'dart:convert'; | ||||
| 
 | ||||
| import 'package:mohem_flutter_app/models/itg/advertisement.dart'; | ||||
| 
 | ||||
| MohemmItgResponseItem mohemmItgResponseItemFromJson(String str) => MohemmItgResponseItem.fromJson(json.decode(str)); | ||||
| 
 | ||||
| String mohemmItgResponseItemToJson(MohemmItgResponseItem data) => json.encode(data.toJson()); | ||||
| 
 | ||||
| class MohemmItgResponseItem { | ||||
|   MohemmItgResponseItem({ | ||||
|     this.statusCode, | ||||
|     this.message, | ||||
|     this.originalErrMsg, | ||||
|     this.result, | ||||
|   }); | ||||
| 
 | ||||
|   final int? statusCode; | ||||
|   final dynamic? message; | ||||
|   final dynamic? originalErrMsg; | ||||
|   final ItgResponseResult? result; | ||||
| 
 | ||||
|   factory MohemmItgResponseItem.fromJson(Map<String, dynamic> json) => MohemmItgResponseItem( | ||||
|         statusCode: json["statusCode"] == null ? null : json["statusCode"], | ||||
|         message: json["message"], | ||||
|         originalErrMsg: json["originalErrMsg"], | ||||
|         result: json["result"] == null ? null : ItgResponseResult.fromJson(json["result"]), | ||||
|       ); | ||||
| 
 | ||||
|   Map<String, dynamic> toJson() => { | ||||
|         "statusCode": statusCode == null ? null : statusCode, | ||||
|         "message": message, | ||||
|         "originalErrMsg": originalErrMsg, | ||||
|         "result": result == null ? null : result!.toJson(), | ||||
|       }; | ||||
| } | ||||
| 
 | ||||
| class ItgResponseResult { | ||||
|   ItgResponseResult({ | ||||
|     this.totalItemsCount, | ||||
|     this.data, | ||||
|     this.errormsg, | ||||
|   }); | ||||
| 
 | ||||
|   final dynamic totalItemsCount; | ||||
|   final ItgResponseData? data; | ||||
|   final dynamic errormsg; | ||||
| 
 | ||||
|   factory ItgResponseResult.fromJson(Map<String, dynamic> json) => ItgResponseResult( | ||||
|         totalItemsCount: json["totalItemsCount"], | ||||
|         data: json["data"] == null ? null : ItgResponseData.fromJson(json["data"]), | ||||
|         errormsg: json["errormsg"], | ||||
|       ); | ||||
| 
 | ||||
|   Map<String, dynamic> toJson() => { | ||||
|         "totalItemsCount": totalItemsCount, | ||||
|         "data": data == null ? null : data!.toJson(), | ||||
|         "errormsg": errormsg, | ||||
|       }; | ||||
| } | ||||
| 
 | ||||
| class ItgResponseData { | ||||
|   ItgResponseData({ | ||||
|     this.notificationMasterId, | ||||
|     this.notificationType, | ||||
|     this.referenceItemId, | ||||
|     this.notificationTitle, | ||||
|     this.enableAt, | ||||
|     this.applicationItemId, | ||||
|     this.startDate, | ||||
|     this.endDate, | ||||
|     this.isRepeat, | ||||
|     this.channelId, | ||||
|     this.serviceId, | ||||
|     this.channelName, | ||||
|     this.serviceName, | ||||
|     this.isDeleted, | ||||
|     this.showDelete, | ||||
|     this.advertisement, | ||||
|     this.survey, | ||||
|     this.isActive, | ||||
|     this.pageSize, | ||||
|     this.pageNo, | ||||
|     this.languageId, | ||||
|   }); | ||||
| 
 | ||||
|   final String? notificationMasterId; | ||||
|   final String? notificationType; | ||||
|   final int? referenceItemId; | ||||
|   final String? notificationTitle; | ||||
|   final String? enableAt; | ||||
|   final dynamic applicationItemId; | ||||
|   final dynamic startDate; | ||||
|   final dynamic endDate; | ||||
|   final bool? isRepeat; | ||||
|   final int? channelId; | ||||
|   final int? serviceId; | ||||
|   final String? channelName; | ||||
|   final String? serviceName; | ||||
|   final bool? isDeleted; | ||||
|   final bool? showDelete; | ||||
|   final Advertisement? advertisement; | ||||
|   final dynamic survey; | ||||
|   final dynamic isActive; | ||||
|   final dynamic pageSize; | ||||
|   final dynamic pageNo; | ||||
|   final dynamic languageId; | ||||
| 
 | ||||
|   factory ItgResponseData.fromJson(Map<String, dynamic> json) => ItgResponseData( | ||||
|         notificationMasterId: json["notificationMasterId"] == null ? null : json["notificationMasterId"], | ||||
|         notificationType: json["notificationType"] == null ? null : json["notificationType"], | ||||
|         referenceItemId: json["referenceItemId"] == null ? null : json["referenceItemId"], | ||||
|         notificationTitle: json["notificationTitle"] == null ? null : json["notificationTitle"], | ||||
|         enableAt: json["enableAt"] == null ? null : json["enableAt"], | ||||
|         applicationItemId: json["applicationItemId"], | ||||
|         startDate: json["startDate"], | ||||
|         endDate: json["endDate"], | ||||
|         isRepeat: json["isRepeat"] == null ? null : json["isRepeat"], | ||||
|         channelId: json["channelId"] == null ? null : json["channelId"], | ||||
|         serviceId: json["serviceId"] == null ? null : json["serviceId"], | ||||
|         channelName: json["channelName"] == null ? null : json["channelName"], | ||||
|         serviceName: json["serviceName"] == null ? null : json["serviceName"], | ||||
|         isDeleted: json["isDeleted"] == null ? null : json["isDeleted"], | ||||
|         showDelete: json["showDelete"] == null ? null : json["showDelete"], | ||||
|         advertisement: json["advertisement"] == null ? null : Advertisement.fromJson(json["advertisement"]), | ||||
|         survey: json["survey"], | ||||
|         isActive: json["isActive"], | ||||
|         pageSize: json["pageSize"], | ||||
|         pageNo: json["pageNo"], | ||||
|         languageId: json["languageId"], | ||||
|       ); | ||||
| 
 | ||||
|   Map<String, dynamic> toJson() => { | ||||
|         "notificationMasterId": notificationMasterId == null ? null : notificationMasterId, | ||||
|         "notificationType": notificationType == null ? null : notificationType, | ||||
|         "referenceItemId": referenceItemId == null ? null : referenceItemId, | ||||
|         "notificationTitle": notificationTitle == null ? null : notificationTitle, | ||||
|         "enableAt": enableAt == null ? null : enableAt, | ||||
|         "applicationItemId": applicationItemId, | ||||
|         "startDate": startDate, | ||||
|         "endDate": endDate, | ||||
|         "isRepeat": isRepeat == null ? null : isRepeat, | ||||
|         "channelId": channelId == null ? null : channelId, | ||||
|         "serviceId": serviceId == null ? null : serviceId, | ||||
|         "channelName": channelName == null ? null : channelName, | ||||
|         "serviceName": serviceName == null ? null : serviceName, | ||||
|         "isDeleted": isDeleted == null ? null : isDeleted, | ||||
|         "showDelete": showDelete == null ? null : showDelete, | ||||
|         "advertisement": advertisement, | ||||
|         "survey": survey, | ||||
|         "isActive": isActive, | ||||
|         "pageSize": pageSize, | ||||
|         "pageNo": pageNo, | ||||
|         "languageId": languageId, | ||||
|       }; | ||||
| } | ||||
| @ -0,0 +1,56 @@ | ||||
| import 'package:flutter/cupertino.dart'; | ||||
| 
 | ||||
| class DummyQuestionModel { | ||||
|   String? opt1; | ||||
|   String? opt2; | ||||
|   String? opt3; | ||||
| 
 | ||||
|   DummyQuestionModel({ | ||||
|     this.opt1, | ||||
|     this.opt2, | ||||
|     this.opt3, | ||||
|   }); | ||||
| } | ||||
| 
 | ||||
| List<DummyQuestionModel> questions = <DummyQuestionModel>[ | ||||
|   DummyQuestionModel( | ||||
|     opt1: 'Riyadh 8', | ||||
|     opt2: 'Dammam', | ||||
|     opt3: 'Mecca', | ||||
|   ), | ||||
|   DummyQuestionModel( | ||||
|     opt1: 'Riyadh 7', | ||||
|     opt2: 'Dammam', | ||||
|     opt3: 'Mecca', | ||||
|   ), | ||||
|   DummyQuestionModel( | ||||
|     opt1: 'Riyadh 6', | ||||
|     opt2: 'Dammam', | ||||
|     opt3: 'Mecca', | ||||
|   ), | ||||
|   DummyQuestionModel( | ||||
|     opt1: 'Riyadh 5', | ||||
|     opt2: 'Dammam', | ||||
|     opt3: 'Mecca', | ||||
|   ), | ||||
|   DummyQuestionModel( | ||||
|     opt1: 'Riyadh 4', | ||||
|     opt2: 'Dammam', | ||||
|     opt3: 'Mecca', | ||||
|   ), | ||||
|   DummyQuestionModel( | ||||
|     opt1: 'Riyadh 3', | ||||
|     opt2: 'Dammam', | ||||
|     opt3: 'Mecca', | ||||
|   ), | ||||
|   DummyQuestionModel( | ||||
|     opt1: 'Riyadh 2', | ||||
|     opt2: 'Dammam', | ||||
|     opt3: 'Mecca', | ||||
|   ), | ||||
|   DummyQuestionModel( | ||||
|     opt1: 'Riyadh 1', | ||||
|     opt2: 'Dammam', | ||||
|     opt3: 'Mecca', | ||||
|   ), | ||||
| ]; | ||||
| @ -0,0 +1,33 @@ | ||||
| import 'package:flutter/material.dart'; | ||||
| import 'package:lottie/lottie.dart'; | ||||
| 
 | ||||
| class SuccessDialog extends StatelessWidget { | ||||
|   bool isFromDashboard; | ||||
| 
 | ||||
|   SuccessDialog(this.isFromDashboard); | ||||
| 
 | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     double size = MediaQuery.of(context).size.width / 1.8; | ||||
|     return Column( | ||||
|       crossAxisAlignment: CrossAxisAlignment.center, | ||||
|       mainAxisAlignment: MainAxisAlignment.center, | ||||
|       mainAxisSize: MainAxisSize.min, | ||||
|       children: [ | ||||
|         Container( | ||||
|           width: size, | ||||
|           height: size, | ||||
|           child: Card( | ||||
|             child: Lottie.asset('assets/lottie/lt_success.json', repeat: false, reverse: false, onLoaded: (v) { | ||||
|               print("calling_lottie " + v.seconds.toString()); | ||||
|               Future.delayed(Duration(seconds: 2)).then((value) { | ||||
|                 Navigator.pop(context); | ||||
|                 if (isFromDashboard) Navigator.pop(context); | ||||
|               }); | ||||
|             }), | ||||
|           ), | ||||
|         ), | ||||
|       ], | ||||
|     ); | ||||
|   } | ||||
| } | ||||
| @ -0,0 +1,96 @@ | ||||
| import 'dart:convert'; | ||||
| import 'dart:io' as Io; | ||||
| 
 | ||||
| import 'package:flutter/material.dart'; | ||||
| import 'package:video_player/video_player.dart'; | ||||
| 
 | ||||
| class MovieTheaterBody extends StatefulWidget { | ||||
|   final String encodedBytes; | ||||
| 
 | ||||
|   const MovieTheaterBody({required this.encodedBytes}); | ||||
| 
 | ||||
|   @override | ||||
|   _MovieTheaterBodyState createState() => _MovieTheaterBodyState(); | ||||
| } | ||||
| 
 | ||||
| class _MovieTheaterBodyState extends State<MovieTheaterBody> { | ||||
|   late Future<VideoPlayerController> _futureController; | ||||
|   late VideoPlayerController _controller; | ||||
| 
 | ||||
|   Future<VideoPlayerController> createVideoPlayer() async { | ||||
|     try { | ||||
|       var decodedBytes = base64Decode(widget.encodedBytes); | ||||
| 
 | ||||
|       var file = Io.File("decodedBezkoder.mp4"); | ||||
|       file.writeAsBytesSync(decodedBytes); | ||||
| 
 | ||||
|       VideoPlayerController controller = VideoPlayerController.file(file); | ||||
|       await controller.initialize(); | ||||
|       await controller.setLooping(true); | ||||
|       return controller; | ||||
|     } catch (e) { | ||||
|       print("object0000000"); | ||||
|       print(e); | ||||
|       return new VideoPlayerController.asset("dataSource"); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   @override | ||||
|   void initState() { | ||||
|     _futureController = createVideoPlayer(); | ||||
|     super.initState(); | ||||
|   } | ||||
| 
 | ||||
|   @override | ||||
|   void dispose() { | ||||
|     _controller.dispose(); | ||||
|     super.dispose(); | ||||
|   } | ||||
| 
 | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     return Scaffold( | ||||
|       body: Expanded( | ||||
|         child: FutureBuilder( | ||||
|           future: _futureController, | ||||
|           builder: (context, snapshot) { | ||||
|             //UST: 05/2021 - MovieTheaterBody - id:11 - 2pts - Criação | ||||
|             if (snapshot.connectionState == ConnectionState.done && snapshot.data != null) { | ||||
|               _controller = snapshot.data as VideoPlayerController; | ||||
|               return Column( | ||||
|                 mainAxisAlignment: MainAxisAlignment.center, | ||||
|                 children: [ | ||||
|                   AspectRatio( | ||||
|                     aspectRatio: _controller.value.aspectRatio, | ||||
|                     child: VideoPlayer(_controller), | ||||
|                   ), | ||||
|                   const SizedBox( | ||||
|                     height: 50, | ||||
|                   ), | ||||
|                   FloatingActionButton( | ||||
|                     onPressed: () { | ||||
|                       setState(() { | ||||
|                         if (_controller.value.isPlaying) { | ||||
|                           _controller.pause(); | ||||
|                         } else { | ||||
|                           // If the video is paused, play it. | ||||
|                           _controller.play(); | ||||
|                         } | ||||
|                       }); | ||||
|                     }, | ||||
|                     backgroundColor: Colors.green[700], | ||||
|                     child: Icon( | ||||
|                       _controller.value.isPlaying ? Icons.pause : Icons.play_arrow, | ||||
|                     ), | ||||
|                   ) | ||||
|                 ], | ||||
|               ); | ||||
|             } else { | ||||
|               return const Center(child: CircularProgressIndicator()); | ||||
|             } | ||||
|           }, | ||||
|         ), | ||||
|       ), | ||||
|     ); | ||||
|   } | ||||
| } | ||||
| @ -0,0 +1,246 @@ | ||||
| import 'package:easy_localization/easy_localization.dart'; | ||||
| import 'package:flutter/material.dart'; | ||||
| import 'package:lottie/lottie.dart'; | ||||
| import 'package:mohem_flutter_app/classes/colors.dart'; | ||||
| import 'package:mohem_flutter_app/classes/decorations_helper.dart'; | ||||
| import 'package:mohem_flutter_app/classes/lottie_consts.dart'; | ||||
| import 'package:mohem_flutter_app/config/routes.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/int_extensions.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/string_extensions.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/widget_extensions.dart'; | ||||
| import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; | ||||
| import 'package:mohem_flutter_app/ui/marathon/marathon_provider.dart'; | ||||
| import 'package:mohem_flutter_app/ui/marathon/widgets/countdown_timer.dart'; | ||||
| import 'package:mohem_flutter_app/ui/marathon/widgets/marathon_header.dart'; | ||||
| import 'package:mohem_flutter_app/widgets/button/default_button.dart'; | ||||
| import 'package:provider/provider.dart'; | ||||
| 
 | ||||
| final int dummyEndTime = DateTime.now().millisecondsSinceEpoch + 1000 * 30; | ||||
| 
 | ||||
| class MarathonIntroScreen extends StatelessWidget { | ||||
|   const MarathonIntroScreen({Key? key}) : super(key: key); | ||||
| 
 | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     MarathonProvider provider = context.watch<MarathonProvider>(); | ||||
|     return Scaffold( | ||||
|       body: Stack( | ||||
|         children: <Widget>[ | ||||
|           SingleChildScrollView( | ||||
|             child: Column( | ||||
|               children: <Widget>[ | ||||
|                 const MarathonHeader(), | ||||
|                 MarathonDetailsCard(provider: provider).paddingAll(15), | ||||
|                 MarathonTimerCard( | ||||
|                   provider: provider, | ||||
|                   timeToMarathon: dummyEndTime, | ||||
|                 ).paddingOnly(left: 15, right: 15, bottom: 15), | ||||
|                 const SizedBox(height: 100,), | ||||
|               ], | ||||
|             ), | ||||
|           ), | ||||
|           Align( | ||||
|             alignment: Alignment.bottomCenter, | ||||
|             child: MarathonFooter(provider: provider), | ||||
|           ), | ||||
|         ], | ||||
|       ), | ||||
|     ); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| class MarathonDetailsCard extends StatelessWidget { | ||||
|   final MarathonProvider provider; | ||||
| 
 | ||||
|   const MarathonDetailsCard({Key? key, required this.provider}) | ||||
|       : super(key: key); | ||||
| 
 | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     return Container( | ||||
|       width: double.infinity, | ||||
|       decoration: MyDecorations.shadowDecoration, | ||||
|       padding: const EdgeInsets.symmetric(vertical: 20, horizontal: 20), | ||||
|       child: Column( | ||||
|         mainAxisSize: MainAxisSize.min, | ||||
|         crossAxisAlignment: CrossAxisAlignment.start, | ||||
|         children: <Widget>[ | ||||
|           Column( | ||||
|             crossAxisAlignment: CrossAxisAlignment.start, | ||||
|             children: <Widget>[ | ||||
|               LocaleKeys.contestTopicAbout | ||||
|                   .tr() | ||||
|                   .toText16(color: MyColors.grey77Color), | ||||
|               "Saudi Arabia" | ||||
|                   .toText20(color: MyColors.textMixColor, isBold: true), | ||||
|               Row( | ||||
|                 children: <Widget>[ | ||||
|                   Flexible( | ||||
|                     child: | ||||
|                         "Nam suscipit turpis in pharetra euismsdef. Duis rutrum at nulla id aliquam" | ||||
|                             .toText14(color: MyColors.grey77Color), | ||||
|                   ) | ||||
|                 ], | ||||
|               ), | ||||
|               if (provider.itsMarathonTime) ...<Widget>[ | ||||
|                 5.height, | ||||
|                 Row( | ||||
|                   children: <Widget>[ | ||||
|                     LocaleKeys.prize | ||||
|                         .tr() | ||||
|                         .toText16(color: MyColors.grey77Color, isBold: true), | ||||
|                     " LED 55\" Android TV" | ||||
|                         .toText16(color: MyColors.greenColor, isBold: true), | ||||
|                   ], | ||||
|                 ), | ||||
|                 Row( | ||||
|                   children: <Widget>[ | ||||
|                     LocaleKeys.sponsoredBy | ||||
|                         .tr() | ||||
|                         .toText16(color: MyColors.grey77Color), | ||||
|                     " Extra" | ||||
|                         .toText16(color: MyColors.darkTextColor, isBold: true), | ||||
|                   ], | ||||
|                 ), | ||||
|                 10.height, | ||||
|                 Row( | ||||
|                   mainAxisAlignment: MainAxisAlignment.center, | ||||
|                   children: <Widget>[ | ||||
|                     Image.network( | ||||
|                       "https://cdn.pixabay.com/photo/2014/08/27/07/53/blog-428950_1280.jpg", | ||||
|                       height: 50, | ||||
|                       fit: BoxFit.fill, | ||||
|                       width: 120, | ||||
|                     ) | ||||
|                   ], | ||||
|                 ), | ||||
|               ] | ||||
|             ], | ||||
|           ), | ||||
|         ], | ||||
|       ), | ||||
|     ); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| class MarathonTimerCard extends StatelessWidget { | ||||
|   final int timeToMarathon; | ||||
|   final MarathonProvider provider; | ||||
| 
 | ||||
|   const MarathonTimerCard({ | ||||
|     Key? key, | ||||
|     required this.provider, | ||||
|     required this.timeToMarathon, | ||||
|   }) : super(key: key); | ||||
| 
 | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     return Container( | ||||
|       width: double.infinity, | ||||
|       decoration: MyDecorations.shadowDecoration, | ||||
|       padding: const EdgeInsets.symmetric(vertical: 20, horizontal: 20), | ||||
|       child: Column( | ||||
|         children: <Widget>[ | ||||
|           Row( | ||||
|             children: <Widget>[ | ||||
|               LocaleKeys.gameDate.tr().toText16(color: MyColors.grey77Color), | ||||
|               " 10 Oct, 2022" | ||||
|                   .toText16(color: MyColors.darkTextColor, isBold: true), | ||||
|             ], | ||||
|           ), | ||||
|           Row( | ||||
|             children: <Widget>[ | ||||
|               LocaleKeys.gameTime.tr().toText16(color: MyColors.grey77Color), | ||||
|               " 3:00pm".toText16(color: MyColors.darkTextColor, isBold: true), | ||||
|             ], | ||||
|           ), | ||||
|           Lottie.asset( | ||||
|             MyLottieConsts.hourGlassLottie, | ||||
|             height: 140, | ||||
|           ), | ||||
|           BuildCountdownTimer( | ||||
|             timeToMarathon: timeToMarathon, | ||||
|             provider: provider, | ||||
|             screenFlag: 1, | ||||
|           ), | ||||
|         ], | ||||
|       ), | ||||
|     ); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| class MarathonFooter extends StatelessWidget { | ||||
|   final MarathonProvider provider; | ||||
| 
 | ||||
|   const MarathonFooter({ | ||||
|     Key? key, | ||||
|     required this.provider, | ||||
|   }) : super(key: key); | ||||
| 
 | ||||
|   Widget buildNoteForDemo() { | ||||
|     return RichText( | ||||
|       text: TextSpan( | ||||
|         children: <InlineSpan>[ | ||||
|           TextSpan( | ||||
|             text: LocaleKeys.note.tr(), | ||||
|             style: const TextStyle( | ||||
|               color: MyColors.darkTextColor, | ||||
|               fontSize: 17, | ||||
|               letterSpacing: -0.64, | ||||
|               fontWeight: FontWeight.bold, | ||||
|             ), | ||||
|           ), | ||||
|           TextSpan( | ||||
|             text: " " + LocaleKeys.demoMarathonNoteP1.tr(), | ||||
|             style: const TextStyle( | ||||
|               color: MyColors.grey77Color, | ||||
|               fontSize: 17, | ||||
|               letterSpacing: -0.64, | ||||
|               fontWeight: FontWeight.w500, | ||||
|             ), | ||||
|           ), | ||||
|           TextSpan( | ||||
|             text: " " + LocaleKeys.demoMarathonNoteP2.tr(), | ||||
|             style: const TextStyle( | ||||
|               color: MyColors.darkTextColor, | ||||
|               fontSize: 17, | ||||
|               fontWeight: FontWeight.bold, | ||||
|             ), | ||||
|           ), | ||||
|           TextSpan( | ||||
|             text: " " + LocaleKeys.demoMarathonNoteP3.tr(), | ||||
|             style: const TextStyle( | ||||
|               color: MyColors.grey77Color, | ||||
|               fontSize: 17, | ||||
|               letterSpacing: -0.64, | ||||
|               fontWeight: FontWeight.w500, | ||||
|             ), | ||||
|           ) | ||||
|         ], | ||||
|       ), | ||||
|     ).paddingOnly(right: 21, left: 21, top: 11, bottom: 0); | ||||
|   } | ||||
| 
 | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     return provider.itsMarathonTime | ||||
|         ? DefaultButton( | ||||
|             LocaleKeys.joinMarathon.tr(), | ||||
|             () => Navigator.pushNamed(context, AppRoutes.marathonScreen), | ||||
|           ).insideContainer | ||||
|         : Container( | ||||
|             color: Colors.white, | ||||
|             child: Column( | ||||
|               mainAxisSize: MainAxisSize.min, | ||||
|               children: <Widget>[ | ||||
|                 buildNoteForDemo(), | ||||
|                 DefaultButton( | ||||
|                   LocaleKeys.joinDemoMarathon.tr(), | ||||
|                   () {}, | ||||
|                   color: MyColors.yellowColorII, | ||||
|                 ).insideContainer, | ||||
|               ], | ||||
|             ), | ||||
|           ); | ||||
|   } | ||||
| } | ||||
| @ -0,0 +1,91 @@ | ||||
| import 'dart:async'; | ||||
| 
 | ||||
| import 'package:appinio_swiper/appinio_swiper.dart'; | ||||
| import 'package:flutter/cupertino.dart'; | ||||
| import 'package:mohem_flutter_app/config/routes.dart'; | ||||
| 
 | ||||
| class MarathonProvider extends ChangeNotifier { | ||||
|   final AppinioSwiperController swiperController = AppinioSwiperController(); | ||||
| 
 | ||||
|   bool _itsMarathonTime = false; | ||||
| 
 | ||||
|   bool get itsMarathonTime => _itsMarathonTime; | ||||
| 
 | ||||
|   set itsMarathonTime(bool value) { | ||||
|     _itsMarathonTime = value; | ||||
|     notifyListeners(); | ||||
|   } | ||||
| 
 | ||||
|   bool _isMarathonCompleted = false; | ||||
| 
 | ||||
|   bool get isMarathonCompleted => _isMarathonCompleted; | ||||
| 
 | ||||
|   set isMarathonCompleted(bool value) { | ||||
|     _isMarathonCompleted = value; | ||||
|     notifyListeners(); | ||||
|   } | ||||
| 
 | ||||
|   void swipeCardLeft() { | ||||
|     currentQuestionNumber = currentQuestionNumber + 1; | ||||
|     swiperController.swipeLeft(); | ||||
|     notifyListeners(); | ||||
|   } | ||||
| 
 | ||||
|   int _currentQuestionNumber = 1; | ||||
|   final int totalQuestions = 10; | ||||
| 
 | ||||
|   int get currentQuestionNumber => _currentQuestionNumber; | ||||
| 
 | ||||
|   set currentQuestionNumber(int value) { | ||||
|     _currentQuestionNumber = value; | ||||
|     notifyListeners(); | ||||
|   } | ||||
| 
 | ||||
|   Timer timerU = Timer.periodic(const Duration(seconds: 1), (Timer timer) {}); | ||||
|   int start = 5; | ||||
| 
 | ||||
|   void startTimer(BuildContext context) { | ||||
|     start = 5; | ||||
|     const Duration oneSec = Duration(seconds: 1); | ||||
|     timerU = Timer.periodic( | ||||
|       oneSec, | ||||
|       (Timer timer) async { | ||||
|         if (start == 0) { | ||||
|           if (currentQuestionNumber == 9) { | ||||
|             timer.cancel(); | ||||
|             cancelTimer(); | ||||
|             isMarathonCompleted = true; | ||||
|             await Future<dynamic>.delayed(const Duration(seconds: 3)).whenComplete( | ||||
|               () => Navigator.pushReplacementNamed( | ||||
|                 context, | ||||
|                 AppRoutes.marathonWinnerSelection, | ||||
|               ), | ||||
|             ); | ||||
| 
 | ||||
|             resetValues(); | ||||
| 
 | ||||
|             return; | ||||
|           } | ||||
|           swipeCardLeft(); | ||||
|           timer.cancel(); | ||||
|           cancelTimer(); | ||||
|         } else { | ||||
|           start--; | ||||
|         } | ||||
|         notifyListeners(); | ||||
|       }, | ||||
|     ); | ||||
|   } | ||||
| 
 | ||||
|   void resetValues() { | ||||
|     timerU.cancel(); | ||||
|     _isMarathonCompleted = false; | ||||
|     _currentQuestionNumber = 1; | ||||
|     notifyListeners(); | ||||
|   } | ||||
| 
 | ||||
|   void cancelTimer() { | ||||
|     timerU.cancel(); | ||||
|     notifyListeners(); | ||||
|   } | ||||
| } | ||||
| @ -0,0 +1,151 @@ | ||||
| import 'dart:async'; | ||||
| 
 | ||||
| import 'package:easy_localization/easy_localization.dart'; | ||||
| import 'package:flutter/material.dart'; | ||||
| import 'package:lottie/lottie.dart'; | ||||
| import 'package:mohem_flutter_app/classes/colors.dart'; | ||||
| import 'package:mohem_flutter_app/classes/decorations_helper.dart'; | ||||
| import 'package:mohem_flutter_app/classes/lottie_consts.dart'; | ||||
| import 'package:mohem_flutter_app/config/routes.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/int_extensions.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/string_extensions.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/widget_extensions.dart'; | ||||
| import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; | ||||
| import 'package:mohem_flutter_app/ui/marathon/marathon_provider.dart'; | ||||
| import 'package:mohem_flutter_app/ui/marathon/widgets/custom_status_widget.dart'; | ||||
| import 'package:mohem_flutter_app/ui/marathon/widgets/marathon_header.dart'; | ||||
| import 'package:mohem_flutter_app/ui/marathon/widgets/question_card.dart'; | ||||
| import 'package:provider/provider.dart'; | ||||
| import 'package:steps_indicator/steps_indicator.dart'; | ||||
| 
 | ||||
| class MarathonScreen extends StatelessWidget { | ||||
|   const MarathonScreen({Key? key}) : super(key: key); | ||||
| 
 | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     MarathonProvider provider = context.watch<MarathonProvider>(); | ||||
|     return Scaffold( | ||||
|       body: SingleChildScrollView( | ||||
|         child: Column( | ||||
|           children: <Widget>[ | ||||
|             const MarathonHeader(), | ||||
|             20.height,  | ||||
|             MarathonProgressContainer(provider: provider).paddingOnly(left: 21, right: 21), | ||||
|             if (provider.isMarathonCompleted) | ||||
|               InkWell( | ||||
|                 onTap: () { | ||||
|                   Navigator.pushReplacementNamed( | ||||
|                     context, | ||||
|                     AppRoutes.marathonWinnerSelection, | ||||
|                   ); | ||||
|                 }, | ||||
|                 child: CustomStatusWidget( | ||||
|                   asset: Lottie.asset( | ||||
|                     MyLottieConsts.allQuestions, | ||||
|                     height: 200, | ||||
|                   ), | ||||
|                   title: Text( | ||||
|                     LocaleKeys.congrats.tr(), | ||||
|                     style: const TextStyle( | ||||
|                       height: 23 / 24, | ||||
|                       color: MyColors.greenColor, | ||||
|                       fontSize: 27, | ||||
|                       letterSpacing: -1, | ||||
|                       fontWeight: FontWeight.w600, | ||||
|                     ), | ||||
|                   ), | ||||
|                   subTitle: Text( | ||||
|                     LocaleKeys.allQuestionsCorrect.tr(), | ||||
|                     textAlign: TextAlign.center, | ||||
|                     style: const TextStyle(fontSize: 18, fontWeight: FontWeight.w600, color: MyColors.darkTextColor, letterSpacing: -1.08), | ||||
|                   ), | ||||
|                 ).paddingOnly(top: 12, left: 21, right: 21), | ||||
|               ) | ||||
|             else | ||||
|               QuestionCard(provider: provider).paddingOnly(top: 12, left: 21, right: 21), | ||||
|           ], | ||||
|         ), | ||||
|       ), | ||||
|     ); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| class MarathonProgressContainer extends StatefulWidget { | ||||
|   final MarathonProvider provider; | ||||
| 
 | ||||
|   const MarathonProgressContainer({Key? key, required this.provider}) : super(key: key); | ||||
| 
 | ||||
|   @override | ||||
|   State<MarathonProgressContainer> createState() => _MarathonProgressContainerState(); | ||||
| } | ||||
| 
 | ||||
| class _MarathonProgressContainerState extends State<MarathonProgressContainer> { | ||||
|   @override | ||||
|   void initState() { | ||||
|     scheduleMicrotask(() { | ||||
|       widget.provider.startTimer(context); | ||||
|     }); | ||||
|     super.initState(); | ||||
|   } | ||||
| 
 | ||||
|   @override | ||||
|   void dispose() { | ||||
|     widget.provider.cancelTimer(); | ||||
|     super.dispose(); | ||||
|   } | ||||
| 
 | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     return Container( | ||||
|       width: double.infinity, | ||||
|       decoration: MyDecorations.shadowDecoration, | ||||
|       padding: const EdgeInsets.all(21), | ||||
|       child: Column( | ||||
|         mainAxisSize: MainAxisSize.min, | ||||
|         children: <Widget>[ | ||||
|           Row( | ||||
|             mainAxisAlignment: MainAxisAlignment.spaceBetween, | ||||
|             children: <Widget>[ | ||||
|               Container( | ||||
|                 decoration: BoxDecoration( | ||||
|                   color: MyColors.greenColor, | ||||
|                   borderRadius: BorderRadius.circular(12), | ||||
|                 ), | ||||
|                 padding: const EdgeInsets.symmetric(vertical: 5, horizontal: 8), | ||||
|                 child: "${widget.provider.currentQuestionNumber.toString()} / ${widget.provider.totalQuestions.toString()}  ${LocaleKeys.question.tr()}".toText12(color: MyColors.white), | ||||
|               ), | ||||
|               "23 ${LocaleKeys.marathoners.tr()}".toText14(), | ||||
|               "00:${widget.provider.start < 10 ? "0${widget.provider.start}" : widget.provider.start}".toText18(), | ||||
|             ], | ||||
|           ), | ||||
|           15.height, | ||||
|           StepsIndicator( | ||||
|             lineLength: 21, | ||||
|             nbSteps: 10, | ||||
|             selectedStep: widget.provider.currentQuestionNumber, | ||||
|             doneLineColor: MyColors.greenColor, | ||||
|             doneStepColor: MyColors.greenColor, | ||||
|             doneLineThickness: 6, | ||||
|             undoneLineThickness: 6, | ||||
|             selectedStepSize: 10, | ||||
|             unselectedStepSize: 10, | ||||
|             doneStepSize: 10, | ||||
|             selectedStepColorIn: MyColors.greenColor, | ||||
|             selectedStepColorOut: MyColors.greenColor, | ||||
|             unselectedStepColorIn: MyColors.lightGreyDeColor, | ||||
|             unselectedStepColorOut: MyColors.lightGreyDeColor, | ||||
|             undoneLineColor: MyColors.lightGreyDeColor, | ||||
|             enableLineAnimation: false, | ||||
|             enableStepAnimation: false, | ||||
|           ), | ||||
|           12.height, | ||||
|           Row( | ||||
|             children: <Widget>[ | ||||
|               "${widget.provider.currentQuestionNumber * 10}% ${LocaleKeys.completed.tr()}".toText14(isBold: true), | ||||
|             ], | ||||
|           ), | ||||
|         ], | ||||
|       ), | ||||
|     ); | ||||
|   } | ||||
| } | ||||
| @ -0,0 +1,155 @@ | ||||
| import 'dart:async'; | ||||
| 
 | ||||
| import 'package:easy_localization/easy_localization.dart'; | ||||
| import 'package:flutter/material.dart'; | ||||
| import 'package:lottie/lottie.dart'; | ||||
| import 'package:mohem_flutter_app/classes/colors.dart'; | ||||
| import 'package:mohem_flutter_app/classes/decorations_helper.dart'; | ||||
| import 'package:mohem_flutter_app/classes/lottie_consts.dart'; | ||||
| import 'package:mohem_flutter_app/config/routes.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/int_extensions.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/string_extensions.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/widget_extensions.dart'; | ||||
| import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; | ||||
| import 'package:mohem_flutter_app/ui/marathon/marathon_provider.dart'; | ||||
| import 'package:mohem_flutter_app/ui/marathon/widgets/custom_status_widget.dart'; | ||||
| import 'package:mohem_flutter_app/ui/marathon/widgets/marathon_header.dart'; | ||||
| import 'package:provider/provider.dart'; | ||||
| 
 | ||||
| class MarathonWinnerSelection extends StatelessWidget { | ||||
|   const MarathonWinnerSelection({Key? key}) : super(key: key); | ||||
| 
 | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     MarathonProvider provider = context.read<MarathonProvider>(); | ||||
|     return Scaffold( | ||||
|       body: SingleChildScrollView( | ||||
|         child: Column( | ||||
|           children: [ | ||||
|             const MarathonHeader(), | ||||
|             20.height, | ||||
|             QualifiersContainer(provider: provider) | ||||
|                 .paddingOnly(left: 21, right: 21), | ||||
|             20.height, | ||||
|             InkWell( | ||||
|               onTap: () { | ||||
|                 Navigator.pushNamed(context, AppRoutes.marathonWinnerScreen); | ||||
|               }, | ||||
|               child: Container( | ||||
|                 height: 50, | ||||
|                 decoration: BoxDecoration( | ||||
|                   color: MyColors.greenColor, | ||||
|                   borderRadius: BorderRadius.circular(15), | ||||
|                   boxShadow: [ | ||||
|                     BoxShadow( | ||||
|                       color: const Color(0xff000000).withOpacity(.05), | ||||
|                       blurRadius: 26, | ||||
|                       offset: const Offset(0, -3), | ||||
|                     ), | ||||
|                   ], | ||||
|                 ), | ||||
|                 child: Padding( | ||||
|                   padding: const EdgeInsets.symmetric(horizontal: 20), | ||||
|                   child: Row( | ||||
|                     mainAxisAlignment: MainAxisAlignment.spaceBetween, | ||||
|                     children: <Widget>[ | ||||
|                       "Muhammad Shrouff" | ||||
|                           .toText18(isBold: true, color: MyColors.white), | ||||
|                       "837436".toText18(isBold: true, color: MyColors.white), | ||||
|                     ], | ||||
|                   ), | ||||
|                 ), | ||||
|               ).paddingOnly(left: 20, right: 20), | ||||
|             ), | ||||
|             CustomStatusWidget( | ||||
|                 asset: Lottie.asset( | ||||
|                   MyLottieConsts.winnerLottie, | ||||
|                   height: 168, | ||||
|                 ), | ||||
|                 title: Text( | ||||
|                   LocaleKeys.fingersCrossed.tr(), | ||||
|                   style: const TextStyle( | ||||
|                     height: 23 / 24, | ||||
|                     color: MyColors.greenColor, | ||||
|                     fontSize: 27, | ||||
|                     letterSpacing: -1, | ||||
|                     fontWeight: FontWeight.w600, | ||||
|                   ), | ||||
|                 ), | ||||
|                 subTitle: Text( | ||||
|                   LocaleKeys.winnerSelectedRandomly.tr(), | ||||
|                   textAlign: TextAlign.center, | ||||
|                   style: const TextStyle( | ||||
|                     color: MyColors.grey77Color, | ||||
|                     fontSize: 16, | ||||
|                     letterSpacing: -0.64, | ||||
|                     fontWeight: FontWeight.w600, | ||||
|                   ), | ||||
|                 )).paddingOnly(left: 21, right: 21, top: 20, bottom: 20), | ||||
|           ], | ||||
|         ), | ||||
|       ), | ||||
|     ); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| class QualifiersContainer extends StatefulWidget { | ||||
|   final MarathonProvider provider; | ||||
| 
 | ||||
|   const QualifiersContainer({Key? key, required this.provider}) | ||||
|       : super(key: key); | ||||
| 
 | ||||
|   @override | ||||
|   State<QualifiersContainer> createState() => _QualifiersContainerState(); | ||||
| } | ||||
| 
 | ||||
| class _QualifiersContainerState extends State<QualifiersContainer> { | ||||
|   final int totalQuestions = 10; | ||||
| 
 | ||||
|   final int currentQuestion = 04; | ||||
| 
 | ||||
|   @override | ||||
|   void initState() { | ||||
|     scheduleMicrotask(() { | ||||
|       widget.provider.startTimer(context); | ||||
|     }); | ||||
|     super.initState(); | ||||
|   } | ||||
| 
 | ||||
|   @override | ||||
|   void dispose() { | ||||
|     widget.provider.cancelTimer(); | ||||
|     super.dispose(); | ||||
|   } | ||||
| 
 | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     return Container( | ||||
|       width: double.infinity, | ||||
|       decoration: MyDecorations.shadowDecoration, | ||||
|       padding: const EdgeInsets.symmetric(vertical: 15, horizontal: 20), | ||||
|       child: Column( | ||||
|         mainAxisSize: MainAxisSize.min, | ||||
|         children: <Widget>[ | ||||
|           Row( | ||||
|             mainAxisAlignment: MainAxisAlignment.spaceBetween, | ||||
|             children: <Widget>[ | ||||
|               LocaleKeys.winnerSelection | ||||
|                   .tr() | ||||
|                   .toText18(isBold: true, color: MyColors.grey3AColor), | ||||
|               "00:${widget.provider.start < 10 ? "0${widget.provider.start}" : widget.provider.start}" | ||||
|                   .toText18(isBold: true, color: MyColors.redColor), | ||||
|             ], | ||||
|           ), | ||||
|           10.height, | ||||
|           Row( | ||||
|             children: [ | ||||
|               "18 ".toText32(color: MyColors.greenColor), | ||||
|               LocaleKeys.qualifiers.tr().toText20(color: MyColors.greenColor), | ||||
|             ], | ||||
|           ), | ||||
|         ], | ||||
|       ), | ||||
|     ); | ||||
|   } | ||||
| } | ||||
| @ -0,0 +1,240 @@ | ||||
| import 'dart:async'; | ||||
| 
 | ||||
| import 'package:easy_localization/easy_localization.dart'; | ||||
| import 'package:flutter/material.dart'; | ||||
| import 'package:flutter_countdown_timer/current_remaining_time.dart'; | ||||
| import 'package:flutter_countdown_timer/flutter_countdown_timer.dart'; | ||||
| import 'package:mohem_flutter_app/classes/colors.dart'; | ||||
| import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; | ||||
| import 'package:mohem_flutter_app/ui/marathon/marathon_provider.dart'; | ||||
| 
 | ||||
| class BuildCountdownTimer extends StatelessWidget { | ||||
|   final int timeToMarathon; | ||||
|   final MarathonProvider provider; | ||||
|   final int screenFlag; | ||||
| 
 | ||||
|   const BuildCountdownTimer({ | ||||
|     Key? key, | ||||
|     required this.provider, | ||||
|     required this.timeToMarathon, | ||||
|     required this.screenFlag, | ||||
|   }) : super(key: key); | ||||
| 
 | ||||
|   final TextStyle styleTextHome = const TextStyle( | ||||
|     fontSize: 7, | ||||
|     color: MyColors.greyACColor, | ||||
|     fontStyle: FontStyle.italic, | ||||
|     fontWeight: FontWeight.w600, | ||||
|     letterSpacing: -0.4, | ||||
|   ); | ||||
| 
 | ||||
|   final TextStyle styleDigitHome = const TextStyle( | ||||
|     height: 23 / 27, | ||||
|     color: MyColors.white, | ||||
|     fontSize: 24, | ||||
|     fontStyle: FontStyle.italic, | ||||
|     letterSpacing: -1.44, | ||||
|     fontWeight: FontWeight.w600, | ||||
|   ); | ||||
| 
 | ||||
|   final TextStyle styleTextMarathon = const TextStyle( | ||||
|     fontSize: 10, | ||||
|     fontStyle: FontStyle.normal, | ||||
|     fontWeight: FontWeight.w600, | ||||
|     color: MyColors.grey57Color, | ||||
|     letterSpacing: -0.4, | ||||
|   ); | ||||
| 
 | ||||
|   final TextStyle styleDigitMarathon = const TextStyle( | ||||
|     height: 23 / 24, | ||||
|     color: MyColors.darkTextColor, | ||||
|     fontSize: 34, | ||||
|     letterSpacing: -1.44, | ||||
|     fontWeight: FontWeight.bold, | ||||
|   ); | ||||
| 
 | ||||
|   Widget buildEmptyWidget() { | ||||
|     return Row( | ||||
|       mainAxisSize: MainAxisSize.min, | ||||
|       mainAxisAlignment: MainAxisAlignment.spaceEvenly, | ||||
|       crossAxisAlignment: CrossAxisAlignment.start, | ||||
|       children: <Widget>[ | ||||
|         Column( | ||||
|           children: <Widget>[ | ||||
|             Text( | ||||
|               "00", | ||||
|               style: screenFlag == 0 ? styleDigitHome : styleDigitMarathon, | ||||
|             ), | ||||
|             Text( | ||||
|               LocaleKeys.days.tr(), | ||||
|               style: screenFlag == 0 ? styleTextHome : styleTextMarathon, | ||||
|             ), | ||||
|           ], | ||||
|         ), | ||||
|         buildSeparator(), | ||||
|         Column( | ||||
|           children: <Widget>[ | ||||
|             Text( | ||||
|               "00", | ||||
|               style: screenFlag == 0 ? styleDigitHome : styleDigitMarathon, | ||||
|             ), | ||||
|             Text( | ||||
|               LocaleKeys.hours.tr(), | ||||
|               style: screenFlag == 0 ? styleTextHome : styleTextMarathon, | ||||
|             ), | ||||
|           ], | ||||
|         ), | ||||
|         buildSeparator(), | ||||
|         Column( | ||||
|           children: <Widget>[ | ||||
|             Text( | ||||
|               "00", | ||||
|               style: screenFlag == 0 ? styleDigitHome : styleDigitMarathon, | ||||
|             ), | ||||
|             Text( | ||||
|               LocaleKeys.minutes.tr(), | ||||
|               style: screenFlag == 0 ? styleTextHome : styleTextMarathon, | ||||
|             ), | ||||
|           ], | ||||
|         ), | ||||
|         buildSeparator(), | ||||
|         Column( | ||||
|           children: <Widget>[ | ||||
|             Text( | ||||
|               "00", | ||||
|               style: screenFlag == 0 ? styleDigitHome : styleDigitMarathon, | ||||
|             ), | ||||
|             Text( | ||||
|               LocaleKeys.seconds.tr(), | ||||
|               style: screenFlag == 0 ? styleTextHome : styleTextMarathon, | ||||
|             ), | ||||
|           ], | ||||
|         ), | ||||
|       ], | ||||
|     ); | ||||
|   } | ||||
| 
 | ||||
|   Widget buildSeparator() { | ||||
|     return Text( | ||||
|       "  :  ", | ||||
|       style: screenFlag == 0 ? styleDigitHome : styleDigitMarathon, | ||||
|     ); | ||||
|   } | ||||
| 
 | ||||
|   Widget buildCountdownTimer(CurrentRemainingTime? time) { | ||||
|     if (time == null) { | ||||
|       if (!provider.itsMarathonTime) { | ||||
|         scheduleMicrotask(() { | ||||
|           provider.itsMarathonTime = true; | ||||
|         }); | ||||
|       } | ||||
| 
 | ||||
|       return buildEmptyWidget(); | ||||
|     } | ||||
|     return Row( | ||||
|       mainAxisSize: MainAxisSize.min, | ||||
|       mainAxisAlignment: MainAxisAlignment.spaceEvenly, | ||||
|       crossAxisAlignment: CrossAxisAlignment.start, | ||||
|       children: <Widget>[ | ||||
|         Column( | ||||
|           children: <Widget>[ | ||||
|             time.days == null | ||||
|                 ? Text( | ||||
|                     "00", | ||||
|                     style: | ||||
|                         screenFlag == 0 ? styleDigitHome : styleDigitMarathon, | ||||
|                   ) | ||||
|                 : Text( | ||||
|                     time.days! < 10 | ||||
|                         ? "0${time.days.toString()}" | ||||
|                         : time.days.toString(), | ||||
|                     style: | ||||
|                         screenFlag == 0 ? styleDigitHome : styleDigitMarathon, | ||||
|                   ), | ||||
|             Text( | ||||
|               LocaleKeys.days.tr(), | ||||
|               style: screenFlag == 0 ? styleTextHome : styleTextMarathon, | ||||
|             ), | ||||
|           ], | ||||
|         ), | ||||
|         buildSeparator(), | ||||
|         Column( | ||||
|           children: <Widget>[ | ||||
|             time.hours == null | ||||
|                 ? Text( | ||||
|                     "00", | ||||
|                     style: | ||||
|                         screenFlag == 0 ? styleDigitHome : styleDigitMarathon, | ||||
|                   ) | ||||
|                 : Text( | ||||
|                     time.hours! < 10 | ||||
|                         ? "0${time.hours.toString()}" | ||||
|                         : time.hours.toString(), | ||||
|                     style: | ||||
|                         screenFlag == 0 ? styleDigitHome : styleDigitMarathon, | ||||
|                   ), | ||||
|             Text( | ||||
|               LocaleKeys.hours.tr(), | ||||
|               style: screenFlag == 0 ? styleTextHome : styleTextMarathon, | ||||
|             ), | ||||
|           ], | ||||
|         ), | ||||
|         buildSeparator(), | ||||
|         Column( | ||||
|           children: <Widget>[ | ||||
|             time.min == null | ||||
|                 ? Text( | ||||
|                     "00", | ||||
|                     style: | ||||
|                         screenFlag == 0 ? styleDigitHome : styleDigitMarathon, | ||||
|                   ) | ||||
|                 : Text( | ||||
|                     time.min! < 10 | ||||
|                         ? "0${time.min.toString()}" | ||||
|                         : time.min.toString(), | ||||
|                     style: | ||||
|                         screenFlag == 0 ? styleDigitHome : styleDigitMarathon, | ||||
|                   ), | ||||
|             Text( | ||||
|               LocaleKeys.minutes.tr(), | ||||
|               style: screenFlag == 0 ? styleTextHome : styleTextMarathon, | ||||
|             ), | ||||
|           ], | ||||
|         ), | ||||
|         buildSeparator(), | ||||
|         Column( | ||||
|           children: <Widget>[ | ||||
|             time.sec == null | ||||
|                 ? Text( | ||||
|                     "00", | ||||
|                     style: | ||||
|                         screenFlag == 0 ? styleDigitHome : styleDigitMarathon, | ||||
|                   ) | ||||
|                 : Text( | ||||
|                     time.sec! < 10 | ||||
|                         ? "0${time.sec.toString()}" | ||||
|                         : time.sec.toString(), | ||||
|                     style: | ||||
|                         screenFlag == 0 ? styleDigitHome : styleDigitMarathon, | ||||
|                   ), | ||||
|             Text( | ||||
|               LocaleKeys.seconds.tr(), | ||||
|               style: screenFlag == 0 ? styleTextHome : styleTextMarathon, | ||||
|             ), | ||||
|           ], | ||||
|         ), | ||||
|       ], | ||||
|     ); | ||||
|   } | ||||
| 
 | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     return CountdownTimer( | ||||
|       endTime: timeToMarathon, | ||||
|       onEnd: null, | ||||
|       widgetBuilder: (BuildContext context, CurrentRemainingTime? time) { | ||||
|         return buildCountdownTimer(time); | ||||
|       }, | ||||
|     ); | ||||
|   } | ||||
| } | ||||
| @ -0,0 +1,34 @@ | ||||
| import 'package:flutter/material.dart'; | ||||
| import 'package:mohem_flutter_app/classes/decorations_helper.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/int_extensions.dart'; | ||||
| 
 | ||||
| class CustomStatusWidget extends StatelessWidget { | ||||
|   final Widget asset; | ||||
|   final Widget title; | ||||
|   final Widget subTitle; | ||||
| 
 | ||||
|   const CustomStatusWidget({ | ||||
|     Key? key, | ||||
|     required this.asset, | ||||
|     required this.title, | ||||
|     required this.subTitle, | ||||
|   }) : super(key: key); | ||||
| 
 | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     return Container( | ||||
|       width: double.infinity, | ||||
|       decoration: MyDecorations.shadowDecoration, | ||||
|       padding: const EdgeInsets.symmetric(vertical: 20, horizontal: 20), | ||||
|       child: Column( | ||||
|         children: <Widget>[ | ||||
|           asset, | ||||
|           50.height, | ||||
|           title, | ||||
|           10.height, | ||||
|           subTitle, | ||||
|         ], | ||||
|       ), | ||||
|     ); | ||||
|   } | ||||
| } | ||||
| @ -0,0 +1,89 @@ | ||||
| import 'package:easy_localization/easy_localization.dart'; | ||||
| import 'package:flutter/material.dart'; | ||||
| import 'package:flutter_svg/flutter_svg.dart'; | ||||
| import 'package:mohem_flutter_app/app_state/app_state.dart'; | ||||
| import 'package:mohem_flutter_app/classes/colors.dart'; | ||||
| import 'package:mohem_flutter_app/classes/decorations_helper.dart'; | ||||
| import 'package:mohem_flutter_app/config/routes.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/int_extensions.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/widget_extensions.dart'; | ||||
| import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; | ||||
| import 'package:mohem_flutter_app/ui/marathon/marathon_intro_screen.dart'; | ||||
| import 'package:mohem_flutter_app/ui/marathon/marathon_provider.dart'; | ||||
| import 'package:mohem_flutter_app/ui/marathon/widgets/countdown_timer.dart'; | ||||
| import 'package:provider/provider.dart'; | ||||
| import 'dart:math' as math; | ||||
| 
 | ||||
| class MarathonBanner extends StatelessWidget { | ||||
|   const MarathonBanner({Key? key}) : super(key: key); | ||||
| 
 | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     MarathonProvider provider = context.read<MarathonProvider>(); | ||||
|     return Container( | ||||
|       decoration: MyDecorations.shadowDecoration, | ||||
|       child: Stack( | ||||
|         children: [ | ||||
|           Transform( | ||||
|             alignment: Alignment.center, | ||||
|             transform: Matrix4.rotationY( | ||||
|               AppState().isArabic(context) ? math.pi : 0, | ||||
|             ), | ||||
|             child: SvgPicture.asset( | ||||
|               "assets/images/marathon_banner_bg.svg", | ||||
|               fit: BoxFit.cover, | ||||
|               width: MediaQuery.of(context).size.width - 40, | ||||
|             ), | ||||
|           ), | ||||
|           Row( | ||||
|             mainAxisAlignment: MainAxisAlignment.end, | ||||
|             children: <Widget>[ | ||||
|               Column( | ||||
|                 mainAxisAlignment: MainAxisAlignment.center, | ||||
|                 mainAxisSize: MainAxisSize.min, | ||||
|                 children: <Widget>[ | ||||
|                   AppState().isArabic(context) ? 0.height : 5.height, | ||||
|                   Flexible( | ||||
|                     child: Text( | ||||
|                       LocaleKeys.getReadyForContest.tr(), | ||||
|                       style: const TextStyle( | ||||
|                         fontStyle: FontStyle.italic, | ||||
|                         fontSize: 12, | ||||
|                         fontWeight: FontWeight.w600, | ||||
|                         color: MyColors.lightGreyEFColor, | ||||
|                         letterSpacing: -0.4, | ||||
|                       ), | ||||
|                     ), | ||||
|                   ), | ||||
|                   const Flexible( | ||||
|                     child: Text( | ||||
|                       "Saudi Arabia", | ||||
|                       style: TextStyle( | ||||
|                         fontStyle: FontStyle.italic, | ||||
|                         fontSize: 19, | ||||
|                         fontWeight: FontWeight.bold, | ||||
|                         color: MyColors.lightGreyEFColor, | ||||
|                         height: 32 / 22, | ||||
|                       ), | ||||
|                     ), | ||||
|                   ), | ||||
|                   3.height, | ||||
|                   BuildCountdownTimer( | ||||
|                     timeToMarathon: dummyEndTime, | ||||
|                     provider: provider, | ||||
|                     screenFlag: 0, | ||||
|                   ), | ||||
|                 ], | ||||
|               ).paddingOnly( | ||||
|                 left: AppState().isArabic(context) ? 12 : 0, | ||||
|                 right: AppState().isArabic(context) ? 0 : 12, | ||||
|               ) | ||||
|             ], | ||||
|           ), | ||||
|         ], | ||||
|       ).onPress( | ||||
|         () => Navigator.pushNamed(context, AppRoutes.marathonIntroScreen), | ||||
|       ), | ||||
|     ); | ||||
|   } | ||||
| } | ||||
| @ -0,0 +1,41 @@ | ||||
| import 'package:easy_localization/easy_localization.dart'; | ||||
| import 'package:flutter/material.dart'; | ||||
| import 'package:mohem_flutter_app/classes/colors.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/string_extensions.dart'; | ||||
| import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; | ||||
| import 'package:mohem_flutter_app/ui/marathon/marathon_provider.dart'; | ||||
| import 'package:provider/provider.dart'; | ||||
| 
 | ||||
| class MarathonHeader extends StatelessWidget { | ||||
|   const MarathonHeader({Key? key}) : super(key: key); | ||||
| 
 | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     return SafeArea( | ||||
|       child: Container( | ||||
|         color: MyColors.kWhiteColor, | ||||
|         width: double.infinity, | ||||
|         height: 65, | ||||
|         padding: const EdgeInsets.symmetric(horizontal: 25, vertical: 15), | ||||
|         child: Row( | ||||
|           crossAxisAlignment: CrossAxisAlignment.end, | ||||
|           mainAxisAlignment: MainAxisAlignment.spaceBetween, | ||||
|           children: [ | ||||
|             LocaleKeys.brainMarathon.tr().toText24(isBold: true), | ||||
|             IconButton( | ||||
|               padding: EdgeInsets.zero, | ||||
|               icon: const Icon(Icons.close, size: 28), | ||||
|               color: MyColors.black, | ||||
|               constraints: const BoxConstraints(), | ||||
|               onPressed: () { | ||||
|                 Provider.of<MarathonProvider>(context, listen: false) | ||||
|                     .resetValues(); | ||||
|                 Navigator.pop(context); | ||||
|               }, | ||||
|             ) | ||||
|           ], | ||||
|         ), | ||||
|       ), | ||||
|     ); | ||||
|   } | ||||
| } | ||||
| @ -0,0 +1,291 @@ | ||||
| import 'package:appinio_swiper/appinio_swiper.dart'; | ||||
| import 'package:flutter/cupertino.dart'; | ||||
| import 'package:flutter/material.dart'; | ||||
| import 'package:mohem_flutter_app/classes/colors.dart'; | ||||
| import 'package:mohem_flutter_app/classes/decorations_helper.dart'; | ||||
| import 'package:mohem_flutter_app/config/routes.dart'; | ||||
| import 'package:mohem_flutter_app/models/marathon_question_model.dart'; | ||||
| import 'package:mohem_flutter_app/ui/marathon/marathon_provider.dart'; | ||||
| import 'package:provider/provider.dart'; | ||||
| 
 | ||||
| class QuestionCard extends StatefulWidget { | ||||
|   final MarathonProvider provider; | ||||
| 
 | ||||
|   const QuestionCard({Key? key, required this.provider}) : super(key: key); | ||||
| 
 | ||||
|   @override | ||||
|   State<QuestionCard> createState() => _QuestionCardState(); | ||||
| } | ||||
| 
 | ||||
| class _QuestionCardState extends State<QuestionCard> { | ||||
|   final List<QuestionContent> questionCards = <QuestionContent>[]; | ||||
| 
 | ||||
|   @override | ||||
|   void initState() { | ||||
|     _loadCards(); | ||||
|     super.initState(); | ||||
|   } | ||||
| 
 | ||||
|   void _loadCards() { | ||||
|     for (DummyQuestionModel question in questions) { | ||||
|       questionCards.add( | ||||
|         QuestionContent( | ||||
|           question: question, | ||||
|           provider: widget.provider, | ||||
|         ), | ||||
|       ); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     return CupertinoPageScaffold( | ||||
|       child: SizedBox( | ||||
|         height: 420, | ||||
|         width: double.infinity, | ||||
|         child: Consumer<MarathonProvider>( | ||||
|           builder: (BuildContext context, MarathonProvider provider, _) { | ||||
|             return AppinioSwiper( | ||||
|               padding: EdgeInsets.zero, | ||||
|               isDisabled: true, | ||||
|               controller: provider.swiperController, | ||||
|               unswipe: (int index, AppinioSwiperDirection direction) {}, | ||||
|               cards: questionCards, | ||||
|               onSwipe: (int index, AppinioSwiperDirection direction) { | ||||
|                 if (direction == AppinioSwiperDirection.left) { | ||||
|                   provider.startTimer(context); | ||||
|                 } | ||||
|               }, | ||||
|             ); | ||||
|           }, | ||||
|         ), | ||||
|       ), | ||||
|     ); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| class QuestionContent extends StatelessWidget { | ||||
|   final DummyQuestionModel question; | ||||
|   final MarathonProvider provider; | ||||
| 
 | ||||
|   const QuestionContent({ | ||||
|     Key? key, | ||||
|     required this.question, | ||||
|     required this.provider, | ||||
|   }) : super(key: key); | ||||
| 
 | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     return Container( | ||||
|       decoration: BoxDecoration( | ||||
|         borderRadius: BorderRadius.circular(10), | ||||
|         color: CupertinoColors.white, | ||||
|         boxShadow: <BoxShadow>[ | ||||
|           BoxShadow( | ||||
|             color: CupertinoColors.systemGrey.withOpacity(0.2), | ||||
|             spreadRadius: 3, | ||||
|             blurRadius: 7, | ||||
|             offset: const Offset(0, 3), | ||||
|           ) | ||||
|         ], | ||||
|       ), | ||||
|       alignment: Alignment.center, | ||||
|       child: Column( | ||||
|         children: <Widget>[ | ||||
|           Container( | ||||
|             height: 78, | ||||
|             width: double.infinity, | ||||
|             decoration: const BoxDecoration( | ||||
|               gradient: LinearGradient( | ||||
|                 transform: GradientRotation(.83), | ||||
|                 begin: Alignment.topRight, | ||||
|                 end: Alignment.bottomLeft, | ||||
|                 colors: <Color>[ | ||||
|                   MyColors.gradiantEndColor, | ||||
|                   MyColors.gradiantStartColor, | ||||
|                 ], | ||||
|               ), | ||||
|               borderRadius: BorderRadius.only( | ||||
|                 topLeft: Radius.circular(10), | ||||
|                 topRight: Radius.circular(10), | ||||
|               ), | ||||
|             ), | ||||
|             child: const Center( | ||||
|               child: Padding( | ||||
|                 padding: EdgeInsets.symmetric(horizontal: 13), | ||||
|                 child: Text( | ||||
|                   "What is the capital of Saudi Arabia?", | ||||
|                   style: TextStyle( | ||||
|                     color: MyColors.white, | ||||
|                     fontSize: 16, | ||||
|                     fontWeight: FontWeight.w600, | ||||
|                   ), | ||||
|                 ), | ||||
|               ), | ||||
|             ), | ||||
|           ), | ||||
|           AnswerContent(question: question, provider: provider), | ||||
|         ], | ||||
|       ), | ||||
|     ); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| class AnswerContent extends StatelessWidget { | ||||
|   final DummyQuestionModel question; | ||||
|   final MarathonProvider provider; | ||||
| 
 | ||||
|   const AnswerContent({Key? key, required this.question, required this.provider}) : super(key: key); | ||||
| 
 | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     return Container( | ||||
|       padding: const EdgeInsets.all(13), | ||||
|       decoration: const BoxDecoration( | ||||
|         color: MyColors.kWhiteColor, | ||||
|         borderRadius: BorderRadius.only( | ||||
|           bottomLeft: Radius.circular(10), | ||||
|           bottomRight: Radius.circular(10), | ||||
|         ), | ||||
|       ), | ||||
|       child: Column( | ||||
|         mainAxisSize: MainAxisSize.min, | ||||
|         mainAxisAlignment: MainAxisAlignment.center, | ||||
|         crossAxisAlignment: CrossAxisAlignment.center, | ||||
|         children: <Widget>[ | ||||
|           InkWell( | ||||
|             onTap: () { | ||||
|               if (provider.currentQuestionNumber == 9) { | ||||
|                 provider.cancelTimer(); | ||||
|                 provider.resetValues(); | ||||
|                 Navigator.pushReplacementNamed( | ||||
|                   context, | ||||
|                   AppRoutes.marathonWinnerSelection, | ||||
|                 ); | ||||
|                 return; | ||||
|               } | ||||
|               provider.cancelTimer(); | ||||
|               provider.startTimer(context); | ||||
|               provider.swipeCardLeft(); | ||||
|             }, | ||||
|             child: Container( | ||||
|               height: 60, | ||||
|               width: MediaQuery.of(context).size.width - 75, | ||||
|               alignment: Alignment.centerLeft, | ||||
|               decoration: MyDecorations.answerContainerDecoration, | ||||
|               child: Center( | ||||
|                 child: Text( | ||||
|                   question.opt1!, | ||||
|                   style: const TextStyle( | ||||
|                     color: MyColors.darkTextColor, | ||||
|                     fontWeight: FontWeight.w600, | ||||
|                     fontSize: 16, | ||||
|                   ), | ||||
|                 ), | ||||
|               ), | ||||
|             ), | ||||
|           ), | ||||
|           const SizedBox(height: 15), | ||||
|           InkWell( | ||||
|             onTap: () { | ||||
|               if (provider.currentQuestionNumber == 9) { | ||||
|                 provider.cancelTimer(); | ||||
|                 provider.resetValues(); | ||||
|                 Navigator.pushReplacementNamed( | ||||
|                   context, | ||||
|                   AppRoutes.marathonWinnerSelection, | ||||
|                 ); | ||||
|                 return; | ||||
|               } | ||||
|               provider.cancelTimer(); | ||||
|               provider.startTimer(context); | ||||
|               provider.swipeCardLeft(); | ||||
|             }, | ||||
|             child: Container( | ||||
|               height: 60, | ||||
|               width: MediaQuery.of(context).size.width - 75, | ||||
|               alignment: Alignment.centerLeft, | ||||
|               decoration: MyDecorations.answerContainerDecoration, | ||||
|               child: Center( | ||||
|                 child: Text( | ||||
|                   question.opt2!, | ||||
|                   style: const TextStyle( | ||||
|                     color: MyColors.darkTextColor, | ||||
|                     fontWeight: FontWeight.w600, | ||||
|                     fontSize: 16, | ||||
|                   ), | ||||
|                 ), | ||||
|               ), | ||||
|             ), | ||||
|           ), | ||||
|           const SizedBox(height: 15), | ||||
|           InkWell( | ||||
|             onTap: () { | ||||
|               if (provider.currentQuestionNumber == 9) { | ||||
|                 provider.cancelTimer(); | ||||
|                 provider.resetValues(); | ||||
|                 Navigator.pushReplacementNamed( | ||||
|                   context, | ||||
|                   AppRoutes.marathonWinnerSelection, | ||||
|                 ); | ||||
|                 return; | ||||
|               } | ||||
|               provider.cancelTimer(); | ||||
|               provider.startTimer(context); | ||||
|               provider.swipeCardLeft(); | ||||
|             }, | ||||
|             child: Container( | ||||
|               height: 60, | ||||
|               width: MediaQuery.of(context).size.width - 75, | ||||
|               alignment: Alignment.centerLeft, | ||||
|               decoration: MyDecorations.answerContainerDecoration, | ||||
|               child: Center( | ||||
|                 child: Text( | ||||
|                   question.opt3!, | ||||
|                   style: const TextStyle( | ||||
|                     color: MyColors.darkTextColor, | ||||
|                     fontWeight: FontWeight.w600, | ||||
|                     fontSize: 16, | ||||
|                   ), | ||||
|                 ), | ||||
|               ), | ||||
|             ), | ||||
|           ), | ||||
|           const SizedBox(height: 15), | ||||
|           InkWell( | ||||
|             onTap: () { | ||||
|               if (provider.currentQuestionNumber == 9) { | ||||
|                 provider.cancelTimer(); | ||||
|                 provider.resetValues(); | ||||
|                 Navigator.pushReplacementNamed( | ||||
|                   context, | ||||
|                   AppRoutes.marathonWinnerSelection, | ||||
|                 ); | ||||
|                 return; | ||||
|               } | ||||
|               provider.cancelTimer(); | ||||
|               provider.startTimer(context); | ||||
|               provider.swipeCardLeft(); | ||||
|             }, | ||||
|             child: Container( | ||||
|               height: 60, | ||||
|               width: MediaQuery.of(context).size.width - 75, | ||||
|               alignment: Alignment.centerLeft, | ||||
|               decoration: MyDecorations.answerContainerDecoration, | ||||
|               child: Center( | ||||
|                 child: Text( | ||||
|                   question.opt3!, | ||||
|                   style: const TextStyle( | ||||
|                     color: MyColors.darkTextColor, | ||||
|                     fontWeight: FontWeight.w600, | ||||
|                     fontSize: 16, | ||||
|                   ), | ||||
|                 ), | ||||
|               ), | ||||
|             ), | ||||
|           ), | ||||
|         ], | ||||
|       ), | ||||
|     ); | ||||
|   } | ||||
| } | ||||
| @ -0,0 +1,76 @@ | ||||
| import 'package:easy_localization/easy_localization.dart'; | ||||
| import 'package:flutter/material.dart'; | ||||
| import 'package:lottie/lottie.dart'; | ||||
| import 'package:mohem_flutter_app/classes/colors.dart'; | ||||
| import 'package:mohem_flutter_app/classes/decorations_helper.dart'; | ||||
| import 'package:mohem_flutter_app/classes/lottie_consts.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/int_extensions.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/string_extensions.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/widget_extensions.dart'; | ||||
| import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; | ||||
| import 'package:mohem_flutter_app/ui/marathon/widgets/marathon_header.dart'; | ||||
| 
 | ||||
| class WinnerScreen extends StatelessWidget { | ||||
|   const WinnerScreen({Key? key}) : super(key: key); | ||||
| 
 | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     return Scaffold( | ||||
|       backgroundColor: MyColors.backgroundColor, | ||||
|       body: SingleChildScrollView( | ||||
|         child: Column( | ||||
|           children: <Widget>[ | ||||
|             const MarathonHeader(), | ||||
|             60.height, | ||||
|             Container( | ||||
|               width: double.infinity, | ||||
|               decoration: MyDecorations.shadowDecoration, | ||||
|               padding: const EdgeInsets.symmetric(vertical: 20, horizontal: 20), | ||||
|               child: Column( | ||||
|                 children: <Widget>[ | ||||
|                   SizedBox( | ||||
|                     height: 200, | ||||
|                     child: Stack( | ||||
|                       children: <Widget>[ | ||||
|                         Lottie.asset( | ||||
|                           MyLottieConsts.celebrate1Lottie, | ||||
|                           height: 200, | ||||
|                         ), | ||||
|                         Lottie.asset( | ||||
|                           MyLottieConsts.celebrate2Lottie, | ||||
|                           height: 200, | ||||
|                         ), | ||||
|                       ], | ||||
|                     ), | ||||
|                   ), | ||||
|                   50.height, | ||||
|                   "Muhammad Shrouff".toText22(color: MyColors.grey3AColor), | ||||
|                   "837436".toText22(color: MyColors.grey57Color), | ||||
|                   90.height, | ||||
|                   Row( | ||||
|                     mainAxisAlignment: MainAxisAlignment.center, | ||||
|                     children: <Widget>[ | ||||
|                       LocaleKeys.sponsoredBy | ||||
|                           .tr() | ||||
|                           .toText14(color: MyColors.grey77Color), | ||||
|                       " Extra".toText14( | ||||
|                           color: MyColors.darkTextColor, isBold: true), | ||||
|                     ], | ||||
|                   ), | ||||
|                   5.height, | ||||
|                   Image.network( | ||||
|                     "https://cdn.pixabay.com/photo/2014/08/27/07/53/blog-428950_1280.jpg", | ||||
|                     height: 50, | ||||
|                     fit: BoxFit.fill, | ||||
|                     width: 120, | ||||
|                   ), | ||||
|                 ], | ||||
|               ), | ||||
|             ).paddingOnly(left: 21, right: 21), | ||||
|             10.height, | ||||
|           ], | ||||
|         ), | ||||
|       ), | ||||
|     ); | ||||
|   } | ||||
| } | ||||
| @ -0,0 +1,170 @@ | ||||
| import 'package:easy_localization/easy_localization.dart'; | ||||
| import 'package:flutter/material.dart'; | ||||
| import 'package:mohem_flutter_app/api/worklist/worklist_api_client.dart'; | ||||
| import 'package:mohem_flutter_app/app_state/app_state.dart'; | ||||
| import 'package:mohem_flutter_app/classes/colors.dart'; | ||||
| import 'package:mohem_flutter_app/classes/utils.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/int_extensions.dart'; | ||||
| import 'package:mohem_flutter_app/extensions/string_extensions.dart'; | ||||
| import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; | ||||
| import 'package:mohem_flutter_app/models/itg_forms_models/wf_history_model.dart'; | ||||
| import 'package:mohem_flutter_app/models/worklist/get_favorite_replacements_model.dart'; | ||||
| import 'package:mohem_flutter_app/models/worklist/replacement_list_model.dart'; | ||||
| import 'package:mohem_flutter_app/widgets/button/default_button.dart'; | ||||
| import 'package:mohem_flutter_app/widgets/circular_avatar.dart'; | ||||
| import 'package:mohem_flutter_app/widgets/input_widget.dart'; | ||||
| 
 | ||||
| class SelectedItgItemSheet extends StatelessWidget { | ||||
|   String title, apiMode; | ||||
|   int? notificationID; | ||||
|   WFHistory wfHistory; | ||||
|   GetFavoriteReplacements? favoriteReplacements; | ||||
|   ReplacementList? replacementList; | ||||
| 
 | ||||
|   SelectedItgItemSheet(this.title, {required this.apiMode, this.notificationID, required this.wfHistory, this.favoriteReplacements, this.replacementList}); | ||||
| 
 | ||||
|   TextEditingController username = TextEditingController(); | ||||
|   String comment = ""; | ||||
| 
 | ||||
|   @override | ||||
|   Widget build(BuildContext context) { | ||||
|     return Container( | ||||
|       width: double.infinity, | ||||
|       height: MediaQuery.of(context).size.height - 80, | ||||
|       child: Column( | ||||
|         children: [ | ||||
|           Expanded( | ||||
|             child: SingleChildScrollView( | ||||
|               child: Padding( | ||||
|                 padding: EdgeInsets.all(21), | ||||
|                 child: Column( | ||||
|                   crossAxisAlignment: CrossAxisAlignment.start, | ||||
|                   children: [ | ||||
|                     title.toText24(isBold: true), | ||||
|                     21.height, | ||||
|                     if (wfHistory != null) showItem(wfHistory.name, false), | ||||
|                     if (favoriteReplacements != null) showItem(favoriteReplacements!.employeeDisplayName, true), | ||||
|                     if (replacementList != null) showItem(replacementList!.employeeDisplayName, replacementList!.isFavorite), | ||||
|                     14.height, | ||||
|                     InputWidget( | ||||
|                       "Enter a note", | ||||
|                       "This is simple note", | ||||
|                       username, | ||||
|                       isBackgroundEnable: true, | ||||
|                       lines: 5, | ||||
|                       onChange: (v) { | ||||
|                         comment = v; | ||||
|                       }, | ||||
|                     ), | ||||
|                   ], | ||||
|                 ), | ||||
|               ), | ||||
|             ), | ||||
|           ), | ||||
|           Container( | ||||
|             width: double.infinity, | ||||
|             height: 1, | ||||
|             color: MyColors.borderE3Color, | ||||
|           ), | ||||
|           Row( | ||||
|             children: [ | ||||
|               Expanded( | ||||
|                 child: DefaultButton( | ||||
|                   LocaleKeys.cancel.tr(), | ||||
|                   () { | ||||
|                     Navigator.pop(context); | ||||
|                   }, | ||||
|                   textColor: Colors.black, | ||||
|                   colors: [ | ||||
|                     Color(0xffE6E6E6), | ||||
|                     Color(0xffE6E6E6), | ||||
|                   ], | ||||
|                 ), | ||||
|               ), | ||||
|               16.width, | ||||
|               Expanded( | ||||
|                 child: DefaultButton( | ||||
|                   LocaleKeys.submit.tr(), | ||||
|                   () { | ||||
|                     if (comment.trim() != "") { | ||||
|                       String? email = "", userId = ""; | ||||
|                       if (wfHistory != null) { | ||||
|                         email = wfHistory.email; | ||||
|                         userId = wfHistory.employeeID; | ||||
|                       } else if (favoriteReplacements != null) { | ||||
|                         email = favoriteReplacements!.emailAddress; | ||||
|                         userId = favoriteReplacements!.userName; | ||||
|                       } else { | ||||
|                         email = replacementList!.emailAddress; | ||||
|                         userId = replacementList!.userName; | ||||
|                       } | ||||
|                       performNetworkCall(context, email: email ?? "", userId: userId ?? ""); | ||||
|                     } else { | ||||
|                       Utils.showToast("Please enter comments"); | ||||
|                     } | ||||
|                   }, | ||||
|                   colors: const [ | ||||
|                     Color(0xff32D892), | ||||
|                     Color(0xff1AB170), | ||||
|                   ], | ||||
|                 ), | ||||
|               ), | ||||
|             ], | ||||
|           ).insideContainer | ||||
|         ], | ||||
|       ), | ||||
|     ); | ||||
|   } | ||||
| 
 | ||||
|   Future<void> performNetworkCall(BuildContext context, {String? email, String? userId}) async { | ||||
|     Utils.showLoading(context); | ||||
|     try { | ||||
|       var requestDetails = AppState().requestAllList![AppState().itgWorkListIndex!]; | ||||
|       if (apiMode == "Delegate") { | ||||
|         await WorkListApiClient() | ||||
|             .delegateITGRequest(requestDetails.requestType!, requestDetails.iD!, requestDetails.itemID!, AppState().memberInformationList?.eMPLOYEENUMBER ?? "", wfHistory.employeeID!, comment); | ||||
|       } else if (apiMode == "RequestInformation") { | ||||
|         await WorkListApiClient() | ||||
|             .informationITGRequest(requestDetails.requestType!, requestDetails.iD!, requestDetails.itemID!, AppState().memberInformationList?.eMPLOYEENUMBER ?? "", wfHistory.employeeID!, comment); | ||||
|       } | ||||
|       Utils.hideLoading(context); | ||||
|       Navigator.pop(context); | ||||
|       Navigator.pop(context); | ||||
|       Navigator.pop(context, "delegate_reload"); | ||||
|     } catch (ex) { | ||||
|       Utils.hideLoading(context); | ||||
|       Utils.handleException(ex, context, null); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   Widget showItem(String? name, bool? isFav) { | ||||
|     return Container( | ||||
|       decoration: BoxDecoration( | ||||
|         borderRadius: BorderRadius.circular(15), | ||||
|         color: Color(0xffF7F7F7), | ||||
|         border: Border.all( | ||||
|           color: Color(0xffefefef), | ||||
|           width: 1, | ||||
|         ), | ||||
|       ), | ||||
|       padding: EdgeInsets.only(top: 16, bottom: 16, left: 21, right: 21), | ||||
|       child: Row( | ||||
|         children: [ | ||||
|           CircularAvatar( | ||||
|             height: 30, | ||||
|             width: 30, | ||||
|           ), | ||||
|           16.width, | ||||
|           Expanded( | ||||
|             child: (name ?? "").toText12(), | ||||
|           ), | ||||
|           Icon( | ||||
|             Icons.star, | ||||
|             size: 12, | ||||
|             color: (isFav ?? false) ? MyColors.yellowColor : MyColors.borderColor, | ||||
|           ), | ||||
|         ], | ||||
|       ), | ||||
|     ); | ||||
|   } | ||||
| } | ||||
					Loading…
					
					
				
		Reference in New Issue