/* Ċ Ġ* ĠCopyright Ġ 2 0 2 2 ĠJ aya ĠSur ya ĠTh ot ap al li Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . jay as ury at . min es w eeper ui . grid Ċ Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . mutable State Of Ċ import Ġandroidx . compose . runtime . remember Ċ import Ġandroidx . compose . runtime . save able . remember Save able Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . graphics . graphics Layer Ċ import Ġcom . jay as ury at . min es w eeper ui . action . Cell Interaction Listener Ċ import Ġcom . jay as ury at . min es w eeper ui . component . Zoom able Content Ċ import Ġcom . jay as ury at . util . Log Composition s Ċ Ċ @ Composable Ċ public Ġfun ĠM ine field ( ĊĠĠĠ Ġmodifier : ĠModifier , ĊĠĠĠ Ġgrid Info : ĠGrid Layout Information , ĊĠĠĠ Ġaction Listener : ĠCell Interaction Listener , Ċ ) Ġ{ ĊĊĠĠĠ ĠLog Composition s ( name Ġ= Ġ" Mine field ") ĊĊĠĠĠ Ġval Ġsav able State Ġ= Ġremember Save able Ġ{ ĊĠĠĠĠĠĠĠ Ġmutable State Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠZoom Pan State ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale Ġ= Ġ 1 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtranslation X Ġ= Ġ 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtranslation Y Ġ= Ġ 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġzoom Pan State Ġ= Ġremember Ġ{ Ġsav able State . value Ġ} ĊĊĠĠĠ ĠZoom able Content ( ĊĠĠĠĠĠĠĠ Ġdefault State Ġ= Ġzoom Pan State , ĊĠĠĠ Ġ) Ġ{ Ġzoom State : ĠZoom Pan State Ġ-> ĊĊĠĠĠĠĠĠĠ Ġsav able State . value Ġ= Ġzoom State ĊĊĠĠĠĠĠĠĠ ĠM ine Grid ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier . then ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠModifier . graphics Layer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale X Ġ= Ġzoom State . scale ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale Y Ġ= Ġzoom State . scale ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtranslation X Ġ= Ġzoom State . translation X ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtranslation Y Ġ= Ġzoom State . translation Y ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrid Info Ġ= Ġgrid Info , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Listener Ġ= Ġaction Listener , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ