Updated the Complete design for AppointmentModule
|
After Width: | Height: | Size: 8.1 KiB |
|
After Width: | Height: | Size: 48 KiB |
@ -0,0 +1,6 @@
|
||||
<svg width="120" height="121" viewBox="0 0 120 121" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g opacity="0.8">
|
||||
<path d="M0.0357295 120.891C0.0357295 120.891 5.91992 120.847 10.0616 120.847L41.4695 121C45.2182 121 48.3403 117.04 48.5162 111.319L48.5519 85.2434C48.5519 79.6836 51.0528 75.3335 54.9307 75.085L64.5636 75.0085C68.447 75.2461 71.1128 79.6508 71.1128 85.1751L71.0881 111.39C71.2585 117.109 73.8749 120.842 77.6429 120.842L119.923 120.956L120 88.7333C120 83.1899 117.318 78.8835 113.404 78.6295L96.4194 78.5449C92.6625 78.5449 89.708 74.6044 89.5486 68.878L89.4826 60.1614C89.6695 54.4432 92.6405 50.5109 96.4057 50.5109L113.484 50.56C117.364 50.3115 119.893 45.7594 119.893 40.2241L119.934 0C118.538 2.2708 116.629 4.18742 114.359 5.598C112.088 7.00858 109.518 7.87436 106.852 8.12674L78.1321 8.10216C74.3916 8.10216 71.2612 12.1546 71.0853 17.8728V43.7031C70.9095 49.4104 67.9715 53.4492 64.2145 53.4492L55.5244 53.3836C51.7564 53.3836 48.7443 49.4759 48.5739 43.785L48.5959 17.6708C48.4255 11.9498 45.4408 8.11309 41.6811 8.11309L0.00276778 8.1322V40.2569C0.00276778 45.8058 2.6109 50.2487 6.50252 50.5054L23.5806 50.4344C27.442 50.6856 30.1766 55.2624 30.1766 60.7813L30.1244 68.2171C30.1244 73.7633 27.486 78.2008 23.6054 78.452L6.4998 78.411C2.60817 78.6841 0 83.0534 0 88.5995L0.0357295 120.891Z" fill="#706262" fill-opacity="0.07"/>
|
||||
<path d="M0.0357295 120.891C0.0357295 120.891 5.91992 120.847 10.0616 120.847L41.4695 121C45.2182 121 48.3403 117.04 48.5162 111.319L48.5519 85.2434C48.5519 79.6836 51.0528 75.3335 54.9307 75.085L64.5636 75.0085C68.447 75.2461 71.1128 79.6508 71.1128 85.1751L71.0881 111.39C71.2585 117.109 73.8749 120.842 77.6429 120.842L119.923 120.956L120 88.7333C120 83.1899 117.318 78.8835 113.404 78.6295L96.4194 78.5449C92.6625 78.5449 89.708 74.6044 89.5486 68.878L89.4826 60.1614C89.6695 54.4432 92.6405 50.5109 96.4057 50.5109L113.484 50.56C117.364 50.3115 119.893 45.7594 119.893 40.2241L119.934 0C118.538 2.2708 116.629 4.18742 114.359 5.598C112.088 7.00858 109.518 7.87436 106.852 8.12674L78.1321 8.10216C74.3916 8.10216 71.2612 12.1546 71.0853 17.8728V43.7031C70.9095 49.4104 67.9715 53.4492 64.2145 53.4492L55.5244 53.3836C51.7564 53.3836 48.7443 49.4759 48.5739 43.785L48.5959 17.6708C48.4255 11.9498 45.4408 8.11309 41.6811 8.11309L0.00276778 8.1322V40.2569C0.00276778 45.8058 2.6109 50.2487 6.50252 50.5054L23.5806 50.4344C27.442 50.6856 30.1766 55.2624 30.1766 60.7813L30.1244 68.2171C30.1244 73.7633 27.486 78.2008 23.6054 78.452L6.4998 78.411C2.60817 78.6841 0 83.0534 0 88.5995L0.0357295 120.891Z" fill="#706262" fill-opacity="0.07"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
@ -0,0 +1,6 @@
|
||||
<svg width="110" height="110" viewBox="0 0 110 110" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g opacity="0.8">
|
||||
<path d="M0.0327521 109.901C0.0327521 109.901 5.42659 109.861 9.22317 109.861L38.0137 110C41.45 110 44.3119 106.4 44.4732 101.2L44.5059 77.494C44.5059 72.4396 46.7984 68.485 50.3532 68.2591L59.1833 68.1896C62.7431 68.4056 65.1868 72.4098 65.1868 77.432L65.1641 101.264C65.3203 106.462 67.7187 109.856 71.1726 109.856L109.929 109.96L110 80.6667C110 75.6272 107.541 71.7122 103.954 71.4814L88.3845 71.4044C84.9406 71.4044 82.2324 67.8222 82.0862 62.6163L82.0257 54.6922C82.1971 49.4938 84.9204 45.919 88.3719 45.919L104.027 45.9637C107.584 45.7378 109.902 41.5994 109.902 36.5674L109.94 0C108.66 2.06437 106.91 3.80674 104.829 5.08909C102.747 6.37143 100.391 7.15851 97.9477 7.38795L71.6211 7.3656C68.1923 7.3656 65.3228 11.0496 65.1616 16.248V39.7301C65.0003 44.9185 62.3072 48.5902 58.8633 48.5902L50.8973 48.5306C47.4434 48.5306 44.6823 44.9781 44.5261 39.8046L44.5462 16.0643C44.39 10.8635 41.654 7.37554 38.2076 7.37554L0.00253713 7.39291V36.5972C0.00253713 41.6416 2.39332 45.6807 5.96065 45.914L21.6156 45.8495C25.1552 46.0779 27.6619 50.2386 27.6619 55.2557L27.614 62.0156C27.614 67.0576 25.1955 71.0916 21.6382 71.32L5.95815 71.2828C2.39083 71.531 0 75.5031 0 80.545L0.0327521 109.901Z" fill="#CFCED1" fill-opacity="0.08"/>
|
||||
<path d="M0.0327521 109.901C0.0327521 109.901 5.42659 109.861 9.22317 109.861L38.0137 110C41.45 110 44.3119 106.4 44.4732 101.2L44.5059 77.494C44.5059 72.4396 46.7984 68.485 50.3532 68.2591L59.1833 68.1896C62.7431 68.4056 65.1868 72.4098 65.1868 77.432L65.1641 101.264C65.3203 106.462 67.7187 109.856 71.1726 109.856L109.929 109.96L110 80.6667C110 75.6272 107.541 71.7122 103.954 71.4814L88.3845 71.4044C84.9406 71.4044 82.2324 67.8222 82.0862 62.6163L82.0257 54.6922C82.1971 49.4938 84.9204 45.919 88.3719 45.919L104.027 45.9637C107.584 45.7378 109.902 41.5994 109.902 36.5674L109.94 0C108.66 2.06437 106.91 3.80674 104.829 5.08909C102.747 6.37143 100.391 7.15851 97.9477 7.38795L71.6211 7.3656C68.1923 7.3656 65.3228 11.0496 65.1616 16.248V39.7301C65.0003 44.9185 62.3072 48.5902 58.8633 48.5902L50.8973 48.5306C47.4434 48.5306 44.6823 44.9781 44.5261 39.8046L44.5462 16.0643C44.39 10.8635 41.654 7.37554 38.2076 7.37554L0.00253713 7.39291V36.5972C0.00253713 41.6416 2.39332 45.6807 5.96065 45.914L21.6156 45.8495C25.1552 46.0779 27.6619 50.2386 27.6619 55.2557L27.614 62.0156C27.614 67.0576 25.1955 71.0916 21.6382 71.32L5.95815 71.2828C2.39083 71.531 0 75.5031 0 80.545L0.0327521 109.901Z" fill="#CFCED1" fill-opacity="0.08"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
@ -0,0 +1,5 @@
|
||||
<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M46.5107 36.0539C46.9977 37.178 47.281 38.5536 47.3435 40.1442C48.987 40.5208 50.217 41.9908 50.217 43.7464C50.217 45.7853 48.5581 47.4442 46.5192 47.4442C44.4803 47.4442 42.8214 45.7853 42.8214 43.7464C42.8214 42.0107 44.0246 40.5561 45.6391 40.1584C45.568 38.5786 45.1903 36.1751 43.644 34.9884C42.855 34.7841 42.0438 34.6362 41.2115 34.56C41.15 37.3276 32.0023 44.1577 32.0023 44.1577C32.0023 44.1577 22.8517 37.3288 22.7897 34.5611C21.8653 34.6453 20.9659 34.8143 20.0972 35.0578C18.9691 35.9509 18.3854 37.6149 18.3552 40.0338C18.6869 40.2244 18.9548 40.522 19.1192 40.8821C20.3344 41.4561 21.4079 42.6632 22.2299 44.3819C22.3676 44.6709 22.3858 44.9974 22.2845 45.2955C22.7772 46.5636 23.0588 47.9494 23.0588 49.1133C23.0588 50.7443 23.0588 52.2866 21.281 52.6825C21.0887 52.8424 20.8475 52.9306 20.5944 52.9306H19.4065C18.8109 52.9306 18.3262 52.4447 18.3262 51.8508L18.3274 51.8087C18.3501 51.2341 18.8308 50.7705 19.4065 50.7705H20.5944C20.7161 50.7705 20.835 50.791 20.9499 50.8308C21.0216 50.8109 21.0444 50.7944 21.0449 50.7938C21.1769 50.5594 21.1769 49.5832 21.1769 49.1144C21.1769 48.169 20.9403 47.0272 20.5255 45.9662C20.3105 45.8439 20.1364 45.659 20.0295 45.4354C19.3093 43.9273 18.3296 42.9534 17.5343 42.9534C16.7208 42.9534 15.6923 44.007 14.9749 45.5725C14.8577 45.828 14.6523 46.0356 14.3997 46.1602C14.0248 47.1751 13.8189 48.2202 13.8189 49.1139C13.8189 49.5076 13.8189 50.552 13.9691 50.7978C13.9708 50.7978 14.0044 50.8183 14.0988 50.8416C14.2217 50.7944 14.3537 50.7699 14.4856 50.7699H15.6758C16.2304 50.7699 16.6941 51.192 16.7498 51.741L16.7555 51.8076C16.7555 52.4453 16.2708 52.9311 15.6758 52.9311H14.4856C14.2496 52.9311 14.0214 52.852 13.8337 52.7087C13.1539 52.5807 12.6749 52.2809 12.3717 51.7928C12.0042 51.2028 11.937 50.428 11.937 49.1139C11.937 47.9613 12.2033 46.6335 12.6868 45.3655C12.6157 45.0941 12.6396 44.8108 12.7579 44.5554C13.2614 43.454 13.902 42.5108 14.6097 41.8287C14.9988 41.4538 15.4169 41.1523 15.8544 40.9321C16.0182 40.5487 16.3027 40.2341 16.6503 40.0356C16.6685 38.5195 16.9017 37.2105 17.3329 36.1313C12.3961 38.6355 9.01294 43.7572 9.01294 49.672C9.01294 57.2302 14.5351 57.6 21.764 57.6C22.5531 57.6 23.3609 57.5954 24.1863 57.5954H39.812C40.6363 57.5954 41.4442 57.6 42.2332 57.6C49.4632 57.6 54.9877 57.2302 54.9877 49.672C54.9871 43.6946 51.5317 38.528 46.5107 36.0539Z" fill="#03A567"/>
|
||||
<path d="M32.0045 36.5466C38.9928 36.5466 44.6572 26.0386 44.6572 19.051C44.6572 12.0645 38.9928 6.40002 32.0045 6.40002C25.0175 6.40002 19.353 12.0645 19.353 19.051C19.353 26.0386 25.0175 36.5466 32.0045 36.5466Z" fill="#03A567"/>
|
||||
<path d="M46.5187 45.4531C47.4612 45.4531 48.2253 44.689 48.2253 43.7465C48.2253 42.8039 47.4612 42.0398 46.5187 42.0398C45.5761 42.0398 44.812 42.8039 44.812 43.7465C44.812 44.689 45.5761 45.4531 46.5187 45.4531Z" fill="#03A567"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
@ -0,0 +1,5 @@
|
||||
<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M32.471 46.9731C31.673 46.9731 31.103 46.5171 30.8749 45.719L26.8847 30.556L26.0866 35.2303C25.9726 36.0284 25.2886 36.5984 24.4905 36.5984H7.84546V33.2922H23.1224L24.9466 22.4615C25.0606 21.6635 25.7446 21.0934 26.5427 21.0934C27.3407 21.0934 28.0248 21.5495 28.2528 22.3475L32.129 37.0545L35.3212 14.595C35.4352 13.797 36.1193 13.2269 36.8033 13.2269C37.6014 13.2269 38.2854 13.683 38.5134 14.481L43.5298 33.4062H57.0966V36.7124H42.2757C41.4776 36.7124 40.9076 36.2564 40.6796 35.4584L37.3734 23.0316L34.0671 45.491C33.9531 46.4031 33.3831 46.9731 32.471 46.9731Z" fill="#4B5B6A"/>
|
||||
<path d="M21.6402 22.1195C21.9822 19.8394 24.0344 18.1293 26.3145 18.0153H26.5425C28.5947 18.0153 30.3048 19.2693 31.1028 20.9794L32.1289 14.139C32.4709 11.8589 34.409 10.0347 36.6892 9.92073H36.9172C39.1973 9.92073 41.1355 11.4028 41.7055 13.569L46.0378 30.1H56.0704C57.4385 27.5919 58.1226 24.9697 58.1226 22.0055C58.1226 13.683 51.3961 6.95654 43.0736 6.95654C38.7413 6.95654 34.6371 8.78066 31.7869 11.9729C28.9367 8.78066 24.8324 6.95654 20.5001 6.95654C12.2916 6.95654 5.56519 13.797 5.56519 22.1195C5.56519 25.0837 6.13522 27.7059 7.2753 30.214H20.2721L21.6402 22.1195Z" fill="#4B5B6A"/>
|
||||
<path d="M38.5133 38.3086L37.3733 46.0611C37.0312 48.3412 35.0931 50.1654 32.813 50.2794H32.5849C30.3048 50.2794 28.3667 48.7973 27.7966 46.6311L25.9725 39.7907C25.5165 39.9047 25.0605 40.0187 24.4904 40.0187H14.6858C16.8519 42.0708 19.2461 44.237 21.7542 46.5171C24.6044 49.0253 27.7966 51.7615 31.1028 54.9537L31.9009 55.7517L32.699 54.9537C36.1192 51.4194 39.4254 48.3412 42.3896 45.6051C44.4417 43.6669 46.4938 41.8428 48.2039 40.0187H42.2756C40.7935 40.0187 39.4254 39.3347 38.5133 38.3086Z" fill="#4B5B6A"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@ -0,0 +1,8 @@
|
||||
<svg width="74" height="64" viewBox="0 0 74 64" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M55.7304 17.6388C55.3682 17.0394 54.7189 16.6731 54.0186 16.6731C53.3183 16.6731 52.669 17.0394 52.3069 17.6388C52.233 17.761 52.0291 18.0211 51.5601 18.4799C51.1103 18.9198 50.509 19.4549 49.7265 20.1304C49.3003 20.4983 48.8247 20.904 48.3015 21.3503C46.9322 22.5183 45.237 23.9644 43.2525 25.7347C43.2152 25.768 43.1791 25.8028 43.1443 25.8388C40.3429 28.7436 38.856 31.6565 38.8034 34.6734C38.7738 36.3734 39.2027 37.9661 39.9382 39.4629H39.3906C38.2861 39.4629 37.3906 40.3583 37.3906 41.4629C37.3906 42.5674 38.2861 43.4629 39.3906 43.4629H40.2462V56.249C40.2462 56.2889 40.2474 56.3288 40.2497 56.3685L40.26 56.5526C40.2787 56.897 40.3033 57.3502 40.3702 57.7414C40.4574 58.2518 40.6586 58.9738 41.2566 59.5882C41.857 60.2051 42.6134 60.4658 43.3009 60.5782C43.9558 60.6853 44.7109 60.6846 45.5463 60.6272H62.89C62.9513 60.6272 63.0125 60.6244 63.0735 60.6188C63.2129 60.6059 63.3153 60.6044 63.4661 60.6021C63.589 60.6003 63.7444 60.5979 63.978 60.5885C64.3623 60.5732 64.9609 60.5341 65.5569 60.3238C66.2131 60.0923 66.9297 59.629 67.3728 58.7708C67.7616 58.0177 67.8199 57.1878 67.7357 56.4028V43.4629H68.6668C69.7714 43.4629 70.6668 42.5674 70.6668 41.4629C70.6668 40.3583 69.7714 39.4629 68.6668 39.4629H68.1275C68.8837 37.8205 69.2837 36.0705 69.2203 34.2726C69.1113 31.1817 67.6425 28.2385 64.8358 25.7347C62.7711 23.8928 61.0162 22.4053 59.6101 21.2134C59.145 20.8192 58.7176 20.4569 58.3302 20.1252C57.5402 19.4488 56.9328 18.9135 56.4783 18.4732C56.0033 18.013 55.801 17.7556 55.7304 17.6388ZM44.2462 56.19V43.4629H63.7357V56.5196C63.7357 56.5446 63.7362 56.5696 63.7372 56.5946C63.6622 56.597 63.5882 56.5985 63.5042 56.6002L63.3318 56.6038C63.1811 56.6074 62.9979 56.6129 62.8074 56.6272H56.0018L56.0624 52.9681C56.0806 51.8637 55.2002 50.9535 54.0957 50.9353C52.9913 50.917 52.0812 51.7975 52.0629 52.9019L52.0012 56.6272H45.476C45.4279 56.6272 45.3799 56.629 45.3319 56.6324C44.857 56.6667 44.5153 56.6712 44.2733 56.6607C44.2678 56.5752 44.2631 56.4905 44.2577 56.3941L44.2462 56.19ZM42.8028 34.743C42.7773 36.207 43.3514 37.7421 44.6159 39.4629H63.5208C64.7221 37.7641 65.28 36.0352 65.2228 34.4135C65.1586 32.5933 64.3108 30.6267 62.173 28.7196C60.1501 26.915 58.4523 25.4759 57.0511 24.2881C56.5773 23.8865 56.1357 23.5122 55.7287 23.1636C55.0852 22.6126 54.5112 22.1118 54.0241 21.6582C53.5428 22.1103 52.9763 22.6093 52.3402 23.1584C51.8889 23.5479 51.3975 23.9671 50.8638 24.4223C49.5154 25.5726 47.8961 26.9538 45.9725 28.6686C43.6203 31.1241 42.8314 33.1041 42.8028 34.743Z" fill="#EC1C2B" fill-opacity="0.06"/>
|
||||
<path d="M13.3359 24.008C13.3359 12.5897 22.5945 3.33423 34.0145 3.33423C40.9651 3.33423 47.8877 6.77899 51.6649 12.1929C52.2969 13.0988 52.0749 14.3455 51.169 14.9775C50.2631 15.6095 49.0164 15.3875 48.3844 14.4816C45.4111 10.22 39.7583 7.33423 34.0145 7.33423C24.8027 7.33423 17.3359 14.7998 17.3359 24.008C17.3359 32.8214 24.1737 40.0766 32.8211 40.6868C33.9229 40.7645 34.7531 41.7208 34.6753 42.8226C34.5976 43.9244 33.6413 44.7546 32.5395 44.6768C21.8005 43.9191 13.3359 34.9243 13.3359 24.008Z" fill="#EC1C2B" fill-opacity="0.06"/>
|
||||
<path d="M34.0132 16.6731C35.1177 16.6731 36.0132 17.5685 36.0132 18.6731V25.3423C36.0132 26.0111 35.6789 26.6356 35.1224 27.0065L31.1198 29.6742C30.2007 30.2868 28.959 30.0383 28.3464 29.1192C27.7338 28.2001 27.9823 26.9584 28.9014 26.3458L32.0132 24.2718V18.6731C32.0132 17.5685 32.9086 16.6731 34.0132 16.6731Z" fill="#EC1C2B" fill-opacity="0.06"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M35.7269 27.7803C35.4439 27.312 34.9367 27.0258 34.3896 27.0258C33.8424 27.0258 33.3352 27.312 33.0522 27.7803C32.9945 27.8758 32.8352 28.079 32.4688 28.4374C32.1174 28.7811 31.6477 29.1992 31.0363 29.7269C30.7034 30.0143 30.3318 30.3313 29.9231 30.6799C28.8533 31.5924 27.5289 32.7222 25.9785 34.1052C25.9494 34.1313 25.9212 34.1584 25.894 34.1865C23.7054 36.4559 22.5437 38.7316 22.5027 41.0886C22.4795 42.4167 22.8146 43.661 23.3892 44.8303H22.9614C22.0985 44.8303 21.3989 45.5299 21.3989 46.3928C21.3989 47.2558 22.0985 47.9553 22.9614 47.9553H23.6298V57.9446C23.6298 57.9757 23.6307 58.0068 23.6326 58.0379L23.6407 58.1817C23.6553 58.4508 23.6745 58.8048 23.7267 59.1105C23.7948 59.5092 23.952 60.0732 24.4192 60.5533C24.8883 61.0352 25.4792 61.2389 26.0164 61.3267C26.528 61.4104 27.1179 61.4099 27.7706 61.365H41.3203C41.3682 61.365 41.416 61.3628 41.4637 61.3584C41.5726 61.3484 41.6526 61.3472 41.7704 61.3454C41.8664 61.3439 41.9878 61.3421 42.1703 61.3348C42.4706 61.3228 42.9382 61.2923 43.4038 61.128C43.9165 60.9471 44.4763 60.5851 44.8225 59.9146C45.1263 59.3263 45.1718 58.678 45.106 58.0647V47.9553H45.8335C46.6964 47.9553 47.396 47.2558 47.396 46.3928C47.396 45.5299 46.6964 44.8303 45.8335 44.8303H45.4121C46.0029 43.5472 46.3154 42.1801 46.2659 40.7754C46.1807 38.3607 45.0332 36.0614 42.8405 34.1052C41.2274 32.6662 39.8564 31.5041 38.7579 30.573C38.3945 30.265 38.0606 29.9819 37.758 29.7228C37.1408 29.1944 36.6663 28.7762 36.3112 28.4322C35.9401 28.0726 35.782 27.8716 35.7269 27.7803ZM26.7548 57.8984V47.9553H41.981V58.1559C41.981 58.1755 41.9814 58.195 41.9822 58.2145C41.9236 58.2164 41.8658 58.2175 41.8002 58.2189L41.6655 58.2217C41.5477 58.2245 41.4046 58.2288 41.2558 58.24H35.9389L35.9862 55.3813C36.0005 54.5185 35.3126 53.8075 34.4498 53.7932C33.587 53.7789 32.8759 54.4668 32.8616 55.3296L32.8135 58.24H27.7156C27.6781 58.24 27.6405 58.2414 27.6031 58.2441C27.232 58.2709 26.9651 58.2743 26.776 58.2662C26.7717 58.1993 26.768 58.1332 26.7638 58.0579L26.7548 57.8984ZM25.6272 41.143C25.6073 42.2867 26.0558 43.486 27.0437 44.8303H41.8131C42.7516 43.5032 43.1875 42.1525 43.1428 40.8855C43.0927 39.4635 42.4303 37.9271 40.7601 36.4372C39.1798 35.0273 37.8534 33.903 36.7587 32.9751C36.3885 32.6613 36.0436 32.3689 35.7255 32.0966C35.2228 31.6661 34.7744 31.2748 34.3938 30.9205C34.0178 31.2737 33.5753 31.6635 33.0783 32.0925C32.7257 32.3968 32.3418 32.7243 31.9248 33.0799C30.8714 33.9786 29.6063 35.0577 28.1035 36.3974C26.2659 38.3157 25.6495 39.8626 25.6272 41.143Z" fill="#EC1C2B"/>
|
||||
<path d="M2.6062 32.7563C2.6062 23.8357 9.83947 16.6049 18.7613 16.6049C24.1915 16.6049 29.5998 19.2961 32.5507 23.5257C33.0445 24.2334 32.871 25.2074 32.1633 25.7012C31.4556 26.195 30.4816 26.0215 29.9878 25.3138C27.665 21.9844 23.2487 19.7299 18.7613 19.7299C11.5646 19.7299 5.7312 25.5624 5.7312 32.7563C5.7312 39.6417 11.0732 45.3098 17.829 45.7865C18.6898 45.8473 19.3383 46.5943 19.2776 47.4551C19.2169 48.3159 18.4698 48.9645 17.609 48.9038C9.21915 48.3118 2.6062 41.2846 2.6062 32.7563Z" fill="#EC1C2B"/>
|
||||
<path d="M18.7603 27.0258C19.6232 27.0258 20.3228 27.7254 20.3228 28.5884V33.7987C20.3228 34.3212 20.0616 34.8091 19.6269 35.0989L16.4999 37.183C15.7818 37.6616 14.8117 37.4674 14.3331 36.7494C13.8545 36.0313 14.0487 35.0612 14.7667 34.5826L17.1978 32.9623V28.5884C17.1978 27.7254 17.8973 27.0258 18.7603 27.0258Z" fill="#EC1C2B"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.8 KiB |
@ -1,64 +1,421 @@
|
||||
// import 'dart:developer';
|
||||
//
|
||||
// import 'package:flutter/material.dart';
|
||||
// import 'package:hmg_qline/constants/app_constants.dart';
|
||||
// import 'package:hmg_qline/models/global_config_model.dart';
|
||||
// import 'package:hmg_qline/models/ticket_model.dart';
|
||||
// import 'package:hmg_qline/utilities/enums.dart';
|
||||
// import 'package:hmg_qline/views/common_widgets/app_general_widgets.dart';
|
||||
// import 'package:hmg_qline/views/main_queue_screen/components/ticket_item.dart';
|
||||
// import 'package:hmg_qline/views/main_queue_screen/components/ticket_item_calling_card.dart';
|
||||
// import 'package:hmg_qline/views/main_queue_screen/components/ticket_item_normal_card.dart';
|
||||
// import 'package:hmg_qline/views/view_helpers/size_config.dart';
|
||||
// import 'package:zo_animated_border/widget/zo_color_change_border.dart';
|
||||
//
|
||||
// class PriorityTickets extends StatelessWidget {
|
||||
// final List<TicketDetailsModel> tickets;
|
||||
// final GlobalConfigurationsModel globalConfigurationsModel;
|
||||
//
|
||||
// const PriorityTickets({required this.tickets, required this.globalConfigurationsModel, super.key});
|
||||
//
|
||||
// @override
|
||||
// Widget build(BuildContext context) {
|
||||
// final TicketData firstTicket = tickets[0].ticketModel!;
|
||||
// TicketData? secondTicket;
|
||||
// List<TicketDetailsModel> otherTickets = [];
|
||||
// if (tickets.length > 1) {
|
||||
// secondTicket = tickets[1].ticketModel!;
|
||||
// }
|
||||
//
|
||||
// if (tickets.length > 3) {
|
||||
// otherTickets = tickets.sublist(2, tickets.length);
|
||||
// }
|
||||
//
|
||||
// log("tickets: ${tickets.length}");
|
||||
//
|
||||
// return Directionality(
|
||||
// textDirection: globalConfigurationsModel.textDirection,
|
||||
// child: Column(
|
||||
// mainAxisAlignment: MainAxisAlignment.center,
|
||||
// crossAxisAlignment: CrossAxisAlignment.center,
|
||||
// children: [
|
||||
// if (tickets.length == 1) ...[
|
||||
// QueueItemCallingCard(
|
||||
// isGradientRequired: true,
|
||||
// isBorderRequired: true,
|
||||
// ticketNo: firstTicket.queueNo ?? '',
|
||||
// scale: globalConfigurationsModel.screenTypeEnum == ScreenTypeEnum.roomLevelScreen ? 2 : 1.2,
|
||||
// blink: true,
|
||||
// roomNo: firstTicket.roomNo ?? '',
|
||||
// roomText: (globalConfigurationsModel.qTypeEnum == QTypeEnum.appointment ? globalConfigurationsModel.roomTextEng : globalConfigurationsModel.counterTextEng) ?? "",
|
||||
// roomTextAr: (globalConfigurationsModel.qTypeEnum == QTypeEnum.appointment ? globalConfigurationsModel.roomTextArb : globalConfigurationsModel.counterTextArb) ?? "",
|
||||
// isClinicAdded: false,
|
||||
// callTypeEnum: firstTicket.callTypeEnum,
|
||||
// textDirection: globalConfigurationsModel.textDirection,
|
||||
// screenTypeEnum: globalConfigurationsModel.screenTypeEnum,
|
||||
// langTypeEnum: globalConfigurationsModel.screenLanguageEnum,
|
||||
// globalConfigurationsModel: globalConfigurationsModel,
|
||||
// ),
|
||||
// ],
|
||||
// if (tickets.length == 2) ...[
|
||||
// Row(
|
||||
// children: [
|
||||
// Expanded(
|
||||
// flex: 2,
|
||||
// child: QueueItemCallingCard(
|
||||
// isGradientRequired: true,
|
||||
// isBorderRequired: true,
|
||||
// ticketNo: firstTicket.queueNo ?? '',
|
||||
// scale: globalConfigurationsModel.screenTypeEnum == ScreenTypeEnum.roomLevelScreen ? 2 : 1.2,
|
||||
// blink: true,
|
||||
// roomNo: firstTicket.roomNo ?? '',
|
||||
// roomText: (globalConfigurationsModel.qTypeEnum == QTypeEnum.appointment ? globalConfigurationsModel.roomTextEng : globalConfigurationsModel.counterTextEng) ?? "",
|
||||
// roomTextAr: (globalConfigurationsModel.qTypeEnum == QTypeEnum.appointment ? globalConfigurationsModel.roomTextArb : globalConfigurationsModel.counterTextArb) ?? "",
|
||||
// isClinicAdded: false,
|
||||
// callTypeEnum: firstTicket.callTypeEnum,
|
||||
// textDirection: globalConfigurationsModel.textDirection,
|
||||
// screenTypeEnum: globalConfigurationsModel.screenTypeEnum,
|
||||
// langTypeEnum: globalConfigurationsModel.screenLanguageEnum,
|
||||
// globalConfigurationsModel: globalConfigurationsModel,
|
||||
// ),
|
||||
// ),
|
||||
// SizedBox(width: SizeConfig.getWidthMultiplier() * 2),
|
||||
// Expanded(
|
||||
// flex: 1,
|
||||
// child: QueueItemNormalCard(
|
||||
// ticketNo: secondTicket!.queueNo ?? '',
|
||||
// roomNo: secondTicket.roomNo ?? '',
|
||||
// roomText: (globalConfigurationsModel.qTypeEnum == QTypeEnum.appointment ? globalConfigurationsModel.roomTextEng : globalConfigurationsModel.counterTextEng) ?? "",
|
||||
// roomTextAr: (globalConfigurationsModel.qTypeEnum == QTypeEnum.appointment ? globalConfigurationsModel.roomTextArb : globalConfigurationsModel.counterTextArb) ?? "",
|
||||
// isClinicAdded: false,
|
||||
// callTypeEnum: secondTicket.callTypeEnum,
|
||||
// textDirection: globalConfigurationsModel.textDirection,
|
||||
// screenTypeEnum: globalConfigurationsModel.screenTypeEnum,
|
||||
// langTypeEnum: globalConfigurationsModel.screenLanguageEnum,
|
||||
// globalConfigurationsModel: globalConfigurationsModel,
|
||||
// ),
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// ],
|
||||
// if (tickets.length > 2) ...[
|
||||
// Column(
|
||||
// children: [
|
||||
// Row(
|
||||
// children: [
|
||||
// Expanded(
|
||||
// flex: 2,
|
||||
// child: QueueItemCallingCard(
|
||||
// isGradientRequired: true,
|
||||
// isBorderRequired: true,
|
||||
// ticketNo: firstTicket.queueNo ?? '',
|
||||
// scale: globalConfigurationsModel.screenTypeEnum == ScreenTypeEnum.roomLevelScreen ? 2 : 1.2,
|
||||
// blink: true,
|
||||
// roomNo: firstTicket.roomNo ?? '',
|
||||
// roomText: (globalConfigurationsModel.qTypeEnum == QTypeEnum.appointment ? globalConfigurationsModel.roomTextEng : globalConfigurationsModel.counterTextEng) ?? "",
|
||||
// roomTextAr: (globalConfigurationsModel.qTypeEnum == QTypeEnum.appointment ? globalConfigurationsModel.roomTextArb : globalConfigurationsModel.counterTextArb) ?? "",
|
||||
// isClinicAdded: false,
|
||||
// callTypeEnum: firstTicket.callTypeEnum,
|
||||
// textDirection: globalConfigurationsModel.textDirection,
|
||||
// screenTypeEnum: globalConfigurationsModel.screenTypeEnum,
|
||||
// langTypeEnum: globalConfigurationsModel.screenLanguageEnum,
|
||||
// globalConfigurationsModel: globalConfigurationsModel,
|
||||
// ),
|
||||
// ),
|
||||
// SizedBox(width: SizeConfig.getWidthMultiplier() * 2),
|
||||
// Expanded(
|
||||
// flex: 1,
|
||||
// child: QueueItemNormalCard(
|
||||
// ticketNo: secondTicket!.queueNo ?? '',
|
||||
// roomNo: secondTicket.roomNo ?? '',
|
||||
// roomText: (globalConfigurationsModel.qTypeEnum == QTypeEnum.appointment ? globalConfigurationsModel.roomTextEng : globalConfigurationsModel.counterTextEng) ?? "",
|
||||
// roomTextAr: (globalConfigurationsModel.qTypeEnum == QTypeEnum.appointment ? globalConfigurationsModel.roomTextArb : globalConfigurationsModel.counterTextArb) ?? "",
|
||||
// isClinicAdded: false,
|
||||
// callTypeEnum: secondTicket.callTypeEnum,
|
||||
// textDirection: globalConfigurationsModel.textDirection,
|
||||
// screenTypeEnum: globalConfigurationsModel.screenTypeEnum,
|
||||
// langTypeEnum: globalConfigurationsModel.screenLanguageEnum,
|
||||
// globalConfigurationsModel: globalConfigurationsModel,
|
||||
// ),
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// Padding(
|
||||
// padding: EdgeInsets.symmetric(vertical: SizeConfig.getHeightMultiplier() * 0.1),
|
||||
// child: engArabicTextWithSeparatorWidget(
|
||||
// englishText: globalConfigurationsModel.currentServeTextEng ?? "",
|
||||
// arabicText: globalConfigurationsModel.currentServeTextArb ?? "",
|
||||
// ),
|
||||
// ),
|
||||
// Row(
|
||||
// children: List.generate(
|
||||
// otherTickets.length,
|
||||
// (index) => Expanded(
|
||||
// child: Padding(
|
||||
// padding: EdgeInsets.only(right: index != otherTickets.length - 1 ? SizeConfig.getWidthMultiplier() * 2 : 0),
|
||||
// child: QueueItemNormalCard(
|
||||
// ticketNo: otherTickets[index].ticketModel!.queueNo ?? '',
|
||||
// roomNo: otherTickets[index].ticketModel!.roomNo ?? '',
|
||||
// roomText: (globalConfigurationsModel.qTypeEnum == QTypeEnum.appointment ? globalConfigurationsModel.roomTextEng : globalConfigurationsModel.counterTextEng) ?? "",
|
||||
// roomTextAr: (globalConfigurationsModel.qTypeEnum == QTypeEnum.appointment ? globalConfigurationsModel.roomTextArb : globalConfigurationsModel.counterTextArb) ?? "",
|
||||
// isClinicAdded: false,
|
||||
// callTypeEnum: otherTickets[index].ticketModel!.callTypeEnum,
|
||||
// textDirection: globalConfigurationsModel.textDirection,
|
||||
// screenTypeEnum: globalConfigurationsModel.screenTypeEnum,
|
||||
// langTypeEnum: globalConfigurationsModel.screenLanguageEnum,
|
||||
// globalConfigurationsModel: globalConfigurationsModel,
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// ],
|
||||
// ],
|
||||
// ),
|
||||
// );
|
||||
// }
|
||||
// }
|
||||
|
||||
import 'dart:developer';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:hmg_qline/models/global_config_model.dart';
|
||||
import 'package:hmg_qline/models/ticket_model.dart';
|
||||
import 'package:hmg_qline/utilities/enums.dart';
|
||||
import 'package:hmg_qline/views/main_queue_screen/components/ticket_item.dart';
|
||||
import 'package:hmg_qline/views/common_widgets/app_general_widgets.dart';
|
||||
import 'package:hmg_qline/views/main_queue_screen/components/ticket_item_calling_card.dart';
|
||||
import 'package:hmg_qline/views/main_queue_screen/components/ticket_item_normal_card.dart';
|
||||
import 'package:hmg_qline/views/view_helpers/size_config.dart';
|
||||
|
||||
class PriorityTickets extends StatelessWidget {
|
||||
final List<TicketDetailsModel> tickets;
|
||||
final GlobalConfigurationsModel globalConfigurationsModel;
|
||||
|
||||
const PriorityTickets({required this.tickets, required this.globalConfigurationsModel, super.key});
|
||||
const PriorityTickets({
|
||||
required this.tickets,
|
||||
required this.globalConfigurationsModel,
|
||||
super.key,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final TicketData firstTicket = tickets[0].ticketModel!;
|
||||
final List<TicketDetailsModel> otherTickets = tickets.sublist(1, tickets.length);
|
||||
return Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
TicketItem(
|
||||
ticketNo: firstTicket.queueNo ?? '',
|
||||
scale: globalConfigurationsModel.screenTypeEnum == ScreenTypeEnum.roomLevelScreen ? 2 : 1.2,
|
||||
blink: true,
|
||||
roomNo: firstTicket.roomNo ?? '',
|
||||
roomText: (globalConfigurationsModel.qTypeEnum == QTypeEnum.appointment ? globalConfigurationsModel.roomText : globalConfigurationsModel.counterText) ?? "",
|
||||
isClinicAdded: false,
|
||||
callTypeEnum: firstTicket.callTypeEnum,
|
||||
textDirection: globalConfigurationsModel.textDirection,
|
||||
screenTypeEnum: globalConfigurationsModel.screenTypeEnum,
|
||||
langTypeEnum: globalConfigurationsModel.screenLanguageEnum,
|
||||
globalConfigurationsModel: globalConfigurationsModel,
|
||||
log("tickets: ${tickets.length}");
|
||||
return Directionality(
|
||||
textDirection: globalConfigurationsModel.textDirection,
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: _buildTicketLayout(context),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildAnimatedTicket({required Widget child, required int delay, String? key}) {
|
||||
return TweenAnimationBuilder<double>(
|
||||
key: key != null ? ValueKey(key) : null,
|
||||
duration: Duration(milliseconds: 400 + delay),
|
||||
tween: Tween(begin: 0.0, end: 1.0),
|
||||
curve: Curves.easeOutCubic,
|
||||
// Changed from elasticOut to prevent overshoot
|
||||
builder: (context, value, child) {
|
||||
final clampedValue = value.clamp(0.0, 1.0);
|
||||
|
||||
return Transform.scale(
|
||||
scale: 0.8 + (clampedValue * 0.2), // Scale from 0.8 to 1.0 instead of 0 to 1
|
||||
child: Opacity(
|
||||
opacity: clampedValue,
|
||||
child: child,
|
||||
),
|
||||
);
|
||||
},
|
||||
child: child,
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildAnimatedOtherTicketsRow() {
|
||||
final otherTickets = tickets.length > 2 ? tickets.sublist(2) : <TicketDetailsModel>[];
|
||||
if (otherTickets.isEmpty) return const SizedBox.shrink();
|
||||
|
||||
return Row(
|
||||
children: List.generate(
|
||||
otherTickets.length,
|
||||
(index) => Expanded(
|
||||
child: _buildAnimatedTicket(
|
||||
key: 'other_ticket_${otherTickets[index].ticketModel?.queueNo ?? index}',
|
||||
child: Padding(
|
||||
padding: EdgeInsets.only(
|
||||
right: (index != otherTickets.length - 1 && globalConfigurationsModel.textDirection == TextDirection.ltr) ? SizeConfig.getWidthMultiplier() * 2 : 0,
|
||||
left: (index != otherTickets.length - 1 && globalConfigurationsModel.textDirection == TextDirection.rtl) ? SizeConfig.getWidthMultiplier() * 2 : 0,
|
||||
),
|
||||
child: _buildSecondaryTicket(otherTickets[index]),
|
||||
),
|
||||
delay: 200 + (index * 100),
|
||||
),
|
||||
),
|
||||
if (tickets.length > 1) ...[
|
||||
Column(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
children: otherTickets.map((ticketDetailsModel) {
|
||||
TicketData ticketData = ticketDetailsModel.ticketModel!;
|
||||
|
||||
return Padding(
|
||||
padding: EdgeInsets.only(top: SizeConfig.getHeightMultiplier() * 0.5),
|
||||
child: TicketItem(
|
||||
ticketNo: ticketData.queueNo ?? '',
|
||||
scale: 0.8,
|
||||
roomNo: ticketData.roomNo ?? '',
|
||||
roomText: (globalConfigurationsModel.qTypeEnum == QTypeEnum.appointment ? globalConfigurationsModel.roomText : globalConfigurationsModel.counterText) ?? "",
|
||||
isClinicAdded: false,
|
||||
callTypeEnum: ticketData.callTypeEnum,
|
||||
textDirection: globalConfigurationsModel.textDirection,
|
||||
screenTypeEnum: globalConfigurationsModel.screenTypeEnum,
|
||||
langTypeEnum: globalConfigurationsModel.screenLanguageEnum,
|
||||
globalConfigurationsModel: globalConfigurationsModel,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
List<Widget> _buildTicketLayout(BuildContext context) {
|
||||
if (tickets.isEmpty) return [];
|
||||
log("tickets.length: ${tickets.length}");
|
||||
switch (tickets.length) {
|
||||
case 1:
|
||||
return [
|
||||
_buildAnimatedTicket(
|
||||
child: _buildPrimaryTicket(context, tickets[0], isFullWidth: true),
|
||||
delay: 0,
|
||||
),
|
||||
];
|
||||
|
||||
case 2:
|
||||
return [
|
||||
Row(
|
||||
children: [
|
||||
Expanded(
|
||||
flex: 3,
|
||||
child: _buildAnimatedTicket(
|
||||
child: _buildPrimaryTicket(context, tickets[0]),
|
||||
delay: 0,
|
||||
),
|
||||
),
|
||||
_buildSpacing(),
|
||||
Expanded(
|
||||
flex: 2,
|
||||
child: _buildAnimatedTicket(
|
||||
child: _buildSecondaryTicket(tickets[1]),
|
||||
delay: 150,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
];
|
||||
|
||||
default:
|
||||
return [
|
||||
Row(
|
||||
children: [
|
||||
Expanded(
|
||||
flex: 2,
|
||||
child: _buildAnimatedTicket(
|
||||
child: _buildPrimaryTicket(context, tickets[0]),
|
||||
delay: 0,
|
||||
),
|
||||
);
|
||||
}).toList(),
|
||||
)
|
||||
]
|
||||
],
|
||||
),
|
||||
_buildSpacing(),
|
||||
Expanded(
|
||||
flex: 1,
|
||||
child: _buildAnimatedTicket(
|
||||
child: _buildSecondaryTicket(tickets[1]),
|
||||
delay: 100,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
_buildCurrentServeText(),
|
||||
_buildAnimatedOtherTicketsRow(),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
Widget _buildPrimaryTicket(BuildContext context, TicketDetailsModel ticket, {bool isFullWidth = false}) {
|
||||
Widget primaryCallingCard = QueueItemCallingCard(
|
||||
isGradientRequired: true,
|
||||
isBorderRequired: true,
|
||||
isSingleTicket: isFullWidth,
|
||||
ticketNo: ticket.ticketModel?.queueNo ?? '',
|
||||
scale: _getTicketScale(),
|
||||
blink: true,
|
||||
roomNo: ticket.ticketModel?.roomNo ?? '',
|
||||
roomText: _getRoomText(),
|
||||
roomTextAr: _getRoomTextAr(),
|
||||
isClinicAdded: false,
|
||||
callTypeEnum: ticket.ticketModel?.callTypeEnum ?? CallTypeEnum.vitalSign,
|
||||
textDirection: globalConfigurationsModel.textDirection,
|
||||
screenTypeEnum: globalConfigurationsModel.screenTypeEnum,
|
||||
langTypeEnum: globalConfigurationsModel.screenLanguageEnum,
|
||||
globalConfigurationsModel: globalConfigurationsModel,
|
||||
);
|
||||
|
||||
if (isFullWidth) {
|
||||
return Center(
|
||||
child: ConstrainedBox(
|
||||
constraints: BoxConstraints(
|
||||
maxWidth: MediaQuery.of(context).size.width * 0.6, // 60% of screen width
|
||||
minHeight: SizeConfig.getHeightMultiplier() * 2.5, // Minimum height
|
||||
),
|
||||
child: Transform.scale(
|
||||
scale: _getTicketScale() + 0.2,
|
||||
child: primaryCallingCard,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
return primaryCallingCard;
|
||||
}
|
||||
|
||||
Widget _buildSecondaryTicket(TicketDetailsModel ticket) {
|
||||
return QueueItemNormalCard(
|
||||
ticketNo: ticket.ticketModel?.queueNo ?? '',
|
||||
roomNo: ticket.ticketModel?.roomNo ?? '',
|
||||
roomText: _getRoomText(),
|
||||
roomTextAr: _getRoomTextAr(),
|
||||
isClinicAdded: false,
|
||||
callTypeEnum: ticket.ticketModel?.callTypeEnum ?? CallTypeEnum.vitalSign,
|
||||
textDirection: globalConfigurationsModel.textDirection,
|
||||
screenTypeEnum: globalConfigurationsModel.screenTypeEnum,
|
||||
langTypeEnum: globalConfigurationsModel.screenLanguageEnum,
|
||||
globalConfigurationsModel: globalConfigurationsModel,
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildOtherTicketsRow(TextDirection textDirection) {
|
||||
final otherTickets = tickets.length > 2 ? tickets.sublist(2) : <TicketDetailsModel>[];
|
||||
if (otherTickets.isEmpty) return const SizedBox.shrink();
|
||||
|
||||
return Row(
|
||||
children: List.generate(
|
||||
otherTickets.length,
|
||||
(index) => Expanded(
|
||||
child: Padding(
|
||||
padding: EdgeInsets.only(
|
||||
right: (index != otherTickets.length - 1 && textDirection == TextDirection.ltr) ? SizeConfig.getWidthMultiplier() * 2 : 0,
|
||||
left: (index != otherTickets.length - 1 && textDirection == TextDirection.rtl) ? SizeConfig.getWidthMultiplier() * 2 : 0,
|
||||
),
|
||||
child: _buildSecondaryTicket(otherTickets[index]),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildCurrentServeText() {
|
||||
return Padding(
|
||||
padding: EdgeInsets.symmetric(vertical: SizeConfig.getHeightMultiplier() * 0.13),
|
||||
child: engArabicTextWithSeparatorWidget(
|
||||
englishText: globalConfigurationsModel.currentServeTextEng ?? "",
|
||||
arabicText: globalConfigurationsModel.currentServeTextArb ?? "",
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildSpacing() {
|
||||
return SizedBox(width: SizeConfig.getWidthMultiplier() * 2);
|
||||
}
|
||||
|
||||
// Helper methods to reduce repetition
|
||||
double _getTicketScale() {
|
||||
return globalConfigurationsModel.screenTypeEnum == ScreenTypeEnum.roomLevelScreen ? 2.0 : 1.2;
|
||||
}
|
||||
|
||||
String _getRoomText() {
|
||||
return globalConfigurationsModel.qTypeEnum == QTypeEnum.appointment ? globalConfigurationsModel.roomTextEng ?? "" : globalConfigurationsModel.counterTextEng ?? "";
|
||||
}
|
||||
|
||||
String _getRoomTextAr() {
|
||||
return globalConfigurationsModel.qTypeEnum == QTypeEnum.appointment ? globalConfigurationsModel.roomTextArb ?? "" : globalConfigurationsModel.counterTextArb ?? "";
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,163 @@
|
||||
import 'package:blinking_text/blinking_text.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:hmg_qline/constants/app_constants.dart';
|
||||
import 'package:hmg_qline/models/global_config_model.dart';
|
||||
import 'package:hmg_qline/utilities/enums.dart';
|
||||
import 'package:hmg_qline/utilities/extensions.dart';
|
||||
import 'package:hmg_qline/views/common_widgets/app_general_widgets.dart';
|
||||
import 'package:hmg_qline/views/common_widgets/app_texts_widget.dart';
|
||||
import 'package:hmg_qline/views/view_helpers/size_config.dart';
|
||||
|
||||
class QueueItemCallingCard extends StatelessWidget {
|
||||
final String ticketNo;
|
||||
final String roomNo;
|
||||
final bool blink;
|
||||
final double scale;
|
||||
final bool isClinicAdded;
|
||||
final bool isGradientRequired;
|
||||
final bool isBorderRequired;
|
||||
final TextDirection textDirection;
|
||||
final String roomText;
|
||||
final String roomTextAr;
|
||||
final GlobalConfigurationsModel globalConfigurationsModel;
|
||||
final CallTypeEnum callTypeEnum;
|
||||
final ScreenTypeEnum screenTypeEnum;
|
||||
final LanguageEnum langTypeEnum;
|
||||
final bool isSingleTicket;
|
||||
|
||||
const QueueItemCallingCard({
|
||||
super.key,
|
||||
required this.isClinicAdded,
|
||||
required this.ticketNo,
|
||||
required this.roomNo,
|
||||
required this.scale,
|
||||
required this.textDirection,
|
||||
required this.roomText,
|
||||
required this.roomTextAr,
|
||||
required this.globalConfigurationsModel,
|
||||
required this.callTypeEnum,
|
||||
required this.screenTypeEnum,
|
||||
required this.langTypeEnum,
|
||||
this.isGradientRequired = false,
|
||||
this.isBorderRequired = false,
|
||||
this.isSingleTicket = false,
|
||||
this.blink = false,
|
||||
});
|
||||
|
||||
String getFormattedTicket(String ticketNo, bool isClinicAdded) {
|
||||
if (isClinicAdded) {
|
||||
var formattedString = ticketNo.split(" ");
|
||||
if (formattedString.length > 1) {
|
||||
return "${formattedString[0]} ${formattedString[1]}";
|
||||
} else {
|
||||
return ticketNo;
|
||||
}
|
||||
}
|
||||
return ticketNo;
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final text = "${callTypeEnum.getMessageByCallTypeForEnglish(globalConfigurationsModel, isListView: false)} | $roomText $roomNo";
|
||||
|
||||
return Stack(
|
||||
children: [
|
||||
customShadowSmoothContainerWithBackground(
|
||||
padding: EdgeInsets.symmetric(vertical: SizeConfig.getHeightMultiplier() * 0.1),
|
||||
callTypeEnum: callTypeEnum,
|
||||
child: Directionality(
|
||||
textDirection: textDirection,
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.end,
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.only(
|
||||
right: textDirection == TextDirection.ltr ? SizeConfig.getWidthMultiplier() * 3.5 : 0,
|
||||
left: textDirection == TextDirection.rtl ? SizeConfig.getWidthMultiplier() * 3.5 : 0,
|
||||
),
|
||||
child: callTypeEnum.getIconByCallType(SizeConfig.getHeightMultiplier() * 0.5),
|
||||
),
|
||||
SizedBox(height: SizeConfig.getHeightMultiplier()! * 0.15),
|
||||
IntrinsicWidth(
|
||||
child: callTypeContainer(
|
||||
textDirection: textDirection,
|
||||
padding: EdgeInsets.all(SizeConfig.getHeightMultiplier() * 0.1),
|
||||
color: callTypeEnum.getColorByCallType(),
|
||||
child: engArabicTextWithSeparatorWidget(
|
||||
englishText: roomNo,
|
||||
arabicText: roomTextAr,
|
||||
color: AppColors.whiteColor,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
),
|
||||
),
|
||||
),
|
||||
SizedBox(height: SizeConfig.getHeightMultiplier()! * 0.15),
|
||||
Padding(
|
||||
padding: EdgeInsets.only(
|
||||
right: textDirection == TextDirection.ltr ? SizeConfig.getWidthMultiplier() * 3.5 : 0,
|
||||
left: textDirection == TextDirection.rtl ? SizeConfig.getWidthMultiplier() * 3.5 : 0,
|
||||
),
|
||||
child: AppText(
|
||||
callTypeEnum.getMessageByCallTypeForArabic(globalConfigurationsModel, isListView: false),
|
||||
color: callTypeEnum.getColorByCallType(),
|
||||
fontSize: SizeConfig.getWidthMultiplier() * 2.5,
|
||||
fontHeight: 1,
|
||||
fontFamily: AppStrings.fontNameGesTwo,
|
||||
),
|
||||
),
|
||||
SizedBox(height: SizeConfig.getHeightMultiplier()! * 0.15),
|
||||
Padding(
|
||||
padding: EdgeInsets.only(
|
||||
right: textDirection == TextDirection.ltr ? SizeConfig.getWidthMultiplier() * 3.5 : 0,
|
||||
left: textDirection == TextDirection.rtl ? SizeConfig.getWidthMultiplier() * 3.5 : 0,
|
||||
),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
children: [
|
||||
ClipRRect(
|
||||
child: AppText(
|
||||
text,
|
||||
color: callTypeEnum.getColorByCallType(),
|
||||
fontSize: SizeConfig.getWidthMultiplier() * 2.4,
|
||||
fontFamily: AppStrings.fontNamePoppins,
|
||||
textAlign: TextAlign.left,
|
||||
textOverflow: TextOverflow.clip,
|
||||
maxLines: 1,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsets.only(
|
||||
top: SizeConfig.getHeightMultiplier() * 0.1,
|
||||
left: textDirection == TextDirection.ltr ? SizeConfig.getWidthMultiplier() * 2 : 0,
|
||||
right: textDirection == TextDirection.rtl ? SizeConfig.getWidthMultiplier() * 2 : 0,
|
||||
),
|
||||
child: SvgPicture.asset(AppAssets.hmgLogoPatternDarkIcon, height: SizeConfig.getHeightMultiplier() * 1),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsets.only(
|
||||
left: textDirection == TextDirection.ltr ? SizeConfig.getWidthMultiplier() * 6 : 0,
|
||||
right: textDirection == TextDirection.rtl ? SizeConfig.getWidthMultiplier() * 6 : 0,
|
||||
top: SizeConfig.getHeightMultiplier() * 0.4,
|
||||
),
|
||||
child: AppText(
|
||||
getFormattedTicket(ticketNo, isClinicAdded),
|
||||
fontSize: SizeConfig.getWidthMultiplier() * 7.4,
|
||||
letterSpacing: -1,
|
||||
fontHeight: 0.5,
|
||||
color: AppColors.greyTextColor,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontFamily: AppStrings.fontNamePoppins,
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,144 @@
|
||||
import 'package:blinking_text/blinking_text.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:hmg_qline/constants/app_constants.dart';
|
||||
import 'package:hmg_qline/models/global_config_model.dart';
|
||||
import 'package:hmg_qline/utilities/enums.dart';
|
||||
import 'package:hmg_qline/utilities/extensions.dart';
|
||||
import 'package:hmg_qline/views/common_widgets/app_general_widgets.dart';
|
||||
import 'package:hmg_qline/views/common_widgets/app_texts_widget.dart';
|
||||
import 'package:hmg_qline/views/view_helpers/size_config.dart';
|
||||
|
||||
class QueueItemNormalCard extends StatelessWidget {
|
||||
final String ticketNo;
|
||||
final String roomNo;
|
||||
final bool isClinicAdded;
|
||||
final TextDirection textDirection;
|
||||
final String roomText;
|
||||
final String roomTextAr;
|
||||
final GlobalConfigurationsModel globalConfigurationsModel;
|
||||
final CallTypeEnum callTypeEnum;
|
||||
final ScreenTypeEnum screenTypeEnum;
|
||||
final LanguageEnum langTypeEnum;
|
||||
|
||||
const QueueItemNormalCard({
|
||||
super.key,
|
||||
required this.isClinicAdded,
|
||||
required this.ticketNo,
|
||||
required this.roomNo,
|
||||
required this.textDirection,
|
||||
required this.roomText,
|
||||
required this.roomTextAr,
|
||||
required this.globalConfigurationsModel,
|
||||
required this.callTypeEnum,
|
||||
required this.screenTypeEnum,
|
||||
required this.langTypeEnum,
|
||||
});
|
||||
|
||||
String getFormattedTicket(String ticketNo, bool isClinicAdded) {
|
||||
if (isClinicAdded) {
|
||||
var formattedString = ticketNo.split(" ");
|
||||
if (formattedString.length > 1) {
|
||||
return "${formattedString[0]} ${formattedString[1]}";
|
||||
} else {
|
||||
return ticketNo;
|
||||
}
|
||||
}
|
||||
return ticketNo;
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final text = "${callTypeEnum.getMessageByCallTypeForEnglish(globalConfigurationsModel, isListView: false)} | $roomText $roomNo";
|
||||
return Stack(
|
||||
children: [
|
||||
customShadowSmoothContainer(
|
||||
padding: EdgeInsets.symmetric(
|
||||
vertical: SizeConfig.getHeightMultiplier() * 0.1,
|
||||
horizontal: SizeConfig.getWidthMultiplier() * 1.5,
|
||||
),
|
||||
child: Directionality(
|
||||
textDirection: textDirection,
|
||||
child: Column(
|
||||
children: [
|
||||
SizedBox(height: SizeConfig.getHeightMultiplier()! * 0.14),
|
||||
AppText(
|
||||
getFormattedTicket(ticketNo, isClinicAdded),
|
||||
fontSize: SizeConfig.getWidthMultiplier() * 5,
|
||||
letterSpacing: -1,
|
||||
fontHeight: 0.5,
|
||||
color: AppColors.greyTextColor,
|
||||
fontWeight: FontWeight.bold,
|
||||
fontFamily: AppStrings.fontNamePoppins,
|
||||
),
|
||||
SizedBox(height: SizeConfig.getHeightMultiplier()! * 0.15),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
children: [
|
||||
callTypeEnum.getIconByCallType(SizeConfig.getHeightMultiplier() * 0.35),
|
||||
],
|
||||
),
|
||||
SizedBox(height: SizeConfig.getHeightMultiplier()! * 0.14),
|
||||
IntrinsicWidth(
|
||||
child: callTypeContainer(
|
||||
textDirection: textDirection,
|
||||
isDisableRightBorderRadius: false,
|
||||
padding: EdgeInsets.all(SizeConfig.getHeightMultiplier() * 0.05),
|
||||
color: callTypeEnum.getColorByCallType(),
|
||||
child: engArabicTextWithSeparatorWidget(
|
||||
fontSize: SizeConfig.getWidthMultiplier()! * 1.8,
|
||||
englishText: roomNo,
|
||||
arabicText: roomTextAr,
|
||||
color: AppColors.whiteColor,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
),
|
||||
),
|
||||
),
|
||||
SizedBox(height: SizeConfig.getHeightMultiplier()! * 0.14),
|
||||
AppText(
|
||||
textAlign: TextAlign.center,
|
||||
callTypeEnum.getMessageByCallTypeForArabic(globalConfigurationsModel, isListView: false),
|
||||
color: callTypeEnum.getColorByCallType(),
|
||||
fontSize: SizeConfig.getWidthMultiplier() * 2,
|
||||
fontHeight: 1,
|
||||
fontFamily: AppStrings.fontNameGesTwo,
|
||||
maxLines: 2,
|
||||
textOverflow: TextOverflow.clip,
|
||||
),
|
||||
SizedBox(height: SizeConfig.getHeightMultiplier()! * 0.14),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Expanded(
|
||||
child: Center(
|
||||
child: ClipRRect(
|
||||
child: AppText(
|
||||
text,
|
||||
color: callTypeEnum.getColorByCallType(),
|
||||
fontSize: SizeConfig.getWidthMultiplier() * 1.6,
|
||||
fontFamily: AppStrings.fontNamePoppins,
|
||||
textAlign: TextAlign.left,
|
||||
textOverflow: TextOverflow.clip,
|
||||
maxLines: 1,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsets.only(
|
||||
left: textDirection == TextDirection.ltr ? SizeConfig.getWidthMultiplier() * 2 : 0,
|
||||
right: textDirection == TextDirection.rtl ? SizeConfig.getWidthMultiplier() * 2 : 0,
|
||||
top: SizeConfig.getHeightMultiplier() * 0.1,
|
||||
),
|
||||
child: SvgPicture.asset(AppAssets.hmgLogoPatternLightIcon, height: SizeConfig.getHeightMultiplier() * 0.8),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||