{"version":3,"file":"static/chunks/1294-9891ac0d86300430.js","mappings":"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CACP,IAAO,GACP,IAAO,GACP,OACA,KAAQ,GACV,OACA,EAAY,WACH,CACP,IAAO,EACP,IAAO,EACP,MACA,KAAQ,EACV,MACA,EAAY,WACH,CACP,IAAO,EACP,IAAO,EACP,MACA,KAAQ,EACV,MACA,EAAa,YACJ,CACP,IAAO,EACP,IAAO,EACP,MACA,KAAQ,EACV,MACA,EAAa,YACJ,CACP,IAAO,EACP,IAAO,EACP,MACA,KAAQ,EACV,MACA,EAAa,YACJ,CACP,IAAO,EACP,IAAO,EACP,MACA,KAAQ,EACV,MACA,EAAa,YACJ,CACP,IAAO,EACP,IAAO,EACP,MACA,KAAQ,EACV,OACA,EAAa,YACJ,CACP,IAAO,EACP,IAAO,EACP,OACA,KAAQ,GACV,OACA,EAAa,YACJ,CACP,IAAO,GACP,IAAO,GACP,OACA,KAAQ,GACV,OACA,EAAY,WACH,CACP,IAAO,EACP,IAAO,EACP,MACA,KAAQ,EACV,MACA,EAAY,WACH,CACP,IAAO,EACP,IAAO,EACP,MACA,KAAQ,EACV,MACA,EAAa,YACJ,CACP,IAAO,EACP,IAAO,EACP,MACA,KAAQ,EACV,MACA,EAAa,YACJ,CACP,IAAO,EACP,IAAO,EACP,MACA,KAAQ,EACV,MACA,EAAa,YACJ,CACP,IAAO,EACP,IAAO,EACP,MACA,KAAQ,EACV,MACA,EAAa,YACJ,CACP,IAAO,EACP,IAAO,EACP,OACA,KAAQ,GACV,OACA,EAAa,YACJ,CACP,IAAO,GACP,IAAO,GACP,OACA,KAAQ,GACV,OACA,EAAa,YACJ,CACP,IAAO,GACP,IAAO,GACP,OACA,KAAQ,GACV,OACA,EAAY,WACH,CACP,IAAO,EACP,IAAO,EACP,MACA,KAAQ,EACV,MACA,EAAY,WACH,CACP,IAAO,EACP,IAAO,EACP,MACA,KAAQ,EACV,MACA,EAAa,YACJ,CACP,IAAO,EACP,IAAO,EACP,MACA,KAAQ,EACV,MACA,EAAa,YACJ,CACP,IAAO,EACP,IAAO,EACP,MACA,KAAQ,EACV,MACA,EAAa,YACJ,CACP,IAAO,EACP,IAAO,EACP,OACA,KAAQ,GACV,OACA,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Z,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GAChB,eACA,EAAa,YACX,CACA,WAAY,EACZ,WAAY,EACZ,aACA,YAAa,EACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GAChB,eACA,EAAa,YACX,CACA,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GAChB,eACA,EAAa,YACX,CACA,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GAChB,eACA,EAAa,YACX,CACA,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GAChB,eACA,EAA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ACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GAChB,eACA,EAAa,YACX,CACA,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GAChB,eACA,EAAa,YACX,CACA,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GAChB,eACA,EAAa,YACX,CACA,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GAChB,eACA,EAAa,YACX,CACA,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GAChB,eACA,EAAa,YACX,CACA,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GAChB,eACA,EAAa,YACX,CACA,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GAChB,eACA,EAAa,YACX,CACA,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GAChB,eACA,EAAa,YACX,CACA,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cAC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,GACZ,cACA,YAAa,GACb,YAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GAChB,eACA,EAAa,YACX,CACA,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GAChB,eACA,EAAa,YACX,CACA,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GAChB,eACA,EAAa,YACX,CACA,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GAChB,eACA,EAAa,YACX,CACA,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GAChB,eACA,EAAa,YACX,CACA,WAAY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CA,YAAa,GACb,YAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GAChB,eACA,EAAa,YACX,CACA,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAY,GACZ,WAAY,GACZ,WAAY,GACZ,cACA,YAAa,GACb,YAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,GACb,YAAa,GACb,YAAa,GACb,eACA,aAAc,GACd,aAAa,G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","sources":["webpack://_N_E/./src/utils/packPhase.ts","webpack://_N_E/./src/contexts/group.tsx","webpack://_N_E/./src/contexts/invoices.tsx","webpack://_N_E/./src/contexts/materialTypes.tsx","webpack://_N_E/./src/contexts/materials.tsx","webpack://_N_E/./src/contexts/products.tsx","webpack://_N_E/./src/contexts/project.tsx","webpack://_N_E/./src/contexts/quotes.tsx","webpack://_N_E/./src/contexts/species.tsx","webpack://_N_E/./src/contexts/tenant.tsx","webpack://_N_E/./src/contexts/vanplans.tsx","webpack://_N_E/./src/graphql/product.ts","webpack://_N_E/./src/graphql/queries.ts","webpack://_N_E/./src/hooks/data.ts","webpack://_N_E/./src/hooks/datalist.ts","webpack://_N_E/./src/components/QrScanner.tsx","webpack://_N_E/./src/layouts/AppBar/AppBarIconButton.tsx","webpack://_N_E/./src/layouts/AppBar/HomeAppBar/index.tsx","webpack://_N_E/./src/layouts/AppBar/AdminAppBar/index.tsx","webpack://_N_E/./src/layouts/AppBar/ProjectAppBar/index.tsx","webpack://_N_E/./src/layouts/AppBar/ExternalAppBar/ProjectAppBar/index.tsx","webpack://_N_E/./src/layouts/AppBar/index.tsx","webpack://_N_E/./src/layouts/Navigation/HomeNavs/NavItems.tsx","webpack://_N_E/./src/layouts/Navigation/HomeNavs/index.tsx","webpack://_N_E/./src/layouts/Navigation/ProjectNavs/NavItems/QuoteItems.tsx","webpack://_N_E/./src/layouts/Navigation/ProjectNavs/NavItems/PackProductItems.tsx","webpack://_N_E/./src/layouts/Navigation/ProjectNavs/NavItems/NonPackProductItems.tsx","webpack://_N_E/./src/layouts/Navigation/ProjectNavs/NavItems/InvoiceItems.tsx","webpack://_N_E/./src/layouts/Navigation/ProjectNavs/NavItems/vanplanItems.tsx","webpack://_N_E/./src/layouts/Navigation/ProjectNavs/NavItems/index.tsx","webpack://_N_E/./src/layouts/Navigation/ProjectNavs/index.tsx","webpack://_N_E/./src/layouts/Navigation/index.tsx","webpack://_N_E/./src/layouts/index.tsx","webpack://_N_E/./src/utils/bom/calculate.ts","webpack://_N_E/./src/utils/bom/elements.ts","webpack://_N_E/./src/utils/bom/extract.ts","webpack://_N_E/./src/utils/bom/style.ts","webpack://_N_E/./src/utils/bom/calculateStrength.tsx","webpack://_N_E/./src/utils/bom/index.ts","webpack://_N_E/./src/utils/bom/operation.ts","webpack://_N_E/./src/utils/bom/parse.ts","webpack://_N_E/./src/utils/bom/update.ts","webpack://_N_E/./src/utils/case.tsx","webpack://_N_E/./src/utils/constant.ts","webpack://_N_E/./src/utils/error.ts","webpack://_N_E/./src/utils/errors/invoice.ts","webpack://_N_E/./src/utils/invoice.ts","webpack://_N_E/./src/utils/jis/beamMaterial/index.ts","webpack://_N_E/./src/utils/jis/beamSupportMaterial/index.ts","webpack://_N_E/./src/utils/jis/combinationSign/Z1402/combinationSign.ts","webpack://_N_E/./src/utils/jis/combinationSign/Z1402/index.ts","webpack://_N_E/./src/utils/jis/combinationSign/Z1403/combinationSign.ts","webpack://_N_E/./src/utils/jis/combinationSign/Z1403/index.ts","webpack://_N_E/./src/utils/jis/combinationSign/Z1410Level1/combinationSign.ts","webpack://_N_E/./src/utils/jis/combinationSign/Z1410Level1/index.ts","webpack://_N_E/./src/utils/jis/combinationSign/Z1410Level2/combinationSign.ts","webpack://_N_E/./src/utils/jis/combinationSign/Z1410Level2/index.ts","webpack://_N_E/./src/utils/jis/combinationSign/Z1410Level3/combinationSign.ts","webpack://_N_E/./src/utils/jis/combinationSign/Z1410Level3/index.ts","webpack://_N_E/./src/utils/jis/combinationSign/Z1410Level4/combinationSign.ts","webpack://_N_E/./src/utils/jis/combinationSign/Z1410Level4/index.ts","webpack://_N_E/./src/utils/material.ts","webpack://_N_E/./src/utils/package.ts","webpack://_N_E/./src/utils/packageBom.ts","webpack://_N_E/./src/utils/product.tsx","webpack://_N_E/./src/utils/productSummary.ts","webpack://_N_E/./src/utils/project.ts","webpack://_N_E/./src/utils/vanplan/container.ts","webpack://_N_E/./src/utils/vanplan/vanplan.ts","webpack://_N_E/"],"sourcesContent":["import { API } from \"aws-amplify\";\n\nimport { CustomError } from \"./error\";\n\nimport { Case } from \"API\";\nimport { GraphQLInput } from \"hooks/data\";\nimport * as mutations from \"graphql/mutations\";\n\nexport const getPhaseIdFromStepIndex = (c: Case, index: number) => {\n if (!c || !c.packPhases) return null;\n\n if (index === c.packPhases.length) return \"final\";\n if (index > c.packPhases.length) return \"complete\";\n\n const p = c.packPhases[index];\n if (!p) return null;\n\n return p.id;\n};\n\nexport const getStepIndex = (c: Case | undefined, phaseId: string) => {\n if (!c || !c.packPhases) return 0;\n if (phaseId === \"final\") return c.packPhases.length;\n if (phaseId === \"complete\") return c.packPhases.length + 1;\n const p = c.packPhases.findIndex((p) => p?.id === phaseId);\n if (p < 0) return 0;\n return p;\n};\n\nexport const updatePackPhaseWithOptimisticLock = async (\n input: GraphQLInput\n) => {\n try {\n const res = await API.graphql({\n query: mutations.updatePackPhaseWithOptimisticLock,\n variables: {\n input,\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n });\n if (res.errors) {\n throw new Error(res.errors);\n }\n\n return res.data.updatePackPhaseWithOptimisticLock;\n } catch (err) {\n throw new CustomError(err, \"update\");\n }\n};\n\nexport const updateGroupWithOptimisticLock = async (input: GraphQLInput) => {\n try {\n const res = await API.graphql({\n query: mutations.updateGroupWithOptimisticLock,\n variables: {\n input,\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n });\n if (res.errors) {\n throw new Error(res.errors);\n }\n\n return res.data.updateGroupWithOptimisticLock;\n } catch (err) {\n throw new CustomError(err, \"update\");\n }\n};\n","import {\n ReactNode,\n createContext,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { API } from \"aws-amplify\";\n\nimport { useAuth } from \"./auth\";\nimport { useAlerts } from \"./alerts\";\n\nimport type { Group, PackPhase, UsersGroups } from \"API\";\nimport useData, { GraphQLInput } from \"hooks/data\";\nimport {\n updateGroupWithOptimisticLock,\n updatePackPhaseWithOptimisticLock,\n} from \"utils/packPhase\";\nimport { CustomError } from \"utils/error\";\nimport { SelectableListRowType } from \"components/SelectableList\";\nimport { diffContainerMasters } from \"utils/vanplan/container\";\nimport * as mutations from \"graphql/mutations\";\n\ninterface GroupContextValue {\n loading: boolean;\n group: Group | undefined;\n users: UsersGroups[] | [];\n update: (input: GraphQLInput) => void;\n updateGroupWithOptimisticLock: (input: GraphQLInput) => void;\n updatePackPhaseWithOptimisticLock: (input: GraphQLInput) => void;\n updateMainContainerMasters: (\n selected: SelectableListRowType[]\n ) => Promise;\n refetch: () => Promise;\n set: (input: GraphQLInput) => void;\n}\n\ninterface GroupContextProps {\n caseOrder?: string | null | undefined;\n children: ReactNode;\n}\n\nconst GroupContext = createContext({\n group: undefined,\n users: [],\n loading: false,\n update: () => null,\n updateGroupWithOptimisticLock: () => null,\n updatePackPhaseWithOptimisticLock: () => null,\n updateMainContainerMasters: () => Promise.resolve(),\n refetch: () => Promise.resolve(),\n set: () => Promise.resolve,\n});\n\nexport const GroupProvider = ({ children }: GroupContextProps) => {\n const { currentGroup } = useAuth();\n const { addAlert } = useAlerts();\n const [users, setUsers] = useState([]);\n const { data, loading, refetch, update, set } = useData({\n object: \"group\",\n variables: {\n id: currentGroup?.id,\n },\n });\n\n useEffect(() => {\n refetch({\n id: currentGroup?.id,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentGroup]);\n useEffect(() => {\n if (!data) return setUsers([]);\n setUsers(data.users.items);\n }, [data]);\n\n const setPackPhase = (input: GraphQLInput) => {\n const newPackPhases = [...data.packPhases];\n const index = data.packPhases.findIndex(\n (p: PackPhase) => p.id === input.packPhase.id\n );\n newPackPhases[index] = input.packPhase;\n const newGroup = {\n ...data,\n packPhases: newPackPhases,\n };\n set(newGroup);\n };\n\n const updateGroup = async (input: GraphQLInput) => {\n try {\n await updateGroupWithOptimisticLock(input);\n set({\n ...data,\n packPhases: input.packPhases,\n version: input.version + 1,\n });\n addAlert({ message: \"更新しました\", severity: \"success\" });\n } catch (err) {\n if (err instanceof CustomError)\n addAlert({ message: err.message, severity: \"error\" });\n }\n };\n\n const updatePackPhase = async (input: GraphQLInput) => {\n try {\n await updatePackPhaseWithOptimisticLock(input);\n input.packPhase.version = input.packPhase.version + 1;\n setPackPhase({ ...input });\n addAlert({ message: \"更新しました\", severity: \"success\" });\n } catch (err) {\n if (err instanceof CustomError)\n addAlert({ message: err.message, severity: \"error\" });\n }\n };\n\n const updateMainContainerMasters = async (\n selected: SelectableListRowType[]\n ) => {\n if (!data) return;\n const { deleted, added, updated } = diffContainerMasters(data, selected);\n const promises = [];\n if (deleted.length) {\n for (const d of deleted) {\n promises.push(\n API.graphql({\n query: mutations.deleteGroupsContainerMasters,\n variables: { input: d },\n })\n );\n }\n }\n if (added.length) {\n for (const a of added) {\n promises.push(\n API.graphql({\n query: mutations.createGroupsContainerMasters,\n variables: { input: a },\n })\n );\n }\n }\n if (updated.length) {\n for (const u of updated) {\n promises.push(\n API.graphql({\n query: mutations.updateGroupsContainerMasters,\n variables: { input: u },\n })\n );\n }\n }\n await Promise.all(promises);\n };\n\n const values = useMemo(\n () => ({\n group: data,\n users,\n update,\n updateGroupWithOptimisticLock: updateGroup,\n updatePackPhaseWithOptimisticLock: updatePackPhase,\n updateMainContainerMasters: updateMainContainerMasters,\n loading,\n refetch: () => refetch({ id: currentGroup?.id }),\n set,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n data,\n update,\n loading,\n users,\n set,\n updateGroupWithOptimisticLock,\n updatePackPhaseWithOptimisticLock,\n updateMainContainerMasters,\n ]\n );\n\n return (\n {children}\n );\n};\n\nexport const useGroup = () => {\n const groupContext = useContext(GroupContext);\n\n if (groupContext === undefined) {\n throw new Error(\"useGroup must be within GroupProvider\");\n }\n\n return groupContext;\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport {\n ReactNode,\n createContext,\n useContext,\n useEffect,\n useState,\n} from \"react\";\nimport { API, graphqlOperation } from \"aws-amplify\";\nimport { useRouter } from \"next/router\";\n\nimport { useProducts } from \"./products\";\n\nimport type { Invoice, ProductCaseInput, ProductSummary } from \"API\";\nimport useDatalist from \"hooks/datalist\";\nimport { GraphQLInput } from \"hooks/datalist\";\nimport { useProject } from \"contexts/project\";\nimport { useAlerts } from \"contexts/alerts\";\nimport { useDialog } from \"contexts/dialog\";\nimport { useAuth } from \"contexts/auth\";\nimport { useGroup } from \"contexts/group\";\nimport { getInvoiceInputs } from \"utils/invoice\";\nimport { ProductSummariesFilter } from \"utils/productSummary\";\nimport { productSummariesByProjectId } from \"graphql/queries\";\n\ninterface InvoicesContextValue {\n loading: boolean;\n productSummariesLoading: boolean;\n invoices: Invoice[];\n productSummariesForInvoice: [];\n lastUpdatedAt: string;\n create: (input: GraphQLInput) => Promise;\n update: (input: GraphQLInput) => Promise;\n remove: (id: string) => Promise;\n importWithDeleting: (\n id: string,\n productCases?: ProductCaseInput[]\n ) => Promise;\n importWithoutDeleting: (\n id: string,\n productCases?: ProductCaseInput[]\n ) => Promise;\n export: (id: string) => Promise;\n refetch: () => Promise;\n fetchProductSummaries: (filter?: ProductSummariesFilter) => Promise;\n}\n\ninterface InvoicesContextProps {\n children: ReactNode;\n}\n\nconst InvoicesContext = createContext({\n invoices: [],\n productSummariesForInvoice: [],\n loading: false,\n productSummariesLoading: false,\n lastUpdatedAt: \"\",\n refetch: () => Promise.resolve(),\n create: () => Promise.resolve(),\n update: () => Promise.resolve(),\n importWithDeleting: () => Promise.resolve(),\n importWithoutDeleting: () => Promise.resolve(),\n export: () => Promise.resolve(),\n remove: () => Promise.resolve(),\n fetchProductSummaries: () => Promise.resolve(),\n});\n\nconst isInvoice = (data: any): data is Invoice => {\n return data && data.id && data.projectId && data.name;\n};\n\nexport const InvoicesProvider = ({ children }: InvoicesContextProps) => {\n const { project } = useProject();\n const { data, loading, update, create, remove, refetch } = useDatalist({\n query: `invoicesByProjectId`,\n variables: {\n projectId: project?.id,\n },\n sort: (a, b) => {\n // orderというfieldがあったらそれで、なかったらcreatedAtでソートする\n if (a.order && b.order) {\n return a.order - b.order;\n } else {\n return (\n new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime()\n );\n }\n },\n });\n\n const defaultProductSummariesFilter: ProductSummariesFilter = {\n includeIncompleteProduct: false,\n includeBilledProduct: false,\n scheduleIds: undefined,\n };\n\n const [productSummaries, setProductSummaries] = useState(data);\n const [productSummariesLoadingData, setProductSummariesLoadingData] =\n useState(false);\n\n const fetchProductSummaries = async (\n filter: ProductSummariesFilter = defaultProductSummariesFilter\n ) => {\n if (!project) {\n setProductSummaries([]);\n }\n\n setProductSummariesLoadingData(true);\n const res = (\n await API.graphql(\n graphqlOperation(productSummariesByProjectId, {\n input: { projectId: project!.id, filter },\n })\n )\n ).data.productSummariesByProjectId.items.sort(\n (a: ProductSummary, b: ProductSummary) => {\n return (a?.productOrder as number) - (b?.productOrder as number);\n }\n );\n\n setProductSummaries(res);\n setProductSummariesLoadingData(false);\n };\n\n const { open } = useDialog();\n const {\n products,\n update: updateProduct,\n refetch: refetchProduct,\n } = useProducts();\n const { addAlert, setSnooze } = useAlerts();\n const { user } = useAuth();\n const { group } = useGroup();\n // 最終更新日時\n const [lastUpdatedAt, setLastUpdatedAt] = useState(\"\");\n const router = useRouter();\n\n const createInvoice = async (input: GraphQLInput) => {\n // null check\n if (!group || !project || !user) return;\n const res = await create(\n \"createInvoice\",\n getInvoiceInputs(\n group,\n project,\n user?.id,\n {\n name: input.name,\n invoiceNo: input.invoiceNo,\n issueDate: input.issueDate,\n billingDate: input.billingDate,\n recordingDate: input.recordingDate,\n },\n group?.tenant?.host ?? \"\"\n )\n );\n refetch({ projectId: project?.id });\n if (!isInvoice(res)) return;\n const url = `/projects/${project?.id}?page=invoices&invoiceId=${res.id}`;\n router.push(url);\n };\n\n const removeInvoice = async (id: string) => {\n open({\n title: \"請求を削除しますか?\",\n content: \"削除すると二度と戻せません\",\n okText: \"削除\",\n onOk: async () => {\n setSnooze([\"success\"]);\n addAlert({ message: \"削除中です\", severity: \"info\" });\n // invoiceLineのidを持つcaseのisBilledとinvoiceLineIdを初期化する\n const invoice = data?.find((invoice: any) => invoice.id === id);\n if (invoice) {\n const invoiceLineIds = invoice.invoiceLines?.items.map(\n (line: any) => line.id\n );\n const productUpdatePromises: Promise[] = [];\n for (const product of products) {\n if (product.cases) {\n const cases = product.cases;\n let updated = false;\n for (const c of cases) {\n if (\n c?.invoiceLineId &&\n invoiceLineIds.includes(c.invoiceLineId)\n ) {\n c.invoiceLineId = null;\n c.isBilled = false;\n updated = true;\n }\n }\n if (updated) {\n productUpdatePromises.push(\n updateProduct({\n id: product.id,\n cases,\n })\n );\n }\n }\n }\n await Promise.all(productUpdatePromises);\n await refetchProduct({ progress: false });\n }\n await remove(\"deleteInvoice\", { id });\n addAlert({\n message: \"データが削除されました\",\n severity: \"success\",\n force: true,\n });\n setSnooze([]);\n },\n });\n };\n\n const updateInvoice = async (input: GraphQLInput) => {\n await update(\"updateInvoice\", {\n ...input,\n });\n };\n\n const importInvoiceDataWithDeleting = async (\n id: string,\n productCases?: ProductCaseInput[]\n ) => {\n await update(\"importInvoiceLines\", {\n id,\n products: productCases,\n withDeletion: true,\n includeOtherQuoteLines: true,\n });\n await refetchProduct({ progress: false });\n const now = new Date();\n setLastUpdatedAt(now.toLocaleString());\n // await refetch({ projectId: project?.id }, { progress: false });\n };\n\n const importInvoiceDataWithoutDeleting = async (\n id: string,\n productCases?: ProductCaseInput[]\n ) => {\n await update(\"importInvoiceLines\", {\n id,\n products: productCases,\n withDeletion: false,\n includeOtherQuoteLines: false,\n });\n await refetchProduct({ progress: false });\n const now = new Date();\n setLastUpdatedAt(now.toLocaleString());\n };\n\n const exportInvoiceData = async (id: string) => {\n addAlert({ message: \"同期中です\", severity: \"info\" });\n await update(\"exportInvoiceToSalesForce\", {\n id,\n });\n addAlert({ message: \"同期が成功しました\", severity: \"success\" });\n };\n\n useEffect(() => {\n if (!project) return;\n refetch({ projectId: project.id });\n fetchProductSummaries(defaultProductSummariesFilter);\n }, [project]);\n\n return (\n refetch({ projectId: project?.id }),\n create: createInvoice,\n remove: removeInvoice,\n update: updateInvoice,\n importWithDeleting: importInvoiceDataWithDeleting,\n importWithoutDeleting: importInvoiceDataWithoutDeleting,\n export: exportInvoiceData,\n fetchProductSummaries,\n }}\n >\n {children}\n \n );\n};\n\nexport const useInvoices = () => {\n const invoicesContext = useContext(InvoicesContext);\n\n if (invoicesContext === undefined) {\n throw new Error(\"useInvoices must be within InvoiceProvider\");\n }\n\n return invoicesContext;\n};\n","import {\n ReactNode,\n createContext,\n useContext,\n useEffect,\n useState,\n} from \"react\";\n\nimport { useAuth } from \"./auth\";\n\nimport type { MaterialType } from \"API\";\nimport useDatalist from \"hooks/datalist\";\nimport { useDialog } from \"contexts/dialog\";\nimport { useAlerts } from \"contexts/alerts\";\n\ninterface MaterialTypesContextValue {\n loading: boolean;\n materialTypes: MaterialType[];\n packagingMaterialTypes: MaterialType[];\n secondaryMaterialTypes: MaterialType[];\n create: (input: any) => void;\n update: (input: any) => void;\n remove: (ids: string[]) => void;\n}\n\ninterface MaterialTypesContextProps {\n children: ReactNode;\n variables?: { [key: string]: any };\n}\n\nconst MaterialTypesContext = createContext({\n materialTypes: [],\n packagingMaterialTypes: [],\n secondaryMaterialTypes: [],\n loading: false,\n create: () => null,\n update: () => null,\n remove: () => null,\n});\n\nexport const MaterialTypesProvider = ({\n children,\n variables,\n}: MaterialTypesContextProps) => {\n const { currentGroup } = useAuth();\n const {\n data,\n loading,\n refetch,\n create,\n remove,\n update,\n nextToken,\n appendNext,\n } = useDatalist({\n query: \"materialTypesByGroupId\",\n variables: {\n groupId: currentGroup?.id,\n },\n sort: (a, b) => {\n if (a.width && b.width) return a.width - b.width || a.height - b.height;\n if (a.height && b.height) return a.height - b.height;\n return a.name.localeCompare(b.name);\n },\n });\n\n // FIXME: 全件取得するようにしている、ページネーションを実装する必要がある\n // appendNextの実行状態を管理しないとデータが重複する\n const [fetchingNext, setFetchingNext] = useState(false);\n\n // nextTokenがnullになるまでappendNextを実行する\n useEffect(() => {\n if (nextToken && !fetchingNext) {\n // 既にフェッチ中でなければappendNextを呼び出す\n setFetchingNext(true); // フェッチ中の状態をtrueに設定\n appendNext().finally(() => setFetchingNext(false)); // フェッチが終わったらフェッチ中の状態をfalseに設定\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [nextToken]);\n\n useEffect(() => {\n refetch({ groupId: currentGroup?.id });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [variables, currentGroup?.id]);\n\n const { open } = useDialog();\n const { addAlert } = useAlerts();\n\n const createMaterialType = async (input: any) => {\n // inputにcreatedAt, updatedAt, materialsがあったら消す\n delete input.createdAt;\n delete input.updatedAt;\n delete input.materials;\n if (input.customFields) {\n input.customFields.forEach((c: any) => {\n delete c.__typename;\n });\n }\n await create(\"createMaterialType\", {\n ...input,\n groupId: currentGroup?.id,\n });\n addAlert({ message: \"資材分類を作成しました\", severity: \"success\" });\n };\n\n const updateMaterialType = async (input: any) => {\n // inputにcreatedAt, updatedAt, materialsがあったら消す\n delete input.createdAt;\n delete input.updatedAt;\n delete input.materials;\n await update(\"updateMaterialType\", {\n ...input,\n });\n addAlert({ message: \"資材分類を更新しました\", severity: \"success\" });\n };\n\n const removeMaterialType = async (ids: string[]) => {\n open({\n title: \"資材分類を削除しますか?\",\n content: \"削除すると二度と戻せません\",\n okText: \"削除\",\n onOk: async () => {\n const promises = ids.map((id) =>\n remove(\"deleteMaterialType\", {\n id,\n })\n );\n await Promise.all(promises);\n addAlert({ message: \"資材分類を削除しました\", severity: \"success\" });\n },\n });\n };\n\n return (\n d.type === \"packaging\"),\n secondaryMaterialTypes:\n data && data.filter((d: MaterialType) => d.type === \"secondary\"),\n loading,\n create: createMaterialType,\n update: updateMaterialType,\n remove: removeMaterialType,\n }}\n >\n {children}\n \n );\n};\n\nexport const useMaterialTypes = () => {\n const materialTypesContext = useContext(MaterialTypesContext);\n\n if (materialTypesContext === undefined) {\n throw new Error(\"useMaterialTypes must be within MaterialTypesProvider\");\n }\n\n return materialTypesContext;\n};\n","import {\n ReactNode,\n createContext,\n useContext,\n useEffect,\n useState,\n} from \"react\";\n\nimport { useAuth } from \"./auth\";\nimport { useMaterialTypes } from \"./materialTypes\";\n\nimport type { Material } from \"API\";\nimport useDatalist from \"hooks/datalist\";\nimport { useDialog } from \"contexts/dialog\";\nimport { useAlerts } from \"contexts/alerts\";\nimport { calcRefBhh } from \"utils/material\";\n\ninterface MaterialsContextValue {\n loading: boolean;\n materials: Material[]; //有効な資材\n allMaterials: Material[]; //全ての資材\n packagingMaterials: Material[];\n secondaryMaterials: Material[];\n create: (input: any) => void;\n update: (input: any) => void;\n remove: (ids: string[]) => void;\n refetch: (variables?: { [key: string]: any }) => Promise;\n}\n\ninterface MaterialsContextProps {\n children: ReactNode;\n variables?: { [key: string]: any };\n}\n\nconst MaterialsContext = createContext({\n materials: [],\n allMaterials: [],\n packagingMaterials: [],\n secondaryMaterials: [],\n loading: false,\n create: () => null,\n update: () => null,\n remove: () => null,\n refetch: () => Promise.resolve(),\n});\n\nexport const MaterialsProvider = ({\n children,\n variables,\n}: MaterialsContextProps) => {\n const { currentGroup } = useAuth();\n const {\n data,\n loading,\n refetch,\n create,\n remove,\n update,\n nextToken,\n appendNext,\n } = useDatalist({\n query: \"materialsByGroupId\",\n variables: {\n groupId: currentGroup?.id,\n },\n sort: (a, b) => {\n if (a.width && b.width) return a.width - b.width || a.height - b.height;\n if (a.height && b.height) return a.height - b.height;\n return a.name.localeCompare(b.name);\n },\n });\n const { materialTypes } = useMaterialTypes();\n // materialのrefBhh[Face|Edge]がnullだったら計算してセットする\n const materials = data.map((d: Material) => {\n if (!d.materialType?.isWood) return d;\n if (d.refBhhFace === null || d.refBhhEdge === null) {\n const [refBhhFace, refBhhEdge] = calcRefBhh(\n d.widthNominal,\n d.heightNominal\n );\n d.refBhhFace = refBhhFace;\n d.refBhhEdge = refBhhEdge;\n }\n return d;\n });\n\n // FIXME: 全件取得するようにしている、ページネーションを実装する必要がある\n // appendNextの実行状態を管理しないとデータが重複する\n const [fetchingNext, setFetchingNext] = useState(false);\n\n // nextTokenがnullになるまでappendNextを実行する\n useEffect(() => {\n if (nextToken && !fetchingNext) {\n // 既にフェッチ中でなければappendNextを呼び出す\n setFetchingNext(true); // フェッチ中の状態をtrueに設定\n appendNext().finally(() => setFetchingNext(false)); // フェッチが終わったらフェッチ中の状態をfalseに設定\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [nextToken]);\n\n useEffect(() => {\n refetch({\n groupId: currentGroup?.id,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [variables, currentGroup?.id]);\n\n const { open } = useDialog();\n const { addAlert } = useAlerts();\n\n const createMaterial = async (input: any) => {\n const materialType = materialTypes.find(\n (t) => t.id === input.materialTypeId\n );\n // 該当するmaterialTypeがあったらRefBhhを計算する\n // 作成時にないのはmasterDataのimportくらいなので、ここはスキップしてもOK(元データの方でちゃんと設定されているはず)\n if (materialType && materialType.isWood) {\n const [refBhhFace, refBhhEdge] = calcRefBhh(\n input.widthNominal,\n input.heightNominal\n );\n input.refBhhFace = refBhhFace;\n input.refBhhEdge = refBhhEdge;\n }\n await create(\"createMaterial\", {\n ...input,\n groupId: currentGroup?.id,\n });\n addAlert({ message: \"資材を作成しました\", severity: \"success\" });\n };\n\n const updateMaterial = async (input: any) => {\n // refBhhFaceとrefBhhEdgeを計算して値をセットする\n if (!input.id) return;\n const material: Material = data.find((m: Material) => m.id === input.id);\n if (!material) return;\n if (material?.materialType?.isWood) {\n const [refBhhFace, refBhhEdge] = calcRefBhh(\n input.widthNominal || material.widthNominal,\n input.heightNominal || material.heightNominal\n );\n input.refBhhFace = refBhhFace;\n input.refBhhEdge = refBhhEdge;\n }\n await update(\"updateMaterial\", {\n ...input,\n });\n addAlert({ message: \"資材を更新しました\", severity: \"success\" });\n };\n\n const removeMaterial = async (ids: string[]) => {\n open({\n title: \"資材を削除しますか?\",\n content: \"削除すると二度と戻せません\",\n okText: \"削除\",\n onOk: async () => {\n const promises = ids.map((id) =>\n remove(\"deleteMaterial\", {\n id,\n })\n );\n await Promise.all(promises);\n addAlert({ message: \"資材を削除しました\", severity: \"success\" });\n },\n });\n };\n\n return (\n !!d.active),\n packagingMaterials:\n materials &&\n materials.filter(\n (d: Material) => d.materialType?.type === \"packaging\" && !!d.active\n ),\n secondaryMaterials:\n materials &&\n materials.filter(\n (d: Material) => d.materialType?.type === \"secondary\" && !!d.active\n ),\n loading,\n create: createMaterial,\n update: updateMaterial,\n remove: removeMaterial,\n refetch: () =>\n refetch({\n groupId: currentGroup?.id,\n }),\n }}\n >\n {children}\n \n );\n};\n\nexport const useMaterials = () => {\n const materialsContext = useContext(MaterialsContext);\n\n if (materialsContext === undefined) {\n throw new Error(\"useMaterials must be within MaterialsProvider\");\n }\n\n return materialsContext;\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport useEffect from \"use-deep-compare-effect\";\nimport {\n ReactNode,\n createContext,\n useContext,\n useState,\n useEffect as useReactEffect,\n useRef,\n} from \"react\";\nimport _ from \"lodash\";\nimport { useRouter } from \"next/router\";\n\nimport { useMaterials } from \"./materials\";\nimport { useSpecies } from \"./species\";\nimport { useAuth } from \"./auth\";\n\nimport type { Product } from \"API\";\nimport useDatalist from \"hooks/datalist\";\nimport { GraphQLInput, LoadOptions } from \"hooks/datalist\";\nimport { useProject } from \"contexts/project\";\nimport { useDialog } from \"contexts/dialog\";\nimport { getUpdatedCaseInputByProductNumber } from \"utils/product\";\nimport { updateArbitraryProductBomElement } from \"utils/bom\";\nimport { isSharedProduct } from \"utils/project\";\nimport { isProductCaseKey } from \"utils/image\";\n\ninterface ProductsContextValue {\n loading: boolean;\n creating: boolean;\n copying: boolean;\n products: Product[];\n create: (input: GraphQLInput) => Promise;\n createNonPack: (input: GraphQLInput) => Promise;\n copy: (input: GraphQLInput) => Promise;\n update: (input: GraphQLInput) => Promise;\n updateToPending: (\n productId: string,\n refetchFuncs: ((options: LoadOptions) => Promise)[]\n ) => Promise;\n remove: (id: string) => Promise;\n link: (productId: string, quoteLineId: string) => Promise;\n unlink: (productId: string, quoteLineId: string) => Promise;\n refetch: (options?: LoadOptions) => Promise;\n setProduct: (product: Product) => void;\n}\n\ninterface ProductsContextProps {\n children: ReactNode;\n variables: { [key: string]: any };\n by?: \"ProjectId\" | \"ScheduleId\" | \"PackageTypeId\";\n}\n\nconst ProductsContext = createContext({\n products: [],\n loading: false,\n creating: false,\n copying: false,\n create: () => Promise.resolve(),\n createNonPack: () => Promise.resolve(),\n copy: () => Promise.resolve(),\n update: () => Promise.resolve(),\n updateToPending: () => Promise.resolve(),\n remove: () => Promise.resolve(),\n link: () => Promise.resolve(),\n unlink: () => Promise.resolve(),\n refetch: () => Promise.resolve(),\n setProduct: () => {},\n});\n\nconst isProduct = (data: any): data is Product => {\n return data && data.id && data.projectId && data.name;\n};\n\nexport const ProductsProvider = ({\n variables,\n children,\n by,\n}: ProductsContextProps) => {\n const {\n data,\n loading,\n creating,\n refetch,\n create,\n remove,\n update,\n appendNext,\n nextToken,\n set,\n } = useDatalist({\n query: `productsBy${by || \"ProjectId\"}`,\n variables,\n sort: \"order\",\n });\n\n // FIXME: 全件取得するようにしている、ページネーションを実装する必要がある\n // appendNextの実行状態を管理しないとデータが重複する\n const [fetchingNext, setFetchingNext] = useState(false);\n\n const router = useRouter();\n\n // nextTokenがnullになるまでappendNextを実行する\n useReactEffect(() => {\n if (nextToken && !fetchingNext) {\n // 既にフェッチ中でなければappendNextを呼び出す\n setFetchingNext(true); // フェッチ中の状態をtrueに設定\n appendNext().finally(() => setFetchingNext(false)); // フェッチが終わったらフェッチ中の状態をfalseに設定\n }\n }, [nextToken]);\n const [copying, setCopying] = useState(false);\n\n useEffect(() => {\n refetch(variables);\n }, [variables]);\n\n const {\n project,\n update: updateProject,\n updateExternalSharedImageKeys,\n isShared,\n } = useProject();\n const { allMaterials } = useMaterials();\n const { species } = useSpecies();\n const { currentGroup } = useAuth();\n const { open } = useDialog();\n\n // createProductの排他制御用\n const isCreatingProductRef = useRef(false);\n const createProduct = async (input: GraphQLInput) => {\n if (isCreatingProductRef.current) return;\n isCreatingProductRef.current = true;\n try {\n const orderMax = _.maxBy(data, \"order\")?.order ?? -1;\n const { id: productId } = (await create(\"createProductBom\", {\n ...input,\n projectId: project?.id,\n order: orderMax + 1,\n })) as unknown as { id: string };\n // 作成したProductのElementに空更新をかけてCost関連を設定させる\n if (currentGroup) {\n // 更新漏れを防ぐため2回更新を流す\n await updateArbitraryProductBomElement(\n productId,\n { id: productId },\n allMaterials,\n species,\n currentGroup,\n true\n );\n await updateArbitraryProductBomElement(\n productId,\n { id: productId },\n allMaterials,\n species,\n currentGroup,\n true\n );\n }\n // 関連するProjectのupdatedを更新\n if (project !== undefined) {\n updateProject({ id: project.id });\n }\n const url = `/projects/${project?.id}?page=products&productId=${productId}`;\n router.push(url);\n } catch (error) {\n refetch(variables, { progress: false });\n } finally {\n isCreatingProductRef.current = false;\n }\n };\n\n // createNonPackProductの排他制御用\n const isCreatingNonPackroductRef = useRef(false);\n const createNonPackProduct = async (input: GraphQLInput) => {\n if (isCreatingNonPackroductRef.current) return;\n isCreatingNonPackroductRef.current = true;\n try {\n const orderMax = _.maxBy(data, \"order\")?.order ?? -1;\n const res = await create(\"createProduct\", {\n ...input,\n packageTypeId: \"NonPack\",\n packageTypeName: \"NonPack\",\n projectId: project?.id,\n order: orderMax + 1,\n });\n // 関連するProjectのupdatedを更新\n if (project !== undefined) {\n updateProject({ id: project.id });\n }\n if (!isProduct(res)) return;\n const url = `/projects/${project?.id}?page=products&productId=${res.id}`;\n router.push(url);\n } catch (error) {\n refetch(variables, { progress: false });\n } finally {\n isCreatingNonPackroductRef.current = false;\n }\n };\n\n const copyProduct = async (input: GraphQLInput) => {\n setCopying(true);\n const orderMax = _.maxBy(data, \"order\")?.order ?? -1;\n const res = await create(\"copyProduct\", {\n ...input,\n order: orderMax + 1,\n });\n setCopying(false);\n // 関連するProjectのupdatedを更新\n if (project !== undefined) {\n updateProject({ id: project.id });\n }\n if (!isProduct(res)) return;\n const url = `/projects/${project?.id}?page=products&productId=${res.id}`;\n router.push(url);\n };\n\n const updateProduct = async (input: GraphQLInput) => {\n if (!data) return;\n\n // 指示書Noが更新された時はケースの名前も一緒に更新\n if (input.productNumber) {\n const cases = getUpdatedCaseInputByProductNumber(data, input);\n input = {\n ...input,\n cases: cases,\n };\n }\n\n await update(\"updateProduct\", {\n ...input,\n });\n };\n\n const setProduct = (product: Product) => {\n const updatedData = [...data];\n const index = updatedData.findIndex((d) => d.id === product.id);\n updatedData[index] = product;\n set(updatedData);\n };\n\n /**\n * 梱包を仮に戻す、仮に梱包の写真が一枚でも共有されていたらDialogで確認をする\n * @param productId 仮に戻すProductのID\n * @param refetchFuncs 仮に戻した後に再取得する関数配列\n */\n const updateToPending = async (\n productId: string,\n refetchFuncs: ((options: LoadOptions) => Promise)[]\n ) => {\n if (!project) return;\n // 解除対象のProductのImageが共有されていたらDialogで解除の確認をする\n if (isShared && isSharedProduct(project, productId)) {\n open({\n title: \"仮に戻しますか?\",\n content: \"仮に戻すと写真の共有は解除されます\",\n okText: \"はい\",\n onOk: async () => {\n const excludeKeys =\n project.externalSharedImageKeys\n ?.filter((key) => key && isProductCaseKey(key, productId))\n .map((key) => key ?? \"\") ?? [];\n await updateExternalSharedImageKeys([], excludeKeys);\n await updateProduct({\n id: productId,\n readyToPack: false,\n });\n await Promise.all(\n refetchFuncs.map((func) => func({ progress: false }))\n );\n },\n });\n } else {\n await updateProduct({\n id: productId,\n readyToPack: false,\n });\n await Promise.all(refetchFuncs.map((func) => func({ progress: false })));\n }\n };\n\n // TODO: delete photos of product\n const removeProduct = async (id: string) => {\n open({\n title: \"貨物を削除しますか?\",\n content: \"削除すると二度と戻せません\",\n okText: \"削除\",\n onOk: async () => await remove(\"deleteProductBom\", { productId: id }),\n });\n };\n\n const linkProductToQuoteLine = async (\n productId: string,\n quoteLineId: string\n ) => {\n await update(\"linkProductToQuoteLine\", {\n productId,\n quoteLineId,\n });\n };\n\n const unlinkProductFromQuoteLine = async (\n productId: string,\n quoteLineId: string\n ) => {\n await update(\"unlinkProductFromQuoteLine\", {\n productId,\n quoteLineId,\n });\n };\n\n return (\n await refetch(variables, options),\n }}\n >\n {children}\n \n );\n};\n\nexport const useProducts = () => {\n const productsContext = useContext(ProductsContext);\n\n if (productsContext === undefined) {\n throw new Error(\"useProducts must be within ProductsProvider\");\n }\n\n return productsContext;\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport {\n ReactNode,\n createContext,\n useContext,\n useEffect,\n useState,\n} from \"react\";\nimport { uuid } from \"short-uuid\";\nimport { useDeepCompareEffectNoCheck } from \"use-deep-compare-effect\";\nimport Link from \"next/link\";\nimport { Button } from \"@mui/material\";\nimport { useQueryClient } from \"@tanstack/react-query\";\nimport { API } from \"aws-amplify\";\nimport _ from \"lodash\";\n\nimport * as mutations from \"graphql/mutations\";\nimport type {\n GenerateExternalShareInfoInput,\n GenerateExternalShareInfoOutput,\n Project,\n ProjectPhotoPhase,\n} from \"API\";\nimport useData, { GraphQLInput } from \"hooks/data\";\nimport { useDialog } from \"contexts/dialog\";\nimport { useAlerts } from \"contexts/alerts\";\nimport { CognitoUser, useAuth } from \"contexts/auth\";\nimport { removeSizePrefix } from \"utils/image\";\nimport { updateProjectWithOptimisticLock as updateWithOptimisticLock } from \"utils/project\";\nimport { CustomError } from \"utils/error\";\n\ntype AccessLevel = null | \"quoter\" | \"operator\" | \"admin\";\n\ninterface PhaseInput {\n [key: string]: any;\n}\n\ninterface ProjectContextValue {\n loading: boolean;\n access: AccessLevel;\n project: Project | undefined;\n update: (input: GraphQLInput) => Promise;\n updateProjectWithOptimisticLock: (input: GraphQLInput) => Promise;\n updatePhotoPhases: (\n type: \"delete\" | \"update\" | \"create\",\n input: PhaseInput\n ) => Promise;\n updateExternalSharedImageKeys: (\n shareImageKeys: string[],\n excludeImageKeys: string[]\n ) => Promise;\n remove: () => Promise;\n refetch: (variables: any) => Promise;\n generateExternalInfo: () => Promise;\n isShared: boolean;\n}\n\ninterface ProjectContextProps {\n id: string | string[] | undefined;\n children: ReactNode;\n}\n\nfunction getAccessLevel(\n user: CognitoUser | undefined,\n project: Project | null | undefined\n): AccessLevel {\n if (!user || !project) return null;\n\n // 案件作成者\n if (project.userId === user.id) return \"admin\";\n\n // 案件管理者\n if (project.managerId === user.id) return \"admin\";\n\n // 見積担当者\n if (project.quoterId === user.id) return \"quoter\";\n\n // 業務担当者\n if (project.operatorId === user.id) return \"operator\";\n\n return null;\n}\n\nconst ProjectContext = createContext({\n project: undefined,\n loading: false,\n access: null,\n update: () => Promise.resolve(),\n updateProjectWithOptimisticLock: () => Promise.resolve(),\n updatePhotoPhases: () => Promise.resolve(),\n updateExternalSharedImageKeys: () => Promise.resolve(),\n remove: () => Promise.resolve(),\n refetch: () => Promise.resolve(),\n generateExternalInfo: () => Promise.resolve(),\n isShared: false,\n});\n\nexport const ProjectProvider = ({ id, children }: ProjectContextProps) => {\n const { user, currentGroup } = useAuth();\n const [access, setAccess] = useState(null);\n const { data, loading, refetch, update, remove, set } = useData({\n object: \"project\",\n variables: { id },\n });\n const { open } = useDialog();\n const { addAlert } = useAlerts();\n const queryClient = useQueryClient();\n const isShared =\n data?.externalShareUrl != null &&\n data?.externalSharePassword != null &&\n data?.externalShareEnabled;\n\n // 外部公開ページの場合のuser/dataが空の状態でここに辿り着き、エラーになるのでNoCheckを利用\n useDeepCompareEffectNoCheck(() => {\n setAccess(getAccessLevel(user, data));\n }, [user, data]);\n\n useEffect(() => {\n refetch({\n id,\n });\n }, [id]);\n\n const removeProject = async () => {\n await remove({ id: id as string });\n queryClient.invalidateQueries({\n queryKey: [\"projectsByGroupIdForManager\"],\n });\n };\n\n const updateProject = async (input: GraphQLInput) => {\n await update(input);\n queryClient.invalidateQueries({\n queryKey: [\"projectsByGroupIdForManager\"],\n });\n };\n\n const updateProjectWithOptimisticLock = async (input: GraphQLInput) => {\n try {\n await updateWithOptimisticLock(input);\n queryClient.invalidateQueries({\n queryKey: [\"projectsByGroupIdForManager\"],\n });\n set({ ...data, ...input, version: input.version + 1 });\n addAlert({ message: \"更新しました\", severity: \"success\" });\n } catch (err) {\n if (err instanceof CustomError)\n addAlert({ message: err.message, severity: \"error\" });\n }\n };\n\n const updatePhotoPhases = async (\n type: \"delete\" | \"update\" | \"create\",\n input: PhaseInput\n ) => {\n let photoPhases = data.photoPhases?.slice() || [];\n // for delete and update type\n // find phaseId in product.photoPhases, error if not found\n const phaseExists =\n photoPhases.filter((p: ProjectPhotoPhase) => p.id === input.id).length ===\n 1;\n if (!phaseExists && type !== \"create\")\n return addAlert({\n message: \"梱包フェーズが見つかりません\",\n severity: \"error\",\n });\n // if delete, remove phase\n if (type === \"delete\") {\n return open({\n title: \"写真フェーズを削除しますか?\",\n content: \"保存された写真は復元できません。\",\n okText: \"削除する\",\n onOk: async () => {\n await updateProject({\n id: data.id,\n photoPhases: photoPhases.filter(\n (p: ProjectPhotoPhase) => p.id !== input.id\n ),\n });\n },\n });\n }\n // if update, find and update\n if (type === \"update\") {\n photoPhases = photoPhases.reduce(\n (result: ProjectPhotoPhase[], p: ProjectPhotoPhase) => {\n if (p.id !== input.id) result.push(p);\n if (p.id === input.id) {\n result.push({\n ...p,\n ...input,\n });\n }\n return result;\n },\n []\n );\n }\n // if type is create, create with position input.index\n if (type === \"create\") {\n const index = input.index;\n delete input.index;\n photoPhases.splice(index, 0, { ...input, id: uuid() });\n }\n // update product.photoPhases\n await updateProject({\n id: data.id,\n photoPhases,\n });\n };\n\n // check if user has access to the same group as the project\n const userHasAccess = user?.groups?.find(\n (group) => group.id === data?.groupId\n );\n\n if (!userHasAccess && !!user && !!data?.groupId) {\n return (\n \n

アクセスエラー

\n

この案件を閲覧する権限がありません

\n \n \n \n \n );\n }\n\n // 外部共有用のURLとパスワードを発行する\n const generateExternalInfo = async () => {\n if (!data.id) return;\n const input: GenerateExternalShareInfoInput = {\n projectId: data.id,\n };\n const result: GenerateExternalShareInfoOutput = (\n await API.graphql({\n query: mutations.generateExternalShareInfo,\n variables: { input },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n })\n ).data.generateExternalShareInfo;\n if (result.externalSharePassword && result.externalShareUrl) {\n await refetch({ id }, { progress: false });\n addAlert({\n message: \"外部共有用のURLとパスワードを発行しました\",\n severity: \"success\",\n });\n return;\n }\n addAlert({\n message: \"案件の外部共有でエラーが発生しました\",\n severity: \"error\",\n });\n };\n\n // 外部共有用の画像キーを更新する\n const updateExternalSharedImageKeys = async (\n shareImageKeys: string[],\n excludeImageKeys: string[]\n ) => {\n if (!data?.id) return;\n // 現状の共有された画像キー\n const alreadySharedImageKeys = data?.externalSharedImageKeys ?? [];\n // size prefixを削除しておく\n const addKeys = shareImageKeys.map((key) => removeSizePrefix(key));\n const delKeys = excludeImageKeys.map((key) => removeSizePrefix(key));\n // 追加→削除する\n const newSharedImages = _.difference(addKeys, alreadySharedImageKeys);\n const addedImageKeys = [...newSharedImages, ...alreadySharedImageKeys];\n const removedImageKeys = _.difference(addedImageKeys, delKeys);\n return await update({\n id: data?.id,\n externalSharedImageKeys: removedImageKeys,\n });\n };\n\n return (\n \n await refetch({\n groupId: currentGroup?.id,\n ...customVariables,\n }),\n generateExternalInfo,\n isShared,\n }}\n >\n {children}\n \n );\n};\n\nexport const useProject = () => {\n const projectContext = useContext(ProjectContext);\n\n if (projectContext === undefined) {\n throw new Error(\"useProject must be within ProjectsProvider\");\n }\n\n return projectContext;\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport {\n ReactNode,\n createContext,\n useContext,\n useState,\n useEffect as useReactEffect,\n} from \"react\";\nimport useEffect from \"use-deep-compare-effect\";\nimport { useRouter } from \"next/router\";\n\nimport type { Quote } from \"API\";\nimport useDatalist from \"hooks/datalist\";\nimport { GraphQLInput } from \"hooks/datalist\";\nimport { useProject } from \"contexts/project\";\nimport { useDialog } from \"contexts/dialog\";\n\ninterface QuotesContextValue {\n loading: boolean;\n quotes: Quote[];\n create: (input: GraphQLInput) => Promise;\n remove: (id: string) => Promise;\n refetch: () => Promise;\n copy: (quoteId: string, name: string, quoteNumber: number) => Promise;\n}\n\ninterface QuotesContextProps {\n children: ReactNode;\n variables: { [key: string]: any };\n by?: \"ProjectId\";\n}\n\nconst isQuote = (data: any): data is Quote => {\n return data && data.id && data.projectId && data.name;\n};\n\nconst QuotesContext = createContext({\n quotes: [],\n loading: false,\n create: () => Promise.resolve(),\n remove: () => Promise.resolve(),\n refetch: () => Promise.resolve(),\n copy: () => Promise.resolve(),\n});\n\nexport const QuotesProvider = ({\n variables,\n children,\n by,\n}: QuotesContextProps) => {\n const { data, loading, refetch, create, remove, nextToken, appendNext } =\n useDatalist({\n query: `quotesBy${by || \"ProjectId\"}`,\n variables: variables,\n sort: \"order\",\n });\n\n const router = useRouter();\n\n // FIXME: 全件取得するようにしている、ページネーションを実装する必要がある\n // appendNextの実行状態を管理しないとデータが重複する\n const [fetchingNext, setFetchingNext] = useState(false);\n\n // nextTokenがnullになるまでappendNextを実行する\n useReactEffect(() => {\n if (nextToken && !fetchingNext) {\n // 既にフェッチ中でなければappendNextを呼び出す\n setFetchingNext(true); // フェッチ中の状態をtrueに設定\n appendNext().finally(() => setFetchingNext(false)); // フェッチが終わったらフェッチ中の状態をfalseに設定\n }\n }, [nextToken]);\n\n const { open } = useDialog();\n\n const { project, update } = useProject();\n\n useEffect(() => {\n refetch(variables);\n }, [variables]);\n\n const createQuote = async (input: GraphQLInput) => {\n const res = await create(\"generateQuote\", {\n ...input,\n projectId: project?.id,\n order: data.length,\n });\n\n if (!isQuote(res)) return;\n // 関連するProjectのupdatedを更新\n if (project !== undefined) {\n update({ id: project.id });\n }\n const url = `/projects/${res.projectId}?page=quotes"eId=${res.id}`;\n router.push(url);\n };\n\n const removeQuote = async (id: string) => {\n open({\n title: \"見積を削除しますか?\",\n content: \"削除すると二度と戻せません\",\n okText: \"削除\",\n onOk: async () => await remove(\"deleteQuote\", { id }),\n });\n };\n\n const copyQuote = async (\n quoteId: string,\n name: string,\n quoteNumber: number\n ) => {\n const res = await create(\"copyQuote\", {\n quoteId: quoteId,\n name: name,\n projectId: project?.id,\n quoteNumber: quoteNumber,\n order: data.length,\n });\n await refetchQuotes();\n\n if (!isQuote(res)) return;\n // 関連するProjectのupdatedを更新\n if (project !== undefined) {\n update({ id: project.id });\n }\n const url = `/projects/${res.projectId}?page=quotes"eId=${res.id}`;\n router.push(url);\n };\n\n const refetchQuotes = async () => {\n refetch(variables);\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport const useQuotes = () => {\n const quotesContext = useContext(QuotesContext);\n\n if (quotesContext === undefined) {\n throw new Error(\"useQuotes must be within QuotesProvider\");\n }\n\n return quotesContext;\n};\n","import {\n ReactNode,\n createContext,\n useContext,\n useEffect,\n useState,\n} from \"react\";\n\nimport { useAuth } from \"./auth\";\n\nimport type { Species } from \"API\";\nimport useDatalist from \"hooks/datalist\";\nimport { useDialog } from \"contexts/dialog\";\nimport { useAlerts } from \"contexts/alerts\";\n\ninterface SpeciesContextValue {\n loading: boolean;\n species: Species[];\n create: (input: any) => void;\n update: (input: any) => void;\n remove: (ids: string[]) => void;\n}\n\ninterface SpeciesContextProps {\n children: ReactNode;\n variables?: { [key: string]: any };\n}\n\nconst SpeciesContext = createContext({\n species: [],\n loading: false,\n create: () => null,\n update: () => null,\n remove: () => null,\n});\n\nexport const SpeciesProvider = ({\n children,\n variables,\n}: SpeciesContextProps) => {\n const { currentGroup } = useAuth();\n const {\n data,\n loading,\n refetch,\n create,\n remove,\n update,\n nextToken,\n appendNext,\n } = useDatalist({\n query: \"speciesByGroupId\",\n variables: {\n groupId: currentGroup?.id,\n },\n });\n\n // FIXME: 全件取得するようにしている、ページネーションを実装する必要がある\n // appendNextの実行状態を管理しないとデータが重複する\n const [fetchingNext, setFetchingNext] = useState(false);\n\n // nextTokenがnullになるまでappendNextを実行する\n useEffect(() => {\n if (nextToken && !fetchingNext) {\n // 既にフェッチ中でなければappendNextを呼び出す\n setFetchingNext(true); // フェッチ中の状態をtrueに設定\n appendNext().finally(() => setFetchingNext(false)); // フェッチが終わったらフェッチ中の状態をfalseに設定\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [nextToken]);\n\n useEffect(() => {\n refetch({ groupId: currentGroup?.id });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [variables, currentGroup?.id]);\n\n const { open } = useDialog();\n const { addAlert } = useAlerts();\n\n const createSpecies = async (input: any) => {\n // inputにcreatedAt, updatedAt, materialsがあったら消す\n delete input.createdAt;\n delete input.updatedAt;\n delete input.materials;\n await create(\"createSpecies\", {\n ...input,\n groupId: currentGroup?.id,\n });\n addAlert({ message: \"材質を作成しました\", severity: \"success\" });\n };\n\n const updateSpecies = async (input: any) => {\n // inputにcreatedAt, updatedAt, materialsがあったら消す\n delete input.createdAt;\n delete input.updatedAt;\n delete input.materials;\n await update(\"updateSpecies\", {\n ...input,\n });\n addAlert({ message: \"材質を更新しました\", severity: \"success\" });\n };\n\n const removeSpecies = async (ids: string[]) => {\n open({\n title: \"材質を削除しますか?\",\n content: \"削除すると二度と戻せません\",\n okText: \"削除\",\n onOk: async () => {\n const promises = ids.map((id) =>\n remove(\"deleteSpecies\", {\n id,\n })\n );\n await Promise.all(promises);\n addAlert({ message: \"材質を削除しました\", severity: \"success\" });\n },\n });\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport const useSpecies = () => {\n const speciesContext = useContext(SpeciesContext);\n\n if (speciesContext === undefined) {\n throw new Error(\"useSpecies must be within SpeciesProvider\");\n }\n\n return speciesContext;\n};\n","import {\n ReactNode,\n createContext,\n useContext,\n useEffect,\n useMemo,\n} from \"react\";\n\nimport { useAuth } from \"./auth\";\n\nimport type { Tenant } from \"API\";\nimport useData, { GraphQLInput } from \"hooks/data\";\n\ninterface TenantContextValue {\n loading: boolean;\n tenant: Tenant | undefined;\n update: (input: GraphQLInput) => Promise;\n refetch: () => Promise;\n set: (input: GraphQLInput) => void;\n}\n\ninterface TenantContextProps {\n caseOrder?: string | null | undefined;\n children: ReactNode;\n}\n\nconst TenantContext = createContext({\n tenant: undefined,\n loading: false,\n update: () => Promise.resolve(),\n refetch: () => Promise.resolve(),\n set: () => Promise.resolve,\n});\n\nexport const TenantProvider = ({ children }: TenantContextProps) => {\n const { user } = useAuth();\n const { data, loading, refetch, update, set } = useData({\n object: \"tenant\",\n variables: {\n id: user?.tenantId,\n },\n });\n\n useEffect(() => {\n refetch({\n id: user?.tenantId,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [user?.tenantId]);\n\n const updateTenant = async (input: GraphQLInput) => {\n await update(input);\n };\n\n const values = useMemo(\n () => ({\n tenant: data,\n update: updateTenant,\n loading,\n refetch: () => refetch({ id: user?.tenantId }),\n set,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [data, update, loading, set]\n );\n\n return (\n {children}\n );\n};\n\nexport const useTenant = () => {\n const tenantContext = useContext(TenantContext);\n\n if (tenantContext === undefined) {\n throw new Error(\"useTenant must be within TenantProvider\");\n }\n\n return tenantContext;\n};\n","import {\n ReactNode,\n createContext,\n useContext,\n useEffect,\n useState,\n} from \"react\";\n\nimport { useProject } from \"./project\";\n\nimport type {\n CreateVanplanAndContainerInput,\n DeleteVanplanAndContainerInput,\n Vanplan,\n} from \"API\";\nimport useDatalist from \"hooks/datalist\";\n\ninterface VanplansContextValue {\n loading: boolean;\n vanplans: Vanplan[];\n create: (input: any) => void;\n createAll: (input: CreateVanplanAndContainerInput) => Promise;\n update: (input: any) => void;\n remove: (id: string) => void;\n refetch: () => void;\n}\n\ninterface VanplansContextProps {\n children: ReactNode;\n variables?: { [key: string]: any };\n}\n\nconst VanplansContext = createContext({\n vanplans: [],\n loading: false,\n create: () => null,\n createAll: () => Promise.resolve(\"\"),\n update: () => null,\n remove: () => null,\n refetch: () => null,\n});\n\nexport const VanplansProvider = ({\n children,\n variables,\n}: VanplansContextProps) => {\n const { project } = useProject();\n const {\n data,\n loading,\n refetch,\n create,\n remove,\n update,\n nextToken,\n appendNext,\n } = useDatalist({\n query: \"vanplansByProjectId\",\n variables: {\n groupId: project?.id,\n },\n });\n\n // FIXME: 全件取得するようにしている、ページネーションを実装する必要がある\n // appendNextの実行状態を管理しないとデータが重複する\n const [fetchingNext, setFetchingNext] = useState(false);\n\n // nextTokenがnullになるまでappendNextを実行する\n useEffect(() => {\n if (nextToken && !fetchingNext) {\n // 既にフェッチ中でなければappendNextを呼び出す\n setFetchingNext(true); // フェッチ中の状態をtrueに設定\n appendNext().finally(() => setFetchingNext(false)); // フェッチが終わったらフェッチ中の状態をfalseに設定\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [nextToken]);\n\n useEffect(() => {\n if (!project?.id) return;\n refetch({ projectId: project.id });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [variables, project?.id]);\n\n const createVanplan = (input: any) => {\n create(\"createVanplan\", {\n ...input,\n projectId: project?.id,\n });\n };\n\n const createAll = async (input: CreateVanplanAndContainerInput) => {\n const result = (await create(\"createVanplanAndContainer\", {\n ...input,\n })) as unknown as { vanplanId: string };\n refetch({ projectId: project?.id }, { progress: false });\n\n // idを返す\n return result?.vanplanId ?? \"\";\n };\n\n const updateVanplan = (input: any) => {\n update(\"updateVanplan\", {\n ...input,\n });\n };\n\n const removeVanplan = async (id: string) => {\n const deleteInput: DeleteVanplanAndContainerInput = {\n vanplanId: id,\n };\n await remove(\"deleteVanplanAndContainer\", { ...deleteInput });\n refetch({ projectId: project?.id }, { progress: false });\n };\n\n const refetchVanplans = () => {\n refetch({ projectId: project?.id }, { progress: false });\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport const useVanplans = () => {\n const vanplansContext = useContext(VanplansContext);\n\n if (vanplansContext === undefined) {\n throw new Error(\"useVanplans must be within VanplansProvider\");\n }\n\n return vanplansContext;\n};\n","export const getAllProduct = /* GraphQL */ `\n query GetAllProduct($id: ID!) {\n getProduct(id: $id) {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n packageTypeName\n quoteLineId\n name\n order\n productNumber\n quantity\n material\n tareWeight\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n panelM2\n woodM3\n note\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n }\n cases {\n order\n name\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n }\n phaseId\n isPacked\n netWeight\n grossWeight\n outerLength\n outerWidth\n outerHeight\n thumbnail\n note\n }\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n isShipped\n createdAt\n updatedAt\n }\n areas {\n items {\n id\n productId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n components {\n items {\n id\n areaId\n name\n slug\n order\n createdAt\n updatedAt\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n }\n nextToken\n }\n }\n nextToken\n }\n decorations {\n items {\n id\n productId\n type\n name\n slug\n order\n unit\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n`;\n\nexport const getProductsByProjectId = /* GraphQL */ `\n query GetProductsByProjectId($id: ID!) {\n productsByProjectId(projectId: $id) {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n packageTypeName\n quoteLineId\n name\n order\n productNumber\n quantity\n material\n tareWeight\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n }\n cases {\n order\n name\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n }\n phaseId\n isPacked\n netWeight\n grossWeight\n outerLength\n outerWidth\n outerHeight\n thumbnail\n }\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n isShipped\n createdAt\n updatedAt\n }\n areas {\n items {\n id\n productId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n components {\n items {\n id\n areaId\n name\n slug\n order\n createdAt\n updatedAt\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n }\n nextToken\n }\n }\n nextToken\n }\n decorations {\n items {\n id\n productId\n type\n name\n slug\n order\n unit\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\n\nexport const getProductIncludeComponentElements = /* GraphQL */ `\n query GetProductIncludeComponentElements($id: ID!) {\n getProduct(id: $id) {\n id\n pricingId\n unit\n name\n order\n quantity\n tareWeight\n material\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n areas {\n items {\n id\n productId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n components {\n items {\n id\n areaId\n name\n slug\n order\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n }\n }\n }\n }\n decorations {\n items {\n id\n productId\n type\n name\n slug\n order\n unit\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n }\n }\n }\n`;\n","/* tslint:disable */\n/* eslint-disable */\n// this is an auto generated file. This will be overwritten\n\nexport const materialsByVendorId = /* GraphQL */ `\n query MaterialsByVendorId(\n $vendorId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelVendorsMaterialsFilterInput\n $limit: Int\n $nextToken: String\n ) {\n materialsByVendorId(\n vendorId: $vendorId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n materials {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n }\n nextToken\n }\n purchasings {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n note\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n vendors {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n }\n nextToken\n }\n species {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n materialType {\n id\n groupId\n name\n description\n type\n isWood\n isPanel\n isLvl\n isNormalWood\n summaryReportTarget\n customFields {\n name\n type\n required\n }\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n purchasings {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n note\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const vendorsByMaterialId = /* GraphQL */ `\n query VendorsByMaterialId(\n $materialId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelVendorsMaterialsFilterInput\n $limit: Int\n $nextToken: String\n ) {\n vendorsByMaterialId(\n materialId: $materialId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n materials {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n }\n nextToken\n }\n purchasings {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n note\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n vendors {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n }\n nextToken\n }\n species {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n materialType {\n id\n groupId\n name\n description\n type\n isWood\n isPanel\n isLvl\n isNormalWood\n summaryReportTarget\n customFields {\n name\n type\n required\n }\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n purchasings {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n note\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const groupsByMainContainerMasterId = /* GraphQL */ `\n query GroupsByMainContainerMasterId(\n $containerMasterId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelGroupsContainerMastersFilterInput\n $limit: Int\n $nextToken: String\n ) {\n groupsByMainContainerMasterId(\n containerMasterId: $containerMasterId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n containerMasterId\n groupId\n order\n createdAt\n updatedAt\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n items {\n id\n groupId\n name\n date\n isWorking\n createdAt\n updatedAt\n }\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n mainContainerMasters {\n items {\n id\n containerMasterId\n groupId\n order\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n }\n containerMaster {\n id\n groupId\n presetId\n name\n order\n active\n insideLangth\n insideWidth\n insideHeight\n payload\n cost\n noEndWalls\n noSideWalls\n noRoof\n doorWidth\n doorHeight\n doorAtLongside\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const mainContainerMastersByGroupId = /* GraphQL */ `\n query MainContainerMastersByGroupId(\n $groupId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelGroupsContainerMastersFilterInput\n $limit: Int\n $nextToken: String\n ) {\n mainContainerMastersByGroupId(\n groupId: $groupId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n containerMasterId\n groupId\n order\n createdAt\n updatedAt\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n items {\n id\n groupId\n name\n date\n isWorking\n createdAt\n updatedAt\n }\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n mainContainerMasters {\n items {\n id\n containerMasterId\n groupId\n order\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n }\n containerMaster {\n id\n groupId\n presetId\n name\n order\n active\n insideLangth\n insideWidth\n insideHeight\n payload\n cost\n noEndWalls\n noSideWalls\n noRoof\n doorWidth\n doorHeight\n doorAtLongside\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const groupsByUserId = /* GraphQL */ `\n query GroupsByUserId(\n $userId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelUsersGroupsFilterInput\n $limit: Int\n $nextToken: String\n ) {\n groupsByUserId(\n userId: $userId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n tenants {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n customId\n active\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n items {\n id\n groupId\n name\n date\n isWorking\n createdAt\n updatedAt\n }\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n mainContainerMasters {\n items {\n id\n containerMasterId\n groupId\n order\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const usersByGroupId = /* GraphQL */ `\n query UsersByGroupId(\n $groupId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelUsersGroupsFilterInput\n $limit: Int\n $nextToken: String\n ) {\n usersByGroupId(\n groupId: $groupId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n tenants {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n customId\n active\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n items {\n id\n groupId\n name\n date\n isWorking\n createdAt\n updatedAt\n }\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n mainContainerMasters {\n items {\n id\n containerMasterId\n groupId\n order\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const getAccount = /* GraphQL */ `\n query GetAccount($id: ID!) {\n getAccount(id: $id) {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n }\n nextToken\n }\n }\n }\n`;\nexport const listAccounts = /* GraphQL */ `\n query ListAccounts(\n $filter: ModelAccountFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listAccounts(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const accountsByTenantId = /* GraphQL */ `\n query AccountsByTenantId(\n $tenantId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelAccountFilterInput\n $limit: Int\n $nextToken: String\n ) {\n accountsByTenantId(\n tenantId: $tenantId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const getClient = /* GraphQL */ `\n query GetClient($id: ID!) {\n getClient(id: $id) {\n id\n accountId\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n phone\n fax\n customeCode\n createdAt\n updatedAt\n }\n }\n`;\nexport const listClients = /* GraphQL */ `\n query ListClients(\n $filter: ModelClientFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listClients(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n accountId\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n phone\n fax\n customeCode\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const clientsByAccountId = /* GraphQL */ `\n query ClientsByAccountId(\n $accountId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelClientFilterInput\n $limit: Int\n $nextToken: String\n ) {\n clientsByAccountId(\n accountId: $accountId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n accountId\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n phone\n fax\n customeCode\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getContact = /* GraphQL */ `\n query GetContact($id: ID!) {\n getContact(id: $id) {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n }\n }\n`;\nexport const listContacts = /* GraphQL */ `\n query ListContacts(\n $filter: ModelContactFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listContacts(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const contactsByAccountId = /* GraphQL */ `\n query ContactsByAccountId(\n $accountId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelContactFilterInput\n $limit: Int\n $nextToken: String\n ) {\n contactsByAccountId(\n accountId: $accountId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const contactsByTenantId = /* GraphQL */ `\n query ContactsByTenantId(\n $tenantId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelContactFilterInput\n $limit: Int\n $nextToken: String\n ) {\n contactsByTenantId(\n tenantId: $tenantId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const getUnit = /* GraphQL */ `\n query GetUnit($id: ID!) {\n getUnit(id: $id) {\n id\n name\n tenantId\n createdAt\n updatedAt\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n items {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n nextToken\n }\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n sfObjects {\n items {\n id\n name\n tenantId\n label\n sfObjectName\n editable\n condition\n fields {\n name\n label\n apiName\n type\n required\n unique\n primary\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n tenants {\n nextToken\n }\n }\n nextToken\n }\n groups {\n items {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n mainContainerMasters {\n nextToken\n }\n users {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n }\n }\n`;\nexport const listUnits = /* GraphQL */ `\n query ListUnits(\n $filter: ModelUnitFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listUnits(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n name\n tenantId\n createdAt\n updatedAt\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n items {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n nextToken\n }\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n sfObjects {\n items {\n id\n name\n tenantId\n label\n sfObjectName\n editable\n condition\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n nextToken\n }\n groups {\n items {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const unitsByTenantId = /* GraphQL */ `\n query UnitsByTenantId(\n $tenantId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelUnitFilterInput\n $limit: Int\n $nextToken: String\n ) {\n unitsByTenantId(\n tenantId: $tenantId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n name\n tenantId\n createdAt\n updatedAt\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n items {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n nextToken\n }\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n sfObjects {\n items {\n id\n name\n tenantId\n label\n sfObjectName\n editable\n condition\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n nextToken\n }\n groups {\n items {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const getHoliday = /* GraphQL */ `\n query GetHoliday($id: ID!) {\n getHoliday(id: $id) {\n id\n groupId\n name\n date\n isWorking\n createdAt\n updatedAt\n }\n }\n`;\nexport const listHolidays = /* GraphQL */ `\n query ListHolidays(\n $filter: ModelHolidayFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listHolidays(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n groupId\n name\n date\n isWorking\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const holidaysByGroupId = /* GraphQL */ `\n query HolidaysByGroupId(\n $groupId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelHolidayFilterInput\n $limit: Int\n $nextToken: String\n ) {\n holidaysByGroupId(\n groupId: $groupId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n groupId\n name\n date\n isWorking\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getInvoice = /* GraphQL */ `\n query GetInvoice($id: ID!) {\n getInvoice(id: $id) {\n id\n externalId\n projectId\n accountId\n contactId\n userId\n groupId\n order\n name\n invoiceNo\n issueDate\n billed\n billingDate\n description\n subtotal\n nonTaxableTotal\n taxableSubtotal\n taxTotal\n taxableTotal\n total\n accountName\n accountSite\n billingType\n accountAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n contactName\n contactFirstName\n contactLastName\n contactDepartment\n contactTitle\n groupName\n logoUrl\n groupBank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n phone\n fax\n taxRate\n url\n syncLogId\n syncedAt\n syncStatus\n totalPurchasingCost\n grossProfit\n grossProfitMargin\n recordingDate\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n invoiceLines {\n items {\n id\n externalId\n invoiceId\n vendorId\n vendorName\n vendorAccountCode\n vendorSite\n pricingId\n pricingName\n quoteLineId\n name\n shippingDate\n salesType\n order\n m3\n grossWeight\n quantity\n rt\n amount\n minimumAmount\n actualAmount\n unit\n unitPrice\n taxRate\n taxTotal\n subtotal\n total\n taxType\n sfTaxType\n synced\n description\n unitPurchasingCost\n totalPurchasingCost\n createdAt\n updatedAt\n invoice {\n id\n externalId\n projectId\n accountId\n contactId\n userId\n groupId\n order\n name\n invoiceNo\n issueDate\n billed\n billingDate\n description\n subtotal\n nonTaxableTotal\n taxableSubtotal\n taxTotal\n taxableTotal\n total\n accountName\n accountSite\n billingType\n accountAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n contactName\n contactFirstName\n contactLastName\n contactDepartment\n contactTitle\n groupName\n logoUrl\n groupBank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n phone\n fax\n taxRate\n url\n syncLogId\n syncedAt\n syncStatus\n totalPurchasingCost\n grossProfit\n grossProfitMargin\n recordingDate\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n invoiceLines {\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n materials {\n nextToken\n }\n purchasings {\n nextToken\n }\n }\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n }\n schedules {\n items {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n }\n vanplans {\n nextToken\n }\n }\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n projects {\n items {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n }\n nextToken\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n tenants {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n customId\n active\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n items {\n id\n groupId\n name\n date\n isWorking\n createdAt\n updatedAt\n }\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n mainContainerMasters {\n items {\n id\n containerMasterId\n groupId\n order\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n items {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n nextToken\n }\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n sfObjects {\n items {\n id\n name\n tenantId\n label\n sfObjectName\n editable\n condition\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n nextToken\n }\n groups {\n items {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n tenants {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n customId\n active\n createdAt\n updatedAt\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n items {\n id\n groupId\n name\n date\n isWorking\n createdAt\n updatedAt\n }\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n items {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n mainContainerMasters {\n items {\n id\n containerMasterId\n groupId\n order\n createdAt\n updatedAt\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n containerMaster {\n id\n groupId\n presetId\n name\n order\n active\n insideLangth\n insideWidth\n insideHeight\n payload\n cost\n noEndWalls\n noSideWalls\n noRoof\n doorWidth\n doorHeight\n doorAtLongside\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n users {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n items {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n nextToken\n }\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n sfObjects {\n items {\n id\n name\n tenantId\n label\n sfObjectName\n editable\n condition\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n nextToken\n }\n groups {\n items {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n }\n }\n`;\nexport const listInvoices = /* GraphQL */ `\n query ListInvoices(\n $filter: ModelInvoiceFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listInvoices(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n externalId\n projectId\n accountId\n contactId\n userId\n groupId\n order\n name\n invoiceNo\n issueDate\n billed\n billingDate\n description\n subtotal\n nonTaxableTotal\n taxableSubtotal\n taxTotal\n taxableTotal\n total\n accountName\n accountSite\n billingType\n accountAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n contactName\n contactFirstName\n contactLastName\n contactDepartment\n contactTitle\n groupName\n logoUrl\n groupBank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n phone\n fax\n taxRate\n url\n syncLogId\n syncedAt\n syncStatus\n totalPurchasingCost\n grossProfit\n grossProfitMargin\n recordingDate\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n }\n invoiceLines {\n items {\n id\n externalId\n invoiceId\n vendorId\n vendorName\n vendorAccountCode\n vendorSite\n pricingId\n pricingName\n quoteLineId\n name\n shippingDate\n salesType\n order\n m3\n grossWeight\n quantity\n rt\n amount\n minimumAmount\n actualAmount\n unit\n unitPrice\n taxRate\n taxTotal\n subtotal\n total\n taxType\n sfTaxType\n synced\n description\n unitPurchasingCost\n totalPurchasingCost\n createdAt\n updatedAt\n invoice {\n id\n externalId\n projectId\n accountId\n contactId\n userId\n groupId\n order\n name\n invoiceNo\n issueDate\n billed\n billingDate\n description\n subtotal\n nonTaxableTotal\n taxableSubtotal\n taxTotal\n taxableTotal\n total\n accountName\n accountSite\n billingType\n contactName\n contactFirstName\n contactLastName\n contactDepartment\n contactTitle\n groupName\n logoUrl\n phone\n fax\n taxRate\n url\n syncLogId\n syncedAt\n syncStatus\n totalPurchasingCost\n grossProfit\n grossProfitMargin\n recordingDate\n createdAt\n updatedAt\n }\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n }\n schedules {\n items {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n stockNumImgs\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n }\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n projects {\n nextToken\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n tenants {\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n mainContainerMasters {\n nextToken\n }\n users {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n tenants {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n customId\n active\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n items {\n id\n groupId\n name\n date\n isWorking\n createdAt\n updatedAt\n }\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n mainContainerMasters {\n items {\n id\n containerMasterId\n groupId\n order\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const invoicesByProjectId = /* GraphQL */ `\n query InvoicesByProjectId(\n $projectId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelInvoiceFilterInput\n $limit: Int\n $nextToken: String\n ) {\n invoicesByProjectId(\n projectId: $projectId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n externalId\n projectId\n accountId\n contactId\n userId\n groupId\n order\n name\n invoiceNo\n issueDate\n billed\n billingDate\n description\n subtotal\n nonTaxableTotal\n taxableSubtotal\n taxTotal\n taxableTotal\n total\n accountName\n accountSite\n billingType\n accountAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n contactName\n contactFirstName\n contactLastName\n contactDepartment\n contactTitle\n groupName\n logoUrl\n groupBank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n phone\n fax\n taxRate\n url\n syncLogId\n syncedAt\n syncStatus\n totalPurchasingCost\n grossProfit\n grossProfitMargin\n recordingDate\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n }\n invoiceLines {\n items {\n id\n externalId\n invoiceId\n vendorId\n vendorName\n vendorAccountCode\n vendorSite\n pricingId\n pricingName\n quoteLineId\n name\n shippingDate\n salesType\n order\n m3\n grossWeight\n quantity\n rt\n amount\n minimumAmount\n actualAmount\n unit\n unitPrice\n taxRate\n taxTotal\n subtotal\n total\n taxType\n sfTaxType\n synced\n description\n unitPurchasingCost\n totalPurchasingCost\n createdAt\n updatedAt\n invoice {\n id\n externalId\n projectId\n accountId\n contactId\n userId\n groupId\n order\n name\n invoiceNo\n issueDate\n billed\n billingDate\n description\n subtotal\n nonTaxableTotal\n taxableSubtotal\n taxTotal\n taxableTotal\n total\n accountName\n accountSite\n billingType\n contactName\n contactFirstName\n contactLastName\n contactDepartment\n contactTitle\n groupName\n logoUrl\n phone\n fax\n taxRate\n url\n syncLogId\n syncedAt\n syncStatus\n totalPurchasingCost\n grossProfit\n grossProfitMargin\n recordingDate\n createdAt\n updatedAt\n }\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n }\n schedules {\n items {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n stockNumImgs\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n }\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n projects {\n nextToken\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n tenants {\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n mainContainerMasters {\n nextToken\n }\n users {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n tenants {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n customId\n active\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n items {\n id\n groupId\n name\n date\n isWorking\n createdAt\n updatedAt\n }\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n mainContainerMasters {\n items {\n id\n containerMasterId\n groupId\n order\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const invoicesByGroupAndIssueDate = /* GraphQL */ `\n query InvoicesByGroupAndIssueDate(\n $groupId: ID\n $issueDate: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelInvoiceFilterInput\n $limit: Int\n $nextToken: String\n ) {\n invoicesByGroupAndIssueDate(\n groupId: $groupId\n issueDate: $issueDate\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n externalId\n projectId\n accountId\n contactId\n userId\n groupId\n order\n name\n invoiceNo\n issueDate\n billed\n billingDate\n description\n subtotal\n nonTaxableTotal\n taxableSubtotal\n taxTotal\n taxableTotal\n total\n accountName\n accountSite\n billingType\n accountAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n contactName\n contactFirstName\n contactLastName\n contactDepartment\n contactTitle\n groupName\n logoUrl\n groupBank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n phone\n fax\n taxRate\n url\n syncLogId\n syncedAt\n syncStatus\n totalPurchasingCost\n grossProfit\n grossProfitMargin\n recordingDate\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n }\n invoiceLines {\n items {\n id\n externalId\n invoiceId\n vendorId\n vendorName\n vendorAccountCode\n vendorSite\n pricingId\n pricingName\n quoteLineId\n name\n shippingDate\n salesType\n order\n m3\n grossWeight\n quantity\n rt\n amount\n minimumAmount\n actualAmount\n unit\n unitPrice\n taxRate\n taxTotal\n subtotal\n total\n taxType\n sfTaxType\n synced\n description\n unitPurchasingCost\n totalPurchasingCost\n createdAt\n updatedAt\n invoice {\n id\n externalId\n projectId\n accountId\n contactId\n userId\n groupId\n order\n name\n invoiceNo\n issueDate\n billed\n billingDate\n description\n subtotal\n nonTaxableTotal\n taxableSubtotal\n taxTotal\n taxableTotal\n total\n accountName\n accountSite\n billingType\n contactName\n contactFirstName\n contactLastName\n contactDepartment\n contactTitle\n groupName\n logoUrl\n phone\n fax\n taxRate\n url\n syncLogId\n syncedAt\n syncStatus\n totalPurchasingCost\n grossProfit\n grossProfitMargin\n recordingDate\n createdAt\n updatedAt\n }\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n }\n schedules {\n items {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n stockNumImgs\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n }\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n projects {\n nextToken\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n tenants {\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n mainContainerMasters {\n nextToken\n }\n users {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n tenants {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n customId\n active\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n items {\n id\n groupId\n name\n date\n isWorking\n createdAt\n updatedAt\n }\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n mainContainerMasters {\n items {\n id\n containerMasterId\n groupId\n order\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const invoicesByGroupAndRecordingDate = /* GraphQL */ `\n query InvoicesByGroupAndRecordingDate(\n $groupId: ID\n $recordingDate: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelInvoiceFilterInput\n $limit: Int\n $nextToken: String\n ) {\n invoicesByGroupAndRecordingDate(\n groupId: $groupId\n recordingDate: $recordingDate\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n externalId\n projectId\n accountId\n contactId\n userId\n groupId\n order\n name\n invoiceNo\n issueDate\n billed\n billingDate\n description\n subtotal\n nonTaxableTotal\n taxableSubtotal\n taxTotal\n taxableTotal\n total\n accountName\n accountSite\n billingType\n accountAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n contactName\n contactFirstName\n contactLastName\n contactDepartment\n contactTitle\n groupName\n logoUrl\n groupBank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n phone\n fax\n taxRate\n url\n syncLogId\n syncedAt\n syncStatus\n totalPurchasingCost\n grossProfit\n grossProfitMargin\n recordingDate\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n }\n invoiceLines {\n items {\n id\n externalId\n invoiceId\n vendorId\n vendorName\n vendorAccountCode\n vendorSite\n pricingId\n pricingName\n quoteLineId\n name\n shippingDate\n salesType\n order\n m3\n grossWeight\n quantity\n rt\n amount\n minimumAmount\n actualAmount\n unit\n unitPrice\n taxRate\n taxTotal\n subtotal\n total\n taxType\n sfTaxType\n synced\n description\n unitPurchasingCost\n totalPurchasingCost\n createdAt\n updatedAt\n invoice {\n id\n externalId\n projectId\n accountId\n contactId\n userId\n groupId\n order\n name\n invoiceNo\n issueDate\n billed\n billingDate\n description\n subtotal\n nonTaxableTotal\n taxableSubtotal\n taxTotal\n taxableTotal\n total\n accountName\n accountSite\n billingType\n contactName\n contactFirstName\n contactLastName\n contactDepartment\n contactTitle\n groupName\n logoUrl\n phone\n fax\n taxRate\n url\n syncLogId\n syncedAt\n syncStatus\n totalPurchasingCost\n grossProfit\n grossProfitMargin\n recordingDate\n createdAt\n updatedAt\n }\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n }\n schedules {\n items {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n stockNumImgs\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n }\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n projects {\n nextToken\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n tenants {\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n mainContainerMasters {\n nextToken\n }\n users {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n tenants {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n customId\n active\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n items {\n id\n groupId\n name\n date\n isWorking\n createdAt\n updatedAt\n }\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n mainContainerMasters {\n items {\n id\n containerMasterId\n groupId\n order\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const invoicesByGroupAndBillingDate = /* GraphQL */ `\n query InvoicesByGroupAndBillingDate(\n $groupId: ID\n $billingDate: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelInvoiceFilterInput\n $limit: Int\n $nextToken: String\n ) {\n invoicesByGroupAndBillingDate(\n groupId: $groupId\n billingDate: $billingDate\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n externalId\n projectId\n accountId\n contactId\n userId\n groupId\n order\n name\n invoiceNo\n issueDate\n billed\n billingDate\n description\n subtotal\n nonTaxableTotal\n taxableSubtotal\n taxTotal\n taxableTotal\n total\n accountName\n accountSite\n billingType\n accountAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n contactName\n contactFirstName\n contactLastName\n contactDepartment\n contactTitle\n groupName\n logoUrl\n groupBank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n phone\n fax\n taxRate\n url\n syncLogId\n syncedAt\n syncStatus\n totalPurchasingCost\n grossProfit\n grossProfitMargin\n recordingDate\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n }\n invoiceLines {\n items {\n id\n externalId\n invoiceId\n vendorId\n vendorName\n vendorAccountCode\n vendorSite\n pricingId\n pricingName\n quoteLineId\n name\n shippingDate\n salesType\n order\n m3\n grossWeight\n quantity\n rt\n amount\n minimumAmount\n actualAmount\n unit\n unitPrice\n taxRate\n taxTotal\n subtotal\n total\n taxType\n sfTaxType\n synced\n description\n unitPurchasingCost\n totalPurchasingCost\n createdAt\n updatedAt\n invoice {\n id\n externalId\n projectId\n accountId\n contactId\n userId\n groupId\n order\n name\n invoiceNo\n issueDate\n billed\n billingDate\n description\n subtotal\n nonTaxableTotal\n taxableSubtotal\n taxTotal\n taxableTotal\n total\n accountName\n accountSite\n billingType\n contactName\n contactFirstName\n contactLastName\n contactDepartment\n contactTitle\n groupName\n logoUrl\n phone\n fax\n taxRate\n url\n syncLogId\n syncedAt\n syncStatus\n totalPurchasingCost\n grossProfit\n grossProfitMargin\n recordingDate\n createdAt\n updatedAt\n }\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n }\n schedules {\n items {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n stockNumImgs\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n }\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n projects {\n nextToken\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n tenants {\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n mainContainerMasters {\n nextToken\n }\n users {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n tenants {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n customId\n active\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n items {\n id\n groupId\n name\n date\n isWorking\n createdAt\n updatedAt\n }\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n mainContainerMasters {\n items {\n id\n containerMasterId\n groupId\n order\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const getInvoiceLine = /* GraphQL */ `\n query GetInvoiceLine($id: ID!) {\n getInvoiceLine(id: $id) {\n id\n externalId\n invoiceId\n vendorId\n vendorName\n vendorAccountCode\n vendorSite\n pricingId\n pricingName\n quoteLineId\n name\n shippingDate\n salesType\n order\n m3\n grossWeight\n quantity\n rt\n amount\n minimumAmount\n actualAmount\n unit\n unitPrice\n taxRate\n taxTotal\n subtotal\n total\n taxType\n sfTaxType\n synced\n description\n unitPurchasingCost\n totalPurchasingCost\n createdAt\n updatedAt\n invoice {\n id\n externalId\n projectId\n accountId\n contactId\n userId\n groupId\n order\n name\n invoiceNo\n issueDate\n billed\n billingDate\n description\n subtotal\n nonTaxableTotal\n taxableSubtotal\n taxTotal\n taxableTotal\n total\n accountName\n accountSite\n billingType\n accountAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n contactName\n contactFirstName\n contactLastName\n contactDepartment\n contactTitle\n groupName\n logoUrl\n groupBank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n phone\n fax\n taxRate\n url\n syncLogId\n syncedAt\n syncStatus\n totalPurchasingCost\n grossProfit\n grossProfitMargin\n recordingDate\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n }\n invoiceLines {\n items {\n id\n externalId\n invoiceId\n vendorId\n vendorName\n vendorAccountCode\n vendorSite\n pricingId\n pricingName\n quoteLineId\n name\n shippingDate\n salesType\n order\n m3\n grossWeight\n quantity\n rt\n amount\n minimumAmount\n actualAmount\n unit\n unitPrice\n taxRate\n taxTotal\n subtotal\n total\n taxType\n sfTaxType\n synced\n description\n unitPurchasingCost\n totalPurchasingCost\n createdAt\n updatedAt\n invoice {\n id\n externalId\n projectId\n accountId\n contactId\n userId\n groupId\n order\n name\n invoiceNo\n issueDate\n billed\n billingDate\n description\n subtotal\n nonTaxableTotal\n taxableSubtotal\n taxTotal\n taxableTotal\n total\n accountName\n accountSite\n billingType\n contactName\n contactFirstName\n contactLastName\n contactDepartment\n contactTitle\n groupName\n logoUrl\n phone\n fax\n taxRate\n url\n syncLogId\n syncedAt\n syncStatus\n totalPurchasingCost\n grossProfit\n grossProfitMargin\n recordingDate\n createdAt\n updatedAt\n }\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n }\n schedules {\n items {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n stockNumImgs\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n }\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n projects {\n nextToken\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n tenants {\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n mainContainerMasters {\n nextToken\n }\n users {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n tenants {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n customId\n active\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n items {\n id\n groupId\n name\n date\n isWorking\n createdAt\n updatedAt\n }\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n mainContainerMasters {\n items {\n id\n containerMasterId\n groupId\n order\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n }\n }\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n materials {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n purchasings {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n customFields {\n label\n value\n }\n note\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n }\n }\n`;\nexport const listInvoiceLines = /* GraphQL */ `\n query ListInvoiceLines(\n $filter: ModelInvoiceLineFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listInvoiceLines(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n externalId\n invoiceId\n vendorId\n vendorName\n vendorAccountCode\n vendorSite\n pricingId\n pricingName\n quoteLineId\n name\n shippingDate\n salesType\n order\n m3\n grossWeight\n quantity\n rt\n amount\n minimumAmount\n actualAmount\n unit\n unitPrice\n taxRate\n taxTotal\n subtotal\n total\n taxType\n sfTaxType\n synced\n description\n unitPurchasingCost\n totalPurchasingCost\n createdAt\n updatedAt\n invoice {\n id\n externalId\n projectId\n accountId\n contactId\n userId\n groupId\n order\n name\n invoiceNo\n issueDate\n billed\n billingDate\n description\n subtotal\n nonTaxableTotal\n taxableSubtotal\n taxTotal\n taxableTotal\n total\n accountName\n accountSite\n billingType\n accountAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n contactName\n contactFirstName\n contactLastName\n contactDepartment\n contactTitle\n groupName\n logoUrl\n groupBank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n phone\n fax\n taxRate\n url\n syncLogId\n syncedAt\n syncStatus\n totalPurchasingCost\n grossProfit\n grossProfitMargin\n recordingDate\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n }\n invoiceLines {\n items {\n id\n externalId\n invoiceId\n vendorId\n vendorName\n vendorAccountCode\n vendorSite\n pricingId\n pricingName\n quoteLineId\n name\n shippingDate\n salesType\n order\n m3\n grossWeight\n quantity\n rt\n amount\n minimumAmount\n actualAmount\n unit\n unitPrice\n taxRate\n taxTotal\n subtotal\n total\n taxType\n sfTaxType\n synced\n description\n unitPurchasingCost\n totalPurchasingCost\n createdAt\n updatedAt\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n schedules {\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n tenants {\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n mainContainerMasters {\n nextToken\n }\n users {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n }\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n materials {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n }\n nextToken\n }\n purchasings {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n note\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const invoiceLinesByInvoiceId = /* GraphQL */ `\n query InvoiceLinesByInvoiceId(\n $invoiceId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelInvoiceLineFilterInput\n $limit: Int\n $nextToken: String\n ) {\n invoiceLinesByInvoiceId(\n invoiceId: $invoiceId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n externalId\n invoiceId\n vendorId\n vendorName\n vendorAccountCode\n vendorSite\n pricingId\n pricingName\n quoteLineId\n name\n shippingDate\n salesType\n order\n m3\n grossWeight\n quantity\n rt\n amount\n minimumAmount\n actualAmount\n unit\n unitPrice\n taxRate\n taxTotal\n subtotal\n total\n taxType\n sfTaxType\n synced\n description\n unitPurchasingCost\n totalPurchasingCost\n createdAt\n updatedAt\n invoice {\n id\n externalId\n projectId\n accountId\n contactId\n userId\n groupId\n order\n name\n invoiceNo\n issueDate\n billed\n billingDate\n description\n subtotal\n nonTaxableTotal\n taxableSubtotal\n taxTotal\n taxableTotal\n total\n accountName\n accountSite\n billingType\n accountAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n contactName\n contactFirstName\n contactLastName\n contactDepartment\n contactTitle\n groupName\n logoUrl\n groupBank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n phone\n fax\n taxRate\n url\n syncLogId\n syncedAt\n syncStatus\n totalPurchasingCost\n grossProfit\n grossProfitMargin\n recordingDate\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n }\n invoiceLines {\n items {\n id\n externalId\n invoiceId\n vendorId\n vendorName\n vendorAccountCode\n vendorSite\n pricingId\n pricingName\n quoteLineId\n name\n shippingDate\n salesType\n order\n m3\n grossWeight\n quantity\n rt\n amount\n minimumAmount\n actualAmount\n unit\n unitPrice\n taxRate\n taxTotal\n subtotal\n total\n taxType\n sfTaxType\n synced\n description\n unitPurchasingCost\n totalPurchasingCost\n createdAt\n updatedAt\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n schedules {\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n tenants {\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n mainContainerMasters {\n nextToken\n }\n users {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n }\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n materials {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n }\n nextToken\n }\n purchasings {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n note\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const getMetaTable = /* GraphQL */ `\n query GetMetaTable($id: ID!) {\n getMetaTable(id: $id) {\n id\n name\n label\n fields {\n name\n label\n type\n required\n }\n createdAt\n updatedAt\n }\n }\n`;\nexport const listMetaTables = /* GraphQL */ `\n query ListMetaTables(\n $filter: ModelMetaTableFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listMetaTables(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n name\n label\n fields {\n name\n label\n type\n required\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const metaTableByName = /* GraphQL */ `\n query MetaTableByName(\n $name: String\n $sortDirection: ModelSortDirection\n $filter: ModelMetaTableFilterInput\n $limit: Int\n $nextToken: String\n ) {\n metaTableByName(\n name: $name\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n name\n label\n fields {\n name\n label\n type\n required\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getPackageType = /* GraphQL */ `\n query GetPackageType($id: ID!) {\n getPackageType(id: $id) {\n id\n groupId\n pricingId\n name\n description\n publish\n quantity\n material\n stamp\n packageMethod\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n panelM2\n woodM3\n tareWeight\n grossWeight\n note\n standard\n woodCost\n lvlCost\n panelCost\n normalWoodCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n active\n order\n pricingGroup\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n areas {\n items {\n id\n packageTypeId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n components {\n items {\n id\n baseAreaId\n name\n slug\n order\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n nextToken\n }\n decorations {\n items {\n id\n packageTypeId\n type\n name\n slug\n order\n unit\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n pricings {\n items {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n accountSpecific\n active\n description\n pricingGroup\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n }\n }\n`;\nexport const listPackageTypes = /* GraphQL */ `\n query ListPackageTypes(\n $filter: ModelPackageTypeFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listPackageTypes(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n groupId\n pricingId\n name\n description\n publish\n quantity\n material\n stamp\n packageMethod\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n panelM2\n woodM3\n tareWeight\n grossWeight\n note\n standard\n woodCost\n lvlCost\n panelCost\n normalWoodCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n active\n order\n pricingGroup\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n areas {\n items {\n id\n packageTypeId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n components {\n nextToken\n }\n }\n nextToken\n }\n decorations {\n items {\n id\n packageTypeId\n type\n name\n slug\n order\n unit\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n pricings {\n nextToken\n }\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const packageTypesByGroupId = /* GraphQL */ `\n query PackageTypesByGroupId(\n $groupId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelPackageTypeFilterInput\n $limit: Int\n $nextToken: String\n ) {\n packageTypesByGroupId(\n groupId: $groupId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n groupId\n pricingId\n name\n description\n publish\n quantity\n material\n stamp\n packageMethod\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n panelM2\n woodM3\n tareWeight\n grossWeight\n note\n standard\n woodCost\n lvlCost\n panelCost\n normalWoodCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n active\n order\n pricingGroup\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n areas {\n items {\n id\n packageTypeId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n components {\n nextToken\n }\n }\n nextToken\n }\n decorations {\n items {\n id\n packageTypeId\n type\n name\n slug\n order\n unit\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n pricings {\n nextToken\n }\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const packageTypesByPricingId = /* GraphQL */ `\n query PackageTypesByPricingId(\n $pricingId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelPackageTypeFilterInput\n $limit: Int\n $nextToken: String\n ) {\n packageTypesByPricingId(\n pricingId: $pricingId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n groupId\n pricingId\n name\n description\n publish\n quantity\n material\n stamp\n packageMethod\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n panelM2\n woodM3\n tareWeight\n grossWeight\n note\n standard\n woodCost\n lvlCost\n panelCost\n normalWoodCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n active\n order\n pricingGroup\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n areas {\n items {\n id\n packageTypeId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n components {\n nextToken\n }\n }\n nextToken\n }\n decorations {\n items {\n id\n packageTypeId\n type\n name\n slug\n order\n unit\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n pricings {\n nextToken\n }\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const getBaseArea = /* GraphQL */ `\n query GetBaseArea($id: ID!) {\n getBaseArea(id: $id) {\n id\n packageTypeId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n components {\n items {\n id\n baseAreaId\n name\n slug\n order\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n`;\nexport const listBaseAreas = /* GraphQL */ `\n query ListBaseAreas(\n $filter: ModelBaseAreaFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listBaseAreas(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n packageTypeId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n components {\n items {\n id\n baseAreaId\n name\n slug\n order\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const baseAreasByPackageTypeId = /* GraphQL */ `\n query BaseAreasByPackageTypeId(\n $packageTypeId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelBaseAreaFilterInput\n $limit: Int\n $nextToken: String\n ) {\n baseAreasByPackageTypeId(\n packageTypeId: $packageTypeId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n packageTypeId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n components {\n items {\n id\n baseAreaId\n name\n slug\n order\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const getBaseComponent = /* GraphQL */ `\n query GetBaseComponent($id: ID!) {\n getBaseComponent(id: $id) {\n id\n baseAreaId\n name\n slug\n order\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n }\n`;\nexport const listBaseComponents = /* GraphQL */ `\n query ListBaseComponents(\n $filter: ModelBaseComponentFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listBaseComponents(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n baseAreaId\n name\n slug\n order\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const baseComponentsByBaseAreaId = /* GraphQL */ `\n query BaseComponentsByBaseAreaId(\n $baseAreaId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelBaseComponentFilterInput\n $limit: Int\n $nextToken: String\n ) {\n baseComponentsByBaseAreaId(\n baseAreaId: $baseAreaId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n baseAreaId\n name\n slug\n order\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getBaseDecorationComponent = /* GraphQL */ `\n query GetBaseDecorationComponent($id: ID!) {\n getBaseDecorationComponent(id: $id) {\n id\n packageTypeId\n type\n name\n slug\n order\n unit\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n }\n`;\nexport const listBaseDecorationComponents = /* GraphQL */ `\n query ListBaseDecorationComponents(\n $filter: ModelBaseDecorationComponentFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listBaseDecorationComponents(\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n packageTypeId\n type\n name\n slug\n order\n unit\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const baseDecorationComponentsByPackageTypeId = /* GraphQL */ `\n query BaseDecorationComponentsByPackageTypeId(\n $packageTypeId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelBaseDecorationComponentFilterInput\n $limit: Int\n $nextToken: String\n ) {\n baseDecorationComponentsByPackageTypeId(\n packageTypeId: $packageTypeId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n packageTypeId\n type\n name\n slug\n order\n unit\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getPriceType = /* GraphQL */ `\n query GetPriceType($id: ID!) {\n getPriceType(id: $id) {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n pricings {\n items {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n pricings {\n nextToken\n }\n }\n }\n nextToken\n }\n }\n }\n`;\nexport const listPriceTypes = /* GraphQL */ `\n query ListPriceTypes(\n $filter: ModelPriceTypeFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listPriceTypes(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n pricings {\n items {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const priceTypesByGroupId = /* GraphQL */ `\n query PriceTypesByGroupId(\n $groupId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelPriceTypeFilterInput\n $limit: Int\n $nextToken: String\n ) {\n priceTypesByGroupId(\n groupId: $groupId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n pricings {\n items {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const getPricing = /* GraphQL */ `\n query GetPricing($id: ID!) {\n getPricing(id: $id) {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n pricings {\n items {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n }\n }\n`;\nexport const listPricings = /* GraphQL */ `\n query ListPricings(\n $filter: ModelPricingFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listPricings(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n pricings {\n items {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n accountSpecific\n active\n description\n pricingGroup\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const pricingsByTypeId = /* GraphQL */ `\n query PricingsByTypeId(\n $priceTypeId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelPricingFilterInput\n $limit: Int\n $nextToken: String\n ) {\n pricingsByTypeId(\n priceTypeId: $priceTypeId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n pricings {\n items {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n accountSpecific\n active\n description\n pricingGroup\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const pricingsByGroupId = /* GraphQL */ `\n query PricingsByGroupId(\n $groupId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelPricingFilterInput\n $limit: Int\n $nextToken: String\n ) {\n pricingsByGroupId(\n groupId: $groupId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n pricings {\n items {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n accountSpecific\n active\n description\n pricingGroup\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const getProduct = /* GraphQL */ `\n query GetProduct($id: ID!) {\n getProduct(id: $id) {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n cases {\n order\n name\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n phaseId\n isPacked\n netWeight\n grossWeight\n outerLength\n outerWidth\n outerHeight\n m3\n thumbnail\n managementNumber\n isBilled\n invoiceLineId\n version\n note\n summaryOrder\n vanplanCreated\n containerName\n containerId\n vanplanId\n loadingOrder\n }\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n packageType {\n id\n groupId\n pricingId\n name\n description\n publish\n quantity\n material\n stamp\n packageMethod\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n panelM2\n woodM3\n tareWeight\n grossWeight\n note\n standard\n woodCost\n lvlCost\n panelCost\n normalWoodCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n active\n order\n pricingGroup\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n areas {\n items {\n id\n packageTypeId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n components {\n nextToken\n }\n }\n nextToken\n }\n decorations {\n items {\n id\n packageTypeId\n type\n name\n slug\n order\n unit\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n pricings {\n nextToken\n }\n }\n }\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n pricings {\n items {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n accountSpecific\n active\n description\n pricingGroup\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n areas {\n items {\n id\n productId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n components {\n items {\n id\n areaId\n name\n slug\n order\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n nextToken\n }\n decorations {\n items {\n id\n productId\n type\n name\n slug\n order\n unit\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n cases {\n order\n name\n phaseId\n isPacked\n netWeight\n grossWeight\n outerLength\n outerWidth\n outerHeight\n m3\n thumbnail\n managementNumber\n isBilled\n invoiceLineId\n version\n note\n summaryOrder\n vanplanCreated\n containerName\n containerId\n vanplanId\n loadingOrder\n }\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n packageType {\n id\n groupId\n pricingId\n name\n description\n publish\n quantity\n material\n stamp\n packageMethod\n panelM2\n woodM3\n tareWeight\n grossWeight\n note\n standard\n woodCost\n lvlCost\n panelCost\n normalWoodCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n active\n order\n pricingGroup\n createdAt\n updatedAt\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n accountSpecific\n active\n description\n pricingGroup\n createdAt\n updatedAt\n }\n areas {\n nextToken\n }\n decorations {\n nextToken\n }\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n stockNumImgs\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n }\n schedules {\n items {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n stockNumImgs\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n }\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n projects {\n nextToken\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n tenants {\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n mainContainerMasters {\n nextToken\n }\n users {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n }\n vanplans {\n items {\n id\n projectId\n scheduleId\n name\n loadPlanUrl\n loadPlanId\n createdAt\n updatedAt\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n stockNumImgs\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n }\n containers {\n nextToken\n }\n }\n nextToken\n }\n }\n }\n }\n`;\nexport const listProducts = /* GraphQL */ `\n query ListProducts(\n $filter: ModelProductFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listProducts(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n cases {\n order\n name\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n phaseId\n isPacked\n netWeight\n grossWeight\n outerLength\n outerWidth\n outerHeight\n m3\n thumbnail\n managementNumber\n isBilled\n invoiceLineId\n version\n note\n summaryOrder\n vanplanCreated\n containerName\n containerId\n vanplanId\n loadingOrder\n }\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n packageType {\n id\n groupId\n pricingId\n name\n description\n publish\n quantity\n material\n stamp\n packageMethod\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n panelM2\n woodM3\n tareWeight\n grossWeight\n note\n standard\n woodCost\n lvlCost\n panelCost\n normalWoodCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n active\n order\n pricingGroup\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n areas {\n items {\n id\n packageTypeId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n }\n nextToken\n }\n decorations {\n items {\n id\n packageTypeId\n type\n name\n slug\n order\n unit\n createdAt\n updatedAt\n }\n nextToken\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n }\n }\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n pricings {\n nextToken\n }\n }\n }\n areas {\n items {\n id\n productId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n components {\n nextToken\n }\n }\n nextToken\n }\n decorations {\n items {\n id\n productId\n type\n name\n slug\n order\n unit\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n createdAt\n updatedAt\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n schedules {\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n vanplans {\n items {\n id\n projectId\n scheduleId\n name\n loadPlanUrl\n loadPlanId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const productsByScheduleId = /* GraphQL */ `\n query ProductsByScheduleId(\n $scheduleId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelProductFilterInput\n $limit: Int\n $nextToken: String\n ) {\n productsByScheduleId(\n scheduleId: $scheduleId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n cases {\n order\n name\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n phaseId\n isPacked\n netWeight\n grossWeight\n outerLength\n outerWidth\n outerHeight\n m3\n thumbnail\n managementNumber\n isBilled\n invoiceLineId\n version\n note\n summaryOrder\n vanplanCreated\n containerName\n containerId\n vanplanId\n loadingOrder\n }\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n packageType {\n id\n groupId\n pricingId\n name\n description\n publish\n quantity\n material\n stamp\n packageMethod\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n panelM2\n woodM3\n tareWeight\n grossWeight\n note\n standard\n woodCost\n lvlCost\n panelCost\n normalWoodCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n active\n order\n pricingGroup\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n areas {\n items {\n id\n packageTypeId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n }\n nextToken\n }\n decorations {\n items {\n id\n packageTypeId\n type\n name\n slug\n order\n unit\n createdAt\n updatedAt\n }\n nextToken\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n }\n }\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n pricings {\n nextToken\n }\n }\n }\n areas {\n items {\n id\n productId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n components {\n nextToken\n }\n }\n nextToken\n }\n decorations {\n items {\n id\n productId\n type\n name\n slug\n order\n unit\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n createdAt\n updatedAt\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n schedules {\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n vanplans {\n items {\n id\n projectId\n scheduleId\n name\n loadPlanUrl\n loadPlanId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const productsByPackageTypeId = /* GraphQL */ `\n query ProductsByPackageTypeId(\n $packageTypeId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelProductFilterInput\n $limit: Int\n $nextToken: String\n ) {\n productsByPackageTypeId(\n packageTypeId: $packageTypeId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n cases {\n order\n name\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n phaseId\n isPacked\n netWeight\n grossWeight\n outerLength\n outerWidth\n outerHeight\n m3\n thumbnail\n managementNumber\n isBilled\n invoiceLineId\n version\n note\n summaryOrder\n vanplanCreated\n containerName\n containerId\n vanplanId\n loadingOrder\n }\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n packageType {\n id\n groupId\n pricingId\n name\n description\n publish\n quantity\n material\n stamp\n packageMethod\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n panelM2\n woodM3\n tareWeight\n grossWeight\n note\n standard\n woodCost\n lvlCost\n panelCost\n normalWoodCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n active\n order\n pricingGroup\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n areas {\n items {\n id\n packageTypeId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n }\n nextToken\n }\n decorations {\n items {\n id\n packageTypeId\n type\n name\n slug\n order\n unit\n createdAt\n updatedAt\n }\n nextToken\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n }\n }\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n pricings {\n nextToken\n }\n }\n }\n areas {\n items {\n id\n productId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n components {\n nextToken\n }\n }\n nextToken\n }\n decorations {\n items {\n id\n productId\n type\n name\n slug\n order\n unit\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n createdAt\n updatedAt\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n schedules {\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n vanplans {\n items {\n id\n projectId\n scheduleId\n name\n loadPlanUrl\n loadPlanId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const productsByProjectId = /* GraphQL */ `\n query ProductsByProjectId(\n $projectId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelProductFilterInput\n $limit: Int\n $nextToken: String\n ) {\n productsByProjectId(\n projectId: $projectId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n cases {\n order\n name\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n phaseId\n isPacked\n netWeight\n grossWeight\n outerLength\n outerWidth\n outerHeight\n m3\n thumbnail\n managementNumber\n isBilled\n invoiceLineId\n version\n note\n summaryOrder\n vanplanCreated\n containerName\n containerId\n vanplanId\n loadingOrder\n }\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n packageType {\n id\n groupId\n pricingId\n name\n description\n publish\n quantity\n material\n stamp\n packageMethod\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n panelM2\n woodM3\n tareWeight\n grossWeight\n note\n standard\n woodCost\n lvlCost\n panelCost\n normalWoodCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n active\n order\n pricingGroup\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n areas {\n items {\n id\n packageTypeId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n }\n nextToken\n }\n decorations {\n items {\n id\n packageTypeId\n type\n name\n slug\n order\n unit\n createdAt\n updatedAt\n }\n nextToken\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n }\n }\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n pricings {\n nextToken\n }\n }\n }\n areas {\n items {\n id\n productId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n components {\n nextToken\n }\n }\n nextToken\n }\n decorations {\n items {\n id\n productId\n type\n name\n slug\n order\n unit\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n createdAt\n updatedAt\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n schedules {\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n vanplans {\n items {\n id\n projectId\n scheduleId\n name\n loadPlanUrl\n loadPlanId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const getArea = /* GraphQL */ `\n query GetArea($id: ID!) {\n getArea(id: $id) {\n id\n productId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n components {\n items {\n id\n areaId\n name\n slug\n order\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n`;\nexport const listAreas = /* GraphQL */ `\n query ListAreas(\n $filter: ModelAreaFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listAreas(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n productId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n components {\n items {\n id\n areaId\n name\n slug\n order\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const areasByProductId = /* GraphQL */ `\n query AreasByProductId(\n $productId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelAreaFilterInput\n $limit: Int\n $nextToken: String\n ) {\n areasByProductId(\n productId: $productId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n productId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n components {\n items {\n id\n areaId\n name\n slug\n order\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const areasByQuoteProductId = /* GraphQL */ `\n query AreasByQuoteProductId(\n $productId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelAreaFilterInput\n $limit: Int\n $nextToken: String\n ) {\n areasByQuoteProductId(\n productId: $productId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n productId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n components {\n items {\n id\n areaId\n name\n slug\n order\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const getComponent = /* GraphQL */ `\n query GetComponent($id: ID!) {\n getComponent(id: $id) {\n id\n areaId\n name\n slug\n order\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n }\n`;\nexport const listComponents = /* GraphQL */ `\n query ListComponents(\n $filter: ModelComponentFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listComponents(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n areaId\n name\n slug\n order\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const componentsByAreaId = /* GraphQL */ `\n query ComponentsByAreaId(\n $areaId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelComponentFilterInput\n $limit: Int\n $nextToken: String\n ) {\n componentsByAreaId(\n areaId: $areaId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n areaId\n name\n slug\n order\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getDecorationComponent = /* GraphQL */ `\n query GetDecorationComponent($id: ID!) {\n getDecorationComponent(id: $id) {\n id\n productId\n type\n name\n slug\n order\n unit\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n }\n`;\nexport const listDecorationComponents = /* GraphQL */ `\n query ListDecorationComponents(\n $filter: ModelDecorationComponentFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listDecorationComponents(\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n productId\n type\n name\n slug\n order\n unit\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const decorationComponentsByProductId = /* GraphQL */ `\n query DecorationComponentsByProductId(\n $productId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelDecorationComponentFilterInput\n $limit: Int\n $nextToken: String\n ) {\n decorationComponentsByProductId(\n productId: $productId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n productId\n type\n name\n slug\n order\n unit\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const decorationComponentsByQuoteProductId = /* GraphQL */ `\n query DecorationComponentsByQuoteProductId(\n $productId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelDecorationComponentFilterInput\n $limit: Int\n $nextToken: String\n ) {\n decorationComponentsByQuoteProductId(\n productId: $productId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n productId\n type\n name\n slug\n order\n unit\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getSummary = /* GraphQL */ `\n query GetSummary($id: ID!) {\n getSummary(id: $id) {\n id\n projectId\n pricingId\n pricingName\n productId\n quoteLineId\n invoiceLineId\n isBilled\n name\n order\n quantity\n tareWeight\n productLength\n productWidth\n productHeight\n outerLength\n outerWidth\n outerHeight\n unitM3\n unitNW\n unitGrossWeight\n NW\n grossWeight\n m3\n unitPrice\n unit\n autoCalculate\n taxType\n overwritten\n createdAt\n updatedAt\n }\n }\n`;\nexport const listSummaries = /* GraphQL */ `\n query ListSummaries(\n $filter: ModelSummaryFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listSummaries(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n projectId\n pricingId\n pricingName\n productId\n quoteLineId\n invoiceLineId\n isBilled\n name\n order\n quantity\n tareWeight\n productLength\n productWidth\n productHeight\n outerLength\n outerWidth\n outerHeight\n unitM3\n unitNW\n unitGrossWeight\n NW\n grossWeight\n m3\n unitPrice\n unit\n autoCalculate\n taxType\n overwritten\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const summariesByProjectId = /* GraphQL */ `\n query SummariesByProjectId(\n $projectId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelSummaryFilterInput\n $limit: Int\n $nextToken: String\n ) {\n summariesByProjectId(\n projectId: $projectId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n projectId\n pricingId\n pricingName\n productId\n quoteLineId\n invoiceLineId\n isBilled\n name\n order\n quantity\n tareWeight\n productLength\n productWidth\n productHeight\n outerLength\n outerWidth\n outerHeight\n unitM3\n unitNW\n unitGrossWeight\n NW\n grossWeight\n m3\n unitPrice\n unit\n autoCalculate\n taxType\n overwritten\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getQuoteProduct = /* GraphQL */ `\n query GetQuoteProduct($id: ID!) {\n getQuoteProduct(id: $id) {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n cases {\n order\n name\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n phaseId\n isPacked\n netWeight\n grossWeight\n outerLength\n outerWidth\n outerHeight\n m3\n thumbnail\n managementNumber\n isBilled\n invoiceLineId\n version\n note\n summaryOrder\n vanplanCreated\n containerName\n containerId\n vanplanId\n loadingOrder\n }\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n packageType {\n id\n groupId\n pricingId\n name\n description\n publish\n quantity\n material\n stamp\n packageMethod\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n panelM2\n woodM3\n tareWeight\n grossWeight\n note\n standard\n woodCost\n lvlCost\n panelCost\n normalWoodCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n active\n order\n pricingGroup\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n areas {\n items {\n id\n packageTypeId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n components {\n nextToken\n }\n }\n nextToken\n }\n decorations {\n items {\n id\n packageTypeId\n type\n name\n slug\n order\n unit\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n pricings {\n nextToken\n }\n }\n }\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n pricings {\n items {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n accountSpecific\n active\n description\n pricingGroup\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n areas {\n items {\n id\n productId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n components {\n items {\n id\n areaId\n name\n slug\n order\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n nextToken\n }\n decorations {\n items {\n id\n productId\n type\n name\n slug\n order\n unit\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n cases {\n order\n name\n phaseId\n isPacked\n netWeight\n grossWeight\n outerLength\n outerWidth\n outerHeight\n m3\n thumbnail\n managementNumber\n isBilled\n invoiceLineId\n version\n note\n summaryOrder\n vanplanCreated\n containerName\n containerId\n vanplanId\n loadingOrder\n }\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n packageType {\n id\n groupId\n pricingId\n name\n description\n publish\n quantity\n material\n stamp\n packageMethod\n panelM2\n woodM3\n tareWeight\n grossWeight\n note\n standard\n woodCost\n lvlCost\n panelCost\n normalWoodCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n active\n order\n pricingGroup\n createdAt\n updatedAt\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n accountSpecific\n active\n description\n pricingGroup\n createdAt\n updatedAt\n }\n areas {\n nextToken\n }\n decorations {\n nextToken\n }\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n stockNumImgs\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n }\n schedules {\n items {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n stockNumImgs\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n }\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n projects {\n nextToken\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n tenants {\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n mainContainerMasters {\n nextToken\n }\n users {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n }\n vanplans {\n items {\n id\n projectId\n scheduleId\n name\n loadPlanUrl\n loadPlanId\n createdAt\n updatedAt\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n stockNumImgs\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n }\n containers {\n nextToken\n }\n }\n nextToken\n }\n }\n }\n }\n`;\nexport const listQuoteProducts = /* GraphQL */ `\n query ListQuoteProducts(\n $filter: ModelQuoteProductFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listQuoteProducts(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n cases {\n order\n name\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n phaseId\n isPacked\n netWeight\n grossWeight\n outerLength\n outerWidth\n outerHeight\n m3\n thumbnail\n managementNumber\n isBilled\n invoiceLineId\n version\n note\n summaryOrder\n vanplanCreated\n containerName\n containerId\n vanplanId\n loadingOrder\n }\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n packageType {\n id\n groupId\n pricingId\n name\n description\n publish\n quantity\n material\n stamp\n packageMethod\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n panelM2\n woodM3\n tareWeight\n grossWeight\n note\n standard\n woodCost\n lvlCost\n panelCost\n normalWoodCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n active\n order\n pricingGroup\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n areas {\n items {\n id\n packageTypeId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n }\n nextToken\n }\n decorations {\n items {\n id\n packageTypeId\n type\n name\n slug\n order\n unit\n createdAt\n updatedAt\n }\n nextToken\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n }\n }\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n pricings {\n nextToken\n }\n }\n }\n areas {\n items {\n id\n productId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n components {\n nextToken\n }\n }\n nextToken\n }\n decorations {\n items {\n id\n productId\n type\n name\n slug\n order\n unit\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n createdAt\n updatedAt\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n schedules {\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n vanplans {\n items {\n id\n projectId\n scheduleId\n name\n loadPlanUrl\n loadPlanId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const quoteProductsByProjectId = /* GraphQL */ `\n query QuoteProductsByProjectId(\n $projectId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelQuoteProductFilterInput\n $limit: Int\n $nextToken: String\n ) {\n quoteProductsByProjectId(\n projectId: $projectId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n cases {\n order\n name\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n phaseId\n isPacked\n netWeight\n grossWeight\n outerLength\n outerWidth\n outerHeight\n m3\n thumbnail\n managementNumber\n isBilled\n invoiceLineId\n version\n note\n summaryOrder\n vanplanCreated\n containerName\n containerId\n vanplanId\n loadingOrder\n }\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n packageType {\n id\n groupId\n pricingId\n name\n description\n publish\n quantity\n material\n stamp\n packageMethod\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n panelM2\n woodM3\n tareWeight\n grossWeight\n note\n standard\n woodCost\n lvlCost\n panelCost\n normalWoodCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n active\n order\n pricingGroup\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n areas {\n items {\n id\n packageTypeId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n }\n nextToken\n }\n decorations {\n items {\n id\n packageTypeId\n type\n name\n slug\n order\n unit\n createdAt\n updatedAt\n }\n nextToken\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n }\n }\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n pricings {\n nextToken\n }\n }\n }\n areas {\n items {\n id\n productId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n components {\n nextToken\n }\n }\n nextToken\n }\n decorations {\n items {\n id\n productId\n type\n name\n slug\n order\n unit\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n createdAt\n updatedAt\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n schedules {\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n vanplans {\n items {\n id\n projectId\n scheduleId\n name\n loadPlanUrl\n loadPlanId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const quoteProductsByPackageTypeId = /* GraphQL */ `\n query QuoteProductsByPackageTypeId(\n $packageTypeId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelQuoteProductFilterInput\n $limit: Int\n $nextToken: String\n ) {\n quoteProductsByPackageTypeId(\n packageTypeId: $packageTypeId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n cases {\n order\n name\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n phaseId\n isPacked\n netWeight\n grossWeight\n outerLength\n outerWidth\n outerHeight\n m3\n thumbnail\n managementNumber\n isBilled\n invoiceLineId\n version\n note\n summaryOrder\n vanplanCreated\n containerName\n containerId\n vanplanId\n loadingOrder\n }\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n packageType {\n id\n groupId\n pricingId\n name\n description\n publish\n quantity\n material\n stamp\n packageMethod\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n panelM2\n woodM3\n tareWeight\n grossWeight\n note\n standard\n woodCost\n lvlCost\n panelCost\n normalWoodCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n active\n order\n pricingGroup\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n areas {\n items {\n id\n packageTypeId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n }\n nextToken\n }\n decorations {\n items {\n id\n packageTypeId\n type\n name\n slug\n order\n unit\n createdAt\n updatedAt\n }\n nextToken\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n }\n }\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n pricings {\n nextToken\n }\n }\n }\n areas {\n items {\n id\n productId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n components {\n nextToken\n }\n }\n nextToken\n }\n decorations {\n items {\n id\n productId\n type\n name\n slug\n order\n unit\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n createdAt\n updatedAt\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n schedules {\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n vanplans {\n items {\n id\n projectId\n scheduleId\n name\n loadPlanUrl\n loadPlanId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const getProject = /* GraphQL */ `\n query GetProject($id: ID!) {\n getProject(id: $id) {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n schedules {\n items {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n createdAt\n updatedAt\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n schedules {\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n vanplans {\n items {\n id\n projectId\n scheduleId\n name\n loadPlanUrl\n loadPlanId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n projects {\n items {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n schedules {\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n items {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n nextToken\n }\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n sfObjects {\n items {\n id\n name\n tenantId\n label\n sfObjectName\n editable\n condition\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n nextToken\n }\n groups {\n items {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n tenants {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n customId\n active\n createdAt\n updatedAt\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n items {\n id\n groupId\n name\n date\n isWorking\n createdAt\n updatedAt\n }\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n items {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n mainContainerMasters {\n items {\n id\n containerMasterId\n groupId\n order\n createdAt\n updatedAt\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n containerMaster {\n id\n groupId\n presetId\n name\n order\n active\n insideLangth\n insideWidth\n insideHeight\n payload\n cost\n noEndWalls\n noSideWalls\n noRoof\n doorWidth\n doorHeight\n doorAtLongside\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n users {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n items {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n nextToken\n }\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n sfObjects {\n items {\n id\n name\n tenantId\n label\n sfObjectName\n editable\n condition\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n nextToken\n }\n groups {\n items {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n }\n }\n`;\nexport const listProjects = /* GraphQL */ `\n query ListProjects(\n $filter: ModelProjectFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listProjects(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n }\n schedules {\n items {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n }\n vanplans {\n nextToken\n }\n }\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n projects {\n items {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n }\n nextToken\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n tenants {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n customId\n active\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n items {\n id\n groupId\n name\n date\n isWorking\n createdAt\n updatedAt\n }\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n mainContainerMasters {\n items {\n id\n containerMasterId\n groupId\n order\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const projectsByUserId = /* GraphQL */ `\n query ProjectsByUserId(\n $userId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelProjectFilterInput\n $limit: Int\n $nextToken: String\n ) {\n projectsByUserId(\n userId: $userId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n }\n schedules {\n items {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n }\n vanplans {\n nextToken\n }\n }\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n projects {\n items {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n }\n nextToken\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n tenants {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n customId\n active\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n items {\n id\n groupId\n name\n date\n isWorking\n createdAt\n updatedAt\n }\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n mainContainerMasters {\n items {\n id\n containerMasterId\n groupId\n order\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const projectsByAccountId = /* GraphQL */ `\n query ProjectsByAccountId(\n $accountId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelProjectFilterInput\n $limit: Int\n $nextToken: String\n ) {\n projectsByAccountId(\n accountId: $accountId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n }\n schedules {\n items {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n }\n vanplans {\n nextToken\n }\n }\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n projects {\n items {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n }\n nextToken\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n tenants {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n customId\n active\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n items {\n id\n groupId\n name\n date\n isWorking\n createdAt\n updatedAt\n }\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n mainContainerMasters {\n items {\n id\n containerMasterId\n groupId\n order\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const projectsByContactId = /* GraphQL */ `\n query ProjectsByContactId(\n $contactId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelProjectFilterInput\n $limit: Int\n $nextToken: String\n ) {\n projectsByContactId(\n contactId: $contactId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n }\n schedules {\n items {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n }\n vanplans {\n nextToken\n }\n }\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n projects {\n items {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n }\n nextToken\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n tenants {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n customId\n active\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n items {\n id\n groupId\n name\n date\n isWorking\n createdAt\n updatedAt\n }\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n mainContainerMasters {\n items {\n id\n containerMasterId\n groupId\n order\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const projectsByGroupId = /* GraphQL */ `\n query ProjectsByGroupId(\n $groupId: ID\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelProjectFilterInput\n $limit: Int\n $nextToken: String\n ) {\n projectsByGroupId(\n groupId: $groupId\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n }\n schedules {\n items {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n }\n vanplans {\n nextToken\n }\n }\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n projects {\n items {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n }\n nextToken\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n tenants {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n customId\n active\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n items {\n id\n groupId\n name\n date\n isWorking\n createdAt\n updatedAt\n }\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n mainContainerMasters {\n items {\n id\n containerMasterId\n groupId\n order\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const projectsByCategoryId = /* GraphQL */ `\n query ProjectsByCategoryId(\n $categoryId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelProjectFilterInput\n $limit: Int\n $nextToken: String\n ) {\n projectsByCategoryId(\n categoryId: $categoryId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n }\n schedules {\n items {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n }\n vanplans {\n nextToken\n }\n }\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n projects {\n items {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n }\n nextToken\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n tenants {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n customId\n active\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n items {\n id\n groupId\n name\n date\n isWorking\n createdAt\n updatedAt\n }\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n mainContainerMasters {\n items {\n id\n containerMasterId\n groupId\n order\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const getSchedule = /* GraphQL */ `\n query GetSchedule($id: ID!) {\n getSchedule(id: $id) {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n cases {\n order\n name\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n phaseId\n isPacked\n netWeight\n grossWeight\n outerLength\n outerWidth\n outerHeight\n m3\n thumbnail\n managementNumber\n isBilled\n invoiceLineId\n version\n note\n summaryOrder\n vanplanCreated\n containerName\n containerId\n vanplanId\n loadingOrder\n }\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n packageType {\n id\n groupId\n pricingId\n name\n description\n publish\n quantity\n material\n stamp\n packageMethod\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n panelM2\n woodM3\n tareWeight\n grossWeight\n note\n standard\n woodCost\n lvlCost\n panelCost\n normalWoodCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n active\n order\n pricingGroup\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n areas {\n nextToken\n }\n decorations {\n nextToken\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n accountSpecific\n active\n description\n pricingGroup\n createdAt\n updatedAt\n }\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n }\n }\n areas {\n items {\n id\n productId\n name\n areaType\n order\n description\n createdAt\n updatedAt\n }\n nextToken\n }\n decorations {\n items {\n id\n productId\n type\n name\n slug\n order\n unit\n createdAt\n updatedAt\n }\n nextToken\n }\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n }\n vanplans {\n nextToken\n }\n }\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n }\n schedules {\n items {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n }\n vanplans {\n nextToken\n }\n }\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n projects {\n items {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n }\n nextToken\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n tenants {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n customId\n active\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n items {\n id\n groupId\n name\n date\n isWorking\n createdAt\n updatedAt\n }\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n mainContainerMasters {\n items {\n id\n containerMasterId\n groupId\n order\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n }\n }\n vanplans {\n items {\n id\n projectId\n scheduleId\n name\n loadPlanUrl\n loadPlanId\n createdAt\n updatedAt\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n }\n vanplans {\n nextToken\n }\n }\n containers {\n items {\n id\n vanplanId\n scheduleId\n containerMasterId\n order\n name\n shoring\n lashing\n securingMemo\n otherMemo\n isDesiccant\n desiccantMemo\n qtyDesiccant\n shipCompleted\n caseQuantity\n weight\n m3\n externalContainerId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n nextToken\n }\n }\n }\n`;\nexport const listSchedules = /* GraphQL */ `\n query ListSchedules(\n $filter: ModelScheduleFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listSchedules(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n cases {\n order\n name\n phaseId\n isPacked\n netWeight\n grossWeight\n outerLength\n outerWidth\n outerHeight\n m3\n thumbnail\n managementNumber\n isBilled\n invoiceLineId\n version\n note\n summaryOrder\n vanplanCreated\n containerName\n containerId\n vanplanId\n loadingOrder\n }\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n packageType {\n id\n groupId\n pricingId\n name\n description\n publish\n quantity\n material\n stamp\n packageMethod\n panelM2\n woodM3\n tareWeight\n grossWeight\n note\n standard\n woodCost\n lvlCost\n panelCost\n normalWoodCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n active\n order\n pricingGroup\n createdAt\n updatedAt\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n accountSpecific\n active\n description\n pricingGroup\n createdAt\n updatedAt\n }\n areas {\n nextToken\n }\n decorations {\n nextToken\n }\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n stockNumImgs\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n }\n schedules {\n items {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n stockNumImgs\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n }\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n projects {\n nextToken\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n tenants {\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n mainContainerMasters {\n nextToken\n }\n users {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n }\n vanplans {\n items {\n id\n projectId\n scheduleId\n name\n loadPlanUrl\n loadPlanId\n createdAt\n updatedAt\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n stockNumImgs\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n }\n containers {\n nextToken\n }\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const schedulesByProjectId = /* GraphQL */ `\n query SchedulesByProjectId(\n $projectId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelScheduleFilterInput\n $limit: Int\n $nextToken: String\n ) {\n schedulesByProjectId(\n projectId: $projectId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n cases {\n order\n name\n phaseId\n isPacked\n netWeight\n grossWeight\n outerLength\n outerWidth\n outerHeight\n m3\n thumbnail\n managementNumber\n isBilled\n invoiceLineId\n version\n note\n summaryOrder\n vanplanCreated\n containerName\n containerId\n vanplanId\n loadingOrder\n }\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n packageType {\n id\n groupId\n pricingId\n name\n description\n publish\n quantity\n material\n stamp\n packageMethod\n panelM2\n woodM3\n tareWeight\n grossWeight\n note\n standard\n woodCost\n lvlCost\n panelCost\n normalWoodCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n active\n order\n pricingGroup\n createdAt\n updatedAt\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n accountSpecific\n active\n description\n pricingGroup\n createdAt\n updatedAt\n }\n areas {\n nextToken\n }\n decorations {\n nextToken\n }\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n stockNumImgs\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n }\n schedules {\n items {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n stockNumImgs\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n }\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n projects {\n nextToken\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n tenants {\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n mainContainerMasters {\n nextToken\n }\n users {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n }\n vanplans {\n items {\n id\n projectId\n scheduleId\n name\n loadPlanUrl\n loadPlanId\n createdAt\n updatedAt\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n stockNumImgs\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n }\n containers {\n nextToken\n }\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const getReport = /* GraphQL */ `\n query GetReport($id: ID!) {\n getReport(id: $id) {\n id\n projectId\n name\n template {\n name\n key\n mimeType\n }\n type\n data\n exportAsPdf\n autoFillFormula\n description\n createdAt\n updatedAt\n }\n }\n`;\nexport const listReports = /* GraphQL */ `\n query ListReports(\n $filter: ModelReportFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listReports(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n projectId\n name\n template {\n name\n key\n mimeType\n }\n type\n data\n exportAsPdf\n autoFillFormula\n description\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const reportsByProjectId = /* GraphQL */ `\n query ReportsByProjectId(\n $projectId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelReportFilterInput\n $limit: Int\n $nextToken: String\n ) {\n reportsByProjectId(\n projectId: $projectId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n projectId\n name\n template {\n name\n key\n mimeType\n }\n type\n data\n exportAsPdf\n autoFillFormula\n description\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getReportTemplate = /* GraphQL */ `\n query GetReportTemplate($id: ID!) {\n getReportTemplate(id: $id) {\n id\n groupId\n name\n template {\n name\n key\n mimeType\n }\n type\n data\n scope\n exportAsPdf\n autoFillFormula\n description\n createdAt\n updatedAt\n }\n }\n`;\nexport const listReportTemplates = /* GraphQL */ `\n query ListReportTemplates(\n $filter: ModelReportTemplateFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listReportTemplates(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n groupId\n name\n template {\n name\n key\n mimeType\n }\n type\n data\n scope\n exportAsPdf\n autoFillFormula\n description\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const reportsByGroupId = /* GraphQL */ `\n query ReportsByGroupId(\n $groupId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelReportTemplateFilterInput\n $limit: Int\n $nextToken: String\n ) {\n reportsByGroupId(\n groupId: $groupId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n groupId\n name\n template {\n name\n key\n mimeType\n }\n type\n data\n scope\n exportAsPdf\n autoFillFormula\n description\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getGroupReport = /* GraphQL */ `\n query GetGroupReport($id: ID!) {\n getGroupReport(id: $id) {\n id\n groupId\n name\n template {\n name\n key\n mimeType\n }\n type\n data\n scope\n exportAsPdf\n autoFillFormula\n description\n createdAt\n updatedAt\n }\n }\n`;\nexport const listGroupReports = /* GraphQL */ `\n query ListGroupReports(\n $filter: ModelGroupReportFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listGroupReports(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n groupId\n name\n template {\n name\n key\n mimeType\n }\n type\n data\n scope\n exportAsPdf\n autoFillFormula\n description\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const groupReportsByGroupId = /* GraphQL */ `\n query GroupReportsByGroupId(\n $groupId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelGroupReportFilterInput\n $limit: Int\n $nextToken: String\n ) {\n groupReportsByGroupId(\n groupId: $groupId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n groupId\n name\n template {\n name\n key\n mimeType\n }\n type\n data\n scope\n exportAsPdf\n autoFillFormula\n description\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getProjectCategory = /* GraphQL */ `\n query GetProjectCategory($id: ID!) {\n getProjectCategory(id: $id) {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n projects {\n items {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n }\n schedules {\n items {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n stockNumImgs\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n }\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n projects {\n nextToken\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n tenants {\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n mainContainerMasters {\n nextToken\n }\n users {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n }\n nextToken\n }\n }\n }\n`;\nexport const listProjectCategories = /* GraphQL */ `\n query ListProjectCategories(\n $filter: ModelProjectCategoryFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listProjectCategories(\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n projects {\n items {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n schedules {\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const projectCategoriesByGroupId = /* GraphQL */ `\n query ProjectCategoriesByGroupId(\n $groupId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelProjectCategoryFilterInput\n $limit: Int\n $nextToken: String\n ) {\n projectCategoriesByGroupId(\n groupId: $groupId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n projects {\n items {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n schedules {\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const getVendor = /* GraphQL */ `\n query GetVendor($id: ID!) {\n getVendor(id: $id) {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n materials {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n materials {\n nextToken\n }\n purchasings {\n nextToken\n }\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n vendors {\n nextToken\n }\n species {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n materialType {\n id\n groupId\n name\n description\n type\n isWood\n isPanel\n isLvl\n isNormalWood\n summaryReportTarget\n active\n createdAt\n updatedAt\n }\n purchasings {\n nextToken\n }\n }\n }\n nextToken\n }\n purchasings {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n customFields {\n label\n value\n }\n note\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n materials {\n nextToken\n }\n purchasings {\n nextToken\n }\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n vendors {\n nextToken\n }\n species {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n materialType {\n id\n groupId\n name\n description\n type\n isWood\n isPanel\n isLvl\n isNormalWood\n summaryReportTarget\n active\n createdAt\n updatedAt\n }\n purchasings {\n nextToken\n }\n }\n }\n nextToken\n }\n }\n }\n`;\nexport const listVendors = /* GraphQL */ `\n query ListVendors(\n $filter: ModelVendorFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listVendors(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n materials {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n purchasings {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n customFields {\n label\n value\n }\n note\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const vendorsByTenantId = /* GraphQL */ `\n query VendorsByTenantId(\n $tenantId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelVendorFilterInput\n $limit: Int\n $nextToken: String\n ) {\n vendorsByTenantId(\n tenantId: $tenantId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n materials {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n purchasings {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n customFields {\n label\n value\n }\n note\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const getMaterial = /* GraphQL */ `\n query GetMaterial($id: ID!) {\n getMaterial(id: $id) {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n vendors {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n materials {\n nextToken\n }\n purchasings {\n nextToken\n }\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n vendors {\n nextToken\n }\n species {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n materialType {\n id\n groupId\n name\n description\n type\n isWood\n isPanel\n isLvl\n isNormalWood\n summaryReportTarget\n active\n createdAt\n updatedAt\n }\n purchasings {\n nextToken\n }\n }\n }\n nextToken\n }\n species {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n items {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n vendors {\n nextToken\n }\n species {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n materialType {\n id\n groupId\n name\n description\n type\n isWood\n isPanel\n isLvl\n isNormalWood\n summaryReportTarget\n active\n createdAt\n updatedAt\n }\n purchasings {\n nextToken\n }\n }\n nextToken\n }\n }\n materialType {\n id\n groupId\n name\n description\n type\n isWood\n isPanel\n isLvl\n isNormalWood\n summaryReportTarget\n customFields {\n name\n type\n required\n }\n active\n createdAt\n updatedAt\n materials {\n items {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n vendors {\n nextToken\n }\n species {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n materialType {\n id\n groupId\n name\n description\n type\n isWood\n isPanel\n isLvl\n isNormalWood\n summaryReportTarget\n active\n createdAt\n updatedAt\n }\n purchasings {\n nextToken\n }\n }\n nextToken\n }\n }\n purchasings {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n customFields {\n label\n value\n }\n note\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n materials {\n nextToken\n }\n purchasings {\n nextToken\n }\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n vendors {\n nextToken\n }\n species {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n materialType {\n id\n groupId\n name\n description\n type\n isWood\n isPanel\n isLvl\n isNormalWood\n summaryReportTarget\n active\n createdAt\n updatedAt\n }\n purchasings {\n nextToken\n }\n }\n }\n nextToken\n }\n }\n }\n`;\nexport const listMaterials = /* GraphQL */ `\n query ListMaterials(\n $filter: ModelMaterialFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listMaterials(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n vendors {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n species {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n items {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n materialType {\n id\n groupId\n name\n description\n type\n isWood\n isPanel\n isLvl\n isNormalWood\n summaryReportTarget\n customFields {\n name\n type\n required\n }\n active\n createdAt\n updatedAt\n materials {\n items {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n purchasings {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n customFields {\n label\n value\n }\n note\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const materialsByGroupId = /* GraphQL */ `\n query MaterialsByGroupId(\n $groupId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelMaterialFilterInput\n $limit: Int\n $nextToken: String\n ) {\n materialsByGroupId(\n groupId: $groupId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n vendors {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n species {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n items {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n materialType {\n id\n groupId\n name\n description\n type\n isWood\n isPanel\n isLvl\n isNormalWood\n summaryReportTarget\n customFields {\n name\n type\n required\n }\n active\n createdAt\n updatedAt\n materials {\n items {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n purchasings {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n customFields {\n label\n value\n }\n note\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const materialsBySpeciesId = /* GraphQL */ `\n query MaterialsBySpeciesId(\n $speciesId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelMaterialFilterInput\n $limit: Int\n $nextToken: String\n ) {\n materialsBySpeciesId(\n speciesId: $speciesId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n vendors {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n species {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n items {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n materialType {\n id\n groupId\n name\n description\n type\n isWood\n isPanel\n isLvl\n isNormalWood\n summaryReportTarget\n customFields {\n name\n type\n required\n }\n active\n createdAt\n updatedAt\n materials {\n items {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n purchasings {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n customFields {\n label\n value\n }\n note\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const materialsByTypeId = /* GraphQL */ `\n query MaterialsByTypeId(\n $materialTypeId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelMaterialFilterInput\n $limit: Int\n $nextToken: String\n ) {\n materialsByTypeId(\n materialTypeId: $materialTypeId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n vendors {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n species {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n items {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n materialType {\n id\n groupId\n name\n description\n type\n isWood\n isPanel\n isLvl\n isNormalWood\n summaryReportTarget\n customFields {\n name\n type\n required\n }\n active\n createdAt\n updatedAt\n materials {\n items {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n purchasings {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n customFields {\n label\n value\n }\n note\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const getSpecies = /* GraphQL */ `\n query GetSpecies($id: ID!) {\n getSpecies(id: $id) {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n items {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n vendors {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n }\n nextToken\n }\n species {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n materialType {\n id\n groupId\n name\n description\n type\n isWood\n isPanel\n isLvl\n isNormalWood\n summaryReportTarget\n customFields {\n name\n type\n required\n }\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n purchasings {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n note\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n nextToken\n }\n }\n }\n`;\nexport const listSpecies = /* GraphQL */ `\n query ListSpecies(\n $filter: ModelSpeciesFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listSpecies(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n items {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n vendors {\n nextToken\n }\n species {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n materialType {\n id\n groupId\n name\n description\n type\n isWood\n isPanel\n isLvl\n isNormalWood\n summaryReportTarget\n active\n createdAt\n updatedAt\n }\n purchasings {\n nextToken\n }\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const speciesByGroupId = /* GraphQL */ `\n query SpeciesByGroupId(\n $groupId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelSpeciesFilterInput\n $limit: Int\n $nextToken: String\n ) {\n speciesByGroupId(\n groupId: $groupId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n items {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n vendors {\n nextToken\n }\n species {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n materialType {\n id\n groupId\n name\n description\n type\n isWood\n isPanel\n isLvl\n isNormalWood\n summaryReportTarget\n active\n createdAt\n updatedAt\n }\n purchasings {\n nextToken\n }\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const getMaterialType = /* GraphQL */ `\n query GetMaterialType($id: ID!) {\n getMaterialType(id: $id) {\n id\n groupId\n name\n description\n type\n isWood\n isPanel\n isLvl\n isNormalWood\n summaryReportTarget\n customFields {\n name\n type\n required\n }\n active\n createdAt\n updatedAt\n materials {\n items {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n vendors {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n }\n nextToken\n }\n species {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n materialType {\n id\n groupId\n name\n description\n type\n isWood\n isPanel\n isLvl\n isNormalWood\n summaryReportTarget\n customFields {\n name\n type\n required\n }\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n purchasings {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n note\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n nextToken\n }\n }\n }\n`;\nexport const listMaterialTypes = /* GraphQL */ `\n query ListMaterialTypes(\n $filter: ModelMaterialTypeFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listMaterialTypes(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n groupId\n name\n description\n type\n isWood\n isPanel\n isLvl\n isNormalWood\n summaryReportTarget\n customFields {\n name\n type\n required\n }\n active\n createdAt\n updatedAt\n materials {\n items {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n vendors {\n nextToken\n }\n species {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n materialType {\n id\n groupId\n name\n description\n type\n isWood\n isPanel\n isLvl\n isNormalWood\n summaryReportTarget\n active\n createdAt\n updatedAt\n }\n purchasings {\n nextToken\n }\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const materialTypesByGroupId = /* GraphQL */ `\n query MaterialTypesByGroupId(\n $groupId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelMaterialTypeFilterInput\n $limit: Int\n $nextToken: String\n ) {\n materialTypesByGroupId(\n groupId: $groupId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n groupId\n name\n description\n type\n isWood\n isPanel\n isLvl\n isNormalWood\n summaryReportTarget\n customFields {\n name\n type\n required\n }\n active\n createdAt\n updatedAt\n materials {\n items {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n vendors {\n nextToken\n }\n species {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n materialType {\n id\n groupId\n name\n description\n type\n isWood\n isPanel\n isLvl\n isNormalWood\n summaryReportTarget\n active\n createdAt\n updatedAt\n }\n purchasings {\n nextToken\n }\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const getPurchasing = /* GraphQL */ `\n query GetPurchasing($id: ID!) {\n getPurchasing(id: $id) {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n customFields {\n label\n value\n }\n note\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n materials {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n purchasings {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n customFields {\n label\n value\n }\n note\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n vendors {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n species {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n items {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n materialType {\n id\n groupId\n name\n description\n type\n isWood\n isPanel\n isLvl\n isNormalWood\n summaryReportTarget\n customFields {\n name\n type\n required\n }\n active\n createdAt\n updatedAt\n materials {\n items {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n purchasings {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n customFields {\n label\n value\n }\n note\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n }\n }\n`;\nexport const listPurchasings = /* GraphQL */ `\n query ListPurchasings(\n $filter: ModelPurchasingFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listPurchasings(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n customFields {\n label\n value\n }\n note\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n materials {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n }\n nextToken\n }\n purchasings {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n note\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n vendors {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n }\n nextToken\n }\n species {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n materialType {\n id\n groupId\n name\n description\n type\n isWood\n isPanel\n isLvl\n isNormalWood\n summaryReportTarget\n customFields {\n name\n type\n required\n }\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n purchasings {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n note\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const purchasingsByMaterialId = /* GraphQL */ `\n query PurchasingsByMaterialId(\n $materialId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelPurchasingFilterInput\n $limit: Int\n $nextToken: String\n ) {\n purchasingsByMaterialId(\n materialId: $materialId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n customFields {\n label\n value\n }\n note\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n materials {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n }\n nextToken\n }\n purchasings {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n note\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n vendors {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n }\n nextToken\n }\n species {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n materialType {\n id\n groupId\n name\n description\n type\n isWood\n isPanel\n isLvl\n isNormalWood\n summaryReportTarget\n customFields {\n name\n type\n required\n }\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n purchasings {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n note\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const purchasingsByGroupId = /* GraphQL */ `\n query PurchasingsByGroupId(\n $groupId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelPurchasingFilterInput\n $limit: Int\n $nextToken: String\n ) {\n purchasingsByGroupId(\n groupId: $groupId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n customFields {\n label\n value\n }\n note\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n materials {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n }\n nextToken\n }\n purchasings {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n note\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n vendors {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n }\n nextToken\n }\n species {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n materialType {\n id\n groupId\n name\n description\n type\n isWood\n isPanel\n isLvl\n isNormalWood\n summaryReportTarget\n customFields {\n name\n type\n required\n }\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n purchasings {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n note\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const purchasingsByVendorId = /* GraphQL */ `\n query PurchasingsByVendorId(\n $vendorId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelPurchasingFilterInput\n $limit: Int\n $nextToken: String\n ) {\n purchasingsByVendorId(\n vendorId: $vendorId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n customFields {\n label\n value\n }\n note\n createdAt\n updatedAt\n vendor {\n id\n businessRegistrationNumber\n name\n tenantId\n abbreviation\n site\n disinfectantCertificationCode\n billingAddress\n billingPostalCode\n billingCountry\n billingState\n billingCity\n billingStreet\n billingType\n phone\n fax\n customCode\n active\n accountCode\n vendorId\n packagingMaterialProducerRegistrationNumber\n createdAt\n updatedAt\n materials {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n }\n nextToken\n }\n purchasings {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n note\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n material {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n vendors {\n items {\n id\n vendorId\n materialId\n createdAt\n updatedAt\n }\n nextToken\n }\n species {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n materialType {\n id\n groupId\n name\n description\n type\n isWood\n isPanel\n isLvl\n isNormalWood\n summaryReportTarget\n customFields {\n name\n type\n required\n }\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n purchasings {\n items {\n id\n groupId\n vendorId\n materialId\n purchasingDate\n startDate\n unitPurchasingCost\n purchaseUnit\n quantity\n totalCost\n unitCost\n costUnit\n note\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const testSync = /* GraphQL */ `\n query TestSync($input: SalesForceInput!) {\n testSync(input: $input)\n }\n`;\nexport const listSFObjectNames = /* GraphQL */ `\n query ListSFObjectNames($input: ListSFObjectNamesInput!) {\n listSFObjectNames(input: $input) {\n sfObjectName\n sfObjectLabel\n }\n }\n`;\nexport const listSFFieldsBySFObject = /* GraphQL */ `\n query ListSFFieldsBySFObject($input: ListSFFieldsBySFObjectInput!) {\n listSFFieldsBySFObject(input: $input) {\n sfFieldName\n sfFieldLabel\n sfFieldType\n }\n }\n`;\nexport const sFObjectByTenantIdAndName = /* GraphQL */ `\n query SFObjectByTenantIdAndName($tenantId: ID!, $name: String!) {\n sFObjectByTenantIdAndName(tenantId: $tenantId, name: $name) {\n id\n name\n tenantId\n label\n sfObjectName\n editable\n condition\n fields {\n name\n label\n apiName\n type\n required\n unique\n primary\n }\n }\n }\n`;\nexport const quoteSummariesByQuoteId = /* GraphQL */ `\n query QuoteSummariesByQuoteId($input: QuoteSummaryInput!) {\n quoteSummariesByQuoteId(input: $input) {\n items {\n id\n name\n pricingName\n amount\n unit\n unitPrice\n subtotal\n taxType\n order\n notes\n }\n }\n }\n`;\nexport const getProductBom = /* GraphQL */ `\n query GetProductBom($input: GetProductBomInput!) {\n getProductBom(input: $input) {\n product {\n id\n packageTypeId\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n productNumber\n quantity\n description\n note\n panelM2\n woodM3\n tareWeight\n grossWeight\n material\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n elements\n }\n components {\n areaId\n areaName\n areaOrder\n id\n name\n slug\n order\n elements\n }\n interiors {\n id\n name\n type\n slug\n unit\n order\n elements\n }\n exteriors {\n id\n name\n type\n slug\n unit\n order\n elements\n }\n }\n }\n`;\nexport const getPackageBom = /* GraphQL */ `\n query GetPackageBom($input: GetPackageBomInput!) {\n getPackageBom(input: $input) {\n product {\n id\n name\n quantity\n description\n note\n panelM2\n woodM3\n tareWeight\n grossWeight\n standard\n material\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n elements\n }\n components {\n areaId\n areaName\n areaOrder\n id\n name\n slug\n order\n elements\n }\n interiors {\n id\n name\n type\n slug\n unit\n order\n elements\n }\n exteriors {\n id\n name\n type\n slug\n unit\n order\n elements\n }\n }\n }\n`;\nexport const productSummariesByProjectId = /* GraphQL */ `\n query ProductSummariesByProjectId($input: ProductSummariesInput!) {\n productSummariesByProjectId(input: $input) {\n items {\n productId\n name\n productName\n pricingId\n packageTypeId\n pricingName\n packageTypeName\n quantity\n order\n productOrder\n caseOrder\n netWeight\n grossWeight\n outerLength\n outerWidth\n outerHeight\n productOuterLength\n productOuterWidth\n productOuterHeight\n m3\n phaseName\n scheduleId\n scheduleName\n shippingDate\n material\n destination\n managementNumber\n isBilled\n invoiceLineId\n readyToPack\n vanplanCreated\n }\n }\n }\n`;\nexport const checkCaseVersion = /* GraphQL */ `\n query CheckCaseVersion($input: CheckCaseVersionInput!) {\n checkCaseVersion(input: $input)\n }\n`;\nexport const listSummarizedMaterials = /* GraphQL */ `\n query ListSummarizedMaterials($input: SummarizedMaterialsInput!) {\n listSummarizedMaterials(input: $input) {\n items {\n accountId\n accountName\n contactId\n contactName\n projectId\n projectName\n productId\n productName\n productNumber\n scheduleId\n scheduleName\n stockingDate\n packagingDate\n shippingDate\n productQuantity\n materialTypeId\n materialTypeName\n materialId\n materialName\n speciesId\n speciesName\n lossRate\n usedM3\n usedM2\n totalM3\n totalM2\n projectReference\n productDestination\n productPackageTypeName\n productMaterial\n }\n nextToken\n }\n }\n`;\nexport const listSummarizedInvoices = /* GraphQL */ `\n query ListSummarizedInvoices($input: SummarizedInvoicesInput!) {\n listSummarizedInvoices(input: $input) {\n key\n items {\n projectId\n projectName\n projectReference\n projectCategory\n projectAccountName\n projectAccountSite\n projectAccountCode\n projectAccountNameSite\n projectAccountAbbreviation\n projectAccountCutoffDateText\n projectAccountPaymentMonthText\n projectAccountPaymentDateText\n projectContactName\n projectContactTitle\n projectContactDepartment\n projectManagerName\n projectQuoterName\n projectOperatorName\n projectType\n projectUserName\n projectStatus\n projectStockingDate\n projectPackagingDate\n projectShippingDate\n projectCutDate\n name\n invoiceNo\n billed\n taxableSubtotal\n nonTaxableTotal\n taxableTotal\n subtotal\n taxTotal\n total\n totalPurchasingCost\n description\n billingDate\n issueDate\n recordingDate\n externalId\n createdAt\n updatedAt\n accountPostalCode\n accountState\n accountCity\n accountStreet\n bankName\n bankBranchName\n bankBranchNumber\n bankAccountType\n bankAccountNumber\n productDestination\n productMaterial\n productStockingDate\n productPackagingDate\n productShippingDate\n productCutDate\n lineOrder\n lineName\n lineShippingDate\n lineSalesType\n linePricingName\n lineQuantity\n lineM3\n lineMinimumAmount\n lineGrossWeight\n lineRt\n lineAmount\n lineDescription\n lineUnit\n lineUnitPrice\n lineTaxType\n lineSubtotal\n lineTotal\n lineCreatedAt\n lineUpdatedAt\n lineUnitPurchasingCost\n lineTotalPurchasingCost\n lineVendorName\n lineVendorSite\n lineExternalId\n }\n nextToken\n }\n }\n`;\nexport const reportProjects = /* GraphQL */ `\n query ReportProjects($input: ReportProjectsInput) {\n reportProjects(input: $input) {\n items {\n id\n name\n reference\n account {\n id\n accountCode\n site\n name\n }\n contact {\n id\n name\n firstName\n lastName\n title\n }\n alert\n managerName\n quoterName\n operatorName\n user {\n id\n name\n firstName\n lastName\n }\n type\n status\n createdAt\n updatedAt\n schedules {\n items {\n id\n name\n note\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n case\n m3\n isShipped\n }\n }\n }\n }\n }\n`;\nexport const projectsByGroupIdForMobile = /* GraphQL */ `\n query ProjectsByGroupIdForMobile(\n $groupId: ID!\n $limit: Int\n $nextToken: String\n $filter: ProjectsByGroupIdFilter\n ) {\n projectsByGroupIdForMobile(\n groupId: $groupId\n limit: $limit\n nextToken: $nextToken\n filter: $filter\n ) {\n items {\n id\n accountName\n schedules {\n items {\n id\n name\n shipType\n stockingDate\n packagingDate\n shippingDate\n }\n }\n name\n status\n }\n nextToken\n }\n }\n`;\nexport const projectsByGroupIdForManager = /* GraphQL */ `\n query ProjectsByGroupIdForManager(\n $groupId: ID!\n $tenantId: ID\n $status: [String]\n $dates: [String]\n $visibleKeyDates: VisibleKeyDates\n $limit: Int\n $nextToken: String\n $startIndex: Int\n $filter: ProjectsByGroupIdFilter\n $userFilter: UserFilter\n $categoryFilter: CategoryFilter\n $scheduleFilter: ScheduleFilter\n $sortDirection: SortDirectionInput\n ) {\n projectsByGroupIdForManager(\n groupId: $groupId\n tenantId: $tenantId\n status: $status\n dates: $dates\n visibleKeyDates: $visibleKeyDates\n limit: $limit\n nextToken: $nextToken\n startIndex: $startIndex\n filter: $filter\n userFilter: $userFilter\n categoryFilter: $categoryFilter\n scheduleFilter: $scheduleFilter\n sortDirection: $sortDirection\n ) {\n items {\n id\n accountId\n contactId\n accountName\n schedules {\n items {\n id\n name\n note\n shipType\n beforeStockingName\n beforeStockingDate\n stockingDate\n beforePackagingName\n beforePackagingDate\n packagingDate\n beforeShippingName\n beforeShippingDate\n shippingDate\n beforeCutName\n beforeCutDate\n cutDate\n afterCutName\n afterCutDate\n m3\n case\n }\n }\n name\n status\n reference\n contactName\n managerName\n quoterName\n operatorName\n user {\n name\n firstName\n lastName\n }\n account {\n name\n active\n }\n categoryId\n category {\n name\n }\n alert\n type\n createdAt\n updatedAt\n }\n nextToken\n startIndex\n }\n }\n`;\nexport const downloadContainerMasterPreset = /* GraphQL */ `\n query DownloadContainerMasterPreset {\n downloadContainerMasterPreset {\n downloadURL\n }\n }\n`;\nexport const signInExternalSharePage = /* GraphQL */ `\n query SignInExternalSharePage($input: SignInExternalSharePageInput!) {\n signInExternalSharePage(input: $input) {\n result\n accessToken\n project {\n id\n account {\n id\n name\n }\n schedules {\n id\n name\n numImgs\n shippingDate\n stockingDate\n stockNumImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockSubFolders {\n id\n name\n numImgs\n }\n }\n name\n type\n status\n stockNumImgs\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n }\n schedules {\n id\n name\n numImgs\n shippingDate\n stockingDate\n stockNumImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockSubFolders {\n id\n name\n numImgs\n }\n }\n products {\n id\n projectId\n name\n order\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n cases {\n order\n name\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n phaseId\n thumbnail\n }\n }\n photos {\n key\n eTag\n size\n lastModified\n total\n index\n }\n errReason\n }\n }\n`;\nexport const verifyExternalShareAccessToken = /* GraphQL */ `\n query VerifyExternalShareAccessToken(\n $input: VerifyExternalShareAccessTokenInput!\n ) {\n verifyExternalShareAccessToken(input: $input) {\n result\n project {\n id\n account {\n id\n name\n }\n schedules {\n id\n name\n numImgs\n shippingDate\n stockingDate\n stockNumImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockSubFolders {\n id\n name\n numImgs\n }\n }\n name\n type\n status\n stockNumImgs\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n }\n schedules {\n id\n name\n numImgs\n shippingDate\n stockingDate\n stockNumImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockSubFolders {\n id\n name\n numImgs\n }\n }\n products {\n id\n projectId\n name\n order\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n cases {\n order\n name\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n phaseId\n thumbnail\n }\n }\n photos {\n key\n eTag\n size\n lastModified\n total\n index\n }\n errReason\n }\n }\n`;\nexport const getQuote = /* GraphQL */ `\n query GetQuote($id: ID!) {\n getQuote(id: $id) {\n id\n projectId\n name\n quoteNumber\n linkProduct\n order\n orderPlaced\n packRevenue\n packEstimatedCost\n packEstimatedProfit\n packTotalNetWeight\n packTotalNumOfCases\n packTotalGrossWeight\n packTotalM3\n revenue\n estimatedCost\n estimatedProfit\n totalNumOfCases\n totalNetWeight\n totalGrossWeight\n totalM3\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n groupName\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n phone\n fax\n createdAt\n updatedAt\n quoteLines {\n items {\n id\n quoteId\n pricingId\n packageTypeId\n productId\n quoteProductId\n productName\n pricingName\n packageTypeName\n showInQuoteSummary\n name\n index\n notes\n quantity\n autocalculate\n amount\n minimumAmount\n actualAmount\n order\n unitNW\n NW\n productLength\n productWidth\n productHeight\n outerLength\n outerWidth\n outerHeight\n estimatedUnitM3\n estimatedM3\n estimatedUnitGrossWeight\n estimatedGrossWeight\n estimatedUnitCost\n estimatedCost\n estimatedProfit\n estimatedWood\n estimatedLvl\n estimatedPanel\n estimatedInterior\n estimatedExterior\n estimatedCostM3\n estimatedOther\n unitPrice\n subtotal\n total\n unit\n taxType\n taxRate\n salesType\n costDetail\n createdAt\n updatedAt\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n }\n }\n }\n nextToken\n }\n }\n }\n`;\nexport const listQuotes = /* GraphQL */ `\n query ListQuotes(\n $filter: ModelQuoteFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listQuotes(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n projectId\n name\n quoteNumber\n linkProduct\n order\n orderPlaced\n packRevenue\n packEstimatedCost\n packEstimatedProfit\n packTotalNetWeight\n packTotalNumOfCases\n packTotalGrossWeight\n packTotalM3\n revenue\n estimatedCost\n estimatedProfit\n totalNumOfCases\n totalNetWeight\n totalGrossWeight\n totalM3\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n groupName\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n phone\n fax\n createdAt\n updatedAt\n quoteLines {\n items {\n id\n quoteId\n pricingId\n packageTypeId\n productId\n quoteProductId\n productName\n pricingName\n packageTypeName\n showInQuoteSummary\n name\n index\n notes\n quantity\n autocalculate\n amount\n minimumAmount\n actualAmount\n order\n unitNW\n NW\n productLength\n productWidth\n productHeight\n outerLength\n outerWidth\n outerHeight\n estimatedUnitM3\n estimatedM3\n estimatedUnitGrossWeight\n estimatedGrossWeight\n estimatedUnitCost\n estimatedCost\n estimatedProfit\n estimatedWood\n estimatedLvl\n estimatedPanel\n estimatedInterior\n estimatedExterior\n estimatedCostM3\n estimatedOther\n unitPrice\n subtotal\n total\n unit\n taxType\n taxRate\n salesType\n costDetail\n createdAt\n updatedAt\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n accountSpecific\n active\n description\n pricingGroup\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const quotesByProjectId = /* GraphQL */ `\n query QuotesByProjectId(\n $projectId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelQuoteFilterInput\n $limit: Int\n $nextToken: String\n ) {\n quotesByProjectId(\n projectId: $projectId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n projectId\n name\n quoteNumber\n linkProduct\n order\n orderPlaced\n packRevenue\n packEstimatedCost\n packEstimatedProfit\n packTotalNetWeight\n packTotalNumOfCases\n packTotalGrossWeight\n packTotalM3\n revenue\n estimatedCost\n estimatedProfit\n totalNumOfCases\n totalNetWeight\n totalGrossWeight\n totalM3\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n groupName\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n phone\n fax\n createdAt\n updatedAt\n quoteLines {\n items {\n id\n quoteId\n pricingId\n packageTypeId\n productId\n quoteProductId\n productName\n pricingName\n packageTypeName\n showInQuoteSummary\n name\n index\n notes\n quantity\n autocalculate\n amount\n minimumAmount\n actualAmount\n order\n unitNW\n NW\n productLength\n productWidth\n productHeight\n outerLength\n outerWidth\n outerHeight\n estimatedUnitM3\n estimatedM3\n estimatedUnitGrossWeight\n estimatedGrossWeight\n estimatedUnitCost\n estimatedCost\n estimatedProfit\n estimatedWood\n estimatedLvl\n estimatedPanel\n estimatedInterior\n estimatedExterior\n estimatedCostM3\n estimatedOther\n unitPrice\n subtotal\n total\n unit\n taxType\n taxRate\n salesType\n costDetail\n createdAt\n updatedAt\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n accountSpecific\n active\n description\n pricingGroup\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const getQuoteLine = /* GraphQL */ `\n query GetQuoteLine($id: ID!) {\n getQuoteLine(id: $id) {\n id\n quoteId\n pricingId\n packageTypeId\n productId\n quoteProductId\n productName\n pricingName\n packageTypeName\n showInQuoteSummary\n name\n index\n notes\n quantity\n autocalculate\n amount\n minimumAmount\n actualAmount\n order\n unitNW\n NW\n productLength\n productWidth\n productHeight\n outerLength\n outerWidth\n outerHeight\n estimatedUnitM3\n estimatedM3\n estimatedUnitGrossWeight\n estimatedGrossWeight\n estimatedUnitCost\n estimatedCost\n estimatedProfit\n estimatedWood\n estimatedLvl\n estimatedPanel\n estimatedInterior\n estimatedExterior\n estimatedCostM3\n estimatedOther\n unitPrice\n subtotal\n total\n unit\n taxType\n taxRate\n salesType\n costDetail\n createdAt\n updatedAt\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n pricings {\n items {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n accountSpecific\n active\n description\n pricingGroup\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n }\n }\n`;\nexport const listQuoteLines = /* GraphQL */ `\n query ListQuoteLines(\n $filter: ModelQuoteLineFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listQuoteLines(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n quoteId\n pricingId\n packageTypeId\n productId\n quoteProductId\n productName\n pricingName\n packageTypeName\n showInQuoteSummary\n name\n index\n notes\n quantity\n autocalculate\n amount\n minimumAmount\n actualAmount\n order\n unitNW\n NW\n productLength\n productWidth\n productHeight\n outerLength\n outerWidth\n outerHeight\n estimatedUnitM3\n estimatedM3\n estimatedUnitGrossWeight\n estimatedGrossWeight\n estimatedUnitCost\n estimatedCost\n estimatedProfit\n estimatedWood\n estimatedLvl\n estimatedPanel\n estimatedInterior\n estimatedExterior\n estimatedCostM3\n estimatedOther\n unitPrice\n subtotal\n total\n unit\n taxType\n taxRate\n salesType\n costDetail\n createdAt\n updatedAt\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n pricings {\n nextToken\n }\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const quoteLinesByQuoteId = /* GraphQL */ `\n query QuoteLinesByQuoteId(\n $quoteId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelQuoteLineFilterInput\n $limit: Int\n $nextToken: String\n ) {\n quoteLinesByQuoteId(\n quoteId: $quoteId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n quoteId\n pricingId\n packageTypeId\n productId\n quoteProductId\n productName\n pricingName\n packageTypeName\n showInQuoteSummary\n name\n index\n notes\n quantity\n autocalculate\n amount\n minimumAmount\n actualAmount\n order\n unitNW\n NW\n productLength\n productWidth\n productHeight\n outerLength\n outerWidth\n outerHeight\n estimatedUnitM3\n estimatedM3\n estimatedUnitGrossWeight\n estimatedGrossWeight\n estimatedUnitCost\n estimatedCost\n estimatedProfit\n estimatedWood\n estimatedLvl\n estimatedPanel\n estimatedInterior\n estimatedExterior\n estimatedCostM3\n estimatedOther\n unitPrice\n subtotal\n total\n unit\n taxType\n taxRate\n salesType\n costDetail\n createdAt\n updatedAt\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n pricesBySize {\n minSize\n maxSize\n unitPrice\n }\n accountSpecific\n accounts {\n key\n label\n }\n active\n description\n pricingGroup\n createdAt\n updatedAt\n priceType {\n id\n groupId\n name\n description\n showInQuoteSummary\n active\n createdAt\n updatedAt\n pricings {\n nextToken\n }\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const getSFObject = /* GraphQL */ `\n query GetSFObject($id: ID!) {\n getSFObject(id: $id) {\n id\n name\n tenantId\n label\n sfObjectName\n editable\n condition\n fields {\n name\n label\n apiName\n type\n required\n unique\n primary\n }\n createdAt\n updatedAt\n }\n }\n`;\nexport const listSFObjects = /* GraphQL */ `\n query ListSFObjects(\n $filter: ModelSFObjectFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listSFObjects(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n name\n tenantId\n label\n sfObjectName\n editable\n condition\n fields {\n name\n label\n apiName\n type\n required\n unique\n primary\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const sFObjectsByTenantId = /* GraphQL */ `\n query SFObjectsByTenantId(\n $tenantId: ID\n $sfObjectName: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelSFObjectFilterInput\n $limit: Int\n $nextToken: String\n ) {\n sFObjectsByTenantId(\n tenantId: $tenantId\n sfObjectName: $sfObjectName\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n name\n tenantId\n label\n sfObjectName\n editable\n condition\n fields {\n name\n label\n apiName\n type\n required\n unique\n primary\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getSyncLog = /* GraphQL */ `\n query GetSyncLog($id: ID!) {\n getSyncLog(id: $id) {\n id\n status\n numberOfNewRecords\n numberOfDeletedRecords\n numberOfUpdatedRecords\n message\n sFObjectId\n createdAt\n updatedAt\n sFObject {\n id\n name\n tenantId\n label\n sfObjectName\n editable\n condition\n fields {\n name\n label\n apiName\n type\n required\n unique\n primary\n }\n createdAt\n updatedAt\n }\n }\n }\n`;\nexport const listSyncLogs = /* GraphQL */ `\n query ListSyncLogs(\n $filter: ModelSyncLogFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listSyncLogs(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n status\n numberOfNewRecords\n numberOfDeletedRecords\n numberOfUpdatedRecords\n message\n sFObjectId\n createdAt\n updatedAt\n sFObject {\n id\n name\n tenantId\n label\n sfObjectName\n editable\n condition\n fields {\n name\n label\n apiName\n type\n required\n unique\n primary\n }\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const syncLogsBySFObject = /* GraphQL */ `\n query SyncLogsBySFObject(\n $sFObjectId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelSyncLogFilterInput\n $limit: Int\n $nextToken: String\n ) {\n syncLogsBySFObject(\n sFObjectId: $sFObjectId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n status\n numberOfNewRecords\n numberOfDeletedRecords\n numberOfUpdatedRecords\n message\n sFObjectId\n createdAt\n updatedAt\n sFObject {\n id\n name\n tenantId\n label\n sfObjectName\n editable\n condition\n fields {\n name\n label\n apiName\n type\n required\n unique\n primary\n }\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const getAccessLog = /* GraphQL */ `\n query GetAccessLog($id: ID!) {\n getAccessLog(id: $id) {\n id\n device\n ipAddress\n description\n tenantUserId\n createdAt\n updatedAt\n }\n }\n`;\nexport const listAccessLogs = /* GraphQL */ `\n query ListAccessLogs(\n $filter: ModelAccessLogFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listAccessLogs(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n device\n ipAddress\n description\n tenantUserId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getUser = /* GraphQL */ `\n query GetUser($id: ID!) {\n getUser(id: $id) {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n tenants {\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n mainContainerMasters {\n nextToken\n }\n users {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n items {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n nextToken\n }\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n sfObjects {\n items {\n id\n name\n tenantId\n label\n sfObjectName\n editable\n condition\n fields {\n name\n label\n apiName\n type\n required\n unique\n primary\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n tenants {\n nextToken\n }\n }\n nextToken\n }\n groups {\n items {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n mainContainerMasters {\n nextToken\n }\n users {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n tenants {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n configuration {\n projectFilter {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n }\n customId\n active\n createdAt\n updatedAt\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n tenants {\n nextToken\n }\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n }\n nextToken\n }\n }\n }\n`;\nexport const listUsers = /* GraphQL */ `\n query ListUsers(\n $filter: ModelUserFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listUsers(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n items {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n nextToken\n }\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n sfObjects {\n items {\n id\n name\n tenantId\n label\n sfObjectName\n editable\n condition\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n nextToken\n }\n groups {\n items {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n tenants {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n customId\n active\n createdAt\n updatedAt\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const legacyUsersByTenantId = /* GraphQL */ `\n query LegacyUsersByTenantId(\n $tenantId: ID\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelUserFilterInput\n $limit: Int\n $nextToken: String\n ) {\n legacyUsersByTenantId(\n tenantId: $tenantId\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n items {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n nextToken\n }\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n sfObjects {\n items {\n id\n name\n tenantId\n label\n sfObjectName\n editable\n condition\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n nextToken\n }\n groups {\n items {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n tenants {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n customId\n active\n createdAt\n updatedAt\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const usersByEmail = /* GraphQL */ `\n query UsersByEmail(\n $email: String\n $sortDirection: ModelSortDirection\n $filter: ModelUserFilterInput\n $limit: Int\n $nextToken: String\n ) {\n usersByEmail(\n email: $email\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n items {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n nextToken\n }\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n sfObjects {\n items {\n id\n name\n tenantId\n label\n sfObjectName\n editable\n condition\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n nextToken\n }\n groups {\n items {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n tenants {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n customId\n active\n createdAt\n updatedAt\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const getGroup = /* GraphQL */ `\n query GetGroup($id: ID!) {\n getGroup(id: $id) {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n items {\n id\n groupId\n name\n date\n isWorking\n createdAt\n updatedAt\n }\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n items {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n vendors {\n nextToken\n }\n species {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n materialType {\n id\n groupId\n name\n description\n type\n isWood\n isPanel\n isLvl\n isNormalWood\n summaryReportTarget\n active\n createdAt\n updatedAt\n }\n purchasings {\n nextToken\n }\n }\n nextToken\n }\n }\n mainContainerMasters {\n items {\n id\n containerMasterId\n groupId\n order\n createdAt\n updatedAt\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n mainContainerMasters {\n nextToken\n }\n users {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n containerMaster {\n id\n groupId\n presetId\n name\n order\n active\n insideLangth\n insideWidth\n insideHeight\n payload\n cost\n noEndWalls\n noSideWalls\n noRoof\n doorWidth\n doorHeight\n doorAtLongside\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n users {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n tenants {\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n mainContainerMasters {\n nextToken\n }\n users {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n items {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n nextToken\n }\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n sfObjects {\n items {\n id\n name\n tenantId\n label\n sfObjectName\n editable\n condition\n fields {\n name\n label\n apiName\n type\n required\n unique\n primary\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n tenants {\n nextToken\n }\n }\n nextToken\n }\n groups {\n items {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n mainContainerMasters {\n nextToken\n }\n users {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n }\n }\n`;\nexport const listGroups = /* GraphQL */ `\n query ListGroups(\n $filter: ModelGroupFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listGroups(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n items {\n id\n groupId\n name\n date\n isWorking\n createdAt\n updatedAt\n }\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n items {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n mainContainerMasters {\n items {\n id\n containerMasterId\n groupId\n order\n createdAt\n updatedAt\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n containerMaster {\n id\n groupId\n presetId\n name\n order\n active\n insideLangth\n insideWidth\n insideHeight\n payload\n cost\n noEndWalls\n noSideWalls\n noRoof\n doorWidth\n doorHeight\n doorAtLongside\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n users {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n items {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n nextToken\n }\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n sfObjects {\n items {\n id\n name\n tenantId\n label\n sfObjectName\n editable\n condition\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n nextToken\n }\n groups {\n items {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const groupsByTenantId = /* GraphQL */ `\n query GroupsByTenantId(\n $tenantId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelGroupFilterInput\n $limit: Int\n $nextToken: String\n ) {\n groupsByTenantId(\n tenantId: $tenantId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n items {\n id\n groupId\n name\n date\n isWorking\n createdAt\n updatedAt\n }\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n items {\n id\n groupId\n materialTypeId\n speciesId\n name\n purchaseUnit\n lossRate\n weight\n costCalculation\n defaultUnitCost\n unit\n length\n lengthApplicable\n lengthLocked\n lengthNominal\n width\n widthApplicable\n widthLocked\n widthNominal\n height\n heightApplicable\n heightLocked\n heightNominal\n active\n refBhhFace\n refBhhEdge\n z1402BeamOrder\n z1403BeamSupportOrder\n z1403BeamFaceOrder\n z1403BeamEdgeOrder\n z1410BeamSupportOrder\n z1410BeamFaceOrder\n z1410BeamEdgeOrder\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n mainContainerMasters {\n items {\n id\n containerMasterId\n groupId\n order\n createdAt\n updatedAt\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n containerMaster {\n id\n groupId\n presetId\n name\n order\n active\n insideLangth\n insideWidth\n insideHeight\n payload\n cost\n noEndWalls\n noSideWalls\n noRoof\n doorWidth\n doorHeight\n doorAtLongside\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n users {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n items {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n nextToken\n }\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n sfObjects {\n items {\n id\n name\n tenantId\n label\n sfObjectName\n editable\n condition\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n nextToken\n }\n groups {\n items {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const getTenant = /* GraphQL */ `\n query GetTenant($id: ID!) {\n getTenant(id: $id) {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n items {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n nextToken\n }\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n }\n nextToken\n }\n sfObjects {\n items {\n id\n name\n tenantId\n label\n sfObjectName\n editable\n condition\n fields {\n name\n label\n apiName\n type\n required\n unique\n primary\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n tenants {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n customId\n active\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n nextToken\n }\n groups {\n items {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n items {\n id\n groupId\n name\n date\n isWorking\n createdAt\n updatedAt\n }\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n materials {\n nextToken\n }\n }\n mainContainerMasters {\n items {\n id\n containerMasterId\n groupId\n order\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n }\n nextToken\n }\n }\n }\n`;\nexport const listTenants = /* GraphQL */ `\n query ListTenants(\n $filter: ModelTenantFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listTenants(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n items {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n nextToken\n }\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n sfObjects {\n items {\n id\n name\n tenantId\n label\n sfObjectName\n editable\n condition\n fields {\n name\n label\n apiName\n type\n required\n unique\n primary\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n tenants {\n nextToken\n }\n }\n nextToken\n }\n groups {\n items {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n mainContainerMasters {\n nextToken\n }\n users {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const getUsersTenants = /* GraphQL */ `\n query GetUsersTenants($id: ID!) {\n getUsersTenants(id: $id) {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n configuration {\n projectFilter {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n }\n customId\n active\n createdAt\n updatedAt\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n items {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n nextToken\n }\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n sfObjects {\n items {\n id\n name\n tenantId\n label\n sfObjectName\n editable\n condition\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n nextToken\n }\n groups {\n items {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n tenants {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n customId\n active\n createdAt\n updatedAt\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n items {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n nextToken\n }\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n sfObjects {\n items {\n id\n name\n tenantId\n label\n sfObjectName\n editable\n condition\n fields {\n name\n label\n apiName\n type\n required\n unique\n primary\n }\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n tenants {\n nextToken\n }\n }\n nextToken\n }\n groups {\n items {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n mainContainerMasters {\n nextToken\n }\n users {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n }\n }\n`;\nexport const listUsersTenants = /* GraphQL */ `\n query ListUsersTenants(\n $filter: ModelUsersTenantsFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listUsersTenants(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n configuration {\n projectFilter {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n }\n customId\n active\n createdAt\n updatedAt\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n tenants {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n customId\n active\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n items {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n nextToken\n }\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n sfObjects {\n items {\n id\n name\n tenantId\n label\n sfObjectName\n editable\n condition\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n nextToken\n }\n groups {\n items {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const tenantsByUserId = /* GraphQL */ `\n query TenantsByUserId(\n $userId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelUsersTenantsFilterInput\n $limit: Int\n $nextToken: String\n ) {\n tenantsByUserId(\n userId: $userId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n configuration {\n projectFilter {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n }\n customId\n active\n createdAt\n updatedAt\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n tenants {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n customId\n active\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n items {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n nextToken\n }\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n sfObjects {\n items {\n id\n name\n tenantId\n label\n sfObjectName\n editable\n condition\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n nextToken\n }\n groups {\n items {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const usersByTenantId = /* GraphQL */ `\n query UsersByTenantId(\n $tenantId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelUsersTenantsFilterInput\n $limit: Int\n $nextToken: String\n ) {\n usersByTenantId(\n tenantId: $tenantId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n configuration {\n projectFilter {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n }\n customId\n active\n createdAt\n updatedAt\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n items {\n id\n userId\n groupId\n role\n createdAt\n updatedAt\n }\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n nextToken\n }\n contacts {\n nextToken\n }\n sfObjects {\n nextToken\n }\n users {\n nextToken\n }\n groups {\n nextToken\n }\n }\n tenants {\n items {\n id\n userId\n tenantId\n isAdmin\n license\n hidden\n name\n firstName\n lastName\n customId\n active\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n projectFilters {\n name\n duration\n sort\n showProcesses\n showUnits\n showPhases\n }\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n accounts {\n items {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n nextToken\n }\n contacts {\n items {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n nextToken\n }\n sfObjects {\n items {\n id\n name\n tenantId\n label\n sfObjectName\n editable\n condition\n createdAt\n updatedAt\n }\n nextToken\n }\n users {\n items {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n nextToken\n }\n groups {\n items {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n }\n nextToken\n }\n }\n`;\nexport const getVanplan = /* GraphQL */ `\n query GetVanplan($id: ID!) {\n getVanplan(id: $id) {\n id\n projectId\n scheduleId\n name\n loadPlanUrl\n loadPlanId\n createdAt\n updatedAt\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n cases {\n order\n name\n phaseId\n isPacked\n netWeight\n grossWeight\n outerLength\n outerWidth\n outerHeight\n m3\n thumbnail\n managementNumber\n isBilled\n invoiceLineId\n version\n note\n summaryOrder\n vanplanCreated\n containerName\n containerId\n vanplanId\n loadingOrder\n }\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n packageType {\n id\n groupId\n pricingId\n name\n description\n publish\n quantity\n material\n stamp\n packageMethod\n panelM2\n woodM3\n tareWeight\n grossWeight\n note\n standard\n woodCost\n lvlCost\n panelCost\n normalWoodCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n active\n order\n pricingGroup\n createdAt\n updatedAt\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n accountSpecific\n active\n description\n pricingGroup\n createdAt\n updatedAt\n }\n areas {\n nextToken\n }\n decorations {\n nextToken\n }\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n stockNumImgs\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n }\n schedules {\n items {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n stockNumImgs\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n }\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n projects {\n nextToken\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n tenants {\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n mainContainerMasters {\n nextToken\n }\n users {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n }\n vanplans {\n items {\n id\n projectId\n scheduleId\n name\n loadPlanUrl\n loadPlanId\n createdAt\n updatedAt\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n stockNumImgs\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n }\n containers {\n nextToken\n }\n }\n nextToken\n }\n }\n containers {\n items {\n id\n vanplanId\n scheduleId\n containerMasterId\n order\n name\n shoring\n lashing\n securingMemo\n otherMemo\n isDesiccant\n desiccantMemo\n qtyDesiccant\n shipCompleted\n caseQuantity\n weight\n m3\n externalContainerId\n createdAt\n updatedAt\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n }\n vanplans {\n nextToken\n }\n }\n containerMaster {\n id\n groupId\n presetId\n name\n order\n active\n insideLangth\n insideWidth\n insideHeight\n payload\n cost\n noEndWalls\n noSideWalls\n noRoof\n doorWidth\n doorHeight\n doorAtLongside\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n }\n`;\nexport const listVanplans = /* GraphQL */ `\n query ListVanplans(\n $filter: ModelVanplanFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listVanplans(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n projectId\n scheduleId\n name\n loadPlanUrl\n loadPlanId\n createdAt\n updatedAt\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n createdAt\n updatedAt\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n schedules {\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n vanplans {\n items {\n id\n projectId\n scheduleId\n name\n loadPlanUrl\n loadPlanId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n containers {\n items {\n id\n vanplanId\n scheduleId\n containerMasterId\n order\n name\n shoring\n lashing\n securingMemo\n otherMemo\n isDesiccant\n desiccantMemo\n qtyDesiccant\n shipCompleted\n caseQuantity\n weight\n m3\n externalContainerId\n createdAt\n updatedAt\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n stockNumImgs\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n }\n containerMaster {\n id\n groupId\n presetId\n name\n order\n active\n insideLangth\n insideWidth\n insideHeight\n payload\n cost\n noEndWalls\n noSideWalls\n noRoof\n doorWidth\n doorHeight\n doorAtLongside\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const vanplansByProjectId = /* GraphQL */ `\n query VanplansByProjectId(\n $projectId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelVanplanFilterInput\n $limit: Int\n $nextToken: String\n ) {\n vanplansByProjectId(\n projectId: $projectId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n projectId\n scheduleId\n name\n loadPlanUrl\n loadPlanId\n createdAt\n updatedAt\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n createdAt\n updatedAt\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n schedules {\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n vanplans {\n items {\n id\n projectId\n scheduleId\n name\n loadPlanUrl\n loadPlanId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n containers {\n items {\n id\n vanplanId\n scheduleId\n containerMasterId\n order\n name\n shoring\n lashing\n securingMemo\n otherMemo\n isDesiccant\n desiccantMemo\n qtyDesiccant\n shipCompleted\n caseQuantity\n weight\n m3\n externalContainerId\n createdAt\n updatedAt\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n stockNumImgs\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n }\n containerMaster {\n id\n groupId\n presetId\n name\n order\n active\n insideLangth\n insideWidth\n insideHeight\n payload\n cost\n noEndWalls\n noSideWalls\n noRoof\n doorWidth\n doorHeight\n doorAtLongside\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const vanplansByScheduleId = /* GraphQL */ `\n query VanplansByScheduleId(\n $scheduleId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelVanplanFilterInput\n $limit: Int\n $nextToken: String\n ) {\n vanplansByScheduleId(\n scheduleId: $scheduleId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n projectId\n scheduleId\n name\n loadPlanUrl\n loadPlanId\n createdAt\n updatedAt\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n createdAt\n updatedAt\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n schedules {\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n vanplans {\n items {\n id\n projectId\n scheduleId\n name\n loadPlanUrl\n loadPlanId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n containers {\n items {\n id\n vanplanId\n scheduleId\n containerMasterId\n order\n name\n shoring\n lashing\n securingMemo\n otherMemo\n isDesiccant\n desiccantMemo\n qtyDesiccant\n shipCompleted\n caseQuantity\n weight\n m3\n externalContainerId\n createdAt\n updatedAt\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n stockNumImgs\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n }\n containerMaster {\n id\n groupId\n presetId\n name\n order\n active\n insideLangth\n insideWidth\n insideHeight\n payload\n cost\n noEndWalls\n noSideWalls\n noRoof\n doorWidth\n doorHeight\n doorAtLongside\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n nextToken\n }\n }\n`;\nexport const getContainerMasterPreset = /* GraphQL */ `\n query GetContainerMasterPreset($id: ID!) {\n getContainerMasterPreset(id: $id) {\n id\n name\n order\n active\n insideLangth\n insideWidth\n insideHeight\n payload\n cost\n noEndWalls\n noSideWalls\n noRoof\n doorWidth\n doorHeight\n doorAtLongside\n createdAt\n updatedAt\n }\n }\n`;\nexport const listContainerMasterPresets = /* GraphQL */ `\n query ListContainerMasterPresets(\n $filter: ModelContainerMasterPresetFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listContainerMasterPresets(\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n name\n order\n active\n insideLangth\n insideWidth\n insideHeight\n payload\n cost\n noEndWalls\n noSideWalls\n noRoof\n doorWidth\n doorHeight\n doorAtLongside\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getContainerMaster = /* GraphQL */ `\n query GetContainerMaster($id: ID!) {\n getContainerMaster(id: $id) {\n id\n groupId\n presetId\n name\n order\n active\n insideLangth\n insideWidth\n insideHeight\n payload\n cost\n noEndWalls\n noSideWalls\n noRoof\n doorWidth\n doorHeight\n doorAtLongside\n createdAt\n updatedAt\n }\n }\n`;\nexport const listContainerMasters = /* GraphQL */ `\n query ListContainerMasters(\n $filter: ModelContainerMasterFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listContainerMasters(\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n groupId\n presetId\n name\n order\n active\n insideLangth\n insideWidth\n insideHeight\n payload\n cost\n noEndWalls\n noSideWalls\n noRoof\n doorWidth\n doorHeight\n doorAtLongside\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const containerMastersByGroupId = /* GraphQL */ `\n query ContainerMastersByGroupId(\n $groupId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelContainerMasterFilterInput\n $limit: Int\n $nextToken: String\n ) {\n containerMastersByGroupId(\n groupId: $groupId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n groupId\n presetId\n name\n order\n active\n insideLangth\n insideWidth\n insideHeight\n payload\n cost\n noEndWalls\n noSideWalls\n noRoof\n doorWidth\n doorHeight\n doorAtLongside\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n`;\nexport const getContainer = /* GraphQL */ `\n query GetContainer($id: ID!) {\n getContainer(id: $id) {\n id\n vanplanId\n scheduleId\n containerMasterId\n order\n name\n shoring\n lashing\n securingMemo\n otherMemo\n isDesiccant\n desiccantMemo\n qtyDesiccant\n shipCompleted\n caseQuantity\n weight\n m3\n externalContainerId\n createdAt\n updatedAt\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n cases {\n order\n name\n phaseId\n isPacked\n netWeight\n grossWeight\n outerLength\n outerWidth\n outerHeight\n m3\n thumbnail\n managementNumber\n isBilled\n invoiceLineId\n version\n note\n summaryOrder\n vanplanCreated\n containerName\n containerId\n vanplanId\n loadingOrder\n }\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n elements {\n type\n name\n slug\n value\n expr\n description\n overwriteValue\n cutting\n }\n createdAt\n updatedAt\n packageType {\n id\n groupId\n pricingId\n name\n description\n publish\n quantity\n material\n stamp\n packageMethod\n panelM2\n woodM3\n tareWeight\n grossWeight\n note\n standard\n woodCost\n lvlCost\n panelCost\n normalWoodCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n active\n order\n pricingGroup\n createdAt\n updatedAt\n }\n pricing {\n id\n groupId\n priceTypeId\n packageTypeId\n isDefault\n name\n packageTypeName\n unitPrice\n unit\n autoCalculate\n minimumAmount\n taxType\n sizeDependent\n accountSpecific\n active\n description\n pricingGroup\n createdAt\n updatedAt\n }\n areas {\n nextToken\n }\n decorations {\n nextToken\n }\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n stockNumImgs\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n contacts {\n nextToken\n }\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n }\n schedules {\n items {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n stockNumImgs\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n }\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n projects {\n nextToken\n }\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n groups {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n tenants {\n nextToken\n }\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n groupAddress {\n address\n street\n city\n state\n postalCode\n country\n }\n quoteInfo {\n greeting\n paymentMethod\n destination\n dueDate\n expiryDate\n description\n }\n bank {\n name\n branchName\n branchNumber\n type\n accountNumber\n swiftCode\n }\n packPhases {\n id\n name\n requiresPhoto\n showInKanBan\n numImgs\n version\n }\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n holidays {\n nextToken\n }\n mainSpecies {\n id\n groupId\n name\n faceMPa\n edgeMPa\n description\n active\n createdAt\n updatedAt\n }\n mainContainerMasters {\n nextToken\n }\n users {\n nextToken\n }\n tenant {\n id\n name\n host\n mobileHost\n disableMultiTenant\n enableVanplan\n logoUrl\n address\n phone\n syncSFObject\n sfLoginUrl\n sfUsername\n sfPassword\n sfSecretToken\n maxManagerLicense\n maxMobileLicense\n createdAt\n updatedAt\n }\n }\n }\n vanplans {\n items {\n id\n projectId\n scheduleId\n name\n loadPlanUrl\n loadPlanId\n createdAt\n updatedAt\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n stockNumImgs\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n }\n containers {\n nextToken\n }\n }\n nextToken\n }\n }\n containerMaster {\n id\n groupId\n presetId\n name\n order\n active\n insideLangth\n insideWidth\n insideHeight\n payload\n cost\n noEndWalls\n noSideWalls\n noRoof\n doorWidth\n doorHeight\n doorAtLongside\n createdAt\n updatedAt\n }\n }\n }\n`;\nexport const listContainers = /* GraphQL */ `\n query ListContainers(\n $filter: ModelContainerFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listContainers(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n vanplanId\n scheduleId\n containerMasterId\n order\n name\n shoring\n lashing\n securingMemo\n otherMemo\n isDesiccant\n desiccantMemo\n qtyDesiccant\n shipCompleted\n caseQuantity\n weight\n m3\n externalContainerId\n createdAt\n updatedAt\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n createdAt\n updatedAt\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n schedules {\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n vanplans {\n items {\n id\n projectId\n scheduleId\n name\n loadPlanUrl\n loadPlanId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n containerMaster {\n id\n groupId\n presetId\n name\n order\n active\n insideLangth\n insideWidth\n insideHeight\n payload\n cost\n noEndWalls\n noSideWalls\n noRoof\n doorWidth\n doorHeight\n doorAtLongside\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const containersByVanplanId = /* GraphQL */ `\n query ContainersByVanplanId(\n $vanplanId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelContainerFilterInput\n $limit: Int\n $nextToken: String\n ) {\n containersByVanplanId(\n vanplanId: $vanplanId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n vanplanId\n scheduleId\n containerMasterId\n order\n name\n shoring\n lashing\n securingMemo\n otherMemo\n isDesiccant\n desiccantMemo\n qtyDesiccant\n shipCompleted\n caseQuantity\n weight\n m3\n externalContainerId\n createdAt\n updatedAt\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n createdAt\n updatedAt\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n schedules {\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n vanplans {\n items {\n id\n projectId\n scheduleId\n name\n loadPlanUrl\n loadPlanId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n containerMaster {\n id\n groupId\n presetId\n name\n order\n active\n insideLangth\n insideWidth\n insideHeight\n payload\n cost\n noEndWalls\n noSideWalls\n noRoof\n doorWidth\n doorHeight\n doorAtLongside\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const containersByContainerMasterId = /* GraphQL */ `\n query ContainersByContainerMasterId(\n $containerMasterId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelContainerFilterInput\n $limit: Int\n $nextToken: String\n ) {\n containersByContainerMasterId(\n containerMasterId: $containerMasterId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n vanplanId\n scheduleId\n containerMasterId\n order\n name\n shoring\n lashing\n securingMemo\n otherMemo\n isDesiccant\n desiccantMemo\n qtyDesiccant\n shipCompleted\n caseQuantity\n weight\n m3\n externalContainerId\n createdAt\n updatedAt\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n createdAt\n updatedAt\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n schedules {\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n vanplans {\n items {\n id\n projectId\n scheduleId\n name\n loadPlanUrl\n loadPlanId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n containerMaster {\n id\n groupId\n presetId\n name\n order\n active\n insideLangth\n insideWidth\n insideHeight\n payload\n cost\n noEndWalls\n noSideWalls\n noRoof\n doorWidth\n doorHeight\n doorAtLongside\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\nexport const containersByScheduleId = /* GraphQL */ `\n query ContainersByScheduleId(\n $scheduleId: ID\n $sortDirection: ModelSortDirection\n $filter: ModelContainerFilterInput\n $limit: Int\n $nextToken: String\n ) {\n containersByScheduleId(\n scheduleId: $scheduleId\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n vanplanId\n scheduleId\n containerMasterId\n order\n name\n shoring\n lashing\n securingMemo\n otherMemo\n isDesiccant\n desiccantMemo\n qtyDesiccant\n shipCompleted\n caseQuantity\n weight\n m3\n externalContainerId\n createdAt\n updatedAt\n schedule {\n id\n projectId\n name\n m3\n case\n shipType\n stockingDate\n packagingDate\n shippingDate\n cutDate\n numImgs\n shipSubFolders {\n id\n name\n numImgs\n }\n stockNumImgs\n stockSubFolders {\n id\n name\n numImgs\n }\n isShipped\n note\n beforeStockingName\n beforeStockingDate\n beforePackagingName\n beforePackagingDate\n beforeShippingName\n beforeShippingDate\n beforeCutName\n beforeCutDate\n afterCutName\n afterCutDate\n createdAt\n updatedAt\n products {\n items {\n id\n projectId\n packageTypeId\n scheduleId\n userId\n pricingId\n overwriteUnitPrice\n overwriteUnit\n packageTypeName\n quoteLineId\n quoteLineName\n unit\n name\n order\n productNumber\n quantity\n material\n panelM2\n woodM3\n tareWeight\n grossWeight\n m3\n stamp\n destination\n packagingStart\n packagingEnd\n packageMethod\n description\n readyToPack\n note\n woodCost\n normalWoodCost\n lvlCost\n panelCost\n interiorCost\n exteriorCost\n m3Cost\n totalCost\n createdAt\n updatedAt\n }\n nextToken\n }\n project {\n id\n groupId\n quoteId\n userId\n managerId\n managerName\n quoterId\n quoterName\n operatorId\n operatorName\n accountId\n accountName\n contactId\n contactName\n externalShareUrl\n externalSharePassword\n externalShareEnabled\n externalShareExpirationDate\n name\n status\n inquiryDate\n quotationDate\n destinationName\n destination {\n lat\n lng\n }\n confidence\n description\n alert\n cancelled\n cancelReason\n caseMarkNumImgs\n stockNumImgs\n reference\n photoPhases {\n id\n name\n requiresPhoto\n numImgs\n }\n externalSharedImageKeys\n type\n categoryId\n version\n archived\n createdAt\n updatedAt\n note\n account {\n id\n tenantId\n accountCode\n businessRegistrationNumber\n name\n abbreviation\n site\n billingAddress\n billingStreet\n billingCity\n billingState\n billingPostalCode\n billingCountry\n billingType\n fax\n phone\n customeCode\n cutoffDateText\n cutoffDateNumber\n paymentMonthText\n paymentMonthNumber\n paymentDateText\n paymentDateNumber\n invoiceUnit\n invoiceMethod\n active\n note\n accountId\n createdAt\n updatedAt\n }\n contact {\n id\n accountId\n tenantId\n name\n firstName\n lastName\n suffix\n active\n email\n phone\n mobilePhone\n department\n title\n retired\n customeCode\n description\n contactId\n createdAt\n updatedAt\n }\n schedules {\n nextToken\n }\n category {\n id\n groupId\n name\n beforeStockingName\n beforePackagingName\n beforeShippingName\n beforeCutName\n afterCutName\n active\n createdAt\n updatedAt\n }\n user {\n id\n externalId\n name\n firstName\n lastName\n email\n showTutorial\n invited\n verified\n fontSize\n language\n receiveEmailNotification\n theme\n useMfa\n customId\n tenantId\n isAdmin\n createdAt\n updatedAt\n }\n group {\n id\n name\n phone\n fax\n email\n logoUrl\n taxRate\n maxInventoryM3\n prefix\n fiscalYearStartMonth\n salesCutoffDay\n revenueRecognitionCriterion\n mainSpeciesId\n mainSpeciesName\n mainSpeciesFaceMPa\n mainSpeciesEdgeMPa\n notStackable\n maxStacking\n bottomOnly\n orientation\n labelField\n tenantId\n version\n createdAt\n updatedAt\n }\n }\n vanplans {\n items {\n id\n projectId\n scheduleId\n name\n loadPlanUrl\n loadPlanId\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n containerMaster {\n id\n groupId\n presetId\n name\n order\n active\n insideLangth\n insideWidth\n insideHeight\n payload\n cost\n noEndWalls\n noSideWalls\n noRoof\n doorWidth\n doorHeight\n doorAtLongside\n createdAt\n updatedAt\n }\n }\n nextToken\n }\n }\n`;\n","import { useReducer, Reducer, useEffect, useMemo } from \"react\";\nimport _ from \"lodash\";\nimport { API } from \"aws-amplify\";\n\nimport * as queries from \"graphql/queries\";\nimport * as mutations from \"graphql/mutations\";\nimport { useAlerts } from \"contexts/alerts\";\n\nexport interface GraphQLVariables {\n [key: string]: any;\n}\n\nexport interface GraphQLInput {\n id: string;\n [key: string]: any;\n}\n\ninterface QueryProps {\n object: string;\n variables?: GraphQLVariables | undefined;\n}\n\ninterface QueryState {\n data: any;\n loading: boolean;\n updating: boolean;\n nextToken: string | null;\n error: string | boolean;\n refetch: () => null;\n loadNext: () => null;\n update: () => null;\n remove: () => null;\n set: () => null;\n}\n\ninterface QueryAction {\n type: string;\n payload?: any;\n}\n\ninterface GraphQLResult {\n data: {\n [key: string]: object[];\n };\n errors: any;\n}\n\nexport interface LoadOptions {\n progress: boolean;\n}\n\nconst initialState = {\n data: undefined,\n loading: false,\n updating: false,\n error: false,\n nextToken: null,\n refetch: () => null,\n loadNext: () => null,\n update: () => null,\n remove: () => null,\n set: () => null,\n};\n\nconst reducer: Reducer = (\n state: QueryState,\n action: QueryAction\n) => {\n switch (action.type) {\n case \"LOAD_DATA\":\n return {\n ...state,\n loading: true,\n error: false,\n };\n case \"DATA_LOADED\":\n return {\n ...state,\n loading: false,\n error: false,\n data: action.payload.data,\n };\n case \"SET_DATA\":\n return {\n ...state,\n data: action.payload.data,\n };\n case \"SET_ERROR\":\n return {\n ...state,\n loading: false,\n error: action.payload,\n };\n case \"UPDATE_DATA\":\n return {\n ...state,\n updating: true,\n error: false,\n };\n case \"DATA_UPDATED\":\n return {\n ...state,\n updating: false,\n error: false,\n data: action.payload.data,\n };\n case \"DELETE_DATA\":\n return {\n ...state,\n updating: true,\n error: false,\n };\n case \"DATA_DELETED\":\n return {\n ...state,\n updating: false,\n error: false,\n data: {},\n };\n default:\n return initialState;\n }\n};\n\nfunction cap(str: string) {\n return `${str[0].toUpperCase()}${str.substring(1)}`;\n}\n\nconst loadOptions = {\n progress: true,\n};\n\n//TODO: Learn proper way to use useReducer\nexport default function useData({ object, variables }: QueryProps) {\n const [result, dispatch] = useReducer(reducer, initialState);\n const { addAlert } = useAlerts();\n\n // triggers data fetch when initialized\n useEffect(() => {\n getData(variables);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const getData = async (\n gqlVariables: GraphQLVariables | undefined,\n options: LoadOptions | undefined = loadOptions\n ) => {\n try {\n const query = `get${cap(object)}`;\n if (!!options.progress) {\n dispatch({ type: \"LOAD_DATA\" });\n }\n const res = (await API.graphql({\n query: _.get(queries, query),\n variables: gqlVariables,\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n })) as GraphQLResult;\n\n dispatch({ type: \"DATA_LOADED\", payload: { data: res.data[query] } });\n } catch (err: any) {\n if (typeof err === \"string\") {\n addAlert({ message: err, severity: \"error\" });\n dispatch({ type: \"SET_ERROR\", payload: err });\n } else if (err instanceof Error) {\n addAlert({ message: err.message, severity: \"error\" });\n dispatch({ type: \"SET_ERROR\", payload: err.message });\n }\n if (err.errors) {\n addAlert({ message: err.errors[0].message, severity: \"error\" });\n dispatch({ type: \"SET_ERROR\", payload: err.errors });\n }\n throw err;\n }\n };\n\n const update = async (input: GraphQLInput | undefined) => {\n try {\n const mutation = `update${cap(object)}`;\n dispatch({ type: \"UPDATE_DATA\" });\n const res = (await API.graphql({\n query: _.get(mutations, mutation),\n variables: {\n input,\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n })) as GraphQLResult;\n\n dispatch({ type: \"DATA_UPDATED\", payload: { data: res.data[mutation] } });\n addAlert({ message: \"更新されました\", severity: \"success\" });\n } catch (err: any) {\n if (typeof err === \"string\") {\n addAlert({ message: err, severity: \"error\" });\n dispatch({ type: \"SET_ERROR\", payload: err });\n } else if (err instanceof Error) {\n addAlert({ message: err.message, severity: \"error\" });\n dispatch({ type: \"SET_ERROR\", payload: err.message });\n }\n if (err.errors) {\n addAlert({ message: err.errors[0].message, severity: \"error\" });\n dispatch({ type: \"SET_ERROR\", payload: err.errors[0].message });\n }\n throw err;\n }\n };\n\n const remove = async (input: GraphQLInput | undefined) => {\n try {\n const mutation = `delete${cap(object)}`;\n dispatch({ type: \"DELETE_DATA\" });\n const res = (await API.graphql({\n query: _.get(mutations, mutation),\n variables: {\n input,\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n })) as GraphQLResult;\n\n dispatch({ type: \"DATA_DELETED\", payload: { data: res.data[mutation] } });\n addAlert({ message: \"削除されました\", severity: \"success\" });\n } catch (err: any) {\n if (typeof err === \"string\") {\n addAlert({ message: err, severity: \"error\" });\n dispatch({ type: \"SET_ERROR\", payload: err });\n } else if (err instanceof Error) {\n addAlert({ message: err.message, severity: \"error\" });\n dispatch({ type: \"SET_ERROR\", payload: err.message });\n }\n if (err.errors) {\n addAlert({ message: err.errors[0].message, severity: \"error\" });\n dispatch({ type: \"SET_ERROR\", payload: err.errors });\n }\n throw err;\n }\n };\n\n const set = (data: any) => {\n dispatch({ type: \"SET_DATA\", payload: { data } });\n };\n\n // refetch the same dataset\n // can refetch with new variables\n const refetch = async (\n customVariables: GraphQLVariables | undefined = undefined,\n options?: LoadOptions\n ) => {\n await getData(customVariables || variables, options);\n };\n\n // useMemo to prevent force re-render components that are reading these values\n const values = useMemo(\n () => ({ ...result, refetch, update, remove, set }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [result, refetch, update]\n );\n\n return values;\n}\n","import { useReducer, Reducer, useEffect, useState } from \"react\";\nimport _ from \"lodash\";\nimport { API } from \"aws-amplify\";\n\nimport * as queries from \"graphql/queries\";\nimport * as mutations from \"graphql/mutations\";\nimport { useAlerts } from \"contexts/alerts\";\n\ninterface GraphQLVariables {\n [key: string]: any;\n}\n\nexport interface GraphQLInput {\n id?: string;\n [key: string]: any;\n}\n\ninterface QueryProps {\n query: string;\n variables?: GraphQLVariables | undefined;\n sort?: string | ((a: any, b: any) => void);\n}\n\nexport interface LoadOptions {\n progress: boolean;\n}\n\nexport interface UpdateOptions {\n // DBに更新だけして、stateの更新は行わない\n dbOnly: boolean;\n}\n\ninterface QueryState {\n data: any;\n loading: boolean;\n creating: boolean;\n updating: boolean;\n removing: boolean;\n nextToken: string | null;\n error: string | boolean;\n loadNext: () => null;\n appendNext: () => null;\n create: (mutation: string, input: GraphQLInput) => void;\n update: (\n mutation: string,\n input: GraphQLInput,\n options?: UpdateOptions\n ) => void;\n remove: (mutation: string, input: GraphQLInput) => void;\n refetch: (customVariables?: GraphQLVariables, options?: LoadOptions) => null;\n}\n\ninterface QueryAction {\n type: string;\n payload?: any;\n}\n\ninterface GraphQLResult {\n data: {\n [key: string]: {\n items: object[];\n nextToken?: string;\n };\n };\n errors: any;\n}\n\nconst initialState = {\n data: [],\n loading: false,\n creating: false,\n updating: false,\n removing: false,\n error: false,\n nextToken: null,\n refetch: () => null,\n loadNext: () => null,\n appendNext: () => null,\n create: () => null,\n update: () => null,\n remove: () => null,\n set: () => null,\n};\n\nconst reducer: Reducer = (\n state: QueryState,\n action: QueryAction\n) => {\n const newData = state.data;\n switch (action.type) {\n case \"LOAD_DATA\":\n return {\n ...state,\n loading: true,\n error: false,\n };\n case \"DATA_LOADED\":\n let result = action.payload.data;\n if (action.payload.sort) {\n if (typeof action.payload.sort === \"string\") {\n result = result.sort(\n (a: any, b: any) => a[action.payload.sort] - b[action.payload.sort]\n );\n } else {\n // custom sort\n result = result.sort(action.payload.sort);\n }\n }\n return {\n ...state,\n loading: false,\n error: false,\n data: result,\n nextToken: action.payload.nextToken,\n };\n case \"DATA_LOADED_AND_APPEND\":\n const appendData = action.payload.data;\n let allData = [...state.data, ...appendData];\n if (action.payload.sort) {\n if (typeof action.payload.sort === \"string\") {\n allData = allData.sort(\n (a: any, b: any) => a[action.payload.sort] - b[action.payload.sort]\n );\n } else {\n // custom sort\n allData = allData.sort(action.payload.sort);\n }\n }\n return {\n ...state,\n loading: false,\n error: false,\n data: allData,\n nextToken: action.payload.nextToken,\n };\n case \"SET_ERROR\":\n return {\n ...state,\n loading: false,\n error: action.payload.error,\n };\n case \"CREATE_DATA\":\n return {\n ...state,\n creating: true,\n error: false,\n };\n case \"DATA_CREATED\":\n // state.data[].idがaction.payload.data.idと同じ場合は上書きする\n let appendedData = [...state.data, action.payload.data];\n if (\n state.data.some((d: GraphQLInput) => d.id === action.payload.data.id)\n ) {\n appendedData = state.data.map((d: GraphQLInput) =>\n d.id === action.payload.data.id ? action.payload.data : d\n );\n }\n return {\n ...state,\n creating: false,\n error: false,\n data: appendedData,\n };\n case \"UPDATE_DATA\":\n const targetIdx = state.data.findIndex(\n (d: GraphQLInput) => d.id === action.payload.data.id\n );\n newData[targetIdx] = { ...newData[targetIdx], ...action.payload.data };\n\n return {\n ...state,\n updating: true,\n error: false,\n data: newData,\n };\n case \"DATA_UPDATED\":\n newData[\n state.data.findIndex(\n (d: GraphQLInput) => d.id === action.payload.data.id\n )\n ] = action.payload.data;\n\n return {\n ...state,\n updating: false,\n error: false,\n data: newData,\n };\n case \"SET_DATA\":\n return {\n ...state,\n data: action.payload.data,\n };\n case \"DATA_SET\":\n return {\n ...state,\n updating: false,\n error: false,\n data: newData,\n };\n case \"DELETE_DATA\":\n return {\n ...state,\n deleting: true,\n error: false,\n };\n case \"DATA_DELETED\":\n return {\n ...state,\n deleting: false,\n error: false,\n data: state.data.filter((d: any) => d.id !== action.payload.data.id),\n };\n default:\n return initialState;\n }\n};\n\nconst loadOptions = {\n progress: true,\n};\n\nexport default function useDatalist({ query, variables, sort }: QueryProps) {\n const [result, dispatch] = useReducer(reducer, initialState);\n const [customVariables, setCustomVariables] = useState<\n GraphQLVariables | undefined\n >(undefined);\n const { addAlert } = useAlerts();\n\n // triggers data fetch when initialized\n useEffect(() => {\n loadData(variables, loadOptions);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const loadData = async (\n gqlVariables: GraphQLVariables | undefined,\n options: LoadOptions | undefined = loadOptions\n ) => {\n try {\n if (!!options.progress) {\n dispatch({ type: \"LOAD_DATA\" });\n }\n const res = (await API.graphql({\n query: _.get(queries, query),\n variables: gqlVariables,\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n })) as GraphQLResult;\n\n if (res.errors)\n return dispatch({ type: \"SET_ERROR\", payload: res.errors });\n\n const { items, nextToken } = res.data[query];\n\n dispatch({\n type: \"DATA_LOADED\",\n payload: { data: items, nextToken, sort },\n });\n } catch (err) {\n if (typeof err === \"string\") {\n dispatch({ type: \"SET_ERROR\", payload: err });\n } else if (err instanceof Error) {\n dispatch({ type: \"SET_ERROR\", payload: err.message });\n }\n throw err;\n }\n };\n\n const loadNext = async () => {\n try {\n const res = (await API.graphql({\n query: _.get(queries, query),\n variables: {\n ...variables,\n nextToken: result.nextToken,\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n })) as GraphQLResult;\n\n if (res.errors)\n return dispatch({ type: \"SET_ERROR\", payload: res.errors });\n\n const { items, nextToken } = res.data[query];\n\n dispatch({\n type: \"DATA_LOADED\",\n payload: { data: items, nextToken, sort },\n });\n } catch (err: any) {\n if (typeof err === \"string\") {\n dispatch({ type: \"SET_ERROR\", payload: err });\n } else if (err instanceof Error) {\n dispatch({ type: \"SET_ERROR\", payload: err.message });\n } else if (err.errors !== undefined) {\n addAlert({ message: err.errors[0].message, severity: \"error\" });\n dispatch({ type: \"SET_ERROR\", payload: err.errors[0].message });\n }\n throw err;\n }\n };\n\n const appendNext = async () => {\n if (result.nextToken === null)\n return dispatch({ type: \"SET_ERROR\", payload: \"no more data\" });\n try {\n const res = (await API.graphql({\n query: _.get(queries, query),\n variables: {\n ...variables,\n ...customVariables,\n nextToken: result.nextToken,\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n })) as GraphQLResult;\n\n if (res.errors)\n return dispatch({ type: \"SET_ERROR\", payload: res.errors });\n\n const { items, nextToken } = res.data[query];\n\n dispatch({\n type: \"DATA_LOADED_AND_APPEND\",\n payload: { data: items, nextToken, sort },\n });\n } catch (err: any) {\n if (typeof err === \"string\") {\n dispatch({ type: \"SET_ERROR\", payload: err });\n } else if (err instanceof Error) {\n dispatch({ type: \"SET_ERROR\", payload: err.message });\n } else if (err.errors !== undefined) {\n addAlert({ message: err.errors[0].message, severity: \"error\" });\n dispatch({ type: \"SET_ERROR\", payload: err.errors[0].message });\n }\n throw err;\n }\n };\n\n const create = async (mutation: string, input: GraphQLInput | undefined) => {\n try {\n dispatch({ type: \"CREATE_DATA\" });\n const res = (await API.graphql({\n query: _.get(mutations, mutation),\n variables: {\n input,\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n })) as GraphQLResult;\n\n if (!res.data[mutation]) throw Error(\"Data not created\");\n\n dispatch({ type: \"DATA_CREATED\", payload: { data: res.data[mutation] } });\n addAlert({ message: \"作成されました\", severity: \"success\" });\n return res.data[mutation];\n } catch (err: any) {\n if (typeof err === \"string\") {\n addAlert({ message: err, severity: \"error\" });\n dispatch({ type: \"SET_ERROR\", payload: err });\n } else if (err instanceof Error) {\n addAlert({ message: err.message, severity: \"error\" });\n dispatch({ type: \"SET_ERROR\", payload: err.message });\n } else if (err.errors !== undefined) {\n addAlert({ message: err.errors[0].message, severity: \"error\" });\n dispatch({ type: \"SET_ERROR\", payload: err.errors[0].message });\n }\n throw err;\n }\n };\n\n const update = async (\n mutation: string,\n input: GraphQLInput | undefined,\n options?: UpdateOptions\n ) => {\n try {\n dispatch({ type: \"UPDATE_DATA\", payload: { data: input } });\n const res = (await API.graphql({\n query: _.get(mutations, mutation),\n variables: {\n input,\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n })) as GraphQLResult;\n\n if (options?.dbOnly) {\n return res.data[mutation];\n }\n\n dispatch({ type: \"DATA_UPDATED\", payload: { data: res.data[mutation] } });\n addAlert({\n message: \"データが更新されました\",\n severity: \"success\",\n });\n return res.data[mutation];\n } catch (err: any) {\n if (typeof err === \"string\") {\n addAlert({ message: err, severity: \"error\" });\n dispatch({ type: \"SET_ERROR\", payload: err });\n } else if (err instanceof Error) {\n addAlert({ message: err.message, severity: \"error\" });\n dispatch({ type: \"SET_ERROR\", payload: err.message });\n } else if (err.errors !== undefined) {\n addAlert({ message: err.errors[0].message, severity: \"error\" });\n dispatch({ type: \"SET_ERROR\", payload: err.errors[0].message });\n }\n throw err;\n }\n };\n\n const set = async (input: GraphQLInput | undefined) => {\n try {\n dispatch({ type: \"SET_DATA\", payload: { data: input } });\n dispatch({ type: \"DATA_SET\" });\n return;\n } catch (err: any) {\n if (typeof err === \"string\") {\n addAlert({ message: err, severity: \"error\" });\n dispatch({ type: \"SET_ERROR\", payload: err });\n } else if (err instanceof Error) {\n addAlert({ message: err.message, severity: \"error\" });\n dispatch({ type: \"SET_ERROR\", payload: err.message });\n } else if (err.errors !== undefined) {\n addAlert({ message: err.errors[0].message, severity: \"error\" });\n dispatch({ type: \"SET_ERROR\", payload: err.errors[0].message });\n }\n throw err;\n }\n };\n\n const remove = async (mutation: string, input: GraphQLInput | undefined) => {\n try {\n dispatch({ type: \"DELETE_DATA\" });\n const res = (await API.graphql({\n query: _.get(mutations, mutation),\n variables: {\n input,\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n })) as GraphQLResult;\n dispatch({ type: \"DATA_DELETED\", payload: { data: res.data[mutation] } });\n addAlert({ message: \"データが削除されました\", severity: \"success\" });\n return res.data[mutation];\n } catch (err: any) {\n if (typeof err === \"string\") {\n addAlert({ message: err, severity: \"error\" });\n dispatch({ type: \"SET_ERROR\", payload: err });\n } else if (err instanceof Error) {\n addAlert({ message: err.message, severity: \"error\" });\n dispatch({ type: \"SET_ERROR\", payload: err.message });\n } else if (err.errors !== undefined) {\n addAlert({ message: err.errors[0].message, severity: \"error\" });\n dispatch({ type: \"SET_ERROR\", payload: err.errors[0].message });\n }\n throw err;\n }\n };\n\n // refetch the same dataset\n // can refetch with new variables\n const refetch = async (\n customVariables: GraphQLVariables | undefined = undefined,\n options?: LoadOptions\n ) => {\n setCustomVariables(customVariables);\n await loadData(customVariables || variables, options);\n };\n\n return {\n ...result,\n refetch,\n loadNext,\n appendNext,\n update,\n create,\n remove,\n set,\n };\n}\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport { forwardRef, useCallback, useState } from \"react\";\nimport Dialog from \"@mui/material/Dialog\";\nimport AppBar from \"@mui/material/AppBar\";\nimport Toolbar from \"@mui/material/Toolbar\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Typography from \"@mui/material/Typography\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport Slide from \"@mui/material/Slide\";\nimport { TransitionProps } from \"@mui/material/transitions\";\nimport QrScanner from \"qr-scanner\";\nimport { useRouter } from \"next/router\";\n\nimport { useAlerts } from \"contexts/alerts\";\n\nconst Transition = forwardRef(function Transition(\n props: TransitionProps & {\n children: React.ReactElement;\n },\n ref: React.Ref\n) {\n return ;\n});\n\ninterface QrReaderProps {\n open: boolean;\n setOpen: (open: boolean) => void;\n}\n\nexport default function QrReader({ open, setOpen }: QrReaderProps) {\n const [scanner, setScanner] = useState(null);\n const { addAlert } = useAlerts();\n\n const router = useRouter();\n\n const handleClose = () => {\n setOpen(false);\n scanner?.stop();\n };\n\n const startScan = useCallback((videoRef: HTMLVideoElement) => {\n if (!videoRef) return;\n\n const qrScanner = new QrScanner(\n videoRef,\n (result: any) => {\n try {\n const data = JSON.parse(result.data);\n qrScanner.stop();\n setOpen(false);\n if (data.case && data.product) {\n return router.push(\n `/projects/${data.project}?page=products&productId=${data.product}&case=${data.case}`\n );\n } else if (data.project && data.product) {\n router.push(`/projects/${data.project}?product=${data.product}`);\n } else if (data.project) {\n router.push(`/projects/${data.project}`);\n } else {\n addAlert({ message: \"無効なQRコードです\", severity: \"warning\" });\n }\n } catch (e) {\n addAlert({ message: \"無効なQRコードです\", severity: \"warning\" });\n }\n },\n { highlightScanRegion: true, highlightCodeOutline: true }\n );\n\n setScanner(qrScanner);\n\n qrScanner.start();\n }, []);\n\n return (\n \n \n \n \n QRコード\n \n \n \n \n \n \n
\n
\n \n );\n}\n","import React, { Dispatch, ReactNode, SetStateAction, useState } from \"react\";\nimport Link from \"next/link\";\nimport {\n AppBar,\n Box,\n IconButton,\n Toolbar,\n Tooltip,\n Typography,\n} from \"@mui/material\";\nimport HelpSiteIcon from \"@mui/icons-material/QuestionMark\";\nimport QrCodeScannerIcon from \"@mui/icons-material/QrCodeScanner\";\nimport MenuIcon from \"@mui/icons-material/Menu\";\nimport AccountIcon from \"@mui/icons-material/AccountCircle\";\n\nimport { SUPPORT_SITE_URL } from \"utils/constant\";\nimport QrScanner from \"components/QrScanner\";\n\ninterface CustomToolbarProps {\n children?: ReactNode | ReactNode[];\n toggleDrawer?: () => void;\n projectName?: String | undefined;\n title?: String | undefined;\n}\n\n/**\n * AppBarの共通アイコン\n * @param children アイコンボタンに追加するReactNode\n * @param toggleDrawer 左ドロワーの状態\n * @param projectName project配下での案件名\n * @param title スケジュール・設定画面のタイトル(画面名・グループ名・テナント名)\n * @returns ボタンのElement\n */\nexport function AppBarIconButton({\n children,\n toggleDrawer,\n projectName,\n title,\n}: CustomToolbarProps): JSX.Element {\n const [showQrScan, setShowQr] = useState(false);\n return (\n <>\n \n \n \n {toggleDrawer && (\n \n {title && }\n {projectName && }\n \n )}\n\n {!projectName && (\n \n {title}\n \n )}\n\n {projectName && (\n \n \n {projectName}\n \n \n )}\n\n \n \n \n \n \n \n \n\n {children}\n\n \n setShowQr(true)}\n >\n \n \n \n \n \n \n );\n}\n","import { useRouter } from \"next/router\";\nimport IconButton from \"@mui/material/IconButton\";\nimport SettingIcon from \"@mui/icons-material/Settings\";\nimport Tooltip from \"@mui/material/Tooltip\";\n\nimport { useAuth } from \"contexts/auth\";\nimport { AppBarIconButton } from \"layouts/AppBar/AppBarIconButton\";\n\ninterface AppBarProps {\n open?: boolean;\n toggleDrawer: () => void;\n}\n\nexport function HomeAppBar({ toggleDrawer }: AppBarProps) {\n const { currentGroup, user } = useAuth();\n const router = useRouter();\n const { permissions } = useAuth();\n\n if (!currentGroup)\n return (\n
\n グループに所属されていません\n
\n );\n\n return (\n <>\n \n {permissions.GroupInfo.canRead && (\n \n router.push(`/group/settings`)}\n >\n \n \n \n )}\n \n \n );\n}\n","import { useRouter } from \"next/router\";\nimport IconButton from \"@mui/material/IconButton\";\nimport AccountTreeIcon from \"@mui/icons-material/AccountTree\";\nimport Tooltip from \"@mui/material/Tooltip\";\n\nimport { useAuth } from \"contexts/auth\";\nimport { AppBarIconButton } from \"layouts/AppBar/AppBarIconButton\";\n\ninterface AppBarProps {\n title: string;\n open?: boolean;\n toggleDrawer: () => void;\n}\n\nexport function AdminAppBar({ title, toggleDrawer }: AppBarProps) {\n const { currentGroup } = useAuth();\n const router = useRouter();\n\n if (!currentGroup)\n return (\n
\n グループに所属されていません\n
\n );\n\n return (\n <>\n \n \n router.push(\"/\")}\n >\n \n \n \n \n \n );\n}\n","import Link from \"next/link\";\nimport IconButton from \"@mui/material/IconButton\";\nimport HomeIcon from \"@mui/icons-material/Home\";\nimport Tooltip from \"@mui/material/Tooltip\";\n\nimport { useProject } from \"contexts/project\";\nimport { AppBarIconButton } from \"layouts/AppBar/AppBarIconButton\";\n\ninterface AppBarProps {\n open?: boolean;\n toggleDrawer: () => void;\n}\n\nexport function ProjectAppBar({ toggleDrawer }: AppBarProps) {\n const { project } = useProject();\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n );\n}\n","import AppBar from \"@mui/material/AppBar\";\nimport Toolbar from \"@mui/material/Toolbar\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport LogoutIcon from \"@mui/icons-material/Logout\"; // 追加\n\nimport { useExternalShareInfo } from \"contexts/externalShareInfo\";\n\nexport function ExternalProjectAppBar() {\n const { project } = useExternalShareInfo();\n const { logout } = useExternalShareInfo();\n\n return (\n <>\n \n \n \n \n \n );\n}\n","export * from \"./HomeAppBar\";\nexport * from \"./AdminAppBar\";\nexport * from \"./ProjectAppBar\";\nexport * from \"./ExternalAppBar/ProjectAppBar\";\n","import Link from \"next/link\";\nimport ListItemButton from \"@mui/material/ListItemButton\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport ListSubheader from \"@mui/material/ListSubheader\";\nimport SignOutIcon from \"@mui/icons-material/ExitToApp\";\nimport CheckIcon from \"@mui/icons-material/Check\";\nimport GearIcon from \"@mui/icons-material/Settings\";\n\nimport { useAuth } from \"contexts/auth\";\n\ninterface MenuListProps {\n toggleDrawer: () => void;\n}\n\nexport const MainListItems = ({ toggleDrawer }: MenuListProps) => {\n const { logout, permissions } = useAuth();\n\n const handleSignOut = () => {\n logout();\n toggleDrawer();\n };\n\n return (\n <>\n \n メニュー\n \n {permissions.TenantInfo.canRead && (\n \n \n \n \n \n \n \n \n )}\n\n \n \n \n \n \n \n \n );\n};\n\nexport const SecondaryListItems = ({ toggleDrawer }: MenuListProps) => {\n const { user, currentGroup, setCurrentGroup } = useAuth();\n\n const handleGroupChange = (group: any) => {\n setCurrentGroup(group);\n toggleDrawer();\n };\n\n return (\n <>\n \n 事業所選択\n \n {user?.groups.map((group) => (\n handleGroupChange(group)}>\n \n {currentGroup?.id === group.id && }\n \n ))}\n \n );\n};\n","import Drawer from \"@mui/material/Drawer\";\nimport Toolbar from \"@mui/material/Toolbar\";\nimport List from \"@mui/material/List\";\nimport Divider from \"@mui/material/Divider\";\nimport IconButton from \"@mui/material/IconButton\";\nimport ChevronLeftIcon from \"@mui/icons-material/ChevronLeft\";\n\nimport { MainListItems, SecondaryListItems } from \"./NavItems\";\n\ninterface NavigationProps {\n open?: boolean;\n toggleDrawer: () => void;\n}\n\nexport function HomeNavs({ open, toggleDrawer }: NavigationProps) {\n return (\n \n \n \n \n \n
\n \"logo\"\n
\n \n \n \n \n \n \n \n
\n );\n}\n","import ListItemButton from \"@mui/material/ListItemButton\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport Collapse from \"@mui/material/Collapse\";\nimport LinearProgress from \"@mui/material/LinearProgress\";\nimport ExpandLess from \"@mui/icons-material/ExpandLess\";\nimport ExpandMore from \"@mui/icons-material/ExpandMore\";\nimport RequestQuoteIcon from \"@mui/icons-material/RequestQuoteOutlined\";\nimport Link from \"next/link\";\nimport { useEffect, useState } from \"react\";\nimport { List } from \"@mui/material\";\nimport { useRouter } from \"next/router\";\nimport Avatar from \"@mui/material/Avatar\";\nimport { green } from \"@mui/material/colors\";\n\nimport { useQuotes } from \"contexts/quotes\";\nimport { useProject } from \"contexts/project\";\n\ninterface Props {\n toggleDrawer: () => void;\n}\n\nconst QuoteItems = ({ toggleDrawer }: Props) => {\n const [open, setOpen] = useState(false);\n const [currentPage, setCurrentPage] = useState(\"project\");\n const router = useRouter();\n const { project } = useProject();\n const { quotes, loading } = useQuotes();\n\n const { query } = router;\n\n useEffect(() => {\n if (!!query.quoteId) {\n setCurrentPage(query.quoteId as string);\n return setOpen(true);\n }\n setCurrentPage(query.page as string);\n }, [query]);\n\n if (!project || !quotes) return null;\n\n const handleClick = () => {\n toggleDrawer();\n router.push(`/projects/${project.id}?page=quotes`);\n };\n\n return (\n <>\n
\n \n \n \n \n \n \n
\n {open ? (\n setOpen(false)} />\n ) : (\n setOpen(true)} />\n )}\n
\n
\n \n \n {loading && quotes.length === 0 && }\n {quotes.map((quote) => (\n \n \n \n \n {quote.id === project.quoteId ? \"受\" : \"仮\"}\n \n \n \n \n \n ))}\n \n \n \n );\n};\n\nexport default QuoteItems;\n","import ListItemButton from \"@mui/material/ListItemButton\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport Collapse from \"@mui/material/Collapse\";\nimport LinearProgress from \"@mui/material/LinearProgress\";\nimport ExpandLess from \"@mui/icons-material/ExpandLess\";\nimport ExpandMore from \"@mui/icons-material/ExpandMore\";\nimport WidgetsIcon from \"@mui/icons-material/WidgetsOutlined\";\nimport Link from \"next/link\";\nimport { useEffect, useState } from \"react\";\nimport { List } from \"@mui/material\";\nimport { useRouter } from \"next/router\";\nimport Avatar from \"@mui/material/Avatar\";\n\nimport { useProducts } from \"contexts/products\";\nimport { getProductCompletionRate, ProgressIcon } from \"utils/product\";\nimport { ProgressIcon as CaseProgressIcon } from \"utils/case\";\nimport { useProject } from \"contexts/project\";\nimport { Case, Product } from \"API\";\n\ninterface ProductProps {\n toggleDrawer: () => void;\n}\n\ninterface CaseProps {\n product: Product;\n toggleDrawer: () => void;\n}\n\nconst CaseItems = ({ toggleDrawer, product }: CaseProps) => {\n const [open, setOpen] = useState(false);\n const [currentPage, setCurrentPage] = useState(\"project\");\n const { project } = useProject();\n const router = useRouter();\n const { query } = router;\n\n useEffect(() => {\n if (!!query.case) {\n setCurrentPage(`${query.productId}-${query.case}`);\n if (query.productId === product?.id) setOpen(true);\n } else if (!!query.productId) {\n setCurrentPage(query.productId as string);\n } else {\n setCurrentPage(\"\");\n }\n }, [query, product]);\n\n if (!project || !product) return null;\n\n const handleClick = () => {\n toggleDrawer();\n router.push(\n `/projects/${project.id}?page=products&productId=${product.id}`\n );\n };\n\n return (\n <>\n
\n \n \n \n {product.readyToPack ? (\n \n ) : (\n \"仮\"\n )}\n \n \n \n \n {product.readyToPack && (\n
\n {open ? (\n setOpen(false)} />\n ) : (\n setOpen(true)} />\n )}\n
\n )}\n
\n \n {product.cases &&\n product.cases.length > 0 &&\n product.cases.map((cs) => (\n \n \n \n \n \n \n \n \n ))}\n \n \n );\n};\n\nconst ProductItems = ({ toggleDrawer }: ProductProps) => {\n const [open, setOpen] = useState(false);\n const [currentPage, setCurrentPage] = useState(\"project\");\n const { products, loading } = useProducts();\n const { project } = useProject();\n const router = useRouter();\n\n const { query } = router;\n\n useEffect(() => {\n if (!query.productId && !query.case) {\n setCurrentPage(query.page as string);\n } else if (!!query.productId && query.page === \"products\") {\n setCurrentPage(\"\");\n setOpen(true);\n } else if (!!query.productId && !!query) {\n setCurrentPage(\"\");\n setOpen(true);\n } else {\n setCurrentPage(\"\");\n }\n }, [query]);\n\n if (!project || !products) return null;\n\n const handleClick = () => {\n toggleDrawer();\n router.push(`/projects/${project.id}?page=products`);\n };\n\n return (\n <>\n
\n \n \n \n \n \n \n
\n {open ? (\n setOpen(false)} />\n ) : (\n setOpen(true)} />\n )}\n
\n
\n \n \n {loading && products.length === 0 && }\n {products.length > 0 &&\n products.map((product) => (\n \n ))}\n \n \n \n );\n};\n\nexport default ProductItems;\n","import ListItemButton from \"@mui/material/ListItemButton\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport WidgetsIcon from \"@mui/icons-material/WidgetsOutlined\";\nimport ExpandLess from \"@mui/icons-material/ExpandLess\";\nimport ExpandMore from \"@mui/icons-material/ExpandMore\";\nimport LinearProgress from \"@mui/material/LinearProgress\";\nimport Collapse from \"@mui/material/Collapse\";\nimport { useEffect, useState } from \"react\";\nimport { useRouter } from \"next/router\";\nimport { List } from \"@mui/material\";\n\nimport { useProducts } from \"contexts/products\";\nimport { useProject } from \"contexts/project\";\nimport { Product } from \"API\";\n\ninterface NonProductProps {\n toggleDrawer: () => void;\n}\n\ninterface NonProductItemProps {\n product: Product;\n toggleDrawer: () => void;\n}\n\nconst ProductItems = ({ toggleDrawer, product }: NonProductItemProps) => {\n const [currentPage, setCurrentPage] = useState(\"project\");\n const { project } = useProject();\n const router = useRouter();\n const { query } = router;\n\n useEffect(() => {\n if (!!query.productId) {\n setCurrentPage(query.productId as string);\n } else {\n setCurrentPage(\"\");\n }\n }, [query, product]);\n\n if (!project || !product) return null;\n\n const handleClick = () => {\n toggleDrawer();\n router.push(\n `/projects/${project.id}?page=products&productId=${product.id}`\n );\n };\n\n return (\n
\n \n \n \n
\n );\n};\n\nconst NonProductNav = ({ toggleDrawer }: NonProductProps) => {\n const [open, setOpen] = useState(false);\n const [currentPage, setCurrentPage] = useState(\"project\");\n const { products, loading } = useProducts();\n const { project } = useProject();\n const router = useRouter();\n\n const { query } = router;\n\n useEffect(() => {\n if (!query.productId && !query.case) {\n setCurrentPage(query.page as string);\n } else if (!!query.productId && query.page === \"products\") {\n setCurrentPage(\"\");\n setOpen(true);\n } else if (!!query.productId && !!query) {\n setCurrentPage(\"\");\n setOpen(true);\n } else {\n setCurrentPage(\"\");\n }\n }, [query]);\n\n if (!project || !products) return null;\n\n const handleClick = () => {\n toggleDrawer();\n router.push(`/projects/${project.id}?page=products`);\n };\n\n return (\n <>\n
\n \n \n \n \n \n \n
\n {open ? (\n setOpen(false)} />\n ) : (\n setOpen(true)} />\n )}\n
\n
\n \n \n {loading && products.length === 0 && }\n {products.length > 0 &&\n products.map((product) => (\n \n ))}\n \n \n \n );\n};\n\nexport default NonProductNav;\n","import ListItemButton from \"@mui/material/ListItemButton\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport Collapse from \"@mui/material/Collapse\";\nimport LinearProgress from \"@mui/material/LinearProgress\";\nimport ExpandLess from \"@mui/icons-material/ExpandLess\";\nimport ExpandMore from \"@mui/icons-material/ExpandMore\";\nimport ReceiptIcon from \"@mui/icons-material/Receipt\";\nimport Link from \"next/link\";\nimport { useEffect, useState } from \"react\";\nimport { List } from \"@mui/material\";\nimport { useRouter } from \"next/router\";\nimport Avatar from \"@mui/material/Avatar\";\nimport { green } from \"@mui/material/colors\";\n\nimport { useInvoices } from \"contexts/invoices\";\nimport { useProject } from \"contexts/project\";\n\ninterface Props {\n toggleDrawer: () => void;\n}\n\nconst InvoiceItems = ({ toggleDrawer }: Props) => {\n const [open, setOpen] = useState(false);\n const [currentPage, setCurrentPage] = useState(\"project\");\n const router = useRouter();\n const { project } = useProject();\n const { invoices, loading } = useInvoices();\n\n const { query } = router;\n\n useEffect(() => {\n if (!!query.invoiceId) {\n setCurrentPage(query.invoiceId as string);\n return setOpen(true);\n }\n setCurrentPage(query.page as string);\n }, [query]);\n\n if (!project || !invoices) return null;\n\n const handleClick = () => {\n toggleDrawer();\n router.push(`/projects/${project.id}?page=invoice`);\n };\n\n return (\n <>\n
\n \n \n \n \n \n \n
\n {open ? (\n setOpen(false)} />\n ) : (\n setOpen(true)} />\n )}\n
\n
\n \n \n {loading && invoices.length === 0 && }\n {invoices.map((invoice) => (\n \n \n \n \n {invoice.billed ? \"済\" : \"未\"}\n \n \n \n \n \n ))}\n \n \n \n );\n};\n\nexport default InvoiceItems;\n","import ListItemButton from \"@mui/material/ListItemButton\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport Collapse from \"@mui/material/Collapse\";\nimport LinearProgress from \"@mui/material/LinearProgress\";\nimport ExpandLess from \"@mui/icons-material/ExpandLess\";\nimport ExpandMore from \"@mui/icons-material/ExpandMore\";\nimport LocalShippingIcon from \"@mui/icons-material/LocalShipping\";\nimport Link from \"next/link\";\nimport { useEffect, useState } from \"react\";\nimport { Avatar, List } from \"@mui/material\";\nimport { useRouter } from \"next/router\";\nimport { green } from \"@mui/material/colors\";\n\nimport { useProject } from \"contexts/project\";\nimport { useVanplans } from \"contexts/vanplans\";\nimport { ProgressIcon } from \"utils/product\";\nimport { getVanplanCompletionRate } from \"utils/vanplan/vanplan\";\nimport { Vanplan } from \"API\";\n\ninterface ContainerProps {\n vanplan: Vanplan;\n toggleDrawer: () => void;\n}\n\nconst ContainerItems = ({ toggleDrawer, vanplan }: ContainerProps) => {\n const [open, setOpen] = useState(false);\n const [currentPage, setCurrentPage] = useState(\"vanplans\");\n const { project } = useProject();\n const router = useRouter();\n const { query } = router;\n\n useEffect(() => {\n if (!!query.containerId) {\n setCurrentPage(`${query.vanplanId}-${query.containerId}`);\n if (query.vanplanId === vanplan?.id) setOpen(true);\n } else if (!!query.vanplanId) {\n setCurrentPage(query.vanplanId as string);\n } else {\n setCurrentPage(\"\");\n }\n }, [query, vanplan]);\n\n if (!project || !vanplan) return null;\n\n const handleClick = () => {\n toggleDrawer();\n router.push(\n `/projects/${project.id}?page=vanplans&vanplanId=${vanplan.id}`\n );\n };\n\n return (\n <>\n
\n \n \n \n \n \n \n
\n {open ? (\n setOpen(false)} />\n ) : (\n setOpen(true)} />\n )}\n
\n
\n \n {vanplan.containers &&\n vanplan.containers.items.length > 0 &&\n vanplan.containers.items\n .sort((a, b) => (a?.order ?? 999) - (b?.order ?? 999))\n .map((container) => (\n \n \n \n {container?.shipCompleted ? (\n \n 済\n \n ) : (\n \n 未\n \n )}\n \n \n \n \n ))}\n \n \n );\n};\n\ninterface Props {\n toggleDrawer: () => void;\n}\n\nconst VanplanItems = ({ toggleDrawer }: Props) => {\n const [open, setOpen] = useState(false);\n const [currentPage, setCurrentPage] = useState(\"vanplans\");\n const router = useRouter();\n const { project } = useProject();\n const { vanplans, loading } = useVanplans();\n\n const { query } = router;\n\n useEffect(() => {\n if (!query.vanplanId && !query.containerId) {\n setCurrentPage(query.page as string);\n } else if (!!query.vanplanId && query.page === \"vanplans\") {\n setCurrentPage(\"\");\n setOpen(true);\n } else if (!!query.vanplanId && !!query) {\n setCurrentPage(\"\");\n setOpen(true);\n } else {\n setCurrentPage(\"\");\n }\n }, [query, router.isReady, vanplans]);\n\n useEffect(() => {\n if (router.isReady) {\n if (query.containerId) {\n setCurrentPage(`${query.vanplanId}-${query.containerId}`);\n } else if (query.vanplanId) {\n setCurrentPage(query.vanplanId as string);\n } else {\n setCurrentPage(\"\");\n }\n }\n }, [router.isReady, query.vanplanId, query.containerId]);\n\n if (!project || !vanplans) return null;\n\n const handleClick = () => {\n toggleDrawer();\n router.push(`/projects/${project.id}?page=vanplans`);\n };\n\n return (\n <>\n
\n \n \n \n \n \n \n
\n {open ? (\n setOpen(false)} />\n ) : (\n setOpen(true)} />\n )}\n
\n
\n \n \n {loading && vanplans.length === 0 && }\n {vanplans.map((vanplan) => (\n \n ))}\n \n \n \n );\n};\n\nexport default VanplanItems;\n","import ListItemButton from \"@mui/material/ListItemButton\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport ListSubheader from \"@mui/material/ListSubheader\";\nimport InfoIcon from \"@mui/icons-material/InfoOutlined\";\nimport PhotoIcon from \"@mui/icons-material/PhotoOutlined\";\nimport FolderIcon from \"@mui/icons-material/FolderOutlined\";\nimport SummarizeIcon from \"@mui/icons-material/SummarizeOutlined\";\nimport EventIcon from \"@mui/icons-material/EventOutlined\";\nimport SettingsIcon from \"@mui/icons-material/SettingsOutlined\";\nimport Link from \"next/link\";\nimport { useRouter } from \"next/router\";\nimport { useEffect, useState } from \"react\";\n\nimport QuoteItems from \"./QuoteItems\";\nimport PackProductItems from \"./PackProductItems\";\nimport NonPackProductItems from \"./NonPackProductItems\";\nimport InvoiceItems from \"./InvoiceItems\";\nimport VanplanItems from \"./vanplanItems\";\n\nimport { useProject } from \"contexts/project\";\nimport { useAuth } from \"contexts/auth\";\nimport { useTenant } from \"contexts/tenant\";\n\ninterface MenuListProps {\n toggleDrawer: () => void;\n}\n\nexport const MainListItems = ({ toggleDrawer }: MenuListProps) => {\n const { project } = useProject();\n const [currentPage, setCurrentPage] = useState(\"project\");\n const { permissions } = useAuth();\n const router = useRouter();\n\n const { query } = router;\n\n useEffect(() => {\n if (!query.page) return setCurrentPage(\"project\");\n setCurrentPage(query.page as string);\n }, [query]);\n\n if (!project) return
;\n\n return (\n <>\n \n \n \n \n \n \n \n \n {permissions.ProjectPhoto.canRead && (\n \n \n \n \n \n \n \n \n )}\n {permissions.ProjectFile.canRead && (\n \n \n \n \n \n \n \n \n )}\n {permissions.ProjectReport.canRead && (\n \n \n \n \n \n \n \n \n )}\n \n );\n};\n\nexport const SecondaryListItems = ({ toggleDrawer }: MenuListProps) => {\n const { project } = useProject();\n const { tenant } = useTenant();\n const [currentPage, setCurrentPage] = useState(\"project\");\n const { permissions } = useAuth();\n const router = useRouter();\n\n const { query } = router;\n\n useEffect(() => {\n if (!!query.quoteId) return setCurrentPage(query.quoteId as string);\n if (!!query.productId) return setCurrentPage(query.productId as string);\n setCurrentPage(query.page as string);\n }, [query]);\n\n if (!project) return
;\n\n return (\n <>\n \n データ入力\n \n {permissions.ProjectSchedule.canRead && (\n \n \n \n \n \n \n \n \n )}\n {permissions.ProjectQuote.canRead && (\n \n )}\n {permissions.ProjectProduct.canRead && (\n <>\n {project.type === \"OTHER\" ? (\n \n ) : (\n \n )}\n \n )}\n {permissions.ProjectVanplan.canRead &&\n tenant?.enableVanplan &&\n project.type !== \"OTHER\" && (\n \n )}\n {permissions.ProjectInvoice.canRead && (\n \n )}\n {permissions.Project.canWrite && (\n \n \n \n \n \n \n \n \n )}\n \n );\n};\n","import Drawer from \"@mui/material/Drawer\";\nimport Toolbar from \"@mui/material/Toolbar\";\nimport List from \"@mui/material/List\";\nimport Divider from \"@mui/material/Divider\";\nimport Box from \"@mui/material/Box\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Typography from \"@mui/material/Typography\";\nimport ChevronLeftIcon from \"@mui/icons-material/ChevronLeft\";\nimport MenuIcon from \"@mui/icons-material/Menu\";\nimport { useState } from \"react\";\nimport { Tooltip } from \"@mui/material\";\n\nimport { MainListItems, SecondaryListItems } from \"./NavItems\";\n\nimport { useProject } from \"contexts/project\";\n\ninterface NavigationProps {\n open?: boolean;\n toggleDrawer: () => void;\n drawerWidth: number;\n}\n\nexport function ProjectNavs({\n open,\n toggleDrawer,\n drawerWidth,\n}: NavigationProps) {\n const { project } = useProject();\n const [openDrawer, setOpenDrawer] = useState(true);\n const handleDrawerOpen = () => {\n setOpenDrawer(true);\n };\n const handleDrawerClose = () => {\n setOpenDrawer(false);\n };\n return (\n \n \n \n \n \n {project?.name}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {project?.name}\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n","export * from \"./HomeNavs\";\nexport * from \"./ProjectNavs\";\n","import { ReactNode, useState } from \"react\";\nimport { createTheme, ThemeProvider } from \"@mui/material/styles\";\nimport CssBaseline from \"@mui/material/CssBaseline\";\nimport Box from \"@mui/material/Box\";\nimport Toolbar from \"@mui/material/Toolbar\";\nimport { jaJP as gridJaJP } from \"@mui/x-data-grid/locales\";\nimport { jaJP as pickerJaJP } from \"@mui/x-date-pickers\";\nimport { jaJP as coreJaJP } from \"@mui/material/locale\";\n\nimport {\n HomeAppBar,\n AdminAppBar,\n ProjectAppBar,\n ExternalProjectAppBar,\n} from \"./AppBar\";\n\nimport { HomeNavs, ProjectNavs } from \"layouts/Navigation\";\nimport { useExternalShareInfo } from \"contexts/externalShareInfo\";\n\ninterface LayoutProps {\n title?: string;\n children: ReactNode | ReactNode[];\n}\n\nconst mdTheme = createTheme(\n {\n palette: {\n primary: {\n main: \"#104470\",\n contrastText: \"#fff\",\n },\n },\n breakpoints: {\n values: {\n xs: 0,\n sm: 640,\n md: 1024,\n lg: 1200,\n xl: 1536,\n },\n },\n },\n gridJaJP,\n pickerJaJP,\n coreJaJP\n);\n\nconst boxStyle = {\n backgroundColor: (theme: any) =>\n theme.palette.mode === \"light\"\n ? theme.palette.grey[100]\n : theme.palette.grey[900],\n height: \"100vh\",\n overflowY: \"scroll\",\n width: \"100%\",\n};\n\nexport function HomeLayout({ children }: LayoutProps) {\n const [open, setOpen] = useState(false);\n const toggleDrawer = () => {\n setOpen(!open);\n };\n\n return (\n \n \n \n \n \n \n \n {children}\n \n \n \n );\n}\n\nexport function AdminLayout({ title, children }: LayoutProps) {\n const [open, setOpen] = useState(false);\n const toggleDrawer = () => {\n setOpen(!open);\n };\n\n return (\n \n \n \n \n \n \n \n {children}\n \n \n \n );\n}\n\nexport function ProjectLayout({ children }: LayoutProps) {\n const [open, setOpen] = useState(false);\n const { isExternalLogin } = useExternalShareInfo();\n const toggleDrawer = () => {\n setOpen(!open);\n };\n\n const drawerWidth = 260;\n\n return (\n \n \n \n {isExternalLogin ? (\n \n ) : (\n <>\n \n \n \n )}\n \n
\n \n
\n
{children}
\n
\n
\n
\n );\n}\n","import { extractElementValue } from \"./extract\";\nimport { Bom, ComponentBom, DecorationBom } from \"./update\";\n\nimport * as Z1402 from \"utils/jis/combinationSign/Z1402\";\nimport * as Z1403 from \"utils/jis/combinationSign/Z1403\";\nimport * as Z1410Level1 from \"utils/jis/combinationSign/Z1410Level1\";\nimport * as Z1410Level2 from \"utils/jis/combinationSign/Z1410Level2\";\nimport * as Z1410Level3 from \"utils/jis/combinationSign/Z1410Level3\";\nimport * as Z1410Level4 from \"utils/jis/combinationSign/Z1410Level4\";\nimport * as beamSupportMaterial from \"utils/jis/beamSupportMaterial\";\nimport * as beamMaterial from \"utils/jis/beamMaterial\";\nimport {\n Element,\n Material,\n PackageType,\n Product,\n QuoteProduct,\n MaterialType,\n} from \"API\";\nimport { calcM3 } from \"utils/product\";\n\n/**\n * Extracts slug from variables in expression\n * @param {string} variable i.e. '\\@\\[長さ](productLength)'\n * @returns {string} i.e. 'productLength'\n */\nconst extractSlug = (variable: string): string =>\n variable.replace(/@\\[(.*?)]\\(/g, \"\").replace(/\\)/g, \"\");\n\n/**\n * Extracts id from materials in expression\n * @param {string} variable i.e. '#[薫蒸木材 チリ松 120x120](8acc8f8e-e01c-4aa2-b4df-dbbf4ee224ab)'\n * @returns {string} i.e. '8acc8f8e-e01c-4aa2-b4df-dbbf4ee224ab'\n */\nconst extractId = (variable: string): string =>\n variable.replace(/#\\[(.*?)]\\(/g, \"\").replace(/\\)/g, \"\");\n\n/**\n * Extracts variables within the expression, and returns if it exists in slugs\n * @param {string} expr expression in cell i.e. '= \\@\\[長さ](productLength) + 100'\n * @param {string} slugs all avaialble slugs i.e. ['productLength', 'productWidth', ...]\n * @returns {string[]} variables(slugs) extracted from expression\n */\nconst extractVariables = (expr: string, slugs: string[]): string[] | null => {\n expr = expr.replace(/[!=&|<>]/g, \" + \");\n expr = expr.replace(/if\\s/gi, \" + \");\n expr = expr.replace(/\\selse\\s/gi, \" + \");\n // expr = expr.replace(/Math.+?\\(*\\)/gi, ' + ');\n const exprs = expr.split(/[+\\-*/%,]/);\n\n const variables = exprs.reduce((r: any, e: any) => {\n const matches = e.match(/@\\[(.*?)]\\([.\\w]+\\)/g);\n if (matches) r.push(matches[0]);\n return r;\n }, []);\n\n if (!variables) return null;\n // check if the variable is available in slugs\n if (variables.filter((v: any) => !slugs.includes(extractSlug(v))).length > 0)\n return null;\n\n return variables;\n};\n\n/**\n * Extracts material ids within the expression\n * @param {string} expr expression in cell i.e. '= #[薫蒸木材 チリ松 120x120](8acc8f8e-e01c-4aa2-b4df-dbbf4ee224ab)'\n * @returns {string[]} material ids extracted from expression\n */\nconst extractMaterials = (expr: string): string[] => {\n expr = expr.replace(/[!=&|<>]/g, \" + \");\n expr = expr.replace(/if/gi, \" + \");\n expr = expr.replace(/else/gi, \" + \");\n const exprs = expr.split(/[\\s}][+\\-*/%][\\s{]/);\n const materials = exprs.reduce((r: any, e: any) => {\n const matches = e.match(/#\\[(.*?)]\\([\\s\\S]+\\)/g);\n if (matches) r.push({ var: matches[0], id: extractId(matches[0]) });\n return r;\n }, []);\n if (!materials) return [];\n\n return materials;\n};\n\n/**\n * Calculates element value based on expression\n * @param {object} elements { slug: element[] }\n * @param {object} element target element data with expression\n * @param {string[]} slugs all available slugs\n * @param {object[]} result { slug: value }[] - results from previous calculation\n * @param {function} materialOverwrite overwrite mateiral dimensions to elements\n * @returns {object[]} { slug: value }[] - appends new slug-value pair to previous result, returns null as value if unapplicable\n */\nconst calculateValue = (\n elements: any,\n result: any,\n element: any,\n slugs: any,\n materialOverwrite: any,\n materials: any,\n species: any,\n mainSpeciesId: any,\n mainSpeciesEdgeMPa: any,\n mainSpeciesFaceMPa: any\n) => {\n const { slug, expr } = element;\n const vars = extractVariables(expr, slugs);\n\n if (!vars) return { ...result, [slug]: null };\n\n // create new expr with value inside\n let newExpr = expr.replace(\"=\", \"\").replace(\"materialValue\", \"\");\n vars.forEach((variable: any) => {\n const vSlug = extractSlug(variable);\n const varEl = flattenElements(elements).filter(\n (e: any) => e.slug === vSlug\n )[0];\n if (!(vSlug in result)) {\n result = extractValues(\n elements,\n result,\n varEl,\n slugs,\n materialOverwrite,\n materials,\n species,\n mainSpeciesId,\n mainSpeciesEdgeMPa,\n mainSpeciesFaceMPa\n );\n }\n if (varEl.type === \"string\") {\n newExpr = newExpr.replace(variable, `'${result[vSlug]}'`);\n } else {\n newExpr = newExpr.replace(variable, result[vSlug]);\n }\n });\n\n // materials\n const extMaterials = extractMaterials(expr);\n extMaterials.forEach((m: any) => {\n newExpr = newExpr.replace(m.var, `'${m.id}'`);\n });\n\n try {\n // evalで使う可能性があるので定義しておく\n const Z1402calcCombinationSign = Z1402.calcCombinationSign;\n const Z1403calcCombinationSign = Z1403.calcCombinationSign;\n const Z1410Level1calcCombinationSign = Z1410Level1.calcCombinationSign;\n const Z1410Level2calcCombinationSign = Z1410Level2.calcCombinationSign;\n const Z1410Level3calcCombinationSign = Z1410Level3.calcCombinationSign;\n const Z1410Level4calcCombinationSign = Z1410Level4.calcCombinationSign;\n const JISBeamSupportMaterial = beamSupportMaterial.JISBeamSupportMaterial;\n const JISBeamMaterial = beamMaterial.JISBeamMaterial;\n const JISBeamEdge = beamMaterial.JISBeamEdge;\n // eslint-disable-next-line no-eval\n const newVal = eval(newExpr);\n if (element.type === \"string\" && slug.includes(\"materialId\")) {\n //* update elements from material\n materialOverwrite(newVal, element);\n }\n // eslint-disable-next-line valid-typeof\n result[slug] = newVal;\n // result[slug] = typeof newVal === ('number' || 'string') ? newVal : null;\n } catch (err) {\n // ReferenceErrorだったらvalueを入れてあげる\n if (err instanceof ReferenceError) {\n result[slug] = element?.value;\n } else {\n result[slug] = null;\n }\n }\n\n return result;\n};\n\n/**\n * Extract element value when expression is null\n * @param {object} elements { slug: element[] }\n * @param {object} element target element data with expression\n * @param {string[]} slugs all available slugs\n * @param {object[]} result { slug: value }[] results from previous calculation\n * @param {function} materialOverwrite overwrite mateiral dimensions to elements\n * @returns {object[]} { slug: value }[], appends new slug-value pair to previous result, returns null as value if unapplicable\n */\nconst extractValues = (\n elements: any,\n result: any,\n element: any,\n slugs: any,\n materialOverwrite: any,\n materials: any,\n species: any,\n mainSpeciesId: any,\n mainSpeciesEdgeMPa: any,\n mainSpeciesFaceMPa: any\n) => {\n const { slug, expr, value, overwriteValue } = element;\n\n if ((!expr && value) || overwriteValue !== null) {\n result[slug] = value;\n } else if (!expr) {\n result[slug] = null;\n } else {\n result = calculateValue(\n elements,\n result,\n element,\n slugs,\n materialOverwrite,\n materials,\n species,\n mainSpeciesId,\n mainSpeciesEdgeMPa,\n mainSpeciesFaceMPa\n );\n }\n\n return result;\n};\n\n/**\n * flatten slug-elements object into elements array\n * @param {object} elements { slug: element[] }\n * @returns {object[]} element[] - flattened array of elements\n */\nexport const flattenElements = (elements: any) => {\n let flattened: any = [];\n\n Object.keys(elements).forEach((key) => {\n flattened = flattened.concat(elements[key]);\n });\n\n return flattened;\n};\n\n/**\n * @typedef {object} AllElements\n * @property {object} elements { slug: elements[] } all elements\n * @property {string[]} slugs all available slugs\n */\nconst getAllElements = (\n product: any,\n cmps: any,\n interiors: any,\n exteriors: any\n) => {\n const elements: any = {};\n elements.product = Object.values(product).map((x) => x);\n Object.entries(cmps).forEach(([id, el]: any) => {\n elements[id] = Object.values(el).map((x) => x);\n });\n Object.entries(interiors).forEach(([id, el]: any) => {\n elements[id] = Object.values(el).map((x) => x);\n });\n Object.entries(exteriors).forEach(([id, el]: any) => {\n elements[id] = Object.values(el).map((x) => x);\n });\n return elements;\n};\n\n/**\n * Gets all elements from package and components form methods\n * @param {object} product package form methods\n * @param {object} cmps { slug: component form methods }\n * @returns {AllElements} { elements, slugs } - all available elements and slugs\n */\nconst getElements = (\n product: any,\n cmps: any,\n interiors: any,\n exteriors: any\n) => {\n const elements = getAllElements(product, cmps, interiors, exteriors);\n const slugs = Object.values(elements).reduce((r: any, c: any) => {\n r = r.concat(c.map((element: any) => element.slug));\n return r;\n }, []);\n return { elements, slugs };\n};\n\n/**\n * Set all updated values for all package's & components' elements\n * @param {object[]} variables { slug: value }\n * @param {object} elements { slug: element[] }\n * @param {object} product package form methods\n * @param {object} cmps { slug: component form methods }\n */\nconst setElements = (\n variables: any,\n elements: any,\n cmps: any,\n setProductElements: any,\n setCmpElements: any,\n interiorElements: any,\n setInteriorElements: any,\n exteriorElements: any,\n setExteriorElements: any\n) => {\n //* loop through product elements\n const newProduct = elements.product.reduce((r: any, element: any) => {\n // product.setValue(`elements[${idx}].value`, variables[element.slug]);\n r[element.slug] = { ...element, value: variables[element.slug] };\n return r;\n }, {});\n setProductElements(newProduct);\n //* loop through all components elements\n const newCmps = Object.entries(cmps).reduce(\n (result: any, [id, els]: [id: any, els: any]) => {\n result[id] = Object.values(els).reduce((r: any, el: any) => {\n r[el.slug] = { ...el, value: variables[el.slug] };\n return r;\n }, {});\n return result;\n },\n {}\n );\n setCmpElements(newCmps);\n\n const newInteriors = Object.entries(interiorElements).reduce(\n (result: any, [id, els]: [id: any, els: any]) => {\n result[id] = Object.values(els).reduce((r: any, el: any) => {\n r[el.slug] = { ...el, value: variables[el.slug] };\n return r;\n }, {});\n return result;\n },\n {}\n );\n setInteriorElements(newInteriors);\n\n const newExteriors = Object.entries(exteriorElements).reduce(\n (result: any, [id, els]: [id: any, els: any]) => {\n result[id] = Object.values(els).reduce((r: any, el: any) => {\n r[el.slug] = { ...el, value: variables[el.slug] };\n return r;\n }, {});\n return result;\n },\n {}\n );\n setExteriorElements(newExteriors);\n};\n\n/**\n * Update all elements which has a bining material dimension, except overwritten values\n * @param {object} material material information with dimension\n * @param {string} slug element's slug with component slug attached\n * @param {function overwriteElementValue(slug, value) {\n\n }} overwriteElementValue function that updates specific element\n */\nconst overwriteElementsByMaterial = (\n material: any,\n slug: any,\n overwriteElementValue: any\n) => {\n const componentSlug = slug.split(\".\")[0];\n if (!material) {\n overwriteElementValue(`${componentSlug}.length`, null);\n overwriteElementValue(`${componentSlug}.lengthNominal`, null);\n overwriteElementValue(`${componentSlug}.width`, null);\n overwriteElementValue(`${componentSlug}.widthNominal`, null);\n overwriteElementValue(`${componentSlug}.height`, null);\n overwriteElementValue(`${componentSlug}.heightNominal`, null);\n }\n if (material) {\n // materialIdを上書き\n // 基本的には変更にはならないが、JISBeamMaterialを使っている場合は発生する\n if (material.id) {\n overwriteElementValue(`${componentSlug}.materialId`, material.id);\n }\n if (material.lengthLocked) {\n // find index of element and update\n overwriteElementValue(`${componentSlug}.length`, material.length);\n overwriteElementValue(\n `${componentSlug}.lengthNominal`,\n material.lengthNominal\n );\n } else {\n overwriteElementValue(`${componentSlug}.length`, null);\n overwriteElementValue(`${componentSlug}.lengthNominal`, null);\n }\n if (material.widthLocked) {\n overwriteElementValue(`${componentSlug}.width`, material.width);\n overwriteElementValue(\n `${componentSlug}.widthNominal`,\n material.widthNominal\n );\n } else {\n overwriteElementValue(`${componentSlug}.width`, null);\n overwriteElementValue(`${componentSlug}.widthNominal`, null);\n }\n if (material.heightLocked) {\n overwriteElementValue(`${componentSlug}.height`, material.height);\n overwriteElementValue(\n `${componentSlug}.heightNominal`,\n material.heightNominal\n );\n } else {\n overwriteElementValue(`${componentSlug}.height`, null);\n overwriteElementValue(`${componentSlug}.heightNominal`, null);\n }\n }\n};\n\n/**\n * Update all elements with calculated values from expression\n * @param {object} productElements package form methods\n * @param {object} cmpElements { slug: component form methods }\n */\nexport const calculateElements = (\n productElements: any,\n cmpElements: any,\n setProductElements: any,\n setCmpElements: any,\n materials: any,\n interiorElements: any,\n exteriorElements: any,\n setInteriorElements: any,\n setExteriorElements: any,\n bomData: any,\n species: any,\n mainSpeciesId: any,\n mainSpeciesEdgeMPa: any,\n mainSpeciesFaceMPa: any\n) => {\n const { elements, slugs } = getElements(\n productElements,\n cmpElements,\n interiorElements,\n exteriorElements\n );\n // edgeの以前の値\n const variablesForEdgeBefore: any = {};\n for (const component of bomData?.components) {\n const edgeValue = component?.elements?.edge?.value ?? 0;\n variablesForEdgeBefore[`${component.slug}.edge`] =\n parseInt(edgeValue, 10) || 0;\n }\n // valueはmaterialの値\n const overwriteElementValue = (slug: any, value: any) => {\n let idx = flatElements.findIndex((x: any) => x.slug === slug);\n if (idx === -1) return;\n\n // materialIdはvalueの上書きのみ。\n // 基本的にMaterialIDの上書きは入力として行われるので、この処理はいらない(入力ではない場合も後でvariablesで上書きするから問題ない)。\n // ただ、materialIdに式が入っていて、それでサイズ関連が変わる場合に反映されないことがあるので、ここで更新する必要がある\n if (slug.endsWith(\".materialId\")) {\n flatElements[idx].value = value;\n return;\n }\n\n // width, height, widthNominal, heightNominalは\n // 1. 今反転はしないけど、すでに反転状態の場合はslugを反転させていidxを更新する(資材変更などの考慮)\n if (slug.includes(\".width\") || slug.includes(\".height\")) {\n // 同Elementのedgeを持ってくる\n const edgeSlug = slug.split(\".\")[0] + \".edge\";\n const edgeIdx = flatElements.findIndex((x: any) => x.slug === edgeSlug);\n if (edgeIdx !== -1) {\n const beforeValue = variablesForEdgeBefore[edgeSlug];\n const afterValue =\n parseInt(flatElements[edgeIdx].value ?? \"0\", 10) ?? 0;\n // 今反転はしないけど、すでに反転状態の場合は対象のslugを反転させる\n if (beforeValue === afterValue && afterValue !== 0) {\n // 反転する\n if (slug.includes(\".width\")) {\n slug = slug.replace(\".width\", \".height\");\n idx = flatElements.findIndex((x: any) => x.slug === slug);\n } else if (slug.includes(\".height\")) {\n slug = slug.replace(\".height\", \".width\");\n idx = flatElements.findIndex((x: any) => x.slug === slug);\n }\n }\n }\n }\n if (idx === -1) return;\n\n // if material value is null, and no overwriteValue, append null\n if (\n value === null &&\n !flatElements[idx].overwriteValue &&\n flatElements[idx].expr\n ) {\n flatElements[idx].value = null;\n if (!flatElements[idx].expr) return;\n // if material value appended to expression, clear expression\n const exprIsMaterial = flatElements[idx].expr.includes(\"materialValue\");\n if (exprIsMaterial) flatElements[idx].expr = \"\";\n }\n // if material value is null and overwrite exists, return\n if (!value) return;\n // add material value as expression\n flatElements[idx].expr = `= materialValue(${value})`;\n // if current value is null, append material value\n if (flatElements[idx].value === null)\n flatElements[idx].value = value ? value.toString() : value;\n // if (\n // flatElements[idx].value != value &&\n //! !flatElements[idx].overwriteValue\n // ) {\n // if value not the same as material value, and no overwriteValue, add overwriteValue\n // flatElements[idx].overwriteValue = value ? value.toString() : value;\n // }\n if (flatElements[idx].value == value) {\n // if value is the same as material value, remove overwriteValue\n flatElements[idx].overwriteValue = null;\n flatElements[idx].value = value ? value.toString() : value;\n }\n };\n\n let flatElements = flattenElements(elements);\n\n // exprを利用していない部材のmaterialIdを更新\n (slugs as any).forEach((slug: any) => {\n if (!slug.includes(\"materialId\")) return;\n const materialId = flatElements.filter((x: any) => x.slug === slug)[0]\n .value;\n const material = materials.filter((x: any) => x.id === materialId)[0];\n overwriteElementsByMaterial(material, slug, overwriteElementValue);\n });\n\n const materialOverwrite = (materialId: any, element: any) => {\n const material = materials.filter((x: any) => x.id === materialId)[0];\n overwriteElementsByMaterial(material, element.slug, overwriteElementValue);\n };\n\n // ここから各elementの評価を行う、順序は以下\n // 1. materialId(materialIdに式がある場合先に評価する必要がある)\n // 2. JISBeamMaterial(Edgeの設定とMaterialの設定が同時に起きた場合はMaterialを先に評価する必要があるため)\n // 3. edge(必要ならこの後の計算で巾高反転した値を使いたいため)\n // 4. panelM2とwoodM3を使っていない式(panelM2, woodM3の計算のために必要なものを先に計算)\n // 5. panelM2とwoodM3を使っている式\n\n const variablesForMaterialIds = flatElements.reduce(\n (result: any, element: any) => {\n if (!element.slug?.includes(\".materialId\")) {\n return result;\n }\n return extractValues(\n elements,\n result,\n element,\n slugs,\n materialOverwrite,\n materials,\n species,\n mainSpeciesId,\n mainSpeciesEdgeMPa,\n mainSpeciesFaceMPa\n );\n },\n {}\n );\n\n // JISBeamMaterialを使っているelementの評価を先に行う\n const variablesForJisBeamMaterial = flatElements.reduce(\n (result: any, element: any) => {\n if (!element.expr?.includes(\"JISBeamMaterial\")) {\n return result;\n }\n return extractValues(\n elements,\n result,\n element,\n slugs,\n materialOverwrite,\n materials,\n species,\n mainSpeciesId,\n mainSpeciesEdgeMPa,\n mainSpeciesFaceMPa\n );\n },\n {}\n );\n\n // edgeの評価を先に行う\n const variablesForEdge = flatElements.reduce((result: any, element: any) => {\n if (\n !element.slug?.endsWith(\".edge\") ||\n element.expr?.includes(\"JISBeamMaterial\")\n ) {\n return result;\n }\n return extractValues(\n elements,\n result,\n element,\n slugs,\n materialOverwrite,\n materials,\n species,\n mainSpeciesId,\n mainSpeciesEdgeMPa,\n mainSpeciesFaceMPa\n );\n }, {});\n\n // edgeが0→0以外 or 0以外→0になる部材については、該当するmaterialを参考に巾と高さを反転する\n // flatElementsの反転\n flatElements = invertFlattenElements(\n flatElements,\n materials,\n variablesForEdge,\n variablesForEdgeBefore\n );\n\n // elementsを反転\n const invElements = invertElementMap(\n elements,\n materials,\n variablesForEdge,\n variablesForEdgeBefore\n );\n\n // component関連でこのあと参照する変数(cmpElements)を反転\n const invCmpElements = invertCmpElement(\n cmpElements,\n materials,\n variablesForEdge,\n variablesForEdgeBefore\n );\n\n //* map values to slugs\n // まずpanelM2とwoodM3を使っていない式を計算\n const variablesFirst = flatElements.reduce((result: any, element: any) => {\n if (\n element.expr?.includes(\"@[panelM2]\") ||\n element.expr?.includes(\"@[woodM3]\") ||\n element.slug?.endsWith(\".edge\") ||\n element.expr?.includes(\"JISBeamMaterial\")\n ) {\n return result;\n }\n return extractValues(\n invElements,\n result,\n element,\n slugs,\n materialOverwrite,\n materials,\n species,\n mainSpeciesId,\n mainSpeciesEdgeMPa,\n mainSpeciesFaceMPa\n );\n }, {});\n // その結果からcomponentだけ持ってくる\n const newCmps = Object.entries(invCmpElements).reduce(\n (result: any, [id, els]: [id: any, els: any]) => {\n result.push({\n id: id,\n elements: Object.values(els).map((el: any) => {\n return { ...el, value: variablesFirst[el.slug] };\n }),\n });\n return result;\n },\n []\n );\n // ↑を使ってwoodM3とpanelM2を計算\n const woodM3 = calculateWoodM3(newCmps);\n const panelM2 = calculatePanelM2(newCmps);\n\n // 計算時にpanelM2とwoodM3を含める必要があるので一時的に追加\n invElements.product.push({\n cutting: null,\n description: null,\n expr: null,\n name: \"panelM2\",\n overwriteValue: null,\n slug: \"panelM2\",\n type: \"number\",\n value: panelM2,\n });\n invElements.product.push({\n cutting: null,\n description: null,\n expr: null,\n name: \"woodM3\",\n overwriteValue: null,\n slug: \"woodM3\",\n type: \"number\",\n value: woodM3,\n });\n (slugs as any).push(\"woodM3\");\n (slugs as any).push(\"panelM2\");\n // panelM2とwoodM3を使っている式を計算\n const variables = flatElements.reduce((result: any, element: any) => {\n if (\n (!element.expr?.includes(\"@[panelM2]\") &&\n !element.expr?.includes(\"@[woodM3]\")) ||\n element.slug?.endsWith(\".edge\") ||\n element.expr?.includes(\"JISBeamMaterial\")\n ) {\n return result;\n }\n return extractValues(\n invElements,\n result,\n element,\n slugs,\n materialOverwrite,\n materials,\n species,\n mainSpeciesId,\n mainSpeciesEdgeMPa,\n mainSpeciesFaceMPa\n );\n }, {});\n delete variables.panelM2;\n delete variables.woodM3;\n const newElements = {\n ...invElements,\n product: invElements.product.filter(\n (elem: any) => elem.slug !== \"panelM2\" && elem.slug !== \"woodM3\"\n ),\n };\n\n //* set value for package and components\n setElements(\n {\n ...variablesForMaterialIds,\n ...variablesForJisBeamMaterial,\n ...variablesForEdge,\n ...variablesFirst,\n ...variables,\n },\n newElements,\n invCmpElements,\n setProductElements,\n setCmpElements,\n interiorElements,\n setInteriorElements,\n exteriorElements,\n setExteriorElements\n );\n};\n\n// Cost計算を行う関数\n// input:\n// - product: Product\n// - bom: ProductBom\n// - materials: Material[]\n// return:\n// - woodenTotal(木材合計): product.material === \"熱処理木材\" で bomのcomponentの中で資材分類が木材のものの「原価合計(totalCost)」の合計\n// - lvlTotal(LVL合計): product.material === \"LVL\" で bomのcomponentの中で資材分類が木材のものの「原価合計」の合計\n// - plywoodTotal(合板合計): bomのcomponentの中で資材分類が合板のものの「原価合計」の合計\n// - interiorTotal(内装合計): bom.interiorsの「原価合計」の合計\n// - exteriorTotal(外装合計): bom.exteriorsの「原価合計」の合計\n// - otherTotal(その他合計): (未開発)人件費や釘など内外装以外で原価となるものの合計\n// - totalCost(合計): woodenTotal + lvlTotal + plywoodTotal + interiorTotal + exteriorTotal + otherTotal\n// - m3Cost(m3原価): totalCost / (梱包のm3) を小数点以下繰り上げしたもの\nexport type CostType =\n | \"woodenTotal\"\n | \"lvlTotal\"\n | \"plywoodTotal\"\n | \"normalWoodTotal\"\n | \"interiorTotal\"\n | \"exteriorTotal\"\n | \"otherTotal\"\n | \"m3Cost\"\n | \"totalCost\";\n\ntype CostInfo = {\n [K in CostType]: number;\n};\n\nexport const calculateProductCost = (\n product: PackageType | QuoteProduct | Product | null | undefined,\n bom: Bom | null | undefined,\n materials: Material[]\n): CostInfo => {\n if (!product || !bom) {\n return {} as CostInfo;\n }\n\n // plywoodTotal(合板合計)、woodenTotal(木材合計)、lvlTotal(Lvl合計)、normalWoodTotal(普通木材合計)を計算\n let plywoodTotal = 0;\n let woodenTotal = 0;\n let lvlTotal = 0;\n let normalWoodTotal = 0;\n if (bom.components !== undefined) {\n plywoodTotal = _sumComponentsTotalCost(\n bom.components,\n materials,\n \"isPanel\"\n );\n woodenTotal = _sumComponentsTotalCost(bom.components, materials, \"isWood\");\n lvlTotal = _sumComponentsTotalCost(bom.components, materials, \"isLvl\");\n normalWoodTotal = _sumComponentsTotalCost(\n bom.components,\n materials,\n \"isNormalWood\"\n );\n }\n\n // interiorTotal(内装合計)を計算\n let interiorTotal = 0;\n if (bom.interiors !== undefined) {\n interiorTotal = _sumComponentsTotalCost(bom.interiors, materials);\n }\n\n // exteriorTotal(外装合計)を計算\n let exteriorTotal = 0;\n if (bom.exteriors !== undefined) {\n exteriorTotal = _sumComponentsTotalCost(bom.exteriors, materials);\n }\n\n // otherTotal(その他原価)を取得\n let otherTotal = 0;\n if (bom.product !== undefined) {\n otherTotal = parseInt(bom.product.elements?.otherCost?.value ?? \"0\", 10);\n }\n\n // totalCost(合計)を計算\n const totalCost =\n woodenTotal +\n lvlTotal +\n plywoodTotal +\n normalWoodTotal +\n interiorTotal +\n exteriorTotal +\n otherTotal;\n\n // m3Cost(m3原価)を計算\n const m3 = calcM3(\n parseFloat(bom?.product?.elements?.outerLength?.value ?? \"0\") ?? 0,\n parseFloat(bom?.product?.elements?.outerWidth?.value ?? \"0\") ?? 0,\n parseFloat(bom?.product?.elements?.outerHeight?.value ?? \"0\") ?? 0\n );\n const m3Cost = Math.ceil(totalCost / m3);\n\n return {\n woodenTotal: woodenTotal,\n lvlTotal: lvlTotal,\n plywoodTotal: plywoodTotal,\n normalWoodTotal: normalWoodTotal,\n interiorTotal: interiorTotal,\n exteriorTotal: exteriorTotal,\n otherTotal: otherTotal,\n totalCost: totalCost,\n m3Cost: m3Cost,\n };\n};\n\n// components, decorationsに対して、資材分類が指定したのものの「原価合計」の合計を計算する関数\n// materialTypeNameが空だったら全ての資材分類のものを合計する\nconst _sumComponentsTotalCost = (\n components: (ComponentBom | DecorationBom)[],\n materials: Material[],\n materialTypeName: keyof MaterialType | \"\" = \"\"\n): number => {\n return components\n .filter((component) => {\n // componentに該当するmaterialを取得\n const material = materials.find(\n (material) => material.id === component.elements.materialId.value\n );\n // materialなかったらスキップ\n if (material === undefined) return false;\n // materialのmaterialTypeが空だったらスキップ\n if (material.materialType === null || material.materialType === undefined)\n return false;\n\n // 資材分類がmaterialTypeNameのものだけ抽出\n // 空文字だったら全て持ってくる\n return (\n materialTypeName === \"\" || material?.materialType[materialTypeName]\n );\n })\n .reduce((acc, component) => {\n if (\n component.elements === undefined ||\n component.elements === null ||\n component.elements.totalCost === undefined ||\n component.elements.totalCost === null\n )\n return acc;\n const total = parseInt(component.elements.totalCost.value ?? \"0\", 10);\n return acc + (isNaN(total) ? 0 : total);\n }, 0);\n};\n\nexport const calculatePanelM2 = (components: any): number => {\n let panelM2 = 0;\n components.forEach((cpt: any) => {\n const m2 = extractElementValue(cpt.elements, \"m2\");\n panelM2 += m2;\n });\n return Math.round(panelM2 * 100000) / 100000;\n};\n\nexport const calculateWoodM3 = (components: any): number => {\n let woodM3 = 0;\n components.forEach((cpt: any) => {\n const m3 = extractElementValue(cpt.elements, \"m3\");\n woodM3 += m3;\n });\n return Math.round(woodM3 * 100000) / 100000;\n};\n\nexport const calculateGW = (productElements: any, tareWeight: number) => {\n let grossWeight = 0;\n\n const netWeight = extractElementValue(productElements, \"NW\");\n\n // GrossWeight-tareWeight=NetWeight\n grossWeight = parseFloat(netWeight) + tareWeight;\n\n return Math.round(grossWeight * 100000) / 100000;\n};\n\nconst invertCmpElement = (\n cmpElements: any,\n materials: Material[],\n edgeVariables: { [key: string]: number }, // { \"slug.edge\": value }\n edgeVariablesBefore: { [key: string]: number } // { \"slug.edge\": value }\n): any => {\n const cmpOnlyElements: { [key: string]: any[] } = {};\n Object.entries(cmpElements).forEach(([id, el]: any) => {\n cmpOnlyElements[id] = Object.values(el).map((x) => x);\n });\n const invCmpElementsMap = invertElementMap(\n cmpOnlyElements,\n materials,\n edgeVariables,\n edgeVariablesBefore\n );\n const invCmpElements: any = {};\n Object.entries(invCmpElementsMap).forEach(([id, values]: any) => {\n const el: any = {};\n values.forEach((value: any) => {\n el[value.slug] = value;\n });\n invCmpElements[id] = el;\n });\n return invCmpElements;\n};\n\n// elementsでedgeが0以外のものを巾高反転する\nconst invertElementMap = (\n elements: { [key: string]: Element[] },\n materials: Material[],\n edgeVariables: { [key: string]: number }, // { \"slug.edge\": value }\n edgeVariablesBefore: { [key: string]: number } // { \"slug.edge\": value }\n): any => {\n const invertedElements = { ...elements };\n\n // 反転する対象の取得\n const invertComponentSlugs = pickInvertTargets(\n edgeVariables,\n edgeVariablesBefore\n );\n\n // invertComponentSlugsに該当するComponentをMaterialを元に反転\n for (const { slug, reverse } of invertComponentSlugs) {\n // elementsからvalueのslugに`slug`が含まれるvalueを取得する\n let targetKey = \"\";\n let targetElements: Element[] = [];\n for (const [key, element] of Object.entries(elements)) {\n const slugContainElem = element.filter((e) =>\n e.slug.startsWith(`${slug}.`)\n );\n if (slugContainElem && slugContainElem.length > 0) {\n targetKey = key;\n targetElements = element;\n break;\n }\n }\n\n // その中からmaterialId取得\n const materialId = targetElements.find((element) =>\n element.slug?.endsWith(\".materialId\")\n )?.value;\n\n // material持ってくる\n const material = materials.find((material) => material.id === materialId);\n\n if (!material) continue;\n\n // 反転\n const inverted = invertElement(targetElements, material, slug, reverse);\n\n // 今回のtargetKeyを持つ要素をinvertedElementsから排除\n delete invertedElements[targetKey];\n // invertedElementsにinvertedを追加\n invertedElements[targetKey] = inverted;\n }\n\n return invertedElements;\n};\n\n// flattenElementsでedgeが0以外のものを巾高反転する\nconst invertFlattenElements = (\n flattenElements: Element[],\n materials: Material[],\n edgeVariables: { [key: string]: number }, // { \"slug.edge\": value }\n edgeVariablesBefore: { [key: string]: number } // { \"slug.edge\": value }\n): any => {\n let invertedFlattenElements = [...flattenElements];\n\n // 反転する対象の取得\n const invertComponentSlugs = pickInvertTargets(\n edgeVariables,\n edgeVariablesBefore\n );\n\n // invertComponentSlugsに該当するComponentをMaterialを元に反転\n for (const { slug, reverse } of invertComponentSlugs) {\n // 対象のelementを取得\n const elements = flattenElements.filter((element) =>\n element.slug?.startsWith(slug)\n );\n\n // その中からmaterialId取得\n const materialId = elements.find((element) =>\n element.slug?.endsWith(\".materialId\")\n )?.value;\n\n // material持ってくる\n const material = materials.find((material) => material.id === materialId);\n\n if (!material) continue;\n\n // 反転\n const invertedElements = invertElement(elements, material, slug, reverse);\n\n // 今回のslugを含むslugを持つelementをflattenElementsから削除し、invertedElementsを追加\n invertedFlattenElements = invertedFlattenElements.filter(\n (element) => !element.slug?.startsWith(slug)\n );\n invertedFlattenElements.push(...invertedElements);\n }\n\n return invertedFlattenElements;\n};\n\n// 反転処理に回すべきかどうかを判定する関数\nconst pickInvertTargets = (\n edgeVariables: { [key: string]: number | string | null },\n edgeVariablesBefore: { [key: string]: number }\n): { slug: string; reverse: boolean }[] => {\n const invertComponentSlugs = Object.entries(edgeVariables)\n .filter(([slug, value]) => {\n // まずは反転する対象のslugを抽出\n if (!slug.endsWith(\".edge\")) return false;\n const beforeValue = edgeVariablesBefore[slug] ?? 0;\n const afterValue =\n typeof value === \"string\" ? parseInt(value) : value ?? 0;\n // 以前と今回で値が変わっていてどっちかが0だったらtrue(1→0 or 0→1)\n return (\n afterValue !== beforeValue && (afterValue === 0 || beforeValue === 0)\n );\n })\n .map(([slug, value]) => {\n // 抽出したものに対して0→0以外(反転)か、0以外→0(反転の反転)かの情報を付与\n const afterValue =\n typeof value === \"string\" ? parseInt(value) : value ?? 0;\n // 2つ目の値は反転(0→1)してたらfalse、反転の反転(1→0)だったらtrue\n const reverse = afterValue === 0;\n return { slug: slug.split(\".\")[0], reverse };\n });\n return invertComponentSlugs;\n};\n\n// 実際にmaterialの値を元に巾高さを反転する関数\n// materialから該当の部材の情報を取得し、それと現在入力されている値を元に巾高さを反転する\n// reverseがtrueの場合は反転の反転の場合で、この時は↑で使うmaterialの情報を逆にする必要がある\ntype ElementParts = Pick;\nconst invertElement = (\n elements: Element[],\n material: Material,\n slugPrefix: string,\n reverse: boolean // edgeが0->0以外(幅高反転)の時はfalse, 0以外->0(幅高反転の反転)の時はtrue\n): Element[] => {\n let invertedElements = elements;\n // 呼び寸じゃないほう反転\n // 情報取得\n const [width, height] = pickUpElement(elements, material, false, reverse);\n\n // 変更前のもの持っておく\n const beforeWidth = invertedElements.find(\n (i) => i.slug === `${slugPrefix}.width`\n );\n const beforeHeight = invertedElements.find(\n (i) => i.slug === `${slugPrefix}.height`\n );\n if (width && height && beforeWidth && beforeHeight) {\n // 一回排除してから追加する\n invertedElements = invertedElements.filter(\n (i) =>\n i.slug !== `${slugPrefix}.width` && i.slug !== `${slugPrefix}.height`\n );\n // 反転して更新\n invertedElements.push(\n {\n ...beforeWidth,\n value: height.value,\n expr: height.expr,\n overwriteValue: height.overwriteValue,\n },\n {\n ...beforeHeight,\n value: width.value,\n expr: width.expr,\n overwriteValue: width.overwriteValue,\n }\n );\n }\n\n // 呼び寸反転\n const [widthNominal, heightNominal] = pickUpElement(\n elements,\n material,\n true,\n reverse\n );\n const beforeWidthNominal = invertedElements.find(\n (i) => i.slug === `${slugPrefix}.widthNominal`\n );\n const beforeHeightNominal = invertedElements.find(\n (i) => i.slug === `${slugPrefix}.heightNominal`\n );\n if (\n widthNominal &&\n heightNominal &&\n beforeWidthNominal &&\n beforeHeightNominal\n ) {\n invertedElements = invertedElements.filter(\n (i) =>\n i.slug !== `${slugPrefix}.widthNominal` &&\n i.slug !== `${slugPrefix}.heightNominal`\n );\n invertedElements.push(\n {\n ...beforeWidthNominal,\n value: heightNominal.value,\n expr: heightNominal.expr,\n overwriteValue: heightNominal.overwriteValue,\n },\n {\n ...beforeHeightNominal,\n value: widthNominal.value,\n expr: widthNominal.expr,\n overwriteValue: widthNominal.overwriteValue,\n }\n );\n }\n return invertedElements;\n};\n\n// Element群から該当するmaterialのwidthとheightを取り出す関数(もしもElementの値が上書きされていたらそれを使う)\n// isNomialを指定すると呼び寸の方を取得する\n// reverseをtrueに指定すると元とするmaterialのwidthとheightを逆にする(反転後の反転では元とするmaterialのfieldが逆になるため)\nconst pickUpElement = (\n elements: Element[],\n material: Material,\n isNominal: boolean,\n reverse: boolean // これをtrueにするとベースとするMaterialのwidthとheightの情報を逆にする(0→1の時はfalse)\n): [ElementParts | null, ElementParts | null] => {\n const keys: (\"widthNominal\" | \"heightNominal\" | \"width\" | \"height\")[] =\n isNominal ? [\"widthNominal\", \"heightNominal\"] : [\"width\", \"height\"];\n const materialKeys = reverse ? keys.slice().reverse() : keys;\n\n const result: ElementParts[] = [];\n\n for (const key of keys) {\n const materialKey = materialKeys[keys.indexOf(key)];\n let value: ElementParts = {\n value: material[materialKey]?.toString() || null,\n expr: material[materialKey]\n ? `= materialValue(${material[materialKey]})`\n : null,\n overwriteValue: null,\n };\n if (isEditedMaterialValue(elements, key)) {\n const element = elements.find((e) => e.slug.endsWith(`.${key}`));\n if (element) {\n value = {\n value: element.value,\n expr: element.expr,\n overwriteValue: element.overwriteValue,\n };\n }\n }\n result.push(value);\n }\n if (result.length !== 2) {\n return [null, null];\n }\n return [result[0], result[1]];\n};\n\n// targetとしているelementの値がmaterialから更新されたものか判定する\n// 判定基準としては、overwriteValueが存在するか\nconst isEditedMaterialValue = (\n elements: Element[],\n target: \"width\" | \"height\" | \"widthNominal\" | \"heightNominal\"\n): boolean => {\n const key = target;\n const element = elements.find((e) => e.slug.endsWith(`.${key}`));\n if (!element) return false;\n return !!element.overwriteValue;\n};\n","import { ElementInput, Material } from \"API\";\n\nexport function getMaterial(ms: Material[], elements: any) {\n const materialElement = elements.filter((e: any) =>\n e.slug.includes(\"materialId\")\n )[0];\n const material = ms.filter((ms) => ms.id === materialElement.value)[0];\n if (!material) return null;\n return material;\n}\n\nexport function getValue(elements: any, slug: string) {\n const element = elements.filter((e: any) => e.slug.includes(slug))[0];\n if (element.type === \"number\" && isNaN(Number(element.value))) {\n return 0;\n }\n return element.value;\n}\n\n// 初期状態のElementを作成する\n// componentの場合は\nexport function createEmptyElements(\n target: \"component\" | \"decoration\",\n slug: string\n): ElementInput[] {\n const initialElementObj =\n target === \"component\"\n ? initialComponentElementObj\n : initialDecorationElementObj;\n const initialElements = initialElementObj.map((e) => ({\n name: e.name,\n type: e.type,\n slug: `${slug}.${e.slugSuffix}`,\n }));\n return initialElements;\n}\n\n// 既存のcomponent/decorationのelementに指定したものを追加する\nexport function addInitSubElements(\n target: \"component\" | \"decoration\",\n elementsStr: string,\n slug: string,\n addInfo: {\n targetSlugSuffix: string;\n initialValue?: any | null;\n }[]\n): string {\n const targetElements = JSON.parse(elementsStr);\n const initElements = createEmptyElements(target, slug);\n for (const elem of initElements) {\n const slugSuffix = elem.slug.replace(`${slug}.`, \"\");\n const info = addInfo.find((i) => i.targetSlugSuffix === slugSuffix);\n if (!info) continue;\n if (!targetElements[slugSuffix]) {\n targetElements[slugSuffix] = {\n ...elem,\n value: info.initialValue,\n };\n }\n }\n return JSON.stringify(targetElements);\n}\n\n// Area以下のComponentのElementの初期値\nconst initialComponentElementObj: {\n name: string;\n type: string;\n slugSuffix: string;\n}[] = [\n {\n name: \"資材\",\n type: \"string\",\n slugSuffix: \"materialId\",\n },\n {\n name: \"長さ\",\n type: \"number\",\n slugSuffix: \"length\",\n },\n {\n name: \"巾\",\n type: \"number\",\n slugSuffix: \"width\",\n },\n {\n name: \"高さ\",\n type: \"number\",\n slugSuffix: \"height\",\n },\n {\n name: \"数量\",\n type: \"number\",\n slugSuffix: \"quantity\",\n },\n {\n name: \"m2\",\n type: \"number\",\n slugSuffix: \"m2\",\n },\n {\n name: \"m3\",\n type: \"number\",\n slugSuffix: \"m3\",\n },\n {\n name: \"notes\",\n type: \"string\",\n slugSuffix: \"notes\",\n },\n {\n name: \"呼び寸長さ\",\n type: \"number\",\n slugSuffix: \"lengthNominal\",\n },\n {\n name: \"呼び寸巾\",\n type: \"number\",\n slugSuffix: \"widthNominal\",\n },\n {\n name: \"呼び寸高さ\",\n type: \"number\",\n slugSuffix: \"heightNominal\",\n },\n {\n name: \"木端方向\",\n type: \"number\",\n slugSuffix: \"edge\",\n },\n];\n\n// Decorations 以下のComponentのElementの初期値\nconst initialDecorationElementObj: {\n name: string;\n type: string;\n slugSuffix: string;\n}[] = [\n {\n name: \"資材\",\n type: \"string\",\n slugSuffix: \"materialId\",\n },\n {\n name: \"数量\",\n type: \"number\",\n slugSuffix: \"quantity\",\n },\n];\n\n// その値がexprかどうかの判定\nexport const isExpr = (value: string | undefined): boolean => {\n // valueが数値だったら文字列に変換\n if (!isNaN(Number(value))) {\n value = String(value);\n }\n return value?.startsWith(\"=\") ?? false;\n};\n\n// BomのElement以下に指定したslugを追加する(ない場合のみ追加)\n// 初期値を外部から指定できる\nexport const addInitElements = (\n elementsStr: string,\n addInfo: {\n targetSlug: string;\n initialValue?: any | null;\n }[]\n): string => {\n const elements = JSON.parse(elementsStr);\n for (const [\n name,\n { slug, type, initialExpr, initialValue },\n ] of Object.entries(ELEMENT_MAPPING)) {\n const info = addInfo.find((i) => i.targetSlug === slug);\n if (!info) continue;\n if (!elements[slug]) {\n elements[slug] = {\n slug,\n name,\n type,\n value: info.initialValue ?? initialValue ?? null,\n overwriteValue: null,\n expr: initialExpr,\n description: null,\n cutting: null,\n };\n }\n }\n return JSON.stringify(elements);\n};\n\n// generateInitElements はpackageのelementの初期値を生成します\nexport const generateInitElements = () => {\n const elements = Object.entries(ELEMENT_MAPPING).map(\n ([name, { slug, type, initialExpr }]) => ({\n name,\n slug,\n value: null,\n overwriteValue: null,\n type: type,\n cutting: null,\n description: null,\n expr: initialExpr,\n })\n );\n\n return elements;\n};\n\nconst ELEMENT_MAPPING: {\n [key: string]: {\n slug: string;\n type: string;\n initialExpr?: string;\n initialValue?: string;\n };\n} = {\n 内寸長さ: { slug: \"innerLength\", type: \"number\" },\n 内寸巾: { slug: \"innerWidth\", type: \"number\" },\n 内寸高さ: { slug: \"innerHeight\", type: \"number\" },\n 外寸長さ: { slug: \"outerLength\", type: \"number\" },\n 外寸巾: { slug: \"outerWidth\", type: \"number\" },\n 外寸高さ: { slug: \"outerHeight\", type: \"number\" },\n 製品長さ: { slug: \"productLength\", type: \"number\" },\n 製品巾: { slug: \"productWidth\", type: \"number\" },\n 製品高さ: { slug: \"productHeight\", type: \"number\" },\n クリアランス長さ左: { slug: \"clearanceLengthLeft\", type: \"number\" },\n クリアランス長さ右: { slug: \"clearanceLengthRight\", type: \"number\" },\n クリアランス巾左: { slug: \"clearanceWidthLeft\", type: \"number\" },\n クリアランス巾右: { slug: \"clearanceWidthRight\", type: \"number\" },\n クリアランス無負荷材上: { slug: \"clearanceHeightTop\", type: \"number\" },\n クリアランスハリ下: { slug: \"clearanceHeightTopUnderBeam\", type: \"number\" },\n クリアランス天井下: { slug: \"clearanceHeightBottom\", type: \"number\" },\n 上下クリアランス: { slug: \"verticalClearance\", type: \"number\" },\n m3: { slug: \"m3\", type: \"number\" },\n NW: { slug: \"NW\", type: \"number\" },\n 風袋重量: {\n slug: \"tareWeight\",\n type: \"number\",\n initialExpr:\n \"= Math.ceil( @[panelM2](panelM2) * 5.5 + @[woodM3](woodM3) * 550 )\",\n },\n 符号計算用外寸巾: {\n slug: \"signCalcOuterWidth\",\n type: \"number\",\n initialExpr: \"= @[内寸巾](innerWidth) + 150\",\n },\n Z1402用側桟長さ: {\n slug: \"Z1402SideBattenLength\",\n type: \"number\",\n initialExpr: \"= @[側桟長さ](sideBattenLength)\",\n },\n 側支柱の中心間隔: {\n slug: \"sideStrutsCenterSpace\",\n type: \"number\",\n initialExpr: \"= if( 側板巾 >= 1230 ){ 1230 } else { 側板巾 }\",\n },\n Z1402組合せ符号: {\n slug: \"Z1402CombinationSign\",\n type: \"number\",\n initialExpr:\n // 引数の順番はConfluence(https://pax-cloud.atlassian.net/wiki/spaces/PAXDOC/pages/62029825/JIS)と違ってややこしいが、Z1410と合わせた形にしている\n \"= Z1402calcCombinationSign( @[側支柱の中心間隔](sideStrutsCenterSpace) , @[符号計算用外寸巾](signCalcOuterWidth) , @[Z1402用側桟長さ](Z1402SideBattenLength) )\",\n },\n Z1403組合せ符号: {\n slug: \"Z1403CombinationSign\",\n type: \"number\",\n initialExpr:\n \"= Z1403calcCombinationSign( @[NW](NW) , @[側支柱の中心間隔](sideStrutsCenterSpace) , @[符号計算用外寸巾](signCalcOuterWidth) , @[内寸高さ](innerHeight) )\",\n },\n \"Z1410(レベルⅠ)組合せ符号\": {\n slug: \"Z1410Level1CombinationSign\",\n type: \"number\",\n initialExpr:\n \"= Z1410Level1calcCombinationSign( @[NW](NW) , @[側支柱の中心間隔](sideStrutsCenterSpace) , @[符号計算用外寸巾](signCalcOuterWidth) , @[内寸高さ](innerHeight) )\",\n },\n \"Z1410(レベルⅡ)組合せ符号\": {\n slug: \"Z1410Level2CombinationSign\",\n type: \"number\",\n initialExpr:\n \"= Z1410Level2calcCombinationSign( @[NW](NW) , @[側支柱の中心間隔](sideStrutsCenterSpace) , @[符号計算用外寸巾](signCalcOuterWidth) , @[内寸高さ](innerHeight) )\",\n },\n \"Z1410(レベルⅢ)組合せ符号\": {\n slug: \"Z1410Level3CombinationSign\",\n type: \"number\",\n initialExpr:\n \"= Z1410Level3calcCombinationSign( @[NW](NW) , @[側支柱の中心間隔](sideStrutsCenterSpace) , @[符号計算用外寸巾](signCalcOuterWidth) , @[内寸高さ](innerHeight) )\",\n },\n \"Z1410(レベルⅣ)組合せ符号\": {\n slug: \"Z1410Level4CombinationSign\",\n type: \"number\",\n initialExpr:\n \"= Z1410Level4calcCombinationSign( @[NW](NW) , @[側支柱の中心間隔](sideStrutsCenterSpace) , @[符号計算用外寸巾](signCalcOuterWidth) , @[内寸高さ](innerHeight) )\",\n },\n はり受け材質: {\n slug: \"beamSupportSpeciesId\",\n type: \"string\",\n },\n はり材質: {\n slug: \"beamSpeciesId\",\n type: \"string\",\n },\n はりの中心間隔: {\n slug: \"beamCenterSpace\",\n type: \"number\",\n },\n はりの長さ: {\n slug: \"beamLength\",\n type: \"number\",\n },\n 天井荷重: {\n slug: \"ceilingLoad\",\n type: \"number\",\n },\n 枠組み部材選定表: {\n slug: \"frameComponentSelectionTable\",\n type: \"string\",\n },\n 組立: {\n slug: \"assembly\",\n type: \"string\",\n },\n JISはり受け部材: {\n slug: \"JISBeamSupportMaterial\",\n type: \"string\",\n initialExpr:\n \"= JISBeamSupportMaterial( @[天井荷重](ceilingLoad) , @[はりの長さ](beamLength) , @[側支柱の中心間隔](sideStrutsCenterSpace) , @[はり受け材質](beamSupportSpeciesId), mainSpeciesId, mainSpeciesEdgeMPa, materials, species )\",\n },\n JISはり部材: {\n slug: \"JISBeamMaterial\",\n type: \"string\",\n initialExpr:\n \"= JISBeamMaterial( @[天井荷重](ceilingLoad) , @[はりの長さ](beamLength) , @[はりの中心間隔](beamCenterSpace) , @[はり材質](beamSpeciesId), mainSpeciesId, mainSpeciesEdgeMPa, mainSpeciesFaceMPa, materials, species )\",\n },\n はり方向: {\n slug: \"JISBeamEdge\",\n type: \"string\",\n initialExpr:\n \"= JISBeamEdge( @[天井荷重](ceilingLoad) , @[はりの長さ](beamLength) , @[はりの中心間隔](beamCenterSpace) , @[はり材質](beamSpeciesId), mainSpeciesId, mainSpeciesEdgeMPa, mainSpeciesFaceMPa, materials, species )\",\n },\n 負荷床材許容曲げ強さ: { slug: \"flooringMPa\", type: \"number\" },\n 負荷床材支点間の距離: { slug: \"flooringLength\", type: \"number\" },\n 負荷床材スパン1: { slug: \"flooringSpan1\", type: \"number\" },\n 負荷床材スパン2: { slug: \"flooringSpan2\", type: \"number\" },\n 負荷床材巾: { slug: \"flooringWidth\", type: \"number\" },\n 負荷床材高さ: { slug: \"flooringHeight\", type: \"number\" },\n 負荷床材本数: { slug: \"flooringNum\", type: \"number\" },\n その他原価: {\n slug: \"otherCost\",\n type: \"number\",\n },\n};\n","import type { ElementInput } from \"./types\";\n\nimport { Element, Product } from \"API\";\n\ninterface ComponentElementsForCalculation {\n [id: string]: ElementsForCalculation;\n}\n\nexport interface ElementsForCalculation {\n [slug: string]: Element;\n}\n\nexport const extractProductElements = (p: ElementInput | undefined) => {\n if (!p) return {};\n return p.elements?.reduce((r: ElementsForCalculation, c) => {\n r[c.slug] = c;\n return r;\n }, {});\n};\n\nexport const extractComponentsElements = (\n cps: ElementInput[] | undefined | Product[]\n) => {\n if (!cps) return {};\n const results: ComponentElementsForCalculation = {};\n cps?.forEach((component) => {\n const elements = component.elements as Element[];\n results[component.id] = elements.reduce((r: ElementsForCalculation, c) => {\n r[c.slug] = c;\n return r;\n }, {});\n });\n return results;\n};\n\nexport const extractDecorationsElements = (\n deco: ElementInput[] | undefined\n) => {\n if (!deco) return {};\n const results: ComponentElementsForCalculation = {};\n deco?.forEach((d) => {\n const elements = d.elements as Element[];\n results[d.id] = elements.reduce((r: ElementsForCalculation, c) => {\n r[c.slug] = c;\n return r;\n }, {});\n });\n return results;\n};\n\nexport const extractElementValue = (elements: any, targetSlug: string) => {\n if (elements === null) return {};\n return elements.reduce((result: any, e: Element) => {\n let slug = e.slug;\n if (slug.includes(\".\")) {\n slug = slug.split(\".\")[1];\n }\n\n if (slug === targetSlug) result = parseFloat(e.value || \"0\");\n return result;\n }, 0);\n};\n","import { Element } from \"API\";\n\nexport const getStyle = (e: Element) => {\n if (!e) return \"\";\n if (e.overwriteValue && e.overwriteValue !== e.value) {\n return \"w-full text-yellow-500\";\n }\n if (e.expr) {\n return \"w-full text-green-500\";\n }\n return \"\";\n};\n","// 等分布荷重\nexport const EqualDistribution = (\n fb: number,\n l: number,\n l1: number,\n l2: number,\n b: number,\n h: number\n) => {\n if (!l) {\n return 0;\n }\n return (4 * b * h ** 2 * fb) / (3 * l);\n};\n\n// 中央集中荷重\nexport const Centralization = (\n fb: number,\n l: number,\n l1: number,\n l2: number,\n b: number,\n h: number\n) => {\n if (!l) {\n return 0;\n }\n return (2 * b * h ** 2 * fb) / (3 * l);\n};\n\n// 偏荷重(集中)\nexport const Partial = (\n fb: number,\n l: number,\n l1: number,\n l2: number,\n b: number,\n h: number\n) => {\n if (!l1 || !l2 || l1 <= l2) {\n return 0;\n }\n return (b * h ** 2 * l * fb) / (6 * l1 * l2);\n};\n\n// 2点集中荷重\nexport const TwoPointsConcentrated = (\n fb: number,\n l: number,\n l1: number,\n l2: number,\n b: number,\n h: number\n) => {\n if (!l1 || !l2 || l1 < l2) {\n return 0;\n }\n // 等分布荷重で計算した結果の2.5倍までを許容し、それより大きい場合は等分布荷重の2.5倍を返す\n const equal = EqualDistribution(fb, l, l1, l2, b, h) * 2.5; // 等分布\n const twoPoint = (b * h ** 2 * l * fb) / (3 * (l - l1 + l2) * l1); // 2点集中\n\n return equal < twoPoint ? equal : twoPoint;\n};\n\nexport const Calculate: { [key: string]: any } = {\n EqualDistribution: EqualDistribution,\n Centralization: Centralization,\n Partial: Partial,\n TwoPointsConcentrated: TwoPointsConcentrated,\n};\n","export * from \"./update\";\nexport * from \"./style\";\nexport * from \"./parse\";\nexport * from \"./calculateStrength\";\n","import { API } from \"aws-amplify\";\n\nimport { Bom } from \"./update\";\n\nimport { getProductBom } from \"graphql/queries\";\nimport * as mutations from \"graphql/mutations\";\nimport { GraphQLInput } from \"hooks/data\";\n\nexport const getProductBomByProductId = async (\n id: string,\n fromQuoteLine: boolean = false\n): Promise => {\n let bom;\n try {\n bom = (\n await API.graphql({\n query: getProductBom,\n variables: {\n input: { productId: id, fromQuoteLine },\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n })\n ).data.getProductBom;\n } catch (err) {\n // quoteProduct削除(見積梱包初期化後)に、時差で取得できないエラーが発生する\n // そのためmessageにProduct not foundの文字列があったら無視してnullを返す\n if (err instanceof Error) {\n if (err.message.includes(\"Product not found\")) return null;\n }\n // その他のエラーはthrow\n throw err;\n }\n return bom;\n};\n\nexport const updateProductBom = async (input: GraphQLInput) => {\n const product = (\n await API.graphql({\n query: mutations.updateProductBom,\n variables: {\n input,\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n })\n ).data.updateProductBom;\n return product;\n};\n\nexport const updatePackageBom = async (input: GraphQLInput) => {\n const product = (\n await API.graphql({\n query: mutations.updatePackageBom,\n variables: {\n input,\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n })\n ).data.updatePackageBom;\n return product;\n};\n","import type { Bom } from \"./update\";\n\nexport function parseBom(data: any): Bom | undefined {\n if (!data) return undefined;\n const bom = {\n product: {\n ...data.product,\n elements: JSON.parse(data.product?.elements),\n },\n components: data.components.map((component: any) => ({\n ...component,\n elements: JSON.parse(component.elements),\n })),\n interiors:\n data.interiors?.map((interior: any) => ({\n ...interior,\n elements: JSON.parse(interior.elements),\n })) ?? [],\n exteriors:\n data.exteriors?.map((exterior: any) => ({\n ...exterior,\n elements: JSON.parse(exterior.elements),\n })) ?? [],\n } as Bom;\n return bom;\n}\n\n// useBomで取得できるbomをupdateに流し込める形式に変換する\n// getProductBomで取得したbomを流し込みたい場合はparseBomの結果を入れてください\nexport function makeUpdataleBom(bom: Bom): any {\n const updatableBom = {\n product: {\n ...bom?.product,\n elements: Object.values(bom?.product?.elements ?? {}),\n },\n components: bom?.components?.map((component) => ({\n ...component,\n elements: Object.values(component.elements),\n })),\n decorations: [\n ...(bom?.interiors?.map((interior) => ({\n ...interior,\n elements: Object.values(interior.elements),\n })) ?? []),\n ...(bom?.exteriors?.map((exterior) => ({\n ...exterior,\n elements: Object.values(exterior.elements),\n })) ?? []),\n ],\n };\n return updatableBom;\n}\n","import {\n extractProductElements,\n extractComponentsElements,\n extractDecorationsElements,\n} from \"./extract\";\nimport {\n calculateElements,\n calculateGW,\n calculatePanelM2,\n calculateProductCost,\n calculateWoodM3,\n} from \"./calculate\";\nimport { parseBom } from \"./parse\";\nimport { getMaterial, getValue, isExpr } from \"./elements\";\nimport {\n getProductBomByProductId,\n updatePackageBom,\n updateProductBom,\n} from \"./operation\";\n\nimport { Group, Material, Species } from \"API\";\nimport { GraphQLInput } from \"hooks/data\";\nimport {\n Product,\n PackageType,\n Element,\n Component,\n DecorationComponent,\n} from \"API\";\nimport {\n getProductById,\n getUpdatedCaseInputByProductElements,\n updateProduct,\n} from \"utils/product\";\nimport { getPackageBomByID } from \"utils/packageBom\";\nimport { getPackageById } from \"utils/package\";\n\ntype Modify = Omit & R;\n\ninterface ElementsObject {\n [key: string]: Element;\n}\n\ntype ProductBom = Modify<\n Product,\n {\n __typename: any;\n elements: ElementsObject;\n }\n>;\n\ntype PackageBom = Modify<\n PackageType,\n {\n __typename: any;\n elements: ElementsObject;\n }\n>;\n\nexport type ComponentBom = Modify<\n Component,\n {\n areaId: string;\n areaName: string;\n areaOrder: number;\n order: number;\n elements: ElementsObject;\n }\n>;\n\nexport type DecorationBom = Modify<\n DecorationComponent,\n {\n elements: ElementsObject;\n }\n>;\n\nexport interface Bom {\n product?: ProductBom | PackageBom;\n components?: ComponentBom[];\n interiors?: DecorationBom[];\n exteriors?: DecorationBom[];\n}\n\ninterface ElementInput {\n id: string;\n name?: string;\n unit?: string;\n woodM3?: number;\n panelM2?: number;\n grossWeight?: number;\n elements?: Element[];\n woodCost?: number;\n normalWoodCost?: number;\n lvlCost?: number;\n panelCost?: number;\n interiorCost?: number;\n exteriorCost?: number;\n m3Cost?: number;\n totalCost?: number;\n}\n\ninterface UpdateBomInput {\n product?: ElementInput;\n components?: ElementInput[];\n decorations?: ElementInput[];\n}\n\n//input UpdateProductBomInput {\n//product: UpdateBomInput\n//components: [UpdateBomInput]\n//decorations: [UpdateBomInput]\n//}\n//\nfunction updateElements(\n elements: ElementsObject | undefined,\n inputs: GraphQLInput | undefined\n) {\n // return as is when no input\n if (!elements || !inputs) return Object.values(elements as any);\n // get slugs\n const inputKeys = Object.keys(inputs).filter((i) => i !== \"id\");\n return Object.keys(elements).reduce((result: Element[], key: string) => {\n const element: Element = elements[key];\n // return as is for other elements\n if (!inputKeys.includes(key)) return [...result, element];\n // 入力がexprの場合\n if (isExpr(inputs[key])) {\n // expr更新して次へ\n result.push({\n ...element,\n expr: inputs[key],\n overwriteValue: null,\n });\n return result;\n }\n // initiate element\n let overwriteValue = null;\n\n if (element.expr && inputs[key] !== null) {\n if (element.value === null) {\n // PAX-588 元々の数式がnullの場合、入力値を採用\n overwriteValue = 0; // PAX-588 フォント色がyellowにするため0に設定\n } else if (inputs[key] == element.value) {\n // 入力と元の値が同じなら上書きしない(set→update時にoverwriteValueまで上書きされるため)\n // ==で比較しているのは、入力値が文字列で元の値が数値の場合があるため\n overwriteValue = element.overwriteValue as any;\n } else {\n overwriteValue = element.value as any;\n }\n }\n\n const field = {\n value: inputs[key],\n overwriteValue: overwriteValue,\n };\n\n if (inputKeys.includes(key))\n result.push({\n ...element,\n ...field,\n });\n\n return result;\n }, []) as Element[];\n}\n\n// add cost elements to components\nconst calculateComponentCost = (\n elements: any,\n materials: Material[]\n): Element[] => {\n const material = getMaterial(materials, elements);\n if (!material) return elements;\n const slug = elements[0].slug.split(\".\")[0];\n const quantity = parseFloat(getValue(elements, \"quantity\"));\n let amount = quantity;\n const m2 = parseFloat(getValue(elements, \"m2\"));\n const m3 = parseFloat(getValue(elements, \"m3\"));\n if (material.unit === \"m2\") amount = m2;\n if (material.unit === \"m3\") amount = m3;\n const totalCost =\n (material.defaultUnitCost || 0) * (amount * (1 + (material.lossRate || 0)));\n // elementsにすでに${slug}.totalCost, ${slug}.unitCost, ${slug}.lossRateがある場合は上書き\n const newElements = elements.filter(\n (el: Element) =>\n ![`${slug}.totalCost`, `${slug}.unitCost`, `${slug}.lossRate`].includes(\n el.slug\n )\n );\n return [\n ...newElements,\n {\n slug: `${slug}.totalCost`,\n name: \"原価合計\",\n type: \"number\",\n value: totalCost.toFixed(0),\n },\n {\n slug: `${slug}.unitCost`,\n name: \"原価\",\n type: \"number\",\n value: material.defaultUnitCost,\n },\n {\n slug: `${slug}.lossRate`,\n name: \"ロス率\",\n type: \"number\",\n value: material.lossRate,\n },\n ];\n};\n\nconst updateComponentElements = (\n id: string,\n components: ComponentBom[] | undefined,\n materials: Material[],\n inputs?: GraphQLInput\n) => {\n if (!components) return [];\n // return updated elements for specific component\n const component = components.filter((c) => c.id === id)[0];\n if (!component || !component.elements) return [];\n let updatedComponentElements;\n if (!inputs) updatedComponentElements = Object.values(component.elements);\n if (!!inputs)\n updatedComponentElements = updateElements(component.elements, inputs);\n\n updatedComponentElements = calculateComponentCost(\n updatedComponentElements,\n materials\n );\n\n return updatedComponentElements;\n};\n\n// add cost elements to decorations\nconst calculateDecorationCost = (\n elements: any,\n materials: Material[]\n): Element[] => {\n const material = getMaterial(materials, elements);\n if (!material) return elements;\n const slug = elements[0].slug.split(\".\")[0];\n const quantity = parseFloat(getValue(elements, \"quantity\"));\n const amount = quantity;\n const totalCost =\n (material.defaultUnitCost || 0) * (amount * (1 + (material.lossRate || 0)));\n return [\n ...elements,\n {\n slug: `${slug}.totalCost`,\n name: \"原価合計\",\n type: \"number\",\n value: totalCost.toFixed(0),\n },\n {\n slug: `${slug}.unitCost`,\n name: \"原価\",\n type: \"number\",\n value: material.defaultUnitCost,\n },\n {\n slug: `${slug}.lossRate`,\n name: \"ロス率\",\n type: \"number\",\n value: material.lossRate,\n },\n ];\n};\n\nconst updateDecorationElements = (\n id: string,\n interiors: DecorationBom[] | undefined,\n exteriors: DecorationBom[] | undefined,\n materials: Material[],\n inputs?: GraphQLInput\n) => {\n if (!interiors || !exteriors) return [];\n // return updated elements for specific decoration\n const decorations = [...interiors, ...exteriors];\n const decoration = decorations.filter((c) => c.id === id)[0];\n if (!decoration || !decoration.elements) return [];\n let updatedDecorationElements;\n if (!inputs) updatedDecorationElements = Object.values(decoration.elements);\n if (!!inputs)\n updatedDecorationElements = updateElements(decoration.elements, inputs);\n\n updatedDecorationElements = calculateDecorationCost(\n updatedDecorationElements,\n materials\n );\n\n return updatedDecorationElements;\n};\n\nexport function updateBomElements(\n rawData: Bom | undefined,\n inputs: GraphQLInput,\n materials: Material[],\n species: Species[],\n group: Group | undefined\n): UpdateBomOutput {\n const data = parseBom(rawData);\n if (!rawData || !data)\n return { updatedBom: undefined, updatableBom: undefined };\n\n // rawDataはBom型ではない\n const updatedBom: any = rawData;\n const updatableBom: UpdateBomInput = {\n product: undefined,\n components: [],\n decorations: [],\n };\n\n // update product elements if inputs.id is equal to product.id\n const runUpdateProductElements =\n inputs.id && data.product?.id && inputs.id === data.product.id;\n if (runUpdateProductElements) {\n // updateする場合はupdateElementsを呼んでUpdateする\n Object.assign(updatableBom, {\n product: {\n id: inputs.id,\n elements: updateElements(data.product?.elements, inputs),\n },\n });\n } else {\n // updateしない場合は更新を空振りさせる\n Object.assign(updatableBom, {\n product: {\n id: data.product?.id,\n elements: updateElements(data.product?.elements, { id: inputs.id }),\n },\n });\n }\n\n // update component elements\n updatableBom.components = data.components?.map((component) => {\n if (inputs.id === component.id)\n return {\n id: component.id,\n elements: updateComponentElements(\n component.id,\n data.components,\n materials,\n inputs\n ),\n } as ElementInput;\n return {\n id: component.id,\n elements: updateComponentElements(\n component.id,\n data.components,\n materials\n ),\n } as ElementInput;\n });\n\n // update interior elements\n const interiors = data.interiors?.map((int) => {\n if (inputs.id === int.id) {\n return {\n id: inputs.id,\n elements: updateDecorationElements(\n int.id,\n data.interiors,\n data.exteriors,\n materials,\n inputs\n ),\n } as ElementInput;\n }\n return {\n id: int.id,\n elements: updateDecorationElements(\n int.id,\n data.interiors,\n data.exteriors,\n materials\n ),\n } as ElementInput;\n }) as ElementInput[];\n\n // update exterior elements\n const exteriors = data.exteriors?.map((ext) => {\n if (inputs.id === ext.id) {\n return {\n id: inputs.id,\n elements: updateDecorationElements(\n ext.id,\n data.interiors,\n data.exteriors,\n materials,\n inputs\n ),\n } as ElementInput;\n }\n return {\n id: ext.id,\n elements: updateDecorationElements(\n ext.id,\n data.interiors,\n data.exteriors,\n materials\n ),\n } as ElementInput;\n }) as ElementInput[];\n\n let pkg = undefined;\n let cmp: any[] = [];\n let int: any = [];\n let ext: any = [];\n const pkgElements = extractProductElements(updatableBom.product);\n const cmpElements = extractComponentsElements(updatableBom.components);\n const interiorElements = extractDecorationsElements(interiors);\n const exteriorElements = extractDecorationsElements(exteriors);\n\n calculateElements(\n pkgElements,\n cmpElements,\n (newPkg: any) => {\n pkg = Object.values(newPkg);\n },\n (newCmp: any) => {\n cmp = Object.entries(newCmp).map(([id, el]) => ({\n id,\n elements: Object.values(el as any),\n }));\n },\n materials,\n interiorElements,\n exteriorElements,\n (newInt: any) => {\n int = Object.entries(newInt).map(([id, el]) => ({\n id,\n elements: Object.values(el as any),\n }));\n },\n (newExt: any) => {\n ext = Object.entries(newExt).map(([id, el]) => ({\n id,\n elements: Object.values(el as any),\n }));\n },\n data,\n species,\n group?.mainSpeciesId ?? \"\",\n group?.mainSpeciesEdgeMPa ?? \"\",\n group?.mainSpeciesFaceMPa ?? \"\"\n );\n\n // productのpanelM2とwoodM3を計算する\n if (cmp && updatableBom.product) {\n updatableBom.product.woodM3 = calculateWoodM3(cmp);\n updatableBom.product.panelM2 = calculatePanelM2(cmp);\n }\n\n updatableBom.product = {\n id: data.product?.id as string,\n panelM2: updatableBom.product?.panelM2,\n woodM3: updatableBom.product?.woodM3,\n grossWeight: calculateGW(\n pkg,\n parseFloat(\n (pkg as any).find((p: any) => p.slug === \"tareWeight\")?.value ?? \"0\"\n ) ?? 0\n ),\n elements: pkg,\n };\n // materialIdなど更新した後でtotalCostの再計算必要なので再計算実施\n updatableBom.components = cmp.map((component) => {\n return {\n id: component.id,\n elements: updateComponentElements(component.id, cmp, materials),\n } as ElementInput;\n });\n const updatableInt = int.map((i: any) => {\n return {\n id: i.id,\n elements: updateDecorationElements(i.id, int, ext, materials),\n } as ElementInput;\n }) as ElementInput[];\n const updatableExt = ext.map((e: any) => {\n return {\n id: e.id,\n elements: updateDecorationElements(e.id, int, ext, materials),\n } as ElementInput;\n }) as ElementInput[];\n updatableBom.decorations = [...updatableInt, ...updatableExt];\n\n // updatableBomをもとにupdatedBomを更新\n // まずはproduct.elementsを更新(updatableBomのproduct以下は全て情報があるのでそのままでOK)\n const newProductElements = updatableBom.product?.elements?.reduce(\n (result: any, element: any) => {\n result[element.slug] = element;\n return result;\n },\n {}\n );\n updatedBom.product.elements = JSON.stringify(newProductElements);\n updatedBom.product.panelM2 = updatableBom.product.panelM2;\n updatedBom.product.woodM3 = updatableBom.product.woodM3;\n updatedBom.product.grossWeight = updatableBom.product.grossWeight;\n\n // 次にcomponents.elementsを更新(updatableBomのcomponents以下はelementsしかないので注意)\n const newComponents = updatedBom.components.map((c: any) => {\n const componentToUpdate = updatableBom.components?.filter(\n (component) => component.id === c.id\n )[0];\n const newElements = componentToUpdate?.elements?.reduce(\n (result: any, element: any) => {\n // slugに.が含まれていたら.以降\n let slug = element.slug;\n if (element.slug.includes(\".\")) slug = element.slug.split(\".\")[1];\n result[slug] = element;\n return result;\n },\n {}\n );\n return {\n ...c,\n elements: JSON.stringify(newElements),\n };\n });\n updatedBom.components = newComponents;\n\n // interiorとexteriorについても同様\n const newInt = updatedBom.interiors?.map((interior: any) => {\n const intToUpdate: any = updatableInt.filter((i: any) => {\n return i.id === interior.id;\n })[0];\n const newElements = intToUpdate?.elements.reduce(\n (result: any, element: any) => {\n // slugに.が含まれていたら.以降\n let slug = element.slug;\n if (element.slug.includes(\".\")) slug = element.slug.split(\".\")[1];\n result[slug] = element;\n return result;\n },\n {}\n );\n return {\n ...interior,\n elements: JSON.stringify(newElements),\n };\n });\n const newExt = updatedBom.exteriors?.map((exterior: any) => {\n const extToUpdate: any = updatableExt.filter((e: any) => {\n return e.id === exterior.id;\n })[0];\n const newElements = extToUpdate?.elements.reduce(\n (result: any, element: any) => {\n // slugに.が含まれていたら.以降\n let slug = element.slug;\n if (element.slug.includes(\".\")) slug = element.slug.split(\".\")[1];\n result[slug] = element;\n return result;\n },\n {}\n );\n return {\n ...exterior,\n elements: JSON.stringify(newElements),\n };\n });\n updatedBom.exteriors = newExt;\n updatedBom.interiors = newInt;\n\n // 原価計算\n const info = calculateProductCost(\n updatedBom.product,\n parseBom(updatedBom),\n materials\n );\n const wood = info.woodenTotal;\n const normalWood = info.normalWoodTotal;\n const lvl = info.lvlTotal;\n const plywood = info.plywoodTotal;\n const interior = info.interiorTotal;\n const exterior = info.exteriorTotal;\n const total = info.totalCost;\n const m3 = info.m3Cost;\n updatedBom.product.woodCost = wood;\n updatedBom.product.normalWoodCost = normalWood;\n updatedBom.product.lvlCost = lvl;\n updatedBom.product.panelCost = plywood;\n updatedBom.product.interiorCost = interior;\n updatedBom.product.exteriorCost = exterior;\n updatedBom.product.totalCost = total;\n updatedBom.product.m3Cost = m3;\n if (updatableBom.product) {\n updatableBom.product.woodCost = wood;\n updatableBom.product.normalWoodCost = normalWood;\n updatableBom.product.lvlCost = lvl;\n updatableBom.product.panelCost = plywood;\n updatableBom.product.interiorCost = interior;\n updatableBom.product.exteriorCost = exterior;\n updatableBom.product.totalCost = total;\n updatableBom.product.m3Cost = m3;\n }\n\n return { updatedBom, updatableBom };\n}\n\ninterface UpdateBomOutput {\n updatedBom: Bom | undefined;\n updatableBom: UpdateBomInput | undefined;\n}\n\nexport function updateBom(\n rawData: Bom | undefined,\n inputs: GraphQLInput,\n type: \"product\" | \"component\" | \"decoration\"\n): UpdateBomOutput {\n if (!rawData) return { updatedBom: undefined, updatableBom: undefined };\n const updatedBom: Bom = rawData;\n const updatableBom: UpdateBomInput = {\n product: undefined,\n components: [],\n decorations: [],\n };\n\n if (type === \"product\") {\n Object.assign(updatableBom, {\n product: inputs,\n });\n updatedBom.product = {\n ...(updatedBom.product as ProductBom),\n ...inputs,\n };\n }\n if (type === \"component\") {\n updatableBom.components?.push(inputs);\n\n if (updatedBom.components) {\n // areaIdが一致するcomponentは複数あるので、この形式\n const targets = getIndex(updatedBom.components, inputs.id, true);\n targets.forEach((target) => {\n // areaIdの更新の場合は対象componentのareaNameとareaOrderも更新する\n let updateObj = {};\n if (inputs.areaId) {\n const areaId = inputs.areaId;\n const comp = updatedBom.components?.filter(\n (c) => c.areaId === areaId\n )[0];\n if (!comp) return;\n updateObj = {\n areaName: comp.areaName,\n areaOrder: comp.areaOrder,\n };\n }\n if (updatedBom.components === undefined) return;\n let component = updatedBom.components[target];\n const componentId = component.id;\n if (!component) return;\n component = {\n ...(component as ComponentBom),\n ...inputs,\n id: componentId, // componentIdは上書きすることはないので固定しておく(areaの更新時にareaIdで上書きされかねない)\n ...updateObj,\n };\n updatedBom.components[target] = component;\n });\n }\n }\n\n if (type === \"decoration\") {\n updatableBom.decorations?.push(inputs);\n\n if (updatedBom.interiors) {\n let target =\n updatedBom.interiors[getIndex(updatedBom.interiors, inputs.id)[0]];\n target = {\n ...(target as DecorationBom),\n ...inputs,\n };\n updatedBom.interiors[getIndex(updatedBom.interiors, inputs.id)[0]] =\n target;\n }\n if (updatedBom.exteriors) {\n let target =\n updatedBom.exteriors[getIndex(updatedBom.exteriors, inputs.id)[0]];\n target = {\n ...(target as DecorationBom),\n ...inputs,\n };\n updatedBom.exteriors[getIndex(updatedBom.exteriors, inputs.id)[0]] =\n target;\n }\n }\n\n return { updatedBom, updatableBom };\n}\n\n// 対象となるcomponent(interiorやcomponents以下のcomponent)のindexを返す\n// componentId(なくてincludeAreaの指定があればareaIdも)が一致するものを探す(複数返ってくる場合もある)\nfunction getIndex(\n arr: any[],\n id: string,\n includeArea: boolean = false\n): number[] {\n const idx: number[] = [];\n arr.forEach((a, i) => {\n if (a.id === id || (includeArea && a.areaId && a.areaId === id))\n idx.push(i);\n });\n return idx;\n}\n\n// 任意のproductBomのElementを更新する関数\nexport async function updateArbitraryProductBomElement(\n productId: string,\n input: GraphQLInput,\n materials: Material[],\n species: Species[],\n group: Group,\n ignoreCase: boolean = false\n): Promise {\n // 対象のproductBomとproductを持ってくる\n const [bom, product] = await Promise.all([\n getProductBomByProductId(productId),\n getProductById(productId),\n ]);\n // Elementを再計算\n const { updatableBom } = updateBomElements(\n bom ?? undefined,\n { ...input, id: productId },\n materials,\n species,\n group\n );\n // caseの更新データ作成\n const newProduct = {\n ...product,\n elements: updatableBom?.product?.elements,\n };\n const newCsInput = getUpdatedCaseInputByProductElements(newProduct);\n if (newCsInput !== null && !ignoreCase) {\n // case更新\n await updateProduct({\n id: productId,\n cases: newCsInput,\n });\n }\n // bom更新\n const updatedProduct = await updateProductBom({\n id: product.id,\n ...updatableBom,\n });\n return updatedProduct;\n}\n\n// 任意のpackageBomのElementを更新する関数\nexport async function updateArbitraryPackageBomElement(\n packageId: string,\n input: GraphQLInput,\n materials: Material[],\n species: Species[],\n group: Group\n): Promise {\n // 対象のproductBomとproductを持ってくる\n const [bom, product] = await Promise.all([\n getPackageBomByID(packageId),\n getPackageById(packageId),\n ]);\n // Elementを再計算\n const { updatableBom } = updateBomElements(\n bom,\n { ...input, id: packageId },\n materials,\n species,\n group\n );\n // bom更新\n const updatedPackage = await updatePackageBom({\n id: product.id,\n ...updatableBom,\n });\n return updatedPackage;\n}\n","import CameraAltIcon from \"@mui/icons-material/CameraAlt\";\nimport CheckCircleIcon from \"@mui/icons-material/CheckCircle\";\nimport ErrorIcon from \"@mui/icons-material/Error\";\nimport ScaleIcon from \"@mui/icons-material/Scale\";\n\nimport type { Case } from \"API\";\n\nexport const getPhaseName = (c: Case) => {\n if (!c || !c.packPhases) return \"-\";\n\n if (c.phaseId === \"final\") return \"重量入力\";\n if (c.phaseId === \"complete\") return \"梱包完了\";\n const pidx = c.packPhases.findIndex((p) => p?.id === c.phaseId);\n const p = c.packPhases[pidx + 1];\n if (!p) return \"-\";\n return p.name;\n};\n\nexport function invalidPhases(cs: Case) {\n return !cs.packPhases || cs.packPhases.length === 0;\n}\n\nexport function packComplete(cs: Case) {\n return cs.phaseId === \"complete\";\n}\n\nexport function packFinal(cs: Case) {\n return cs.phaseId === \"final\";\n}\n\nexport function ProgressIcon({\n cs,\n ...props\n}: {\n cs: Case;\n [key: string]: any;\n}) {\n if (invalidPhases(cs)) return ;\n if (packComplete(cs)) return ;\n if (packFinal(cs)) return ;\n return ;\n}\n","/** 事業所設定の税率未設定時に使用。消費税変更時は要変更 */\nexport const JAPANESE_TAX_RATE = 0.1;\n\n/** PAXサポートURL */\nexport const SUPPORT_SITE_URL = \"https://pax-help.freshdesk.com/support/home\";\n","import { GraphQLResult } from \"@aws-amplify/api-graphql\";\n\nfunction isGraphQLResult(error: unknown): error is GraphQLResult {\n return (\n typeof error === \"object\" &&\n error !== null &&\n \"errors\" in error &&\n Array.isArray((error as any).errors) &&\n (error as any).errors.every((e: any) => typeof e.message === \"string\")\n );\n}\n\nconst errorMapper = {\n delete: \"削除\",\n update: \"更新\",\n get: \"取得\",\n create: \"作成\",\n} as const;\n\nexport class CustomError extends Error {\n constructor(err: unknown, type: keyof typeof errorMapper) {\n // 詳細エラーメッセージは開発コンソールに表示\n // eslint-disable-next-line no-console\n console.error(err);\n\n super(`データの${errorMapper[type]}に失敗しました。`);\n const customMessage = this.getCustomErrorMessage(err);\n if (!customMessage) return;\n this.setErrorMessage(customMessage);\n }\n\n private getCustomErrorMessage(err: unknown) {\n let message = \"\";\n if (isGraphQLResult(err)) {\n if (err.errors?.some((error) => error.message.match(/locking error/)))\n message +=\n \"データが他のユーザーによって変更されています。リロードして再試行してください。\\n\";\n }\n\n return message;\n }\n\n private setErrorMessage(customMessage: string) {\n this.message = customMessage;\n }\n}\n","enum InvoiceErrorMessages {\n CannotImportError = \"梱包仕様と連携した見積が受注になっていません。連携している見積を受注にしてください。\",\n EmptyImportTarget = \"同期するものがありません。\",\n EmptyProjectData = \"案件が選択されていません。\",\n}\n\nexport default InvoiceErrorMessages;\n","import { GridRowSelectionModel } from \"@mui/x-data-grid\";\nimport moment from \"moment\";\n\nimport {\n Group,\n InvoiceLine,\n Product,\n ProductCaseInput,\n Project,\n Quote,\n} from \"API\";\nimport { GraphQLInput } from \"hooks/datalist\";\nimport InvoiceErrorMessages from \"utils/errors/invoice\";\nimport { ProductSummary } from \"utils/productSummary\";\n\ntype CreateInvoiceInput = {\n name: string;\n invoiceNo: string;\n issueDate: string;\n billingDate: string;\n recordingDate: string;\n};\n\nexport const getInvoiceInputs = (\n group: Group,\n project: Project,\n userId: string,\n input: CreateInvoiceInput,\n domain: string\n): GraphQLInput => {\n return {\n projectId: project.id,\n accountId: project.accountId,\n contactId: project.contactId,\n userId: userId,\n groupId: group.id,\n name: input.name,\n invoiceNo: input.invoiceNo,\n issueDate: moment(input.issueDate).isValid() ? input.issueDate : null,\n billed: false,\n billingDate: moment(input.billingDate).isValid() ? input.billingDate : null,\n recordingDate: moment(input.recordingDate).isValid()\n ? input.recordingDate\n : null,\n description: \"\",\n subtotal: 0,\n nonTaxableTotal: 0,\n taxableSubtotal: 0,\n taxTotal: 0,\n taxableTotal: 0,\n total: 0,\n accountName: project.account?.name,\n accountSite: project.account?.site,\n billingType: project.account?.billingType ?? null,\n accountAddress: {\n address: project.account?.billingAddress ?? null,\n street: project.account?.billingStreet ?? null,\n city: project.account?.billingCity ?? null,\n state: project.account?.billingState ?? null,\n postalCode: project.account?.billingPostalCode ?? null,\n country: project.account?.billingCountry ?? null,\n },\n contactName: `${project.contact?.lastName} ${\n project.contact?.firstName ?? \"\"\n }`,\n contactFirstName: project.contact?.firstName ?? \"\",\n contactLastName: project.contact?.lastName,\n contactDepartment: project.contact?.department ?? \"\",\n contactTitle: project.contact?.title ?? \"\",\n groupName: group.name,\n logoUrl: group.logoUrl,\n groupBank: group.bank,\n groupAddress: group.groupAddress,\n phone: group.phone,\n fax: group.fax,\n taxRate: group.taxRate,\n url:\n domain !== \"\"\n ? `https://${domain}/projects/${project.id}`\n : `https://pax-cloud.com/projects/${project.id}`,\n };\n};\n\nexport const canImportProductAndQuote = (\n allProducts: Product[],\n targetProductIds: string[],\n project: Project,\n quotes: Quote[]\n): [boolean, string] => {\n // 今回importするproductを持ってくる\n const targetProducts = allProducts.filter((product) =>\n targetProductIds.includes(product.id ?? \"\")\n );\n\n // 以下の条件を全て満たすとき確認する\n // a1. checkProducts(確認対象の梱包)が0より多かったら\n // a2. 見積が受注されてるか、見積が案件に一つ以上ある\n // a3. 対象の梱包が一つでも見積もり連携している\n // もしくは\n // b1. checkProducts(確認対象の梱包)が0の場合は、\n // b2. 見積のその他明細行が1つ以上ある\n // a.bどちらも他案件から同期してきた梱包(quoteLineId === null && quoteLineName !== null)の場合はチェック対象外\n const checkProducts = targetProducts.filter(\n (product) => !(product.quoteLineId == null && product.quoteLineName != null)\n );\n\n // 見積が受注されてるか、見積が案件に一つ以上ある\n const isOrderedOrHasQuotes =\n project?.quoteId !== undefined || quotes.length > 0;\n\n // 対象の梱包が一つでも見積もり連携している\n const isAnyProductLinked = checkProducts.some(\n (product) => product.quoteLineId !== null\n );\n\n // ↑の条件確認してチェック実行\n if (checkProducts.length > 0 && isOrderedOrHasQuotes && isAnyProductLinked) {\n // そもそも受注されてなかったらダメ\n if (!project?.quoteId) {\n return [false, InvoiceErrorMessages.CannotImportError];\n }\n // 受注しているquoteが存在しなかったらダメ(これはないはず)\n const quote = quotes.find((q) => q.id === project.quoteId);\n if (!quote) {\n return [false, InvoiceErrorMessages.CannotImportError];\n }\n // 受注したquoteのquoteLineのID\n const orderedQuoteLineIds = quote.quoteLines?.items\n .map((quoteLine) => quoteLine?.id)\n .filter((id) => !!id);\n // チェック対象の連携する見積行のID\n const linkedQuoteLineIds = checkProducts\n .map((product) => product.quoteLineId)\n .filter((id) => !!id);\n // 連携した見積行(linkedQuoteLineIds)が全て受注した見積行(orderedQuoteLineIds)に含まれていればOK\n const isAllLinkedQuoteLineOrdered = linkedQuoteLineIds.every((id) =>\n orderedQuoteLineIds?.includes(id ?? \"\")\n );\n if (!isAllLinkedQuoteLineOrdered) {\n return [false, InvoiceErrorMessages.CannotImportError];\n }\n } else if (checkProducts.length === 0) {\n if (targetProducts.length > 0) {\n // targetProductsはあるが、checkProductsがないのは、すべて「他案件から同期してきた梱包」と判断\n return [true, \"\"];\n }\n\n // そもそも受注されてなかったらダメ\n if (!project?.quoteId) {\n return [false, InvoiceErrorMessages.CannotImportError];\n }\n // 受注しているquoteが存在しなかったらダメ(これはないはず)\n const quote = quotes.find((q) => q.id === project.quoteId);\n if (!quote) {\n return [false, InvoiceErrorMessages.CannotImportError];\n }\n\n // 受注したquoteのその他のquoteLineのID\n const orderedOtherQuoteLineIds = quote.quoteLines?.items\n // `quoteLine?.showInQuoteSummary`が梱包明細行という判定なので、\n // `!quoteLine?.showInQuoteSummary` が trueなのはその他明細行\n .filter((quoteLine) => !!quoteLine?.id && !quoteLine?.showInQuoteSummary)\n .map((quoteLine) => quoteLine?.id);\n\n if (\n orderedOtherQuoteLineIds !== undefined &&\n orderedOtherQuoteLineIds.length > 0\n ) {\n return [true, \"\"];\n } else {\n return [false, InvoiceErrorMessages.EmptyImportTarget];\n }\n }\n\n return [true, \"\"];\n};\n\nexport const convertSelectedProductSummariesToProductCaseInput = (\n targetProductSummaries: GridRowSelectionModel,\n productSummaries: ProductSummary[]\n): ProductCaseInput[] => {\n const targetProductCase: ProductCaseInput[] = [];\n for (const t of targetProductSummaries) {\n // idからcase情報持ってくる\n const [productId, order] = t.toString().split(\"|\");\n\n // productSummariesから対象持ってくる\n const summary = productSummaries.find(\n (p) => p.productId === productId && p.caseOrder?.toString() === order\n );\n if (!summary || !summary.name) continue;\n\n // 保存\n // すでにproductIdがある場合はcaseNamesに追加、ない場合は新規作成\n const idx = targetProductCase.findIndex((c) => c.productId === productId);\n if (idx === -1) {\n targetProductCase.push({\n productId,\n caseNames: [summary.name],\n });\n } else {\n targetProductCase[idx].caseNames?.push(summary.name);\n }\n }\n return targetProductCase;\n};\n\nexport function getAmount(\n invoiceLine: InvoiceLine,\n unit: string\n): number | null {\n // minimumAmount\n if (invoiceLine.minimumAmount || invoiceLine.minimumAmount === 0)\n return getActualAmount(invoiceLine, unit);\n // If actual amount is greater than minimum amount, return actual amount\n if (\n (getActualAmount(invoiceLine, unit) ?? 0) > (invoiceLine.minimumAmount ?? 0)\n )\n return getActualAmount(invoiceLine, unit);\n // If actual amount is smaller than minimum amount, return case quantity\n return invoiceLine.quantity ?? null;\n}\n\nfunction getActualAmount(\n invoiceLine: InvoiceLine,\n unit: string\n): number | null {\n const KG_TON = 1000;\n const ton = (invoiceLine.grossWeight ?? 0) / KG_TON;\n // Extract the amount from special unit\n if (invoiceLine.synced) {\n //PAX-632 連動している請求のみ重量更新\n switch (unit) {\n case \"m3\":\n return invoiceLine.m3 || invoiceLine.actualAmount || null;\n case \"R/T\":\n // m3 vs ton\n if (invoiceLine.rt) {\n return invoiceLine.rt;\n //rtが既にある場合はrtを取得\n } else {\n return (\n Math.max(ton, invoiceLine.m3 ?? 0) ||\n invoiceLine.actualAmount ||\n null\n );\n }\n case \"PKG\":\n return invoiceLine.quantity || invoiceLine.quantity || null;\n default:\n // return quantity or actual amount if units not applicable\n return invoiceLine.quantity || invoiceLine.actualAmount || null;\n }\n } else return invoiceLine.amount || null;\n}\n","import { Material } from \"API\";\n\n// はり資材の方向を返す関数\nexport function JISBeamEdge(\n ceilingLoad: number | null,\n beamLength: number | null,\n beamCenterSpace: number | null,\n beamSpeciesId: string | null,\n mainSpeciesId: string | null,\n mainSpeciesEdgeMPa: number | null,\n mainSpeciesFaceMPa: number | null,\n materials: any,\n species: any\n): string {\n return JISBeamMaterialEdge(\n ceilingLoad,\n beamLength,\n beamCenterSpace,\n beamSpeciesId,\n mainSpeciesId,\n mainSpeciesEdgeMPa,\n mainSpeciesFaceMPa,\n materials,\n species\n ).beamEdge;\n}\n\n// はり資材の選定を行う関数\nexport function JISBeamMaterial(\n ceilingLoad: number | null,\n beamLength: number | null,\n beamCenterSpace: number | null,\n beamSpeciesId: string | null,\n mainSpeciesId: string | null,\n mainSpeciesEdgeMPa: number | null,\n mainSpeciesFaceMPa: number | null,\n materials: any,\n species: any\n): string {\n return JISBeamMaterialEdge(\n ceilingLoad,\n beamLength,\n beamCenterSpace,\n beamSpeciesId,\n mainSpeciesId,\n mainSpeciesEdgeMPa,\n mainSpeciesFaceMPa,\n materials,\n species\n ).materialId;\n}\n\n// ここでは、事前の以下の処理を行い実際に該当する部材を計算する関数を呼び出す\n// - 必要なパラメータの確認(ceilingLoad, beamLength, beamCenterSpace, materials)\n// - 定数の計算…ceil(400 / (天井荷重(ceilingLoad) / 10 x 3))を定数とする\n// - 許容強さ…beamSpeciesIdの{EdgeMPa/faceMPa} > mainSpeciesIdの{EdgeMPa/faceMPa} > {mainSpeciesEdgeMPa/mainSpeciesFaceMPa} > 8.1、の優先度\n// - 木材のみに絞る…materialsの中で木材のもののみを対象とする\nfunction JISBeamMaterialEdge(\n ceilingLoad: number | null,\n beamLength: number | null,\n beamCenterSpace: number | null,\n beamSpeciesId: string | null,\n mainSpeciesId: string | null,\n mainSpeciesEdgeMPa: number | null,\n mainSpeciesFaceMPa: number | null,\n materials: any,\n species: any\n): {\n materialId: string;\n beamEdge: string;\n} {\n // 必要なパラメータの確認\n if (!ceilingLoad || !beamLength || !beamCenterSpace || !materials) {\n return {\n materialId: \"\",\n beamEdge: \"\",\n };\n }\n\n // 定数の計算\n const constant = Math.ceil(400 / ((ceilingLoad / 10) * 3));\n\n // 木端方向許容強さ\n let edgeMPa = 8.1;\n let faceMPa = 8.1;\n if (beamSpeciesId && beamSpeciesId !== \"null\") {\n const beamSpecies = species.find((s: any) => s.id === beamSpeciesId);\n if (beamSpecies?.edgeMPa && beamSpecies?.faceMPa) {\n edgeMPa = beamSpecies.edgeMPa;\n faceMPa = beamSpecies.faceMPa;\n } else {\n return {\n materialId: \"\",\n beamEdge: \"\",\n };\n }\n } else if (mainSpeciesId) {\n const mainSpecies = species.find((s: any) => s.id === mainSpeciesId);\n if (mainSpecies?.edgeMPa && mainSpecies?.faceMPa) {\n edgeMPa = mainSpecies.edgeMPa;\n faceMPa = mainSpecies.faceMPa;\n } else if (mainSpeciesEdgeMPa && mainSpeciesFaceMPa) {\n edgeMPa = mainSpeciesEdgeMPa;\n faceMPa = mainSpeciesFaceMPa;\n }\n }\n\n // 木材のみに絞る\n const woodMaterials = materials.filter(\n (m: Material) => m.materialType?.isWood ?? false\n );\n\n return selectBeamMaterial(\n constant,\n beamLength,\n beamCenterSpace,\n edgeMPa,\n faceMPa,\n woodMaterials\n );\n}\n\n// はり部材の選定を行う関数\n// 以下の式を満たすmaterialIdと方向(beamEdge)を返す\n// はりの中心間隔(beamCenterSpace) <= (定数(constant) * はりの幅 * はりの高さ^2 * 許容強さ) / はりの長さ(beamLength)\n// ここではりの幅, はりの高さ, 許容強さには以下の注意点があります。\n// - 「はりの幅」と「はりの高さ」は部材を平方向で比較する場合はそれぞれ部材の「呼び寸巾」と「呼び寸高さ」になり、木端方向の時は逆になる\n// - 「許容強さ」は平方向の場合は「EdgeMPa」、木端方向の場合は「FaceMPa」になる\n// materialの検索順序は以下の通り\n// - materialsの要素に一つでも「はり検索順(木端方向)(=z1403BeamEdgeOrder)」と「はり検索順(平方向)(=z1403BeamFaceOrder)」に値があったら、値があるものの中で値の昇順で確認していく\n// - ここでedgeかfaceかはフラグとして保持しておく(比較のため)\n// - 一つもなかったらrefBhhEdgeの小さい順に確認していく\nfunction selectBeamMaterial(\n constant: number,\n beamLength: number,\n beamCenterSpace: number,\n edgeMPa: number,\n faceMPa: number,\n materials: Material[]\n): {\n materialId: string;\n beamEdge: string;\n} {\n let targetMaterials: Material[] = [];\n\n // z1403BeamEdgeOrderまたはz1403BeamFaceOrderが設定されているMaterialを抽出\n const z1403BeamOrderMaterials = materials.filter(\n (m) => m.z1403BeamEdgeOrder != null || m.z1403BeamFaceOrder != null\n );\n\n // 比較順で以下のObjectをMaterialから生成\n const targetParameters: {\n materialId: string;\n beamWidth: number;\n beamHeight: number;\n mpa: number;\n edge: boolean;\n }[] = [];\n\n // 全くなかったらrefBhhEdgeの設定されているものを抽出\n if (z1403BeamOrderMaterials.length === 0) {\n targetMaterials = materials.filter((m) => m.refBhhEdge != null);\n // refBhhEdgeが小さい順にソート\n targetMaterials.sort((a, b) => {\n return (a.refBhhEdge ?? 0) - (b.refBhhEdge ?? 0);\n });\n // targetParametersに設定\n targetMaterials.forEach((m) => {\n targetParameters.push({\n materialId: m.id,\n beamHeight: m.heightNominal ?? 0,\n beamWidth: m.widthNominal ?? 0,\n mpa: faceMPa,\n edge: false,\n });\n });\n } else {\n // 対象があったらz1403BeamSupportOrderから{materialId, order, edge(edgeなら1, faceなら0)}を引き出してくる\n const targetOrders: {\n materialId: string;\n order: number;\n edge: boolean;\n }[] = [];\n\n z1403BeamOrderMaterials.forEach((m) => {\n if (m.z1403BeamEdgeOrder != null) {\n targetOrders.push({\n materialId: m.id,\n order: m.z1403BeamEdgeOrder,\n edge: true,\n });\n }\n if (m.z1403BeamFaceOrder != null) {\n targetOrders.push({\n materialId: m.id,\n order: m.z1403BeamFaceOrder,\n edge: false,\n });\n }\n });\n\n // それを使ってtargetParametersに追加\n targetOrders.sort((a, b) => a.order - b.order);\n targetOrders.forEach((t) => {\n const material = materials.find((m) => m.id === t.materialId);\n if (material) {\n // はり長さ、はり幅、許容強さを設定\n // edge or faceで変わってくる\n const beamWidth = t.edge\n ? material.heightNominal\n : material.widthNominal;\n const beamHeight = t.edge\n ? material.widthNominal\n : material.heightNominal;\n const mpa = t.edge ? edgeMPa : faceMPa;\n targetParameters.push({\n materialId: t.materialId,\n beamWidth: beamWidth ?? 0,\n beamHeight: beamHeight ?? 0,\n mpa: mpa,\n edge: t.edge,\n });\n }\n });\n }\n\n // 資材の選定\n for (let i = 0; i < targetParameters.length; i++) {\n const param = targetParameters[i];\n if (\n check(\n constant,\n beamLength,\n beamCenterSpace,\n param.mpa,\n param.beamWidth,\n param.beamHeight\n )\n ) {\n return {\n materialId: param.materialId,\n beamEdge: param.edge ? \"1\" : \"0\",\n };\n }\n }\n return {\n materialId: \"\",\n beamEdge: \"\",\n };\n}\n\n// 実際に計算する関数\n// 以下の式を満たすかどうかを確認する\n// はりの中心間隔(beamCenterSpace) <= (定数(constant) * はりの幅(beamWidth) * はりの高さ(beamHeight)^2 * 許容強さ(mpa)) / はりの長さ(beamLength)\nfunction check(\n constant: number,\n beamLength: number,\n beamCenterSpace: number,\n mpa: number,\n beamWidth: number,\n beamHeight: number\n): boolean {\n const leftHand = beamCenterSpace;\n const rightHand =\n (constant * beamWidth * Math.pow(beamHeight ?? 0, 2) * mpa) /\n Math.pow(beamLength ?? 0, 2);\n return leftHand <= rightHand;\n}\n","import { Material } from \"API\";\n\n// はり受け資材の選定を行う関数\n// ここでは、事前の以下の処理を行い実際に該当する部材を計算する関数を呼び出す\n// - 必要なパラメータの確認(ceilingLoad, beamLength, sideStrutsCenterSpace, materials)\n// - 定数の計算…((天井荷重(ceilingLoad) x 615 / 1000) x 3)/4を定数とする\n// - 木端方向許容強さ…beamSupportSpeciesIdのEdgeMPa > mainSpeciesIdのEdgeMPa > mainSpeciesEdgeMPa > 8.1、の優先度\n// - 木材のみに絞る…materialsの中で木材のもののみを対象とする\nexport function JISBeamSupportMaterial(\n ceilingLoad: number | null,\n beamLength: number | null,\n sideStrutsCenterSpace: number | null,\n beamSupportSpeciesId: string | null,\n mainSpeciesId: string | null,\n mainSpeciesEdgeMPa: number | null,\n materials: any,\n species: any\n): string {\n // 必要なパラメータの確認\n if (!ceilingLoad || !beamLength || !sideStrutsCenterSpace || !materials) {\n return \"\";\n }\n\n // 定数の計算\n const constant = ((((ceilingLoad ?? 0) * 615) / 1000) * 3) / 4;\n\n // 木端方向許容強さ\n let edgeMPa = 8.1;\n if (beamSupportSpeciesId && beamSupportSpeciesId !== \"null\") {\n const beamSupportSpecies = species.find(\n (s: any) => s.id === beamSupportSpeciesId\n );\n if (beamSupportSpecies?.edgeMPa) {\n edgeMPa = beamSupportSpecies.edgeMPa;\n } else {\n return \"\";\n }\n } else if (mainSpeciesId) {\n const mainSpecies = species.find((s: any) => s.id === mainSpeciesId);\n if (mainSpecies?.edgeMPa) {\n edgeMPa = mainSpecies.edgeMPa;\n } else if (mainSpeciesEdgeMPa) {\n edgeMPa = mainSpeciesEdgeMPa;\n }\n }\n\n // 木材のみに絞る\n const woodMaterials = materials.filter(\n (m: Material) => m.materialType?.isWood ?? false\n );\n\n return selectBeamSupportMaterial(\n constant,\n beamLength,\n sideStrutsCenterSpace,\n edgeMPa,\n woodMaterials\n );\n}\n\n// はり受け部材の選定を行う関数\n// 以下の式を満たすmaterialIdを返す\n// material.heightNominal * material.widthNominal ^ 2 >= (constant * beamLength * sideStrutsCenterSpace) / edgeMPa\n// materialの検索順序は以下の通り\n// - materialsの要素に一つでも「はり受け検索順(z1403BeamSupportOrder)」に値があったら、値があるものの中で値の昇順で確認していく\n// - 一つもなかったらrefBhhEdgeの小さい順に確認していく\nfunction selectBeamSupportMaterial(\n constant: number,\n beamLength: number,\n sideStrutsCenterSpace: number,\n edgeMPa: number,\n materials: Material[]\n): string {\n let targetMaterials: Material[] = [];\n\n // z1403BeamSupportOrderが設定されているMaterialを抽出\n const z1403BeamSupportOrderMaterials = materials.filter(\n (m) => m.z1403BeamSupportOrder != null\n );\n\n // 全くなかったらrefBhhEdgeの設定されているものを抽出\n if (z1403BeamSupportOrderMaterials.length === 0) {\n targetMaterials = materials.filter((m) => m.refBhhEdge != null);\n // refBhhEdgeが小さい順にソート\n targetMaterials.sort((a, b) => {\n return (a.refBhhEdge ?? 0) - (b.refBhhEdge ?? 0);\n });\n } else {\n // 対象があったらz1403BeamSupportOrderの昇順に並び替え\n z1403BeamSupportOrderMaterials.sort((a, b) => {\n return (a.z1403BeamSupportOrder ?? 0) - (b.z1403BeamSupportOrder ?? 0);\n });\n targetMaterials = z1403BeamSupportOrderMaterials;\n }\n\n // 資材の選定\n for (let i = 0; i < targetMaterials.length; i++) {\n const material = targetMaterials[i];\n if (check(constant, beamLength, sideStrutsCenterSpace, edgeMPa, material)) {\n return material.id;\n }\n }\n return \"\";\n}\n\n// 実際に計算する関数\n// 以下の式を満たすかどうかを確認する\n// material.heightNominal * material.widthNominal ^ 2 >= (constant * beamLength * sideStrutsCenterSpace) / edgeMPa\nfunction check(\n constant: number,\n beamLength: number,\n sideStrutsCenterSpace: number,\n edgeMPa: number,\n materials: Material\n): boolean {\n const leftHand =\n (materials.heightNominal ?? 0) * Math.pow(materials.widthNominal ?? 0, 2);\n const rightHand = (constant * beamLength * sideStrutsCenterSpace) / edgeMPa;\n return leftHand >= rightHand;\n}\n","export function calcCombinationSign(\n sideStrutsCenterSpace: number,\n signCalcOuterWidth: number,\n z1402SideBattenLength: number\n): number | string {\n if (!sideStrutsCenterSpace || !signCalcOuterWidth || !z1402SideBattenLength) {\n return 999;\n }\n const firstKeys = Object.keys(MATRIX);\n const closestOuterWidth = findClosestKey(signCalcOuterWidth, firstKeys, 0);\n const closestSideBattenLength = findClosestKey(\n z1402SideBattenLength,\n firstKeys,\n 1\n );\n\n const selectedKey = `${closestOuterWidth}x${closestSideBattenLength}`;\n\n if (!MATRIX[selectedKey]) {\n return 999;\n }\n\n const sideStructsCenterSpaceKeys = Object.keys(MATRIX[selectedKey]);\n const closestSpacing = findClosestKey(\n sideStrutsCenterSpace,\n sideStructsCenterSpaceKeys,\n 0\n );\n\n const spacingKey = `${closestSpacing}`;\n\n if (MATRIX[selectedKey][spacingKey] !== undefined) {\n return MATRIX[selectedKey][spacingKey];\n } else {\n return 999;\n }\n}\n\nfunction findClosestKey(value: number, keys: string[], index: number): string {\n const numericKeys = keys\n .map((key) => parseInt(key.split(\"x\")[index]))\n .filter((key) => key >= value);\n if (numericKeys.length === 0) return \"No matching key found.\";\n const closestKey = Math.min(...numericKeys);\n return closestKey.toString();\n}\n\n// 枠組部材の組み合わせ符号選択表\n// 1階層目のkeyは外寸幅mm x 側桟の長さmm\n// 2階層目のkeyは側支柱の中心間隔mm\ninterface MatrixData {\n [key: string]: {\n [key: string]: number;\n };\n}\n\nconst MATRIX: MatrixData = {\n \"500x500\": {\n \"600\": 1,\n \"750\": 1,\n \"910\": 1,\n \"1050\": 1,\n \"1200\": 1,\n },\n \"500x750\": {\n \"600\": 2,\n \"750\": 3,\n \"910\": 3,\n \"1050\": 3,\n \"1200\": 3,\n },\n \"500x1000\": {\n \"600\": 3,\n \"750\": 4,\n \"910\": 5,\n \"1050\": 5,\n \"1200\": 5,\n },\n \"500x1250\": {\n \"600\": 5,\n \"750\": 5,\n \"910\": 5,\n \"1050\": 5,\n \"1200\": 6,\n },\n \"500x1500\": {\n \"600\": 6,\n \"750\": 6,\n \"910\": 6,\n \"1050\": 6,\n \"1200\": 6,\n },\n \"500x1750\": {\n \"600\": 7,\n \"750\": 7,\n \"910\": 7,\n \"1050\": 7,\n \"1200\": 7,\n },\n \"500x2000\": {\n \"600\": 8,\n \"750\": 8,\n \"910\": 8,\n \"1050\": 8,\n \"1200\": 8,\n },\n \"500x2250\": {\n \"600\": 10,\n \"750\": 10,\n \"910\": 10,\n \"1050\": 10,\n \"1200\": 10,\n },\n \"750x500\": {\n \"600\": 1,\n \"750\": 1,\n \"910\": 2,\n \"1050\": 3,\n \"1200\": 3,\n },\n \"750x750\": {\n \"600\": 3,\n \"750\": 3,\n \"910\": 4,\n \"1050\": 4,\n \"1200\": 5,\n },\n \"750x1000\": {\n \"600\": 5,\n \"750\": 5,\n \"910\": 5,\n \"1050\": 5,\n \"1200\": 6,\n },\n \"750x1250\": {\n \"600\": 5,\n \"750\": 6,\n \"910\": 6,\n \"1050\": 6,\n \"1200\": 6,\n },\n \"750x1500\": {\n \"600\": 6,\n \"750\": 6,\n \"910\": 7,\n \"1050\": 7,\n \"1200\": 7,\n },\n \"750x1750\": {\n \"600\": 7,\n \"750\": 7,\n \"910\": 7,\n \"1050\": 8,\n \"1200\": 8,\n },\n \"750x2000\": {\n \"600\": 8,\n \"750\": 8,\n \"910\": 8,\n \"1050\": 8,\n \"1200\": 8,\n },\n \"750x2250\": {\n \"600\": 10,\n \"750\": 10,\n \"910\": 10,\n \"1050\": 10,\n \"1200\": 10,\n },\n \"1000x500\": {\n \"600\": 1,\n \"750\": 2,\n \"910\": 3,\n \"1050\": 3,\n \"1200\": 3,\n },\n \"1000x750\": {\n \"600\": 3,\n \"750\": 4,\n \"910\": 5,\n \"1050\": 5,\n \"1200\": 5,\n },\n \"1000x1000\": {\n \"600\": 5,\n \"750\": 5,\n \"910\": 6,\n \"1050\": 6,\n \"1200\": 6,\n },\n \"1000x1250\": {\n \"600\": 6,\n \"750\": 6,\n \"910\": 6,\n \"1050\": 7,\n \"1200\": 7,\n },\n \"1000x1500\": {\n \"600\": 6,\n \"750\": 7,\n \"910\": 7,\n \"1050\": 7,\n \"1200\": 8,\n },\n \"1000x1750\": {\n \"600\": 7,\n \"750\": 7,\n \"910\": 9,\n \"1050\": 9,\n \"1200\": 10,\n },\n \"1000x2000\": {\n \"600\": 9,\n \"750\": 9,\n \"910\": 10,\n \"1050\": 10,\n \"1200\": 10,\n },\n \"1000x2250\": {\n \"600\": 10,\n \"750\": 10,\n \"910\": 11,\n \"1050\": 11,\n \"1200\": 11,\n },\n \"1250x500\": {\n \"600\": 2,\n \"750\": 3,\n \"910\": 3,\n \"1050\": 4,\n \"1200\": 4,\n },\n \"1250x750\": {\n \"600\": 4,\n \"750\": 5,\n \"910\": 5,\n \"1050\": 5,\n \"1200\": 5,\n },\n \"1250x1000\": {\n \"600\": 5,\n \"750\": 6,\n \"910\": 6,\n \"1050\": 6,\n \"1200\": 6,\n },\n \"1250x1250\": {\n \"600\": 6,\n \"750\": 6,\n \"910\": 7,\n \"1050\": 7,\n \"1200\": 7,\n },\n \"1250x1500\": {\n \"600\": 7,\n \"750\": 7,\n \"910\": 8,\n \"1050\": 8,\n \"1200\": 8,\n },\n \"1250x1750\": {\n \"600\": 8,\n \"750\": 8,\n \"910\": 10,\n \"1050\": 10,\n \"1200\": 10,\n },\n \"1250x2000\": {\n \"600\": 10,\n \"750\": 10,\n \"910\": 10,\n \"1050\": 11,\n \"1200\": 11,\n },\n \"1250x2250\": {\n \"600\": 10,\n \"750\": 10,\n \"910\": 11,\n \"1050\": 11,\n \"1200\": 11,\n },\n \"1500x500\": {\n \"600\": 3,\n \"750\": 3,\n \"910\": 4,\n \"1050\": 5,\n \"1200\": 5,\n },\n \"1500x750\": {\n \"600\": 5,\n \"750\": 5,\n \"910\": 5,\n \"1050\": 6,\n \"1200\": 6,\n },\n \"1500x1000\": {\n \"600\": 6,\n \"750\": 6,\n \"910\": 6,\n \"1050\": 7,\n \"1200\": 7,\n },\n \"1500x1250\": {\n \"600\": 6,\n \"750\": 7,\n \"910\": 7,\n \"1050\": 9,\n \"1200\": 9,\n },\n \"1500x1500\": {\n \"600\": 8,\n \"750\": 9,\n \"910\": 10,\n \"1050\": 10,\n \"1200\": 10,\n },\n \"1500x1750\": {\n \"600\": 8,\n \"750\": 9,\n \"910\": 10,\n \"1050\": 10,\n \"1200\": 11,\n },\n \"1500x2000\": {\n \"600\": 10,\n \"750\": 10,\n \"910\": 11,\n \"1050\": 11,\n \"1200\": 11,\n },\n \"1500x2250\": {\n \"600\": 10,\n \"750\": 11,\n \"910\": 11,\n \"1050\": 11,\n \"1200\": 11,\n },\n};\n","export * from \"./combinationSign\";\n","export function calcCombinationSign(\n nw: number,\n sideStrutsCenterSpace: number,\n signCalcOuterWidth: number,\n innerHeight: number\n): number | string {\n if (!nw || !sideStrutsCenterSpace || !signCalcOuterWidth || !innerHeight) {\n return 999;\n }\n const firstKeys = Object.keys(MATRIX);\n const closestOuterWidth = findClosestKey(signCalcOuterWidth, firstKeys, 0);\n const closestInnerHeight = findClosestKey(innerHeight, firstKeys, 1);\n\n const selectedKey = `${closestOuterWidth}x${closestInnerHeight}`;\n\n if (!MATRIX[selectedKey]) {\n return 999;\n }\n\n const nwSpacingKeys = Object.keys(MATRIX[selectedKey]);\n const closestNW = findClosestKey(nw, nwSpacingKeys, 0);\n const closestSpacing = findClosestKey(\n sideStrutsCenterSpace,\n nwSpacingKeys,\n 1\n );\n\n const weightSpacingKey = `${closestNW}x${closestSpacing}`;\n\n if (MATRIX[selectedKey][weightSpacingKey] !== undefined) {\n return MATRIX[selectedKey][weightSpacingKey];\n } else {\n return 999;\n }\n}\n\nfunction findClosestKey(value: number, keys: string[], index: number): string {\n const numericKeys = keys\n .map((key) => parseInt(key.split(\"x\")[index]))\n .filter((key) => key >= value);\n if (numericKeys.length === 0) return \"No matching key found.\";\n const closestKey = Math.min(...numericKeys);\n return closestKey.toString();\n}\n\n// 枠組部材の組み合わせ符号選択表\n// 1階層目のkeyは外寸幅mm x 内寸高さmm\n// 2階層目のkeyは重量kg x 支柱中心間隔mm\ninterface MatrixData {\n [key: string]: {\n [key: string]: number;\n };\n}\nconst MATRIX: MatrixData = {\n \"1000x1000\": {\n \"1000x600\": 1,\n \"1000x750\": 1,\n \"1000x910\": 1,\n \"1000x1050\": 1,\n \"1000x1230\": 1,\n \"2000x600\": 1,\n \"2000x750\": 1,\n \"2000x910\": 1,\n \"2000x1050\": 1,\n \"2000x1230\": 1,\n \"3000x600\": 11,\n \"3000x750\": 11,\n \"3000x910\": 11,\n \"3000x1050\": 11,\n \"3000x1230\": 11,\n \"4000x600\": 21,\n \"4000x750\": 21,\n \"4000x910\": 21,\n \"4000x1050\": 21,\n \"4000x1230\": 21,\n \"5000x600\": 21,\n \"5000x750\": 21,\n \"5000x910\": 21,\n \"5000x1050\": 21,\n \"5000x1230\": 21,\n \"6500x600\": 31,\n \"6500x750\": 31,\n \"6500x910\": 31,\n \"6500x1050\": 31,\n \"6500x1230\": 31,\n \"8000x600\": 31,\n \"8000x750\": 31,\n \"8000x910\": 31,\n \"8000x1050\": 31,\n \"8000x1230\": 31,\n \"10000x600\": 31,\n \"10000x750\": 31,\n \"10000x910\": 31,\n \"10000x1050\": 31,\n \"10000x1230\": 31,\n \"12500x600\": 31,\n \"12500x750\": 31,\n \"12500x910\": 31,\n \"12500x1050\": 31,\n \"12500x1230\": 31,\n \"15500x600\": 31,\n \"15500x750\": 31,\n \"15500x910\": 31,\n \"15500x1050\": 31,\n \"15500x1230\": 31,\n \"20000x600\": 41,\n \"20000x750\": 41,\n \"20000x910\": 41,\n \"20000x1050\": 41,\n \"20000x1230\": 41,\n \"25000x600\": 41,\n \"25000x750\": 41,\n \"25000x910\": 41,\n \"25000x1050\": 41,\n \"25000x1230\": 41,\n \"30000x600\": 51,\n \"30000x750\": 51,\n \"30000x910\": 51,\n \"30000x1050\": 51,\n \"30000x1230\": 51,\n \"35000x600\": 51,\n \"35000x750\": 51,\n \"35000x910\": 51,\n \"35000x1050\": 51,\n \"35000x1230\": 51,\n \"40000x600\": 51,\n \"40000x750\": 51,\n \"40000x910\": 51,\n \"40000x1050\": 51,\n \"40000x1230\": 51,\n \"50000x600\": 51,\n \"50000x750\": 51,\n \"50000x910\": 51,\n \"50000x1050\": 51,\n \"50000x1230\": 51,\n \"60000x600\": 61,\n \"60000x750\": 61,\n \"60000x910\": 61,\n \"60000x1050\": 61,\n \"60000x1230\": 61,\n },\n \"1000x1500\": {\n \"1000x600\": 1.0,\n \"1000x750\": 11.0,\n \"1000x910\": 2.0,\n \"1000x1050\": 2.0,\n \"1000x1230\": 2.0,\n \"2000x600\": 11.0,\n \"2000x750\": 11.0,\n \"2000x910\": 11.0,\n \"2000x1050\": 11.0,\n \"2000x1230\": 12.0,\n \"3000x600\": 11.0,\n \"3000x750\": 11.0,\n \"3000x910\": 11.0,\n \"3000x1050\": 11.0,\n \"3000x1230\": 12.0,\n \"4000x600\": 21.0,\n \"4000x750\": 21.0,\n \"4000x910\": 21.0,\n \"4000x1050\": 21.0,\n \"4000x1230\": 21.0,\n \"5000x600\": 21.0,\n \"5000x750\": 21.0,\n \"5000x910\": 21.0,\n \"5000x1050\": 21.0,\n \"5000x1230\": 21.0,\n \"6500x600\": 31.0,\n \"6500x750\": 31.0,\n \"6500x910\": 31.0,\n \"6500x1050\": 31.0,\n \"6500x1230\": 31.0,\n \"8000x600\": 31.0,\n \"8000x750\": 31.0,\n \"8000x910\": 31.0,\n \"8000x1050\": 31.0,\n \"8000x1230\": 31.0,\n \"10000x600\": 31.0,\n \"10000x750\": 31.0,\n \"10000x910\": 31.0,\n \"10000x1050\": 31.0,\n \"10000x1230\": 31.0,\n \"12500x600\": 31.0,\n \"12500x750\": 31.0,\n \"12500x910\": 31.0,\n \"12500x1050\": 31.0,\n \"12500x1230\": 31.0,\n \"15500x600\": 31.0,\n \"15500x750\": 31.0,\n \"15500x910\": 31.0,\n \"15500x1050\": 31.0,\n \"15500x1230\": 31.0,\n \"20000x600\": 41.0,\n \"20000x750\": 41.0,\n \"20000x910\": 41.0,\n \"20000x1050\": 41.0,\n \"20000x1230\": 41.0,\n \"25000x600\": 41.0,\n \"25000x750\": 41.0,\n \"25000x910\": 41.0,\n \"25000x1050\": 41.0,\n \"25000x1230\": 41.0,\n \"30000x600\": 51.0,\n \"30000x750\": 51.0,\n \"30000x910\": 51.0,\n \"30000x1050\": 51.0,\n \"30000x1230\": 51.0,\n \"35000x600\": 51.0,\n \"35000x750\": 51.0,\n \"35000x910\": 51.0,\n \"35000x1050\": 51.0,\n \"35000x1230\": 51.0,\n \"40000x600\": 51.0,\n \"40000x750\": 51.0,\n \"40000x910\": 51.0,\n \"40000x1050\": 51.0,\n \"40000x1230\": 51.0,\n \"50000x600\": 51.0,\n \"50000x750\": 51.0,\n \"50000x910\": 51.0,\n \"50000x1050\": 51.0,\n \"50000x1230\": 51.0,\n \"60000x600\": 61.0,\n \"60000x750\": 61.0,\n \"60000x910\": 61.0,\n \"60000x1050\": 61.0,\n \"60000x1230\": 61.0,\n },\n \"1000x2000\": {\n \"1000x600\": 2.0,\n \"1000x750\": 2.0,\n \"1000x910\": 2.0,\n \"1000x1050\": 2.0,\n \"1000x1230\": 2.0,\n \"2000x600\": 12.0,\n \"2000x750\": 12.0,\n \"2000x910\": 12.0,\n \"2000x1050\": 12.0,\n \"2000x1230\": 12.0,\n \"3000x600\": 12.0,\n \"3000x750\": 12.0,\n \"3000x910\": 12.0,\n \"3000x1050\": 12.0,\n \"3000x1230\": 12.0,\n \"4000x600\": 21.0,\n \"4000x750\": 21.0,\n \"4000x910\": 22.0,\n \"4000x1050\": 22.0,\n \"4000x1230\": 22.0,\n \"5000x600\": 21.0,\n \"5000x750\": 21.0,\n \"5000x910\": 22.0,\n \"5000x1050\": 22.0,\n \"5000x1230\": 22.0,\n \"6500x600\": 31.0,\n \"6500x750\": 31.0,\n \"6500x910\": 31.0,\n \"6500x1050\": 31.0,\n \"6500x1230\": 31.0,\n \"8000x600\": 31.0,\n \"8000x750\": 31.0,\n \"8000x910\": 31.0,\n \"8000x1050\": 31.0,\n \"8000x1230\": 32.0,\n \"10000x600\": 31.0,\n \"10000x750\": 31.0,\n \"10000x910\": 31.0,\n \"10000x1050\": 31.0,\n \"10000x1230\": 32.0,\n \"12500x600\": 31.0,\n \"12500x750\": 31.0,\n \"12500x910\": 31.0,\n \"12500x1050\": 31.0,\n \"12500x1230\": 32.0,\n \"15500x600\": 31.0,\n \"15500x750\": 31.0,\n \"15500x910\": 31.0,\n \"15500x1050\": 31.0,\n \"15500x1230\": 32.0,\n \"20000x600\": 41.0,\n \"20000x750\": 41.0,\n \"20000x910\": 41.0,\n \"20000x1050\": 41.0,\n \"20000x1230\": 41.0,\n \"25000x600\": 41.0,\n \"25000x750\": 41.0,\n \"25000x910\": 41.0,\n \"25000x1050\": 41.0,\n \"25000x1230\": 41.0,\n \"30000x600\": 51.0,\n \"30000x750\": 51.0,\n \"30000x910\": 51.0,\n \"30000x1050\": 51.0,\n \"30000x1230\": 51.0,\n \"35000x600\": 51.0,\n \"35000x750\": 51.0,\n \"35000x910\": 51.0,\n \"35000x1050\": 51.0,\n \"35000x1230\": 51.0,\n \"40000x600\": 51.0,\n \"40000x750\": 51.0,\n \"40000x910\": 51.0,\n \"40000x1050\": 51.0,\n \"40000x1230\": 51.0,\n \"50000x600\": 51.0,\n \"50000x750\": 51.0,\n \"50000x910\": 51.0,\n \"50000x1050\": 51.0,\n \"50000x1230\": 51.0,\n \"60000x600\": 61.0,\n \"60000x750\": 61.0,\n \"60000x910\": 61.0,\n \"60000x1050\": 61.0,\n \"60000x1230\": 61.0,\n },\n \"1000x2500\": {\n \"1000x600\": 2.0,\n \"1000x750\": 2.0,\n \"1000x910\": 2.0,\n \"1000x1050\": 2.0,\n \"1000x1230\": 12.0,\n \"2000x600\": 12.0,\n \"2000x750\": 12.0,\n \"2000x910\": 12.0,\n \"2000x1050\": 12.0,\n \"2000x1230\": 12.0,\n \"3000x600\": 12.0,\n \"3000x750\": 12.0,\n \"3000x910\": 12.0,\n \"3000x1050\": 12.0,\n \"3000x1230\": 12.0,\n \"4000x600\": 22.0,\n \"4000x750\": 22.0,\n \"4000x910\": 22.0,\n \"4000x1050\": 22.0,\n \"4000x1230\": 22.0,\n \"5000x600\": 22.0,\n \"5000x750\": 22.0,\n \"5000x910\": 22.0,\n \"5000x1050\": 22.0,\n \"5000x1230\": 22.0,\n \"6500x600\": 31.0,\n \"6500x750\": 32.0,\n \"6500x910\": 32.0,\n \"6500x1050\": 32.0,\n \"6500x1230\": 32.0,\n \"8000x600\": 31.0,\n \"8000x750\": 32.0,\n \"8000x910\": 32.0,\n \"8000x1050\": 32.0,\n \"8000x1230\": 32.0,\n \"10000x600\": 31.0,\n \"10000x750\": 32.0,\n \"10000x910\": 32.0,\n \"10000x1050\": 32.0,\n \"10000x1230\": 32.0,\n \"12500x600\": 31.0,\n \"12500x750\": 31.0,\n \"12500x910\": 32.0,\n \"12500x1050\": 32.0,\n \"12500x1230\": 32.0,\n \"15500x600\": 31.0,\n \"15500x750\": 31.0,\n \"15500x910\": 32.0,\n \"15500x1050\": 32.0,\n \"15500x1230\": 32.0,\n \"20000x600\": 41.0,\n \"20000x750\": 41.0,\n \"20000x910\": 41.0,\n \"20000x1050\": 42.0,\n \"20000x1230\": 42.0,\n \"25000x600\": 41.0,\n \"25000x750\": 41.0,\n \"25000x910\": 41.0,\n \"25000x1050\": 42.0,\n \"25000x1230\": 42.0,\n \"30000x600\": 51.0,\n \"30000x750\": 51.0,\n \"30000x910\": 51.0,\n \"30000x1050\": 51.0,\n \"30000x1230\": 51.0,\n \"35000x600\": 51.0,\n \"35000x750\": 51.0,\n \"35000x910\": 51.0,\n \"35000x1050\": 51.0,\n \"35000x1230\": 52.0,\n \"40000x600\": 51.0,\n \"40000x750\": 51.0,\n \"40000x910\": 51.0,\n \"40000x1050\": 51.0,\n \"40000x1230\": 52.0,\n \"50000x600\": 51.0,\n \"50000x750\": 51.0,\n \"50000x910\": 51.0,\n \"50000x1050\": 51.0,\n \"50000x1230\": 52.0,\n \"60000x600\": 61.0,\n \"60000x750\": 61.0,\n \"60000x910\": 61.0,\n \"60000x1050\": 61.0,\n \"60000x1230\": 61.0,\n },\n \"1000x3000\": {\n \"1000x600\": 22.0,\n \"1000x750\": 22.0,\n \"1000x910\": 22.0,\n \"1000x1050\": 22.0,\n \"1000x1230\": 23.0,\n \"2000x600\": 12.0,\n \"2000x750\": 12.0,\n \"2000x910\": 12.0,\n \"2000x1050\": 22.0,\n \"2000x1230\": 22.0,\n \"3000x600\": 12.0,\n \"3000x750\": 12.0,\n \"3000x910\": 12.0,\n \"3000x1050\": 22.0,\n \"3000x1230\": 22.0,\n \"4000x600\": 22.0,\n \"4000x750\": 22.0,\n \"4000x910\": 22.0,\n \"4000x1050\": 22.0,\n \"4000x1230\": 22.0,\n \"5000x600\": 22.0,\n \"5000x750\": 22.0,\n \"5000x910\": 22.0,\n \"5000x1050\": 22.0,\n \"5000x1230\": 22.0,\n \"6500x600\": 32.0,\n \"6500x750\": 32.0,\n \"6500x910\": 32.0,\n \"6500x1050\": 32.0,\n \"6500x1230\": 32.0,\n \"8000x600\": 32.0,\n \"8000x750\": 32.0,\n \"8000x910\": 32.0,\n \"8000x1050\": 32.0,\n \"8000x1230\": 32.0,\n \"10000x600\": 32.0,\n \"10000x750\": 32.0,\n \"10000x910\": 32.0,\n \"10000x1050\": 32.0,\n \"10000x1230\": 32.0,\n \"12500x600\": 32.0,\n \"12500x750\": 32.0,\n \"12500x910\": 32.0,\n \"12500x1050\": 32.0,\n \"12500x1230\": 32.0,\n \"15500x600\": 32.0,\n \"15500x750\": 32.0,\n \"15500x910\": 32.0,\n \"15500x1050\": 32.0,\n \"15500x1230\": 32.0,\n \"20000x600\": 41.0,\n \"20000x750\": 42.0,\n \"20000x910\": 42.0,\n \"20000x1050\": 42.0,\n \"20000x1230\": 42.0,\n \"25000x600\": 41.0,\n \"25000x750\": 42.0,\n \"25000x910\": 42.0,\n \"25000x1050\": 42.0,\n \"25000x1230\": 42.0,\n \"30000x600\": 51.0,\n \"30000x750\": 51.0,\n \"30000x910\": 51.0,\n \"30000x1050\": 52.0,\n \"30000x1230\": 52.0,\n \"35000x600\": 51.0,\n \"35000x750\": 51.0,\n \"35000x910\": 52.0,\n \"35000x1050\": 52.0,\n \"35000x1230\": 52.0,\n \"40000x600\": 51.0,\n \"40000x750\": 51.0,\n \"40000x910\": 52.0,\n \"40000x1050\": 52.0,\n \"40000x1230\": 52.0,\n \"50000x600\": 51.0,\n \"50000x750\": 51.0,\n \"50000x910\": 52.0,\n \"50000x1050\": 52.0,\n \"50000x1230\": 52.0,\n \"60000x600\": 61.0,\n \"60000x750\": 61.0,\n \"60000x910\": 61.0,\n \"60000x1050\": 61.0,\n \"60000x1230\": 62.0,\n },\n \"1000x3500\": {\n \"1000x600\": 32.0,\n \"1000x750\": 32.0,\n \"1000x910\": 32.0,\n \"1000x1050\": 32.0,\n \"1000x1230\": 32.0,\n \"2000x600\": 23.0,\n \"2000x750\": 23.0,\n \"2000x910\": 23.0,\n \"2000x1050\": 23.0,\n \"2000x1230\": 23.0,\n \"3000x600\": 23.0,\n \"3000x750\": 23.0,\n \"3000x910\": 23.0,\n \"3000x1050\": 23.0,\n \"3000x1230\": 23.0,\n \"4000x600\": 23.0,\n \"4000x750\": 23.0,\n \"4000x910\": 23.0,\n \"4000x1050\": 23.0,\n \"4000x1230\": 23.0,\n \"5000x600\": 23.0,\n \"5000x750\": 23.0,\n \"5000x910\": 23.0,\n \"5000x1050\": 23.0,\n \"5000x1230\": 23.0,\n \"6500x600\": 32.0,\n \"6500x750\": 32.0,\n \"6500x910\": 32.0,\n \"6500x1050\": 32.0,\n \"6500x1230\": 32.0,\n \"8000x600\": 32.0,\n \"8000x750\": 32.0,\n \"8000x910\": 32.0,\n \"8000x1050\": 32.0,\n \"8000x1230\": 32.0,\n \"10000x600\": 32.0,\n \"10000x750\": 32.0,\n \"10000x910\": 32.0,\n \"10000x1050\": 32.0,\n \"10000x1230\": 32.0,\n \"12500x600\": 32.0,\n \"12500x750\": 32.0,\n \"12500x910\": 32.0,\n \"12500x1050\": 32.0,\n \"12500x1230\": 33.0,\n \"15500x600\": 32.0,\n \"15500x750\": 32.0,\n \"15500x910\": 32.0,\n \"15500x1050\": 32.0,\n \"15500x1230\": 33.0,\n \"20000x600\": 42.0,\n \"20000x750\": 42.0,\n \"20000x910\": 42.0,\n \"20000x1050\": 42.0,\n \"20000x1230\": 42.0,\n \"25000x600\": 42.0,\n \"25000x750\": 42.0,\n \"25000x910\": 42.0,\n \"25000x1050\": 42.0,\n \"25000x1230\": 42.0,\n \"30000x600\": 52.0,\n \"30000x750\": 52.0,\n \"30000x910\": 52.0,\n \"30000x1050\": 52.0,\n \"30000x1230\": 52.0,\n \"35000x600\": 52.0,\n \"35000x750\": 52.0,\n \"35000x910\": 52.0,\n \"35000x1050\": 52.0,\n \"35000x1230\": 52.0,\n \"40000x600\": 52.0,\n \"40000x750\": 52.0,\n \"40000x910\": 52.0,\n \"40000x1050\": 52.0,\n \"40000x1230\": 53.0,\n \"50000x600\": 52.0,\n \"50000x750\": 52.0,\n \"50000x910\": 52.0,\n \"50000x1050\": 52.0,\n \"50000x1230\": 52.0,\n \"60000x600\": 61.0,\n \"60000x750\": 61.0,\n \"60000x910\": 62.0,\n \"60000x1050\": 62.0,\n \"60000x1230\": 62.0,\n },\n \"1000x4000\": {\n \"1000x600\": 42.0,\n \"1000x750\": 42.0,\n \"1000x910\": 42.0,\n \"1000x1050\": 43.0,\n \"1000x1230\": 44.0,\n \"2000x600\": 42.0,\n \"2000x750\": 42.0,\n \"2000x910\": 42.0,\n \"2000x1050\": 43.0,\n \"2000x1230\": 44.0,\n \"3000x600\": 42.0,\n \"3000x750\": 42.0,\n \"3000x910\": 42.0,\n \"3000x1050\": 43.0,\n \"3000x1230\": 44.0,\n \"4000x600\": 42.0,\n \"4000x750\": 42.0,\n \"4000x910\": 42.0,\n \"4000x1050\": 43.0,\n \"4000x1230\": 44.0,\n \"5000x600\": 42.0,\n \"5000x750\": 42.0,\n \"5000x910\": 42.0,\n \"5000x1050\": 43.0,\n \"5000x1230\": 44.0,\n \"6500x600\": 42.0,\n \"6500x750\": 42.0,\n \"6500x910\": 42.0,\n \"6500x1050\": 43.0,\n \"6500x1230\": 44.0,\n \"8000x600\": 42.0,\n \"8000x750\": 42.0,\n \"8000x910\": 42.0,\n \"8000x1050\": 43.0,\n \"8000x1230\": 44.0,\n \"10000x600\": 42.0,\n \"10000x750\": 42.0,\n \"10000x910\": 42.0,\n \"10000x1050\": 43.0,\n \"10000x1230\": 44.0,\n \"12500x600\": 42.0,\n \"12500x750\": 42.0,\n \"12500x910\": 42.0,\n \"12500x1050\": 43.0,\n \"12500x1230\": 44.0,\n \"15500x600\": 42.0,\n \"15500x750\": 42.0,\n \"15500x910\": 42.0,\n \"15500x1050\": 43.0,\n \"15500x1230\": 44.0,\n \"20000x600\": 42.0,\n \"20000x750\": 42.0,\n \"20000x910\": 42.0,\n \"20000x1050\": 43.0,\n \"20000x1230\": 44.0,\n \"25000x600\": 42.0,\n \"25000x750\": 42.0,\n \"25000x910\": 42.0,\n \"25000x1050\": 43.0,\n \"25000x1230\": 44.0,\n \"30000x600\": 52.0,\n \"30000x750\": 52.0,\n \"30000x910\": 52.0,\n \"30000x1050\": 52.0,\n \"30000x1230\": 52.0,\n \"35000x600\": 52.0,\n \"35000x750\": 52.0,\n \"35000x910\": 52.0,\n \"35000x1050\": 52.0,\n \"35000x1230\": 53.0,\n \"40000x600\": 52.0,\n \"40000x750\": 52.0,\n \"40000x910\": 52.0,\n \"40000x1050\": 52.0,\n \"40000x1230\": 53.0,\n \"50000x600\": 52.0,\n \"50000x750\": 52.0,\n \"50000x910\": 52.0,\n \"50000x1050\": 52.0,\n \"50000x1230\": 53.0,\n \"60000x600\": 62.0,\n \"60000x750\": 62.0,\n \"60000x910\": 62.0,\n \"60000x1050\": 62.0,\n \"60000x1230\": 62.0,\n },\n \"1000x5000\": {\n \"1000x600\": 45.0,\n \"1000x750\": 45.0,\n \"1000x910\": 45.0,\n \"1000x1050\": 45.0,\n \"1000x1230\": 54.0,\n \"2000x600\": 45.0,\n \"2000x750\": 45.0,\n \"2000x910\": 45.0,\n \"2000x1050\": 45.0,\n \"2000x1230\": 54.0,\n \"3000x600\": 45.0,\n \"3000x750\": 45.0,\n \"3000x910\": 45.0,\n \"3000x1050\": 45.0,\n \"3000x1230\": 54.0,\n \"4000x600\": 45.0,\n \"4000x750\": 45.0,\n \"4000x910\": 45.0,\n \"4000x1050\": 45.0,\n \"4000x1230\": 54.0,\n \"5000x600\": 45.0,\n \"5000x750\": 45.0,\n \"5000x910\": 45.0,\n \"5000x1050\": 45.0,\n \"5000x1230\": 54.0,\n \"6500x600\": 45.0,\n \"6500x750\": 45.0,\n \"6500x910\": 45.0,\n \"6500x1050\": 45.0,\n \"6500x1230\": 54.0,\n \"8000x600\": 45.0,\n \"8000x750\": 45.0,\n \"8000x910\": 45.0,\n \"8000x1050\": 45.0,\n \"8000x1230\": 54.0,\n \"10000x600\": 45.0,\n \"10000x750\": 45.0,\n \"10000x910\": 45.0,\n \"10000x1050\": 45.0,\n \"10000x1230\": 54.0,\n \"12500x600\": 45.0,\n \"12500x750\": 45.0,\n \"12500x910\": 45.0,\n \"12500x1050\": 45.0,\n \"12500x1230\": 54.0,\n \"15500x600\": 45.0,\n \"15500x750\": 45.0,\n \"15500x910\": 45.0,\n \"15500x1050\": 45.0,\n \"15500x1230\": 54.0,\n \"20000x600\": 45.0,\n \"20000x750\": 45.0,\n \"20000x910\": 45.0,\n \"20000x1050\": 45.0,\n \"20000x1230\": 54.0,\n \"25000x600\": 45.0,\n \"25000x750\": 45.0,\n \"25000x910\": 45.0,\n \"25000x1050\": 45.0,\n \"25000x1230\": 54.0,\n \"30000x600\": 54.0,\n \"30000x750\": 54.0,\n \"30000x910\": 54.0,\n \"30000x1050\": 54.0,\n \"30000x1230\": 54.0,\n \"35000x600\": 54.0,\n \"35000x750\": 54.0,\n \"35000x910\": 54.0,\n \"35000x1050\": 54.0,\n \"35000x1230\": 54.0,\n \"40000x600\": 54.0,\n \"40000x750\": 54.0,\n \"40000x910\": 54.0,\n \"40000x1050\": 54.0,\n \"40000x1230\": 54.0,\n \"50000x600\": 54.0,\n \"50000x750\": 54.0,\n \"50000x910\": 54.0,\n \"50000x1050\": 54.0,\n \"50000x1230\": 54.0,\n \"60000x600\": 63.0,\n \"60000x750\": 63.0,\n \"60000x910\": 63.0,\n \"60000x1050\": 64.0,\n \"60000x1230\": 64.0,\n },\n \"1500x1000\": {\n \"1000x600\": 1.0,\n \"1000x750\": 1.0,\n \"1000x910\": 1.0,\n \"1000x1050\": 1.0,\n \"1000x1230\": 11.0,\n \"2000x600\": 11.0,\n \"2000x750\": 11.0,\n \"2000x910\": 11.0,\n \"2000x1050\": 11.0,\n \"2000x1230\": 11.0,\n \"3000x600\": 21.0,\n \"3000x750\": 21.0,\n \"3000x910\": 21.0,\n \"3000x1050\": 21.0,\n \"3000x1230\": 21.0,\n \"4000x600\": 21.0,\n \"4000x750\": 21.0,\n \"4000x910\": 21.0,\n \"4000x1050\": 21.0,\n \"4000x1230\": 21.0,\n \"5000x600\": 21.0,\n \"5000x750\": 21.0,\n \"5000x910\": 21.0,\n \"5000x1050\": 21.0,\n \"5000x1230\": 21.0,\n \"6500x600\": 31.0,\n \"6500x750\": 31.0,\n \"6500x910\": 31.0,\n \"6500x1050\": 31.0,\n \"6500x1230\": 31.0,\n \"8000x600\": 31.0,\n \"8000x750\": 31.0,\n \"8000x910\": 31.0,\n \"8000x1050\": 31.0,\n \"8000x1230\": 31.0,\n \"10000x600\": 31.0,\n \"10000x750\": 31.0,\n \"10000x910\": 31.0,\n \"10000x1050\": 31.0,\n \"10000x1230\": 31.0,\n \"12500x600\": 31.0,\n \"12500x750\": 31.0,\n \"12500x910\": 31.0,\n \"12500x1050\": 31.0,\n \"12500x1230\": 31.0,\n \"15500x600\": 41.0,\n \"15500x750\": 41.0,\n \"15500x910\": 41.0,\n \"15500x1050\": 41.0,\n \"15500x1230\": 41.0,\n \"20000x600\": 41.0,\n \"20000x750\": 41.0,\n \"20000x910\": 41.0,\n \"20000x1050\": 41.0,\n \"20000x1230\": 41.0,\n \"25000x600\": 51.0,\n \"25000x750\": 51.0,\n \"25000x910\": 51.0,\n \"25000x1050\": 51.0,\n \"25000x1230\": 51.0,\n \"30000x600\": 51.0,\n \"30000x750\": 51.0,\n \"30000x910\": 51.0,\n \"30000x1050\": 51.0,\n \"30000x1230\": 51.0,\n \"35000x600\": 51.0,\n \"35000x750\": 51.0,\n \"35000x910\": 51.0,\n \"35000x1050\": 51.0,\n \"35000x1230\": 51.0,\n \"40000x600\": 51.0,\n \"40000x750\": 51.0,\n \"40000x910\": 51.0,\n \"40000x1050\": 51.0,\n \"40000x1230\": 52.0,\n \"50000x600\": 51.0,\n \"50000x750\": 51.0,\n \"50000x910\": 52.0,\n \"50000x1050\": 51.0,\n \"50000x1230\": 52.0,\n \"60000x600\": 61.0,\n \"60000x750\": 61.0,\n \"60000x910\": 61.0,\n \"60000x1050\": 61.0,\n \"60000x1230\": 61.0,\n },\n \"1500x1500\": {\n \"1000x600\": 2.0,\n \"1000x750\": 2.0,\n \"1000x910\": 2.0,\n \"1000x1050\": 2.0,\n \"1000x1230\": 2.0,\n \"2000x600\": 11.0,\n \"2000x750\": 12.0,\n \"2000x910\": 12.0,\n \"2000x1050\": 12.0,\n \"2000x1230\": 12.0,\n \"3000x600\": 21.0,\n \"3000x750\": 21.0,\n \"3000x910\": 21.0,\n \"3000x1050\": 21.0,\n \"3000x1230\": 22.0,\n \"4000x600\": 21.0,\n \"4000x750\": 21.0,\n \"4000x910\": 21.0,\n \"4000x1050\": 21.0,\n \"4000x1230\": 22.0,\n \"5000x600\": 31.0,\n \"5000x750\": 31.0,\n \"5000x910\": 31.0,\n \"5000x1050\": 31.0,\n \"5000x1230\": 31.0,\n \"6500x600\": 31.0,\n \"6500x750\": 31.0,\n \"6500x910\": 31.0,\n \"6500x1050\": 31.0,\n \"6500x1230\": 31.0,\n \"8000x600\": 31.0,\n \"8000x750\": 31.0,\n \"8000x910\": 31.0,\n \"8000x1050\": 31.0,\n \"8000x1230\": 31.0,\n \"10000x600\": 31.0,\n \"10000x750\": 31.0,\n \"10000x910\": 31.0,\n \"10000x1050\": 31.0,\n \"10000x1230\": 31.0,\n \"12500x600\": 31.0,\n \"12500x750\": 31.0,\n \"12500x910\": 31.0,\n \"12500x1050\": 31.0,\n \"12500x1230\": 31.0,\n \"15500x600\": 41.0,\n \"15500x750\": 41.0,\n \"15500x910\": 41.0,\n \"15500x1050\": 41.0,\n \"15500x1230\": 41.0,\n \"20000x600\": 41.0,\n \"20000x750\": 41.0,\n \"20000x910\": 41.0,\n \"20000x1050\": 41.0,\n \"20000x1230\": 41.0,\n \"25000x600\": 51.0,\n \"25000x750\": 51.0,\n \"25000x910\": 51.0,\n \"25000x1050\": 51.0,\n \"25000x1230\": 51.0,\n \"30000x600\": 51.0,\n \"30000x750\": 51.0,\n \"30000x910\": 51.0,\n \"30000x1050\": 51.0,\n \"30000x1230\": 51.0,\n \"35000x600\": 51.0,\n \"35000x750\": 51.0,\n \"35000x910\": 51.0,\n \"35000x1050\": 51.0,\n \"35000x1230\": 51.0,\n \"40000x600\": 51.0,\n \"40000x750\": 51.0,\n \"40000x910\": 51.0,\n \"40000x1050\": 51.0,\n \"40000x1230\": 52.0,\n \"50000x600\": 51.0,\n \"50000x750\": 51.0,\n \"50000x910\": 52.0,\n \"50000x1050\": 51.0,\n \"50000x1230\": 52.0,\n \"60000x600\": 61.0,\n \"60000x750\": 61.0,\n \"60000x910\": 61.0,\n \"60000x1050\": 61.0,\n \"60000x1230\": 61.0,\n },\n \"1500x2000\": {\n \"1000x600\": 2.0,\n \"1000x750\": 2.0,\n \"1000x910\": 2.0,\n \"1000x1050\": 2.0,\n \"1000x1230\": 12.0,\n \"2000x600\": 12.0,\n \"2000x750\": 12.0,\n \"2000x910\": 12.0,\n \"2000x1050\": 12.0,\n \"2000x1230\": 12.0,\n \"3000x600\": 22.0,\n \"3000x750\": 22.0,\n \"3000x910\": 22.0,\n \"3000x1050\": 22.0,\n \"3000x1230\": 22.0,\n \"4000x600\": 22.0,\n \"4000x750\": 22.0,\n \"4000x910\": 22.0,\n \"4000x1050\": 22.0,\n \"4000x1230\": 22.0,\n \"5000x600\": 31.0,\n \"5000x750\": 31.0,\n \"5000x910\": 31.0,\n \"5000x1050\": 31.0,\n \"5000x1230\": 32.0,\n \"6500x600\": 31.0,\n \"6500x750\": 31.0,\n \"6500x910\": 31.0,\n \"6500x1050\": 31.0,\n \"6500x1230\": 32.0,\n \"8000x600\": 31.0,\n \"8000x750\": 31.0,\n \"8000x910\": 31.0,\n \"8000x1050\": 31.0,\n \"8000x1230\": 32.0,\n \"10000x600\": 31.0,\n \"10000x750\": 31.0,\n \"10000x910\": 31.0,\n \"10000x1050\": 31.0,\n \"10000x1230\": 32.0,\n \"12500x600\": 31.0,\n \"12500x750\": 31.0,\n \"12500x910\": 32.0,\n \"12500x1050\": 32.0,\n \"12500x1230\": 32.0,\n \"15500x600\": 41.0,\n \"15500x750\": 41.0,\n \"15500x910\": 41.0,\n \"15500x1050\": 42.0,\n \"15500x1230\": 42.0,\n \"20000x600\": 41.0,\n \"20000x750\": 41.0,\n \"20000x910\": 41.0,\n \"20000x1050\": 42.0,\n \"20000x1230\": 42.0,\n \"25000x600\": 51.0,\n \"25000x750\": 51.0,\n \"25000x910\": 51.0,\n \"25000x1050\": 51.0,\n \"25000x1230\": 51.0,\n \"30000x600\": 51.0,\n \"30000x750\": 51.0,\n \"30000x910\": 51.0,\n \"30000x1050\": 51.0,\n \"30000x1230\": 51.0,\n \"35000x600\": 51.0,\n \"35000x750\": 51.0,\n \"35000x910\": 51.0,\n \"35000x1050\": 51.0,\n \"35000x1230\": 52.0,\n \"40000x600\": 51.0,\n \"40000x750\": 51.0,\n \"40000x910\": 51.0,\n \"40000x1050\": 51.0,\n \"40000x1230\": 52.0,\n \"50000x600\": 51.0,\n \"50000x750\": 51.0,\n \"50000x910\": 52.0,\n \"50000x1050\": 51.0,\n \"50000x1230\": 52.0,\n \"60000x600\": 61.0,\n \"60000x750\": 61.0,\n \"60000x910\": 61.0,\n \"60000x1050\": 61.0,\n \"60000x1230\": 61.0,\n },\n \"1500x2500\": {\n \"1000x600\": 12.0,\n \"1000x750\": 12.0,\n \"1000x910\": 22.0,\n \"1000x1050\": 22.0,\n \"1000x1230\": 23.0,\n \"2000x600\": 12.0,\n \"2000x750\": 12.0,\n \"2000x910\": 12.0,\n \"2000x1050\": 22.0,\n \"2000x1230\": 22.0,\n \"3000x600\": 22.0,\n \"3000x750\": 22.0,\n \"3000x910\": 22.0,\n \"3000x1050\": 22.0,\n \"3000x1230\": 22.0,\n \"4000x600\": 22.0,\n \"4000x750\": 22.0,\n \"4000x910\": 22.0,\n \"4000x1050\": 22.0,\n \"4000x1230\": 22.0,\n \"5000x600\": 31.0,\n \"5000x750\": 32.0,\n \"5000x910\": 32.0,\n \"5000x1050\": 32.0,\n \"5000x1230\": 32.0,\n \"6500x600\": 31.0,\n \"6500x750\": 32.0,\n \"6500x910\": 32.0,\n \"6500x1050\": 32.0,\n \"6500x1230\": 32.0,\n \"8000x600\": 31.0,\n \"8000x750\": 32.0,\n \"8000x910\": 32.0,\n \"8000x1050\": 32.0,\n \"8000x1230\": 32.0,\n \"10000x600\": 31.0,\n \"10000x750\": 32.0,\n \"10000x910\": 32.0,\n \"10000x1050\": 32.0,\n \"10000x1230\": 32.0,\n \"12500x600\": 32.0,\n \"12500x750\": 32.0,\n \"12500x910\": 32.0,\n \"12500x1050\": 32.0,\n \"12500x1230\": 32.0,\n \"15500x600\": 42.0,\n \"15500x750\": 42.0,\n \"15500x910\": 42.0,\n \"15500x1050\": 42.0,\n \"15500x1230\": 42.0,\n \"20000x600\": 41.0,\n \"20000x750\": 42.0,\n \"20000x910\": 42.0,\n \"20000x1050\": 42.0,\n \"20000x1230\": 42.0,\n \"25000x600\": 51.0,\n \"25000x750\": 51.0,\n \"25000x910\": 51.0,\n \"25000x1050\": 52.0,\n \"25000x1230\": 52.0,\n \"30000x600\": 51.0,\n \"30000x750\": 51.0,\n \"30000x910\": 51.0,\n \"30000x1050\": 52.0,\n \"30000x1230\": 52.0,\n \"35000x600\": 51.0,\n \"35000x750\": 51.0,\n \"35000x910\": 52.0,\n \"35000x1050\": 52.0,\n \"35000x1230\": 52.0,\n \"40000x600\": 51.0,\n \"40000x750\": 51.0,\n \"40000x910\": 52.0,\n \"40000x1050\": 52.0,\n \"40000x1230\": 52.0,\n \"50000x600\": 51.0,\n \"50000x750\": 51.0,\n \"50000x910\": 52.0,\n \"50000x1050\": 52.0,\n \"50000x1230\": 52.0,\n \"60000x600\": 61.0,\n \"60000x750\": 61.0,\n \"60000x910\": 61.0,\n \"60000x1050\": 62.0,\n \"60000x1230\": 62.0,\n },\n \"1500x3000\": {\n \"1000x600\": 22.0,\n \"1000x750\": 22.0,\n \"1000x910\": 23.0,\n \"1000x1050\": 32.0,\n \"1000x1230\": 33.0,\n \"2000x600\": 12.0,\n \"2000x750\": 22.0,\n \"2000x910\": 23.0,\n \"2000x1050\": 23.0,\n \"2000x1230\": 32.0,\n \"3000x600\": 22.0,\n \"3000x750\": 22.0,\n \"3000x910\": 23.0,\n \"3000x1050\": 23.0,\n \"3000x1230\": 32.0,\n \"4000x600\": 22.0,\n \"4000x750\": 22.0,\n \"4000x910\": 23.0,\n \"4000x1050\": 23.0,\n \"4000x1230\": 32.0,\n \"5000x600\": 32.0,\n \"5000x750\": 32.0,\n \"5000x910\": 32.0,\n \"5000x1050\": 32.0,\n \"5000x1230\": 32.0,\n \"6500x600\": 32.0,\n \"6500x750\": 32.0,\n \"6500x910\": 32.0,\n \"6500x1050\": 32.0,\n \"6500x1230\": 32.0,\n \"8000x600\": 32.0,\n \"8000x750\": 32.0,\n \"8000x910\": 32.0,\n \"8000x1050\": 32.0,\n \"8000x1230\": 32.0,\n \"10000x600\": 32.0,\n \"10000x750\": 32.0,\n \"10000x910\": 32.0,\n \"10000x1050\": 32.0,\n \"10000x1230\": 32.0,\n \"12500x600\": 32.0,\n \"12500x750\": 32.0,\n \"12500x910\": 32.0,\n \"12500x1050\": 33.0,\n \"12500x1230\": 34.0,\n \"15500x600\": 42.0,\n \"15500x750\": 42.0,\n \"15500x910\": 42.0,\n \"15500x1050\": 42.0,\n \"15500x1230\": 43.0,\n \"20000x600\": 42.0,\n \"20000x750\": 42.0,\n \"20000x910\": 42.0,\n \"20000x1050\": 42.0,\n \"20000x1230\": 43.0,\n \"25000x600\": 51.0,\n \"25000x750\": 52.0,\n \"25000x910\": 52.0,\n \"25000x1050\": 52.0,\n \"25000x1230\": 52.0,\n \"30000x600\": 51.0,\n \"30000x750\": 52.0,\n \"30000x910\": 52.0,\n \"30000x1050\": 52.0,\n \"30000x1230\": 52.0,\n \"35000x600\": 52.0,\n \"35000x750\": 52.0,\n \"35000x910\": 52.0,\n \"35000x1050\": 52.0,\n \"35000x1230\": 52.0,\n \"40000x600\": 52.0,\n \"40000x750\": 52.0,\n \"40000x910\": 52.0,\n \"40000x1050\": 52.0,\n \"40000x1230\": 52.0,\n \"50000x600\": 52.0,\n \"50000x750\": 52.0,\n \"50000x910\": 52.0,\n \"50000x1050\": 52.0,\n \"50000x1230\": 52.0,\n \"60000x600\": 61.0,\n \"60000x750\": 62.0,\n \"60000x910\": 62.0,\n \"60000x1050\": 62.0,\n \"60000x1230\": 62.0,\n },\n \"1500x3500\": {\n \"1000x600\": 32.0,\n \"1000x750\": 32.0,\n \"1000x910\": 33.0,\n \"1000x1050\": 33.0,\n \"1000x1230\": 43.0,\n \"2000x600\": 23.0,\n \"2000x750\": 23.0,\n \"2000x910\": 32.0,\n \"2000x1050\": 33.0,\n \"2000x1230\": 34.0,\n \"3000x600\": 23.0,\n \"3000x750\": 23.0,\n \"3000x910\": 32.0,\n \"3000x1050\": 33.0,\n \"3000x1230\": 34.0,\n \"4000x600\": 32.0,\n \"4000x750\": 32.0,\n \"4000x910\": 32.0,\n \"4000x1050\": 33.0,\n \"4000x1230\": 34.0,\n \"5000x600\": 32.0,\n \"5000x750\": 32.0,\n \"5000x910\": 32.0,\n \"5000x1050\": 33.0,\n \"5000x1230\": 34.0,\n \"6500x600\": 32.0,\n \"6500x750\": 32.0,\n \"6500x910\": 32.0,\n \"6500x1050\": 33.0,\n \"6500x1230\": 34.0,\n \"8000x600\": 32.0,\n \"8000x750\": 32.0,\n \"8000x910\": 32.0,\n \"8000x1050\": 33.0,\n \"8000x1230\": 34.0,\n \"10000x600\": 32.0,\n \"10000x750\": 32.0,\n \"10000x910\": 32.0,\n \"10000x1050\": 33.0,\n \"10000x1230\": 34.0,\n \"12500x600\": 32.0,\n \"12500x750\": 33.0,\n \"12500x910\": 34.0,\n \"12500x1050\": 34.0,\n \"12500x1230\": 44.0,\n \"15500x600\": 42.0,\n \"15500x750\": 42.0,\n \"15500x910\": 43.0,\n \"15500x1050\": 44.0,\n \"15500x1230\": 44.0,\n \"20000x600\": 42.0,\n \"20000x750\": 42.0,\n \"20000x910\": 43.0,\n \"20000x1050\": 44.0,\n \"20000x1230\": 44.0,\n \"25000x600\": 52.0,\n \"25000x750\": 52.0,\n \"25000x910\": 52.0,\n \"25000x1050\": 52.0,\n \"25000x1230\": 53.0,\n \"30000x600\": 52.0,\n \"30000x750\": 52.0,\n \"30000x910\": 52.0,\n \"30000x1050\": 52.0,\n \"30000x1230\": 53.0,\n \"35000x600\": 52.0,\n \"35000x750\": 52.0,\n \"35000x910\": 52.0,\n \"35000x1050\": 53.0,\n \"35000x1230\": 54.0,\n \"40000x600\": 52.0,\n \"40000x750\": 52.0,\n \"40000x910\": 52.0,\n \"40000x1050\": 53.0,\n \"40000x1230\": 54.0,\n \"50000x600\": 52.0,\n \"50000x750\": 52.0,\n \"50000x910\": 53.0,\n \"50000x1050\": 53.0,\n \"50000x1230\": 54.0,\n \"60000x600\": 62.0,\n \"60000x750\": 62.0,\n \"60000x910\": 62.0,\n \"60000x1050\": 62.0,\n \"60000x1230\": 63.0,\n },\n \"1500x4000\": {\n \"1000x600\": 42.0,\n \"1000x750\": 43.0,\n \"1000x910\": 44.0,\n \"1000x1050\": 44.0,\n \"1000x1230\": 44.0,\n \"2000x600\": 42.0,\n \"2000x750\": 43.0,\n \"2000x910\": 44.0,\n \"2000x1050\": 44.0,\n \"2000x1230\": 44.0,\n \"3000x600\": 42.0,\n \"3000x750\": 43.0,\n \"3000x910\": 44.0,\n \"3000x1050\": 44.0,\n \"3000x1230\": 44.0,\n \"4000x600\": 42.0,\n \"4000x750\": 43.0,\n \"4000x910\": 44.0,\n \"4000x1050\": 44.0,\n \"4000x1230\": 44.0,\n \"5000x600\": 42.0,\n \"5000x750\": 43.0,\n \"5000x910\": 44.0,\n \"5000x1050\": 44.0,\n \"5000x1230\": 44.0,\n \"6500x600\": 42.0,\n \"6500x750\": 43.0,\n \"6500x910\": 44.0,\n \"6500x1050\": 44.0,\n \"6500x1230\": 44.0,\n \"8000x600\": 42.0,\n \"8000x750\": 43.0,\n \"8000x910\": 44.0,\n \"8000x1050\": 44.0,\n \"8000x1230\": 44.0,\n \"10000x600\": 42.0,\n \"10000x750\": 43.0,\n \"10000x910\": 44.0,\n \"10000x1050\": 44.0,\n \"10000x1230\": 44.0,\n \"12500x600\": 42.0,\n \"12500x750\": 43.0,\n \"12500x910\": 44.0,\n \"12500x1050\": 44.0,\n \"12500x1230\": 44.0,\n \"15500x600\": 42.0,\n \"15500x750\": 43.0,\n \"15500x910\": 44.0,\n \"15500x1050\": 44.0,\n \"15500x1230\": 44.0,\n \"20000x600\": 42.0,\n \"20000x750\": 43.0,\n \"20000x910\": 44.0,\n \"20000x1050\": 44.0,\n \"20000x1230\": 45.0,\n \"25000x600\": 52.0,\n \"25000x750\": 52.0,\n \"25000x910\": 53.0,\n \"25000x1050\": 54.0,\n \"25000x1230\": 54.0,\n \"30000x600\": 52.0,\n \"30000x750\": 52.0,\n \"30000x910\": 53.0,\n \"30000x1050\": 54.0,\n \"30000x1230\": 54.0,\n \"35000x600\": 52.0,\n \"35000x750\": 53.0,\n \"35000x910\": 54.0,\n \"35000x1050\": 54.0,\n \"35000x1230\": 54.0,\n \"40000x600\": 52.0,\n \"40000x750\": 53.0,\n \"40000x910\": 54.0,\n \"40000x1050\": 54.0,\n \"40000x1230\": 54.0,\n \"50000x600\": 52.0,\n \"50000x750\": 53.0,\n \"50000x910\": 54.0,\n \"50000x1050\": 54.0,\n \"50000x1230\": 54.0,\n \"60000x600\": 62.0,\n \"60000x750\": 62.0,\n \"60000x910\": 63.0,\n \"60000x1050\": 64.0,\n \"60000x1230\": 64.0,\n },\n \"1500x5000\": {\n \"1000x600\": 45.0,\n \"1000x750\": 45.0,\n \"1000x910\": 54.0,\n \"1000x1050\": 54.0,\n \"1000x1230\": 54.0,\n \"2000x600\": 45.0,\n \"2000x750\": 45.0,\n \"2000x910\": 54.0,\n \"2000x1050\": 54.0,\n \"2000x1230\": 54.0,\n \"3000x600\": 45.0,\n \"3000x750\": 45.0,\n \"3000x910\": 54.0,\n \"3000x1050\": 54.0,\n \"3000x1230\": 54.0,\n \"4000x600\": 45.0,\n \"4000x750\": 45.0,\n \"4000x910\": 54.0,\n \"4000x1050\": 54.0,\n \"4000x1230\": 54.0,\n \"5000x600\": 45.0,\n \"5000x750\": 45.0,\n \"5000x910\": 54.0,\n \"5000x1050\": 54.0,\n \"5000x1230\": 54.0,\n \"6500x600\": 45.0,\n \"6500x750\": 45.0,\n \"6500x910\": 54.0,\n \"6500x1050\": 54.0,\n \"6500x1230\": 54.0,\n \"8000x600\": 45.0,\n \"8000x750\": 45.0,\n \"8000x910\": 54.0,\n \"8000x1050\": 54.0,\n \"8000x1230\": 54.0,\n \"10000x600\": 45.0,\n \"10000x750\": 45.0,\n \"10000x910\": 54.0,\n \"10000x1050\": 54.0,\n \"10000x1230\": 54.0,\n \"12500x600\": 45.0,\n \"12500x750\": 45.0,\n \"12500x910\": 54.0,\n \"12500x1050\": 54.0,\n \"12500x1230\": 54.0,\n \"15500x600\": 45.0,\n \"15500x750\": 45.0,\n \"15500x910\": 54.0,\n \"15500x1050\": 54.0,\n \"15500x1230\": 54.0,\n \"20000x600\": 45.0,\n \"20000x750\": 45.0,\n \"20000x910\": 54.0,\n \"20000x1050\": 54.0,\n \"20000x1230\": 66.0,\n \"25000x600\": 54.0,\n \"25000x750\": 54.0,\n \"25000x910\": 54.0,\n \"25000x1050\": 54.0,\n \"25000x1230\": 66.0,\n \"30000x600\": 54.0,\n \"30000x750\": 54.0,\n \"30000x910\": 54.0,\n \"30000x1050\": 54.0,\n \"30000x1230\": 66.0,\n \"35000x600\": 54.0,\n \"35000x750\": 54.0,\n \"35000x910\": 54.0,\n \"35000x1050\": 66.0,\n \"35000x1230\": 66.0,\n \"40000x600\": 54.0,\n \"40000x750\": 54.0,\n \"40000x910\": 54.0,\n \"40000x1050\": 66.0,\n \"40000x1230\": 66.0,\n \"50000x600\": 63.0,\n \"50000x750\": 64.0,\n \"50000x910\": 65.0,\n \"50000x1050\": 66.0,\n \"50000x1230\": 66.0,\n \"60000x600\": 63.0,\n \"60000x750\": 64.0,\n \"60000x910\": 65.0,\n \"60000x1050\": 66.0,\n \"60000x1230\": 66.0,\n },\n \"2000x1000\": {\n \"1000x600\": 1.0,\n \"1000x750\": 1.0,\n \"1000x910\": 11.0,\n \"1000x1050\": 12.0,\n \"1000x1230\": 12.0,\n \"2000x600\": 21.0,\n \"2000x750\": 21.0,\n \"2000x910\": 21.0,\n \"2000x1050\": 21.0,\n \"2000x1230\": 21.0,\n \"3000x600\": 21.0,\n \"3000x750\": 21.0,\n \"3000x910\": 21.0,\n \"3000x1050\": 21.0,\n \"3000x1230\": 21.0,\n \"4000x600\": 31.0,\n \"4000x750\": 31.0,\n \"4000x910\": 31.0,\n \"4000x1050\": 31.0,\n \"4000x1230\": 31.0,\n \"5000x600\": 31.0,\n \"5000x750\": 31.0,\n \"5000x910\": 31.0,\n \"5000x1050\": 31.0,\n \"5000x1230\": 31.0,\n \"6500x600\": 31.0,\n \"6500x750\": 31.0,\n \"6500x910\": 31.0,\n \"6500x1050\": 31.0,\n \"6500x1230\": 31.0,\n \"8000x600\": 31.0,\n \"8000x750\": 31.0,\n \"8000x910\": 31.0,\n \"8000x1050\": 31.0,\n \"8000x1230\": 31.0,\n \"10000x600\": 41.0,\n \"10000x750\": 41.0,\n \"10000x910\": 41.0,\n \"10000x1050\": 41.0,\n \"10000x1230\": 41.0,\n \"12500x600\": 41.0,\n \"12500x750\": 41.0,\n \"12500x910\": 41.0,\n \"12500x1050\": 41.0,\n \"12500x1230\": 41.0,\n \"15500x600\": 41.0,\n \"15500x750\": 41.0,\n \"15500x910\": 41.0,\n \"15500x1050\": 41.0,\n \"15500x1230\": 41.0,\n \"20000x600\": 51.0,\n \"20000x750\": 51.0,\n \"20000x910\": 51.0,\n \"20000x1050\": 51.0,\n \"20000x1230\": 51.0,\n \"25000x600\": 51.0,\n \"25000x750\": 51.0,\n \"25000x910\": 51.0,\n \"25000x1050\": 51.0,\n \"25000x1230\": 51.0,\n \"30000x600\": 51.0,\n \"30000x750\": 51.0,\n \"30000x910\": 51.0,\n \"30000x1050\": 51.0,\n \"30000x1230\": 51.0,\n \"35000x600\": 51.0,\n \"35000x750\": 51.0,\n \"35000x910\": 51.0,\n \"35000x1050\": 51.0,\n \"35000x1230\": 51.0,\n \"40000x600\": 61.0,\n \"40000x750\": 61.0,\n \"40000x910\": 61.0,\n \"40000x1050\": 61.0,\n \"40000x1230\": 62.0,\n \"50000x600\": 61.0,\n \"50000x750\": 61.0,\n \"50000x910\": 61.0,\n \"50000x1050\": 61.0,\n \"50000x1230\": 62.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0,\n },\n \"2000x1500\": {\n \"1000x600\": 2.0,\n \"1000x750\": 2.0,\n \"1000x910\": 2.0,\n \"1000x1050\": 2.0,\n \"1000x1230\": 12.0,\n \"2000x600\": 21.0,\n \"2000x750\": 21.0,\n \"2000x910\": 22.0,\n \"2000x1050\": 22.0,\n \"2000x1230\": 22.0,\n \"3000x600\": 21.0,\n \"3000x750\": 21.0,\n \"3000x910\": 22.0,\n \"3000x1050\": 22.0,\n \"3000x1230\": 22.0,\n \"4000x600\": 31.0,\n \"4000x750\": 31.0,\n \"4000x910\": 31.0,\n \"4000x1050\": 31.0,\n \"4000x1230\": 31.0,\n \"5000x600\": 31.0,\n \"5000x750\": 31.0,\n \"5000x910\": 31.0,\n \"5000x1050\": 31.0,\n \"5000x1230\": 31.0,\n \"6500x600\": 31.0,\n \"6500x750\": 31.0,\n \"6500x910\": 31.0,\n \"6500x1050\": 31.0,\n \"6500x1230\": 31.0,\n \"8000x600\": 31.0,\n \"8000x750\": 31.0,\n \"8000x910\": 31.0,\n \"8000x1050\": 31.0,\n \"8000x1230\": 31.0,\n \"10000x600\": 41.0,\n \"10000x750\": 41.0,\n \"10000x910\": 41.0,\n \"10000x1050\": 41.0,\n \"10000x1230\": 41.0,\n \"12500x600\": 41.0,\n \"12500x750\": 41.0,\n \"12500x910\": 41.0,\n \"12500x1050\": 41.0,\n \"12500x1230\": 41.0,\n \"15500x600\": 41.0,\n \"15500x750\": 41.0,\n \"15500x910\": 41.0,\n \"15500x1050\": 41.0,\n \"15500x1230\": 41.0,\n \"20000x600\": 51.0,\n \"20000x750\": 51.0,\n \"20000x910\": 51.0,\n \"20000x1050\": 51.0,\n \"20000x1230\": 51.0,\n \"25000x600\": 51.0,\n \"25000x750\": 51.0,\n \"25000x910\": 51.0,\n \"25000x1050\": 51.0,\n \"25000x1230\": 51.0,\n \"30000x600\": 51.0,\n \"30000x750\": 51.0,\n \"30000x910\": 51.0,\n \"30000x1050\": 51.0,\n \"30000x1230\": 51.0,\n \"35000x600\": 51.0,\n \"35000x750\": 51.0,\n \"35000x910\": 51.0,\n \"35000x1050\": 51.0,\n \"35000x1230\": 51.0,\n \"40000x600\": 61.0,\n \"40000x750\": 61.0,\n \"40000x910\": 61.0,\n \"40000x1050\": 61.0,\n \"40000x1230\": 62.0,\n \"50000x600\": 61.0,\n \"50000x750\": 61.0,\n \"50000x910\": 61.0,\n \"50000x1050\": 61.0,\n \"50000x1230\": 62.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0,\n },\n \"2000x2000\": {\n \"1000x600\": 2.0,\n \"1000x750\": 2.0,\n \"1000x910\": 12.0,\n \"1000x1050\": 22.0,\n \"1000x1230\": 22.0,\n \"2000x600\": 22.0,\n \"2000x750\": 22.0,\n \"2000x910\": 22.0,\n \"2000x1050\": 22.0,\n \"2000x1230\": 22.0,\n \"3000x600\": 22.0,\n \"3000x750\": 22.0,\n \"3000x910\": 22.0,\n \"3000x1050\": 22.0,\n \"3000x1230\": 22.0,\n \"4000x600\": 31.0,\n \"4000x750\": 31.0,\n \"4000x910\": 32.0,\n \"4000x1050\": 32.0,\n \"4000x1230\": 32.0,\n \"5000x600\": 31.0,\n \"5000x750\": 31.0,\n \"5000x910\": 32.0,\n \"5000x1050\": 32.0,\n \"5000x1230\": 32.0,\n \"6500x600\": 31.0,\n \"6500x750\": 31.0,\n \"6500x910\": 32.0,\n \"6500x1050\": 32.0,\n \"6500x1230\": 32.0,\n \"8000x600\": 31.0,\n \"8000x750\": 31.0,\n \"8000x910\": 32.0,\n \"8000x1050\": 32.0,\n \"8000x1230\": 32.0,\n \"10000x600\": 41.0,\n \"10000x750\": 41.0,\n \"10000x910\": 41.0,\n \"10000x1050\": 42.0,\n \"10000x1230\": 42.0,\n \"12500x600\": 41.0,\n \"12500x750\": 41.0,\n \"12500x910\": 42.0,\n \"12500x1050\": 42.0,\n \"12500x1230\": 42.0,\n \"15500x600\": 41.0,\n \"15500x750\": 41.0,\n \"15500x910\": 42.0,\n \"15500x1050\": 42.0,\n \"15500x1230\": 42.0,\n \"20000x600\": 51.0,\n \"20000x750\": 51.0,\n \"20000x910\": 51.0,\n \"20000x1050\": 51.0,\n \"20000x1230\": 52.0,\n \"25000x600\": 51.0,\n \"25000x750\": 51.0,\n \"25000x910\": 51.0,\n \"25000x1050\": 51.0,\n \"25000x1230\": 52.0,\n \"30000x600\": 51.0,\n \"30000x750\": 51.0,\n \"30000x910\": 51.0,\n \"30000x1050\": 51.0,\n \"30000x1230\": 52.0,\n \"35000x600\": 51.0,\n \"35000x750\": 51.0,\n \"35000x910\": 52.0,\n \"35000x1050\": 52.0,\n \"35000x1230\": 52.0,\n \"40000x600\": 61.0,\n \"40000x750\": 61.0,\n \"40000x910\": 61.0,\n \"40000x1050\": 61.0,\n \"40000x1230\": 62.0,\n \"50000x600\": 61.0,\n \"50000x750\": 61.0,\n \"50000x910\": 61.0,\n \"50000x1050\": 61.0,\n \"50000x1230\": 62.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0,\n },\n \"2000x2500\": {\n \"1000x600\": 12.0,\n \"1000x750\": 22.0,\n \"1000x910\": 23.0,\n \"1000x1050\": 23.0,\n \"1000x1230\": 32.0,\n \"2000x600\": 22.0,\n \"2000x750\": 22.0,\n \"2000x910\": 22.0,\n \"2000x1050\": 23.0,\n \"2000x1230\": 23.0,\n \"3000x600\": 22.0,\n \"3000x750\": 22.0,\n \"3000x910\": 22.0,\n \"3000x1050\": 23.0,\n \"3000x1230\": 32.0,\n \"4000x600\": 32.0,\n \"4000x750\": 32.0,\n \"4000x910\": 32.0,\n \"4000x1050\": 32.0,\n \"4000x1230\": 32.0,\n \"5000x600\": 32.0,\n \"5000x750\": 32.0,\n \"5000x910\": 32.0,\n \"5000x1050\": 32.0,\n \"5000x1230\": 32.0,\n \"6500x600\": 32.0,\n \"6500x750\": 32.0,\n \"6500x910\": 32.0,\n \"6500x1050\": 32.0,\n \"6500x1230\": 32.0,\n \"8000x600\": 32.0,\n \"8000x750\": 32.0,\n \"8000x910\": 32.0,\n \"8000x1050\": 32.0,\n \"8000x1230\": 32.0,\n \"10000x600\": 41.0,\n \"10000x750\": 42.0,\n \"10000x910\": 42.0,\n \"10000x1050\": 42.0,\n \"10000x1230\": 42.0,\n \"12500x600\": 42.0,\n \"12500x750\": 42.0,\n \"12500x910\": 42.0,\n \"12500x1050\": 42.0,\n \"12500x1230\": 42.0,\n \"15500x600\": 42.0,\n \"15500x750\": 42.0,\n \"15500x910\": 42.0,\n \"15500x1050\": 42.0,\n \"15500x1230\": 42.0,\n \"20000x600\": 51.0,\n \"20000x750\": 52.0,\n \"20000x910\": 52.0,\n \"20000x1050\": 52.0,\n \"20000x1230\": 52.0,\n \"25000x600\": 51.0,\n \"25000x750\": 52.0,\n \"25000x910\": 52.0,\n \"25000x1050\": 52.0,\n \"25000x1230\": 52.0,\n \"30000x600\": 51.0,\n \"30000x750\": 52.0,\n \"30000x910\": 52.0,\n \"30000x1050\": 52.0,\n \"30000x1230\": 52.0,\n \"35000x600\": 52.0,\n \"35000x750\": 52.0,\n \"35000x910\": 52.0,\n \"35000x1050\": 52.0,\n \"35000x1230\": 52.0,\n \"40000x600\": 61.0,\n \"40000x750\": 61.0,\n \"40000x910\": 62.0,\n \"40000x1050\": 62.0,\n \"40000x1230\": 62.0,\n \"50000x600\": 61.0,\n \"50000x750\": 61.0,\n \"50000x910\": 62.0,\n \"50000x1050\": 62.0,\n \"50000x1230\": 62.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0,\n },\n \"2000x3000\": {\n \"1000x600\": 23.0,\n \"1000x750\": 23.0,\n \"1000x910\": 33.0,\n \"1000x1050\": 33.0,\n \"1000x1230\": 34.0,\n \"2000x600\": 22.0,\n \"2000x750\": 23.0,\n \"2000x910\": 32.0,\n \"2000x1050\": 33.0,\n \"2000x1230\": 34.0,\n \"3000x600\": 22.0,\n \"3000x750\": 23.0,\n \"3000x910\": 32.0,\n \"3000x1050\": 33.0,\n \"3000x1230\": 34.0,\n \"4000x600\": 32.0,\n \"4000x750\": 32.0,\n \"4000x910\": 32.0,\n \"4000x1050\": 33.0,\n \"4000x1230\": 34.0,\n \"5000x600\": 32.0,\n \"5000x750\": 32.0,\n \"5000x910\": 32.0,\n \"5000x1050\": 33.0,\n \"5000x1230\": 34.0,\n \"6500x600\": 32.0,\n \"6500x750\": 32.0,\n \"6500x910\": 32.0,\n \"6500x1050\": 33.0,\n \"6500x1230\": 34.0,\n \"8000x600\": 32.0,\n \"8000x750\": 32.0,\n \"8000x910\": 32.0,\n \"8000x1050\": 33.0,\n \"8000x1230\": 34.0,\n \"10000x600\": 42.0,\n \"10000x750\": 42.0,\n \"10000x910\": 42.0,\n \"10000x1050\": 42.0,\n \"10000x1230\": 43.0,\n \"12500x600\": 42.0,\n \"12500x750\": 42.0,\n \"12500x910\": 43.0,\n \"12500x1050\": 43.0,\n \"12500x1230\": 44.0,\n \"15500x600\": 42.0,\n \"15500x750\": 42.0,\n \"15500x910\": 43.0,\n \"15500x1050\": 44.0,\n \"15500x1230\": 44.0,\n \"20000x600\": 52.0,\n \"20000x750\": 52.0,\n \"20000x910\": 52.0,\n \"20000x1050\": 52.0,\n \"20000x1230\": 53.0,\n \"25000x600\": 52.0,\n \"25000x750\": 52.0,\n \"25000x910\": 52.0,\n \"25000x1050\": 52.0,\n \"25000x1230\": 53.0,\n \"30000x600\": 52.0,\n \"30000x750\": 52.0,\n \"30000x910\": 52.0,\n \"30000x1050\": 52.0,\n \"30000x1230\": 53.0,\n \"35000x600\": 52.0,\n \"35000x750\": 52.0,\n \"35000x910\": 52.0,\n \"35000x1050\": 53.0,\n \"35000x1230\": 54.0,\n \"40000x600\": 62.0,\n \"40000x750\": 62.0,\n \"40000x910\": 62.0,\n \"40000x1050\": 62.0,\n \"40000x1230\": 63.0,\n \"50000x600\": 62.0,\n \"50000x750\": 62.0,\n \"50000x910\": 62.0,\n \"50000x1050\": 62.0,\n \"50000x1230\": 63.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0,\n },\n \"2000x3500\": {\n \"1000x600\": 32.0,\n \"1000x750\": 33.0,\n \"1000x910\": 34.0,\n \"1000x1050\": 34.0,\n \"1000x1230\": 44.0,\n \"2000x600\": 33.0,\n \"2000x750\": 33.0,\n \"2000x910\": 34.0,\n \"2000x1050\": 34.0,\n \"2000x1230\": 34.0,\n \"3000x600\": 32.0,\n \"3000x750\": 33.0,\n \"3000x910\": 34.0,\n \"3000x1050\": 34.0,\n \"3000x1230\": 34.0,\n \"4000x600\": 33.0,\n \"4000x750\": 33.0,\n \"4000x910\": 34.0,\n \"4000x1050\": 34.0,\n \"4000x1230\": 34.0,\n \"5000x600\": 33.0,\n \"5000x750\": 33.0,\n \"5000x910\": 34.0,\n \"5000x1050\": 34.0,\n \"5000x1230\": 34.0,\n \"6500x600\": 32.0,\n \"6500x750\": 33.0,\n \"6500x910\": 34.0,\n \"6500x1050\": 34.0,\n \"6500x1230\": 34.0,\n \"8000x600\": 32.0,\n \"8000x750\": 33.0,\n \"8000x910\": 34.0,\n \"8000x1050\": 34.0,\n \"8000x1230\": 34.0,\n \"10000x600\": 42.0,\n \"10000x750\": 42.0,\n \"10000x910\": 43.0,\n \"10000x1050\": 43.0,\n \"10000x1230\": 44.0,\n \"12500x600\": 42.0,\n \"12500x750\": 43.0,\n \"12500x910\": 44.0,\n \"12500x1050\": 44.0,\n \"12500x1230\": 54.0,\n \"15500x600\": 42.0,\n \"15500x750\": 43.0,\n \"15500x910\": 44.0,\n \"15500x1050\": 54.0,\n \"15500x1230\": 54.0,\n \"20000x600\": 52.0,\n \"20000x750\": 52.0,\n \"20000x910\": 53.0,\n \"20000x1050\": 54.0,\n \"20000x1230\": 54.0,\n \"25000x600\": 52.0,\n \"25000x750\": 52.0,\n \"25000x910\": 53.0,\n \"25000x1050\": 54.0,\n \"25000x1230\": 54.0,\n \"30000x600\": 52.0,\n \"30000x750\": 52.0,\n \"30000x910\": 53.0,\n \"30000x1050\": 54.0,\n \"30000x1230\": 54.0,\n \"35000x600\": 52.0,\n \"35000x750\": 53.0,\n \"35000x910\": 54.0,\n \"35000x1050\": 54.0,\n \"35000x1230\": 54.0,\n \"40000x600\": 62.0,\n \"40000x750\": 62.0,\n \"40000x910\": 63.0,\n \"40000x1050\": 64.0,\n \"40000x1230\": 64.0,\n \"50000x600\": 62.0,\n \"50000x750\": 62.0,\n \"50000x910\": 63.0,\n \"50000x1050\": 64.0,\n \"50000x1230\": 64.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 72.0,\n },\n \"2000x4000\": {\n \"1000x600\": 52.0,\n \"1000x750\": 53.0,\n \"1000x910\": 54.0,\n \"1000x1050\": 54.0,\n \"1000x1230\": 54.0,\n \"2000x600\": 52.0,\n \"2000x750\": 53.0,\n \"2000x910\": 54.0,\n \"2000x1050\": 54.0,\n \"2000x1230\": 54.0,\n \"3000x600\": 52.0,\n \"3000x750\": 53.0,\n \"3000x910\": 54.0,\n \"3000x1050\": 54.0,\n \"3000x1230\": 54.0,\n \"4000x600\": 52.0,\n \"4000x750\": 53.0,\n \"4000x910\": 54.0,\n \"4000x1050\": 54.0,\n \"4000x1230\": 54.0,\n \"5000x600\": 52.0,\n \"5000x750\": 53.0,\n \"5000x910\": 54.0,\n \"5000x1050\": 54.0,\n \"5000x1230\": 54.0,\n \"6500x600\": 52.0,\n \"6500x750\": 53.0,\n \"6500x910\": 54.0,\n \"6500x1050\": 54.0,\n \"6500x1230\": 54.0,\n \"8000x600\": 52.0,\n \"8000x750\": 53.0,\n \"8000x910\": 54.0,\n \"8000x1050\": 54.0,\n \"8000x1230\": 54.0,\n \"10000x600\": 52.0,\n \"10000x750\": 53.0,\n \"10000x910\": 54.0,\n \"10000x1050\": 54.0,\n \"10000x1230\": 54.0,\n \"12500x600\": 52.0,\n \"12500x750\": 53.0,\n \"12500x910\": 54.0,\n \"12500x1050\": 54.0,\n \"12500x1230\": 54.0,\n \"15500x600\": 52.0,\n \"15500x750\": 53.0,\n \"15500x910\": 54.0,\n \"15500x1050\": 54.0,\n \"15500x1230\": 54.0,\n \"20000x600\": 52.0,\n \"20000x750\": 53.0,\n \"20000x910\": 54.0,\n \"20000x1050\": 54.0,\n \"20000x1230\": 54.0,\n \"25000x600\": 52.0,\n \"25000x750\": 53.0,\n \"25000x910\": 54.0,\n \"25000x1050\": 54.0,\n \"25000x1230\": 54.0,\n \"30000x600\": 52.0,\n \"30000x750\": 53.0,\n \"30000x910\": 54.0,\n \"30000x1050\": 54.0,\n \"30000x1230\": 54.0,\n \"35000x600\": 53.0,\n \"35000x750\": 54.0,\n \"35000x910\": 54.0,\n \"35000x1050\": 54.0,\n \"35000x1230\": 66.0,\n \"40000x600\": 62.0,\n \"40000x750\": 63.0,\n \"40000x910\": 64.0,\n \"40000x1050\": 65.0,\n \"40000x1230\": 66.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 72.0,\n \"50000x1050\": 73.0,\n \"50000x1230\": 73.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 72.0,\n \"60000x1050\": 73.0,\n \"60000x1230\": 73.0,\n },\n \"2000x5000\": {\n \"1000x600\": 54.0,\n \"1000x750\": 54.0,\n \"1000x910\": 66.0,\n \"1000x1050\": 66.0,\n \"1000x1230\": 73.0,\n \"2000x600\": 54.0,\n \"2000x750\": 54.0,\n \"2000x910\": 66.0,\n \"2000x1050\": 66.0,\n \"2000x1230\": 73.0,\n \"3000x600\": 54.0,\n \"3000x750\": 54.0,\n \"3000x910\": 66.0,\n \"3000x1050\": 66.0,\n \"3000x1230\": 73.0,\n \"4000x600\": 54.0,\n \"4000x750\": 54.0,\n \"4000x910\": 66.0,\n \"4000x1050\": 66.0,\n \"4000x1230\": 73.0,\n \"5000x600\": 54.0,\n \"5000x750\": 54.0,\n \"5000x910\": 66.0,\n \"5000x1050\": 66.0,\n \"5000x1230\": 73.0,\n \"6500x600\": 54.0,\n \"6500x750\": 54.0,\n \"6500x910\": 66.0,\n \"6500x1050\": 66.0,\n \"6500x1230\": 73.0,\n \"8000x600\": 54.0,\n \"8000x750\": 54.0,\n \"8000x910\": 66.0,\n \"8000x1050\": 66.0,\n \"8000x1230\": 73.0,\n \"10000x600\": 54.0,\n \"10000x750\": 54.0,\n \"10000x910\": 66.0,\n \"10000x1050\": 66.0,\n \"10000x1230\": 73.0,\n \"12500x600\": 54.0,\n \"12500x750\": 54.0,\n \"12500x910\": 66.0,\n \"12500x1050\": 66.0,\n \"12500x1230\": 73.0,\n \"15500x600\": 54.0,\n \"15500x750\": 54.0,\n \"15500x910\": 66.0,\n \"15500x1050\": 66.0,\n \"15500x1230\": 73.0,\n \"20000x600\": 54.0,\n \"20000x750\": 54.0,\n \"20000x910\": 66.0,\n \"20000x1050\": 66.0,\n \"20000x1230\": 73.0,\n \"25000x600\": 54.0,\n \"25000x750\": 54.0,\n \"25000x910\": 66.0,\n \"25000x1050\": 66.0,\n \"25000x1230\": 73.0,\n \"30000x600\": 54.0,\n \"30000x750\": 54.0,\n \"30000x910\": 66.0,\n \"30000x1050\": 66.0,\n \"30000x1230\": 73.0,\n \"35000x600\": 54.0,\n \"35000x750\": 66.0,\n \"35000x910\": 66.0,\n \"35000x1050\": 73.0,\n \"35000x1230\": 73.0,\n \"40000x600\": 66.0,\n \"40000x750\": 66.0,\n \"40000x910\": 73.0,\n \"40000x1050\": 73.0,\n \"40000x1230\": 73.0,\n \"50000x600\": 72.0,\n \"50000x750\": 73.0,\n \"50000x910\": 73.0,\n \"50000x1050\": 73.0,\n \"50000x1230\": 73.0,\n \"60000x600\": 72.0,\n \"60000x750\": 73.0,\n \"60000x910\": 73.0,\n \"60000x1050\": 73.0,\n \"60000x1230\": 73.0,\n },\n \"2500x1000\": {\n \"1000x600\": 21.0,\n \"1000x750\": 21.0,\n \"1000x910\": 21.0,\n \"1000x1050\": 21.0,\n \"1000x1230\": 22.0,\n \"2000x600\": 21.0,\n \"2000x750\": 21.0,\n \"2000x910\": 21.0,\n \"2000x1050\": 21.0,\n \"2000x1230\": 31.0,\n \"3000x600\": 31.0,\n \"3000x750\": 31.0,\n \"3000x910\": 31.0,\n \"3000x1050\": 31.0,\n \"3000x1230\": 31.0,\n \"4000x600\": 31.0,\n \"4000x750\": 31.0,\n \"4000x910\": 31.0,\n \"4000x1050\": 31.0,\n \"4000x1230\": 31.0,\n \"5000x600\": 31.0,\n \"5000x750\": 31.0,\n \"5000x910\": 31.0,\n \"5000x1050\": 31.0,\n \"5000x1230\": 31.0,\n \"6500x600\": 31.0,\n \"6500x750\": 31.0,\n \"6500x910\": 31.0,\n \"6500x1050\": 31.0,\n \"6500x1230\": 31.0,\n \"8000x600\": 41.0,\n \"8000x750\": 41.0,\n \"8000x910\": 41.0,\n \"8000x1050\": 41.0,\n \"8000x1230\": 41.0,\n \"10000x600\": 41.0,\n \"10000x750\": 41.0,\n \"10000x910\": 41.0,\n \"10000x1050\": 41.0,\n \"10000x1230\": 41.0,\n \"12500x600\": 41.0,\n \"12500x750\": 41.0,\n \"12500x910\": 41.0,\n \"12500x1050\": 41.0,\n \"12500x1230\": 41.0,\n \"15500x600\": 51.0,\n \"15500x750\": 51.0,\n \"15500x910\": 51.0,\n \"15500x1050\": 51.0,\n \"15500x1230\": 51.0,\n \"20000x600\": 51.0,\n \"20000x750\": 51.0,\n \"20000x910\": 51.0,\n \"20000x1050\": 51.0,\n \"20000x1230\": 51.0,\n \"25000x600\": 51.0,\n \"25000x750\": 51.0,\n \"25000x910\": 51.0,\n \"25000x1050\": 51.0,\n \"25000x1230\": 51.0,\n \"30000x600\": 51.0,\n \"30000x750\": 51.0,\n \"30000x910\": 51.0,\n \"30000x1050\": 51.0,\n \"30000x1230\": 51.0,\n \"35000x600\": 61.0,\n \"35000x750\": 61.0,\n \"35000x910\": 61.0,\n \"35000x1050\": 61.0,\n \"35000x1230\": 61.0,\n \"40000x600\": 61.0,\n \"40000x750\": 61.0,\n \"40000x910\": 62.0,\n \"40000x1050\": 62.0,\n \"40000x1230\": 62.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 71.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0,\n },\n \"2500x1500\": {\n \"1000x600\": 22.0,\n \"1000x750\": 22.0,\n \"1000x910\": 22.0,\n \"1000x1050\": 22.0,\n \"1000x1230\": 22.0,\n \"2000x600\": 21.0,\n \"2000x750\": 22.0,\n \"2000x910\": 22.0,\n \"2000x1050\": 22.0,\n \"2000x1230\": 22.0,\n \"3000x600\": 31.0,\n \"3000x750\": 31.0,\n \"3000x910\": 31.0,\n \"3000x1050\": 31.0,\n \"3000x1230\": 32.0,\n \"4000x600\": 31.0,\n \"4000x750\": 31.0,\n \"4000x910\": 31.0,\n \"4000x1050\": 31.0,\n \"4000x1230\": 32.0,\n \"5000x600\": 31.0,\n \"5000x750\": 31.0,\n \"5000x910\": 31.0,\n \"5000x1050\": 31.0,\n \"5000x1230\": 32.0,\n \"6500x600\": 31.0,\n \"6500x750\": 31.0,\n \"6500x910\": 31.0,\n \"6500x1050\": 31.0,\n \"6500x1230\": 32.0,\n \"8000x600\": 41.0,\n \"8000x750\": 41.0,\n \"8000x910\": 41.0,\n \"8000x1050\": 41.0,\n \"8000x1230\": 41.0,\n \"10000x600\": 41.0,\n \"10000x750\": 41.0,\n \"10000x910\": 41.0,\n \"10000x1050\": 41.0,\n \"10000x1230\": 41.0,\n \"12500x600\": 41.0,\n \"12500x750\": 41.0,\n \"12500x910\": 41.0,\n \"12500x1050\": 42.0,\n \"12500x1230\": 42.0,\n \"15500x600\": 51.0,\n \"15500x750\": 51.0,\n \"15500x910\": 51.0,\n \"15500x1050\": 51.0,\n \"15500x1230\": 51.0,\n \"20000x600\": 51.0,\n \"20000x750\": 51.0,\n \"20000x910\": 51.0,\n \"20000x1050\": 51.0,\n \"20000x1230\": 51.0,\n \"25000x600\": 51.0,\n \"25000x750\": 51.0,\n \"25000x910\": 51.0,\n \"25000x1050\": 51.0,\n \"25000x1230\": 51.0,\n \"30000x600\": 51.0,\n \"30000x750\": 51.0,\n \"30000x910\": 51.0,\n \"30000x1050\": 51.0,\n \"30000x1230\": 51.0,\n \"35000x600\": 61.0,\n \"35000x750\": 61.0,\n \"35000x910\": 61.0,\n \"35000x1050\": 61.0,\n \"35000x1230\": 62.0,\n \"40000x600\": 61.0,\n \"40000x750\": 61.0,\n \"40000x910\": 62.0,\n \"40000x1050\": 62.0,\n \"40000x1230\": 62.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 71.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0,\n },\n \"2500x2000\": {\n \"1000x600\": 22.0,\n \"1000x750\": 22.0,\n \"1000x910\": 22.0,\n \"1000x1050\": 22.0,\n \"1000x1230\": 23.0,\n \"2000x600\": 22.0,\n \"2000x750\": 22.0,\n \"2000x910\": 22.0,\n \"2000x1050\": 22.0,\n \"2000x1230\": 32.0,\n \"3000x600\": 31.0,\n \"3000x750\": 32.0,\n \"3000x910\": 32.0,\n \"3000x1050\": 32.0,\n \"3000x1230\": 32.0,\n \"4000x600\": 31.0,\n \"4000x750\": 32.0,\n \"4000x910\": 32.0,\n \"4000x1050\": 32.0,\n \"4000x1230\": 32.0,\n \"5000x600\": 32.0,\n \"5000x750\": 32.0,\n \"5000x910\": 32.0,\n \"5000x1050\": 32.0,\n \"5000x1230\": 32.0,\n \"6500x600\": 31.0,\n \"6500x750\": 32.0,\n \"6500x910\": 32.0,\n \"6500x1050\": 32.0,\n \"6500x1230\": 32.0,\n \"8000x600\": 41.0,\n \"8000x750\": 41.0,\n \"8000x910\": 42.0,\n \"8000x1050\": 42.0,\n \"8000x1230\": 42.0,\n \"10000x600\": 41.0,\n \"10000x750\": 41.0,\n \"10000x910\": 42.0,\n \"10000x1050\": 42.0,\n \"10000x1230\": 42.0,\n \"12500x600\": 41.0,\n \"12500x750\": 42.0,\n \"12500x910\": 42.0,\n \"12500x1050\": 42.0,\n \"12500x1230\": 42.0,\n \"15500x600\": 51.0,\n \"15500x750\": 51.0,\n \"15500x910\": 52.0,\n \"15500x1050\": 52.0,\n \"15500x1230\": 52.0,\n \"20000x600\": 51.0,\n \"20000x750\": 51.0,\n \"20000x910\": 52.0,\n \"20000x1050\": 52.0,\n \"20000x1230\": 52.0,\n \"25000x600\": 51.0,\n \"25000x750\": 51.0,\n \"25000x910\": 52.0,\n \"25000x1050\": 52.0,\n \"25000x1230\": 52.0,\n \"30000x600\": 51.0,\n \"30000x750\": 51.0,\n \"30000x910\": 52.0,\n \"30000x1050\": 52.0,\n \"30000x1230\": 52.0,\n \"35000x600\": 61.0,\n \"35000x750\": 61.0,\n \"35000x910\": 62.0,\n \"35000x1050\": 62.0,\n \"35000x1230\": 62.0,\n \"40000x600\": 61.0,\n \"40000x750\": 61.0,\n \"40000x910\": 62.0,\n \"40000x1050\": 62.0,\n \"40000x1230\": 62.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 71.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0,\n },\n \"2500x2500\": {\n \"1000x600\": 22.0,\n \"1000x750\": 23.0,\n \"1000x910\": 32.0,\n \"1000x1050\": 33.0,\n \"1000x1230\": 33.0,\n \"2000x600\": 22.0,\n \"2000x750\": 22.0,\n \"2000x910\": 23.0,\n \"2000x1050\": 32.0,\n \"2000x1230\": 33.0,\n \"3000x600\": 32.0,\n \"3000x750\": 32.0,\n \"3000x910\": 32.0,\n \"3000x1050\": 32.0,\n \"3000x1230\": 33.0,\n \"4000x600\": 32.0,\n \"4000x750\": 32.0,\n \"4000x910\": 32.0,\n \"4000x1050\": 32.0,\n \"4000x1230\": 33.0,\n \"5000x600\": 32.0,\n \"5000x750\": 32.0,\n \"5000x910\": 32.0,\n \"5000x1050\": 32.0,\n \"5000x1230\": 33.0,\n \"6500x600\": 32.0,\n \"6500x750\": 32.0,\n \"6500x910\": 32.0,\n \"6500x1050\": 32.0,\n \"6500x1230\": 33.0,\n \"8000x600\": 42.0,\n \"8000x750\": 42.0,\n \"8000x910\": 42.0,\n \"8000x1050\": 42.0,\n \"8000x1230\": 42.0,\n \"10000x600\": 42.0,\n \"10000x750\": 42.0,\n \"10000x910\": 42.0,\n \"10000x1050\": 42.0,\n \"10000x1230\": 42.0,\n \"12500x600\": 42.0,\n \"12500x750\": 42.0,\n \"12500x910\": 42.0,\n \"12500x1050\": 43.0,\n \"12500x1230\": 44.0,\n \"15500x600\": 52.0,\n \"15500x750\": 52.0,\n \"15500x910\": 52.0,\n \"15500x1050\": 52.0,\n \"15500x1230\": 52.0,\n \"20000x600\": 52.0,\n \"20000x750\": 52.0,\n \"20000x910\": 52.0,\n \"20000x1050\": 52.0,\n \"20000x1230\": 52.0,\n \"25000x600\": 52.0,\n \"25000x750\": 52.0,\n \"25000x910\": 52.0,\n \"25000x1050\": 52.0,\n \"25000x1230\": 52.0,\n \"30000x600\": 52.0,\n \"30000x750\": 52.0,\n \"30000x910\": 52.0,\n \"30000x1050\": 52.0,\n \"30000x1230\": 52.0,\n \"35000x600\": 61.0,\n \"35000x750\": 62.0,\n \"35000x910\": 62.0,\n \"35000x1050\": 62.0,\n \"35000x1230\": 63.0,\n \"40000x600\": 61.0,\n \"40000x750\": 62.0,\n \"40000x910\": 62.0,\n \"40000x1050\": 62.0,\n \"40000x1230\": 63.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 71.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0,\n },\n \"2500x3000\": {\n \"1000x600\": 32.0,\n \"1000x750\": 33.0,\n \"1000x910\": 34.0,\n \"1000x1050\": 34.0,\n \"1000x1230\": 34.0,\n \"2000x600\": 32.0,\n \"2000x750\": 32.0,\n \"2000x910\": 33.0,\n \"2000x1050\": 34.0,\n \"2000x1230\": 34.0,\n \"3000x600\": 32.0,\n \"3000x750\": 32.0,\n \"3000x910\": 33.0,\n \"3000x1050\": 34.0,\n \"3000x1230\": 34.0,\n \"4000x600\": 32.0,\n \"4000x750\": 32.0,\n \"4000x910\": 33.0,\n \"4000x1050\": 34.0,\n \"4000x1230\": 34.0,\n \"5000x600\": 32.0,\n \"5000x750\": 32.0,\n \"5000x910\": 33.0,\n \"5000x1050\": 34.0,\n \"5000x1230\": 34.0,\n \"6500x600\": 32.0,\n \"6500x750\": 32.0,\n \"6500x910\": 33.0,\n \"6500x1050\": 34.0,\n \"6500x1230\": 34.0,\n \"8000x600\": 42.0,\n \"8000x750\": 42.0,\n \"8000x910\": 42.0,\n \"8000x1050\": 43.0,\n \"8000x1230\": 44.0,\n \"10000x600\": 42.0,\n \"10000x750\": 42.0,\n \"10000x910\": 42.0,\n \"10000x1050\": 43.0,\n \"10000x1230\": 44.0,\n \"12500x600\": 42.0,\n \"12500x750\": 43.0,\n \"12500x910\": 44.0,\n \"12500x1050\": 44.0,\n \"12500x1230\": 45.0,\n \"15500x600\": 52.0,\n \"15500x750\": 52.0,\n \"15500x910\": 53.0,\n \"15500x1050\": 53.0,\n \"15500x1230\": 54.0,\n \"20000x600\": 52.0,\n \"20000x750\": 52.0,\n \"20000x910\": 52.0,\n \"20000x1050\": 53.0,\n \"20000x1230\": 54.0,\n \"25000x600\": 52.0,\n \"25000x750\": 52.0,\n \"25000x910\": 52.0,\n \"25000x1050\": 53.0,\n \"25000x1230\": 54.0,\n \"30000x600\": 52.0,\n \"30000x750\": 52.0,\n \"30000x910\": 52.0,\n \"30000x1050\": 53.0,\n \"30000x1230\": 54.0,\n \"35000x600\": 62.0,\n \"35000x750\": 62.0,\n \"35000x910\": 62.0,\n \"35000x1050\": 63.0,\n \"35000x1230\": 64.0,\n \"40000x600\": 62.0,\n \"40000x750\": 62.0,\n \"40000x910\": 62.0,\n \"40000x1050\": 64.0,\n \"40000x1230\": 64.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 72.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 72.0,\n },\n \"2500x3500\": {\n \"1000x600\": 42.0,\n \"1000x750\": 44.0,\n \"1000x910\": 44.0,\n \"1000x1050\": 45.0,\n \"1000x1230\": 54.0,\n \"2000x600\": 42.0,\n \"2000x750\": 43.0,\n \"2000x910\": 44.0,\n \"2000x1050\": 44.0,\n \"2000x1230\": 45.0,\n \"3000x600\": 42.0,\n \"3000x750\": 43.0,\n \"3000x910\": 44.0,\n \"3000x1050\": 44.0,\n \"3000x1230\": 45.0,\n \"4000x600\": 42.0,\n \"4000x750\": 43.0,\n \"4000x910\": 44.0,\n \"4000x1050\": 44.0,\n \"4000x1230\": 45.0,\n \"5000x600\": 42.0,\n \"5000x750\": 43.0,\n \"5000x910\": 44.0,\n \"5000x1050\": 44.0,\n \"5000x1230\": 45.0,\n \"6500x600\": 42.0,\n \"6500x750\": 43.0,\n \"6500x910\": 44.0,\n \"6500x1050\": 44.0,\n \"6500x1230\": 45.0,\n \"8000x600\": 42.0,\n \"8000x750\": 43.0,\n \"8000x910\": 44.0,\n \"8000x1050\": 44.0,\n \"8000x1230\": 45.0,\n \"10000x600\": 42.0,\n \"10000x750\": 43.0,\n \"10000x910\": 44.0,\n \"10000x1050\": 44.0,\n \"10000x1230\": 45.0,\n \"12500x600\": 43.0,\n \"12500x750\": 44.0,\n \"12500x910\": 45.0,\n \"12500x1050\": 64.0,\n \"12500x1230\": 64.0,\n \"15500x600\": 52.0,\n \"15500x750\": 53.0,\n \"15500x910\": 54.0,\n \"15500x1050\": 54.0,\n \"15500x1230\": 54.0,\n \"20000x600\": 52.0,\n \"20000x750\": 53.0,\n \"20000x910\": 54.0,\n \"20000x1050\": 54.0,\n \"20000x1230\": 54.0,\n \"25000x600\": 52.0,\n \"25000x750\": 53.0,\n \"25000x910\": 54.0,\n \"25000x1050\": 54.0,\n \"25000x1230\": 54.0,\n \"30000x600\": 52.0,\n \"30000x750\": 53.0,\n \"30000x910\": 54.0,\n \"30000x1050\": 54.0,\n \"30000x1230\": 54.0,\n \"35000x600\": 62.0,\n \"35000x750\": 63.0,\n \"35000x910\": 64.0,\n \"35000x1050\": 65.0,\n \"35000x1230\": 66.0,\n \"40000x600\": 62.0,\n \"40000x750\": 63.0,\n \"40000x910\": 64.0,\n \"40000x1050\": 65.0,\n \"40000x1230\": 66.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 72.0,\n \"50000x1050\": 73.0,\n \"50000x1230\": 73.0,\n \"60000x600\": 71.0,\n \"60000x750\": 72.0,\n \"60000x910\": 73.0,\n \"60000x1050\": 73.0,\n \"60000x1230\": 73.0,\n },\n \"2500x4000\": {\n \"1000x600\": 53.0,\n \"1000x750\": 54.0,\n \"1000x910\": 54.0,\n \"1000x1050\": 54.0,\n \"1000x1230\": 66.0,\n \"2000x600\": 53.0,\n \"2000x750\": 54.0,\n \"2000x910\": 54.0,\n \"2000x1050\": 54.0,\n \"2000x1230\": 66.0,\n \"3000x600\": 53.0,\n \"3000x750\": 54.0,\n \"3000x910\": 54.0,\n \"3000x1050\": 54.0,\n \"3000x1230\": 66.0,\n \"4000x600\": 53.0,\n \"4000x750\": 54.0,\n \"4000x910\": 54.0,\n \"4000x1050\": 54.0,\n \"4000x1230\": 66.0,\n \"5000x600\": 53.0,\n \"5000x750\": 54.0,\n \"5000x910\": 54.0,\n \"5000x1050\": 54.0,\n \"5000x1230\": 66.0,\n \"6500x600\": 53.0,\n \"6500x750\": 54.0,\n \"6500x910\": 54.0,\n \"6500x1050\": 54.0,\n \"6500x1230\": 66.0,\n \"8000x600\": 53.0,\n \"8000x750\": 54.0,\n \"8000x910\": 54.0,\n \"8000x1050\": 54.0,\n \"8000x1230\": 66.0,\n \"10000x600\": 53.0,\n \"10000x750\": 54.0,\n \"10000x910\": 54.0,\n \"10000x1050\": 54.0,\n \"10000x1230\": 66.0,\n \"12500x600\": 53.0,\n \"12500x750\": 54.0,\n \"12500x910\": 54.0,\n \"12500x1050\": 54.0,\n \"12500x1230\": 66.0,\n \"15500x600\": 53.0,\n \"15500x750\": 54.0,\n \"15500x910\": 54.0,\n \"15500x1050\": 54.0,\n \"15500x1230\": 66.0,\n \"20000x600\": 53.0,\n \"20000x750\": 54.0,\n \"20000x910\": 54.0,\n \"20000x1050\": 54.0,\n \"20000x1230\": 66.0,\n \"25000x600\": 53.0,\n \"25000x750\": 54.0,\n \"25000x910\": 54.0,\n \"25000x1050\": 54.0,\n \"25000x1230\": 66.0,\n \"30000x600\": 53.0,\n \"30000x750\": 54.0,\n \"30000x910\": 54.0,\n \"30000x1050\": 54.0,\n \"30000x1230\": 66.0,\n \"35000x600\": 64.0,\n \"35000x750\": 65.0,\n \"35000x910\": 66.0,\n \"35000x1050\": 66.0,\n \"35000x1230\": 73.0,\n \"40000x600\": 64.0,\n \"40000x750\": 65.0,\n \"40000x910\": 66.0,\n \"40000x1050\": 66.0,\n \"40000x1230\": 73.0,\n \"50000x600\": 71.0,\n \"50000x750\": 72.0,\n \"50000x910\": 73.0,\n \"50000x1050\": 73.0,\n \"50000x1230\": 73.0,\n \"60000x600\": 71.0,\n \"60000x750\": 72.0,\n \"60000x910\": 73.0,\n \"60000x1050\": 73.0,\n \"60000x1230\": 73.0,\n },\n \"2500x5000\": {\n \"1000x600\": 54.0,\n \"1000x750\": 66.0,\n \"1000x910\": 66.0,\n \"1000x1050\": 73.0,\n \"1000x1230\": 73.0,\n \"2000x600\": 54.0,\n \"2000x750\": 66.0,\n \"2000x910\": 66.0,\n \"2000x1050\": 73.0,\n \"2000x1230\": 73.0,\n \"3000x600\": 54.0,\n \"3000x750\": 66.0,\n \"3000x910\": 66.0,\n \"3000x1050\": 73.0,\n \"3000x1230\": 73.0,\n \"4000x600\": 54.0,\n \"4000x750\": 66.0,\n \"4000x910\": 66.0,\n \"4000x1050\": 73.0,\n \"4000x1230\": 73.0,\n \"5000x600\": 54.0,\n \"5000x750\": 66.0,\n \"5000x910\": 66.0,\n \"5000x1050\": 73.0,\n \"5000x1230\": 73.0,\n \"6500x600\": 54.0,\n \"6500x750\": 66.0,\n \"6500x910\": 66.0,\n \"6500x1050\": 73.0,\n \"6500x1230\": 73.0,\n \"8000x600\": 54.0,\n \"8000x750\": 66.0,\n \"8000x910\": 66.0,\n \"8000x1050\": 73.0,\n \"8000x1230\": 73.0,\n \"10000x600\": 54.0,\n \"10000x750\": 66.0,\n \"10000x910\": 66.0,\n \"10000x1050\": 73.0,\n \"10000x1230\": 73.0,\n \"12500x600\": 54.0,\n \"12500x750\": 66.0,\n \"12500x910\": 66.0,\n \"12500x1050\": 73.0,\n \"12500x1230\": 73.0,\n \"15500x600\": 54.0,\n \"15500x750\": 66.0,\n \"15500x910\": 66.0,\n \"15500x1050\": 73.0,\n \"15500x1230\": 73.0,\n \"20000x600\": 54.0,\n \"20000x750\": 66.0,\n \"20000x910\": 66.0,\n \"20000x1050\": 73.0,\n \"20000x1230\": 73.0,\n \"25000x600\": 54.0,\n \"25000x750\": 66.0,\n \"25000x910\": 66.0,\n \"25000x1050\": 73.0,\n \"25000x1230\": 73.0,\n \"30000x600\": 54.0,\n \"30000x750\": 66.0,\n \"30000x910\": 66.0,\n \"30000x1050\": 73.0,\n \"30000x1230\": 73.0,\n \"35000x600\": 66.0,\n \"35000x750\": 66.0,\n \"35000x910\": 73.0,\n \"35000x1050\": 83.0,\n \"35000x1230\": 83.0,\n \"40000x600\": 66.0,\n \"40000x750\": 66.0,\n \"40000x910\": 73.0,\n \"40000x1050\": 83.0,\n \"40000x1230\": 83.0,\n \"50000x600\": 73.0,\n \"50000x750\": 73.0,\n \"50000x910\": 73.0,\n \"50000x1050\": 83.0,\n \"50000x1230\": 83.0,\n \"60000x600\": 73.0,\n \"60000x750\": 73.0,\n \"60000x910\": 73.0,\n \"60000x1050\": 83.0,\n \"60000x1230\": 83.0,\n },\n \"3000x1000\": {\n \"1000x600\": 21,\n \"1000x750\": 21,\n \"1000x910\": 22,\n \"1000x1050\": 22,\n \"1000x1230\": 22,\n \"2000x600\": 31,\n \"2000x750\": 31,\n \"2000x910\": 31,\n \"2000x1050\": 31,\n \"2000x1230\": 31,\n \"3000x600\": 31,\n \"3000x750\": 31,\n \"3000x910\": 31,\n \"3000x1050\": 31,\n \"3000x1230\": 31,\n \"4000x600\": 31,\n \"4000x750\": 31,\n \"4000x910\": 31,\n \"4000x1050\": 31,\n \"4000x1230\": 31,\n \"5000x600\": 41,\n \"5000x750\": 41,\n \"5000x910\": 41,\n \"5000x1050\": 41,\n \"5000x1230\": 41,\n \"6500x600\": 41,\n \"6500x750\": 41,\n \"6500x910\": 41,\n \"6500x1050\": 41,\n \"6500x1230\": 41,\n \"8000x600\": 41,\n \"8000x750\": 41,\n \"8000x910\": 41,\n \"8000x1050\": 41,\n \"8000x1230\": 41,\n \"10000x600\": 41,\n \"10000x750\": 41,\n \"10000x910\": 41,\n \"10000x1050\": 41,\n \"10000x1230\": 41,\n \"12500x600\": 51,\n \"12500x750\": 51,\n \"12500x910\": 51,\n \"12500x1050\": 51,\n \"12500x1230\": 51,\n \"15500x600\": 51,\n \"15500x750\": 51,\n \"15500x910\": 51,\n \"15500x1050\": 51,\n \"15500x1230\": 51,\n \"20000x600\": 51,\n \"20000x750\": 51,\n \"20000x910\": 51,\n \"20000x1050\": 51,\n \"20000x1230\": 51,\n \"25000x600\": 51,\n \"25000x750\": 51,\n \"25000x910\": 51,\n \"25000x1050\": 52,\n \"25000x1230\": 51,\n \"30000x600\": 61,\n \"30000x750\": 61,\n \"30000x910\": 61,\n \"30000x1050\": 61,\n \"30000x1230\": 61,\n \"35000x600\": 71,\n \"35000x750\": 71,\n \"35000x910\": 71,\n \"35000x1050\": 71,\n \"35000x1230\": 71,\n \"40000x600\": 71,\n \"40000x750\": 71,\n \"40000x910\": 71,\n \"40000x1050\": 71,\n \"40000x1230\": 71,\n \"50000x600\": 71,\n \"50000x750\": 71,\n \"50000x910\": 71,\n \"50000x1050\": 71,\n \"50000x1230\": 71,\n \"60000x600\": 71,\n \"60000x750\": 71,\n \"60000x910\": 71,\n \"60000x1050\": 71,\n \"60000x1230\": 71,\n },\n \"3000x1500\": {\n \"1000x600\": 22.0,\n \"1000x750\": 22.0,\n \"1000x910\": 22.0,\n \"1000x1050\": 22.0,\n \"1000x1230\": 22.0,\n \"2000x600\": 31.0,\n \"2000x750\": 31.0,\n \"2000x910\": 31.0,\n \"2000x1050\": 32.0,\n \"2000x1230\": 32.0,\n \"3000x600\": 31.0,\n \"3000x750\": 31.0,\n \"3000x910\": 31.0,\n \"3000x1050\": 32.0,\n \"3000x1230\": 32.0,\n \"4000x600\": 31.0,\n \"4000x750\": 31.0,\n \"4000x910\": 31.0,\n \"4000x1050\": 32.0,\n \"4000x1230\": 32.0,\n \"5000x600\": 41.0,\n \"5000x750\": 41.0,\n \"5000x910\": 41.0,\n \"5000x1050\": 41.0,\n \"5000x1230\": 42.0,\n \"6500x600\": 41.0,\n \"6500x750\": 41.0,\n \"6500x910\": 41.0,\n \"6500x1050\": 41.0,\n \"6500x1230\": 42.0,\n \"8000x600\": 41.0,\n \"8000x750\": 41.0,\n \"8000x910\": 41.0,\n \"8000x1050\": 41.0,\n \"8000x1230\": 42.0,\n \"10000x600\": 41.0,\n \"10000x750\": 41.0,\n \"10000x910\": 41.0,\n \"10000x1050\": 41.0,\n \"10000x1230\": 42.0,\n \"12500x600\": 51.0,\n \"12500x750\": 51.0,\n \"12500x910\": 51.0,\n \"12500x1050\": 51.0,\n \"12500x1230\": 52.0,\n \"15500x600\": 51.0,\n \"15500x750\": 51.0,\n \"15500x910\": 51.0,\n \"15500x1050\": 51.0,\n \"15500x1230\": 52.0,\n \"20000x600\": 51.0,\n \"20000x750\": 51.0,\n \"20000x910\": 51.0,\n \"20000x1050\": 51.0,\n \"20000x1230\": 52.0,\n \"25000x600\": 51.0,\n \"25000x750\": 51.0,\n \"25000x910\": 51.0,\n \"25000x1050\": 52.0,\n \"25000x1230\": 52.0,\n \"30000x600\": 61.0,\n \"30000x750\": 61.0,\n \"30000x910\": 61.0,\n \"30000x1050\": 61.0,\n \"30000x1230\": 62.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 71.0,\n \"35000x1230\": 71.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 71.0,\n \"40000x1230\": 71.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 71.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0,\n },\n \"3000x2000\": {\n \"1000x600\": 22.0,\n \"1000x750\": 22.0,\n \"1000x910\": 23.0,\n \"1000x1050\": 23.0,\n \"1000x1230\": 32.0,\n \"2000x600\": 32.0,\n \"2000x750\": 32.0,\n \"2000x910\": 32.0,\n \"2000x1050\": 32.0,\n \"2000x1230\": 32.0,\n \"3000x600\": 32.0,\n \"3000x750\": 32.0,\n \"3000x910\": 32.0,\n \"3000x1050\": 32.0,\n \"3000x1230\": 32.0,\n \"4000x600\": 32.0,\n \"4000x750\": 32.0,\n \"4000x910\": 32.0,\n \"4000x1050\": 32.0,\n \"4000x1230\": 32.0,\n \"5000x600\": 41.0,\n \"5000x750\": 42.0,\n \"5000x910\": 42.0,\n \"5000x1050\": 42.0,\n \"5000x1230\": 42.0,\n \"6500x600\": 41.0,\n \"6500x750\": 42.0,\n \"6500x910\": 42.0,\n \"6500x1050\": 42.0,\n \"6500x1230\": 42.0,\n \"8000x600\": 41.0,\n \"8000x750\": 42.0,\n \"8000x910\": 42.0,\n \"8000x1050\": 42.0,\n \"8000x1230\": 42.0,\n \"10000x600\": 41.0,\n \"10000x750\": 42.0,\n \"10000x910\": 42.0,\n \"10000x1050\": 42.0,\n \"10000x1230\": 42.0,\n \"12500x600\": 51.0,\n \"12500x750\": 52.0,\n \"12500x910\": 52.0,\n \"12500x1050\": 52.0,\n \"12500x1230\": 52.0,\n \"15500x600\": 51.0,\n \"15500x750\": 52.0,\n \"15500x910\": 52.0,\n \"15500x1050\": 52.0,\n \"15500x1230\": 52.0,\n \"20000x600\": 51.0,\n \"20000x750\": 52.0,\n \"20000x910\": 52.0,\n \"20000x1050\": 52.0,\n \"20000x1230\": 52.0,\n \"25000x600\": 51.0,\n \"25000x750\": 52.0,\n \"25000x910\": 52.0,\n \"25000x1050\": 52.0,\n \"25000x1230\": 52.0,\n \"30000x600\": 61.0,\n \"30000x750\": 61.0,\n \"30000x910\": 61.0,\n \"30000x1050\": 62.0,\n \"30000x1230\": 62.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 71.0,\n \"35000x1230\": 71.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 71.0,\n \"40000x1230\": 71.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 71.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0,\n },\n \"3000x2500\": {\n \"1000x600\": 32.0,\n \"1000x750\": 32.0,\n \"1000x910\": 33.0,\n \"1000x1050\": 33.0,\n \"1000x1230\": 34.0,\n \"2000x600\": 32.0,\n \"2000x750\": 32.0,\n \"2000x910\": 32.0,\n \"2000x1050\": 33.0,\n \"2000x1230\": 34.0,\n \"3000x600\": 32.0,\n \"3000x750\": 32.0,\n \"3000x910\": 32.0,\n \"3000x1050\": 33.0,\n \"3000x1230\": 34.0,\n \"4000x600\": 32.0,\n \"4000x750\": 32.0,\n \"4000x910\": 32.0,\n \"4000x1050\": 33.0,\n \"4000x1230\": 34.0,\n \"5000x600\": 42.0,\n \"5000x750\": 42.0,\n \"5000x910\": 42.0,\n \"5000x1050\": 42.0,\n \"5000x1230\": 43.0,\n \"6500x600\": 42.0,\n \"6500x750\": 42.0,\n \"6500x910\": 42.0,\n \"6500x1050\": 42.0,\n \"6500x1230\": 43.0,\n \"8000x600\": 42.0,\n \"8000x750\": 42.0,\n \"8000x910\": 42.0,\n \"8000x1050\": 42.0,\n \"8000x1230\": 43.0,\n \"10000x600\": 42.0,\n \"10000x750\": 42.0,\n \"10000x910\": 42.0,\n \"10000x1050\": 42.0,\n \"10000x1230\": 43.0,\n \"12500x600\": 52.0,\n \"12500x750\": 52.0,\n \"12500x910\": 52.0,\n \"12500x1050\": 52.0,\n \"12500x1230\": 53.0,\n \"15500x600\": 52.0,\n \"15500x750\": 52.0,\n \"15500x910\": 52.0,\n \"15500x1050\": 52.0,\n \"15500x1230\": 53.0,\n \"20000x600\": 52.0,\n \"20000x750\": 52.0,\n \"20000x910\": 52.0,\n \"20000x1050\": 52.0,\n \"20000x1230\": 53.0,\n \"25000x600\": 52.0,\n \"25000x750\": 52.0,\n \"25000x910\": 52.0,\n \"25000x1050\": 52.0,\n \"25000x1230\": 53.0,\n \"30000x600\": 61.0,\n \"30000x750\": 62.0,\n \"30000x910\": 62.0,\n \"30000x1050\": 62.0,\n \"30000x1230\": 62.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 71.0,\n \"35000x1230\": 71.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 71.0,\n \"40000x1230\": 71.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 71.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0,\n },\n \"3000x3000\": {\n \"1000x600\": 33.0,\n \"1000x750\": 34.0,\n \"1000x910\": 34.0,\n \"1000x1050\": 44.0,\n \"1000x1230\": 45.0,\n \"2000x600\": 32.0,\n \"2000x750\": 33.0,\n \"2000x910\": 34.0,\n \"2000x1050\": 44.0,\n \"2000x1230\": 45.0,\n \"3000x600\": 32.0,\n \"3000x750\": 33.0,\n \"3000x910\": 34.0,\n \"3000x1050\": 44.0,\n \"3000x1230\": 45.0,\n \"4000x600\": 32.0,\n \"4000x750\": 33.0,\n \"4000x910\": 34.0,\n \"4000x1050\": 44.0,\n \"4000x1230\": 45.0,\n \"5000x600\": 42.0,\n \"5000x750\": 42.0,\n \"5000x910\": 43.0,\n \"5000x1050\": 44.0,\n \"5000x1230\": 45.0,\n \"6500x600\": 42.0,\n \"6500x750\": 42.0,\n \"6500x910\": 43.0,\n \"6500x1050\": 44.0,\n \"6500x1230\": 45.0,\n \"8000x600\": 42.0,\n \"8000x750\": 42.0,\n \"8000x910\": 43.0,\n \"8000x1050\": 44.0,\n \"8000x1230\": 45.0,\n \"10000x600\": 42.0,\n \"10000x750\": 42.0,\n \"10000x910\": 43.0,\n \"10000x1050\": 44.0,\n \"10000x1230\": 45.0,\n \"12500x600\": 52.0,\n \"12500x750\": 52.0,\n \"12500x910\": 53.0,\n \"12500x1050\": 54.0,\n \"12500x1230\": 54.0,\n \"15500x600\": 52.0,\n \"15500x750\": 52.0,\n \"15500x910\": 53.0,\n \"15500x1050\": 54.0,\n \"15500x1230\": 54.0,\n \"20000x600\": 52.0,\n \"20000x750\": 52.0,\n \"20000x910\": 53.0,\n \"20000x1050\": 54.0,\n \"20000x1230\": 54.0,\n \"25000x600\": 52.0,\n \"25000x750\": 52.0,\n \"25000x910\": 53.0,\n \"25000x1050\": 54.0,\n \"25000x1230\": 54.0,\n \"30000x600\": 62.0,\n \"30000x750\": 62.0,\n \"30000x910\": 62.0,\n \"30000x1050\": 63.0,\n \"30000x1230\": 64.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 72.0,\n \"35000x1230\": 73.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 72.0,\n \"40000x1230\": 73.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 72.0,\n \"50000x1230\": 73.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 72.0,\n \"60000x1230\": 73.0,\n },\n \"3000x3500\": {\n \"1000x600\": 52.0,\n \"1000x750\": 53.0,\n \"1000x910\": 54.0,\n \"1000x1050\": 54.0,\n \"1000x1230\": 54.0,\n \"2000x600\": 52.0,\n \"2000x750\": 52.0,\n \"2000x910\": 53.0,\n \"2000x1050\": 54.0,\n \"2000x1230\": 54.0,\n \"3000x600\": 52.0,\n \"3000x750\": 52.0,\n \"3000x910\": 53.0,\n \"3000x1050\": 54.0,\n \"3000x1230\": 54.0,\n \"4000x600\": 52.0,\n \"4000x750\": 52.0,\n \"4000x910\": 53.0,\n \"4000x1050\": 54.0,\n \"4000x1230\": 54.0,\n \"5000x600\": 52.0,\n \"5000x750\": 52.0,\n \"5000x910\": 53.0,\n \"5000x1050\": 54.0,\n \"5000x1230\": 54.0,\n \"6500x600\": 52.0,\n \"6500x750\": 52.0,\n \"6500x910\": 53.0,\n \"6500x1050\": 54.0,\n \"6500x1230\": 54.0,\n \"8000x600\": 52.0,\n \"8000x750\": 52.0,\n \"8000x910\": 53.0,\n \"8000x1050\": 54.0,\n \"8000x1230\": 54.0,\n \"10000x600\": 52.0,\n \"10000x750\": 52.0,\n \"10000x910\": 53.0,\n \"10000x1050\": 54.0,\n \"10000x1230\": 54.0,\n \"12500x600\": 53.0,\n \"12500x750\": 54.0,\n \"12500x910\": 54.0,\n \"12500x1050\": 54.0,\n \"12500x1230\": 66.0,\n \"15500x600\": 53.0,\n \"15500x750\": 54.0,\n \"15500x910\": 54.0,\n \"15500x1050\": 54.0,\n \"15500x1230\": 66.0,\n \"20000x600\": 53.0,\n \"20000x750\": 54.0,\n \"20000x910\": 54.0,\n \"20000x1050\": 54.0,\n \"20000x1230\": 66.0,\n \"25000x600\": 53.0,\n \"25000x750\": 54.0,\n \"25000x910\": 54.0,\n \"25000x1050\": 54.0,\n \"25000x1230\": 66.0,\n \"30000x600\": 62.0,\n \"30000x750\": 63.0,\n \"30000x910\": 64.0,\n \"30000x1050\": 65.0,\n \"30000x1230\": 66.0,\n \"35000x600\": 71.0,\n \"35000x750\": 72.0,\n \"35000x910\": 73.0,\n \"35000x1050\": 73.0,\n \"35000x1230\": 73.0,\n \"40000x600\": 71.0,\n \"40000x750\": 72.0,\n \"40000x910\": 73.0,\n \"40000x1050\": 73.0,\n \"40000x1230\": 73.0,\n \"50000x600\": 71.0,\n \"50000x750\": 72.0,\n \"50000x910\": 73.0,\n \"50000x1050\": 73.0,\n \"50000x1230\": 73.0,\n \"60000x600\": 71.0,\n \"60000x750\": 72.0,\n \"60000x910\": 73.0,\n \"60000x1050\": 73.0,\n \"60000x1230\": 73.0,\n },\n \"3000x4000\": {\n \"1000x600\": 54.0,\n \"1000x750\": 54.0,\n \"1000x910\": 66.0,\n \"1000x1050\": 66.0,\n \"1000x1230\": 66.0,\n \"2000x600\": 54.0,\n \"2000x750\": 54.0,\n \"2000x910\": 66.0,\n \"2000x1050\": 66.0,\n \"2000x1230\": 66.0,\n \"3000x600\": 54.0,\n \"3000x750\": 54.0,\n \"3000x910\": 66.0,\n \"3000x1050\": 66.0,\n \"3000x1230\": 66.0,\n \"4000x600\": 54.0,\n \"4000x750\": 54.0,\n \"4000x910\": 66.0,\n \"4000x1050\": 66.0,\n \"4000x1230\": 66.0,\n \"5000x600\": 54.0,\n \"5000x750\": 54.0,\n \"5000x910\": 66.0,\n \"5000x1050\": 66.0,\n \"5000x1230\": 66.0,\n \"6500x600\": 54.0,\n \"6500x750\": 54.0,\n \"6500x910\": 66.0,\n \"6500x1050\": 66.0,\n \"6500x1230\": 66.0,\n \"8000x600\": 54.0,\n \"8000x750\": 54.0,\n \"8000x910\": 66.0,\n \"8000x1050\": 66.0,\n \"8000x1230\": 66.0,\n \"10000x600\": 54.0,\n \"10000x750\": 54.0,\n \"10000x910\": 66.0,\n \"10000x1050\": 66.0,\n \"10000x1230\": 66.0,\n \"12500x600\": 54.0,\n \"12500x750\": 54.0,\n \"12500x910\": 66.0,\n \"12500x1050\": 66.0,\n \"12500x1230\": 66.0,\n \"15500x600\": 54.0,\n \"15500x750\": 54.0,\n \"15500x910\": 66.0,\n \"15500x1050\": 66.0,\n \"15500x1230\": 66.0,\n \"20000x600\": 54.0,\n \"20000x750\": 54.0,\n \"20000x910\": 66.0,\n \"20000x1050\": 66.0,\n \"20000x1230\": 66.0,\n \"25000x600\": 54.0,\n \"25000x750\": 54.0,\n \"25000x910\": 66.0,\n \"25000x1050\": 66.0,\n \"25000x1230\": 66.0,\n \"30000x600\": 63.0,\n \"30000x750\": 64.0,\n \"30000x910\": 66.0,\n \"30000x1050\": 66.0,\n \"30000x1230\": 66.0,\n \"35000x600\": 72.0,\n \"35000x750\": 73.0,\n \"35000x910\": 73.0,\n \"35000x1050\": 73.0,\n \"35000x1230\": 73.0,\n \"40000x600\": 72.0,\n \"40000x750\": 73.0,\n \"40000x910\": 73.0,\n \"40000x1050\": 73.0,\n \"40000x1230\": 73.0,\n \"50000x600\": 72.0,\n \"50000x750\": 73.0,\n \"50000x910\": 73.0,\n \"50000x1050\": 73.0,\n \"50000x1230\": 73.0,\n \"60000x600\": 72.0,\n \"60000x750\": 73.0,\n \"60000x910\": 73.0,\n \"60000x1050\": 73.0,\n \"60000x1230\": 73.0,\n },\n \"3000x5000\": {\n \"1000x600\": 66.0,\n \"1000x750\": 66.0,\n \"1000x910\": 73.0,\n \"1000x1050\": 73.0,\n \"1000x1230\": 83.0,\n \"2000x600\": 66.0,\n \"2000x750\": 66.0,\n \"2000x910\": 73.0,\n \"2000x1050\": 73.0,\n \"2000x1230\": 83.0,\n \"3000x600\": 66.0,\n \"3000x750\": 66.0,\n \"3000x910\": 73.0,\n \"3000x1050\": 73.0,\n \"3000x1230\": 83.0,\n \"4000x600\": 66.0,\n \"4000x750\": 66.0,\n \"4000x910\": 73.0,\n \"4000x1050\": 73.0,\n \"4000x1230\": 83.0,\n \"5000x600\": 66.0,\n \"5000x750\": 66.0,\n \"5000x910\": 73.0,\n \"5000x1050\": 73.0,\n \"5000x1230\": 83.0,\n \"6500x600\": 66.0,\n \"6500x750\": 66.0,\n \"6500x910\": 73.0,\n \"6500x1050\": 73.0,\n \"6500x1230\": 83.0,\n \"8000x600\": 66.0,\n \"8000x750\": 66.0,\n \"8000x910\": 73.0,\n \"8000x1050\": 73.0,\n \"8000x1230\": 83.0,\n \"10000x600\": 66.0,\n \"10000x750\": 66.0,\n \"10000x910\": 73.0,\n \"10000x1050\": 73.0,\n \"10000x1230\": 83.0,\n \"12500x600\": 66.0,\n \"12500x750\": 66.0,\n \"12500x910\": 73.0,\n \"12500x1050\": 73.0,\n \"12500x1230\": 83.0,\n \"15500x600\": 66.0,\n \"15500x750\": 66.0,\n \"15500x910\": 73.0,\n \"15500x1050\": 73.0,\n \"15500x1230\": 83.0,\n \"20000x600\": 66.0,\n \"20000x750\": 66.0,\n \"20000x910\": 73.0,\n \"20000x1050\": 73.0,\n \"20000x1230\": 83.0,\n \"25000x600\": 66.0,\n \"25000x750\": 66.0,\n \"25000x910\": 73.0,\n \"25000x1050\": 73.0,\n \"25000x1230\": 83.0,\n \"30000x600\": 66.0,\n \"30000x750\": 66.0,\n \"30000x910\": 73.0,\n \"30000x1050\": 73.0,\n \"30000x1230\": 83.0,\n \"35000x600\": 73.0,\n \"35000x750\": 73.0,\n \"35000x910\": 83.0,\n \"35000x1050\": 83.0,\n \"35000x1230\": 83.0,\n \"40000x600\": 73.0,\n \"40000x750\": 73.0,\n \"40000x910\": 83.0,\n \"40000x1050\": 83.0,\n \"40000x1230\": 83.0,\n \"50000x600\": 73.0,\n \"50000x750\": 73.0,\n \"50000x910\": 83.0,\n \"50000x1050\": 83.0,\n \"50000x1230\": 83.0,\n \"60000x600\": 73.0,\n \"60000x750\": 73.0,\n \"60000x910\": 83.0,\n \"60000x1050\": 83.0,\n \"60000x1230\": 83.0,\n },\n \"3500x1000\": {\n \"1000x600\": 31.0,\n \"1000x750\": 31.0,\n \"1000x910\": 31.0,\n \"1000x1050\": 31.0,\n \"1000x1230\": 32.0,\n \"2000x600\": 31.0,\n \"2000x750\": 31.0,\n \"2000x910\": 31.0,\n \"2000x1050\": 31.0,\n \"2000x1230\": 41.0,\n \"3000x600\": 31.0,\n \"3000x750\": 31.0,\n \"3000x910\": 31.0,\n \"3000x1050\": 31.0,\n \"3000x1230\": 41.0,\n \"4000x600\": 41.0,\n \"4000x750\": 41.0,\n \"4000x910\": 41.0,\n \"4000x1050\": 41.0,\n \"4000x1230\": 41.0,\n \"5000x600\": 41.0,\n \"5000x750\": 41.0,\n \"5000x910\": 41.0,\n \"5000x1050\": 41.0,\n \"5000x1230\": 41.0,\n \"6500x600\": 41.0,\n \"6500x750\": 41.0,\n \"6500x910\": 41.0,\n \"6500x1050\": 41.0,\n \"6500x1230\": 41.0,\n \"8000x600\": 41.0,\n \"8000x750\": 41.0,\n \"8000x910\": 41.0,\n \"8000x1050\": 41.0,\n \"8000x1230\": 41.0,\n \"10000x600\": 51.0,\n \"10000x750\": 51.0,\n \"10000x910\": 51.0,\n \"10000x1050\": 51.0,\n \"10000x1230\": 51.0,\n \"12500x600\": 51.0,\n \"12500x750\": 51.0,\n \"12500x910\": 51.0,\n \"12500x1050\": 51.0,\n \"12500x1230\": 51.0,\n \"15500x600\": 51.0,\n \"15500x750\": 51.0,\n \"15500x910\": 51.0,\n \"15500x1050\": 51.0,\n \"15500x1230\": 51.0,\n \"20000x600\": 51.0,\n \"20000x750\": 51.0,\n \"20000x910\": 51.0,\n \"20000x1050\": 51.0,\n \"20000x1230\": 51.0,\n \"25000x600\": 61.0,\n \"25000x750\": 61.0,\n \"25000x910\": 61.0,\n \"25000x1050\": 61.0,\n \"25000x1230\": 61.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 71.0,\n \"30000x1050\": 71.0,\n \"30000x1230\": 71.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 71.0,\n \"35000x1230\": 71.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 71.0,\n \"40000x1230\": 71.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 71.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0,\n },\n \"3500x1500\": {\n \"1000x600\": 31.0,\n \"1000x750\": 32.0,\n \"1000x910\": 32.0,\n \"1000x1050\": 32.0,\n \"1000x1230\": 32.0,\n \"2000x600\": 31.0,\n \"2000x750\": 32.0,\n \"2000x910\": 32.0,\n \"2000x1050\": 32.0,\n \"2000x1230\": 32.0,\n \"3000x600\": 31.0,\n \"3000x750\": 32.0,\n \"3000x910\": 32.0,\n \"3000x1050\": 32.0,\n \"3000x1230\": 32.0,\n \"4000x600\": 41.0,\n \"4000x750\": 41.0,\n \"4000x910\": 41.0,\n \"4000x1050\": 42.0,\n \"4000x1230\": 42.0,\n \"5000x600\": 41.0,\n \"5000x750\": 41.0,\n \"5000x910\": 41.0,\n \"5000x1050\": 42.0,\n \"5000x1230\": 42.0,\n \"6500x600\": 41.0,\n \"6500x750\": 41.0,\n \"6500x910\": 41.0,\n \"6500x1050\": 42.0,\n \"6500x1230\": 42.0,\n \"8000x600\": 41.0,\n \"8000x750\": 41.0,\n \"8000x910\": 41.0,\n \"8000x1050\": 42.0,\n \"8000x1230\": 42.0,\n \"10000x600\": 51.0,\n \"10000x750\": 51.0,\n \"10000x910\": 51.0,\n \"10000x1050\": 51.0,\n \"10000x1230\": 51.0,\n \"12500x600\": 51.0,\n \"12500x750\": 51.0,\n \"12500x910\": 51.0,\n \"12500x1050\": 52.0,\n \"12500x1230\": 52.0,\n \"15500x600\": 51.0,\n \"15500x750\": 51.0,\n \"15500x910\": 51.0,\n \"15500x1050\": 52.0,\n \"15500x1230\": 52.0,\n \"20000x600\": 51.0,\n \"20000x750\": 51.0,\n \"20000x910\": 51.0,\n \"20000x1050\": 52.0,\n \"20000x1230\": 52.0,\n \"25000x600\": 61.0,\n \"25000x750\": 61.0,\n \"25000x910\": 61.0,\n \"25000x1050\": 61.0,\n \"25000x1230\": 62.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 71.0,\n \"30000x1050\": 71.0,\n \"30000x1230\": 71.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 71.0,\n \"35000x1230\": 71.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 71.0,\n \"40000x1230\": 71.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 71.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0,\n },\n \"3500x2000\": {\n \"1000x600\": 32.0,\n \"1000x750\": 32.0,\n \"1000x910\": 32.0,\n \"1000x1050\": 32.0,\n \"1000x1230\": 33.0,\n \"2000x600\": 32.0,\n \"2000x750\": 32.0,\n \"2000x910\": 32.0,\n \"2000x1050\": 32.0,\n \"2000x1230\": 33.0,\n \"3000x600\": 32.0,\n \"3000x750\": 32.0,\n \"3000x910\": 32.0,\n \"3000x1050\": 32.0,\n \"3000x1230\": 33.0,\n \"4000x600\": 42.0,\n \"4000x750\": 42.0,\n \"4000x910\": 42.0,\n \"4000x1050\": 42.0,\n \"4000x1230\": 42.0,\n \"5000x600\": 42.0,\n \"5000x750\": 42.0,\n \"5000x910\": 42.0,\n \"5000x1050\": 42.0,\n \"5000x1230\": 42.0,\n \"6500x600\": 42.0,\n \"6500x750\": 42.0,\n \"6500x910\": 42.0,\n \"6500x1050\": 42.0,\n \"6500x1230\": 42.0,\n \"8000x600\": 42.0,\n \"8000x750\": 42.0,\n \"8000x910\": 42.0,\n \"8000x1050\": 42.0,\n \"8000x1230\": 42.0,\n \"10000x600\": 51.0,\n \"10000x750\": 51.0,\n \"10000x910\": 52.0,\n \"10000x1050\": 52.0,\n \"10000x1230\": 52.0,\n \"12500x600\": 51.0,\n \"12500x750\": 52.0,\n \"12500x910\": 52.0,\n \"12500x1050\": 52.0,\n \"12500x1230\": 52.0,\n \"15500x600\": 51.0,\n \"15500x750\": 52.0,\n \"15500x910\": 52.0,\n \"15500x1050\": 52.0,\n \"15500x1230\": 52.0,\n \"20000x600\": 51.0,\n \"20000x750\": 52.0,\n \"20000x910\": 52.0,\n \"20000x1050\": 52.0,\n \"20000x1230\": 52.0,\n \"25000x600\": 61.0,\n \"25000x750\": 61.0,\n \"25000x910\": 62.0,\n \"25000x1050\": 62.0,\n \"25000x1230\": 62.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 71.0,\n \"30000x1050\": 71.0,\n \"30000x1230\": 71.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 71.0,\n \"35000x1230\": 71.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 71.0,\n \"40000x1230\": 71.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 71.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0,\n },\n \"3500x2500\": {\n \"1000x600\": 32.0,\n \"1000x750\": 33.0,\n \"1000x910\": 34.0,\n \"1000x1050\": 34.0,\n \"1000x1230\": 34.0,\n \"2000x600\": 32.0,\n \"2000x750\": 32.0,\n \"2000x910\": 33.0,\n \"2000x1050\": 34.0,\n \"2000x1230\": 34.0,\n \"3000x600\": 32.0,\n \"3000x750\": 32.0,\n \"3000x910\": 33.0,\n \"3000x1050\": 34.0,\n \"3000x1230\": 34.0,\n \"4000x600\": 42.0,\n \"4000x750\": 42.0,\n \"4000x910\": 42.0,\n \"4000x1050\": 43.0,\n \"4000x1230\": 44.0,\n \"5000x600\": 42.0,\n \"5000x750\": 42.0,\n \"5000x910\": 42.0,\n \"5000x1050\": 43.0,\n \"5000x1230\": 44.0,\n \"6500x600\": 42.0,\n \"6500x750\": 42.0,\n \"6500x910\": 42.0,\n \"6500x1050\": 43.0,\n \"6500x1230\": 44.0,\n \"8000x600\": 42.0,\n \"8000x750\": 42.0,\n \"8000x910\": 42.0,\n \"8000x1050\": 43.0,\n \"8000x1230\": 44.0,\n \"10000x600\": 52.0,\n \"10000x750\": 52.0,\n \"10000x910\": 52.0,\n \"10000x1050\": 52.0,\n \"10000x1230\": 52.0,\n \"12500x600\": 52.0,\n \"12500x750\": 52.0,\n \"12500x910\": 52.0,\n \"12500x1050\": 53.0,\n \"12500x1230\": 54.0,\n \"15500x600\": 52.0,\n \"15500x750\": 52.0,\n \"15500x910\": 52.0,\n \"15500x1050\": 53.0,\n \"15500x1230\": 54.0,\n \"20000x600\": 52.0,\n \"20000x750\": 52.0,\n \"20000x910\": 52.0,\n \"20000x1050\": 53.0,\n \"20000x1230\": 54.0,\n \"25000x600\": 62.0,\n \"25000x750\": 62.0,\n \"25000x910\": 62.0,\n \"25000x1050\": 62.0,\n \"25000x1230\": 64.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 71.0,\n \"30000x1050\": 71.0,\n \"30000x1230\": 71.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 71.0,\n \"35000x1230\": 72.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 71.0,\n \"40000x1230\": 72.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 72.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 72.0,\n },\n \"3500x3000\": {\n \"1000x600\": 33.0,\n \"1000x750\": 34.0,\n \"1000x910\": 44.0,\n \"1000x1050\": 45.0,\n \"1000x1230\": 54.0,\n \"2000x600\": 33.0,\n \"2000x750\": 34.0,\n \"2000x910\": 34.0,\n \"2000x1050\": 44.0,\n \"2000x1230\": 45.0,\n \"3000x600\": 33.0,\n \"3000x750\": 34.0,\n \"3000x910\": 34.0,\n \"3000x1050\": 44.0,\n \"3000x1230\": 45.0,\n \"4000x600\": 42.0,\n \"4000x750\": 43.0,\n \"4000x910\": 44.0,\n \"4000x1050\": 44.0,\n \"4000x1230\": 45.0,\n \"5000x600\": 42.0,\n \"5000x750\": 43.0,\n \"5000x910\": 44.0,\n \"5000x1050\": 44.0,\n \"5000x1230\": 45.0,\n \"6500x600\": 42.0,\n \"6500x750\": 43.0,\n \"6500x910\": 44.0,\n \"6500x1050\": 44.0,\n \"6500x1230\": 45.0,\n \"8000x600\": 42.0,\n \"8000x750\": 43.0,\n \"8000x910\": 44.0,\n \"8000x1050\": 44.0,\n \"8000x1230\": 45.0,\n \"10000x600\": 52.0,\n \"10000x750\": 52.0,\n \"10000x910\": 53.0,\n \"10000x1050\": 53.0,\n \"10000x1230\": 54.0,\n \"12500x600\": 52.0,\n \"12500x750\": 53.0,\n \"12500x910\": 54.0,\n \"12500x1050\": 54.0,\n \"12500x1230\": 54.0,\n \"15500x600\": 52.0,\n \"15500x750\": 53.0,\n \"15500x910\": 54.0,\n \"15500x1050\": 54.0,\n \"15500x1230\": 54.0,\n \"20000x600\": 52.0,\n \"20000x750\": 53.0,\n \"20000x910\": 54.0,\n \"20000x1050\": 54.0,\n \"20000x1230\": 54.0,\n \"25000x600\": 62.0,\n \"25000x750\": 62.0,\n \"25000x910\": 63.0,\n \"25000x1050\": 64.0,\n \"25000x1230\": 65.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 71.0,\n \"30000x1050\": 72.0,\n \"30000x1230\": 72.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 72.0,\n \"35000x1050\": 73.0,\n \"35000x1230\": 73.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 72.0,\n \"40000x1050\": 73.0,\n \"40000x1230\": 73.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 72.0,\n \"50000x1050\": 73.0,\n \"50000x1230\": 73.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 72.0,\n \"60000x1050\": 73.0,\n \"60000x1230\": 73.0,\n },\n \"3500x3500\": {\n \"1000x600\": 53.0,\n \"1000x750\": 54.0,\n \"1000x910\": 54.0,\n \"1000x1050\": 54.0,\n \"1000x1230\": 54.0,\n \"2000x600\": 52.0,\n \"2000x750\": 53.0,\n \"2000x910\": 54.0,\n \"2000x1050\": 54.0,\n \"2000x1230\": 54.0,\n \"3000x600\": 52.0,\n \"3000x750\": 53.0,\n \"3000x910\": 54.0,\n \"3000x1050\": 54.0,\n \"3000x1230\": 54.0,\n \"4000x600\": 52.0,\n \"4000x750\": 53.0,\n \"4000x910\": 54.0,\n \"4000x1050\": 54.0,\n \"4000x1230\": 54.0,\n \"5000x600\": 52.0,\n \"5000x750\": 53.0,\n \"5000x910\": 54.0,\n \"5000x1050\": 54.0,\n \"5000x1230\": 54.0,\n \"6500x600\": 52.0,\n \"6500x750\": 53.0,\n \"6500x910\": 54.0,\n \"6500x1050\": 54.0,\n \"6500x1230\": 54.0,\n \"8000x600\": 52.0,\n \"8000x750\": 53.0,\n \"8000x910\": 54.0,\n \"8000x1050\": 54.0,\n \"8000x1230\": 54.0,\n \"10000x600\": 52.0,\n \"10000x750\": 53.0,\n \"10000x910\": 54.0,\n \"10000x1050\": 54.0,\n \"10000x1230\": 54.0,\n \"12500x600\": 54.0,\n \"12500x750\": 54.0,\n \"12500x910\": 54.0,\n \"12500x1050\": 66.0,\n \"12500x1230\": 66.0,\n \"15500x600\": 54.0,\n \"15500x750\": 54.0,\n \"15500x910\": 54.0,\n \"15500x1050\": 66.0,\n \"15500x1230\": 66.0,\n \"20000x600\": 54.0,\n \"20000x750\": 54.0,\n \"20000x910\": 54.0,\n \"20000x1050\": 66.0,\n \"20000x1230\": 66.0,\n \"25000x600\": 63.0,\n \"25000x750\": 64.0,\n \"25000x910\": 65.0,\n \"25000x1050\": 66.0,\n \"25000x1230\": 66.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 72.0,\n \"30000x1050\": 73.0,\n \"30000x1230\": 73.0,\n \"35000x600\": 71.0,\n \"35000x750\": 73.0,\n \"35000x910\": 73.0,\n \"35000x1050\": 73.0,\n \"35000x1230\": 73.0,\n \"40000x600\": 71.0,\n \"40000x750\": 73.0,\n \"40000x910\": 73.0,\n \"40000x1050\": 73.0,\n \"40000x1230\": 73.0,\n \"50000x600\": 71.0,\n \"50000x750\": 73.0,\n \"50000x910\": 73.0,\n \"50000x1050\": 73.0,\n \"50000x1230\": 73.0,\n \"60000x600\": 71.0,\n \"60000x750\": 73.0,\n \"60000x910\": 73.0,\n \"60000x1050\": 73.0,\n \"60000x1230\": 73.0,\n },\n \"3500x4000\": {\n \"1000x600\": 54.0,\n \"1000x750\": 54.0,\n \"1000x910\": 66.0,\n \"1000x1050\": 66.0,\n \"1000x1230\": 73.0,\n \"2000x600\": 54.0,\n \"2000x750\": 54.0,\n \"2000x910\": 66.0,\n \"2000x1050\": 66.0,\n \"2000x1230\": 73.0,\n \"3000x600\": 54.0,\n \"3000x750\": 54.0,\n \"3000x910\": 66.0,\n \"3000x1050\": 66.0,\n \"3000x1230\": 73.0,\n \"4000x600\": 54.0,\n \"4000x750\": 54.0,\n \"4000x910\": 66.0,\n \"4000x1050\": 66.0,\n \"4000x1230\": 73.0,\n \"5000x600\": 54.0,\n \"5000x750\": 54.0,\n \"5000x910\": 66.0,\n \"5000x1050\": 66.0,\n \"5000x1230\": 73.0,\n \"6500x600\": 54.0,\n \"6500x750\": 54.0,\n \"6500x910\": 66.0,\n \"6500x1050\": 66.0,\n \"6500x1230\": 73.0,\n \"8000x600\": 54.0,\n \"8000x750\": 54.0,\n \"8000x910\": 66.0,\n \"8000x1050\": 66.0,\n \"8000x1230\": 73.0,\n \"10000x600\": 54.0,\n \"10000x750\": 54.0,\n \"10000x910\": 66.0,\n \"10000x1050\": 66.0,\n \"10000x1230\": 73.0,\n \"12500x600\": 54.0,\n \"12500x750\": 54.0,\n \"12500x910\": 66.0,\n \"12500x1050\": 66.0,\n \"12500x1230\": 73.0,\n \"15500x600\": 54.0,\n \"15500x750\": 54.0,\n \"15500x910\": 66.0,\n \"15500x1050\": 66.0,\n \"15500x1230\": 73.0,\n \"20000x600\": 54.0,\n \"20000x750\": 54.0,\n \"20000x910\": 66.0,\n \"20000x1050\": 66.0,\n \"20000x1230\": 73.0,\n \"25000x600\": 64.0,\n \"25000x750\": 65.0,\n \"25000x910\": 66.0,\n \"25000x1050\": 66.0,\n \"25000x1230\": 73.0,\n \"30000x600\": 73.0,\n \"30000x750\": 73.0,\n \"30000x910\": 73.0,\n \"30000x1050\": 73.0,\n \"30000x1230\": 73.0,\n \"35000x600\": 73.0,\n \"35000x750\": 73.0,\n \"35000x910\": 73.0,\n \"35000x1050\": 73.0,\n \"35000x1230\": 83.0,\n \"40000x600\": 73.0,\n \"40000x750\": 73.0,\n \"40000x910\": 73.0,\n \"40000x1050\": 73.0,\n \"40000x1230\": 83.0,\n \"50000x600\": 73.0,\n \"50000x750\": 73.0,\n \"50000x910\": 73.0,\n \"50000x1050\": 73.0,\n \"50000x1230\": 83.0,\n \"60000x600\": 73.0,\n \"60000x750\": 73.0,\n \"60000x910\": 73.0,\n \"60000x1050\": 73.0,\n \"60000x1230\": 83.0,\n },\n \"3500x5000\": {\n \"1000x600\": 66.0,\n \"1000x750\": 73.0,\n \"1000x910\": 73.0,\n \"1000x1050\": 83.0,\n \"1000x1230\": 83.0,\n \"2000x600\": 66.0,\n \"2000x750\": 73.0,\n \"2000x910\": 73.0,\n \"2000x1050\": 83.0,\n \"2000x1230\": 83.0,\n \"3000x600\": 66.0,\n \"3000x750\": 73.0,\n \"3000x910\": 73.0,\n \"3000x1050\": 83.0,\n \"3000x1230\": 83.0,\n \"4000x600\": 66.0,\n \"4000x750\": 73.0,\n \"4000x910\": 73.0,\n \"4000x1050\": 83.0,\n \"4000x1230\": 83.0,\n \"5000x600\": 66.0,\n \"5000x750\": 73.0,\n \"5000x910\": 73.0,\n \"5000x1050\": 83.0,\n \"5000x1230\": 83.0,\n \"6500x600\": 66.0,\n \"6500x750\": 73.0,\n \"6500x910\": 73.0,\n \"6500x1050\": 83.0,\n \"6500x1230\": 83.0,\n \"8000x600\": 66.0,\n \"8000x750\": 73.0,\n \"8000x910\": 73.0,\n \"8000x1050\": 83.0,\n \"8000x1230\": 83.0,\n \"10000x600\": 66.0,\n \"10000x750\": 73.0,\n \"10000x910\": 73.0,\n \"10000x1050\": 83.0,\n \"10000x1230\": 83.0,\n \"12500x600\": 66.0,\n \"12500x750\": 73.0,\n \"12500x910\": 73.0,\n \"12500x1050\": 83.0,\n \"12500x1230\": 83.0,\n \"15500x600\": 66.0,\n \"15500x750\": 73.0,\n \"15500x910\": 73.0,\n \"15500x1050\": 83.0,\n \"15500x1230\": 83.0,\n \"20000x600\": 66.0,\n \"20000x750\": 73.0,\n \"20000x910\": 73.0,\n \"20000x1050\": 83.0,\n \"20000x1230\": 83.0,\n \"25000x600\": 73.0,\n \"25000x750\": 73.0,\n \"25000x910\": 73.0,\n \"25000x1050\": 83.0,\n \"25000x1230\": 83.0,\n \"30000x600\": 73.0,\n \"30000x750\": 73.0,\n \"30000x910\": 73.0,\n \"30000x1050\": 83.0,\n \"30000x1230\": 83.0,\n \"35000x600\": 73.0,\n \"35000x750\": 83.0,\n \"35000x910\": 83.0,\n \"35000x1050\": 83.0,\n \"35000x1230\": 93.0,\n \"40000x600\": 73.0,\n \"40000x750\": 83.0,\n \"40000x910\": 83.0,\n \"40000x1050\": 83.0,\n \"40000x1230\": 93.0,\n \"50000x600\": 73.0,\n \"50000x750\": 83.0,\n \"50000x910\": 83.0,\n \"50000x1050\": 83.0,\n \"50000x1230\": 93.0,\n \"60000x600\": 73.0,\n \"60000x750\": 83.0,\n \"60000x910\": 83.0,\n \"60000x1050\": 83.0,\n \"60000x1230\": 93.0,\n },\n \"4000x1000\": {\n \"1000x600\": 31.0,\n \"1000x750\": 31.0,\n \"1000x910\": 31.0,\n \"1000x1050\": 32.0,\n \"1000x1230\": 32.0,\n \"2000x600\": 31.0,\n \"2000x750\": 31.0,\n \"2000x910\": 31.0,\n \"2000x1050\": 31.0,\n \"2000x1230\": 32.0,\n \"3000x600\": 41.0,\n \"3000x750\": 41.0,\n \"3000x910\": 41.0,\n \"3000x1050\": 41.0,\n \"3000x1230\": 42.0,\n \"4000x600\": 41.0,\n \"4000x750\": 41.0,\n \"4000x910\": 41.0,\n \"4000x1050\": 41.0,\n \"4000x1230\": 41.0,\n \"5000x600\": 41.0,\n \"5000x750\": 41.0,\n \"5000x910\": 41.0,\n \"5000x1050\": 41.0,\n \"5000x1230\": 42.0,\n \"6500x600\": 41.0,\n \"6500x750\": 41.0,\n \"6500x910\": 41.0,\n \"6500x1050\": 41.0,\n \"6500x1230\": 41.0,\n \"8000x600\": 51.0,\n \"8000x750\": 51.0,\n \"8000x910\": 51.0,\n \"8000x1050\": 51.0,\n \"8000x1230\": 51.0,\n \"10000x600\": 51.0,\n \"10000x750\": 51.0,\n \"10000x910\": 51.0,\n \"10000x1050\": 51.0,\n \"10000x1230\": 51.0,\n \"12500x600\": 51.0,\n \"12500x750\": 51.0,\n \"12500x910\": 51.0,\n \"12500x1050\": 51.0,\n \"12500x1230\": 52.0,\n \"15500x600\": 51.0,\n \"15500x750\": 51.0,\n \"15500x910\": 51.0,\n \"15500x1050\": 51.0,\n \"15500x1230\": 52.0,\n \"20000x600\": 61.0,\n \"20000x750\": 61.0,\n \"20000x910\": 61.0,\n \"20000x1050\": 61.0,\n \"20000x1230\": 62.0,\n \"25000x600\": 71.0,\n \"25000x750\": 71.0,\n \"25000x910\": 71.0,\n \"25000x1050\": 71.0,\n \"25000x1230\": 71.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 71.0,\n \"30000x1050\": 71.0,\n \"30000x1230\": 71.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 71.0,\n \"35000x1230\": 71.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 71.0,\n \"40000x1230\": 71.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 71.0,\n \"60000x600\": 91.0,\n \"60000x750\": 91.0,\n \"60000x910\": 91.0,\n \"60000x1050\": 91.0,\n \"60000x1230\": 91.0,\n },\n \"4000x1500\": {\n \"1000x600\": 31.0,\n \"1000x750\": 32.0,\n \"1000x910\": 32.0,\n \"1000x1050\": 32.0,\n \"1000x1230\": 32.0,\n \"2000x600\": 31.0,\n \"2000x750\": 32.0,\n \"2000x910\": 32.0,\n \"2000x1050\": 32.0,\n \"2000x1230\": 32.0,\n \"3000x600\": 41.0,\n \"3000x750\": 41.0,\n \"3000x910\": 42.0,\n \"3000x1050\": 42.0,\n \"3000x1230\": 42.0,\n \"4000x600\": 41.0,\n \"4000x750\": 41.0,\n \"4000x910\": 42.0,\n \"4000x1050\": 42.0,\n \"4000x1230\": 42.0,\n \"5000x600\": 41.0,\n \"5000x750\": 41.0,\n \"5000x910\": 42.0,\n \"5000x1050\": 42.0,\n \"5000x1230\": 42.0,\n \"6500x600\": 41.0,\n \"6500x750\": 41.0,\n \"6500x910\": 42.0,\n \"6500x1050\": 42.0,\n \"6500x1230\": 42.0,\n \"8000x600\": 51.0,\n \"8000x750\": 51.0,\n \"8000x910\": 51.0,\n \"8000x1050\": 51.0,\n \"8000x1230\": 52.0,\n \"10000x600\": 51.0,\n \"10000x750\": 51.0,\n \"10000x910\": 51.0,\n \"10000x1050\": 51.0,\n \"10000x1230\": 52.0,\n \"12500x600\": 51.0,\n \"12500x750\": 51.0,\n \"12500x910\": 52.0,\n \"12500x1050\": 52.0,\n \"12500x1230\": 52.0,\n \"15500x600\": 51.0,\n \"15500x750\": 51.0,\n \"15500x910\": 52.0,\n \"15500x1050\": 52.0,\n \"15500x1230\": 52.0,\n \"20000x600\": 61.0,\n \"20000x750\": 61.0,\n \"20000x910\": 61.0,\n \"20000x1050\": 62.0,\n \"20000x1230\": 62.0,\n \"25000x600\": 71.0,\n \"25000x750\": 71.0,\n \"25000x910\": 71.0,\n \"25000x1050\": 71.0,\n \"25000x1230\": 71.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 71.0,\n \"30000x1050\": 71.0,\n \"30000x1230\": 71.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 71.0,\n \"35000x1230\": 71.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 71.0,\n \"40000x1230\": 71.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 71.0,\n \"60000x600\": 91.0,\n \"60000x750\": 91.0,\n \"60000x910\": 91.0,\n \"60000x1050\": 91.0,\n \"60000x1230\": 91.0,\n },\n \"4000x2000\": {\n \"1000x600\": 32.0,\n \"1000x750\": 32.0,\n \"1000x910\": 32.0,\n \"1000x1050\": 33.0,\n \"1000x1230\": 44.0,\n \"2000x600\": 32.0,\n \"2000x750\": 32.0,\n \"2000x910\": 32.0,\n \"2000x1050\": 32.0,\n \"2000x1230\": 33.0,\n \"3000x600\": 42.0,\n \"3000x750\": 42.0,\n \"3000x910\": 42.0,\n \"3000x1050\": 42.0,\n \"3000x1230\": 42.0,\n \"4000x600\": 42.0,\n \"4000x750\": 42.0,\n \"4000x910\": 42.0,\n \"4000x1050\": 42.0,\n \"4000x1230\": 43.0,\n \"5000x600\": 42.0,\n \"5000x750\": 42.0,\n \"5000x910\": 42.0,\n \"5000x1050\": 42.0,\n \"5000x1230\": 43.0,\n \"6500x600\": 42.0,\n \"6500x750\": 42.0,\n \"6500x910\": 42.0,\n \"6500x1050\": 42.0,\n \"6500x1230\": 43.0,\n \"8000x600\": 51.0,\n \"8000x750\": 52.0,\n \"8000x910\": 52.0,\n \"8000x1050\": 52.0,\n \"8000x1230\": 52.0,\n \"10000x600\": 51.0,\n \"10000x750\": 52.0,\n \"10000x910\": 52.0,\n \"10000x1050\": 52.0,\n \"10000x1230\": 52.0,\n \"12500x600\": 52.0,\n \"12500x750\": 52.0,\n \"12500x910\": 52.0,\n \"12500x1050\": 53.0,\n \"12500x1230\": 54.0,\n \"15500x600\": 52.0,\n \"15500x750\": 52.0,\n \"15500x910\": 52.0,\n \"15500x1050\": 52.0,\n \"15500x1230\": 53.0,\n \"20000x600\": 61.0,\n \"20000x750\": 62.0,\n \"20000x910\": 62.0,\n \"20000x1050\": 62.0,\n \"20000x1230\": 63.0,\n \"25000x600\": 71.0,\n \"25000x750\": 71.0,\n \"25000x910\": 71.0,\n \"25000x1050\": 71.0,\n \"25000x1230\": 71.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 71.0,\n \"30000x1050\": 71.0,\n \"30000x1230\": 71.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 71.0,\n \"35000x1230\": 71.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 71.0,\n \"40000x1230\": 71.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 71.0,\n \"60000x600\": 91.0,\n \"60000x750\": 91.0,\n \"60000x910\": 91.0,\n \"60000x1050\": 91.0,\n \"60000x1230\": 91.0,\n },\n \"4000x2500\": {\n \"1000x600\": 32.0,\n \"1000x750\": 33.0,\n \"1000x910\": 34.0,\n \"1000x1050\": 34.0,\n \"1000x1230\": 44.0,\n \"2000x600\": 32.0,\n \"2000x750\": 33.0,\n \"2000x910\": 34.0,\n \"2000x1050\": 34.0,\n \"2000x1230\": 44.0,\n \"3000x600\": 42.0,\n \"3000x750\": 42.0,\n \"3000x910\": 43.0,\n \"3000x1050\": 44.0,\n \"3000x1230\": 44.0,\n \"4000x600\": 42.0,\n \"4000x750\": 42.0,\n \"4000x910\": 43.0,\n \"4000x1050\": 44.0,\n \"4000x1230\": 44.0,\n \"5000x600\": 42.0,\n \"5000x750\": 42.0,\n \"5000x910\": 43.0,\n \"5000x1050\": 44.0,\n \"5000x1230\": 44.0,\n \"6500x600\": 42.0,\n \"6500x750\": 42.0,\n \"6500x910\": 43.0,\n \"6500x1050\": 44.0,\n \"6500x1230\": 44.0,\n \"8000x600\": 52.0,\n \"8000x750\": 52.0,\n \"8000x910\": 52.0,\n \"8000x1050\": 52.0,\n \"8000x1230\": 53.0,\n \"10000x600\": 52.0,\n \"10000x750\": 52.0,\n \"10000x910\": 52.0,\n \"10000x1050\": 52.0,\n \"10000x1230\": 53.0,\n \"12500x600\": 52.0,\n \"12500x750\": 53.0,\n \"12500x910\": 54.0,\n \"12500x1050\": 54.0,\n \"12500x1230\": 54.0,\n \"15500x600\": 52.0,\n \"15500x750\": 52.0,\n \"15500x910\": 53.0,\n \"15500x1050\": 54.0,\n \"15500x1230\": 54.0,\n \"20000x600\": 62.0,\n \"20000x750\": 62.0,\n \"20000x910\": 62.0,\n \"20000x1050\": 63.0,\n \"20000x1230\": 64.0,\n \"25000x600\": 71.0,\n \"25000x750\": 71.0,\n \"25000x910\": 71.0,\n \"25000x1050\": 71.0,\n \"25000x1230\": 71.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 71.0,\n \"30000x1050\": 71.0,\n \"30000x1230\": 71.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 72.0,\n \"35000x1230\": 73.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 72.0,\n \"40000x1230\": 73.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 72.0,\n \"50000x1230\": 73.0,\n \"60000x600\": 91.0,\n \"60000x750\": 91.0,\n \"60000x910\": 91.0,\n \"60000x1050\": 91.0,\n \"60000x1230\": 91.0,\n },\n \"4000x3000\": {\n \"1000x600\": 43.0,\n \"1000x750\": 44.0,\n \"1000x910\": 45.0,\n \"1000x1050\": 54.0,\n \"1000x1230\": 54.0,\n \"2000x600\": 43.0,\n \"2000x750\": 44.0,\n \"2000x910\": 44.0,\n \"2000x1050\": 45.0,\n \"2000x1230\": 54.0,\n \"3000x600\": 43.0,\n \"3000x750\": 44.0,\n \"3000x910\": 44.0,\n \"3000x1050\": 45.0,\n \"3000x1230\": 54.0,\n \"4000x600\": 43.0,\n \"4000x750\": 44.0,\n \"4000x910\": 44.0,\n \"4000x1050\": 45.0,\n \"4000x1230\": 54.0,\n \"5000x600\": 52.0,\n \"5000x750\": 52.0,\n \"5000x910\": 53.0,\n \"5000x1050\": 54.0,\n \"5000x1230\": 54.0,\n \"6500x600\": 43.0,\n \"6500x750\": 44.0,\n \"6500x910\": 44.0,\n \"6500x1050\": 45.0,\n \"6500x1230\": 54.0,\n \"8000x600\": 52.0,\n \"8000x750\": 52.0,\n \"8000x910\": 53.0,\n \"8000x1050\": 54.0,\n \"8000x1230\": 54.0,\n \"10000x600\": 52.0,\n \"10000x750\": 52.0,\n \"10000x910\": 53.0,\n \"10000x1050\": 54.0,\n \"10000x1230\": 54.0,\n \"12500x600\": 53.0,\n \"12500x750\": 54.0,\n \"12500x910\": 54.0,\n \"12500x1050\": 54.0,\n \"12500x1230\": 66.0,\n \"15500x600\": 53.0,\n \"15500x750\": 54.0,\n \"15500x910\": 54.0,\n \"15500x1050\": 54.0,\n \"15500x1230\": 66.0,\n \"20000x600\": 62.0,\n \"20000x750\": 63.0,\n \"20000x910\": 64.0,\n \"20000x1050\": 65.0,\n \"20000x1230\": 66.0,\n \"25000x600\": 71.0,\n \"25000x750\": 71.0,\n \"25000x910\": 71.0,\n \"25000x1050\": 72.0,\n \"25000x1230\": 73.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 71.0,\n \"30000x1050\": 72.0,\n \"30000x1230\": 73.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 73.0,\n \"35000x1050\": 73.0,\n \"35000x1230\": 73.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 73.0,\n \"40000x1050\": 73.0,\n \"40000x1230\": 73.0,\n \"50000x600\": 71.0,\n \"50000x750\": 72.0,\n \"50000x910\": 73.0,\n \"50000x1050\": 73.0,\n \"50000x1230\": 73.0,\n \"60000x600\": 91.0,\n \"60000x750\": 91.0,\n \"60000x910\": 91.0,\n \"60000x1050\": 91.0,\n \"60000x1230\": 91.0,\n },\n \"4000x3500\": {\n \"1000x600\": 44.0,\n \"1000x750\": 45.0,\n \"1000x910\": 54.0,\n \"1000x1050\": 54.0,\n \"1000x1230\": 66.0,\n \"2000x600\": 53.0,\n \"2000x750\": 54.0,\n \"2000x910\": 54.0,\n \"2000x1050\": 54.0,\n \"2000x1230\": 65.0,\n \"3000x600\": 53.0,\n \"3000x750\": 54.0,\n \"3000x910\": 54.0,\n \"3000x1050\": 54.0,\n \"3000x1230\": 65.0,\n \"4000x600\": 53.0,\n \"4000x750\": 54.0,\n \"4000x910\": 54.0,\n \"4000x1050\": 54.0,\n \"4000x1230\": 65.0,\n \"5000x600\": 53.0,\n \"5000x750\": 54.0,\n \"5000x910\": 54.0,\n \"5000x1050\": 54.0,\n \"5000x1230\": 65.0,\n \"6500x600\": 53.0,\n \"6500x750\": 54.0,\n \"6500x910\": 54.0,\n \"6500x1050\": 54.0,\n \"6500x1230\": 65.0,\n \"8000x600\": 53.0,\n \"8000x750\": 54.0,\n \"8000x910\": 54.0,\n \"8000x1050\": 54.0,\n \"8000x1230\": 65.0,\n \"10000x600\": 53.0,\n \"10000x750\": 54.0,\n \"10000x910\": 54.0,\n \"10000x1050\": 54.0,\n \"10000x1230\": 65.0,\n \"12500x600\": 54.0,\n \"12500x750\": 54.0,\n \"12500x910\": 66.0,\n \"12500x1050\": 66.0,\n \"12500x1230\": 73.0,\n \"15500x600\": 54.0,\n \"15500x750\": 54.0,\n \"15500x910\": 66.0,\n \"15500x1050\": 66.0,\n \"15500x1230\": 73.0,\n \"20000x600\": 63.0,\n \"20000x750\": 64.0,\n \"20000x910\": 66.0,\n \"20000x1050\": 66.0,\n \"20000x1230\": 73.0,\n \"25000x600\": 71.0,\n \"25000x750\": 72.0,\n \"25000x910\": 73.0,\n \"25000x1050\": 73.0,\n \"25000x1230\": 73.0,\n \"30000x600\": 71.0,\n \"30000x750\": 72.0,\n \"30000x910\": 73.0,\n \"30000x1050\": 73.0,\n \"30000x1230\": 73.0,\n \"35000x600\": 72.0,\n \"35000x750\": 73.0,\n \"35000x910\": 73.0,\n \"35000x1050\": 73.0,\n \"35000x1230\": 73.0,\n \"40000x600\": 72.0,\n \"40000x750\": 73.0,\n \"40000x910\": 73.0,\n \"40000x1050\": 73.0,\n \"40000x1230\": 73.0,\n \"50000x600\": 73.0,\n \"50000x750\": 73.0,\n \"50000x910\": 73.0,\n \"50000x1050\": 83.0,\n \"50000x1230\": 83.0,\n \"60000x600\": 91.0,\n \"60000x750\": 91.0,\n \"60000x910\": 91.0,\n \"60000x1050\": 92.0,\n \"60000x1230\": 92.0,\n },\n \"4000x4000\": {\n \"1000x600\": 65.0,\n \"1000x750\": 66.0,\n \"1000x910\": 66.0,\n \"1000x1050\": 73.0,\n \"1000x1230\": 73.0,\n \"2000x600\": 65.0,\n \"2000x750\": 66.0,\n \"2000x910\": 66.0,\n \"2000x1050\": 73.0,\n \"2000x1230\": 73.0,\n \"3000x600\": 65.0,\n \"3000x750\": 66.0,\n \"3000x910\": 66.0,\n \"3000x1050\": 73.0,\n \"3000x1230\": 73.0,\n \"4000x600\": 65.0,\n \"4000x750\": 66.0,\n \"4000x910\": 66.0,\n \"4000x1050\": 73.0,\n \"4000x1230\": 73.0,\n \"5000x600\": 65.0,\n \"5000x750\": 66.0,\n \"5000x910\": 66.0,\n \"5000x1050\": 73.0,\n \"5000x1230\": 73.0,\n \"6500x600\": 65.0,\n \"6500x750\": 66.0,\n \"6500x910\": 66.0,\n \"6500x1050\": 73.0,\n \"6500x1230\": 73.0,\n \"8000x600\": 65.0,\n \"8000x750\": 66.0,\n \"8000x910\": 66.0,\n \"8000x1050\": 73.0,\n \"8000x1230\": 73.0,\n \"10000x600\": 65.0,\n \"10000x750\": 66.0,\n \"10000x910\": 66.0,\n \"10000x1050\": 73.0,\n \"10000x1230\": 73.0,\n \"12500x600\": 65.0,\n \"12500x750\": 66.0,\n \"12500x910\": 66.0,\n \"12500x1050\": 73.0,\n \"12500x1230\": 73.0,\n \"15500x600\": 65.0,\n \"15500x750\": 66.0,\n \"15500x910\": 66.0,\n \"15500x1050\": 73.0,\n \"15500x1230\": 73.0,\n \"20000x600\": 65.0,\n \"20000x750\": 66.0,\n \"20000x910\": 66.0,\n \"20000x1050\": 73.0,\n \"20000x1230\": 73.0,\n \"25000x600\": 73.0,\n \"25000x750\": 73.0,\n \"25000x910\": 73.0,\n \"25000x1050\": 73.0,\n \"25000x1230\": 73.0,\n \"30000x600\": 73.0,\n \"30000x750\": 73.0,\n \"30000x910\": 73.0,\n \"30000x1050\": 73.0,\n \"30000x1230\": 73.0,\n \"35000x600\": 73.0,\n \"35000x750\": 73.0,\n \"35000x910\": 73.0,\n \"35000x1050\": 83.0,\n \"35000x1230\": 83.0,\n \"40000x600\": 73.0,\n \"40000x750\": 73.0,\n \"40000x910\": 73.0,\n \"40000x1050\": 83.0,\n \"40000x1230\": 83.0,\n \"50000x600\": 73.0,\n \"50000x750\": 73.0,\n \"50000x910\": 73.0,\n \"50000x1050\": 83.0,\n \"50000x1230\": 83.0,\n \"60000x600\": 91.0,\n \"60000x750\": 91.0,\n \"60000x910\": 92.0,\n \"60000x1050\": 92.0,\n \"60000x1230\": 92.0,\n },\n \"4000x5000\": {\n \"1000x600\": 73.0,\n \"1000x750\": 73.0,\n \"1000x910\": 83.0,\n \"1000x1050\": 83.0,\n \"1000x1230\": 93.0,\n \"2000x600\": 73.0,\n \"2000x750\": 73.0,\n \"2000x910\": 83.0,\n \"2000x1050\": 83.0,\n \"2000x1230\": 93.0,\n \"3000x600\": 73.0,\n \"3000x750\": 73.0,\n \"3000x910\": 83.0,\n \"3000x1050\": 83.0,\n \"3000x1230\": 93.0,\n \"4000x600\": 73.0,\n \"4000x750\": 73.0,\n \"4000x910\": 83.0,\n \"4000x1050\": 83.0,\n \"4000x1230\": 93.0,\n \"5000x600\": 73.0,\n \"5000x750\": 73.0,\n \"5000x910\": 83.0,\n \"5000x1050\": 83.0,\n \"5000x1230\": 93.0,\n \"6500x600\": 73.0,\n \"6500x750\": 73.0,\n \"6500x910\": 83.0,\n \"6500x1050\": 83.0,\n \"6500x1230\": 93.0,\n \"8000x600\": 73.0,\n \"8000x750\": 73.0,\n \"8000x910\": 83.0,\n \"8000x1050\": 83.0,\n \"8000x1230\": 93.0,\n \"10000x600\": 73.0,\n \"10000x750\": 73.0,\n \"10000x910\": 83.0,\n \"10000x1050\": 83.0,\n \"10000x1230\": 93.0,\n \"12500x600\": 73.0,\n \"12500x750\": 73.0,\n \"12500x910\": 83.0,\n \"12500x1050\": 83.0,\n \"12500x1230\": 93.0,\n \"15500x600\": 73.0,\n \"15500x750\": 73.0,\n \"15500x910\": 83.0,\n \"15500x1050\": 83.0,\n \"15500x1230\": 93.0,\n \"20000x600\": 73.0,\n \"20000x750\": 73.0,\n \"20000x910\": 83.0,\n \"20000x1050\": 83.0,\n \"20000x1230\": 93.0,\n \"25000x600\": 73.0,\n \"25000x750\": 83.0,\n \"25000x910\": 83.0,\n \"25000x1050\": 93.0,\n \"25000x1230\": 93.0,\n \"30000x600\": 73.0,\n \"30000x750\": 83.0,\n \"30000x910\": 83.0,\n \"30000x1050\": 93.0,\n \"30000x1230\": 93.0,\n \"35000x600\": 73.0,\n \"35000x750\": 83.0,\n \"35000x910\": 83.0,\n \"35000x1050\": 93.0,\n \"35000x1230\": 93.0,\n \"40000x600\": 73.0,\n \"40000x750\": 83.0,\n \"40000x910\": 83.0,\n \"40000x1050\": 93.0,\n \"40000x1230\": 93.0,\n \"50000x600\": 73.0,\n \"50000x750\": 83.0,\n \"50000x910\": 83.0,\n \"50000x1050\": 93.0,\n \"50000x1230\": 93.0,\n \"60000x600\": 92.0,\n \"60000x750\": 92.0,\n \"60000x910\": 93.0,\n \"60000x1050\": 93.0,\n \"60000x1230\": 93.0,\n },\n \"5000x1000\": {\n \"1000x600\": 31.0,\n \"1000x750\": 31.0,\n \"1000x910\": 32.0,\n \"1000x1050\": 32.0,\n \"1000x1230\": 32.0,\n \"2000x600\": 41.0,\n \"2000x750\": 41.0,\n \"2000x910\": 41.0,\n \"2000x1050\": 42.0,\n \"2000x1230\": 42.0,\n \"3000x600\": 41.0,\n \"3000x750\": 41.0,\n \"3000x910\": 41.0,\n \"3000x1050\": 42.0,\n \"3000x1230\": 42.0,\n \"4000x600\": 41.0,\n \"4000x750\": 41.0,\n \"4000x910\": 41.0,\n \"4000x1050\": 42.0,\n \"4000x1230\": 42.0,\n \"5000x600\": 41.0,\n \"5000x750\": 41.0,\n \"5000x910\": 41.0,\n \"5000x1050\": 42.0,\n \"5000x1230\": 42.0,\n \"6500x600\": 51.0,\n \"6500x750\": 51.0,\n \"6500x910\": 51.0,\n \"6500x1050\": 51.0,\n \"6500x1230\": 51.0,\n \"8000x600\": 51.0,\n \"8000x750\": 51.0,\n \"8000x910\": 51.0,\n \"8000x1050\": 51.0,\n \"8000x1230\": 51.0,\n \"10000x600\": 51.0,\n \"10000x750\": 51.0,\n \"10000x910\": 51.0,\n \"10000x1050\": 51.0,\n \"10000x1230\": 51.0,\n \"12500x600\": 51.0,\n \"12500x750\": 51.0,\n \"12500x910\": 52.0,\n \"12500x1050\": 52.0,\n \"12500x1230\": 52.0,\n \"15500x600\": 51.0,\n \"15500x750\": 51.0,\n \"15500x910\": 52.0,\n \"15500x1050\": 52.0,\n \"15500x1230\": 52.0,\n \"20000x600\": 71.0,\n \"20000x750\": 71.0,\n \"20000x910\": 71.0,\n \"20000x1050\": 71.0,\n \"20000x1230\": 71.0,\n \"25000x600\": 71.0,\n \"25000x750\": 71.0,\n \"25000x910\": 71.0,\n \"25000x1050\": 71.0,\n \"25000x1230\": 71.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 71.0,\n \"30000x1050\": 71.0,\n \"30000x1230\": 71.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 71.0,\n \"35000x1230\": 71.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 72.0,\n \"40000x1230\": 73.0,\n \"50000x600\": 91.0,\n \"50000x750\": 91.0,\n \"50000x910\": 91.0,\n \"50000x1050\": 91.0,\n \"50000x1230\": 91.0,\n \"60000x600\": 91.0,\n \"60000x750\": 91.0,\n \"60000x910\": 91.0,\n \"60000x1050\": 91.0,\n \"60000x1230\": 91.0,\n },\n \"5000x1500\": {\n \"1000x600\": 32.0,\n \"1000x750\": 32.0,\n \"1000x910\": 32.0,\n \"1000x1050\": 32.0,\n \"1000x1230\": 33.0,\n \"2000x600\": 41.0,\n \"2000x750\": 42.0,\n \"2000x910\": 42.0,\n \"2000x1050\": 42.0,\n \"2000x1230\": 42.0,\n \"3000x600\": 41.0,\n \"3000x750\": 42.0,\n \"3000x910\": 42.0,\n \"3000x1050\": 42.0,\n \"3000x1230\": 42.0,\n \"4000x600\": 41.0,\n \"4000x750\": 42.0,\n \"4000x910\": 42.0,\n \"4000x1050\": 42.0,\n \"4000x1230\": 42.0,\n \"5000x600\": 41.0,\n \"5000x750\": 42.0,\n \"5000x910\": 42.0,\n \"5000x1050\": 42.0,\n \"5000x1230\": 42.0,\n \"6500x600\": 51.0,\n \"6500x750\": 51.0,\n \"6500x910\": 52.0,\n \"6500x1050\": 52.0,\n \"6500x1230\": 52.0,\n \"8000x600\": 51.0,\n \"8000x750\": 51.0,\n \"8000x910\": 52.0,\n \"8000x1050\": 52.0,\n \"8000x1230\": 52.0,\n \"10000x600\": 51.0,\n \"10000x750\": 51.0,\n \"10000x910\": 52.0,\n \"10000x1050\": 52.0,\n \"10000x1230\": 52.0,\n \"12500x600\": 51.0,\n \"12500x750\": 52.0,\n \"12500x910\": 52.0,\n \"12500x1050\": 52.0,\n \"12500x1230\": 54.0,\n \"15500x600\": 51.0,\n \"15500x750\": 52.0,\n \"15500x910\": 52.0,\n \"15500x1050\": 52.0,\n \"15500x1230\": 54.0,\n \"20000x600\": 71.0,\n \"20000x750\": 71.0,\n \"20000x910\": 71.0,\n \"20000x1050\": 71.0,\n \"20000x1230\": 71.0,\n \"25000x600\": 71.0,\n \"25000x750\": 71.0,\n \"25000x910\": 71.0,\n \"25000x1050\": 71.0,\n \"25000x1230\": 71.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 71.0,\n \"30000x1050\": 71.0,\n \"30000x1230\": 71.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 71.0,\n \"35000x1230\": 72.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 72.0,\n \"40000x1230\": 73.0,\n \"50000x600\": 91.0,\n \"50000x750\": 91.0,\n \"50000x910\": 91.0,\n \"50000x1050\": 91.0,\n \"50000x1230\": 91.0,\n \"60000x600\": 91.0,\n \"60000x750\": 91.0,\n \"60000x910\": 91.0,\n \"60000x1050\": 91.0,\n \"60000x1230\": 91.0,\n },\n \"5000x2000\": {\n \"1000x600\": 32.0,\n \"1000x750\": 32.0,\n \"1000x910\": 33.0,\n \"1000x1050\": 34.0,\n \"1000x1230\": 44.0,\n \"2000x600\": 42.0,\n \"2000x750\": 42.0,\n \"2000x910\": 42.0,\n \"2000x1050\": 43.0,\n \"2000x1230\": 44.0,\n \"3000x600\": 42.0,\n \"3000x750\": 42.0,\n \"3000x910\": 42.0,\n \"3000x1050\": 43.0,\n \"3000x1230\": 44.0,\n \"4000x600\": 42.0,\n \"4000x750\": 42.0,\n \"4000x910\": 42.0,\n \"4000x1050\": 43.0,\n \"4000x1230\": 44.0,\n \"5000x600\": 42.0,\n \"5000x750\": 42.0,\n \"5000x910\": 42.0,\n \"5000x1050\": 43.0,\n \"5000x1230\": 44.0,\n \"6500x600\": 52.0,\n \"6500x750\": 52.0,\n \"6500x910\": 52.0,\n \"6500x1050\": 52.0,\n \"6500x1230\": 52.0,\n \"8000x600\": 52.0,\n \"8000x750\": 52.0,\n \"8000x910\": 52.0,\n \"8000x1050\": 52.0,\n \"8000x1230\": 52.0,\n \"10000x600\": 52.0,\n \"10000x750\": 52.0,\n \"10000x910\": 52.0,\n \"10000x1050\": 52.0,\n \"10000x1230\": 52.0,\n \"12500x600\": 52.0,\n \"12500x750\": 52.0,\n \"12500x910\": 53.0,\n \"12500x1050\": 54.0,\n \"12500x1230\": 54.0,\n \"15500x600\": 52.0,\n \"15500x750\": 52.0,\n \"15500x910\": 53.0,\n \"15500x1050\": 54.0,\n \"15500x1230\": 54.0,\n \"20000x600\": 71.0,\n \"20000x750\": 71.0,\n \"20000x910\": 71.0,\n \"20000x1050\": 71.0,\n \"20000x1230\": 71.0,\n \"25000x600\": 71.0,\n \"25000x750\": 71.0,\n \"25000x910\": 71.0,\n \"25000x1050\": 72.0,\n \"25000x1230\": 73.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 71.0,\n \"30000x1050\": 72.0,\n \"30000x1230\": 73.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 72.0,\n \"35000x1230\": 73.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 72.0,\n \"40000x1230\": 73.0,\n \"50000x600\": 91.0,\n \"50000x750\": 91.0,\n \"50000x910\": 91.0,\n \"50000x1050\": 91.0,\n \"50000x1230\": 91.0,\n \"60000x600\": 91.0,\n \"60000x750\": 91.0,\n \"60000x910\": 91.0,\n \"60000x1050\": 91.0,\n \"60000x1230\": 91.0,\n },\n \"5000x2500\": {\n \"1000x600\": 33.0,\n \"1000x750\": 34.0,\n \"1000x910\": 44.0,\n \"1000x1050\": 54.0,\n \"1000x1230\": 54.0,\n \"2000x600\": 42.0,\n \"2000x750\": 43.0,\n \"2000x910\": 44.0,\n \"2000x1050\": 44.0,\n \"2000x1230\": 54.0,\n \"3000x600\": 42.0,\n \"3000x750\": 43.0,\n \"3000x910\": 44.0,\n \"3000x1050\": 44.0,\n \"3000x1230\": 54.0,\n \"4000x600\": 42.0,\n \"4000x750\": 43.0,\n \"4000x910\": 44.0,\n \"4000x1050\": 44.0,\n \"4000x1230\": 54.0,\n \"5000x600\": 42.0,\n \"5000x750\": 43.0,\n \"5000x910\": 44.0,\n \"5000x1050\": 44.0,\n \"5000x1230\": 54.0,\n \"6500x600\": 52.0,\n \"6500x750\": 52.0,\n \"6500x910\": 53.0,\n \"6500x1050\": 53.0,\n \"6500x1230\": 54.0,\n \"8000x600\": 52.0,\n \"8000x750\": 52.0,\n \"8000x910\": 53.0,\n \"8000x1050\": 53.0,\n \"8000x1230\": 54.0,\n \"10000x600\": 52.0,\n \"10000x750\": 52.0,\n \"10000x910\": 53.0,\n \"10000x1050\": 53.0,\n \"10000x1230\": 54.0,\n \"12500x600\": 52.0,\n \"12500x750\": 53.0,\n \"12500x910\": 54.0,\n \"12500x1050\": 54.0,\n \"12500x1230\": 66.0,\n \"15500x600\": 52.0,\n \"15500x750\": 53.0,\n \"15500x910\": 54.0,\n \"15500x1050\": 54.0,\n \"15500x1230\": 66.0,\n \"20000x600\": 71.0,\n \"20000x750\": 71.0,\n \"20000x910\": 71.0,\n \"20000x1050\": 72.0,\n \"20000x1230\": 73.0,\n \"25000x600\": 71.0,\n \"25000x750\": 71.0,\n \"25000x910\": 73.0,\n \"25000x1050\": 73.0,\n \"25000x1230\": 73.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 73.0,\n \"30000x1050\": 73.0,\n \"30000x1230\": 73.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 73.0,\n \"35000x1050\": 73.0,\n \"35000x1230\": 73.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 73.0,\n \"40000x1050\": 73.0,\n \"40000x1230\": 73.0,\n \"50000x600\": 91.0,\n \"50000x750\": 91.0,\n \"50000x910\": 91.0,\n \"50000x1050\": 91.0,\n \"50000x1230\": 91.0,\n \"60000x600\": 91.0,\n \"60000x750\": 91.0,\n \"60000x910\": 91.0,\n \"60000x1050\": 91.0,\n \"60000x1230\": 91.0,\n },\n \"5000x3000\": {\n \"1000x600\": 44.0,\n \"1000x750\": 45.0,\n \"1000x910\": 54.0,\n \"1000x1050\": 54.0,\n \"1000x1230\": 66.0,\n \"2000x600\": 52.0,\n \"2000x750\": 53.0,\n \"2000x910\": 54.0,\n \"2000x1050\": 54.0,\n \"2000x1230\": 54.0,\n \"3000x600\": 52.0,\n \"3000x750\": 53.0,\n \"3000x910\": 54.0,\n \"3000x1050\": 54.0,\n \"3000x1230\": 54.0,\n \"4000x600\": 52.0,\n \"4000x750\": 53.0,\n \"4000x910\": 54.0,\n \"4000x1050\": 54.0,\n \"4000x1230\": 54.0,\n \"5000x600\": 52.0,\n \"5000x750\": 53.0,\n \"5000x910\": 54.0,\n \"5000x1050\": 54.0,\n \"5000x1230\": 54.0,\n \"6500x600\": 52.0,\n \"6500x750\": 53.0,\n \"6500x910\": 54.0,\n \"6500x1050\": 54.0,\n \"6500x1230\": 54.0,\n \"8000x600\": 52.0,\n \"8000x750\": 53.0,\n \"8000x910\": 54.0,\n \"8000x1050\": 54.0,\n \"8000x1230\": 54.0,\n \"10000x600\": 52.0,\n \"10000x750\": 53.0,\n \"10000x910\": 54.0,\n \"10000x1050\": 54.0,\n \"10000x1230\": 54.0,\n \"12500x600\": 54.0,\n \"12500x750\": 54.0,\n \"12500x910\": 54.0,\n \"12500x1050\": 66.0,\n \"12500x1230\": 73.0,\n \"15500x600\": 54.0,\n \"15500x750\": 54.0,\n \"15500x910\": 54.0,\n \"15500x1050\": 66.0,\n \"15500x1230\": 73.0,\n \"20000x600\": 71.0,\n \"20000x750\": 72.0,\n \"20000x910\": 73.0,\n \"20000x1050\": 73.0,\n \"20000x1230\": 73.0,\n \"25000x600\": 72.0,\n \"25000x750\": 73.0,\n \"25000x910\": 73.0,\n \"25000x1050\": 73.0,\n \"25000x1230\": 73.0,\n \"30000x600\": 72.0,\n \"30000x750\": 73.0,\n \"30000x910\": 73.0,\n \"30000x1050\": 73.0,\n \"30000x1230\": 73.0,\n \"35000x600\": 71.0,\n \"35000x750\": 73.0,\n \"35000x910\": 73.0,\n \"35000x1050\": 73.0,\n \"35000x1230\": 83.0,\n \"40000x600\": 71.0,\n \"40000x750\": 73.0,\n \"40000x910\": 73.0,\n \"40000x1050\": 73.0,\n \"40000x1230\": 83.0,\n \"50000x600\": 91.0,\n \"50000x750\": 91.0,\n \"50000x910\": 91.0,\n \"50000x1050\": 91.0,\n \"50000x1230\": 92.0,\n \"60000x600\": 91.0,\n \"60000x750\": 91.0,\n \"60000x910\": 91.0,\n \"60000x1050\": 91.0,\n \"60000x1230\": 92.0,\n },\n \"5000x3500\": {\n \"1000x600\": 54.0,\n \"1000x750\": 54.0,\n \"1000x910\": 65.0,\n \"1000x1050\": 66.0,\n \"1000x1230\": 66.0,\n \"2000x600\": 54.0,\n \"2000x750\": 54.0,\n \"2000x910\": 54.0,\n \"2000x1050\": 66.0,\n \"2000x1230\": 66.0,\n \"3000x600\": 54.0,\n \"3000x750\": 54.0,\n \"3000x910\": 54.0,\n \"3000x1050\": 66.0,\n \"3000x1230\": 66.0,\n \"4000x600\": 54.0,\n \"4000x750\": 54.0,\n \"4000x910\": 54.0,\n \"4000x1050\": 66.0,\n \"4000x1230\": 66.0,\n \"5000x600\": 54.0,\n \"5000x750\": 54.0,\n \"5000x910\": 54.0,\n \"5000x1050\": 66.0,\n \"5000x1230\": 66.0,\n \"6500x600\": 54.0,\n \"6500x750\": 54.0,\n \"6500x910\": 54.0,\n \"6500x1050\": 66.0,\n \"6500x1230\": 66.0,\n \"8000x600\": 54.0,\n \"8000x750\": 54.0,\n \"8000x910\": 54.0,\n \"8000x1050\": 66.0,\n \"8000x1230\": 66.0,\n \"10000x600\": 54.0,\n \"10000x750\": 54.0,\n \"10000x910\": 54.0,\n \"10000x1050\": 66.0,\n \"10000x1230\": 66.0,\n \"12500x600\": 54.0,\n \"12500x750\": 66.0,\n \"12500x910\": 66.0,\n \"12500x1050\": 73.0,\n \"12500x1230\": 73.0,\n \"15500x600\": 54.0,\n \"15500x750\": 66.0,\n \"15500x910\": 66.0,\n \"15500x1050\": 73.0,\n \"15500x1230\": 73.0,\n \"20000x600\": 72.0,\n \"20000x750\": 73.0,\n \"20000x910\": 73.0,\n \"20000x1050\": 73.0,\n \"20000x1230\": 73.0,\n \"25000x600\": 72.0,\n \"25000x750\": 73.0,\n \"25000x910\": 73.0,\n \"25000x1050\": 73.0,\n \"25000x1230\": 73.0,\n \"30000x600\": 72.0,\n \"30000x750\": 73.0,\n \"30000x910\": 73.0,\n \"30000x1050\": 73.0,\n \"30000x1230\": 73.0,\n \"35000x600\": 73.0,\n \"35000x750\": 73.0,\n \"35000x910\": 73.0,\n \"35000x1050\": 83.0,\n \"35000x1230\": 83.0,\n \"40000x600\": 73.0,\n \"40000x750\": 73.0,\n \"40000x910\": 73.0,\n \"40000x1050\": 83.0,\n \"40000x1230\": 83.0,\n \"50000x600\": 91.0,\n \"50000x750\": 91.0,\n \"50000x910\": 91.0,\n \"50000x1050\": 92.0,\n \"50000x1230\": 92.0,\n \"60000x600\": 91.0,\n \"60000x750\": 91.0,\n \"60000x910\": 91.0,\n \"60000x1050\": 92.0,\n \"60000x1230\": 92.0,\n },\n \"5000x4000\": {\n \"1000x600\": 73.0,\n \"1000x750\": 73.0,\n \"1000x910\": 73.0,\n \"1000x1050\": 83.0,\n \"1000x1230\": 83.0,\n \"2000x600\": 73.0,\n \"2000x750\": 73.0,\n \"2000x910\": 73.0,\n \"2000x1050\": 83.0,\n \"2000x1230\": 83.0,\n \"3000x600\": 73.0,\n \"3000x750\": 73.0,\n \"3000x910\": 73.0,\n \"3000x1050\": 83.0,\n \"3000x1230\": 83.0,\n \"4000x600\": 73.0,\n \"4000x750\": 73.0,\n \"4000x910\": 73.0,\n \"4000x1050\": 83.0,\n \"4000x1230\": 83.0,\n \"5000x600\": 73.0,\n \"5000x750\": 73.0,\n \"5000x910\": 73.0,\n \"5000x1050\": 83.0,\n \"5000x1230\": 83.0,\n \"6500x600\": 73.0,\n \"6500x750\": 73.0,\n \"6500x910\": 73.0,\n \"6500x1050\": 83.0,\n \"6500x1230\": 83.0,\n \"8000x600\": 73.0,\n \"8000x750\": 73.0,\n \"8000x910\": 73.0,\n \"8000x1050\": 83.0,\n \"8000x1230\": 83.0,\n \"10000x600\": 73.0,\n \"10000x750\": 73.0,\n \"10000x910\": 73.0,\n \"10000x1050\": 83.0,\n \"10000x1230\": 83.0,\n \"12500x600\": 73.0,\n \"12500x750\": 73.0,\n \"12500x910\": 73.0,\n \"12500x1050\": 83.0,\n \"12500x1230\": 83.0,\n \"15500x600\": 73.0,\n \"15500x750\": 73.0,\n \"15500x910\": 73.0,\n \"15500x1050\": 83.0,\n \"15500x1230\": 83.0,\n \"20000x600\": 73.0,\n \"20000x750\": 73.0,\n \"20000x910\": 73.0,\n \"20000x1050\": 83.0,\n \"20000x1230\": 83.0,\n \"25000x600\": 73.0,\n \"25000x750\": 73.0,\n \"25000x910\": 83.0,\n \"25000x1050\": 83.0,\n \"25000x1230\": 83.0,\n \"30000x600\": 73.0,\n \"30000x750\": 73.0,\n \"30000x910\": 83.0,\n \"30000x1050\": 83.0,\n \"30000x1230\": 83.0,\n \"35000x600\": 73.0,\n \"35000x750\": 73.0,\n \"35000x910\": 83.0,\n \"35000x1050\": 83.0,\n \"35000x1230\": 93.0,\n \"40000x600\": 73.0,\n \"40000x750\": 73.0,\n \"40000x910\": 83.0,\n \"40000x1050\": 83.0,\n \"40000x1230\": 93.0,\n \"50000x600\": 91.0,\n \"50000x750\": 92.0,\n \"50000x910\": 92.0,\n \"50000x1050\": 92.0,\n \"50000x1230\": 93.0,\n \"60000x600\": 91.0,\n \"60000x750\": 92.0,\n \"60000x910\": 92.0,\n \"60000x1050\": 92.0,\n \"60000x1230\": 93.0,\n },\n \"5000x5000\": {\n \"1000x600\": 73.0,\n \"1000x750\": 83.0,\n \"1000x910\": 83.0,\n \"1000x1050\": 93.0,\n \"1000x1230\": 93.0,\n \"2000x600\": 73.0,\n \"2000x750\": 83.0,\n \"2000x910\": 83.0,\n \"2000x1050\": 93.0,\n \"2000x1230\": 93.0,\n \"3000x600\": 73.0,\n \"3000x750\": 83.0,\n \"3000x910\": 83.0,\n \"3000x1050\": 93.0,\n \"3000x1230\": 93.0,\n \"4000x600\": 73.0,\n \"4000x750\": 83.0,\n \"4000x910\": 83.0,\n \"4000x1050\": 93.0,\n \"4000x1230\": 93.0,\n \"5000x600\": 73.0,\n \"5000x750\": 83.0,\n \"5000x910\": 83.0,\n \"5000x1050\": 93.0,\n \"5000x1230\": 93.0,\n \"6500x600\": 73.0,\n \"6500x750\": 83.0,\n \"6500x910\": 83.0,\n \"6500x1050\": 93.0,\n \"6500x1230\": 93.0,\n \"8000x600\": 73.0,\n \"8000x750\": 83.0,\n \"8000x910\": 83.0,\n \"8000x1050\": 93.0,\n \"8000x1230\": 93.0,\n \"10000x600\": 73.0,\n \"10000x750\": 83.0,\n \"10000x910\": 83.0,\n \"10000x1050\": 93.0,\n \"10000x1230\": 93.0,\n \"12500x600\": 73.0,\n \"12500x750\": 83.0,\n \"12500x910\": 83.0,\n \"12500x1050\": 93.0,\n \"12500x1230\": 93.0,\n \"15500x600\": 73.0,\n \"15500x750\": 83.0,\n \"15500x910\": 83.0,\n \"15500x1050\": 93.0,\n \"15500x1230\": 93.0,\n \"20000x600\": 73.0,\n \"20000x750\": 83.0,\n \"20000x910\": 83.0,\n \"20000x1050\": 93.0,\n \"20000x1230\": 93.0,\n \"25000x600\": 83.0,\n \"25000x750\": 83.0,\n \"25000x910\": 93.0,\n \"25000x1050\": 93.0,\n \"25000x1230\": 93.0,\n \"30000x600\": 83.0,\n \"30000x750\": 83.0,\n \"30000x910\": 93.0,\n \"30000x1050\": 93.0,\n \"30000x1230\": 93.0,\n \"35000x600\": 83.0,\n \"35000x750\": 83.0,\n \"35000x910\": 93.0,\n \"35000x1050\": 93.0,\n \"35000x1230\": 103.0,\n \"40000x600\": 83.0,\n \"40000x750\": 83.0,\n \"40000x910\": 93.0,\n \"40000x1050\": 93.0,\n \"40000x1230\": 103.0,\n \"50000x600\": 92.0,\n \"50000x750\": 93.0,\n \"50000x910\": 93.0,\n \"50000x1050\": 93.0,\n \"50000x1230\": 103.0,\n \"60000x600\": 92.0,\n \"60000x750\": 93.0,\n \"60000x910\": 93.0,\n \"60000x1050\": 93.0,\n \"60000x1230\": 103.0,\n },\n};\n","import { calcCombinationSign } from \"./combinationSign\";\n\n// calcCombinationSignを再エクスポート\nexport { calcCombinationSign };\n","export function calcCombinationSign(\n nw: number,\n sideStrutsCenterSpace: number,\n signCalcOuterWidth: number,\n innerHeight: number\n): number | string {\n if (!nw || !sideStrutsCenterSpace || !signCalcOuterWidth || !innerHeight) {\n return 999;\n }\n const firstKeys = Object.keys(MATRIX);\n const closestOuterWidth = findClosestKey(signCalcOuterWidth, firstKeys, 0);\n const closestInnerHeight = findClosestKey(innerHeight, firstKeys, 1);\n\n const selectedKey = `${closestOuterWidth}x${closestInnerHeight}`;\n\n if (!MATRIX[selectedKey]) {\n return 999;\n }\n\n const nwSpacingKeys = Object.keys(MATRIX[selectedKey]);\n const closestNW = findClosestKey(nw, nwSpacingKeys, 0);\n const closestSpacing = findClosestKey(\n sideStrutsCenterSpace,\n nwSpacingKeys,\n 1\n );\n\n const weightSpacingKey = `${closestNW}x${closestSpacing}`;\n\n if (MATRIX[selectedKey][weightSpacingKey] !== undefined) {\n return MATRIX[selectedKey][weightSpacingKey];\n } else {\n return 999;\n }\n}\n\nfunction findClosestKey(value: number, keys: string[], index: number): string {\n const numericKeys = keys\n .map((key) => parseInt(key.split(\"x\")[index]))\n .filter((key) => key >= value);\n if (numericKeys.length === 0) return \"No matching key found.\";\n const closestKey = Math.min(...numericKeys);\n return closestKey.toString();\n}\n\n// 枠組部材の組み合わせ符号選択表\n// 1階層目のkeyは外寸幅mm x 内寸高さmm\n// 2階層目のkeyは重量kg x 支柱中心間隔mm\ninterface MatrixData {\n [key: string]: {\n [key: string]: number;\n };\n}\n\nconst MATRIX: MatrixData = {\n \"1000x1000\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 1,\n \"1000x1250\": 1,\n \"2000x750\": 1,\n \"2000x950\": 1,\n \"2000x1050\": 1,\n \"2000x1250\": 1,\n \"3000x750\": 1,\n \"3000x950\": 1,\n \"3000x1050\": 1,\n \"3000x1250\": 1,\n \"4000x750\": 1,\n \"4000x950\": 1,\n \"4000x1050\": 1,\n \"4000x1250\": 1,\n \"5000x750\": 1,\n \"5000x950\": 1,\n \"5000x1050\": 1,\n \"5000x1250\": 1,\n \"7500x750\": 10,\n \"7500x950\": 10,\n \"7500x1050\": 10,\n \"7500x1250\": 10,\n \"10000x750\": 10,\n \"10000x950\": 10,\n \"10000x1050\": 10,\n \"10000x1250\": 10,\n },\n \"1000x1500\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 1,\n \"1000x1250\": 1,\n \"2000x750\": 1,\n \"2000x950\": 1,\n \"2000x1050\": 1,\n \"2000x1250\": 1,\n \"3000x750\": 1,\n \"3000x950\": 1,\n \"3000x1050\": 1,\n \"3000x1250\": 1,\n \"4000x750\": 1,\n \"4000x950\": 1,\n \"4000x1050\": 1,\n \"4000x1250\": 1,\n \"5000x750\": 1,\n \"5000x950\": 1,\n \"5000x1050\": 1,\n \"5000x1250\": 1,\n \"7500x750\": 10,\n \"7500x950\": 10,\n \"7500x1050\": 10,\n \"7500x1250\": 10,\n \"10000x750\": 10,\n \"10000x950\": 10,\n \"10000x1050\": 10,\n \"10000x1250\": 10,\n },\n \"1000x2000\": {\n \"1000x750\": 3,\n \"1000x950\": 3,\n \"1000x1050\": 3,\n \"1000x1250\": 3,\n \"2000x750\": 3,\n \"2000x950\": 3,\n \"2000x1050\": 3,\n \"2000x1250\": 3,\n \"3000x750\": 3,\n \"3000x950\": 3,\n \"3000x1050\": 3,\n \"3000x1250\": 3,\n \"4000x750\": 10,\n \"4000x950\": 11,\n \"4000x1050\": 11,\n \"4000x1250\": 11,\n \"5000x750\": 10,\n \"5000x950\": 11,\n \"5000x1050\": 11,\n \"5000x1250\": 11,\n \"7500x750\": 10,\n \"7500x950\": 10,\n \"7500x1050\": 10,\n \"7500x1250\": 11,\n \"10000x750\": 10,\n \"10000x950\": 10,\n \"10000x1050\": 10,\n \"10000x1250\": 11,\n },\n \"1000x2500\": {\n \"1000x750\": 10,\n \"1000x950\": 10,\n \"1000x1050\": 10,\n \"1000x1250\": 10,\n \"2000x750\": 10,\n \"2000x950\": 10,\n \"2000x1050\": 10,\n \"2000x1250\": 10,\n \"3000x750\": 10,\n \"3000x950\": 10,\n \"3000x1050\": 10,\n \"3000x1250\": 10,\n \"4000x750\": 11,\n \"4000x950\": 11,\n \"4000x1050\": 11,\n \"4000x1250\": 11,\n \"5000x750\": 11,\n \"5000x950\": 11,\n \"5000x1050\": 11,\n \"5000x1250\": 11,\n \"7500x750\": 11,\n \"7500x950\": 12,\n \"7500x1050\": 12,\n \"7500x1250\": 13,\n \"10000x750\": 11,\n \"10000x950\": 12,\n \"10000x1050\": 12,\n \"10000x1250\": 13,\n },\n \"1000x3000\": {\n \"1000x750\": 21,\n \"1000x950\": 21,\n \"1000x1050\": 21,\n \"1000x1250\": 21,\n \"2000x750\": 21,\n \"2000x950\": 21,\n \"2000x1050\": 21,\n \"2000x1250\": 21,\n \"3000x750\": 21,\n \"3000x950\": 21,\n \"3000x1050\": 21,\n \"3000x1250\": 21,\n \"4000x750\": 21,\n \"4000x950\": 21,\n \"4000x1050\": 21,\n \"4000x1250\": 21,\n \"5000x750\": 21,\n \"5000x950\": 21,\n \"5000x1050\": 21,\n \"5000x1250\": 21,\n \"7500x750\": 13,\n \"7500x950\": 13,\n \"7500x1050\": 13,\n \"7500x1250\": 20,\n \"10000x750\": 13,\n \"10000x950\": 13,\n \"10000x1050\": 13,\n \"10000x1250\": 20,\n },\n \"1000x3300\": {\n \"1000x750\": 22,\n \"1000x950\": 22,\n \"1000x1050\": 22,\n \"1000x1250\": 22,\n \"2000x750\": 22,\n \"2000x950\": 22,\n \"2000x1050\": 22,\n \"2000x1250\": 22,\n \"3000x750\": 22,\n \"3000x950\": 22,\n \"3000x1050\": 22,\n \"3000x1250\": 22,\n \"4000x750\": 22,\n \"4000x950\": 22,\n \"4000x1050\": 22,\n \"4000x1250\": 22,\n \"5000x750\": 22,\n \"5000x950\": 22,\n \"5000x1050\": 22,\n \"5000x1250\": 22,\n \"7500x750\": 21,\n \"7500x950\": 21,\n \"7500x1050\": 21,\n \"7500x1250\": 22,\n \"10000x750\": 21,\n \"10000x950\": 21,\n \"10000x1050\": 21,\n \"10000x1250\": 22,\n },\n \"1500x1000\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 1,\n \"1000x1250\": 1,\n \"2000x750\": 1,\n \"2000x950\": 1,\n \"2000x1050\": 1,\n \"2000x1250\": 1,\n \"3000x750\": 1,\n \"3000x950\": 1,\n \"3000x1050\": 1,\n \"3000x1250\": 1,\n \"4000x750\": 1,\n \"4000x950\": 1,\n \"4000x1050\": 1,\n \"4000x1250\": 1,\n \"5000x750\": 1,\n \"5000x950\": 1,\n \"5000x1050\": 1,\n \"5000x1250\": 1,\n \"7500x750\": 10,\n \"7500x950\": 10,\n \"7500x1050\": 10,\n \"7500x1250\": 10,\n \"10000x750\": 10,\n \"10000x950\": 10,\n \"10000x1050\": 10,\n \"10000x1250\": 10,\n },\n \"1500x1500\": {\n \"1000x750\": 3,\n \"1000x950\": 3,\n \"1000x1050\": 3,\n \"1000x1250\": 4,\n \"2000x750\": 3,\n \"2000x950\": 3,\n \"2000x1050\": 3,\n \"2000x1250\": 4,\n \"3000x750\": 3,\n \"3000x950\": 3,\n \"3000x1050\": 3,\n \"3000x1250\": 4,\n \"4000x750\": 3,\n \"4000x950\": 3,\n \"4000x1050\": 3,\n \"4000x1250\": 4,\n \"5000x750\": 3,\n \"5000x950\": 3,\n \"5000x1050\": 3,\n \"5000x1250\": 4,\n \"7500x750\": 10,\n \"7500x950\": 10,\n \"7500x1050\": 10,\n \"7500x1250\": 10,\n \"10000x750\": 10,\n \"10000x950\": 10,\n \"10000x1050\": 10,\n \"10000x1250\": 10,\n },\n \"1500x2000\": {\n \"1000x750\": 4,\n \"1000x950\": 10,\n \"1000x1050\": 10,\n \"1000x1250\": 11,\n \"2000x750\": 4,\n \"2000x950\": 10,\n \"2000x1050\": 10,\n \"2000x1250\": 11,\n \"3000x750\": 11,\n \"3000x950\": 11,\n \"3000x1050\": 11,\n \"3000x1250\": 11,\n \"4000x750\": 11,\n \"4000x950\": 11,\n \"4000x1050\": 11,\n \"4000x1250\": 12,\n \"5000x750\": 11,\n \"5000x950\": 11,\n \"5000x1050\": 11,\n \"5000x1250\": 12,\n \"7500x750\": 10,\n \"7500x950\": 10,\n \"7500x1050\": 11,\n \"7500x1250\": 12,\n \"10000x750\": 10,\n \"10000x950\": 10,\n \"10000x1050\": 11,\n \"10000x1250\": 12,\n },\n \"1500x2500\": {\n \"1000x750\": 12,\n \"1000x950\": 13,\n \"1000x1050\": 20,\n \"1000x1250\": 21,\n \"2000x750\": 12,\n \"2000x950\": 13,\n \"2000x1050\": 20,\n \"2000x1250\": 21,\n \"3000x750\": 12,\n \"3000x950\": 13,\n \"3000x1050\": 20,\n \"3000x1250\": 21,\n \"4000x750\": 12,\n \"4000x950\": 13,\n \"4000x1050\": 20,\n \"4000x1250\": 21,\n \"5000x750\": 12,\n \"5000x950\": 13,\n \"5000x1050\": 20,\n \"5000x1250\": 21,\n \"7500x750\": 12,\n \"7500x950\": 13,\n \"7500x1050\": 20,\n \"7500x1250\": 21,\n \"10000x750\": 12,\n \"10000x950\": 13,\n \"10000x1050\": 20,\n \"10000x1250\": 21,\n },\n \"1500x3000\": {\n \"1000x750\": 21,\n \"1000x950\": 21,\n \"1000x1050\": 21,\n \"1000x1250\": 22,\n \"2000x750\": 21,\n \"2000x950\": 21,\n \"2000x1050\": 21,\n \"2000x1250\": 21,\n \"3000x750\": 21,\n \"3000x950\": 21,\n \"3000x1050\": 21,\n \"3000x1250\": 21,\n \"4000x750\": 21,\n \"4000x950\": 21,\n \"4000x1050\": 21,\n \"4000x1250\": 21,\n \"5000x750\": 21,\n \"5000x950\": 22,\n \"5000x1050\": 22,\n \"5000x1250\": 22,\n \"7500x750\": 13,\n \"7500x950\": 20,\n \"7500x1050\": 21,\n \"7500x1250\": 22,\n \"10000x750\": 13,\n \"10000x950\": 20,\n \"10000x1050\": 21,\n \"10000x1250\": 22,\n },\n \"1500x3300\": {\n \"1000x750\": 22,\n \"1000x950\": 30,\n \"1000x1050\": 31,\n \"1000x1250\": 32,\n \"2000x750\": 22,\n \"2000x950\": 30,\n \"2000x1050\": 31,\n \"2000x1250\": 32,\n \"3000x750\": 22,\n \"3000x950\": 30,\n \"3000x1050\": 31,\n \"3000x1250\": 32,\n \"4000x750\": 22,\n \"4000x950\": 30,\n \"4000x1050\": 31,\n \"4000x1250\": 32,\n \"5000x750\": 22,\n \"5000x950\": 30,\n \"5000x1050\": 31,\n \"5000x1250\": 32,\n \"7500x750\": 21,\n \"7500x950\": 21,\n \"7500x1050\": 22,\n \"7500x1250\": 22,\n \"10000x750\": 21,\n \"10000x950\": 21,\n \"10000x1050\": 22,\n \"10000x1250\": 22,\n },\n \"2000x1000\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 1,\n \"1000x1250\": 1,\n \"2000x750\": 1,\n \"2000x950\": 1,\n \"2000x1050\": 1,\n \"2000x1250\": 1,\n \"3000x750\": 1,\n \"3000x950\": 1,\n \"3000x1050\": 1,\n \"3000x1250\": 1,\n \"4000x750\": 1,\n \"4000x950\": 1,\n \"4000x1050\": 1,\n \"4000x1250\": 1,\n \"5000x750\": 1,\n \"5000x950\": 1,\n \"5000x1050\": 1,\n \"5000x1250\": 1,\n \"7500x750\": 10,\n \"7500x950\": 10,\n \"7500x1050\": 10,\n \"7500x1250\": 10,\n \"10000x750\": 10,\n \"10000x950\": 10,\n \"10000x1050\": 10,\n \"10000x1250\": 10,\n },\n \"2000x1500\": {\n \"1000x750\": 3,\n \"1000x950\": 4,\n \"1000x1050\": 4,\n \"1000x1250\": 10,\n \"2000x750\": 3,\n \"2000x950\": 4,\n \"2000x1050\": 4,\n \"2000x1250\": 10,\n \"3000x750\": 3,\n \"3000x950\": 4,\n \"3000x1050\": 4,\n \"3000x1250\": 10,\n \"4000x750\": 3,\n \"4000x950\": 4,\n \"4000x1050\": 4,\n \"4000x1250\": 10,\n \"5000x750\": 3,\n \"5000x950\": 4,\n \"5000x1050\": 4,\n \"5000x1250\": 10,\n \"7500x750\": 10,\n \"7500x950\": 10,\n \"7500x1050\": 10,\n \"7500x1250\": 10,\n \"10000x750\": 10,\n \"10000x950\": 10,\n \"10000x1050\": 10,\n \"10000x1250\": 10,\n },\n \"2000x2000\": {\n \"1000x750\": 10,\n \"1000x950\": 11,\n \"1000x1050\": 12,\n \"1000x1250\": 13,\n \"2000x750\": 10,\n \"2000x950\": 11,\n \"2000x1050\": 12,\n \"2000x1250\": 13,\n \"3000x750\": 10,\n \"3000x950\": 11,\n \"3000x1050\": 12,\n \"3000x1250\": 13,\n \"4000x750\": 10,\n \"4000x950\": 11,\n \"4000x1050\": 12,\n \"4000x1250\": 13,\n \"5000x750\": 10,\n \"5000x950\": 11,\n \"5000x1050\": 12,\n \"5000x1250\": 13,\n \"7500x750\": 10,\n \"7500x950\": 11,\n \"7500x1050\": 12,\n \"7500x1250\": 13,\n \"10000x750\": 10,\n \"10000x950\": 11,\n \"10000x1050\": 12,\n \"10000x1250\": 13,\n },\n \"2000x2500\": {\n \"1000x750\": 20,\n \"1000x950\": 21,\n \"1000x1050\": 21,\n \"1000x1250\": 22,\n \"2000x750\": 20,\n \"2000x950\": 21,\n \"2000x1050\": 21,\n \"2000x1250\": 22,\n \"3000x750\": 20,\n \"3000x950\": 21,\n \"3000x1050\": 21,\n \"3000x1250\": 22,\n \"4000x750\": 20,\n \"4000x950\": 21,\n \"4000x1050\": 21,\n \"4000x1250\": 22,\n \"5000x750\": 20,\n \"5000x950\": 21,\n \"5000x1050\": 21,\n \"5000x1250\": 22,\n \"7500x750\": 20,\n \"7500x950\": 21,\n \"7500x1050\": 21,\n \"7500x1250\": 22,\n \"10000x750\": 20,\n \"10000x950\": 21,\n \"10000x1050\": 21,\n \"10000x1250\": 22,\n },\n \"2000x3000\": {\n \"1000x750\": 30,\n \"1000x950\": 31,\n \"1000x1050\": 32,\n \"1000x1250\": 32,\n \"2000x750\": 30,\n \"2000x950\": 31,\n \"2000x1050\": 32,\n \"2000x1250\": 32,\n \"3000x750\": 30,\n \"3000x950\": 31,\n \"3000x1050\": 32,\n \"3000x1250\": 32,\n \"4000x750\": 30,\n \"4000x950\": 31,\n \"4000x1050\": 32,\n \"4000x1250\": 32,\n \"5000x750\": 30,\n \"5000x950\": 31,\n \"5000x1050\": 32,\n \"5000x1250\": 32,\n \"7500x750\": 30,\n \"7500x950\": 31,\n \"7500x1050\": 31,\n \"7500x1250\": 32,\n \"10000x750\": 30,\n \"10000x950\": 31,\n \"10000x1050\": 31,\n \"10000x1250\": 32,\n },\n \"2000x3300\": {\n \"1000x750\": 31,\n \"1000x950\": 32,\n \"1000x1050\": 32,\n \"1000x1250\": 33,\n \"2000x750\": 31,\n \"2000x950\": 32,\n \"2000x1050\": 32,\n \"2000x1250\": 33,\n \"3000x750\": 31,\n \"3000x950\": 32,\n \"3000x1050\": 32,\n \"3000x1250\": 33,\n \"4000x750\": 31,\n \"4000x950\": 32,\n \"4000x1050\": 32,\n \"4000x1250\": 33,\n \"5000x750\": 31,\n \"5000x950\": 32,\n \"5000x1050\": 32,\n \"5000x1250\": 33,\n \"7500x750\": 31,\n \"7500x950\": 32,\n \"7500x1050\": 33,\n \"7500x1250\": 33,\n \"10000x750\": 31,\n \"10000x950\": 32,\n \"10000x1050\": 33,\n \"10000x1250\": 33,\n },\n \"2500x1000\": {\n \"1000x750\": 1,\n \"1000x950\": 3,\n \"1000x1050\": 3,\n \"1000x1250\": 4,\n \"2000x750\": 1,\n \"2000x950\": 3,\n \"2000x1050\": 3,\n \"2000x1250\": 4,\n \"3000x750\": 1,\n \"3000x950\": 3,\n \"3000x1050\": 3,\n \"3000x1250\": 4,\n \"4000x750\": 1,\n \"4000x950\": 3,\n \"4000x1050\": 3,\n \"4000x1250\": 4,\n \"5000x750\": 1,\n \"5000x950\": 3,\n \"5000x1050\": 3,\n \"5000x1250\": 4,\n \"7500x750\": 11,\n \"7500x950\": 11,\n \"7500x1050\": 11,\n \"7500x1250\": 11,\n \"10000x750\": 11,\n \"10000x950\": 11,\n \"10000x1050\": 11,\n \"10000x1250\": 11,\n },\n \"2500x1500\": {\n \"1000x750\": 10,\n \"1000x950\": 11,\n \"1000x1050\": 11,\n \"1000x1250\": 12,\n \"2000x750\": 10,\n \"2000x950\": 11,\n \"2000x1050\": 11,\n \"2000x1250\": 12,\n \"3000x750\": 10,\n \"3000x950\": 11,\n \"3000x1050\": 11,\n \"3000x1250\": 12,\n \"4000x750\": 10,\n \"4000x950\": 11,\n \"4000x1050\": 11,\n \"4000x1250\": 12,\n \"5000x750\": 10,\n \"5000x950\": 11,\n \"5000x1050\": 11,\n \"5000x1250\": 12,\n \"7500x750\": 11,\n \"7500x950\": 11,\n \"7500x1050\": 11,\n \"7500x1250\": 13,\n \"10000x750\": 11,\n \"10000x950\": 11,\n \"10000x1050\": 11,\n \"10000x1250\": 13,\n },\n \"2500x2000\": {\n \"1000x750\": 12,\n \"1000x950\": 13,\n \"1000x1050\": 20,\n \"1000x1250\": 21,\n \"2000x750\": 12,\n \"2000x950\": 13,\n \"2000x1050\": 20,\n \"2000x1250\": 21,\n \"3000x750\": 12,\n \"3000x950\": 13,\n \"3000x1050\": 20,\n \"3000x1250\": 21,\n \"4000x750\": 12,\n \"4000x950\": 13,\n \"4000x1050\": 20,\n \"4000x1250\": 21,\n \"5000x750\": 12,\n \"5000x950\": 13,\n \"5000x1050\": 20,\n \"5000x1250\": 21,\n \"7500x750\": 12,\n \"7500x950\": 13,\n \"7500x1050\": 20,\n \"7500x1250\": 21,\n \"10000x750\": 12,\n \"10000x950\": 13,\n \"10000x1050\": 20,\n \"10000x1250\": 21,\n },\n \"2500x2500\": {\n \"1000x750\": 21,\n \"1000x950\": 22,\n \"1000x1050\": 30,\n \"1000x1250\": 31,\n \"2000x750\": 21,\n \"2000x950\": 22,\n \"2000x1050\": 30,\n \"2000x1250\": 31,\n \"3000x750\": 21,\n \"3000x950\": 22,\n \"3000x1050\": 30,\n \"3000x1250\": 31,\n \"4000x750\": 21,\n \"4000x950\": 22,\n \"4000x1050\": 30,\n \"4000x1250\": 31,\n \"5000x750\": 21,\n \"5000x950\": 22,\n \"5000x1050\": 30,\n \"5000x1250\": 31,\n \"7500x750\": 21,\n \"7500x950\": 22,\n \"7500x1050\": 30,\n \"7500x1250\": 31,\n \"10000x750\": 21,\n \"10000x950\": 22,\n \"10000x1050\": 30,\n \"10000x1250\": 31,\n },\n \"2500x3000\": {\n \"1000x750\": 31,\n \"1000x950\": 32,\n \"1000x1050\": 32,\n \"1000x1250\": 33,\n \"2000x750\": 31,\n \"2000x950\": 32,\n \"2000x1050\": 32,\n \"2000x1250\": 33,\n \"3000x750\": 31,\n \"3000x950\": 32,\n \"3000x1050\": 32,\n \"3000x1250\": 33,\n \"4000x750\": 31,\n \"4000x950\": 32,\n \"4000x1050\": 32,\n \"4000x1250\": 33,\n \"5000x750\": 31,\n \"5000x950\": 32,\n \"5000x1050\": 32,\n \"5000x1250\": 33,\n \"7500x750\": 31,\n \"7500x950\": 32,\n \"7500x1050\": 33,\n \"7500x1250\": 33,\n \"10000x750\": 31,\n \"10000x950\": 32,\n \"10000x1050\": 33,\n \"10000x1250\": 33,\n },\n \"2500x3300\": {\n \"1000x750\": 31,\n \"1000x950\": 32,\n \"1000x1050\": 33,\n \"1000x1250\": 33,\n \"2000x750\": 31,\n \"2000x950\": 32,\n \"2000x1050\": 33,\n \"2000x1250\": 33,\n \"3000x750\": 31,\n \"3000x950\": 32,\n \"3000x1050\": 33,\n \"3000x1250\": 33,\n \"4000x750\": 31,\n \"4000x950\": 32,\n \"4000x1050\": 33,\n \"4000x1250\": 33,\n \"5000x750\": 31,\n \"5000x950\": 32,\n \"5000x1050\": 33,\n \"5000x1250\": 33,\n \"7500x750\": 32,\n \"7500x950\": 33,\n \"7500x1050\": 33,\n \"7500x1250\": 34,\n \"10000x750\": 32,\n \"10000x950\": 33,\n \"10000x1050\": 33,\n \"10000x1250\": 34,\n },\n \"3000x1000\": {\n \"1000x750\": 3,\n \"1000x950\": 3,\n \"1000x1050\": 4,\n \"1000x1250\": 4,\n \"2000x750\": 3,\n \"2000x950\": 3,\n \"2000x1050\": 4,\n \"2000x1250\": 4,\n \"3000x750\": 3,\n \"3000x950\": 3,\n \"3000x1050\": 4,\n \"3000x1250\": 4,\n \"4000x750\": 3,\n \"4000x950\": 3,\n \"4000x1050\": 4,\n \"4000x1250\": 4,\n \"5000x750\": 3,\n \"5000x950\": 3,\n \"5000x1050\": 4,\n \"5000x1250\": 4,\n \"7500x750\": 11,\n \"7500x950\": 11,\n \"7500x1050\": 11,\n \"7500x1250\": 11,\n \"10000x750\": 11,\n \"10000x950\": 11,\n \"10000x1050\": 11,\n \"10000x1250\": 11,\n },\n \"3000x1500\": {\n \"1000x750\": 10,\n \"1000x950\": 11,\n \"1000x1050\": 12,\n \"1000x1250\": 13,\n \"2000x750\": 10,\n \"2000x950\": 11,\n \"2000x1050\": 12,\n \"2000x1250\": 13,\n \"3000x750\": 10,\n \"3000x950\": 11,\n \"3000x1050\": 12,\n \"3000x1250\": 13,\n \"4000x750\": 10,\n \"4000x950\": 11,\n \"4000x1050\": 12,\n \"4000x1250\": 13,\n \"5000x750\": 10,\n \"5000x950\": 11,\n \"5000x1050\": 12,\n \"5000x1250\": 13,\n \"7500x750\": 11,\n \"7500x950\": 11,\n \"7500x1050\": 12,\n \"7500x1250\": 13,\n \"10000x750\": 11,\n \"10000x950\": 11,\n \"10000x1050\": 12,\n \"10000x1250\": 13,\n },\n \"3000x2000\": {\n \"1000x750\": 13,\n \"1000x950\": 20,\n \"1000x1050\": 21,\n \"1000x1250\": 22,\n \"2000x750\": 13,\n \"2000x950\": 20,\n \"2000x1050\": 21,\n \"2000x1250\": 22,\n \"3000x750\": 13,\n \"3000x950\": 20,\n \"3000x1050\": 21,\n \"3000x1250\": 22,\n \"4000x750\": 13,\n \"4000x950\": 20,\n \"4000x1050\": 21,\n \"4000x1250\": 22,\n \"5000x750\": 13,\n \"5000x950\": 20,\n \"5000x1050\": 21,\n \"5000x1250\": 22,\n \"7500x750\": 20,\n \"7500x950\": 21,\n \"7500x1050\": 21,\n \"7500x1250\": 22,\n \"10000x750\": 20,\n \"10000x950\": 21,\n \"10000x1050\": 21,\n \"10000x1250\": 22,\n },\n \"3000x2500\": {\n \"1000x750\": 22,\n \"1000x950\": 30,\n \"1000x1050\": 31,\n \"1000x1250\": 32,\n \"2000x750\": 22,\n \"2000x950\": 30,\n \"2000x1050\": 31,\n \"2000x1250\": 32,\n \"3000x750\": 22,\n \"3000x950\": 30,\n \"3000x1050\": 31,\n \"3000x1250\": 32,\n \"4000x750\": 22,\n \"4000x950\": 30,\n \"4000x1050\": 31,\n \"4000x1250\": 32,\n \"5000x750\": 22,\n \"5000x950\": 30,\n \"5000x1050\": 31,\n \"5000x1250\": 32,\n \"7500x750\": 30,\n \"7500x950\": 31,\n \"7500x1050\": 32,\n \"7500x1250\": 33,\n \"10000x750\": 30,\n \"10000x950\": 31,\n \"10000x1050\": 32,\n \"10000x1250\": 33,\n },\n \"3000x3000\": {\n \"1000x750\": 31,\n \"1000x950\": 32,\n \"1000x1050\": 33,\n \"1000x1250\": 33,\n \"2000x750\": 31,\n \"2000x950\": 32,\n \"2000x1050\": 33,\n \"2000x1250\": 33,\n \"3000x750\": 31,\n \"3000x950\": 32,\n \"3000x1050\": 33,\n \"3000x1250\": 33,\n \"4000x750\": 31,\n \"4000x950\": 32,\n \"4000x1050\": 33,\n \"4000x1250\": 33,\n \"5000x750\": 31,\n \"5000x950\": 32,\n \"5000x1050\": 33,\n \"5000x1250\": 33,\n \"7500x750\": 32,\n \"7500x950\": 33,\n \"7500x1050\": 34,\n \"7500x1250\": 34,\n \"10000x750\": 32,\n \"10000x950\": 33,\n \"10000x1050\": 34,\n \"10000x1250\": 34,\n },\n \"3000x3300\": {\n \"1000x750\": 32,\n \"1000x950\": 33,\n \"1000x1050\": 33,\n \"1000x1250\": 34,\n \"2000x750\": 32,\n \"2000x950\": 33,\n \"2000x1050\": 33,\n \"2000x1250\": 34,\n \"3000x750\": 32,\n \"3000x950\": 33,\n \"3000x1050\": 33,\n \"3000x1250\": 34,\n \"4000x750\": 32,\n \"4000x950\": 33,\n \"4000x1050\": 33,\n \"4000x1250\": 34,\n \"5000x750\": 32,\n \"5000x950\": 33,\n \"5000x1050\": 33,\n \"5000x1250\": 34,\n \"7500x750\": 33,\n \"7500x950\": 34,\n \"7500x1050\": 34,\n \"7500x1250\": 35,\n \"10000x750\": 33,\n \"10000x950\": 34,\n \"10000x1050\": 34,\n \"10000x1250\": 35,\n },\n \"3300x1000\": {\n \"1000x750\": 10,\n \"1000x950\": 10,\n \"1000x1050\": 11,\n \"1000x1250\": 11,\n \"2000x750\": 10,\n \"2000x950\": 10,\n \"2000x1050\": 11,\n \"2000x1250\": 11,\n \"3000x750\": 10,\n \"3000x950\": 10,\n \"3000x1050\": 11,\n \"3000x1250\": 11,\n \"4000x750\": 10,\n \"4000x950\": 10,\n \"4000x1050\": 11,\n \"4000x1250\": 11,\n \"5000x750\": 10,\n \"5000x950\": 10,\n \"5000x1050\": 11,\n \"5000x1250\": 11,\n \"7500x750\": 11,\n \"7500x950\": 11,\n \"7500x1050\": 11,\n \"7500x1250\": 11,\n \"10000x750\": 11,\n \"10000x950\": 11,\n \"10000x1050\": 11,\n \"10000x1250\": 11,\n },\n \"3300x1500\": {\n \"1000x750\": 11,\n \"1000x950\": 12,\n \"1000x1050\": 12,\n \"1000x1250\": 13,\n \"2000x750\": 11,\n \"2000x950\": 12,\n \"2000x1050\": 12,\n \"2000x1250\": 13,\n \"3000x750\": 11,\n \"3000x950\": 12,\n \"3000x1050\": 12,\n \"3000x1250\": 13,\n \"4000x750\": 11,\n \"4000x950\": 12,\n \"4000x1050\": 12,\n \"4000x1250\": 13,\n \"5000x750\": 11,\n \"5000x950\": 12,\n \"5000x1050\": 12,\n \"5000x1250\": 13,\n \"7500x750\": 12,\n \"7500x950\": 13,\n \"7500x1050\": 13,\n \"7500x1250\": 20,\n \"10000x750\": 12,\n \"10000x950\": 13,\n \"10000x1050\": 13,\n \"10000x1250\": 20,\n },\n \"3300x2000\": {\n \"1000x750\": 20,\n \"1000x950\": 21,\n \"1000x1050\": 22,\n \"1000x1250\": 22,\n \"2000x750\": 20,\n \"2000x950\": 21,\n \"2000x1050\": 22,\n \"2000x1250\": 22,\n \"3000x750\": 20,\n \"3000x950\": 21,\n \"3000x1050\": 22,\n \"3000x1250\": 22,\n \"4000x750\": 20,\n \"4000x950\": 21,\n \"4000x1050\": 22,\n \"4000x1250\": 22,\n \"5000x750\": 20,\n \"5000x950\": 21,\n \"5000x1050\": 22,\n \"5000x1250\": 22,\n \"7500x750\": 20,\n \"7500x950\": 21,\n \"7500x1050\": 22,\n \"7500x1250\": 22,\n \"10000x750\": 22,\n \"10000x950\": 24,\n \"10000x1050\": 24,\n \"10000x1250\": 31,\n },\n \"3300x2500\": {\n \"1000x750\": 30,\n \"1000x950\": 31,\n \"1000x1050\": 32,\n \"1000x1250\": 32,\n \"2000x750\": 30,\n \"2000x950\": 31,\n \"2000x1050\": 32,\n \"2000x1250\": 32,\n \"3000x750\": 30,\n \"3000x950\": 31,\n \"3000x1050\": 32,\n \"3000x1250\": 32,\n \"4000x750\": 30,\n \"4000x950\": 31,\n \"4000x1050\": 32,\n \"4000x1250\": 32,\n \"5000x750\": 30,\n \"5000x950\": 31,\n \"5000x1050\": 32,\n \"5000x1250\": 32,\n \"7500x750\": 31,\n \"7500x950\": 32,\n \"7500x1050\": 33,\n \"7500x1250\": 33,\n \"10000x750\": 31,\n \"10000x950\": 32,\n \"10000x1050\": 33,\n \"10000x1250\": 33,\n },\n \"3300x3000\": {\n \"1000x750\": 32,\n \"1000x950\": 33,\n \"1000x1050\": 34,\n \"1000x1250\": 34,\n \"2000x750\": 32,\n \"2000x950\": 33,\n \"2000x1050\": 34,\n \"2000x1250\": 34,\n \"3000x750\": 32,\n \"3000x950\": 33,\n \"3000x1050\": 34,\n \"3000x1250\": 34,\n \"4000x750\": 32,\n \"4000x950\": 33,\n \"4000x1050\": 34,\n \"4000x1250\": 34,\n \"5000x750\": 32,\n \"5000x950\": 33,\n \"5000x1050\": 34,\n \"5000x1250\": 34,\n \"7500x750\": 33,\n \"7500x950\": 33,\n \"7500x1050\": 34,\n \"7500x1250\": 35,\n \"10000x750\": 33,\n \"10000x950\": 33,\n \"10000x1050\": 34,\n \"10000x1250\": 35,\n },\n \"3300x3300\": {\n \"1000x750\": 32,\n \"1000x950\": 33,\n \"1000x1050\": 34,\n \"1000x1250\": 35,\n \"2000x750\": 32,\n \"2000x950\": 33,\n \"2000x1050\": 34,\n \"2000x1250\": 35,\n \"3000x750\": 32,\n \"3000x950\": 33,\n \"3000x1050\": 34,\n \"3000x1250\": 35,\n \"4000x750\": 32,\n \"4000x950\": 33,\n \"4000x1050\": 34,\n \"4000x1250\": 35,\n \"5000x750\": 32,\n \"5000x950\": 33,\n \"5000x1050\": 34,\n \"5000x1250\": 35,\n \"7500x750\": 33,\n \"7500x950\": 34,\n \"7500x1050\": 35,\n \"7500x1250\": 35,\n \"10000x750\": 33,\n \"10000x950\": 34,\n \"10000x1050\": 35,\n \"10000x1250\": 35,\n },\n};\n","export * from \"./combinationSign\";\n","export function calcCombinationSign(\n nw: number,\n sideStrutsCenterSpace: number,\n signCalcOuterWidth: number,\n innerHeight: number\n): number | string {\n if (!nw || !sideStrutsCenterSpace || !signCalcOuterWidth || !innerHeight) {\n return 999;\n }\n const firstKeys = Object.keys(MATRIX);\n const closestOuterWidth = findClosestKey(signCalcOuterWidth, firstKeys, 0);\n const closestInnerHeight = findClosestKey(innerHeight, firstKeys, 1);\n\n const selectedKey = `${closestOuterWidth}x${closestInnerHeight}`;\n\n if (!MATRIX[selectedKey]) {\n return 999;\n }\n\n const nwSpacingKeys = Object.keys(MATRIX[selectedKey]);\n const closestNW = findClosestKey(nw, nwSpacingKeys, 0);\n const closestSpacing = findClosestKey(\n sideStrutsCenterSpace,\n nwSpacingKeys,\n 1\n );\n\n const weightSpacingKey = `${closestNW}x${closestSpacing}`;\n\n if (MATRIX[selectedKey][weightSpacingKey] !== undefined) {\n return MATRIX[selectedKey][weightSpacingKey];\n } else {\n return 999;\n }\n}\n\nfunction findClosestKey(value: number, keys: string[], index: number): string {\n const numericKeys = keys\n .map((key) => parseInt(key.split(\"x\")[index]))\n .filter((key) => key >= value);\n if (numericKeys.length === 0) return \"No matching key found.\";\n const closestKey = Math.min(...numericKeys);\n return closestKey.toString();\n}\n\n// 枠組部材の組み合わせ符号選択表\n// 1階層目のkeyは外寸幅mm x 内寸高さmm\n// 2階層目のkeyは重量kg x 支柱中心間隔mm\ninterface MatrixData {\n [key: string]: {\n [key: string]: number;\n };\n}\n\nconst MATRIX: MatrixData = {\n \"1000x1000\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 0,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 0,\n \"2000x1250\": 0,\n \"3000x750\": 0,\n \"3000x950\": 0,\n \"3000x1050\": 0,\n \"3000x1250\": 0,\n \"4000x750\": 2,\n \"4000x950\": 2,\n \"4000x1050\": 2,\n \"4000x1250\": 2,\n \"5000x750\": 2,\n \"5000x950\": 2,\n \"5000x1050\": 2,\n \"5000x1250\": 2,\n \"7500x750\": 2,\n \"7500x950\": 2,\n \"7500x1050\": 2,\n \"7500x1250\": 2,\n \"10000x750\": 2,\n \"10000x950\": 2,\n \"10000x1050\": 2,\n \"10000x1250\": 2,\n },\n \"1000x1500\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 1,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 0,\n \"2000x1250\": 1,\n \"3000x750\": 0,\n \"3000x950\": 0,\n \"3000x1050\": 0,\n \"3000x1250\": 1,\n \"4000x750\": 1,\n \"4000x950\": 1,\n \"4000x1050\": 1,\n \"4000x1250\": 1,\n \"5000x750\": 1,\n \"5000x950\": 1,\n \"5000x1050\": 1,\n \"5000x1250\": 1,\n \"7500x750\": 2,\n \"7500x950\": 2,\n \"7500x1050\": 2,\n \"7500x1250\": 1,\n \"10000x750\": 2,\n \"10000x950\": 2,\n \"10000x1050\": 2,\n \"10000x1250\": 1,\n },\n \"1000x2000\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 1,\n \"1000x1250\": 1,\n \"2000x750\": 1,\n \"2000x950\": 1,\n \"2000x1050\": 1,\n \"2000x1250\": 1,\n \"3000x750\": 1,\n \"3000x950\": 1,\n \"3000x1050\": 1,\n \"3000x1250\": 1,\n \"4000x750\": 3,\n \"4000x950\": 3,\n \"4000x1050\": 3,\n \"4000x1250\": 3,\n \"5000x750\": 3,\n \"5000x950\": 3,\n \"5000x1050\": 3,\n \"5000x1250\": 3,\n \"7500x750\": 1,\n \"7500x950\": 1,\n \"7500x1050\": 3,\n \"7500x1250\": 4,\n \"10000x750\": 1,\n \"10000x950\": 1,\n \"10000x1050\": 3,\n \"10000x1250\": 4,\n },\n \"1000x2450\": {\n \"1000x750\": 10,\n \"1000x950\": 10,\n \"1000x1050\": 10,\n \"1000x1250\": 10,\n \"2000x750\": 10,\n \"2000x950\": 10,\n \"2000x1050\": 10,\n \"2000x1250\": 10,\n \"3000x750\": 10,\n \"3000x950\": 10,\n \"3000x1050\": 10,\n \"3000x1250\": 10,\n \"4000x750\": 10,\n \"4000x950\": 10,\n \"4000x1050\": 10,\n \"4000x1250\": 10,\n \"5000x750\": 10,\n \"5000x950\": 10,\n \"5000x1050\": 10,\n \"5000x1250\": 10,\n \"7500x750\": 10,\n \"7500x950\": 10,\n \"7500x1050\": 11,\n \"7500x1250\": 11,\n \"10000x750\": 10,\n \"10000x950\": 10,\n \"10000x1050\": 11,\n \"10000x1250\": 11,\n },\n \"1500x1000\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 0,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 0,\n \"2000x1250\": 0,\n \"3000x750\": 2,\n \"3000x950\": 2,\n \"3000x1050\": 2,\n \"3000x1250\": 2,\n \"4000x750\": 2,\n \"4000x950\": 2,\n \"4000x1050\": 2,\n \"4000x1250\": 2,\n \"5000x750\": 2,\n \"5000x950\": 2,\n \"5000x1050\": 2,\n \"5000x1250\": 2,\n \"7500x750\": 2,\n \"7500x950\": 2,\n \"7500x1050\": 2,\n \"7500x1250\": 2,\n \"10000x750\": 2,\n \"10000x950\": 2,\n \"10000x1050\": 2,\n \"10000x1250\": 2,\n },\n \"1500x1500\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 1,\n \"1000x1250\": 1,\n \"2000x750\": 1,\n \"2000x950\": 1,\n \"2000x1050\": 1,\n \"2000x1250\": 1,\n \"3000x750\": 1,\n \"3000x950\": 1,\n \"3000x1050\": 1,\n \"3000x1250\": 1,\n \"4000x750\": 1,\n \"4000x950\": 1,\n \"4000x1050\": 1,\n \"4000x1250\": 1,\n \"5000x750\": 1,\n \"5000x950\": 1,\n \"5000x1050\": 1,\n \"5000x1250\": 1,\n \"7500x750\": 1,\n \"7500x950\": 1,\n \"7500x1050\": 1,\n \"7500x1250\": 1,\n \"10000x750\": 1,\n \"10000x950\": 1,\n \"10000x1050\": 1,\n \"10000x1250\": 1,\n },\n \"1500x2000\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 3,\n \"1000x1250\": 3,\n \"2000x750\": 1,\n \"2000x950\": 1,\n \"2000x1050\": 3,\n \"2000x1250\": 3,\n \"3000x750\": 1,\n \"3000x950\": 1,\n \"3000x1050\": 3,\n \"3000x1250\": 3,\n \"4000x750\": 3,\n \"4000x950\": 3,\n \"4000x1050\": 4,\n \"4000x1250\": 4,\n \"5000x750\": 10,\n \"5000x950\": 10,\n \"5000x1050\": 10,\n \"5000x1250\": 10,\n \"7500x750\": 3,\n \"7500x950\": 4,\n \"7500x1050\": 10,\n \"7500x1250\": 11,\n \"10000x750\": 3,\n \"10000x950\": 4,\n \"10000x1050\": 10,\n \"10000x1250\": 11,\n },\n \"1500x2450\": {\n \"1000x750\": 10,\n \"1000x950\": 10,\n \"1000x1050\": 11,\n \"1000x1250\": 12,\n \"2000x750\": 10,\n \"2000x950\": 10,\n \"2000x1050\": 11,\n \"2000x1250\": 12,\n \"3000x750\": 10,\n \"3000x950\": 10,\n \"3000x1050\": 11,\n \"3000x1250\": 12,\n \"4000x750\": 10,\n \"4000x950\": 10,\n \"4000x1050\": 11,\n \"4000x1250\": 12,\n \"5000x750\": 11,\n \"5000x950\": 11,\n \"5000x1050\": 12,\n \"5000x1250\": 12,\n \"7500x750\": 10,\n \"7500x950\": 11,\n \"7500x1050\": 12,\n \"7500x1250\": 13,\n \"10000x750\": 10,\n \"10000x950\": 11,\n \"10000x1050\": 12,\n \"10000x1250\": 13,\n },\n \"2000x1000\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 1,\n \"2000x750\": 2,\n \"2000x950\": 2,\n \"2000x1050\": 2,\n \"2000x1250\": 1,\n \"3000x750\": 2,\n \"3000x950\": 2,\n \"3000x1050\": 2,\n \"3000x1250\": 1,\n \"4000x750\": 2,\n \"4000x950\": 2,\n \"4000x1050\": 2,\n \"4000x1250\": 1,\n \"5000x750\": 2,\n \"5000x950\": 2,\n \"5000x1050\": 2,\n \"5000x1250\": 1,\n \"7500x750\": 2,\n \"7500x950\": 2,\n \"7500x1050\": 2,\n \"7500x1250\": 1,\n \"10000x750\": 2,\n \"10000x950\": 2,\n \"10000x1050\": 2,\n \"10000x1250\": 1,\n },\n \"2000x1500\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 1,\n \"1000x1250\": 1,\n \"2000x750\": 1,\n \"2000x950\": 1,\n \"2000x1050\": 1,\n \"2000x1250\": 1,\n \"3000x750\": 1,\n \"3000x950\": 1,\n \"3000x1050\": 1,\n \"3000x1250\": 1,\n \"4000x750\": 1,\n \"4000x950\": 1,\n \"4000x1050\": 1,\n \"4000x1250\": 1,\n \"5000x750\": 1,\n \"5000x950\": 1,\n \"5000x1050\": 1,\n \"5000x1250\": 1,\n \"7500x750\": 1,\n \"7500x950\": 1,\n \"7500x1050\": 1,\n \"7500x1250\": 3,\n \"10000x750\": 1,\n \"10000x950\": 1,\n \"10000x1050\": 1,\n \"10000x1250\": 3,\n },\n \"2000x2000\": {\n \"1000x750\": 1,\n \"1000x950\": 3,\n \"1000x1050\": 4,\n \"1000x1250\": 4,\n \"2000x750\": 3,\n \"2000x950\": 3,\n \"2000x1050\": 4,\n \"2000x1250\": 4,\n \"3000x750\": 3,\n \"3000x950\": 3,\n \"3000x1050\": 4,\n \"3000x1250\": 4,\n \"4000x750\": 10,\n \"4000x950\": 10,\n \"4000x1050\": 10,\n \"4000x1250\": 10,\n \"5000x750\": 10,\n \"5000x950\": 10,\n \"5000x1050\": 10,\n \"5000x1250\": 10,\n \"7500x750\": 10,\n \"7500x950\": 10,\n \"7500x1050\": 11,\n \"7500x1250\": 12,\n \"10000x750\": 10,\n \"10000x950\": 10,\n \"10000x1050\": 11,\n \"10000x1250\": 12,\n },\n \"2000x2450\": {\n \"1000x750\": 11,\n \"1000x950\": 12,\n \"1000x1050\": 13,\n \"1000x1250\": 13,\n \"2000x750\": 11,\n \"2000x950\": 12,\n \"2000x1050\": 13,\n \"2000x1250\": 13,\n \"3000x750\": 11,\n \"3000x950\": 12,\n \"3000x1050\": 13,\n \"3000x1250\": 13,\n \"4000x750\": 11,\n \"4000x950\": 12,\n \"4000x1050\": 13,\n \"4000x1250\": 13,\n \"5000x750\": 11,\n \"5000x950\": 12,\n \"5000x1050\": 13,\n \"5000x1250\": 13,\n \"7500x750\": 12,\n \"7500x950\": 13,\n \"7500x1050\": 20,\n \"7500x1250\": 21,\n \"10000x750\": 12,\n \"10000x950\": 13,\n \"10000x1050\": 20,\n \"10000x1250\": 21,\n },\n \"2300x1000\": {\n \"1000x750\": 2,\n \"1000x950\": 2,\n \"1000x1050\": 2,\n \"1000x1250\": 1,\n \"2000x750\": 2,\n \"2000x950\": 2,\n \"2000x1050\": 2,\n \"2000x1250\": 1,\n \"3000x750\": 2,\n \"3000x950\": 2,\n \"3000x1050\": 2,\n \"3000x1250\": 1,\n \"4000x750\": 2,\n \"4000x950\": 2,\n \"4000x1050\": 2,\n \"4000x1250\": 1,\n \"5000x750\": 2,\n \"5000x950\": 2,\n \"5000x1050\": 2,\n \"5000x1250\": 1,\n \"7500x750\": 2,\n \"7500x950\": 2,\n \"7500x1050\": 1,\n \"7500x1250\": 1,\n \"10000x750\": 2,\n \"10000x950\": 2,\n \"10000x1050\": 1,\n \"10000x1250\": 1,\n },\n \"2300x1500\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 1,\n \"1000x1250\": 3,\n \"2000x750\": 1,\n \"2000x950\": 1,\n \"2000x1050\": 1,\n \"2000x1250\": 3,\n \"3000x750\": 1,\n \"3000x950\": 1,\n \"3000x1050\": 1,\n \"3000x1250\": 3,\n \"4000x750\": 1,\n \"4000x950\": 1,\n \"4000x1050\": 1,\n \"4000x1250\": 3,\n \"5000x750\": 1,\n \"5000x950\": 1,\n \"5000x1050\": 1,\n \"5000x1250\": 3,\n \"7500x750\": 1,\n \"7500x950\": 1,\n \"7500x1050\": 3,\n \"7500x1250\": 4,\n \"10000x750\": 1,\n \"10000x950\": 1,\n \"10000x1050\": 3,\n \"10000x1250\": 4,\n },\n \"2300x2000\": {\n \"1000x750\": 3,\n \"1000x950\": 4,\n \"1000x1050\": 10,\n \"1000x1250\": 11,\n \"2000x750\": 3,\n \"2000x950\": 4,\n \"2000x1050\": 10,\n \"2000x1250\": 11,\n \"3000x750\": 3,\n \"3000x950\": 4,\n \"3000x1050\": 10,\n \"3000x1250\": 11,\n \"4000x750\": 3,\n \"4000x950\": 4,\n \"4000x1050\": 10,\n \"4000x1250\": 11,\n \"5000x750\": 3,\n \"5000x950\": 4,\n \"5000x1050\": 10,\n \"5000x1250\": 11,\n \"7500x750\": 10,\n \"7500x950\": 11,\n \"7500x1050\": 12,\n \"7500x1250\": 13,\n \"10000x750\": 10,\n \"10000x950\": 11,\n \"10000x1050\": 12,\n \"10000x1250\": 13,\n },\n \"2300x2450\": {\n \"1000x750\": 12,\n \"1000x950\": 13,\n \"1000x1050\": 20,\n \"1000x1250\": 21,\n \"2000x750\": 12,\n \"2000x950\": 13,\n \"2000x1050\": 20,\n \"2000x1250\": 21,\n \"3000x750\": 12,\n \"3000x950\": 13,\n \"3000x1050\": 20,\n \"3000x1250\": 21,\n \"4000x750\": 12,\n \"4000x950\": 13,\n \"4000x1050\": 20,\n \"4000x1250\": 21,\n \"5000x750\": 12,\n \"5000x950\": 13,\n \"5000x1050\": 20,\n \"5000x1250\": 21,\n \"7500x750\": 20,\n \"7500x950\": 21,\n \"7500x1050\": 22,\n \"7500x1250\": 22,\n \"10000x750\": 20,\n \"10000x950\": 21,\n \"10000x1050\": 22,\n \"10000x1250\": 22,\n },\n};\n","export * from \"./combinationSign\";\n","export function calcCombinationSign(\n nw: number,\n sideStrutsCenterSpace: number,\n signCalcOuterWidth: number,\n innerHeight: number\n): number | string {\n if (!nw || !sideStrutsCenterSpace || !signCalcOuterWidth || !innerHeight) {\n return 999;\n }\n const firstKeys = Object.keys(MATRIX);\n const closestOuterWidth = findClosestKey(signCalcOuterWidth, firstKeys, 0);\n const closestInnerHeight = findClosestKey(innerHeight, firstKeys, 1);\n\n const selectedKey = `${closestOuterWidth}x${closestInnerHeight}`;\n\n if (!MATRIX[selectedKey]) {\n return 999;\n }\n\n const nwSpacingKeys = Object.keys(MATRIX[selectedKey]);\n const closestNW = findClosestKey(nw, nwSpacingKeys, 0);\n const closestSpacing = findClosestKey(\n sideStrutsCenterSpace,\n nwSpacingKeys,\n 1\n );\n\n const weightSpacingKey = `${closestNW}x${closestSpacing}`;\n\n if (MATRIX[selectedKey][weightSpacingKey] !== undefined) {\n return MATRIX[selectedKey][weightSpacingKey];\n } else {\n return 999;\n }\n}\n\nfunction findClosestKey(value: number, keys: string[], index: number): string {\n const numericKeys = keys\n .map((key) => parseInt(key.split(\"x\")[index]))\n .filter((key) => key >= value);\n if (numericKeys.length === 0) return \"No matching key found.\";\n const closestKey = Math.min(...numericKeys);\n return closestKey.toString();\n}\n\n// 枠組部材の組み合わせ符号選択表\n// 1階層目のkeyは外寸幅mm x 内寸高さmm\n// 2階層目のkeyは重量kg x 支柱中心間隔mm\ninterface MatrixData {\n [key: string]: {\n [key: string]: number;\n };\n}\n\nconst MATRIX: MatrixData = {\n \"1000x1000\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 0,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 0,\n \"2000x1250\": 0,\n \"3000x750\": 0,\n \"3000x950\": 0,\n \"3000x1050\": 0,\n \"3000x1250\": 0,\n \"4000x750\": 0,\n \"4000x950\": 0,\n \"4000x1050\": 0,\n \"4000x1250\": 0,\n \"5000x750\": 0,\n \"5000x950\": 0,\n \"5000x1050\": 0,\n \"5000x1250\": 0,\n \"7500x750\": 0,\n \"7500x950\": 0,\n \"7500x1050\": 0,\n \"7500x1250\": 0,\n \"10000x750\": 0,\n \"10000x950\": 0,\n \"10000x1050\": 0,\n \"10000x1250\": 0,\n },\n \"1000x1500\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 1,\n \"1000x1250\": 1,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 2,\n \"2000x1250\": 2,\n \"3000x750\": 0,\n \"3000x950\": 0,\n \"3000x1050\": 2,\n \"3000x1250\": 2,\n \"4000x750\": 0,\n \"4000x950\": 0,\n \"4000x1050\": 2,\n \"4000x1250\": 2,\n \"5000x750\": 0,\n \"5000x950\": 0,\n \"5000x1050\": 2,\n \"5000x1250\": 2,\n \"7500x750\": 2,\n \"7500x950\": 2,\n \"7500x1050\": 2,\n \"7500x1250\": 2,\n \"10000x750\": 2,\n \"10000x950\": 2,\n \"10000x1050\": 2,\n \"10000x1250\": 2,\n },\n \"1000x2000\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 1,\n \"1000x1250\": 1,\n \"2000x750\": 1,\n \"2000x950\": 1,\n \"2000x1050\": 1,\n \"2000x1250\": 1,\n \"3000x750\": 1,\n \"3000x950\": 1,\n \"3000x1050\": 1,\n \"3000x1250\": 1,\n \"4000x750\": 1,\n \"4000x950\": 1,\n \"4000x1050\": 1,\n \"4000x1250\": 1,\n \"5000x750\": 1,\n \"5000x950\": 1,\n \"5000x1050\": 1,\n \"5000x1250\": 1,\n \"7500x750\": 1,\n \"7500x950\": 1,\n \"7500x1050\": 1,\n \"7500x1250\": 1,\n \"10000x750\": 1,\n \"10000x950\": 1,\n \"10000x1050\": 1,\n \"10000x1250\": 1,\n },\n \"1000x2450\": {\n \"1000x750\": 11,\n \"1000x950\": 11,\n \"1000x1050\": 11,\n \"1000x1250\": 11,\n \"2000x750\": 11,\n \"2000x950\": 11,\n \"2000x1050\": 11,\n \"2000x1250\": 11,\n \"3000x750\": 11,\n \"3000x950\": 11,\n \"3000x1050\": 11,\n \"3000x1250\": 11,\n \"4000x750\": 11,\n \"4000x950\": 11,\n \"4000x1050\": 11,\n \"4000x1250\": 11,\n \"5000x750\": 11,\n \"5000x950\": 11,\n \"5000x1050\": 11,\n \"5000x1250\": 11,\n \"7500x750\": 11,\n \"7500x950\": 11,\n \"7500x1050\": 11,\n \"7500x1250\": 11,\n \"10000x750\": 11,\n \"10000x950\": 11,\n \"10000x1050\": 11,\n \"10000x1250\": 11,\n },\n \"1500x1000\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 0,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 0,\n \"2000x1250\": 0,\n \"3000x750\": 0,\n \"3000x950\": 0,\n \"3000x1050\": 0,\n \"3000x1250\": 0,\n \"4000x750\": 0,\n \"4000x950\": 0,\n \"4000x1050\": 0,\n \"4000x1250\": 0,\n \"5000x750\": 0,\n \"5000x950\": 0,\n \"5000x1050\": 0,\n \"5000x1250\": 0,\n \"7500x750\": 0,\n \"7500x950\": 0,\n \"7500x1050\": 0,\n \"7500x1250\": 0,\n \"10000x750\": 0,\n \"10000x950\": 0,\n \"10000x1050\": 0,\n \"10000x1250\": 0,\n },\n \"1500x1500\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 1,\n \"1000x1250\": 1,\n \"2000x750\": 2,\n \"2000x950\": 2,\n \"2000x1050\": 2,\n \"2000x1250\": 1,\n \"3000x750\": 2,\n \"3000x950\": 2,\n \"3000x1050\": 2,\n \"3000x1250\": 1,\n \"4000x750\": 2,\n \"4000x950\": 2,\n \"4000x1050\": 2,\n \"4000x1250\": 1,\n \"5000x750\": 2,\n \"5000x950\": 2,\n \"5000x1050\": 2,\n \"5000x1250\": 1,\n \"7500x750\": 2,\n \"7500x950\": 2,\n \"7500x1050\": 2,\n \"7500x1250\": 1,\n \"10000x750\": 2,\n \"10000x950\": 2,\n \"10000x1050\": 2,\n \"10000x1250\": 1,\n },\n \"1500x2000\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 1,\n \"1000x1250\": 3,\n \"2000x750\": 1,\n \"2000x950\": 1,\n \"2000x1050\": 1,\n \"2000x1250\": 3,\n \"3000x750\": 1,\n \"3000x950\": 1,\n \"3000x1050\": 1,\n \"3000x1250\": 3,\n \"4000x750\": 1,\n \"4000x950\": 1,\n \"4000x1050\": 1,\n \"4000x1250\": 3,\n \"5000x750\": 1,\n \"5000x950\": 1,\n \"5000x1050\": 1,\n \"5000x1250\": 3,\n \"7500x750\": 1,\n \"7500x950\": 1,\n \"7500x1050\": 1,\n \"7500x1250\": 1,\n \"10000x750\": 1,\n \"10000x950\": 1,\n \"10000x1050\": 1,\n \"10000x1250\": 1,\n },\n \"1500x2450\": {\n \"1000x750\": 11,\n \"1000x950\": 11,\n \"1000x1050\": 11,\n \"1000x1250\": 11,\n \"2000x750\": 11,\n \"2000x950\": 11,\n \"2000x1050\": 11,\n \"2000x1250\": 11,\n \"3000x750\": 11,\n \"3000x950\": 11,\n \"3000x1050\": 11,\n \"3000x1250\": 11,\n \"4000x750\": 11,\n \"4000x950\": 11,\n \"4000x1050\": 11,\n \"4000x1250\": 11,\n \"5000x750\": 11,\n \"5000x950\": 11,\n \"5000x1050\": 11,\n \"5000x1250\": 11,\n \"7500x750\": 11,\n \"7500x950\": 11,\n \"7500x1050\": 11,\n \"7500x1250\": 11,\n \"10000x750\": 11,\n \"10000x950\": 11,\n \"10000x1050\": 11,\n \"10000x1250\": 11,\n },\n \"2000x1000\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 2,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 0,\n \"2000x1250\": 2,\n \"3000x750\": 0,\n \"3000x950\": 0,\n \"3000x1050\": 0,\n \"3000x1250\": 2,\n \"4000x750\": 0,\n \"4000x950\": 0,\n \"4000x1050\": 0,\n \"4000x1250\": 2,\n \"5000x750\": 0,\n \"5000x950\": 0,\n \"5000x1050\": 0,\n \"5000x1250\": 2,\n \"7500x750\": 0,\n \"7500x950\": 0,\n \"7500x1050\": 0,\n \"7500x1250\": 2,\n \"10000x750\": 0,\n \"10000x950\": 0,\n \"10000x1050\": 0,\n \"10000x1250\": 2,\n },\n \"2000x1500\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 1,\n \"1000x1250\": 1,\n \"2000x750\": 1,\n \"2000x950\": 1,\n \"2000x1050\": 1,\n \"2000x1250\": 1,\n \"3000x750\": 1,\n \"3000x950\": 1,\n \"3000x1050\": 1,\n \"3000x1250\": 1,\n \"4000x750\": 1,\n \"4000x950\": 1,\n \"4000x1050\": 1,\n \"4000x1250\": 1,\n \"5000x750\": 1,\n \"5000x950\": 1,\n \"5000x1050\": 1,\n \"5000x1250\": 1,\n \"7500x750\": 2,\n \"7500x950\": 1,\n \"7500x1050\": 1,\n \"7500x1250\": 1,\n \"10000x750\": 2,\n \"10000x950\": 1,\n \"10000x1050\": 1,\n \"10000x1250\": 1,\n },\n \"2000x2000\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 3,\n \"1000x1250\": 4,\n \"2000x750\": 1,\n \"2000x950\": 1,\n \"2000x1050\": 3,\n \"2000x1250\": 4,\n \"3000x750\": 1,\n \"3000x950\": 1,\n \"3000x1050\": 3,\n \"3000x1250\": 4,\n \"4000x750\": 1,\n \"4000x950\": 1,\n \"4000x1050\": 3,\n \"4000x1250\": 4,\n \"5000x750\": 1,\n \"5000x950\": 1,\n \"5000x1050\": 3,\n \"5000x1250\": 4,\n \"7500x750\": 1,\n \"7500x950\": 1,\n \"7500x1050\": 1,\n \"7500x1250\": 3,\n \"10000x750\": 1,\n \"10000x950\": 1,\n \"10000x1050\": 1,\n \"10000x1250\": 3,\n },\n \"2000x2450\": {\n \"1000x750\": 11,\n \"1000x950\": 11,\n \"1000x1050\": 11,\n \"1000x1250\": 11,\n \"2000x750\": 11,\n \"2000x950\": 11,\n \"2000x1050\": 11,\n \"2000x1250\": 11,\n \"3000x750\": 11,\n \"3000x950\": 11,\n \"3000x1050\": 11,\n \"3000x1250\": 11,\n \"4000x750\": 11,\n \"4000x950\": 11,\n \"4000x1050\": 11,\n \"4000x1250\": 11,\n \"5000x750\": 11,\n \"5000x950\": 11,\n \"5000x1050\": 11,\n \"5000x1250\": 11,\n \"7500x750\": 11,\n \"7500x950\": 11,\n \"7500x1050\": 11,\n \"7500x1250\": 12,\n \"10000x750\": 11,\n \"10000x950\": 11,\n \"10000x1050\": 11,\n \"10000x1250\": 12,\n },\n \"2300x1000\": {\n \"1000x750\": 0,\n \"1000x950\": 2,\n \"1000x1050\": 2,\n \"1000x1250\": 2,\n \"2000x750\": 0,\n \"2000x950\": 2,\n \"2000x1050\": 2,\n \"2000x1250\": 2,\n \"3000x750\": 0,\n \"3000x950\": 2,\n \"3000x1050\": 2,\n \"3000x1250\": 2,\n \"4000x750\": 0,\n \"4000x950\": 2,\n \"4000x1050\": 2,\n \"4000x1250\": 2,\n \"5000x750\": 0,\n \"5000x950\": 2,\n \"5000x1050\": 2,\n \"5000x1250\": 2,\n \"7500x750\": 0,\n \"7500x950\": 2,\n \"7500x1050\": 2,\n \"7500x1250\": 2,\n \"10000x750\": 0,\n \"10000x950\": 2,\n \"10000x1050\": 2,\n \"10000x1250\": 2,\n },\n \"2300x1500\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 1,\n \"1000x1250\": 1,\n \"2000x750\": 1,\n \"2000x950\": 1,\n \"2000x1050\": 1,\n \"2000x1250\": 1,\n \"3000x750\": 1,\n \"3000x950\": 1,\n \"3000x1050\": 1,\n \"3000x1250\": 1,\n \"4000x750\": 1,\n \"4000x950\": 1,\n \"4000x1050\": 1,\n \"4000x1250\": 1,\n \"5000x750\": 1,\n \"5000x950\": 1,\n \"5000x1050\": 1,\n \"5000x1250\": 1,\n \"7500x750\": 2,\n \"7500x950\": 1,\n \"7500x1050\": 1,\n \"7500x1250\": 1,\n \"10000x750\": 2,\n \"10000x950\": 1,\n \"10000x1050\": 1,\n \"10000x1250\": 1,\n },\n \"2300x2000\": {\n \"1000x750\": 3,\n \"1000x950\": 4,\n \"1000x1050\": 10,\n \"1000x1250\": 11,\n \"2000x750\": 3,\n \"2000x950\": 4,\n \"2000x1050\": 10,\n \"2000x1250\": 11,\n \"3000x750\": 3,\n \"3000x950\": 4,\n \"3000x1050\": 10,\n \"3000x1250\": 11,\n \"4000x750\": 3,\n \"4000x950\": 4,\n \"4000x1050\": 10,\n \"4000x1250\": 11,\n \"5000x750\": 3,\n \"5000x950\": 4,\n \"5000x1050\": 10,\n \"5000x1250\": 11,\n \"7500x750\": 1,\n \"7500x950\": 1,\n \"7500x1050\": 1,\n \"7500x1250\": 3,\n \"10000x750\": 1,\n \"10000x950\": 1,\n \"10000x1050\": 1,\n \"10000x1250\": 3,\n },\n \"2300x2450\": {\n \"1000x750\": 11,\n \"1000x950\": 11,\n \"1000x1050\": 11,\n \"1000x1250\": 11,\n \"2000x750\": 11,\n \"2000x950\": 11,\n \"2000x1050\": 11,\n \"2000x1250\": 11,\n \"3000x750\": 11,\n \"3000x950\": 11,\n \"3000x1050\": 11,\n \"3000x1250\": 11,\n \"4000x750\": 11,\n \"4000x950\": 11,\n \"4000x1050\": 11,\n \"4000x1250\": 11,\n \"5000x750\": 11,\n \"5000x950\": 11,\n \"5000x1050\": 11,\n \"5000x1250\": 11,\n \"7500x750\": 11,\n \"7500x950\": 11,\n \"7500x1050\": 12,\n \"7500x1250\": 13,\n \"10000x750\": 11,\n \"10000x950\": 11,\n \"10000x1050\": 12,\n \"10000x1250\": 13,\n },\n};\n","export * from \"./combinationSign\";\n","export function calcCombinationSign(\n nw: number,\n sideStrutsCenterSpace: number,\n signCalcOuterWidth: number,\n innerHeight: number\n): number | string {\n if (!nw || !sideStrutsCenterSpace || !signCalcOuterWidth || !innerHeight) {\n return 999;\n }\n const firstKeys = Object.keys(MATRIX);\n const closestOuterWidth = findClosestKey(signCalcOuterWidth, firstKeys, 0);\n const closestInnerHeight = findClosestKey(innerHeight, firstKeys, 1);\n\n const selectedKey = `${closestOuterWidth}x${closestInnerHeight}`;\n\n if (!MATRIX[selectedKey]) {\n return 999;\n }\n\n const nwSpacingKeys = Object.keys(MATRIX[selectedKey]);\n const closestNW = findClosestKey(nw, nwSpacingKeys, 0);\n const closestSpacing = findClosestKey(\n sideStrutsCenterSpace,\n nwSpacingKeys,\n 1\n );\n\n const weightSpacingKey = `${closestNW}x${closestSpacing}`;\n\n if (MATRIX[selectedKey][weightSpacingKey] !== undefined) {\n return MATRIX[selectedKey][weightSpacingKey];\n } else {\n return 999;\n }\n}\n\nfunction findClosestKey(value: number, keys: string[], index: number): string {\n const numericKeys = keys\n .map((key) => parseInt(key.split(\"x\")[index]))\n .filter((key) => key >= value);\n if (numericKeys.length === 0) return \"No matching key found.\";\n const closestKey = Math.min(...numericKeys);\n return closestKey.toString();\n}\n\n// 枠組部材の組み合わせ符号選択表\n// 1階層目のkeyは外寸幅mm x 内寸高さmm\n// 2階層目のkeyは重量kg x 支柱中心間隔mm\ninterface MatrixData {\n [key: string]: {\n [key: string]: number;\n };\n}\n\nconst MATRIX: MatrixData = {\n \"1000x1000\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 0,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 0,\n \"2000x1250\": 0,\n \"3000x750\": 0,\n \"3000x950\": 0,\n \"3000x1050\": 0,\n \"3000x1250\": 0,\n \"4000x750\": 0,\n \"4000x950\": 0,\n \"4000x1050\": 0,\n \"4000x1250\": 0,\n \"5000x750\": 0,\n \"5000x950\": 0,\n \"5000x1050\": 0,\n \"5000x1250\": 0,\n },\n \"1000x1500\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 0,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 0,\n \"2000x1250\": 0,\n \"3000x750\": 0,\n \"3000x950\": 0,\n \"3000x1050\": 0,\n \"3000x1250\": 0,\n \"4000x750\": 0,\n \"4000x950\": 0,\n \"4000x1050\": 0,\n \"4000x1250\": 0,\n \"5000x750\": 0,\n \"5000x950\": 0,\n \"5000x1050\": 0,\n \"5000x1250\": 0,\n },\n \"1000x2000\": {\n \"1000x750\": 2,\n \"1000x950\": 2,\n \"1000x1050\": 2,\n \"1000x1250\": 2,\n \"2000x750\": 2,\n \"2000x950\": 2,\n \"2000x1050\": 2,\n \"2000x1250\": 2,\n \"3000x750\": 2,\n \"3000x950\": 2,\n \"3000x1050\": 2,\n \"3000x1250\": 2,\n \"4000x750\": 2,\n \"4000x950\": 2,\n \"4000x1050\": 2,\n \"4000x1250\": 2,\n \"5000x750\": 2,\n \"5000x950\": 2,\n \"5000x1050\": 2,\n \"5000x1250\": 2,\n },\n \"1000x2200\": {\n \"1000x750\": 2,\n \"1000x950\": 2,\n \"1000x1050\": 2,\n \"1000x1250\": 2,\n \"2000x750\": 2,\n \"2000x950\": 2,\n \"2000x1050\": 2,\n \"2000x1250\": 2,\n \"3000x750\": 2,\n \"3000x950\": 2,\n \"3000x1050\": 2,\n \"3000x1250\": 2,\n \"4000x750\": 2,\n \"4000x950\": 2,\n \"4000x1050\": 2,\n \"4000x1250\": 2,\n \"5000x750\": 2,\n \"5000x950\": 2,\n \"5000x1050\": 2,\n \"5000x1250\": 2,\n },\n \"1500x1000\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 0,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 0,\n \"2000x1250\": 0,\n \"3000x750\": 0,\n \"3000x950\": 0,\n \"3000x1050\": 0,\n \"3000x1250\": 0,\n \"4000x750\": 0,\n \"4000x950\": 0,\n \"4000x1050\": 0,\n \"4000x1250\": 0,\n \"5000x750\": 0,\n \"5000x950\": 0,\n \"5000x1050\": 0,\n \"5000x1250\": 0,\n },\n \"1500x1500\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 0,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 0,\n \"2000x1250\": 0,\n \"3000x750\": 0,\n \"3000x950\": 0,\n \"3000x1050\": 0,\n \"3000x1250\": 0,\n \"4000x750\": 0,\n \"4000x950\": 0,\n \"4000x1050\": 0,\n \"4000x1250\": 0,\n \"5000x750\": 0,\n \"5000x950\": 0,\n \"5000x1050\": 0,\n \"5000x1250\": 0,\n },\n \"1500x2000\": {\n \"1000x750\": 2,\n \"1000x950\": 2,\n \"1000x1050\": 2,\n \"1000x1250\": 2,\n \"2000x750\": 2,\n \"2000x950\": 2,\n \"2000x1050\": 2,\n \"2000x1250\": 2,\n \"3000x750\": 2,\n \"3000x950\": 2,\n \"3000x1050\": 2,\n \"3000x1250\": 2,\n \"4000x750\": 2,\n \"4000x950\": 2,\n \"4000x1050\": 2,\n \"4000x1250\": 2,\n \"5000x750\": 2,\n \"5000x950\": 2,\n \"5000x1050\": 2,\n \"5000x1250\": 2,\n },\n \"1500x2200\": {\n \"1000x750\": 2,\n \"1000x950\": 2,\n \"1000x1050\": 2,\n \"1000x1250\": 2,\n \"2000x750\": 2,\n \"2000x950\": 2,\n \"2000x1050\": 2,\n \"2000x1250\": 2,\n \"3000x750\": 2,\n \"3000x950\": 2,\n \"3000x1050\": 2,\n \"3000x1250\": 2,\n \"4000x750\": 2,\n \"4000x950\": 2,\n \"4000x1050\": 2,\n \"4000x1250\": 2,\n \"5000x750\": 2,\n \"5000x950\": 2,\n \"5000x1050\": 2,\n \"5000x1250\": 2,\n },\n \"2000x1000\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 0,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 0,\n \"2000x1250\": 0,\n \"3000x750\": 0,\n \"3000x950\": 0,\n \"3000x1050\": 0,\n \"3000x1250\": 0,\n \"4000x750\": 0,\n \"4000x950\": 0,\n \"4000x1050\": 0,\n \"4000x1250\": 0,\n \"5000x750\": 0,\n \"5000x950\": 0,\n \"5000x1050\": 0,\n \"5000x1250\": 0,\n },\n \"2000x1500\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 0,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 0,\n \"2000x1250\": 0,\n \"3000x750\": 0,\n \"3000x950\": 0,\n \"3000x1050\": 0,\n \"3000x1250\": 0,\n \"4000x750\": 0,\n \"4000x950\": 0,\n \"4000x1050\": 0,\n \"4000x1250\": 0,\n \"5000x750\": 0,\n \"5000x950\": 0,\n \"5000x1050\": 0,\n \"5000x1250\": 0,\n },\n \"2000x2000\": {\n \"1000x750\": 2,\n \"1000x950\": 2,\n \"1000x1050\": 2,\n \"1000x1250\": 2,\n \"2000x750\": 2,\n \"2000x950\": 2,\n \"2000x1050\": 2,\n \"2000x1250\": 2,\n \"3000x750\": 2,\n \"3000x950\": 2,\n \"3000x1050\": 2,\n \"3000x1250\": 2,\n \"4000x750\": 2,\n \"4000x950\": 2,\n \"4000x1050\": 2,\n \"4000x1250\": 2,\n \"5000x750\": 2,\n \"5000x950\": 2,\n \"5000x1050\": 2,\n \"5000x1250\": 2,\n },\n \"2000x2200\": {\n \"1000x750\": 2,\n \"1000x950\": 2,\n \"1000x1050\": 2,\n \"1000x1250\": 2,\n \"2000x750\": 2,\n \"2000x950\": 2,\n \"2000x1050\": 2,\n \"2000x1250\": 2,\n \"3000x750\": 2,\n \"3000x950\": 2,\n \"3000x1050\": 2,\n \"3000x1250\": 2,\n \"4000x750\": 2,\n \"4000x950\": 2,\n \"4000x1050\": 2,\n \"4000x1250\": 2,\n \"5000x750\": 2,\n \"5000x950\": 2,\n \"5000x1050\": 2,\n \"5000x1250\": 2,\n },\n \"2300x1000\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 0,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 0,\n \"2000x1250\": 0,\n \"3000x750\": 0,\n \"3000x950\": 0,\n \"3000x1050\": 0,\n \"3000x1250\": 0,\n \"4000x750\": 0,\n \"4000x950\": 0,\n \"4000x1050\": 0,\n \"4000x1250\": 0,\n \"5000x750\": 0,\n \"5000x950\": 0,\n \"5000x1050\": 0,\n \"5000x1250\": 0,\n },\n \"2300x1500\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 0,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 0,\n \"2000x1250\": 0,\n \"3000x750\": 0,\n \"3000x950\": 0,\n \"3000x1050\": 0,\n \"3000x1250\": 0,\n \"4000x750\": 0,\n \"4000x950\": 0,\n \"4000x1050\": 0,\n \"4000x1250\": 0,\n \"5000x750\": 0,\n \"5000x950\": 0,\n \"5000x1050\": 0,\n \"5000x1250\": 0,\n },\n \"2300x2000\": {\n \"1000x750\": 2,\n \"1000x950\": 2,\n \"1000x1050\": 2,\n \"1000x1250\": 2,\n \"2000x750\": 2,\n \"2000x950\": 2,\n \"2000x1050\": 2,\n \"2000x1250\": 2,\n \"3000x750\": 2,\n \"3000x950\": 2,\n \"3000x1050\": 2,\n \"3000x1250\": 2,\n \"4000x750\": 2,\n \"4000x950\": 2,\n \"4000x1050\": 2,\n \"4000x1250\": 2,\n \"5000x750\": 2,\n \"5000x950\": 2,\n \"5000x1050\": 2,\n \"5000x1250\": 2,\n },\n};\n","export * from \"./combinationSign\";\n","import { Material, MaterialType } from \"API\";\n\nexport const getMaterialName = (\n materials: Material[],\n materialId: string | null | undefined\n): string => {\n if (!materialId) return \"----\";\n const material = materials.filter((m) => m.id === materialId)[0];\n if (!material) return \"NOT FOUND\";\n return material.name;\n};\n\n// materialとmaterialTypeを利用して、materialのdropdownのitemsを作成する\nexport const getMaterialDropdownItems = (\n materials: Material[],\n materialTypes: MaterialType[]\n): { value: string; label: string }[] => {\n if (materialTypes.length === 0) return [];\n if (materials.length === 0) return [];\n const sorted: Map = groupAndSortMaterial(\n materials,\n materialTypes\n );\n\n // ソートしたものを平坦化する、materialTypeNameも追加する\n const materialsWithPrefix = Array.from(sorted.entries()).reduce(\n (acc, [key, value]) => {\n const materialType = materialTypes.filter((m) => m.id === key)[0];\n acc.push({\n value: \"INVALID_ID\",\n label: `== 梱包分類: ${materialType?.name} ==`,\n });\n value.forEach((m) => {\n acc.push({ value: m.id, label: m.name });\n });\n return acc;\n },\n [] as { value: string; label: string }[]\n );\n return materialsWithPrefix;\n};\n\n// withが小さい順(widthが一緒ならheightが小さい順)にする\n// with/heightがnullの場合は名前順\nexport const sortMaterialsBySize = (materials: Material[]): Material[] => {\n return materials.sort((a, b) => {\n // widthが小さい順(widthが一緒だったらheightが小さい順)\n const aWith = a.width ?? -1;\n const bWith = b.width ?? -1;\n if (aWith !== bWith) return aWith < bWith ? -1 : 1;\n const aHeight = a.height ?? -1;\n const bHeight = b.height ?? -1;\n if (aHeight !== bHeight) return aHeight < bHeight ? -1 : 1;\n // 名前順\n if (a.name < b.name) return -1;\n if (a.name > b.name) return 1;\n return 0;\n });\n};\n\n// materialをmaterialTypesでgroupingし、sizeでソートする\nexport const groupAndSortMaterial = (\n materials: Material[],\n materialTypes: MaterialType[]\n): Map => {\n // materialTypeIdでgroup化\n const grouped: Map = materials.reduce((acc, cur) => {\n const key = cur.materialTypeId;\n const existing = acc.get(key) || [];\n existing.push(cur);\n acc.set(key, existing);\n return acc;\n }, new Map());\n\n // それぞれのgroup内でmaterialをnameでsort\n // withが小さい順(widthが一緒ならheightが小さい順)にする\n // 保存はmapのまま\n const sorted: Map = Array.from(grouped.entries()).reduce(\n (acc, [key, value]) => {\n const sorted = sortMaterialsBySize(value);\n acc.set(key, sorted);\n return acc;\n },\n new Map()\n );\n\n return sorted;\n};\n\n// refBhhEdge(参考用bhh(木端方向))とrefBhhFace(参考用bhh(平方向))の計算をする\n// refBhhFace = 呼び寸巾(widthNominal)x呼び寸高さ(heightNominal)^2\n// refBhhEdge = 呼び寸高さ(heightNominal)x呼び寸巾(widthNominal)^2\n// 返り値は[refBhhFace, refBhhEdge]\nexport const calcRefBhh = (\n widthNominal?: number | null,\n heightNominal?: number | null\n): [number, number] => {\n return [\n (widthNominal ?? 0) * (heightNominal ?? 0) ** 2,\n (heightNominal ?? 0) * (widthNominal ?? 0) ** 2,\n ];\n};\n\nconst _getElement = (elements: any, slug: string) => {\n if (!elements) return 0;\n return (\n (\n Object.values(elements).filter(\n (el: any) => el?.slug && el?.slug?.includes(`.${slug}`)\n )[0] as any\n ).value || 0\n );\n};\n\nconst _getMaterialAmount = (els: any, materialUnit: string) => {\n let amount = 0;\n\n try {\n // materialUnitに対応するslugがelsにない場合はcatchのquantityを取得することになる\n switch (materialUnit) {\n case \"length\":\n amount = _getElement(els, \"length\");\n break;\n case \"width\":\n amount = _getElement(els, \"width\");\n break;\n case \"height\":\n amount = _getElement(els, \"height\");\n break;\n case \"m2\":\n amount = _getElement(els, \"m2\");\n break;\n case \"m3\":\n amount = _getElement(els, \"m3\");\n break;\n default:\n amount = _getElement(els, \"quantity\");\n break;\n }\n } catch (e) {\n amount = _getElement(els, \"quantity\");\n }\n return amount;\n};\n\nexport const estimateComponentCost = (\n components: any,\n elements: any,\n materials: any\n) =>\n Object.entries(elements).reduce((result: any, [id, els]: [string, any]) => {\n const materialId = _getElement(els, \"materialId\");\n const material = materials.filter((m: any) => m.id === materialId)[0];\n const component = components.filter((c: any) => c.id === id)[0];\n\n if (!material) {\n // console.log(\"material not found\", component);\n result.push({\n ...els,\n name: component.name,\n materialName: \"-\",\n materialUnit: \"-\",\n defaultUnitCost: 0,\n lossRate: 0,\n amount: 0,\n cost: 0,\n });\n return result;\n }\n\n const { name, lossRate, defaultUnitCost } = material;\n\n const amount = _getMaterialAmount(els, material.unit);\n\n const cost = amount * (1 + lossRate) * defaultUnitCost;\n\n // console.log(\"material found\", { name, defaultUnitCost, lossRate, amount });\n\n result.push({\n ...els,\n name: component.name,\n materialName: name,\n materialUnit: material.unit,\n defaultUnitCost,\n lossRate,\n amount,\n cost,\n });\n\n return result;\n }, []);\n\nexport const estimateCost = (\n elements: any,\n materials: any,\n materialTypeName: string = \"\"\n) =>\n Object.values(elements).reduce((result: any, els) => {\n const materialId = _getElement(els, \"materialId\");\n const material = materials.filter((m: any) => m.id === materialId)[0];\n\n if (!material) return result;\n\n // materialのmaterialTypeが設定されてなかったらスキップ\n if (!material.materialType) return result;\n\n // materialTypeNameが指定されていて(空文字以外)、materialTypeが一致しない場合はスキップ\n if (\n materialTypeName !== \"\" &&\n material?.materialType?.name !== materialTypeName\n ) {\n return result;\n }\n const { lossRate, defaultUnitCost } = material;\n\n const amount = _getMaterialAmount(els, material.unit);\n\n const cost = defaultUnitCost * (amount * (1 + lossRate));\n\n return result + Math.round(cost);\n }, 0);\n","import shortUUID, { uuid } from \"short-uuid\";\nimport { API } from \"aws-amplify\";\n\nimport { createEmptyElements } from \"./bom/elements\";\n\nimport {\n createBaseArea,\n createBaseComponent,\n createBaseDecorationComponent,\n deleteBaseDecorationComponent,\n deleteBaseArea as deleteBaseAreaG,\n deleteBaseComponent as deleteBaseComponentG,\n} from \"graphql/mutations\";\nimport { BaseComponent, PackageType } from \"API\";\nimport { baseComponentsByBaseAreaId, getPackageType } from \"graphql/queries\";\n\n// 指定した梱包仕様にComponent(部材)を追加する\nexport async function addBaseComponent(\n target: \"component\" | \"interior\" | \"exterior\",\n order: number,\n areaId?: string,\n packageTypeId?: string\n) {\n const slug = shortUUID().generate().toString();\n const componentId = uuid();\n if (target === \"component\") {\n if (!areaId) return;\n const input = {\n id: componentId,\n baseAreaId: areaId,\n name: \"新部材\",\n slug,\n order,\n elements: createEmptyElements(\"component\", slug),\n };\n await API.graphql({\n query: createBaseComponent,\n variables: { input: input },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n });\n return;\n }\n if (target === \"exterior\") {\n if (!packageTypeId) return;\n const input = {\n id: componentId,\n packageTypeId,\n name: \"新外装\",\n type: \"EXTERIOR\",\n slug,\n order,\n elements: createEmptyElements(\"decoration\", slug),\n };\n await API.graphql({\n query: createBaseDecorationComponent,\n variables: { input: input },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n });\n return;\n }\n if (target === \"interior\") {\n if (!packageTypeId) return;\n const input = {\n id: componentId,\n packageTypeId,\n name: \"新内装\",\n type: \"INTERIOR\",\n slug,\n order,\n elements: createEmptyElements(\"decoration\", slug),\n };\n await API.graphql({\n query: createBaseDecorationComponent,\n variables: { input: input },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n });\n return;\n }\n}\n\nexport async function deleteBaseComponent(\n target: \"component\" | \"decoration\",\n id: string\n) {\n if (target === \"component\") {\n await API.graphql({\n query: deleteBaseComponentG,\n variables: {\n input: {\n id,\n },\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n });\n return;\n } else {\n await API.graphql({\n query: deleteBaseDecorationComponent,\n variables: {\n input: {\n id,\n },\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n });\n return;\n }\n}\n\n// 指定したareaId以下のcomponentを取得する\nexport async function getBaseComponentsByAreaId(\n areaId: string\n): Promise {\n const components = (\n await API.graphql({\n query: baseComponentsByBaseAreaId,\n variables: { baseAreaId: areaId },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n })\n ).data.baseComponentsByBaseAreaId.items;\n return components;\n}\n\nexport async function addBaseArea(\n packageTypeId: string,\n order: number\n): Promise {\n const input = {\n id: uuid(),\n packageTypeId,\n name: \"新区分\",\n order,\n areaType: \"COMPONENT\",\n };\n const areaId = (\n await API.graphql({\n query: createBaseArea,\n variables: { input: input },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n })\n ).data.createBaseArea.id;\n return areaId;\n}\n\nexport async function deleteBaseArea(id: string) {\n await API.graphql({\n query: deleteBaseAreaG,\n variables: {\n input: {\n id: id,\n },\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n });\n}\n\nexport function getAreaComponents(pkg: any) {\n if (pkg && pkg.areas) {\n return pkg.areas.items\n .sort((a: any, b: any) => a.order - b.order)\n .reduce((r: any, c: any) => {\n r[c.id] = c.components?.items?.sort(\n (a: any, b: any) => a.order - b.order\n );\n return r;\n }, {});\n }\n return {};\n}\n\nexport function getInteriors(pkg: any) {\n if (pkg && pkg.decorations) {\n return pkg.decorations.items?.filter((d: any) => d.type === \"INTERIOR\");\n }\n return [];\n}\n\nexport function getExteriors(pkg: any) {\n if (pkg && pkg.decorations) {\n return pkg.decorations.items?.filter((d: any) => d.type === \"EXTERIOR\");\n }\n return [];\n}\n\nexport const getPackageById = async (\n packageId: string\n): Promise => {\n const p = (\n await API.graphql({\n query: getPackageType,\n variables: { id: packageId },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n })\n ).data.getPackageType;\n return p;\n};\n","import { API } from \"aws-amplify\";\n\nimport { getPackageBom } from \"graphql/queries\";\n\nexport const getPackageBomByID = async (\n packageTypeId: string\n): Promise => {\n const p = (\n await API.graphql({\n query: getPackageBom,\n variables: { input: { packageTypeId } },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n })\n ).data.getPackageBom;\n return p;\n};\n","import CheckCircleIcon from \"@mui/icons-material/CheckCircle\";\nimport CircularProgress, {\n CircularProgressProps,\n} from \"@mui/material/CircularProgress\";\nimport Typography from \"@mui/material/Typography\";\nimport Box from \"@mui/material/Box\";\nimport { API } from \"aws-amplify\";\nimport shortUUID, { uuid } from \"short-uuid\";\n\nimport { Bom } from \"./bom/update\";\nimport { createEmptyElements } from \"./bom/elements\";\nimport { CustomError } from \"./error\";\n\nimport type { Product, Case, CaseInput, Component, QuoteProduct } from \"API\";\nimport { getProductsByProjectId as getProductsByProjectIdG } from \"graphql/product\";\nimport {\n createArea,\n createComponent,\n createDecorationComponent,\n deleteArea as deleteAreaG,\n deleteDecorationComponent,\n deleteComponent as deleteComponentG,\n} from \"graphql/mutations\";\nimport { componentsByAreaId, getProduct } from \"graphql/queries\";\nimport * as mutations from \"graphql/mutations\";\nimport * as queries from \"graphql/queries\";\nimport { GraphQLInput } from \"hooks/datalist\";\n\nfunction CircularProgressWithLabel(\n props: CircularProgressProps & { value: number; label: number }\n) {\n return (\n \n \n \n {`${Math.round(props.label)}%`}\n \n \n );\n}\n\nexport const getTotalCases = (products: (Product | null)[]) => {\n let totalCases = 0;\n if (!products || products.length === 0) return 0;\n products.forEach((p) => {\n if (!p || !p.cases) return;\n totalCases += p.cases.length;\n });\n return totalCases;\n};\n\nexport const getProductCompletionRate = (\n product: QuoteProduct | Product | null\n) => {\n if (!product || !product.cases || product.cases.length === 0) return 0;\n let packedCases = 0;\n product.cases.forEach((c: Case | null) => {\n if (!c || !c.phaseId) return;\n if (c.phaseId !== \"complete\") return;\n packedCases += 1;\n });\n return packedCases / product.cases.length;\n};\n\nexport const getProductsCompletionRate = (\n products: (Product | null)[] | undefined\n) => {\n if (!products || products.length === 0) return 0;\n const totalCases = getTotalCases(products);\n return (\n products.reduce((r: number, p: Product | null) => {\n if (!p || !p.cases || p.cases.length === 0) return r;\n r += p.cases.filter((c) => c?.isPacked).length;\n return r;\n }, 0) / totalCases\n );\n};\n\nexport const ProgressIcon = ({\n progress,\n ...props\n}: {\n progress: number;\n [prop: string]: any;\n}) => {\n if (progress === 0)\n return (\n \n );\n\n if (progress === 100)\n return (\n
\n \n \n
\n );\n\n return (\n \n );\n};\n\n//\nexport const getUpdatedCaseInputByProductElements = (\n product: Product | QuoteProduct\n): CaseInput[] | null => {\n if (product.cases === undefined || product.cases === null) return [];\n if (product.elements === undefined || product.elements === null) return null;\n const outerLengthElem = product.elements.find(\n (e) => e !== null && e.slug === \"outerLength\"\n );\n const outerWidthElem = product.elements.find(\n (e) => e !== null && e.slug === \"outerWidth\"\n );\n const outerHeightElem = product.elements.find(\n (e) => e !== null && e.slug === \"outerHeight\"\n );\n const outerLength = parseInt(outerLengthElem?.value || \"\", 10) || 0;\n const outerWidth = parseInt(outerWidthElem?.value || \"\", 10) || 0;\n const outerHeight = parseInt(outerHeightElem?.value || \"\", 10) || 0;\n const newCs: CaseInput[] = product.cases.map((c) => ({\n ...c,\n order: c?.order as number,\n outerLength: outerLength,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n // m3は小数点3桁まで\n m3: calcM3(outerLength, outerWidth, outerHeight),\n }));\n return newCs;\n};\n\nexport const extractElements = (elements: any[]) => {\n if (elements == null) return {};\n const extractedElements = elements.reduce(\n (result: { [key: string]: any }, e: { slug: string }) => {\n let slug = e.slug;\n if (slug.includes(\".\")) {\n slug = slug.split(\".\")[1];\n }\n result[slug] = e;\n return result;\n },\n {}\n );\n if (!extractedElements[\"speciesId\"]) {\n extractedElements[\"speciesId\"] = {\n cutting: null,\n description: null,\n expr: null,\n overwriteValue: null,\n value: null,\n type: \"string\",\n name: \"speciesId\",\n slug: `${elements[0].slug.split(\".\")[0]}.speciesId`,\n };\n }\n return extractedElements;\n};\n\nexport function createCases(product: Product, bom?: Bom | undefined) {\n // PAX-698 暫定措置:外寸の取得元をproductからbomに変更、getCasesからcreateCasesに関数変更\n // 指示書一覧画面からは product、指示書編集画面からはbomで外寸を取得します。\n let outerLength = 0;\n let outerWidth = 0;\n let outerHeight = 0;\n if (bom) {\n outerLength = parseFloat(bom?.product?.elements.outerLength.value || \"0\");\n outerWidth = parseFloat(bom?.product?.elements.outerWidth.value || \"0\");\n outerHeight = parseFloat(bom?.product?.elements.outerHeight.value || \"0\");\n } else {\n const elements = extractElements(product.elements || []);\n outerLength = parseFloat(elements.outerLength?.value || \"0\");\n outerWidth = parseFloat(elements.outerWidth?.value || \"0\");\n outerHeight = parseFloat(elements.outerHeight?.value || \"0\");\n }\n const quantity = product.quantity ? product.quantity.toString() : \"0\"; // デフォルト値を '0' に設定\n const cases = Array.from(Array(parseInt(quantity, 10)).keys()).map((o) => ({\n order: o + 1,\n name: `${product.productNumber ?? product.name}-${o + 1}`,\n packPhases: product.packPhases || [],\n phaseId: null,\n isPacked: false,\n netWeight: (product?.grossWeight || 0) - (product?.tareWeight || 0),\n grossWeight: 0,\n outerLength: outerLength,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n m3: product?.m3,\n thumbnail: null,\n managementNumber: null,\n isBilled: false,\n invoiceLineId: null,\n }));\n return cases;\n}\n\nexport const getUpdatedCaseInputByProductNumber = (\n products: Product[],\n input: GraphQLInput\n) => {\n const product = products.find((p) => p.id === input.id);\n const newCs = product?.cases?.map((c, index) => ({\n ...c,\n name: input.productNumber + \"-\" + (index + 1),\n }));\n return newCs;\n};\n\nexport const calcM3 = (\n outerLength: number,\n outerWidth: number,\n outerHeight: number\n) => {\n const CM_TO_M3 = 1000000;\n return (\n Math.round(((outerLength * outerWidth * outerHeight) / CM_TO_M3) * 1000) /\n 1000\n );\n};\n\n// ProductsProviderで同じようなことをしているが、これはある案件内で別の案件の梱包を確認したい場合に使う\nexport const getProductsByProjectId = async (\n projectId: string\n): Promise => {\n const p = (\n await API.graphql({\n query: getProductsByProjectIdG,\n variables: { id: projectId },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n })\n ).data.productsByProjectId.items;\n return p;\n};\n\nexport const getProductById = async (productId: string): Promise => {\n const p = (\n await API.graphql({\n query: getProduct,\n variables: { id: productId },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n })\n ).data.getProduct;\n return p;\n};\n\nexport const updateProduct = async (input: GraphQLInput) => {\n const product = (\n await API.graphql({\n query: mutations.updateProduct,\n variables: {\n input,\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n })\n ).data.updateProduct;\n return product;\n};\n\n// 指定した梱包にComponent(部材)を追加する\nexport async function addComponent(\n target: \"component\" | \"interior\" | \"exterior\",\n order: number,\n areaId?: string,\n productId?: string\n) {\n const slug = shortUUID().generate().toString();\n const componentId = uuid();\n if (target === \"component\") {\n if (!areaId) return;\n const input = {\n id: componentId,\n areaId,\n name: \"新部材\",\n slug,\n order,\n elements: createEmptyElements(\"component\", slug),\n };\n await API.graphql({\n query: createComponent,\n variables: { input: input },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n });\n return;\n }\n if (target === \"exterior\") {\n if (!productId) return;\n const input = {\n id: componentId,\n productId,\n name: \"新外装\",\n type: \"EXTERIOR\",\n slug,\n order,\n elements: createEmptyElements(\"decoration\", slug),\n };\n await API.graphql({\n query: createDecorationComponent,\n variables: { input: input },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n });\n return;\n }\n if (target === \"interior\") {\n if (!productId) return;\n const input = {\n id: componentId,\n productId,\n name: \"新内装\",\n type: \"INTERIOR\",\n slug,\n order,\n elements: createEmptyElements(\"decoration\", slug),\n };\n await API.graphql({\n query: createDecorationComponent,\n variables: { input: input },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n });\n return;\n }\n}\n\nexport async function deleteComponent(\n target: \"component\" | \"decoration\",\n id: string\n) {\n if (target === \"component\") {\n await API.graphql({\n query: deleteComponentG,\n variables: {\n input: {\n id,\n },\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n });\n return;\n } else {\n await API.graphql({\n query: deleteDecorationComponent,\n variables: {\n input: {\n id,\n },\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n });\n return;\n }\n}\n\n// 指定したareaId以下のcomponentを取得する\nexport async function getComponentsByAreaId(\n areaId: string\n): Promise {\n const components = (\n await API.graphql({\n query: componentsByAreaId,\n variables: { areaId: areaId },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n })\n ).data.componentsByAreaId.items;\n return components;\n}\n\nexport async function addArea(\n productId: string,\n order: number\n): Promise {\n const input = {\n id: uuid(),\n productId,\n name: \"新区分\",\n order,\n areaType: \"COMPONENT\",\n };\n const areaId = (\n await API.graphql({\n query: createArea,\n variables: { input: input },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n })\n ).data.createArea.id;\n return areaId;\n}\n\nexport async function deleteArea(id: string) {\n await API.graphql({\n query: deleteAreaG,\n variables: {\n input: {\n id,\n },\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n });\n}\n\n// 数字に,を入れていく(3桁ごと)\nexport function addCommaToNum(target: string): string | null {\n try {\n const num = parseInt(target, 10);\n if (isNaN(num)) return null;\n return num.toLocaleString(); // 3桁ごとにカンマ入れる\n } catch (e) {\n return null;\n }\n}\n\nexport const updateCaseWithOptimisticLock = async (input: GraphQLInput) => {\n try {\n const res = await API.graphql({\n query: mutations.updateCaseWithOptimisticLock,\n variables: {\n input,\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n });\n if (res.errors) {\n throw new Error(res.errors);\n }\n\n return res.data.updateCaseWithOptimisticLock;\n } catch (err) {\n throw new CustomError(err, \"update\");\n }\n};\n\nexport const checkCaseVersion = async (input: GraphQLInput) => {\n try {\n const res = await API.graphql({\n query: queries.checkCaseVersion,\n variables: {\n input,\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n });\n if (res.errors) {\n throw new Error(res.errors);\n }\n\n return res.data.checkCaseVersion;\n } catch (err) {\n throw new CustomError(err, \"get\");\n }\n};\n","export type ProductSummariesFilterCache = {\n includeIncompleteProduct: boolean;\n includeBilledProduct: boolean;\n // バックエンド的にはstring[]でもOKだが、現状フロント側では1つしかスケジュールを選択していないので[string]としている\n scheduleIds: [string] | undefined;\n};\n\nexport interface CaseInput {\n order: number;\n [key: string]: any;\n}\n\nexport type ProductSummariesFilter = Partial;\n\nexport const defaultProductSummariesFilter: ProductSummariesFilterCache = {\n includeIncompleteProduct: false,\n includeBilledProduct: true,\n scheduleIds: undefined,\n};\n\nexport interface ProductSummary {\n cn?: number; // 現在のProductSummaryの順序での1オリジンの番号、DBに保管されることはなく利用する場合(reportやProductSummaryView)にその場で設定する\n productId: string;\n productName: string;\n pricingId: string;\n packageTypeId: string;\n name: string;\n order: number;\n productOrder: number;\n caseOrder: number;\n outerLength: number;\n outerWidth: number;\n outerHeight: number;\n grossWeight: number;\n m3: number;\n phaseName: string;\n scheduleName: string;\n shippingDate: string;\n material: string;\n destination: string;\n managementNumber: string;\n isBilled: boolean;\n invoiceLineId: string;\n readyToPack: boolean;\n vanplanCreated: boolean;\n}\n\nexport const convertProductSummariesFilterToCache = (\n filter: ProductSummariesFilter\n): ProductSummariesFilterCache => {\n if (isProductSummariesFilterCache(filter)) {\n return filter;\n }\n\n // プロパティがない場合はデフォルトの値を使う\n const result: ProductSummariesFilterCache = {\n ...defaultProductSummariesFilter,\n };\n\n // プロパティがある場合のみその値で上書きする => 結果的にプロパティがないものはデフォルトの値が使われる\n (Object.keys(filter) as (keyof ProductSummariesFilterCache)[]).forEach(\n (key) => {\n if (filter[key] !== undefined) {\n result[key] = filter[key] as any;\n }\n }\n );\n\n return result;\n};\n\nexport const isProductSummariesFilterCache = (\n filter: ProductSummariesFilter\n): filter is ProductSummariesFilterCache => {\n return (\n typeof filter.includeIncompleteProduct === \"boolean\" &&\n typeof filter.includeBilledProduct === \"boolean\" &&\n // {scheduleIds: undefined}と{}(プロパティが存在しない)を区別する\n \"scheduleIds\" in filter &&\n (filter.scheduleIds === undefined || Array.isArray(filter.scheduleIds))\n );\n};\n\ninterface SortableSummary {\n order?: number;\n productOrder: number;\n caseOrder: number;\n}\n\nexport const sortSummariesBySummaryOrder = (\n summaries: T[]\n): T[] => {\n // 1. order(default: 9999)で昇順に並べる\n // 2. (order が同じなら)productOrderで昇順に並べる\n // 3. (productOrder が同じなら)caseOrderで昇順に並べる\n // 4. (基本ないはずだが、caseOrder が同じなら)そのままの並びとする\n summaries.sort((a, b) => {\n const orderA = a.order !== undefined ? a.order : 9999;\n const orderB = b.order !== undefined ? b.order : 9999;\n\n if (orderA !== orderB) {\n return orderA - orderB;\n }\n\n if (a.productOrder !== b.productOrder) {\n return a.productOrder - b.productOrder;\n }\n\n if (a.caseOrder !== b.caseOrder) {\n return a.caseOrder - b.caseOrder;\n }\n\n return 0;\n });\n return summaries;\n};\n\n/**\n * ProductSummaryの配列からproductIdとcaseOrderをキーとしてorderを取得する\n * このmappingは並び替え機能が一々APIを叩かなくてもできるようにするために使われる(メモリ上の更新)\n * @param data ProductSummaryの配列\n * @returns { [key: string]: number } productIdとcaseOrderをキーとしてorderを取得するmapping\n */\nexport const makeSummaryOrderMapping = (\n data: ProductSummary[]\n): { [key: string]: number } => {\n if (!data?.length || data.length === 0) {\n return {};\n }\n const mapping: { [key: string]: number } = {};\n data.forEach((summary) => {\n mapping[`${summary.productId}|${summary.caseOrder}`] = summary.order;\n });\n return mapping;\n};\n\n/**\n * mappingをproductIdとcaseOrderに分割しCaseのsummaryOrderを更新するためのinputにする\n * @param mappings productIdとcaseOrderをキーとしたorderのmapping\n * @returns summaryOrderを更新するためのinput, productIdごとにまとめられている\n */\nexport const summaryOrderMappingToCaseInput = (mappings: {\n [key: string]: number;\n}): { productId: string; caseInputs: CaseInput[] }[] => {\n const caseInputs: { productId: string; caseInputs: CaseInput[] }[] = [];\n Object.keys(mappings).forEach((key) => {\n const [productId, caseOrder] = key.split(\"|\");\n const order = mappings[key];\n // ProductSummaryのOrderはCaseではsummaryOrderとして扱われる\n const caseInput: CaseInput = {\n order: parseInt(caseOrder, 10),\n summaryOrder: order,\n };\n const target = caseInputs.find((c) => c.productId === productId);\n if (target) {\n target.caseInputs.push(caseInput);\n } else {\n caseInputs.push({\n productId,\n caseInputs: [caseInput],\n });\n }\n });\n return caseInputs;\n};\n\n/**\n * ProductSummaryのIDを作成する(`${productId}|${caseOrder}`)\n * @param p 対象のProductSummary\n * @returns ID\n */\nexport const makeProductSummaryId = (\n p: ProductSummary | { [key: string]: number | string }\n) => {\n return `${p.productId}|${p.caseOrder}`;\n};\n\n/**\n * productSummaryのIDからproductIdとcaseOrderを取得する\n * @param id productSummaryのID\n * @returns productIdとcaseOrder\n */\nexport const splitProductSummaryId = (\n id: string\n): { productId: string; caseOrder: number } => {\n const [productId, caseOrder] = id.split(\"|\");\n return { productId, caseOrder: parseInt(caseOrder, 10) };\n};\n","import { API } from \"aws-amplify\";\n\nimport { isProductCaseKey } from \"./image\";\nimport { CustomError } from \"./error\";\n\nimport { GraphQLInput } from \"hooks/data\";\nimport { Project } from \"API\";\nimport * as mutations from \"graphql/mutations\";\n\nexport function getProjectTypeName(\n type: \"PACK\" | \"OTHER\" | string | null | undefined\n) {\n switch (type) {\n case \"PACK\":\n return \"梱包\";\n case \"OTHER\":\n return \"その他\";\n default:\n return \"梱包\";\n }\n}\n\nexport enum RedirectTypes {\n schedules = \"schedules\",\n}\n\n/**\n * 案件の公開している画像に対象の梱包のものが含まれるか確認する\n * @param project 案件\n * @param productId 梱包ID\n * @returns 梱包の画像が含まれる場合はtrue\n */\nexport function isSharedProduct(project: Project, productId: string) {\n return (\n project &&\n project.externalSharedImageKeys &&\n project.externalSharedImageKeys.some(\n (key) => key && isProductCaseKey(key, productId)\n )\n );\n}\n\nexport const updateProjectWithOptimisticLock = async (input: GraphQLInput) => {\n try {\n const res = await API.graphql({\n query: mutations.updateProjectWithOptimisticLock,\n variables: {\n input,\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\",\n });\n if (res.errors) {\n throw new Error(res.errors);\n }\n\n return res.data.updateProjectWithOptimisticLock;\n } catch (err) {\n throw new CustomError(err, \"update\");\n }\n};\n","import { makeProductSummaryId, ProductSummary } from \"../productSummary\";\n\nimport {\n ContainerMaster,\n CreateGroupsContainerMastersInput,\n DeleteGroupsContainerMastersInput,\n Group,\n GroupsContainerMasters,\n UpdateGroupsContainerMastersInput,\n} from \"API\";\nimport { SelectableListRowType } from \"components/SelectableList\";\n\n// 回転方向用の定数\nexport const DEFAULT_ORIENTATION: { label: string; value: string } = {\n label: \"LW回転\",\n value: \"LW_ROTATE\",\n};\n\nexport const ORIENTATIONS: { label: string; value: string }[] = [\n DEFAULT_ORIENTATION,\n { label: \"長さ方向固定\", value: \"L_LOCK\" },\n { label: \"幅方向固定\", value: \"W_LOCK\" },\n { label: \"全面回転可\", value: \"ALL_ROTATE\" },\n];\n\n// バンプラン作成用のコンテナ情報、これを用いてバンプラン(LoadPlan)を作成する\nexport type ContainerInfo = {\n cn: number;\n productSummaryId: string;\n productSummaryName: string;\n order: number;\n productOrder: number;\n caseOrder: number;\n productName: string;\n managementNumber: string;\n pricingId: string;\n grossWeight: number;\n outerHeight: number;\n outerLength: number;\n outerWidth: number;\n notStackable: boolean;\n bottomOnly: boolean;\n maxStacking: number | null;\n orientation: string;\n casePriority: number | null;\n shipmentId: string | null;\n};\n\n/**\n * バンプラン作成用のコンテナ情報を作成する\n * 基本的にはproductSummariesから作成するが、以前の情報がある場合はそれを利用する\n * またnotStackable以降について以前の情報がない場合は、groupから取得する\n * @param productSummaries ProductSummaries\n * @param beforeInfoList 以前のコンテナ情報(Wizard遷移などで以前の情報がある場合がある)\n * @param group 所属する事業所\n * @returns 今回利用するコンテナ情報\n */\nexport const createContainerInfos = (\n productSummaries: ProductSummary[],\n beforeInfoList: ContainerInfo[],\n group: Group\n): ContainerInfo[] => {\n const containerInfo: ContainerInfo[] = productSummaries.map(\n (productSummary: ProductSummary, index: number) => {\n const before = beforeInfoList.find(\n (beforeInfo) =>\n beforeInfo.productSummaryId === makeProductSummaryId(productSummary)\n );\n // notStackable, bottomOnly, maxStacking, orientationについては以前の情報があればそれを利用する、なければgroupから取得する\n // その他の値はproductSummaryから取得する\n return {\n cn: productSummary.cn ?? index + 1,\n productSummaryId: makeProductSummaryId(productSummary),\n productSummaryName: productSummary.name,\n order: productSummary.order,\n productOrder: productSummary.productOrder,\n caseOrder: productSummary.caseOrder,\n productName: productSummary.productName,\n managementNumber: productSummary.managementNumber,\n pricingId: productSummary.pricingId,\n grossWeight: productSummary.grossWeight,\n outerHeight: productSummary.outerHeight,\n outerLength: productSummary.outerLength,\n outerWidth: productSummary.outerWidth,\n notStackable: before?.notStackable ?? group.notStackable ?? false,\n bottomOnly: before?.bottomOnly ?? group.bottomOnly ?? false,\n maxStacking: before?.maxStacking ?? group.maxStacking ?? null,\n orientation:\n before?.orientation ?? group.orientation ?? DEFAULT_ORIENTATION.value,\n casePriority: before?.casePriority ?? 1,\n shipmentId: before?.shipmentId ?? null,\n };\n }\n );\n return containerInfo;\n};\n\n/**\n * コンテナマスタと事業所の関連情報をコンテナマスタに変換する関数\n * @param groupsContainerMasters コンテナマスタと事業所の関連情報\n * @param activeOnly activeのもののみにする\n * @returns コンテナマスタ\n */\nexport const groupsContainerMastersToContainerMasters = (\n groupsContainerMasters: (GroupsContainerMasters | null)[],\n activeOnly = false\n): ContainerMaster[] => {\n return groupsContainerMasters\n .filter((containerMaster) => containerMaster?.containerMaster)\n .filter(\n (containerMaster) =>\n !activeOnly || containerMaster?.containerMaster?.active\n )\n .map((groupContainerMaster) => {\n const cm = groupContainerMaster?.containerMaster as ContainerMaster;\n return {\n ...cm,\n // 順番についてはgroup内での順番を利用する\n order: groupContainerMaster?.order ?? cm?.order ?? 999,\n };\n });\n};\n\n/**\n * コンテナマスタと事業所の関連情報をSelectableListで利用できる形式に変換する関数\n * @param groupsContainerMasters コンテナマスタと事業所の関連情報\n * @param activeOnly activeのもののみにする\n * @returns SelectableListで利用できるような形式に変換したコンテナマスタ\n */\nexport const groupsContainerMastersToSelectableListItems = (\n groupsContainerMasters: (GroupsContainerMasters | null)[],\n activeOnly = false\n): SelectableListRowType[] => {\n return groupsContainerMasters\n .filter((containerMaster) => containerMaster !== null)\n .filter(\n (containerMaster) =>\n !activeOnly || containerMaster?.containerMaster?.active\n )\n .map((containerMaster) => {\n return {\n id: containerMaster?.containerMaster?.id ?? \"\",\n name: containerMaster?.containerMaster?.name ?? \"\",\n order: containerMaster?.order ?? 999,\n };\n });\n};\n\n/**\n * コンテナマスタ情報の選択用の変換関数\n * @param containerMasters コンテナマスタ情報\n * @param activeOnly activeのもののみにする\n * @returns SelectableListで利用できるような形式に変換したコンテナマスタ\n */\nexport const containerMastersToSelectableListItems = (\n containerMasters: ContainerMaster[],\n activeOnly = false\n): SelectableListRowType[] => {\n return containerMasters\n .filter((c) => !activeOnly || c.active)\n .map((containerMaster) => {\n return {\n id: containerMaster?.id ?? \"\",\n name: containerMaster?.name ?? \"\",\n order: containerMaster?.order ?? 999,\n };\n });\n};\n\n/**\n * group.mainContainerMastersと現状の選択されたcontainerMastersを比較し削除、追加、更新の情報を返す\n * @param group group情報\n * @param selectedContainerMasters 選択されたcontainerMasters\n * @returns 削除、追加、更新の情報\n */\nexport const diffContainerMasters = (\n group: Group,\n selectedContainerMasters: SelectableListRowType[]\n): {\n deleted: DeleteGroupsContainerMastersInput[];\n added: CreateGroupsContainerMastersInput[];\n updated: UpdateGroupsContainerMastersInput[];\n} => {\n if (!group.mainContainerMasters)\n return { deleted: [], added: [], updated: [] };\n const currentContainerMasters = group.mainContainerMasters?.items ?? [];\n\n // mainContainerMastersにあって、選択済になかったら削除\n const deleted: DeleteGroupsContainerMastersInput[] = currentContainerMasters\n .filter((c) => !selectedContainerMasters.find((sc) => c && sc.id === c?.id))\n .map((c) => ({ id: c?.id ?? \"\" }));\n\n // 選択済にあって、mainContainerMastersになかったら追加\n const added: CreateGroupsContainerMastersInput[] = selectedContainerMasters\n .filter((sc) => !currentContainerMasters.find((c) => c && c?.id === sc.id))\n .map((sc) => ({\n containerMasterId: sc.id,\n groupId: group.id,\n order: sc.order,\n }));\n\n // containerMasterIdが一致しててorderが異なる場合は更新\n const updated: UpdateGroupsContainerMastersInput[] = selectedContainerMasters\n .filter((sc) =>\n currentContainerMasters.find(\n (c) => c?.id === sc.id && c?.order !== sc.order\n )\n )\n .map((sc) => {\n const c = currentContainerMasters.find((c) => c?.id === sc.id);\n return {\n id: c?.id ?? \"\",\n order: sc.order,\n };\n });\n return { deleted, added, updated };\n};\n","import { Container, Vanplan } from \"API\";\n\n// ラベルに利用するField用の定数\nexport const DEFAULT_LABEL_FIELD: { label: string; value: string } = {\n label: \"C/N\",\n value: \"cn\",\n};\n\nexport const LABEL_FIELDS: { label: string; value: string }[] = [\n DEFAULT_LABEL_FIELD,\n { label: \"指示書No\", value: \"productSummaryName\" },\n { label: \"品名\", value: \"productName\" },\n { label: \"管理No\", value: \"managementNumber\" },\n];\n\n/**\n * バンプラン以下のcontainerの完了率を取得する\n * @param vanplan 対象のバンプラン\n * @returns 完了率\n */\nexport const getVanplanCompletionRate = (vanplan: Vanplan | null) => {\n if (!vanplan || !vanplan.containers || vanplan.containers.items.length === 0)\n return 0;\n let shippedContainers = 0;\n vanplan.containers.items.forEach((c: Container | null) => {\n if (!c) return;\n if (!c.shipCompleted) return;\n shippedContainers += 1;\n });\n return shippedContainers / vanplan.containers.items.length;\n};\n\n/**\n * バンプラン以下のContainerのMasterの情報を文字列にして返す\n * xの形式で表示する\n * @param vanplan 対象のバンプラン\n * @returns label: 表示用の文字列, context: すべてのcontainerMasterを表示する文字列\n */\nexport const containerMasterInfo = (\n vanplan: Vanplan\n): { label: string; context: string } => {\n // containerが存在しない場合は空文字を返す\n if (!vanplan.containers?.items) return { label: \"\", context: \"\" };\n\n // containerMasterの種類ごとにカウントする\n const containerMasterCount = vanplan.containers.items.reduce(\n (acc, container) => {\n const containerMaster = container?.containerMaster;\n if (!containerMaster) return acc;\n\n const name = containerMaster.name;\n const count = acc.get(name)?.count || 0;\n acc.set(name, { count: count + 1, order: containerMaster.order ?? 0 });\n return acc;\n },\n new Map() as Map\n );\n\n // orderでソート\n const sortedContainerMaster = Array.from(containerMasterCount.entries()).sort(\n ([, a], [, b]) => a.order - b.order\n );\n\n // context用にすべてのcontainerMasterを表示する文字列作成(カンマで連結)\n const context = sortedContainerMaster\n .map(([name, { count }]) => {\n return `${name}x${count}`;\n })\n .join(\", \");\n // 表示用の文字列作成(Namexcountをカンマで連結するが2セットごとに改行、4種類以降は...にする)\n const label =\n sortedContainerMaster\n .filter((_, index) => index < 4)\n .map(([name, { count }], index) => {\n return `${name}x${count}${index % 2 === 1 ? \"\\n\" : \",\"}`;\n })\n .join(\"\")\n .slice(0, -1) + (sortedContainerMaster.length > 4 ? \"...\" : \"\");\n // labelとcontextを結合して返す\n return {\n label,\n context,\n };\n};\n\n/**\n * Containerのm3, weight, ケース個数を合算して返す\n * @param vanplan 対象のバンプラン\n * @returns caseQuantity: ケースの個数, m3: m3の合計, weight: 重量の合計\n */\nexport const summarizeContainer = (\n vanplan: Vanplan\n): { caseQuantity: string; m3: string; weight: string } => {\n // containerが存在しない場合は空文字を返す\n if (!vanplan.containers?.items)\n return { caseQuantity: \"\", m3: \"\", weight: \"\" };\n\n // containerの情報を合算する\n const caseQuantity = vanplan.containers.items.reduce((acc, container) => {\n return acc + (container?.caseQuantity ?? 0);\n }, 0);\n const m3 = vanplan.containers.items.reduce((acc, container) => {\n return acc + (container?.m3 ?? 0);\n }, 0);\n const weight = vanplan.containers.items.reduce((acc, container) => {\n return acc + (container?.weight ?? 0);\n }, 0);\n\n return {\n caseQuantity: caseQuantity.toString(),\n m3: (Math.round(m3 * 1000) / 1000).toString(),\n weight: weight.toString(),\n };\n};\n","\"use strict\";\n(self[\"webpackChunk_N_E\"] = self[\"webpackChunk_N_E\"] || []).push([[1294],{\n\n/***/ 61795:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"i\": function() { return /* binding */ GroupProvider; },\n \"_\": function() { return /* binding */ useGroup; }\n});\n\n// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js\nvar jsx_runtime = __webpack_require__(85893);\n// EXTERNAL MODULE: ./node_modules/react/index.js\nvar react = __webpack_require__(67294);\n// EXTERNAL MODULE: ./node_modules/@aws-amplify/api/lib-esm/API.js + 1 modules\nvar API = __webpack_require__(10552);\n// EXTERNAL MODULE: ./src/contexts/auth.tsx + 2 modules\nvar auth = __webpack_require__(17297);\n// EXTERNAL MODULE: ./src/contexts/alerts.tsx + 6 modules\nvar alerts = __webpack_require__(75313);\n// EXTERNAL MODULE: ./src/hooks/data.ts\nvar hooks_data = __webpack_require__(5295);\n// EXTERNAL MODULE: ./src/utils/error.ts\nvar error = __webpack_require__(78191);\n// EXTERNAL MODULE: ./src/graphql/mutations.ts\nvar mutations = __webpack_require__(23765);\n;// CONCATENATED MODULE: ./src/utils/packPhase.ts\n\n\n\nconst getPhaseIdFromStepIndex = (c, index)=>{\n if (!c || !c.packPhases) return null;\n if (index === c.packPhases.length) return \"final\";\n if (index > c.packPhases.length) return \"complete\";\n const p = c.packPhases[index];\n if (!p) return null;\n return p.id;\n};\nconst getStepIndex = (c, phaseId)=>{\n if (!c || !c.packPhases) return 0;\n if (phaseId === \"final\") return c.packPhases.length;\n if (phaseId === \"complete\") return c.packPhases.length + 1;\n const p = c.packPhases.findIndex((p)=>{\n return (p === null || p === void 0 ? void 0 : p.id) === phaseId;\n });\n if (p < 0) return 0;\n return p;\n};\nconst updatePackPhaseWithOptimisticLock = async (input)=>{\n try {\n const res = await API/* API.graphql */.b.graphql({\n query: mutations.updatePackPhaseWithOptimisticLock,\n variables: {\n input\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n });\n if (res.errors) {\n throw new Error(res.errors);\n }\n return res.data.updatePackPhaseWithOptimisticLock;\n } catch (err) {\n throw new error/* CustomError */.s(err, \"update\");\n }\n};\nconst updateGroupWithOptimisticLock = async (input)=>{\n try {\n const res = await API/* API.graphql */.b.graphql({\n query: mutations.updateGroupWithOptimisticLock,\n variables: {\n input\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n });\n if (res.errors) {\n throw new Error(res.errors);\n }\n return res.data.updateGroupWithOptimisticLock;\n } catch (err) {\n throw new error/* CustomError */.s(err, \"update\");\n }\n};\n\n// EXTERNAL MODULE: ./src/utils/vanplan/container.ts\nvar container = __webpack_require__(55080);\n;// CONCATENATED MODULE: ./src/contexts/group.tsx\n\n\n\n\n\n\n\n\n\n\nconst GroupContext = /*#__PURE__*/ (0,react.createContext)({\n group: undefined,\n users: [],\n loading: false,\n update: ()=>null,\n updateGroupWithOptimisticLock: ()=>null,\n updatePackPhaseWithOptimisticLock: ()=>null,\n updateMainContainerMasters: ()=>Promise.resolve(),\n refetch: ()=>Promise.resolve(),\n set: ()=>Promise.resolve\n});\nconst GroupProvider = (param)=>{\n let { children } = param;\n const { currentGroup } = (0,auth/* useAuth */.a)();\n const { addAlert } = (0,alerts/* useAlerts */.Z)();\n const [users, setUsers] = (0,react.useState)([]);\n const { data , loading , refetch , update , set } = (0,hooks_data/* default */.Z)({\n object: \"group\",\n variables: {\n id: currentGroup === null || currentGroup === void 0 ? void 0 : currentGroup.id\n }\n });\n (0,react.useEffect)(()=>{\n refetch({\n id: currentGroup === null || currentGroup === void 0 ? void 0 : currentGroup.id\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n currentGroup\n ]);\n (0,react.useEffect)(()=>{\n if (!data) return setUsers([]);\n setUsers(data.users.items);\n }, [\n data\n ]);\n const setPackPhase = (input)=>{\n const newPackPhases = [\n ...data.packPhases\n ];\n const index = data.packPhases.findIndex((p)=>p.id === input.packPhase.id);\n newPackPhases[index] = input.packPhase;\n const newGroup = {\n ...data,\n packPhases: newPackPhases\n };\n set(newGroup);\n };\n const updateGroup = async (input)=>{\n try {\n await updateGroupWithOptimisticLock(input);\n set({\n ...data,\n packPhases: input.packPhases,\n version: input.version + 1\n });\n addAlert({\n message: \"更新しました\",\n severity: \"success\"\n });\n } catch (err) {\n if (err instanceof error/* CustomError */.s) addAlert({\n message: err.message,\n severity: \"error\"\n });\n }\n };\n const updatePackPhase = async (input)=>{\n try {\n await updatePackPhaseWithOptimisticLock(input);\n input.packPhase.version = input.packPhase.version + 1;\n setPackPhase({\n ...input\n });\n addAlert({\n message: \"更新しました\",\n severity: \"success\"\n });\n } catch (err) {\n if (err instanceof error/* CustomError */.s) addAlert({\n message: err.message,\n severity: \"error\"\n });\n }\n };\n const updateMainContainerMasters = async (selected)=>{\n if (!data) return;\n const { deleted , added , updated } = (0,container/* diffContainerMasters */.N6)(data, selected);\n const promises = [];\n if (deleted.length) {\n for (const d of deleted){\n promises.push(API/* API.graphql */.b.graphql({\n query: mutations.deleteGroupsContainerMasters,\n variables: {\n input: d\n }\n }));\n }\n }\n if (added.length) {\n for (const a of added){\n promises.push(API/* API.graphql */.b.graphql({\n query: mutations.createGroupsContainerMasters,\n variables: {\n input: a\n }\n }));\n }\n }\n if (updated.length) {\n for (const u of updated){\n promises.push(API/* API.graphql */.b.graphql({\n query: mutations.updateGroupsContainerMasters,\n variables: {\n input: u\n }\n }));\n }\n }\n await Promise.all(promises);\n };\n const values = (0,react.useMemo)(()=>{\n return {\n group: data,\n users,\n update,\n updateGroupWithOptimisticLock: updateGroup,\n updatePackPhaseWithOptimisticLock: updatePackPhase,\n updateMainContainerMasters: updateMainContainerMasters,\n loading,\n refetch: ()=>{\n return refetch({\n id: currentGroup === null || currentGroup === void 0 ? void 0 : currentGroup.id\n });\n },\n set\n };\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n data,\n update,\n loading,\n users,\n set,\n updateGroupWithOptimisticLock,\n updatePackPhaseWithOptimisticLock,\n updateMainContainerMasters\n ]);\n return /*#__PURE__*/ (0,jsx_runtime.jsx)(GroupContext.Provider, {\n value: values,\n children: children\n });\n};\nconst useGroup = ()=>{\n const groupContext = (0,react.useContext)(GroupContext);\n if (groupContext === undefined) {\n throw new Error(\"useGroup must be within GroupProvider\");\n }\n return groupContext;\n};\n\n\n/***/ }),\n\n/***/ 23429:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"h\": function() { return /* binding */ InvoicesProvider; },\n/* harmony export */ \"q\": function() { return /* binding */ useInvoices; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(85893);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67294);\n/* harmony import */ var aws_amplify__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(10552);\n/* harmony import */ var aws_amplify__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(9823);\n/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11163);\n/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_router__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _products__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3204);\n/* harmony import */ var hooks_datalist__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(32380);\n/* harmony import */ var contexts_project__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(46100);\n/* harmony import */ var contexts_alerts__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(75313);\n/* harmony import */ var contexts_dialog__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(3780);\n/* harmony import */ var contexts_auth__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(17297);\n/* harmony import */ var contexts_group__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(61795);\n/* harmony import */ var utils_invoice__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(98053);\n/* harmony import */ var graphql_queries__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(18490);\n/* eslint-disable react-hooks/exhaustive-deps */ \n\n\n\n\n\n\n\n\n\n\n\n\nconst InvoicesContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)({\n invoices: [],\n productSummariesForInvoice: [],\n loading: false,\n productSummariesLoading: false,\n lastUpdatedAt: \"\",\n refetch: ()=>Promise.resolve(),\n create: ()=>Promise.resolve(),\n update: ()=>Promise.resolve(),\n importWithDeleting: ()=>Promise.resolve(),\n importWithoutDeleting: ()=>Promise.resolve(),\n export: ()=>Promise.resolve(),\n remove: ()=>Promise.resolve(),\n fetchProductSummaries: ()=>Promise.resolve()\n});\nconst isInvoice = (data)=>{\n return data && data.id && data.projectId && data.name;\n};\nconst InvoicesProvider = (param)=>{\n let { children } = param;\n const { project } = (0,contexts_project__WEBPACK_IMPORTED_MODULE_5__/* .useProject */ .P)();\n const { data , loading , update , create , remove , refetch } = (0,hooks_datalist__WEBPACK_IMPORTED_MODULE_4__/* [\"default\"] */ .Z)({\n query: \"invoicesByProjectId\",\n variables: {\n projectId: project === null || project === void 0 ? void 0 : project.id\n },\n sort: (a, b)=>{\n // orderというfieldがあったらそれで、なかったらcreatedAtでソートする\n if (a.order && b.order) {\n return a.order - b.order;\n } else {\n return new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime();\n }\n }\n });\n const defaultProductSummariesFilter = {\n includeIncompleteProduct: false,\n includeBilledProduct: false,\n scheduleIds: undefined\n };\n const [productSummaries, setProductSummaries] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(data);\n const [productSummariesLoadingData, setProductSummariesLoadingData] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const fetchProductSummaries = async function() {\n let filter = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : defaultProductSummariesFilter;\n if (!project) {\n setProductSummaries([]);\n }\n setProductSummariesLoadingData(true);\n const res = (await aws_amplify__WEBPACK_IMPORTED_MODULE_11__/* .API.graphql */ .b.graphql((0,aws_amplify__WEBPACK_IMPORTED_MODULE_12__/* .graphqlOperation */ .wT)(graphql_queries__WEBPACK_IMPORTED_MODULE_13__.productSummariesByProjectId, {\n input: {\n projectId: project.id,\n filter\n }\n }))).data.productSummariesByProjectId.items.sort((a, b)=>{\n return (a === null || a === void 0 ? void 0 : a.productOrder) - (b === null || b === void 0 ? void 0 : b.productOrder);\n });\n setProductSummaries(res);\n setProductSummariesLoadingData(false);\n };\n const { open } = (0,contexts_dialog__WEBPACK_IMPORTED_MODULE_7__/* .useDialog */ .R)();\n const { products , update: updateProduct , refetch: refetchProduct } = (0,_products__WEBPACK_IMPORTED_MODULE_3__/* .useProducts */ .r)();\n const { addAlert , setSnooze } = (0,contexts_alerts__WEBPACK_IMPORTED_MODULE_6__/* .useAlerts */ .Z)();\n const { user } = (0,contexts_auth__WEBPACK_IMPORTED_MODULE_8__/* .useAuth */ .a)();\n const { group } = (0,contexts_group__WEBPACK_IMPORTED_MODULE_9__/* .useGroup */ ._)();\n // 最終更新日時\n const [lastUpdatedAt, setLastUpdatedAt] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n const router = (0,next_router__WEBPACK_IMPORTED_MODULE_2__.useRouter)();\n const createInvoice = async (input)=>{\n var ref;\n // null check\n if (!group || !project || !user) return;\n var ref1;\n const res = await create(\"createInvoice\", (0,utils_invoice__WEBPACK_IMPORTED_MODULE_10__/* .getInvoiceInputs */ .Bl)(group, project, user === null || user === void 0 ? void 0 : user.id, {\n name: input.name,\n invoiceNo: input.invoiceNo,\n issueDate: input.issueDate,\n billingDate: input.billingDate,\n recordingDate: input.recordingDate\n }, (ref1 = group === null || group === void 0 ? void 0 : (ref = group.tenant) === null || ref === void 0 ? void 0 : ref.host) !== null && ref1 !== void 0 ? ref1 : \"\"));\n refetch({\n projectId: project === null || project === void 0 ? void 0 : project.id\n });\n if (!isInvoice(res)) return;\n const url = \"/projects/\".concat(project === null || project === void 0 ? void 0 : project.id, \"?page=invoices&invoiceId=\").concat(res.id);\n router.push(url);\n };\n const removeInvoice = async (id)=>{\n open({\n title: \"請求を削除しますか?\",\n content: \"削除すると二度と戻せません\",\n okText: \"削除\",\n onOk: async ()=>{\n setSnooze([\n \"success\"\n ]);\n addAlert({\n message: \"削除中です\",\n severity: \"info\"\n });\n // invoiceLineのidを持つcaseのisBilledとinvoiceLineIdを初期化する\n const invoice = data === null || data === void 0 ? void 0 : data.find((invoice)=>invoice.id === id);\n if (invoice) {\n var ref;\n const invoiceLineIds = (ref = invoice.invoiceLines) === null || ref === void 0 ? void 0 : ref.items.map((line)=>line.id);\n const productUpdatePromises = [];\n for (const product of products){\n if (product.cases) {\n const cases = product.cases;\n let updated = false;\n for (const c of cases){\n if ((c === null || c === void 0 ? void 0 : c.invoiceLineId) && invoiceLineIds.includes(c.invoiceLineId)) {\n c.invoiceLineId = null;\n c.isBilled = false;\n updated = true;\n }\n }\n if (updated) {\n productUpdatePromises.push(updateProduct({\n id: product.id,\n cases\n }));\n }\n }\n }\n await Promise.all(productUpdatePromises);\n await refetchProduct({\n progress: false\n });\n }\n await remove(\"deleteInvoice\", {\n id\n });\n addAlert({\n message: \"データが削除されました\",\n severity: \"success\",\n force: true\n });\n setSnooze([]);\n }\n });\n };\n const updateInvoice = async (input)=>{\n await update(\"updateInvoice\", {\n ...input\n });\n };\n const importInvoiceDataWithDeleting = async (id, productCases)=>{\n await update(\"importInvoiceLines\", {\n id,\n products: productCases,\n withDeletion: true,\n includeOtherQuoteLines: true\n });\n await refetchProduct({\n progress: false\n });\n const now = new Date();\n setLastUpdatedAt(now.toLocaleString());\n // await refetch({ projectId: project?.id }, { progress: false });\n };\n const importInvoiceDataWithoutDeleting = async (id, productCases)=>{\n await update(\"importInvoiceLines\", {\n id,\n products: productCases,\n withDeletion: false,\n includeOtherQuoteLines: false\n });\n await refetchProduct({\n progress: false\n });\n const now = new Date();\n setLastUpdatedAt(now.toLocaleString());\n };\n const exportInvoiceData = async (id)=>{\n addAlert({\n message: \"同期中です\",\n severity: \"info\"\n });\n await update(\"exportInvoiceToSalesForce\", {\n id\n });\n addAlert({\n message: \"同期が成功しました\",\n severity: \"success\"\n });\n };\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (!project) return;\n refetch({\n projectId: project.id\n });\n fetchProductSummaries(defaultProductSummariesFilter);\n }, [\n project\n ]);\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(InvoicesContext.Provider, {\n value: {\n invoices: data,\n productSummariesForInvoice: productSummaries,\n loading,\n productSummariesLoading: productSummariesLoadingData,\n lastUpdatedAt,\n refetch: ()=>{\n return refetch({\n projectId: project === null || project === void 0 ? void 0 : project.id\n });\n },\n create: createInvoice,\n remove: removeInvoice,\n update: updateInvoice,\n importWithDeleting: importInvoiceDataWithDeleting,\n importWithoutDeleting: importInvoiceDataWithoutDeleting,\n export: exportInvoiceData,\n fetchProductSummaries\n },\n children: children\n });\n};\nconst useInvoices = ()=>{\n const invoicesContext = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(InvoicesContext);\n if (invoicesContext === undefined) {\n throw new Error(\"useInvoices must be within InvoiceProvider\");\n }\n return invoicesContext;\n};\n\n\n/***/ }),\n\n/***/ 83609:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"J\": function() { return /* binding */ MaterialTypesProvider; },\n/* harmony export */ \"W\": function() { return /* binding */ useMaterialTypes; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(85893);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67294);\n/* harmony import */ var _auth__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17297);\n/* harmony import */ var hooks_datalist__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(32380);\n/* harmony import */ var contexts_dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3780);\n/* harmony import */ var contexts_alerts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(75313);\n\n\n\n\n\n\nconst MaterialTypesContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)({\n materialTypes: [],\n packagingMaterialTypes: [],\n secondaryMaterialTypes: [],\n loading: false,\n create: ()=>null,\n update: ()=>null,\n remove: ()=>null\n});\nconst MaterialTypesProvider = (param)=>{\n let { children , variables } = param;\n const { currentGroup } = (0,_auth__WEBPACK_IMPORTED_MODULE_2__/* .useAuth */ .a)();\n const { data , loading , refetch , create , remove , update , nextToken , appendNext } = (0,hooks_datalist__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"] */ .Z)({\n query: \"materialTypesByGroupId\",\n variables: {\n groupId: currentGroup === null || currentGroup === void 0 ? void 0 : currentGroup.id\n },\n sort: (a, b)=>{\n if (a.width && b.width) return a.width - b.width || a.height - b.height;\n if (a.height && b.height) return a.height - b.height;\n return a.name.localeCompare(b.name);\n }\n });\n // FIXME: 全件取得するようにしている、ページネーションを実装する必要がある\n // appendNextの実行状態を管理しないとデータが重複する\n const [fetchingNext, setFetchingNext] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n // nextTokenがnullになるまでappendNextを実行する\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (nextToken && !fetchingNext) {\n // 既にフェッチ中でなければappendNextを呼び出す\n setFetchingNext(true); // フェッチ中の状態をtrueに設定\n appendNext().finally(()=>setFetchingNext(false)); // フェッチが終わったらフェッチ中の状態をfalseに設定\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n nextToken\n ]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n refetch({\n groupId: currentGroup === null || currentGroup === void 0 ? void 0 : currentGroup.id\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n variables,\n currentGroup === null || currentGroup === void 0 ? void 0 : currentGroup.id\n ]);\n const { open } = (0,contexts_dialog__WEBPACK_IMPORTED_MODULE_4__/* .useDialog */ .R)();\n const { addAlert } = (0,contexts_alerts__WEBPACK_IMPORTED_MODULE_5__/* .useAlerts */ .Z)();\n const createMaterialType = async (input)=>{\n // inputにcreatedAt, updatedAt, materialsがあったら消す\n delete input.createdAt;\n delete input.updatedAt;\n delete input.materials;\n if (input.customFields) {\n input.customFields.forEach((c)=>{\n delete c.__typename;\n });\n }\n await create(\"createMaterialType\", {\n ...input,\n groupId: currentGroup === null || currentGroup === void 0 ? void 0 : currentGroup.id\n });\n addAlert({\n message: \"資材分類を作成しました\",\n severity: \"success\"\n });\n };\n const updateMaterialType = async (input)=>{\n // inputにcreatedAt, updatedAt, materialsがあったら消す\n delete input.createdAt;\n delete input.updatedAt;\n delete input.materials;\n await update(\"updateMaterialType\", {\n ...input\n });\n addAlert({\n message: \"資材分類を更新しました\",\n severity: \"success\"\n });\n };\n const removeMaterialType = async (ids)=>{\n open({\n title: \"資材分類を削除しますか?\",\n content: \"削除すると二度と戻せません\",\n okText: \"削除\",\n onOk: async ()=>{\n const promises = ids.map((id)=>remove(\"deleteMaterialType\", {\n id\n }));\n await Promise.all(promises);\n addAlert({\n message: \"資材分類を削除しました\",\n severity: \"success\"\n });\n }\n });\n };\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(MaterialTypesContext.Provider, {\n value: {\n materialTypes: data,\n packagingMaterialTypes: data && data.filter((d)=>d.type === \"packaging\"),\n secondaryMaterialTypes: data && data.filter((d)=>d.type === \"secondary\"),\n loading,\n create: createMaterialType,\n update: updateMaterialType,\n remove: removeMaterialType\n },\n children: children\n });\n};\nconst useMaterialTypes = ()=>{\n const materialTypesContext = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(MaterialTypesContext);\n if (materialTypesContext === undefined) {\n throw new Error(\"useMaterialTypes must be within MaterialTypesProvider\");\n }\n return materialTypesContext;\n};\n\n\n/***/ }),\n\n/***/ 89832:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Y\": function() { return /* binding */ MaterialsProvider; },\n/* harmony export */ \"f\": function() { return /* binding */ useMaterials; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(85893);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67294);\n/* harmony import */ var _auth__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17297);\n/* harmony import */ var _materialTypes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(83609);\n/* harmony import */ var hooks_datalist__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(32380);\n/* harmony import */ var contexts_dialog__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(3780);\n/* harmony import */ var contexts_alerts__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(75313);\n/* harmony import */ var utils_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(33389);\n\n\n\n\n\n\n\n\nconst MaterialsContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)({\n materials: [],\n allMaterials: [],\n packagingMaterials: [],\n secondaryMaterials: [],\n loading: false,\n create: ()=>null,\n update: ()=>null,\n remove: ()=>null,\n refetch: ()=>Promise.resolve()\n});\nconst MaterialsProvider = (param)=>{\n let { children , variables } = param;\n const { currentGroup } = (0,_auth__WEBPACK_IMPORTED_MODULE_2__/* .useAuth */ .a)();\n const { data , loading , refetch , create , remove , update , nextToken , appendNext } = (0,hooks_datalist__WEBPACK_IMPORTED_MODULE_4__/* [\"default\"] */ .Z)({\n query: \"materialsByGroupId\",\n variables: {\n groupId: currentGroup === null || currentGroup === void 0 ? void 0 : currentGroup.id\n },\n sort: (a, b)=>{\n if (a.width && b.width) return a.width - b.width || a.height - b.height;\n if (a.height && b.height) return a.height - b.height;\n return a.name.localeCompare(b.name);\n }\n });\n const { materialTypes } = (0,_materialTypes__WEBPACK_IMPORTED_MODULE_3__/* .useMaterialTypes */ .W)();\n // materialのrefBhh[Face|Edge]がnullだったら計算してセットする\n const materials = data.map((d)=>{\n var ref;\n if (!((ref = d.materialType) === null || ref === void 0 ? void 0 : ref.isWood)) return d;\n if (d.refBhhFace === null || d.refBhhEdge === null) {\n const [refBhhFace, refBhhEdge] = (0,utils_material__WEBPACK_IMPORTED_MODULE_7__/* .calcRefBhh */ .CS)(d.widthNominal, d.heightNominal);\n d.refBhhFace = refBhhFace;\n d.refBhhEdge = refBhhEdge;\n }\n return d;\n });\n // FIXME: 全件取得するようにしている、ページネーションを実装する必要がある\n // appendNextの実行状態を管理しないとデータが重複する\n const [fetchingNext, setFetchingNext] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n // nextTokenがnullになるまでappendNextを実行する\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (nextToken && !fetchingNext) {\n // 既にフェッチ中でなければappendNextを呼び出す\n setFetchingNext(true); // フェッチ中の状態をtrueに設定\n appendNext().finally(()=>setFetchingNext(false)); // フェッチが終わったらフェッチ中の状態をfalseに設定\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n nextToken\n ]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n refetch({\n groupId: currentGroup === null || currentGroup === void 0 ? void 0 : currentGroup.id\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n variables,\n currentGroup === null || currentGroup === void 0 ? void 0 : currentGroup.id\n ]);\n const { open } = (0,contexts_dialog__WEBPACK_IMPORTED_MODULE_5__/* .useDialog */ .R)();\n const { addAlert } = (0,contexts_alerts__WEBPACK_IMPORTED_MODULE_6__/* .useAlerts */ .Z)();\n const createMaterial = async (input)=>{\n const materialType = materialTypes.find((t)=>t.id === input.materialTypeId);\n // 該当するmaterialTypeがあったらRefBhhを計算する\n // 作成時にないのはmasterDataのimportくらいなので、ここはスキップしてもOK(元データの方でちゃんと設定されているはず)\n if (materialType && materialType.isWood) {\n const [refBhhFace, refBhhEdge] = (0,utils_material__WEBPACK_IMPORTED_MODULE_7__/* .calcRefBhh */ .CS)(input.widthNominal, input.heightNominal);\n input.refBhhFace = refBhhFace;\n input.refBhhEdge = refBhhEdge;\n }\n await create(\"createMaterial\", {\n ...input,\n groupId: currentGroup === null || currentGroup === void 0 ? void 0 : currentGroup.id\n });\n addAlert({\n message: \"資材を作成しました\",\n severity: \"success\"\n });\n };\n const updateMaterial = async (input)=>{\n var ref;\n // refBhhFaceとrefBhhEdgeを計算して値をセットする\n if (!input.id) return;\n const material = data.find((m)=>m.id === input.id);\n if (!material) return;\n if (material === null || material === void 0 ? void 0 : (ref = material.materialType) === null || ref === void 0 ? void 0 : ref.isWood) {\n const [refBhhFace, refBhhEdge] = (0,utils_material__WEBPACK_IMPORTED_MODULE_7__/* .calcRefBhh */ .CS)(input.widthNominal || material.widthNominal, input.heightNominal || material.heightNominal);\n input.refBhhFace = refBhhFace;\n input.refBhhEdge = refBhhEdge;\n }\n await update(\"updateMaterial\", {\n ...input\n });\n addAlert({\n message: \"資材を更新しました\",\n severity: \"success\"\n });\n };\n const removeMaterial = async (ids)=>{\n open({\n title: \"資材を削除しますか?\",\n content: \"削除すると二度と戻せません\",\n okText: \"削除\",\n onOk: async ()=>{\n const promises = ids.map((id)=>remove(\"deleteMaterial\", {\n id\n }));\n await Promise.all(promises);\n addAlert({\n message: \"資材を削除しました\",\n severity: \"success\"\n });\n }\n });\n };\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(MaterialsContext.Provider, {\n value: {\n allMaterials: materials,\n materials: materials && materials.filter((d)=>!!d.active),\n packagingMaterials: materials && materials.filter((d)=>{\n var ref;\n return ((ref = d.materialType) === null || ref === void 0 ? void 0 : ref.type) === \"packaging\" && !!d.active;\n }),\n secondaryMaterials: materials && materials.filter((d)=>{\n var ref;\n return ((ref = d.materialType) === null || ref === void 0 ? void 0 : ref.type) === \"secondary\" && !!d.active;\n }),\n loading,\n create: createMaterial,\n update: updateMaterial,\n remove: removeMaterial,\n refetch: ()=>{\n return refetch({\n groupId: currentGroup === null || currentGroup === void 0 ? void 0 : currentGroup.id\n });\n }\n },\n children: children\n });\n};\nconst useMaterials = ()=>{\n const materialsContext = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(MaterialsContext);\n if (materialsContext === undefined) {\n throw new Error(\"useMaterials must be within MaterialsProvider\");\n }\n return materialsContext;\n};\n\n\n/***/ }),\n\n/***/ 3204:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"J\": function() { return /* binding */ ProductsProvider; },\n/* harmony export */ \"r\": function() { return /* binding */ useProducts; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(85893);\n/* harmony import */ var use_deep_compare_effect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(87620);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(67294);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(96486);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(11163);\n/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(next_router__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _materials__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(89832);\n/* harmony import */ var _species__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(89051);\n/* harmony import */ var _auth__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(17297);\n/* harmony import */ var hooks_datalist__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(32380);\n/* harmony import */ var contexts_project__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(46100);\n/* harmony import */ var contexts_dialog__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(3780);\n/* harmony import */ var utils_product__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(41491);\n/* harmony import */ var utils_bom__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(49305);\n/* harmony import */ var utils_project__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(25180);\n/* harmony import */ var utils_image__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(77325);\n/* eslint-disable react-hooks/exhaustive-deps */ \n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst ProductsContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_2__.createContext)({\n products: [],\n loading: false,\n creating: false,\n copying: false,\n create: ()=>Promise.resolve(),\n createNonPack: ()=>Promise.resolve(),\n copy: ()=>Promise.resolve(),\n update: ()=>Promise.resolve(),\n updateToPending: ()=>Promise.resolve(),\n remove: ()=>Promise.resolve(),\n link: ()=>Promise.resolve(),\n unlink: ()=>Promise.resolve(),\n refetch: ()=>Promise.resolve(),\n setProduct: ()=>{}\n});\nconst isProduct = (data)=>{\n return data && data.id && data.projectId && data.name;\n};\nconst ProductsProvider = (param)=>{\n let { variables , children , by } = param;\n const { data , loading , creating , refetch , create , remove , update , appendNext , nextToken , set } = (0,hooks_datalist__WEBPACK_IMPORTED_MODULE_8__/* [\"default\"] */ .Z)({\n query: \"productsBy\".concat(by || \"ProjectId\"),\n variables,\n sort: \"order\"\n });\n // FIXME: 全件取得するようにしている、ページネーションを実装する必要がある\n // appendNextの実行状態を管理しないとデータが重複する\n const [fetchingNext, setFetchingNext] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false);\n const router = (0,next_router__WEBPACK_IMPORTED_MODULE_4__.useRouter)();\n // nextTokenがnullになるまでappendNextを実行する\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(()=>{\n if (nextToken && !fetchingNext) {\n // 既にフェッチ中でなければappendNextを呼び出す\n setFetchingNext(true); // フェッチ中の状態をtrueに設定\n appendNext().finally(()=>setFetchingNext(false)); // フェッチが終わったらフェッチ中の状態をfalseに設定\n }\n }, [\n nextToken\n ]);\n const [copying, setCopying] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false);\n (0,use_deep_compare_effect__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"] */ .ZP)(()=>{\n refetch(variables);\n }, [\n variables\n ]);\n const { project , update: updateProject , updateExternalSharedImageKeys , isShared } = (0,contexts_project__WEBPACK_IMPORTED_MODULE_9__/* .useProject */ .P)();\n const { allMaterials } = (0,_materials__WEBPACK_IMPORTED_MODULE_5__/* .useMaterials */ .f)();\n const { species } = (0,_species__WEBPACK_IMPORTED_MODULE_6__/* .useSpecies */ .s)();\n const { currentGroup } = (0,_auth__WEBPACK_IMPORTED_MODULE_7__/* .useAuth */ .a)();\n const { open } = (0,contexts_dialog__WEBPACK_IMPORTED_MODULE_10__/* .useDialog */ .R)();\n // createProductの排他制御用\n const isCreatingProductRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(false);\n const createProduct = async (input)=>{\n if (isCreatingProductRef.current) return;\n isCreatingProductRef.current = true;\n try {\n var ref;\n var ref1;\n const orderMax = (ref1 = (ref = lodash__WEBPACK_IMPORTED_MODULE_3___default().maxBy(data, \"order\")) === null || ref === void 0 ? void 0 : ref.order) !== null && ref1 !== void 0 ? ref1 : -1;\n const { id: productId } = await create(\"createProductBom\", {\n ...input,\n projectId: project === null || project === void 0 ? void 0 : project.id,\n order: orderMax + 1\n });\n // 作成したProductのElementに空更新をかけてCost関連を設定させる\n if (currentGroup) {\n // 更新漏れを防ぐため2回更新を流す\n await (0,utils_bom__WEBPACK_IMPORTED_MODULE_12__/* .updateArbitraryProductBomElement */ .Z1)(productId, {\n id: productId\n }, allMaterials, species, currentGroup, true);\n await (0,utils_bom__WEBPACK_IMPORTED_MODULE_12__/* .updateArbitraryProductBomElement */ .Z1)(productId, {\n id: productId\n }, allMaterials, species, currentGroup, true);\n }\n // 関連するProjectのupdatedを更新\n if (project !== undefined) {\n updateProject({\n id: project.id\n });\n }\n const url = \"/projects/\".concat(project === null || project === void 0 ? void 0 : project.id, \"?page=products&productId=\").concat(productId);\n router.push(url);\n } catch (error) {\n refetch(variables, {\n progress: false\n });\n } finally{\n isCreatingProductRef.current = false;\n }\n };\n // createNonPackProductの排他制御用\n const isCreatingNonPackroductRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(false);\n const createNonPackProduct = async (input)=>{\n if (isCreatingNonPackroductRef.current) return;\n isCreatingNonPackroductRef.current = true;\n try {\n var ref;\n var ref1;\n const orderMax = (ref1 = (ref = lodash__WEBPACK_IMPORTED_MODULE_3___default().maxBy(data, \"order\")) === null || ref === void 0 ? void 0 : ref.order) !== null && ref1 !== void 0 ? ref1 : -1;\n const res = await create(\"createProduct\", {\n ...input,\n packageTypeId: \"NonPack\",\n packageTypeName: \"NonPack\",\n projectId: project === null || project === void 0 ? void 0 : project.id,\n order: orderMax + 1\n });\n // 関連するProjectのupdatedを更新\n if (project !== undefined) {\n updateProject({\n id: project.id\n });\n }\n if (!isProduct(res)) return;\n const url = \"/projects/\".concat(project === null || project === void 0 ? void 0 : project.id, \"?page=products&productId=\").concat(res.id);\n router.push(url);\n } catch (error) {\n refetch(variables, {\n progress: false\n });\n } finally{\n isCreatingNonPackroductRef.current = false;\n }\n };\n const copyProduct = async (input)=>{\n var ref;\n setCopying(true);\n var ref1;\n const orderMax = (ref1 = (ref = lodash__WEBPACK_IMPORTED_MODULE_3___default().maxBy(data, \"order\")) === null || ref === void 0 ? void 0 : ref.order) !== null && ref1 !== void 0 ? ref1 : -1;\n const res = await create(\"copyProduct\", {\n ...input,\n order: orderMax + 1\n });\n setCopying(false);\n // 関連するProjectのupdatedを更新\n if (project !== undefined) {\n updateProject({\n id: project.id\n });\n }\n if (!isProduct(res)) return;\n const url = \"/projects/\".concat(project === null || project === void 0 ? void 0 : project.id, \"?page=products&productId=\").concat(res.id);\n router.push(url);\n };\n const updateProduct = async (input)=>{\n if (!data) return;\n // 指示書Noが更新された時はケースの名前も一緒に更新\n if (input.productNumber) {\n const cases = (0,utils_product__WEBPACK_IMPORTED_MODULE_11__/* .getUpdatedCaseInputByProductNumber */ .lB)(data, input);\n input = {\n ...input,\n cases: cases\n };\n }\n await update(\"updateProduct\", {\n ...input\n });\n };\n const setProduct = (product)=>{\n const updatedData = [\n ...data\n ];\n const index = updatedData.findIndex((d)=>d.id === product.id);\n updatedData[index] = product;\n set(updatedData);\n };\n /**\n * 梱包を仮に戻す、仮に梱包の写真が一枚でも共有されていたらDialogで確認をする\n * @param productId 仮に戻すProductのID\n * @param refetchFuncs 仮に戻した後に再取得する関数配列\n */ const updateToPending = async (productId, refetchFuncs)=>{\n if (!project) return;\n // 解除対象のProductのImageが共有されていたらDialogで解除の確認をする\n if (isShared && (0,utils_project__WEBPACK_IMPORTED_MODULE_13__/* .isSharedProduct */ .eK)(project, productId)) {\n open({\n title: \"仮に戻しますか?\",\n content: \"仮に戻すと写真の共有は解除されます\",\n okText: \"はい\",\n onOk: async ()=>{\n var ref;\n var ref1;\n const excludeKeys = (ref1 = (ref = project.externalSharedImageKeys) === null || ref === void 0 ? void 0 : ref.filter((key)=>key && (0,utils_image__WEBPACK_IMPORTED_MODULE_14__/* .isProductCaseKey */ .WK)(key, productId)).map((key)=>key !== null && key !== void 0 ? key : \"\")) !== null && ref1 !== void 0 ? ref1 : [];\n await updateExternalSharedImageKeys([], excludeKeys);\n await updateProduct({\n id: productId,\n readyToPack: false\n });\n await Promise.all(refetchFuncs.map((func)=>func({\n progress: false\n })));\n }\n });\n } else {\n await updateProduct({\n id: productId,\n readyToPack: false\n });\n await Promise.all(refetchFuncs.map((func)=>func({\n progress: false\n })));\n }\n };\n // TODO: delete photos of product\n const removeProduct = async (id)=>{\n open({\n title: \"貨物を削除しますか?\",\n content: \"削除すると二度と戻せません\",\n okText: \"削除\",\n onOk: async ()=>await remove(\"deleteProductBom\", {\n productId: id\n })\n });\n };\n const linkProductToQuoteLine = async (productId, quoteLineId)=>{\n await update(\"linkProductToQuoteLine\", {\n productId,\n quoteLineId\n });\n };\n const unlinkProductFromQuoteLine = async (productId, quoteLineId)=>{\n await update(\"unlinkProductFromQuoteLine\", {\n productId,\n quoteLineId\n });\n };\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ProductsContext.Provider, {\n value: {\n products: data,\n loading,\n creating,\n copying,\n create: createProduct,\n createNonPack: createNonPackProduct,\n copy: copyProduct,\n update: updateProduct,\n updateToPending,\n remove: removeProduct,\n setProduct,\n link: linkProductToQuoteLine,\n unlink: unlinkProductFromQuoteLine,\n refetch: async (options)=>await refetch(variables, options)\n },\n children: children\n });\n};\nconst useProducts = ()=>{\n const productsContext = (0,react__WEBPACK_IMPORTED_MODULE_2__.useContext)(ProductsContext);\n if (productsContext === undefined) {\n throw new Error(\"useProducts must be within ProductsProvider\");\n }\n return productsContext;\n};\n\n\n/***/ }),\n\n/***/ 46100:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"P\": function() { return /* binding */ useProject; },\n/* harmony export */ \"j\": function() { return /* binding */ ProjectProvider; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(85893);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67294);\n/* harmony import */ var short_uuid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7597);\n/* harmony import */ var short_uuid__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(short_uuid__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var use_deep_compare_effect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(87620);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(41664);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(69417);\n/* harmony import */ var _tanstack_react_query__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(30202);\n/* harmony import */ var aws_amplify__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(10552);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(96486);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var graphql_mutations__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(23765);\n/* harmony import */ var hooks_data__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(5295);\n/* harmony import */ var contexts_dialog__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(3780);\n/* harmony import */ var contexts_alerts__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(75313);\n/* harmony import */ var contexts_auth__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(17297);\n/* harmony import */ var utils_image__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(77325);\n/* harmony import */ var utils_project__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(25180);\n/* harmony import */ var utils_error__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(78191);\n/* eslint-disable react-hooks/exhaustive-deps */ \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction getAccessLevel(user, project) {\n if (!user || !project) return null;\n // 案件作成者\n if (project.userId === user.id) return \"admin\";\n // 案件管理者\n if (project.managerId === user.id) return \"admin\";\n // 見積担当者\n if (project.quoterId === user.id) return \"quoter\";\n // 業務担当者\n if (project.operatorId === user.id) return \"operator\";\n return null;\n}\nconst ProjectContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)({\n project: undefined,\n loading: false,\n access: null,\n update: ()=>Promise.resolve(),\n updateProjectWithOptimisticLock: ()=>Promise.resolve(),\n updatePhotoPhases: ()=>Promise.resolve(),\n updateExternalSharedImageKeys: ()=>Promise.resolve(),\n remove: ()=>Promise.resolve(),\n refetch: ()=>Promise.resolve(),\n generateExternalInfo: ()=>Promise.resolve(),\n isShared: false\n});\nconst ProjectProvider = (param)=>{\n let { id , children } = param;\n var ref;\n const { user , currentGroup } = (0,contexts_auth__WEBPACK_IMPORTED_MODULE_9__/* .useAuth */ .a)();\n const [access, setAccess] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const { data , loading , refetch , update , remove , set } = (0,hooks_data__WEBPACK_IMPORTED_MODULE_6__/* [\"default\"] */ .Z)({\n object: \"project\",\n variables: {\n id\n }\n });\n const { open } = (0,contexts_dialog__WEBPACK_IMPORTED_MODULE_7__/* .useDialog */ .R)();\n const { addAlert } = (0,contexts_alerts__WEBPACK_IMPORTED_MODULE_8__/* .useAlerts */ .Z)();\n const queryClient = (0,_tanstack_react_query__WEBPACK_IMPORTED_MODULE_13__/* .useQueryClient */ .NL)();\n const isShared = (data === null || data === void 0 ? void 0 : data.externalShareUrl) != null && (data === null || data === void 0 ? void 0 : data.externalSharePassword) != null && (data === null || data === void 0 ? void 0 : data.externalShareEnabled);\n // 外部公開ページの場合のuser/dataが空の状態でここに辿り着き、エラーになるのでNoCheckを利用\n (0,use_deep_compare_effect__WEBPACK_IMPORTED_MODULE_3__/* .useDeepCompareEffectNoCheck */ .F_)(()=>{\n setAccess(getAccessLevel(user, data));\n }, [\n user,\n data\n ]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n refetch({\n id\n });\n }, [\n id\n ]);\n const removeProject = async ()=>{\n await remove({\n id: id\n });\n queryClient.invalidateQueries({\n queryKey: [\n \"projectsByGroupIdForManager\"\n ]\n });\n };\n const updateProject = async (input)=>{\n await update(input);\n queryClient.invalidateQueries({\n queryKey: [\n \"projectsByGroupIdForManager\"\n ]\n });\n };\n const updateProjectWithOptimisticLock = async (input)=>{\n try {\n await (0,utils_project__WEBPACK_IMPORTED_MODULE_11__/* .updateProjectWithOptimisticLock */ .ao)(input);\n queryClient.invalidateQueries({\n queryKey: [\n \"projectsByGroupIdForManager\"\n ]\n });\n set({\n ...data,\n ...input,\n version: input.version + 1\n });\n addAlert({\n message: \"更新しました\",\n severity: \"success\"\n });\n } catch (err) {\n if (err instanceof utils_error__WEBPACK_IMPORTED_MODULE_12__/* .CustomError */ .s) addAlert({\n message: err.message,\n severity: \"error\"\n });\n }\n };\n const updatePhotoPhases = async (type, input)=>{\n var ref;\n let photoPhases = ((ref = data.photoPhases) === null || ref === void 0 ? void 0 : ref.slice()) || [];\n // for delete and update type\n // find phaseId in product.photoPhases, error if not found\n const phaseExists = photoPhases.filter((p)=>p.id === input.id).length === 1;\n if (!phaseExists && type !== \"create\") return addAlert({\n message: \"梱包フェーズが見つかりません\",\n severity: \"error\"\n });\n // if delete, remove phase\n if (type === \"delete\") {\n return open({\n title: \"写真フェーズを削除しますか?\",\n content: \"保存された写真は復元できません。\",\n okText: \"削除する\",\n onOk: async ()=>{\n await updateProject({\n id: data.id,\n photoPhases: photoPhases.filter((p)=>p.id !== input.id)\n });\n }\n });\n }\n // if update, find and update\n if (type === \"update\") {\n photoPhases = photoPhases.reduce((result, p)=>{\n if (p.id !== input.id) result.push(p);\n if (p.id === input.id) {\n result.push({\n ...p,\n ...input\n });\n }\n return result;\n }, []);\n }\n // if type is create, create with position input.index\n if (type === \"create\") {\n const index = input.index;\n delete input.index;\n photoPhases.splice(index, 0, {\n ...input,\n id: (0,short_uuid__WEBPACK_IMPORTED_MODULE_2__.uuid)()\n });\n }\n // update product.photoPhases\n await updateProject({\n id: data.id,\n photoPhases\n });\n };\n // check if user has access to the same group as the project\n const userHasAccess = user === null || user === void 0 ? void 0 : (ref = user.groups) === null || ref === void 0 ? void 0 : ref.find((group)=>{\n return group.id === (data === null || data === void 0 ? void 0 : data.groupId);\n });\n if (!userHasAccess && !!user && !!(data === null || data === void 0 ? void 0 : data.groupId)) {\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", {\n role: \"alert\",\n className: \"w-full mt-10 flex flex-col justify-center items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"h1\", {\n className: \"text-3xl font-bold mb-3\",\n children: \"アクセスエラー\"\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(\"p\", {\n className: \"mb-4\",\n children: \"この案件を閲覧する権限がありません\"\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)((next_link__WEBPACK_IMPORTED_MODULE_4___default()), {\n href: \"/\",\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_14__/* [\"default\"] */ .Z, {\n variant: \"outlined\",\n children: \"ホームへ戻る\"\n })\n })\n ]\n });\n }\n // 外部共有用のURLとパスワードを発行する\n const generateExternalInfo = async ()=>{\n if (!data.id) return;\n const input = {\n projectId: data.id\n };\n const result = (await aws_amplify__WEBPACK_IMPORTED_MODULE_15__/* .API.graphql */ .b.graphql({\n query: graphql_mutations__WEBPACK_IMPORTED_MODULE_16__.generateExternalShareInfo,\n variables: {\n input\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n })).data.generateExternalShareInfo;\n if (result.externalSharePassword && result.externalShareUrl) {\n await refetch({\n id\n }, {\n progress: false\n });\n addAlert({\n message: \"外部共有用のURLとパスワードを発行しました\",\n severity: \"success\"\n });\n return;\n }\n addAlert({\n message: \"案件の外部共有でエラーが発生しました\",\n severity: \"error\"\n });\n };\n // 外部共有用の画像キーを更新する\n const updateExternalSharedImageKeys = async (shareImageKeys, excludeImageKeys)=>{\n if (!(data === null || data === void 0 ? void 0 : data.id)) return;\n var ref;\n // 現状の共有された画像キー\n const alreadySharedImageKeys = (ref = data === null || data === void 0 ? void 0 : data.externalSharedImageKeys) !== null && ref !== void 0 ? ref : [];\n // size prefixを削除しておく\n const addKeys = shareImageKeys.map((key)=>(0,utils_image__WEBPACK_IMPORTED_MODULE_10__/* .removeSizePrefix */ .IP)(key));\n const delKeys = excludeImageKeys.map((key)=>(0,utils_image__WEBPACK_IMPORTED_MODULE_10__/* .removeSizePrefix */ .IP)(key));\n // 追加→削除する\n const newSharedImages = lodash__WEBPACK_IMPORTED_MODULE_5___default().difference(addKeys, alreadySharedImageKeys);\n const addedImageKeys = [\n ...newSharedImages,\n ...alreadySharedImageKeys\n ];\n const removedImageKeys = lodash__WEBPACK_IMPORTED_MODULE_5___default().difference(addedImageKeys, delKeys);\n return await update({\n id: data === null || data === void 0 ? void 0 : data.id,\n externalSharedImageKeys: removedImageKeys\n });\n };\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ProjectContext.Provider, {\n value: {\n project: data,\n loading,\n update: updateProject,\n updateProjectWithOptimisticLock,\n remove: removeProject,\n access,\n updatePhotoPhases,\n updateExternalSharedImageKeys,\n refetch: async (customVariables)=>{\n return await refetch({\n groupId: currentGroup === null || currentGroup === void 0 ? void 0 : currentGroup.id,\n ...customVariables\n });\n },\n generateExternalInfo,\n isShared\n },\n children: children\n });\n};\nconst useProject = ()=>{\n const projectContext = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(ProjectContext);\n if (projectContext === undefined) {\n throw new Error(\"useProject must be within ProjectsProvider\");\n }\n return projectContext;\n};\n\n\n/***/ }),\n\n/***/ 85262:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"G\": function() { return /* binding */ QuotesProvider; },\n/* harmony export */ \"v\": function() { return /* binding */ useQuotes; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(85893);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67294);\n/* harmony import */ var use_deep_compare_effect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(87620);\n/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(11163);\n/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_router__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var hooks_datalist__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(32380);\n/* harmony import */ var contexts_project__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(46100);\n/* harmony import */ var contexts_dialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(3780);\n/* eslint-disable react-hooks/exhaustive-deps */ \n\n\n\n\n\n\nconst isQuote = (data)=>{\n return data && data.id && data.projectId && data.name;\n};\nconst QuotesContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)({\n quotes: [],\n loading: false,\n create: ()=>Promise.resolve(),\n remove: ()=>Promise.resolve(),\n refetch: ()=>Promise.resolve(),\n copy: ()=>Promise.resolve()\n});\nconst QuotesProvider = (param)=>{\n let { variables , children , by } = param;\n const { data , loading , refetch , create , remove , nextToken , appendNext } = (0,hooks_datalist__WEBPACK_IMPORTED_MODULE_4__/* [\"default\"] */ .Z)({\n query: \"quotesBy\".concat(by || \"ProjectId\"),\n variables: variables,\n sort: \"order\"\n });\n const router = (0,next_router__WEBPACK_IMPORTED_MODULE_3__.useRouter)();\n // FIXME: 全件取得するようにしている、ページネーションを実装する必要がある\n // appendNextの実行状態を管理しないとデータが重複する\n const [fetchingNext, setFetchingNext] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n // nextTokenがnullになるまでappendNextを実行する\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (nextToken && !fetchingNext) {\n // 既にフェッチ中でなければappendNextを呼び出す\n setFetchingNext(true); // フェッチ中の状態をtrueに設定\n appendNext().finally(()=>setFetchingNext(false)); // フェッチが終わったらフェッチ中の状態をfalseに設定\n }\n }, [\n nextToken\n ]);\n const { open } = (0,contexts_dialog__WEBPACK_IMPORTED_MODULE_6__/* .useDialog */ .R)();\n const { project , update } = (0,contexts_project__WEBPACK_IMPORTED_MODULE_5__/* .useProject */ .P)();\n (0,use_deep_compare_effect__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"] */ .ZP)(()=>{\n refetch(variables);\n }, [\n variables\n ]);\n const createQuote = async (input)=>{\n const res = await create(\"generateQuote\", {\n ...input,\n projectId: project === null || project === void 0 ? void 0 : project.id,\n order: data.length\n });\n if (!isQuote(res)) return;\n // 関連するProjectのupdatedを更新\n if (project !== undefined) {\n update({\n id: project.id\n });\n }\n const url = \"/projects/\".concat(res.projectId, \"?page=quotes"eId=\").concat(res.id);\n router.push(url);\n };\n const removeQuote = async (id)=>{\n open({\n title: \"見積を削除しますか?\",\n content: \"削除すると二度と戻せません\",\n okText: \"削除\",\n onOk: async ()=>await remove(\"deleteQuote\", {\n id\n })\n });\n };\n const copyQuote = async (quoteId, name, quoteNumber)=>{\n const res = await create(\"copyQuote\", {\n quoteId: quoteId,\n name: name,\n projectId: project === null || project === void 0 ? void 0 : project.id,\n quoteNumber: quoteNumber,\n order: data.length\n });\n await refetchQuotes();\n if (!isQuote(res)) return;\n // 関連するProjectのupdatedを更新\n if (project !== undefined) {\n update({\n id: project.id\n });\n }\n const url = \"/projects/\".concat(res.projectId, \"?page=quotes"eId=\").concat(res.id);\n router.push(url);\n };\n const refetchQuotes = async ()=>{\n refetch(variables);\n };\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(QuotesContext.Provider, {\n value: {\n quotes: data,\n loading,\n create: createQuote,\n remove: removeQuote,\n refetch: refetchQuotes,\n copy: copyQuote\n },\n children: children\n });\n};\nconst useQuotes = ()=>{\n const quotesContext = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(QuotesContext);\n if (quotesContext === undefined) {\n throw new Error(\"useQuotes must be within QuotesProvider\");\n }\n return quotesContext;\n};\n\n\n/***/ }),\n\n/***/ 89051:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"i\": function() { return /* binding */ SpeciesProvider; },\n/* harmony export */ \"s\": function() { return /* binding */ useSpecies; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(85893);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67294);\n/* harmony import */ var _auth__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17297);\n/* harmony import */ var hooks_datalist__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(32380);\n/* harmony import */ var contexts_dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3780);\n/* harmony import */ var contexts_alerts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(75313);\n\n\n\n\n\n\nconst SpeciesContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)({\n species: [],\n loading: false,\n create: ()=>null,\n update: ()=>null,\n remove: ()=>null\n});\nconst SpeciesProvider = (param)=>{\n let { children , variables } = param;\n const { currentGroup } = (0,_auth__WEBPACK_IMPORTED_MODULE_2__/* .useAuth */ .a)();\n const { data , loading , refetch , create , remove , update , nextToken , appendNext } = (0,hooks_datalist__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"] */ .Z)({\n query: \"speciesByGroupId\",\n variables: {\n groupId: currentGroup === null || currentGroup === void 0 ? void 0 : currentGroup.id\n }\n });\n // FIXME: 全件取得するようにしている、ページネーションを実装する必要がある\n // appendNextの実行状態を管理しないとデータが重複する\n const [fetchingNext, setFetchingNext] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n // nextTokenがnullになるまでappendNextを実行する\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (nextToken && !fetchingNext) {\n // 既にフェッチ中でなければappendNextを呼び出す\n setFetchingNext(true); // フェッチ中の状態をtrueに設定\n appendNext().finally(()=>setFetchingNext(false)); // フェッチが終わったらフェッチ中の状態をfalseに設定\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n nextToken\n ]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n refetch({\n groupId: currentGroup === null || currentGroup === void 0 ? void 0 : currentGroup.id\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n variables,\n currentGroup === null || currentGroup === void 0 ? void 0 : currentGroup.id\n ]);\n const { open } = (0,contexts_dialog__WEBPACK_IMPORTED_MODULE_4__/* .useDialog */ .R)();\n const { addAlert } = (0,contexts_alerts__WEBPACK_IMPORTED_MODULE_5__/* .useAlerts */ .Z)();\n const createSpecies = async (input)=>{\n // inputにcreatedAt, updatedAt, materialsがあったら消す\n delete input.createdAt;\n delete input.updatedAt;\n delete input.materials;\n await create(\"createSpecies\", {\n ...input,\n groupId: currentGroup === null || currentGroup === void 0 ? void 0 : currentGroup.id\n });\n addAlert({\n message: \"材質を作成しました\",\n severity: \"success\"\n });\n };\n const updateSpecies = async (input)=>{\n // inputにcreatedAt, updatedAt, materialsがあったら消す\n delete input.createdAt;\n delete input.updatedAt;\n delete input.materials;\n await update(\"updateSpecies\", {\n ...input\n });\n addAlert({\n message: \"材質を更新しました\",\n severity: \"success\"\n });\n };\n const removeSpecies = async (ids)=>{\n open({\n title: \"材質を削除しますか?\",\n content: \"削除すると二度と戻せません\",\n okText: \"削除\",\n onOk: async ()=>{\n const promises = ids.map((id)=>remove(\"deleteSpecies\", {\n id\n }));\n await Promise.all(promises);\n addAlert({\n message: \"材質を削除しました\",\n severity: \"success\"\n });\n }\n });\n };\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(SpeciesContext.Provider, {\n value: {\n species: data,\n loading,\n create: createSpecies,\n update: updateSpecies,\n remove: removeSpecies\n },\n children: children\n });\n};\nconst useSpecies = ()=>{\n const speciesContext = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(SpeciesContext);\n if (speciesContext === undefined) {\n throw new Error(\"useSpecies must be within SpeciesProvider\");\n }\n return speciesContext;\n};\n\n\n/***/ }),\n\n/***/ 27349:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"S\": function() { return /* binding */ useTenant; },\n/* harmony export */ \"z\": function() { return /* binding */ TenantProvider; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(85893);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67294);\n/* harmony import */ var _auth__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17297);\n/* harmony import */ var hooks_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(5295);\n\n\n\n\nconst TenantContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)({\n tenant: undefined,\n loading: false,\n update: ()=>Promise.resolve(),\n refetch: ()=>Promise.resolve(),\n set: ()=>Promise.resolve\n});\nconst TenantProvider = (param)=>{\n let { children } = param;\n const { user } = (0,_auth__WEBPACK_IMPORTED_MODULE_2__/* .useAuth */ .a)();\n const { data , loading , refetch , update , set } = (0,hooks_data__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"] */ .Z)({\n object: \"tenant\",\n variables: {\n id: user === null || user === void 0 ? void 0 : user.tenantId\n }\n });\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n refetch({\n id: user === null || user === void 0 ? void 0 : user.tenantId\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n user === null || user === void 0 ? void 0 : user.tenantId\n ]);\n const updateTenant = async (input)=>{\n await update(input);\n };\n const values = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n return {\n tenant: data,\n update: updateTenant,\n loading,\n refetch: ()=>{\n return refetch({\n id: user === null || user === void 0 ? void 0 : user.tenantId\n });\n },\n set\n };\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n data,\n update,\n loading,\n set\n ]);\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(TenantContext.Provider, {\n value: values,\n children: children\n });\n};\nconst useTenant = ()=>{\n const tenantContext = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(TenantContext);\n if (tenantContext === undefined) {\n throw new Error(\"useTenant must be within TenantProvider\");\n }\n return tenantContext;\n};\n\n\n/***/ }),\n\n/***/ 46648:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": function() { return /* binding */ useVanplans; },\n/* harmony export */ \"h\": function() { return /* binding */ VanplansProvider; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(85893);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67294);\n/* harmony import */ var _project__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(46100);\n/* harmony import */ var hooks_datalist__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(32380);\n\n\n\n\nconst VanplansContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)({\n vanplans: [],\n loading: false,\n create: ()=>null,\n createAll: ()=>Promise.resolve(\"\"),\n update: ()=>null,\n remove: ()=>null,\n refetch: ()=>null\n});\nconst VanplansProvider = (param)=>{\n let { children , variables } = param;\n const { project } = (0,_project__WEBPACK_IMPORTED_MODULE_2__/* .useProject */ .P)();\n const { data , loading , refetch , create , remove , update , nextToken , appendNext } = (0,hooks_datalist__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"] */ .Z)({\n query: \"vanplansByProjectId\",\n variables: {\n groupId: project === null || project === void 0 ? void 0 : project.id\n }\n });\n // FIXME: 全件取得するようにしている、ページネーションを実装する必要がある\n // appendNextの実行状態を管理しないとデータが重複する\n const [fetchingNext, setFetchingNext] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n // nextTokenがnullになるまでappendNextを実行する\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (nextToken && !fetchingNext) {\n // 既にフェッチ中でなければappendNextを呼び出す\n setFetchingNext(true); // フェッチ中の状態をtrueに設定\n appendNext().finally(()=>setFetchingNext(false)); // フェッチが終わったらフェッチ中の状態をfalseに設定\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n nextToken\n ]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (!(project === null || project === void 0 ? void 0 : project.id)) return;\n refetch({\n projectId: project.id\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n variables,\n project === null || project === void 0 ? void 0 : project.id\n ]);\n const createVanplan = (input)=>{\n create(\"createVanplan\", {\n ...input,\n projectId: project === null || project === void 0 ? void 0 : project.id\n });\n };\n const createAll = async (input)=>{\n const result = await create(\"createVanplanAndContainer\", {\n ...input\n });\n refetch({\n projectId: project === null || project === void 0 ? void 0 : project.id\n }, {\n progress: false\n });\n var ref;\n // idを返す\n return (ref = result === null || result === void 0 ? void 0 : result.vanplanId) !== null && ref !== void 0 ? ref : \"\";\n };\n const updateVanplan = (input)=>{\n update(\"updateVanplan\", {\n ...input\n });\n };\n const removeVanplan = async (id)=>{\n const deleteInput = {\n vanplanId: id\n };\n await remove(\"deleteVanplanAndContainer\", {\n ...deleteInput\n });\n refetch({\n projectId: project === null || project === void 0 ? void 0 : project.id\n }, {\n progress: false\n });\n };\n const refetchVanplans = ()=>{\n refetch({\n projectId: project === null || project === void 0 ? void 0 : project.id\n }, {\n progress: false\n });\n };\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(VanplansContext.Provider, {\n value: {\n vanplans: data,\n loading,\n create: createVanplan,\n createAll,\n update: updateVanplan,\n remove: removeVanplan,\n refetch: refetchVanplans\n },\n children: children\n });\n};\nconst useVanplans = ()=>{\n const vanplansContext = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(VanplansContext);\n if (vanplansContext === undefined) {\n throw new Error(\"useVanplans must be within VanplansProvider\");\n }\n return vanplansContext;\n};\n\n\n/***/ }),\n\n/***/ 95479:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Uw\": function() { return /* binding */ getProductsByProjectId; },\n/* harmony export */ \"de\": function() { return /* binding */ getAllProduct; }\n/* harmony export */ });\n/* unused harmony export getProductIncludeComponentElements */\nconst getAllProduct = \"\\n query GetAllProduct($id: ID!) {\\n getProduct(id: $id) {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n packageTypeName\\n quoteLineId\\n name\\n order\\n productNumber\\n quantity\\n material\\n tareWeight\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n panelM2\\n woodM3\\n note\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n }\\n cases {\\n order\\n name\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n }\\n phaseId\\n isPacked\\n netWeight\\n grossWeight\\n outerLength\\n outerWidth\\n outerHeight\\n thumbnail\\n note\\n }\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n isShipped\\n createdAt\\n updatedAt\\n }\\n areas {\\n items {\\n id\\n productId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n components {\\n items {\\n id\\n areaId\\n name\\n slug\\n order\\n createdAt\\n updatedAt\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n decorations {\\n items {\\n id\\n productId\\n type\\n name\\n slug\\n order\\n unit\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n\";\nconst getProductsByProjectId = \"\\n query GetProductsByProjectId($id: ID!) {\\n productsByProjectId(projectId: $id) {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n packageTypeName\\n quoteLineId\\n name\\n order\\n productNumber\\n quantity\\n material\\n tareWeight\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n }\\n cases {\\n order\\n name\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n }\\n phaseId\\n isPacked\\n netWeight\\n grossWeight\\n outerLength\\n outerWidth\\n outerHeight\\n thumbnail\\n }\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n isShipped\\n createdAt\\n updatedAt\\n }\\n areas {\\n items {\\n id\\n productId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n components {\\n items {\\n id\\n areaId\\n name\\n slug\\n order\\n createdAt\\n updatedAt\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n decorations {\\n items {\\n id\\n productId\\n type\\n name\\n slug\\n order\\n unit\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getProductIncludeComponentElements = \"\\n query GetProductIncludeComponentElements($id: ID!) {\\n getProduct(id: $id) {\\n id\\n pricingId\\n unit\\n name\\n order\\n quantity\\n tareWeight\\n material\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n areas {\\n items {\\n id\\n productId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n components {\\n items {\\n id\\n areaId\\n name\\n slug\\n order\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n }\\n }\\n }\\n }\\n decorations {\\n items {\\n id\\n productId\\n type\\n name\\n slug\\n order\\n unit\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n }\\n }\\n }\\n\";\n\n\n/***/ }),\n\n/***/ 18490:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"accountsByTenantId\": function() { return /* binding */ accountsByTenantId; },\n/* harmony export */ \"areasByProductId\": function() { return /* binding */ areasByProductId; },\n/* harmony export */ \"areasByQuoteProductId\": function() { return /* binding */ areasByQuoteProductId; },\n/* harmony export */ \"baseAreasByPackageTypeId\": function() { return /* binding */ baseAreasByPackageTypeId; },\n/* harmony export */ \"baseComponentsByBaseAreaId\": function() { return /* binding */ baseComponentsByBaseAreaId; },\n/* harmony export */ \"baseDecorationComponentsByPackageTypeId\": function() { return /* binding */ baseDecorationComponentsByPackageTypeId; },\n/* harmony export */ \"checkCaseVersion\": function() { return /* binding */ checkCaseVersion; },\n/* harmony export */ \"clientsByAccountId\": function() { return /* binding */ clientsByAccountId; },\n/* harmony export */ \"componentsByAreaId\": function() { return /* binding */ componentsByAreaId; },\n/* harmony export */ \"contactsByAccountId\": function() { return /* binding */ contactsByAccountId; },\n/* harmony export */ \"contactsByTenantId\": function() { return /* binding */ contactsByTenantId; },\n/* harmony export */ \"containerMastersByGroupId\": function() { return /* binding */ containerMastersByGroupId; },\n/* harmony export */ \"containersByContainerMasterId\": function() { return /* binding */ containersByContainerMasterId; },\n/* harmony export */ \"containersByScheduleId\": function() { return /* binding */ containersByScheduleId; },\n/* harmony export */ \"containersByVanplanId\": function() { return /* binding */ containersByVanplanId; },\n/* harmony export */ \"decorationComponentsByProductId\": function() { return /* binding */ decorationComponentsByProductId; },\n/* harmony export */ \"decorationComponentsByQuoteProductId\": function() { return /* binding */ decorationComponentsByQuoteProductId; },\n/* harmony export */ \"downloadContainerMasterPreset\": function() { return /* binding */ downloadContainerMasterPreset; },\n/* harmony export */ \"getAccessLog\": function() { return /* binding */ getAccessLog; },\n/* harmony export */ \"getAccount\": function() { return /* binding */ getAccount; },\n/* harmony export */ \"getArea\": function() { return /* binding */ getArea; },\n/* harmony export */ \"getBaseArea\": function() { return /* binding */ getBaseArea; },\n/* harmony export */ \"getBaseComponent\": function() { return /* binding */ getBaseComponent; },\n/* harmony export */ \"getBaseDecorationComponent\": function() { return /* binding */ getBaseDecorationComponent; },\n/* harmony export */ \"getClient\": function() { return /* binding */ getClient; },\n/* harmony export */ \"getComponent\": function() { return /* binding */ getComponent; },\n/* harmony export */ \"getContact\": function() { return /* binding */ getContact; },\n/* harmony export */ \"getContainer\": function() { return /* binding */ getContainer; },\n/* harmony export */ \"getContainerMaster\": function() { return /* binding */ getContainerMaster; },\n/* harmony export */ \"getContainerMasterPreset\": function() { return /* binding */ getContainerMasterPreset; },\n/* harmony export */ \"getDecorationComponent\": function() { return /* binding */ getDecorationComponent; },\n/* harmony export */ \"getGroup\": function() { return /* binding */ getGroup; },\n/* harmony export */ \"getGroupReport\": function() { return /* binding */ getGroupReport; },\n/* harmony export */ \"getHoliday\": function() { return /* binding */ getHoliday; },\n/* harmony export */ \"getInvoice\": function() { return /* binding */ getInvoice; },\n/* harmony export */ \"getInvoiceLine\": function() { return /* binding */ getInvoiceLine; },\n/* harmony export */ \"getMaterial\": function() { return /* binding */ getMaterial; },\n/* harmony export */ \"getMaterialType\": function() { return /* binding */ getMaterialType; },\n/* harmony export */ \"getMetaTable\": function() { return /* binding */ getMetaTable; },\n/* harmony export */ \"getPackageBom\": function() { return /* binding */ getPackageBom; },\n/* harmony export */ \"getPackageType\": function() { return /* binding */ getPackageType; },\n/* harmony export */ \"getPriceType\": function() { return /* binding */ getPriceType; },\n/* harmony export */ \"getPricing\": function() { return /* binding */ getPricing; },\n/* harmony export */ \"getProduct\": function() { return /* binding */ getProduct; },\n/* harmony export */ \"getProductBom\": function() { return /* binding */ getProductBom; },\n/* harmony export */ \"getProject\": function() { return /* binding */ getProject; },\n/* harmony export */ \"getProjectCategory\": function() { return /* binding */ getProjectCategory; },\n/* harmony export */ \"getPurchasing\": function() { return /* binding */ getPurchasing; },\n/* harmony export */ \"getQuote\": function() { return /* binding */ getQuote; },\n/* harmony export */ \"getQuoteLine\": function() { return /* binding */ getQuoteLine; },\n/* harmony export */ \"getQuoteProduct\": function() { return /* binding */ getQuoteProduct; },\n/* harmony export */ \"getReport\": function() { return /* binding */ getReport; },\n/* harmony export */ \"getReportTemplate\": function() { return /* binding */ getReportTemplate; },\n/* harmony export */ \"getSFObject\": function() { return /* binding */ getSFObject; },\n/* harmony export */ \"getSchedule\": function() { return /* binding */ getSchedule; },\n/* harmony export */ \"getSpecies\": function() { return /* binding */ getSpecies; },\n/* harmony export */ \"getSummary\": function() { return /* binding */ getSummary; },\n/* harmony export */ \"getSyncLog\": function() { return /* binding */ getSyncLog; },\n/* harmony export */ \"getTenant\": function() { return /* binding */ getTenant; },\n/* harmony export */ \"getUnit\": function() { return /* binding */ getUnit; },\n/* harmony export */ \"getUser\": function() { return /* binding */ getUser; },\n/* harmony export */ \"getUsersTenants\": function() { return /* binding */ getUsersTenants; },\n/* harmony export */ \"getVanplan\": function() { return /* binding */ getVanplan; },\n/* harmony export */ \"getVendor\": function() { return /* binding */ getVendor; },\n/* harmony export */ \"groupReportsByGroupId\": function() { return /* binding */ groupReportsByGroupId; },\n/* harmony export */ \"groupsByMainContainerMasterId\": function() { return /* binding */ groupsByMainContainerMasterId; },\n/* harmony export */ \"groupsByTenantId\": function() { return /* binding */ groupsByTenantId; },\n/* harmony export */ \"groupsByUserId\": function() { return /* binding */ groupsByUserId; },\n/* harmony export */ \"holidaysByGroupId\": function() { return /* binding */ holidaysByGroupId; },\n/* harmony export */ \"invoiceLinesByInvoiceId\": function() { return /* binding */ invoiceLinesByInvoiceId; },\n/* harmony export */ \"invoicesByGroupAndBillingDate\": function() { return /* binding */ invoicesByGroupAndBillingDate; },\n/* harmony export */ \"invoicesByGroupAndIssueDate\": function() { return /* binding */ invoicesByGroupAndIssueDate; },\n/* harmony export */ \"invoicesByGroupAndRecordingDate\": function() { return /* binding */ invoicesByGroupAndRecordingDate; },\n/* harmony export */ \"invoicesByProjectId\": function() { return /* binding */ invoicesByProjectId; },\n/* harmony export */ \"legacyUsersByTenantId\": function() { return /* binding */ legacyUsersByTenantId; },\n/* harmony export */ \"listAccessLogs\": function() { return /* binding */ listAccessLogs; },\n/* harmony export */ \"listAccounts\": function() { return /* binding */ listAccounts; },\n/* harmony export */ \"listAreas\": function() { return /* binding */ listAreas; },\n/* harmony export */ \"listBaseAreas\": function() { return /* binding */ listBaseAreas; },\n/* harmony export */ \"listBaseComponents\": function() { return /* binding */ listBaseComponents; },\n/* harmony export */ \"listBaseDecorationComponents\": function() { return /* binding */ listBaseDecorationComponents; },\n/* harmony export */ \"listClients\": function() { return /* binding */ listClients; },\n/* harmony export */ \"listComponents\": function() { return /* binding */ listComponents; },\n/* harmony export */ \"listContacts\": function() { return /* binding */ listContacts; },\n/* harmony export */ \"listContainerMasterPresets\": function() { return /* binding */ listContainerMasterPresets; },\n/* harmony export */ \"listContainerMasters\": function() { return /* binding */ listContainerMasters; },\n/* harmony export */ \"listContainers\": function() { return /* binding */ listContainers; },\n/* harmony export */ \"listDecorationComponents\": function() { return /* binding */ listDecorationComponents; },\n/* harmony export */ \"listGroupReports\": function() { return /* binding */ listGroupReports; },\n/* harmony export */ \"listGroups\": function() { return /* binding */ listGroups; },\n/* harmony export */ \"listHolidays\": function() { return /* binding */ listHolidays; },\n/* harmony export */ \"listInvoiceLines\": function() { return /* binding */ listInvoiceLines; },\n/* harmony export */ \"listInvoices\": function() { return /* binding */ listInvoices; },\n/* harmony export */ \"listMaterialTypes\": function() { return /* binding */ listMaterialTypes; },\n/* harmony export */ \"listMaterials\": function() { return /* binding */ listMaterials; },\n/* harmony export */ \"listMetaTables\": function() { return /* binding */ listMetaTables; },\n/* harmony export */ \"listPackageTypes\": function() { return /* binding */ listPackageTypes; },\n/* harmony export */ \"listPriceTypes\": function() { return /* binding */ listPriceTypes; },\n/* harmony export */ \"listPricings\": function() { return /* binding */ listPricings; },\n/* harmony export */ \"listProducts\": function() { return /* binding */ listProducts; },\n/* harmony export */ \"listProjectCategories\": function() { return /* binding */ listProjectCategories; },\n/* harmony export */ \"listProjects\": function() { return /* binding */ listProjects; },\n/* harmony export */ \"listPurchasings\": function() { return /* binding */ listPurchasings; },\n/* harmony export */ \"listQuoteLines\": function() { return /* binding */ listQuoteLines; },\n/* harmony export */ \"listQuoteProducts\": function() { return /* binding */ listQuoteProducts; },\n/* harmony export */ \"listQuotes\": function() { return /* binding */ listQuotes; },\n/* harmony export */ \"listReportTemplates\": function() { return /* binding */ listReportTemplates; },\n/* harmony export */ \"listReports\": function() { return /* binding */ listReports; },\n/* harmony export */ \"listSFFieldsBySFObject\": function() { return /* binding */ listSFFieldsBySFObject; },\n/* harmony export */ \"listSFObjectNames\": function() { return /* binding */ listSFObjectNames; },\n/* harmony export */ \"listSFObjects\": function() { return /* binding */ listSFObjects; },\n/* harmony export */ \"listSchedules\": function() { return /* binding */ listSchedules; },\n/* harmony export */ \"listSpecies\": function() { return /* binding */ listSpecies; },\n/* harmony export */ \"listSummaries\": function() { return /* binding */ listSummaries; },\n/* harmony export */ \"listSummarizedInvoices\": function() { return /* binding */ listSummarizedInvoices; },\n/* harmony export */ \"listSummarizedMaterials\": function() { return /* binding */ listSummarizedMaterials; },\n/* harmony export */ \"listSyncLogs\": function() { return /* binding */ listSyncLogs; },\n/* harmony export */ \"listTenants\": function() { return /* binding */ listTenants; },\n/* harmony export */ \"listUnits\": function() { return /* binding */ listUnits; },\n/* harmony export */ \"listUsers\": function() { return /* binding */ listUsers; },\n/* harmony export */ \"listUsersTenants\": function() { return /* binding */ listUsersTenants; },\n/* harmony export */ \"listVanplans\": function() { return /* binding */ listVanplans; },\n/* harmony export */ \"listVendors\": function() { return /* binding */ listVendors; },\n/* harmony export */ \"mainContainerMastersByGroupId\": function() { return /* binding */ mainContainerMastersByGroupId; },\n/* harmony export */ \"materialTypesByGroupId\": function() { return /* binding */ materialTypesByGroupId; },\n/* harmony export */ \"materialsByGroupId\": function() { return /* binding */ materialsByGroupId; },\n/* harmony export */ \"materialsBySpeciesId\": function() { return /* binding */ materialsBySpeciesId; },\n/* harmony export */ \"materialsByTypeId\": function() { return /* binding */ materialsByTypeId; },\n/* harmony export */ \"materialsByVendorId\": function() { return /* binding */ materialsByVendorId; },\n/* harmony export */ \"metaTableByName\": function() { return /* binding */ metaTableByName; },\n/* harmony export */ \"packageTypesByGroupId\": function() { return /* binding */ packageTypesByGroupId; },\n/* harmony export */ \"packageTypesByPricingId\": function() { return /* binding */ packageTypesByPricingId; },\n/* harmony export */ \"priceTypesByGroupId\": function() { return /* binding */ priceTypesByGroupId; },\n/* harmony export */ \"pricingsByGroupId\": function() { return /* binding */ pricingsByGroupId; },\n/* harmony export */ \"pricingsByTypeId\": function() { return /* binding */ pricingsByTypeId; },\n/* harmony export */ \"productSummariesByProjectId\": function() { return /* binding */ productSummariesByProjectId; },\n/* harmony export */ \"productsByPackageTypeId\": function() { return /* binding */ productsByPackageTypeId; },\n/* harmony export */ \"productsByProjectId\": function() { return /* binding */ productsByProjectId; },\n/* harmony export */ \"productsByScheduleId\": function() { return /* binding */ productsByScheduleId; },\n/* harmony export */ \"projectCategoriesByGroupId\": function() { return /* binding */ projectCategoriesByGroupId; },\n/* harmony export */ \"projectsByAccountId\": function() { return /* binding */ projectsByAccountId; },\n/* harmony export */ \"projectsByCategoryId\": function() { return /* binding */ projectsByCategoryId; },\n/* harmony export */ \"projectsByContactId\": function() { return /* binding */ projectsByContactId; },\n/* harmony export */ \"projectsByGroupId\": function() { return /* binding */ projectsByGroupId; },\n/* harmony export */ \"projectsByGroupIdForManager\": function() { return /* binding */ projectsByGroupIdForManager; },\n/* harmony export */ \"projectsByGroupIdForMobile\": function() { return /* binding */ projectsByGroupIdForMobile; },\n/* harmony export */ \"projectsByUserId\": function() { return /* binding */ projectsByUserId; },\n/* harmony export */ \"purchasingsByGroupId\": function() { return /* binding */ purchasingsByGroupId; },\n/* harmony export */ \"purchasingsByMaterialId\": function() { return /* binding */ purchasingsByMaterialId; },\n/* harmony export */ \"purchasingsByVendorId\": function() { return /* binding */ purchasingsByVendorId; },\n/* harmony export */ \"quoteLinesByQuoteId\": function() { return /* binding */ quoteLinesByQuoteId; },\n/* harmony export */ \"quoteProductsByPackageTypeId\": function() { return /* binding */ quoteProductsByPackageTypeId; },\n/* harmony export */ \"quoteProductsByProjectId\": function() { return /* binding */ quoteProductsByProjectId; },\n/* harmony export */ \"quoteSummariesByQuoteId\": function() { return /* binding */ quoteSummariesByQuoteId; },\n/* harmony export */ \"quotesByProjectId\": function() { return /* binding */ quotesByProjectId; },\n/* harmony export */ \"reportProjects\": function() { return /* binding */ reportProjects; },\n/* harmony export */ \"reportsByGroupId\": function() { return /* binding */ reportsByGroupId; },\n/* harmony export */ \"reportsByProjectId\": function() { return /* binding */ reportsByProjectId; },\n/* harmony export */ \"sFObjectByTenantIdAndName\": function() { return /* binding */ sFObjectByTenantIdAndName; },\n/* harmony export */ \"sFObjectsByTenantId\": function() { return /* binding */ sFObjectsByTenantId; },\n/* harmony export */ \"schedulesByProjectId\": function() { return /* binding */ schedulesByProjectId; },\n/* harmony export */ \"signInExternalSharePage\": function() { return /* binding */ signInExternalSharePage; },\n/* harmony export */ \"speciesByGroupId\": function() { return /* binding */ speciesByGroupId; },\n/* harmony export */ \"summariesByProjectId\": function() { return /* binding */ summariesByProjectId; },\n/* harmony export */ \"syncLogsBySFObject\": function() { return /* binding */ syncLogsBySFObject; },\n/* harmony export */ \"tenantsByUserId\": function() { return /* binding */ tenantsByUserId; },\n/* harmony export */ \"testSync\": function() { return /* binding */ testSync; },\n/* harmony export */ \"unitsByTenantId\": function() { return /* binding */ unitsByTenantId; },\n/* harmony export */ \"usersByEmail\": function() { return /* binding */ usersByEmail; },\n/* harmony export */ \"usersByGroupId\": function() { return /* binding */ usersByGroupId; },\n/* harmony export */ \"usersByTenantId\": function() { return /* binding */ usersByTenantId; },\n/* harmony export */ \"vanplansByProjectId\": function() { return /* binding */ vanplansByProjectId; },\n/* harmony export */ \"vanplansByScheduleId\": function() { return /* binding */ vanplansByScheduleId; },\n/* harmony export */ \"vendorsByMaterialId\": function() { return /* binding */ vendorsByMaterialId; },\n/* harmony export */ \"vendorsByTenantId\": function() { return /* binding */ vendorsByTenantId; },\n/* harmony export */ \"verifyExternalShareAccessToken\": function() { return /* binding */ verifyExternalShareAccessToken; }\n/* harmony export */ });\n/* tslint:disable */ /* eslint-disable */ // this is an auto generated file. This will be overwritten\nconst materialsByVendorId = \"\\n query MaterialsByVendorId(\\n $vendorId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelVendorsMaterialsFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n materialsByVendorId(\\n vendorId: $vendorId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n purchasings {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n note\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n vendors {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n species {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n materialType {\\n id\\n groupId\\n name\\n description\\n type\\n isWood\\n isPanel\\n isLvl\\n isNormalWood\\n summaryReportTarget\\n customFields {\\n name\\n type\\n required\\n }\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n purchasings {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n note\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst vendorsByMaterialId = \"\\n query VendorsByMaterialId(\\n $materialId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelVendorsMaterialsFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n vendorsByMaterialId(\\n materialId: $materialId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n purchasings {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n note\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n vendors {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n species {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n materialType {\\n id\\n groupId\\n name\\n description\\n type\\n isWood\\n isPanel\\n isLvl\\n isNormalWood\\n summaryReportTarget\\n customFields {\\n name\\n type\\n required\\n }\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n purchasings {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n note\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst groupsByMainContainerMasterId = \"\\n query GroupsByMainContainerMasterId(\\n $containerMasterId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelGroupsContainerMastersFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n groupsByMainContainerMasterId(\\n containerMasterId: $containerMasterId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n containerMasterId\\n groupId\\n order\\n createdAt\\n updatedAt\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n items {\\n id\\n groupId\\n name\\n date\\n isWorking\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n mainContainerMasters {\\n items {\\n id\\n containerMasterId\\n groupId\\n order\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n }\\n containerMaster {\\n id\\n groupId\\n presetId\\n name\\n order\\n active\\n insideLangth\\n insideWidth\\n insideHeight\\n payload\\n cost\\n noEndWalls\\n noSideWalls\\n noRoof\\n doorWidth\\n doorHeight\\n doorAtLongside\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst mainContainerMastersByGroupId = \"\\n query MainContainerMastersByGroupId(\\n $groupId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelGroupsContainerMastersFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n mainContainerMastersByGroupId(\\n groupId: $groupId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n containerMasterId\\n groupId\\n order\\n createdAt\\n updatedAt\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n items {\\n id\\n groupId\\n name\\n date\\n isWorking\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n mainContainerMasters {\\n items {\\n id\\n containerMasterId\\n groupId\\n order\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n }\\n containerMaster {\\n id\\n groupId\\n presetId\\n name\\n order\\n active\\n insideLangth\\n insideWidth\\n insideHeight\\n payload\\n cost\\n noEndWalls\\n noSideWalls\\n noRoof\\n doorWidth\\n doorHeight\\n doorAtLongside\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst groupsByUserId = \"\\n query GroupsByUserId(\\n $userId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelUsersGroupsFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n groupsByUserId(\\n userId: $userId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n tenants {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n customId\\n active\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n items {\\n id\\n groupId\\n name\\n date\\n isWorking\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n mainContainerMasters {\\n items {\\n id\\n containerMasterId\\n groupId\\n order\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst usersByGroupId = \"\\n query UsersByGroupId(\\n $groupId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelUsersGroupsFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n usersByGroupId(\\n groupId: $groupId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n tenants {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n customId\\n active\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n items {\\n id\\n groupId\\n name\\n date\\n isWorking\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n mainContainerMasters {\\n items {\\n id\\n containerMasterId\\n groupId\\n order\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getAccount = \"\\n query GetAccount($id: ID!) {\\n getAccount(id: $id) {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n }\\n\";\nconst listAccounts = \"\\n query ListAccounts(\\n $filter: ModelAccountFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listAccounts(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst accountsByTenantId = \"\\n query AccountsByTenantId(\\n $tenantId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelAccountFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n accountsByTenantId(\\n tenantId: $tenantId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getClient = \"\\n query GetClient($id: ID!) {\\n getClient(id: $id) {\\n id\\n accountId\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n phone\\n fax\\n customeCode\\n createdAt\\n updatedAt\\n }\\n }\\n\";\nconst listClients = \"\\n query ListClients(\\n $filter: ModelClientFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listClients(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n accountId\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n phone\\n fax\\n customeCode\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst clientsByAccountId = \"\\n query ClientsByAccountId(\\n $accountId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelClientFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n clientsByAccountId(\\n accountId: $accountId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n accountId\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n phone\\n fax\\n customeCode\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst getContact = \"\\n query GetContact($id: ID!) {\\n getContact(id: $id) {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n }\\n }\\n\";\nconst listContacts = \"\\n query ListContacts(\\n $filter: ModelContactFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listContacts(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst contactsByAccountId = \"\\n query ContactsByAccountId(\\n $accountId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelContactFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n contactsByAccountId(\\n accountId: $accountId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst contactsByTenantId = \"\\n query ContactsByTenantId(\\n $tenantId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelContactFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n contactsByTenantId(\\n tenantId: $tenantId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getUnit = \"\\n query GetUnit($id: ID!) {\\n getUnit(id: $id) {\\n id\\n name\\n tenantId\\n createdAt\\n updatedAt\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n items {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n sfObjects {\\n items {\\n id\\n name\\n tenantId\\n label\\n sfObjectName\\n editable\\n condition\\n fields {\\n name\\n label\\n apiName\\n type\\n required\\n unique\\n primary\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n tenants {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n groups {\\n items {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n mainContainerMasters {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n }\\n }\\n\";\nconst listUnits = \"\\n query ListUnits(\\n $filter: ModelUnitFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listUnits(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n name\\n tenantId\\n createdAt\\n updatedAt\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n items {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n sfObjects {\\n items {\\n id\\n name\\n tenantId\\n label\\n sfObjectName\\n editable\\n condition\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n groups {\\n items {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst unitsByTenantId = \"\\n query UnitsByTenantId(\\n $tenantId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelUnitFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n unitsByTenantId(\\n tenantId: $tenantId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n name\\n tenantId\\n createdAt\\n updatedAt\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n items {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n sfObjects {\\n items {\\n id\\n name\\n tenantId\\n label\\n sfObjectName\\n editable\\n condition\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n groups {\\n items {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getHoliday = \"\\n query GetHoliday($id: ID!) {\\n getHoliday(id: $id) {\\n id\\n groupId\\n name\\n date\\n isWorking\\n createdAt\\n updatedAt\\n }\\n }\\n\";\nconst listHolidays = \"\\n query ListHolidays(\\n $filter: ModelHolidayFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listHolidays(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n groupId\\n name\\n date\\n isWorking\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst holidaysByGroupId = \"\\n query HolidaysByGroupId(\\n $groupId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelHolidayFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n holidaysByGroupId(\\n groupId: $groupId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n groupId\\n name\\n date\\n isWorking\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst getInvoice = \"\\n query GetInvoice($id: ID!) {\\n getInvoice(id: $id) {\\n id\\n externalId\\n projectId\\n accountId\\n contactId\\n userId\\n groupId\\n order\\n name\\n invoiceNo\\n issueDate\\n billed\\n billingDate\\n description\\n subtotal\\n nonTaxableTotal\\n taxableSubtotal\\n taxTotal\\n taxableTotal\\n total\\n accountName\\n accountSite\\n billingType\\n accountAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n contactName\\n contactFirstName\\n contactLastName\\n contactDepartment\\n contactTitle\\n groupName\\n logoUrl\\n groupBank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n phone\\n fax\\n taxRate\\n url\\n syncLogId\\n syncedAt\\n syncStatus\\n totalPurchasingCost\\n grossProfit\\n grossProfitMargin\\n recordingDate\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n invoiceLines {\\n items {\\n id\\n externalId\\n invoiceId\\n vendorId\\n vendorName\\n vendorAccountCode\\n vendorSite\\n pricingId\\n pricingName\\n quoteLineId\\n name\\n shippingDate\\n salesType\\n order\\n m3\\n grossWeight\\n quantity\\n rt\\n amount\\n minimumAmount\\n actualAmount\\n unit\\n unitPrice\\n taxRate\\n taxTotal\\n subtotal\\n total\\n taxType\\n sfTaxType\\n synced\\n description\\n unitPurchasingCost\\n totalPurchasingCost\\n createdAt\\n updatedAt\\n invoice {\\n id\\n externalId\\n projectId\\n accountId\\n contactId\\n userId\\n groupId\\n order\\n name\\n invoiceNo\\n issueDate\\n billed\\n billingDate\\n description\\n subtotal\\n nonTaxableTotal\\n taxableSubtotal\\n taxTotal\\n taxableTotal\\n total\\n accountName\\n accountSite\\n billingType\\n accountAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n contactName\\n contactFirstName\\n contactLastName\\n contactDepartment\\n contactTitle\\n groupName\\n logoUrl\\n groupBank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n phone\\n fax\\n taxRate\\n url\\n syncLogId\\n syncedAt\\n syncStatus\\n totalPurchasingCost\\n grossProfit\\n grossProfitMargin\\n recordingDate\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n invoiceLines {\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n purchasings {\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n }\\n schedules {\\n items {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n }\\n vanplans {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n projects {\\n items {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n }\\n nextToken\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n tenants {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n customId\\n active\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n items {\\n id\\n groupId\\n name\\n date\\n isWorking\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n mainContainerMasters {\\n items {\\n id\\n containerMasterId\\n groupId\\n order\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n items {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n sfObjects {\\n items {\\n id\\n name\\n tenantId\\n label\\n sfObjectName\\n editable\\n condition\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n groups {\\n items {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n tenants {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n customId\\n active\\n createdAt\\n updatedAt\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n items {\\n id\\n groupId\\n name\\n date\\n isWorking\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n mainContainerMasters {\\n items {\\n id\\n containerMasterId\\n groupId\\n order\\n createdAt\\n updatedAt\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n containerMaster {\\n id\\n groupId\\n presetId\\n name\\n order\\n active\\n insideLangth\\n insideWidth\\n insideHeight\\n payload\\n cost\\n noEndWalls\\n noSideWalls\\n noRoof\\n doorWidth\\n doorHeight\\n doorAtLongside\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n items {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n sfObjects {\\n items {\\n id\\n name\\n tenantId\\n label\\n sfObjectName\\n editable\\n condition\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n groups {\\n items {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n }\\n }\\n\";\nconst listInvoices = \"\\n query ListInvoices(\\n $filter: ModelInvoiceFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listInvoices(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n externalId\\n projectId\\n accountId\\n contactId\\n userId\\n groupId\\n order\\n name\\n invoiceNo\\n issueDate\\n billed\\n billingDate\\n description\\n subtotal\\n nonTaxableTotal\\n taxableSubtotal\\n taxTotal\\n taxableTotal\\n total\\n accountName\\n accountSite\\n billingType\\n accountAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n contactName\\n contactFirstName\\n contactLastName\\n contactDepartment\\n contactTitle\\n groupName\\n logoUrl\\n groupBank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n phone\\n fax\\n taxRate\\n url\\n syncLogId\\n syncedAt\\n syncStatus\\n totalPurchasingCost\\n grossProfit\\n grossProfitMargin\\n recordingDate\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n }\\n invoiceLines {\\n items {\\n id\\n externalId\\n invoiceId\\n vendorId\\n vendorName\\n vendorAccountCode\\n vendorSite\\n pricingId\\n pricingName\\n quoteLineId\\n name\\n shippingDate\\n salesType\\n order\\n m3\\n grossWeight\\n quantity\\n rt\\n amount\\n minimumAmount\\n actualAmount\\n unit\\n unitPrice\\n taxRate\\n taxTotal\\n subtotal\\n total\\n taxType\\n sfTaxType\\n synced\\n description\\n unitPurchasingCost\\n totalPurchasingCost\\n createdAt\\n updatedAt\\n invoice {\\n id\\n externalId\\n projectId\\n accountId\\n contactId\\n userId\\n groupId\\n order\\n name\\n invoiceNo\\n issueDate\\n billed\\n billingDate\\n description\\n subtotal\\n nonTaxableTotal\\n taxableSubtotal\\n taxTotal\\n taxableTotal\\n total\\n accountName\\n accountSite\\n billingType\\n contactName\\n contactFirstName\\n contactLastName\\n contactDepartment\\n contactTitle\\n groupName\\n logoUrl\\n phone\\n fax\\n taxRate\\n url\\n syncLogId\\n syncedAt\\n syncStatus\\n totalPurchasingCost\\n grossProfit\\n grossProfitMargin\\n recordingDate\\n createdAt\\n updatedAt\\n }\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n }\\n schedules {\\n items {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n stockNumImgs\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n projects {\\n nextToken\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n tenants {\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n mainContainerMasters {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n tenants {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n customId\\n active\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n items {\\n id\\n groupId\\n name\\n date\\n isWorking\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n mainContainerMasters {\\n items {\\n id\\n containerMasterId\\n groupId\\n order\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst invoicesByProjectId = \"\\n query InvoicesByProjectId(\\n $projectId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelInvoiceFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n invoicesByProjectId(\\n projectId: $projectId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n externalId\\n projectId\\n accountId\\n contactId\\n userId\\n groupId\\n order\\n name\\n invoiceNo\\n issueDate\\n billed\\n billingDate\\n description\\n subtotal\\n nonTaxableTotal\\n taxableSubtotal\\n taxTotal\\n taxableTotal\\n total\\n accountName\\n accountSite\\n billingType\\n accountAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n contactName\\n contactFirstName\\n contactLastName\\n contactDepartment\\n contactTitle\\n groupName\\n logoUrl\\n groupBank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n phone\\n fax\\n taxRate\\n url\\n syncLogId\\n syncedAt\\n syncStatus\\n totalPurchasingCost\\n grossProfit\\n grossProfitMargin\\n recordingDate\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n }\\n invoiceLines {\\n items {\\n id\\n externalId\\n invoiceId\\n vendorId\\n vendorName\\n vendorAccountCode\\n vendorSite\\n pricingId\\n pricingName\\n quoteLineId\\n name\\n shippingDate\\n salesType\\n order\\n m3\\n grossWeight\\n quantity\\n rt\\n amount\\n minimumAmount\\n actualAmount\\n unit\\n unitPrice\\n taxRate\\n taxTotal\\n subtotal\\n total\\n taxType\\n sfTaxType\\n synced\\n description\\n unitPurchasingCost\\n totalPurchasingCost\\n createdAt\\n updatedAt\\n invoice {\\n id\\n externalId\\n projectId\\n accountId\\n contactId\\n userId\\n groupId\\n order\\n name\\n invoiceNo\\n issueDate\\n billed\\n billingDate\\n description\\n subtotal\\n nonTaxableTotal\\n taxableSubtotal\\n taxTotal\\n taxableTotal\\n total\\n accountName\\n accountSite\\n billingType\\n contactName\\n contactFirstName\\n contactLastName\\n contactDepartment\\n contactTitle\\n groupName\\n logoUrl\\n phone\\n fax\\n taxRate\\n url\\n syncLogId\\n syncedAt\\n syncStatus\\n totalPurchasingCost\\n grossProfit\\n grossProfitMargin\\n recordingDate\\n createdAt\\n updatedAt\\n }\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n }\\n schedules {\\n items {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n stockNumImgs\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n projects {\\n nextToken\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n tenants {\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n mainContainerMasters {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n tenants {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n customId\\n active\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n items {\\n id\\n groupId\\n name\\n date\\n isWorking\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n mainContainerMasters {\\n items {\\n id\\n containerMasterId\\n groupId\\n order\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst invoicesByGroupAndIssueDate = \"\\n query InvoicesByGroupAndIssueDate(\\n $groupId: ID\\n $issueDate: ModelStringKeyConditionInput\\n $sortDirection: ModelSortDirection\\n $filter: ModelInvoiceFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n invoicesByGroupAndIssueDate(\\n groupId: $groupId\\n issueDate: $issueDate\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n externalId\\n projectId\\n accountId\\n contactId\\n userId\\n groupId\\n order\\n name\\n invoiceNo\\n issueDate\\n billed\\n billingDate\\n description\\n subtotal\\n nonTaxableTotal\\n taxableSubtotal\\n taxTotal\\n taxableTotal\\n total\\n accountName\\n accountSite\\n billingType\\n accountAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n contactName\\n contactFirstName\\n contactLastName\\n contactDepartment\\n contactTitle\\n groupName\\n logoUrl\\n groupBank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n phone\\n fax\\n taxRate\\n url\\n syncLogId\\n syncedAt\\n syncStatus\\n totalPurchasingCost\\n grossProfit\\n grossProfitMargin\\n recordingDate\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n }\\n invoiceLines {\\n items {\\n id\\n externalId\\n invoiceId\\n vendorId\\n vendorName\\n vendorAccountCode\\n vendorSite\\n pricingId\\n pricingName\\n quoteLineId\\n name\\n shippingDate\\n salesType\\n order\\n m3\\n grossWeight\\n quantity\\n rt\\n amount\\n minimumAmount\\n actualAmount\\n unit\\n unitPrice\\n taxRate\\n taxTotal\\n subtotal\\n total\\n taxType\\n sfTaxType\\n synced\\n description\\n unitPurchasingCost\\n totalPurchasingCost\\n createdAt\\n updatedAt\\n invoice {\\n id\\n externalId\\n projectId\\n accountId\\n contactId\\n userId\\n groupId\\n order\\n name\\n invoiceNo\\n issueDate\\n billed\\n billingDate\\n description\\n subtotal\\n nonTaxableTotal\\n taxableSubtotal\\n taxTotal\\n taxableTotal\\n total\\n accountName\\n accountSite\\n billingType\\n contactName\\n contactFirstName\\n contactLastName\\n contactDepartment\\n contactTitle\\n groupName\\n logoUrl\\n phone\\n fax\\n taxRate\\n url\\n syncLogId\\n syncedAt\\n syncStatus\\n totalPurchasingCost\\n grossProfit\\n grossProfitMargin\\n recordingDate\\n createdAt\\n updatedAt\\n }\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n }\\n schedules {\\n items {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n stockNumImgs\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n projects {\\n nextToken\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n tenants {\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n mainContainerMasters {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n tenants {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n customId\\n active\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n items {\\n id\\n groupId\\n name\\n date\\n isWorking\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n mainContainerMasters {\\n items {\\n id\\n containerMasterId\\n groupId\\n order\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst invoicesByGroupAndRecordingDate = \"\\n query InvoicesByGroupAndRecordingDate(\\n $groupId: ID\\n $recordingDate: ModelStringKeyConditionInput\\n $sortDirection: ModelSortDirection\\n $filter: ModelInvoiceFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n invoicesByGroupAndRecordingDate(\\n groupId: $groupId\\n recordingDate: $recordingDate\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n externalId\\n projectId\\n accountId\\n contactId\\n userId\\n groupId\\n order\\n name\\n invoiceNo\\n issueDate\\n billed\\n billingDate\\n description\\n subtotal\\n nonTaxableTotal\\n taxableSubtotal\\n taxTotal\\n taxableTotal\\n total\\n accountName\\n accountSite\\n billingType\\n accountAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n contactName\\n contactFirstName\\n contactLastName\\n contactDepartment\\n contactTitle\\n groupName\\n logoUrl\\n groupBank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n phone\\n fax\\n taxRate\\n url\\n syncLogId\\n syncedAt\\n syncStatus\\n totalPurchasingCost\\n grossProfit\\n grossProfitMargin\\n recordingDate\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n }\\n invoiceLines {\\n items {\\n id\\n externalId\\n invoiceId\\n vendorId\\n vendorName\\n vendorAccountCode\\n vendorSite\\n pricingId\\n pricingName\\n quoteLineId\\n name\\n shippingDate\\n salesType\\n order\\n m3\\n grossWeight\\n quantity\\n rt\\n amount\\n minimumAmount\\n actualAmount\\n unit\\n unitPrice\\n taxRate\\n taxTotal\\n subtotal\\n total\\n taxType\\n sfTaxType\\n synced\\n description\\n unitPurchasingCost\\n totalPurchasingCost\\n createdAt\\n updatedAt\\n invoice {\\n id\\n externalId\\n projectId\\n accountId\\n contactId\\n userId\\n groupId\\n order\\n name\\n invoiceNo\\n issueDate\\n billed\\n billingDate\\n description\\n subtotal\\n nonTaxableTotal\\n taxableSubtotal\\n taxTotal\\n taxableTotal\\n total\\n accountName\\n accountSite\\n billingType\\n contactName\\n contactFirstName\\n contactLastName\\n contactDepartment\\n contactTitle\\n groupName\\n logoUrl\\n phone\\n fax\\n taxRate\\n url\\n syncLogId\\n syncedAt\\n syncStatus\\n totalPurchasingCost\\n grossProfit\\n grossProfitMargin\\n recordingDate\\n createdAt\\n updatedAt\\n }\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n }\\n schedules {\\n items {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n stockNumImgs\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n projects {\\n nextToken\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n tenants {\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n mainContainerMasters {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n tenants {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n customId\\n active\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n items {\\n id\\n groupId\\n name\\n date\\n isWorking\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n mainContainerMasters {\\n items {\\n id\\n containerMasterId\\n groupId\\n order\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst invoicesByGroupAndBillingDate = \"\\n query InvoicesByGroupAndBillingDate(\\n $groupId: ID\\n $billingDate: ModelStringKeyConditionInput\\n $sortDirection: ModelSortDirection\\n $filter: ModelInvoiceFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n invoicesByGroupAndBillingDate(\\n groupId: $groupId\\n billingDate: $billingDate\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n externalId\\n projectId\\n accountId\\n contactId\\n userId\\n groupId\\n order\\n name\\n invoiceNo\\n issueDate\\n billed\\n billingDate\\n description\\n subtotal\\n nonTaxableTotal\\n taxableSubtotal\\n taxTotal\\n taxableTotal\\n total\\n accountName\\n accountSite\\n billingType\\n accountAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n contactName\\n contactFirstName\\n contactLastName\\n contactDepartment\\n contactTitle\\n groupName\\n logoUrl\\n groupBank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n phone\\n fax\\n taxRate\\n url\\n syncLogId\\n syncedAt\\n syncStatus\\n totalPurchasingCost\\n grossProfit\\n grossProfitMargin\\n recordingDate\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n }\\n invoiceLines {\\n items {\\n id\\n externalId\\n invoiceId\\n vendorId\\n vendorName\\n vendorAccountCode\\n vendorSite\\n pricingId\\n pricingName\\n quoteLineId\\n name\\n shippingDate\\n salesType\\n order\\n m3\\n grossWeight\\n quantity\\n rt\\n amount\\n minimumAmount\\n actualAmount\\n unit\\n unitPrice\\n taxRate\\n taxTotal\\n subtotal\\n total\\n taxType\\n sfTaxType\\n synced\\n description\\n unitPurchasingCost\\n totalPurchasingCost\\n createdAt\\n updatedAt\\n invoice {\\n id\\n externalId\\n projectId\\n accountId\\n contactId\\n userId\\n groupId\\n order\\n name\\n invoiceNo\\n issueDate\\n billed\\n billingDate\\n description\\n subtotal\\n nonTaxableTotal\\n taxableSubtotal\\n taxTotal\\n taxableTotal\\n total\\n accountName\\n accountSite\\n billingType\\n contactName\\n contactFirstName\\n contactLastName\\n contactDepartment\\n contactTitle\\n groupName\\n logoUrl\\n phone\\n fax\\n taxRate\\n url\\n syncLogId\\n syncedAt\\n syncStatus\\n totalPurchasingCost\\n grossProfit\\n grossProfitMargin\\n recordingDate\\n createdAt\\n updatedAt\\n }\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n }\\n schedules {\\n items {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n stockNumImgs\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n projects {\\n nextToken\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n tenants {\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n mainContainerMasters {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n tenants {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n customId\\n active\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n items {\\n id\\n groupId\\n name\\n date\\n isWorking\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n mainContainerMasters {\\n items {\\n id\\n containerMasterId\\n groupId\\n order\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getInvoiceLine = \"\\n query GetInvoiceLine($id: ID!) {\\n getInvoiceLine(id: $id) {\\n id\\n externalId\\n invoiceId\\n vendorId\\n vendorName\\n vendorAccountCode\\n vendorSite\\n pricingId\\n pricingName\\n quoteLineId\\n name\\n shippingDate\\n salesType\\n order\\n m3\\n grossWeight\\n quantity\\n rt\\n amount\\n minimumAmount\\n actualAmount\\n unit\\n unitPrice\\n taxRate\\n taxTotal\\n subtotal\\n total\\n taxType\\n sfTaxType\\n synced\\n description\\n unitPurchasingCost\\n totalPurchasingCost\\n createdAt\\n updatedAt\\n invoice {\\n id\\n externalId\\n projectId\\n accountId\\n contactId\\n userId\\n groupId\\n order\\n name\\n invoiceNo\\n issueDate\\n billed\\n billingDate\\n description\\n subtotal\\n nonTaxableTotal\\n taxableSubtotal\\n taxTotal\\n taxableTotal\\n total\\n accountName\\n accountSite\\n billingType\\n accountAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n contactName\\n contactFirstName\\n contactLastName\\n contactDepartment\\n contactTitle\\n groupName\\n logoUrl\\n groupBank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n phone\\n fax\\n taxRate\\n url\\n syncLogId\\n syncedAt\\n syncStatus\\n totalPurchasingCost\\n grossProfit\\n grossProfitMargin\\n recordingDate\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n }\\n invoiceLines {\\n items {\\n id\\n externalId\\n invoiceId\\n vendorId\\n vendorName\\n vendorAccountCode\\n vendorSite\\n pricingId\\n pricingName\\n quoteLineId\\n name\\n shippingDate\\n salesType\\n order\\n m3\\n grossWeight\\n quantity\\n rt\\n amount\\n minimumAmount\\n actualAmount\\n unit\\n unitPrice\\n taxRate\\n taxTotal\\n subtotal\\n total\\n taxType\\n sfTaxType\\n synced\\n description\\n unitPurchasingCost\\n totalPurchasingCost\\n createdAt\\n updatedAt\\n invoice {\\n id\\n externalId\\n projectId\\n accountId\\n contactId\\n userId\\n groupId\\n order\\n name\\n invoiceNo\\n issueDate\\n billed\\n billingDate\\n description\\n subtotal\\n nonTaxableTotal\\n taxableSubtotal\\n taxTotal\\n taxableTotal\\n total\\n accountName\\n accountSite\\n billingType\\n contactName\\n contactFirstName\\n contactLastName\\n contactDepartment\\n contactTitle\\n groupName\\n logoUrl\\n phone\\n fax\\n taxRate\\n url\\n syncLogId\\n syncedAt\\n syncStatus\\n totalPurchasingCost\\n grossProfit\\n grossProfitMargin\\n recordingDate\\n createdAt\\n updatedAt\\n }\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n }\\n schedules {\\n items {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n stockNumImgs\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n projects {\\n nextToken\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n tenants {\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n mainContainerMasters {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n tenants {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n customId\\n active\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n items {\\n id\\n groupId\\n name\\n date\\n isWorking\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n mainContainerMasters {\\n items {\\n id\\n containerMasterId\\n groupId\\n order\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n }\\n }\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n purchasings {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n customFields {\\n label\\n value\\n }\\n note\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n }\\n }\\n\";\nconst listInvoiceLines = \"\\n query ListInvoiceLines(\\n $filter: ModelInvoiceLineFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listInvoiceLines(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n externalId\\n invoiceId\\n vendorId\\n vendorName\\n vendorAccountCode\\n vendorSite\\n pricingId\\n pricingName\\n quoteLineId\\n name\\n shippingDate\\n salesType\\n order\\n m3\\n grossWeight\\n quantity\\n rt\\n amount\\n minimumAmount\\n actualAmount\\n unit\\n unitPrice\\n taxRate\\n taxTotal\\n subtotal\\n total\\n taxType\\n sfTaxType\\n synced\\n description\\n unitPurchasingCost\\n totalPurchasingCost\\n createdAt\\n updatedAt\\n invoice {\\n id\\n externalId\\n projectId\\n accountId\\n contactId\\n userId\\n groupId\\n order\\n name\\n invoiceNo\\n issueDate\\n billed\\n billingDate\\n description\\n subtotal\\n nonTaxableTotal\\n taxableSubtotal\\n taxTotal\\n taxableTotal\\n total\\n accountName\\n accountSite\\n billingType\\n accountAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n contactName\\n contactFirstName\\n contactLastName\\n contactDepartment\\n contactTitle\\n groupName\\n logoUrl\\n groupBank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n phone\\n fax\\n taxRate\\n url\\n syncLogId\\n syncedAt\\n syncStatus\\n totalPurchasingCost\\n grossProfit\\n grossProfitMargin\\n recordingDate\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n }\\n invoiceLines {\\n items {\\n id\\n externalId\\n invoiceId\\n vendorId\\n vendorName\\n vendorAccountCode\\n vendorSite\\n pricingId\\n pricingName\\n quoteLineId\\n name\\n shippingDate\\n salesType\\n order\\n m3\\n grossWeight\\n quantity\\n rt\\n amount\\n minimumAmount\\n actualAmount\\n unit\\n unitPrice\\n taxRate\\n taxTotal\\n subtotal\\n total\\n taxType\\n sfTaxType\\n synced\\n description\\n unitPurchasingCost\\n totalPurchasingCost\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n schedules {\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n tenants {\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n mainContainerMasters {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n }\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n purchasings {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n note\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst invoiceLinesByInvoiceId = \"\\n query InvoiceLinesByInvoiceId(\\n $invoiceId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelInvoiceLineFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n invoiceLinesByInvoiceId(\\n invoiceId: $invoiceId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n externalId\\n invoiceId\\n vendorId\\n vendorName\\n vendorAccountCode\\n vendorSite\\n pricingId\\n pricingName\\n quoteLineId\\n name\\n shippingDate\\n salesType\\n order\\n m3\\n grossWeight\\n quantity\\n rt\\n amount\\n minimumAmount\\n actualAmount\\n unit\\n unitPrice\\n taxRate\\n taxTotal\\n subtotal\\n total\\n taxType\\n sfTaxType\\n synced\\n description\\n unitPurchasingCost\\n totalPurchasingCost\\n createdAt\\n updatedAt\\n invoice {\\n id\\n externalId\\n projectId\\n accountId\\n contactId\\n userId\\n groupId\\n order\\n name\\n invoiceNo\\n issueDate\\n billed\\n billingDate\\n description\\n subtotal\\n nonTaxableTotal\\n taxableSubtotal\\n taxTotal\\n taxableTotal\\n total\\n accountName\\n accountSite\\n billingType\\n accountAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n contactName\\n contactFirstName\\n contactLastName\\n contactDepartment\\n contactTitle\\n groupName\\n logoUrl\\n groupBank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n phone\\n fax\\n taxRate\\n url\\n syncLogId\\n syncedAt\\n syncStatus\\n totalPurchasingCost\\n grossProfit\\n grossProfitMargin\\n recordingDate\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n }\\n invoiceLines {\\n items {\\n id\\n externalId\\n invoiceId\\n vendorId\\n vendorName\\n vendorAccountCode\\n vendorSite\\n pricingId\\n pricingName\\n quoteLineId\\n name\\n shippingDate\\n salesType\\n order\\n m3\\n grossWeight\\n quantity\\n rt\\n amount\\n minimumAmount\\n actualAmount\\n unit\\n unitPrice\\n taxRate\\n taxTotal\\n subtotal\\n total\\n taxType\\n sfTaxType\\n synced\\n description\\n unitPurchasingCost\\n totalPurchasingCost\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n schedules {\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n tenants {\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n mainContainerMasters {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n }\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n purchasings {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n note\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getMetaTable = \"\\n query GetMetaTable($id: ID!) {\\n getMetaTable(id: $id) {\\n id\\n name\\n label\\n fields {\\n name\\n label\\n type\\n required\\n }\\n createdAt\\n updatedAt\\n }\\n }\\n\";\nconst listMetaTables = \"\\n query ListMetaTables(\\n $filter: ModelMetaTableFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listMetaTables(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n name\\n label\\n fields {\\n name\\n label\\n type\\n required\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst metaTableByName = \"\\n query MetaTableByName(\\n $name: String\\n $sortDirection: ModelSortDirection\\n $filter: ModelMetaTableFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n metaTableByName(\\n name: $name\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n name\\n label\\n fields {\\n name\\n label\\n type\\n required\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst getPackageType = \"\\n query GetPackageType($id: ID!) {\\n getPackageType(id: $id) {\\n id\\n groupId\\n pricingId\\n name\\n description\\n publish\\n quantity\\n material\\n stamp\\n packageMethod\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n note\\n standard\\n woodCost\\n lvlCost\\n panelCost\\n normalWoodCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n active\\n order\\n pricingGroup\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n areas {\\n items {\\n id\\n packageTypeId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n components {\\n items {\\n id\\n baseAreaId\\n name\\n slug\\n order\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n decorations {\\n items {\\n id\\n packageTypeId\\n type\\n name\\n slug\\n order\\n unit\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n pricings {\\n items {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n accountSpecific\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n }\\n }\\n\";\nconst listPackageTypes = \"\\n query ListPackageTypes(\\n $filter: ModelPackageTypeFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listPackageTypes(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n groupId\\n pricingId\\n name\\n description\\n publish\\n quantity\\n material\\n stamp\\n packageMethod\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n note\\n standard\\n woodCost\\n lvlCost\\n panelCost\\n normalWoodCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n active\\n order\\n pricingGroup\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n areas {\\n items {\\n id\\n packageTypeId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n components {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n decorations {\\n items {\\n id\\n packageTypeId\\n type\\n name\\n slug\\n order\\n unit\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n pricings {\\n nextToken\\n }\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst packageTypesByGroupId = \"\\n query PackageTypesByGroupId(\\n $groupId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelPackageTypeFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n packageTypesByGroupId(\\n groupId: $groupId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n groupId\\n pricingId\\n name\\n description\\n publish\\n quantity\\n material\\n stamp\\n packageMethod\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n note\\n standard\\n woodCost\\n lvlCost\\n panelCost\\n normalWoodCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n active\\n order\\n pricingGroup\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n areas {\\n items {\\n id\\n packageTypeId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n components {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n decorations {\\n items {\\n id\\n packageTypeId\\n type\\n name\\n slug\\n order\\n unit\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n pricings {\\n nextToken\\n }\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst packageTypesByPricingId = \"\\n query PackageTypesByPricingId(\\n $pricingId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelPackageTypeFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n packageTypesByPricingId(\\n pricingId: $pricingId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n groupId\\n pricingId\\n name\\n description\\n publish\\n quantity\\n material\\n stamp\\n packageMethod\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n note\\n standard\\n woodCost\\n lvlCost\\n panelCost\\n normalWoodCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n active\\n order\\n pricingGroup\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n areas {\\n items {\\n id\\n packageTypeId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n components {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n decorations {\\n items {\\n id\\n packageTypeId\\n type\\n name\\n slug\\n order\\n unit\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n pricings {\\n nextToken\\n }\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getBaseArea = \"\\n query GetBaseArea($id: ID!) {\\n getBaseArea(id: $id) {\\n id\\n packageTypeId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n components {\\n items {\\n id\\n baseAreaId\\n name\\n slug\\n order\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n\";\nconst listBaseAreas = \"\\n query ListBaseAreas(\\n $filter: ModelBaseAreaFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listBaseAreas(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n packageTypeId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n components {\\n items {\\n id\\n baseAreaId\\n name\\n slug\\n order\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst baseAreasByPackageTypeId = \"\\n query BaseAreasByPackageTypeId(\\n $packageTypeId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelBaseAreaFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n baseAreasByPackageTypeId(\\n packageTypeId: $packageTypeId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n packageTypeId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n components {\\n items {\\n id\\n baseAreaId\\n name\\n slug\\n order\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getBaseComponent = \"\\n query GetBaseComponent($id: ID!) {\\n getBaseComponent(id: $id) {\\n id\\n baseAreaId\\n name\\n slug\\n order\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n }\\n\";\nconst listBaseComponents = \"\\n query ListBaseComponents(\\n $filter: ModelBaseComponentFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listBaseComponents(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n baseAreaId\\n name\\n slug\\n order\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst baseComponentsByBaseAreaId = \"\\n query BaseComponentsByBaseAreaId(\\n $baseAreaId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelBaseComponentFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n baseComponentsByBaseAreaId(\\n baseAreaId: $baseAreaId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n baseAreaId\\n name\\n slug\\n order\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst getBaseDecorationComponent = \"\\n query GetBaseDecorationComponent($id: ID!) {\\n getBaseDecorationComponent(id: $id) {\\n id\\n packageTypeId\\n type\\n name\\n slug\\n order\\n unit\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n }\\n\";\nconst listBaseDecorationComponents = \"\\n query ListBaseDecorationComponents(\\n $filter: ModelBaseDecorationComponentFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listBaseDecorationComponents(\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n packageTypeId\\n type\\n name\\n slug\\n order\\n unit\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst baseDecorationComponentsByPackageTypeId = \"\\n query BaseDecorationComponentsByPackageTypeId(\\n $packageTypeId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelBaseDecorationComponentFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n baseDecorationComponentsByPackageTypeId(\\n packageTypeId: $packageTypeId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n packageTypeId\\n type\\n name\\n slug\\n order\\n unit\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst getPriceType = \"\\n query GetPriceType($id: ID!) {\\n getPriceType(id: $id) {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n pricings {\\n items {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n pricings {\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n }\\n\";\nconst listPriceTypes = \"\\n query ListPriceTypes(\\n $filter: ModelPriceTypeFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listPriceTypes(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n pricings {\\n items {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst priceTypesByGroupId = \"\\n query PriceTypesByGroupId(\\n $groupId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelPriceTypeFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n priceTypesByGroupId(\\n groupId: $groupId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n pricings {\\n items {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getPricing = \"\\n query GetPricing($id: ID!) {\\n getPricing(id: $id) {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n pricings {\\n items {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n }\\n }\\n\";\nconst listPricings = \"\\n query ListPricings(\\n $filter: ModelPricingFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listPricings(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n pricings {\\n items {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n accountSpecific\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst pricingsByTypeId = \"\\n query PricingsByTypeId(\\n $priceTypeId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelPricingFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n pricingsByTypeId(\\n priceTypeId: $priceTypeId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n pricings {\\n items {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n accountSpecific\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst pricingsByGroupId = \"\\n query PricingsByGroupId(\\n $groupId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelPricingFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n pricingsByGroupId(\\n groupId: $groupId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n pricings {\\n items {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n accountSpecific\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getProduct = \"\\n query GetProduct($id: ID!) {\\n getProduct(id: $id) {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n cases {\\n order\\n name\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n phaseId\\n isPacked\\n netWeight\\n grossWeight\\n outerLength\\n outerWidth\\n outerHeight\\n m3\\n thumbnail\\n managementNumber\\n isBilled\\n invoiceLineId\\n version\\n note\\n summaryOrder\\n vanplanCreated\\n containerName\\n containerId\\n vanplanId\\n loadingOrder\\n }\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n packageType {\\n id\\n groupId\\n pricingId\\n name\\n description\\n publish\\n quantity\\n material\\n stamp\\n packageMethod\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n note\\n standard\\n woodCost\\n lvlCost\\n panelCost\\n normalWoodCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n active\\n order\\n pricingGroup\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n areas {\\n items {\\n id\\n packageTypeId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n components {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n decorations {\\n items {\\n id\\n packageTypeId\\n type\\n name\\n slug\\n order\\n unit\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n pricings {\\n nextToken\\n }\\n }\\n }\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n pricings {\\n items {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n accountSpecific\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n areas {\\n items {\\n id\\n productId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n components {\\n items {\\n id\\n areaId\\n name\\n slug\\n order\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n decorations {\\n items {\\n id\\n productId\\n type\\n name\\n slug\\n order\\n unit\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n cases {\\n order\\n name\\n phaseId\\n isPacked\\n netWeight\\n grossWeight\\n outerLength\\n outerWidth\\n outerHeight\\n m3\\n thumbnail\\n managementNumber\\n isBilled\\n invoiceLineId\\n version\\n note\\n summaryOrder\\n vanplanCreated\\n containerName\\n containerId\\n vanplanId\\n loadingOrder\\n }\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n packageType {\\n id\\n groupId\\n pricingId\\n name\\n description\\n publish\\n quantity\\n material\\n stamp\\n packageMethod\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n note\\n standard\\n woodCost\\n lvlCost\\n panelCost\\n normalWoodCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n active\\n order\\n pricingGroup\\n createdAt\\n updatedAt\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n accountSpecific\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n }\\n areas {\\n nextToken\\n }\\n decorations {\\n nextToken\\n }\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n stockNumImgs\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n }\\n schedules {\\n items {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n stockNumImgs\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n projects {\\n nextToken\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n tenants {\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n mainContainerMasters {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n }\\n vanplans {\\n items {\\n id\\n projectId\\n scheduleId\\n name\\n loadPlanUrl\\n loadPlanId\\n createdAt\\n updatedAt\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n stockNumImgs\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n }\\n containers {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n }\\n }\\n\";\nconst listProducts = \"\\n query ListProducts(\\n $filter: ModelProductFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listProducts(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n cases {\\n order\\n name\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n phaseId\\n isPacked\\n netWeight\\n grossWeight\\n outerLength\\n outerWidth\\n outerHeight\\n m3\\n thumbnail\\n managementNumber\\n isBilled\\n invoiceLineId\\n version\\n note\\n summaryOrder\\n vanplanCreated\\n containerName\\n containerId\\n vanplanId\\n loadingOrder\\n }\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n packageType {\\n id\\n groupId\\n pricingId\\n name\\n description\\n publish\\n quantity\\n material\\n stamp\\n packageMethod\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n note\\n standard\\n woodCost\\n lvlCost\\n panelCost\\n normalWoodCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n active\\n order\\n pricingGroup\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n areas {\\n items {\\n id\\n packageTypeId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n decorations {\\n items {\\n id\\n packageTypeId\\n type\\n name\\n slug\\n order\\n unit\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n }\\n }\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n pricings {\\n nextToken\\n }\\n }\\n }\\n areas {\\n items {\\n id\\n productId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n components {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n decorations {\\n items {\\n id\\n productId\\n type\\n name\\n slug\\n order\\n unit\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n schedules {\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n vanplans {\\n items {\\n id\\n projectId\\n scheduleId\\n name\\n loadPlanUrl\\n loadPlanId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst productsByScheduleId = \"\\n query ProductsByScheduleId(\\n $scheduleId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelProductFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n productsByScheduleId(\\n scheduleId: $scheduleId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n cases {\\n order\\n name\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n phaseId\\n isPacked\\n netWeight\\n grossWeight\\n outerLength\\n outerWidth\\n outerHeight\\n m3\\n thumbnail\\n managementNumber\\n isBilled\\n invoiceLineId\\n version\\n note\\n summaryOrder\\n vanplanCreated\\n containerName\\n containerId\\n vanplanId\\n loadingOrder\\n }\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n packageType {\\n id\\n groupId\\n pricingId\\n name\\n description\\n publish\\n quantity\\n material\\n stamp\\n packageMethod\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n note\\n standard\\n woodCost\\n lvlCost\\n panelCost\\n normalWoodCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n active\\n order\\n pricingGroup\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n areas {\\n items {\\n id\\n packageTypeId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n decorations {\\n items {\\n id\\n packageTypeId\\n type\\n name\\n slug\\n order\\n unit\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n }\\n }\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n pricings {\\n nextToken\\n }\\n }\\n }\\n areas {\\n items {\\n id\\n productId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n components {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n decorations {\\n items {\\n id\\n productId\\n type\\n name\\n slug\\n order\\n unit\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n schedules {\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n vanplans {\\n items {\\n id\\n projectId\\n scheduleId\\n name\\n loadPlanUrl\\n loadPlanId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst productsByPackageTypeId = \"\\n query ProductsByPackageTypeId(\\n $packageTypeId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelProductFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n productsByPackageTypeId(\\n packageTypeId: $packageTypeId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n cases {\\n order\\n name\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n phaseId\\n isPacked\\n netWeight\\n grossWeight\\n outerLength\\n outerWidth\\n outerHeight\\n m3\\n thumbnail\\n managementNumber\\n isBilled\\n invoiceLineId\\n version\\n note\\n summaryOrder\\n vanplanCreated\\n containerName\\n containerId\\n vanplanId\\n loadingOrder\\n }\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n packageType {\\n id\\n groupId\\n pricingId\\n name\\n description\\n publish\\n quantity\\n material\\n stamp\\n packageMethod\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n note\\n standard\\n woodCost\\n lvlCost\\n panelCost\\n normalWoodCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n active\\n order\\n pricingGroup\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n areas {\\n items {\\n id\\n packageTypeId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n decorations {\\n items {\\n id\\n packageTypeId\\n type\\n name\\n slug\\n order\\n unit\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n }\\n }\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n pricings {\\n nextToken\\n }\\n }\\n }\\n areas {\\n items {\\n id\\n productId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n components {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n decorations {\\n items {\\n id\\n productId\\n type\\n name\\n slug\\n order\\n unit\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n schedules {\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n vanplans {\\n items {\\n id\\n projectId\\n scheduleId\\n name\\n loadPlanUrl\\n loadPlanId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst productsByProjectId = \"\\n query ProductsByProjectId(\\n $projectId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelProductFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n productsByProjectId(\\n projectId: $projectId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n cases {\\n order\\n name\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n phaseId\\n isPacked\\n netWeight\\n grossWeight\\n outerLength\\n outerWidth\\n outerHeight\\n m3\\n thumbnail\\n managementNumber\\n isBilled\\n invoiceLineId\\n version\\n note\\n summaryOrder\\n vanplanCreated\\n containerName\\n containerId\\n vanplanId\\n loadingOrder\\n }\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n packageType {\\n id\\n groupId\\n pricingId\\n name\\n description\\n publish\\n quantity\\n material\\n stamp\\n packageMethod\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n note\\n standard\\n woodCost\\n lvlCost\\n panelCost\\n normalWoodCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n active\\n order\\n pricingGroup\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n areas {\\n items {\\n id\\n packageTypeId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n decorations {\\n items {\\n id\\n packageTypeId\\n type\\n name\\n slug\\n order\\n unit\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n }\\n }\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n pricings {\\n nextToken\\n }\\n }\\n }\\n areas {\\n items {\\n id\\n productId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n components {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n decorations {\\n items {\\n id\\n productId\\n type\\n name\\n slug\\n order\\n unit\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n schedules {\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n vanplans {\\n items {\\n id\\n projectId\\n scheduleId\\n name\\n loadPlanUrl\\n loadPlanId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getArea = \"\\n query GetArea($id: ID!) {\\n getArea(id: $id) {\\n id\\n productId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n components {\\n items {\\n id\\n areaId\\n name\\n slug\\n order\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n\";\nconst listAreas = \"\\n query ListAreas(\\n $filter: ModelAreaFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listAreas(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n productId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n components {\\n items {\\n id\\n areaId\\n name\\n slug\\n order\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst areasByProductId = \"\\n query AreasByProductId(\\n $productId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelAreaFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n areasByProductId(\\n productId: $productId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n productId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n components {\\n items {\\n id\\n areaId\\n name\\n slug\\n order\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst areasByQuoteProductId = \"\\n query AreasByQuoteProductId(\\n $productId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelAreaFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n areasByQuoteProductId(\\n productId: $productId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n productId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n components {\\n items {\\n id\\n areaId\\n name\\n slug\\n order\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getComponent = \"\\n query GetComponent($id: ID!) {\\n getComponent(id: $id) {\\n id\\n areaId\\n name\\n slug\\n order\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n }\\n\";\nconst listComponents = \"\\n query ListComponents(\\n $filter: ModelComponentFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listComponents(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n areaId\\n name\\n slug\\n order\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst componentsByAreaId = \"\\n query ComponentsByAreaId(\\n $areaId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelComponentFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n componentsByAreaId(\\n areaId: $areaId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n areaId\\n name\\n slug\\n order\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst getDecorationComponent = \"\\n query GetDecorationComponent($id: ID!) {\\n getDecorationComponent(id: $id) {\\n id\\n productId\\n type\\n name\\n slug\\n order\\n unit\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n }\\n\";\nconst listDecorationComponents = \"\\n query ListDecorationComponents(\\n $filter: ModelDecorationComponentFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listDecorationComponents(\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n productId\\n type\\n name\\n slug\\n order\\n unit\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst decorationComponentsByProductId = \"\\n query DecorationComponentsByProductId(\\n $productId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelDecorationComponentFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n decorationComponentsByProductId(\\n productId: $productId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n productId\\n type\\n name\\n slug\\n order\\n unit\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst decorationComponentsByQuoteProductId = \"\\n query DecorationComponentsByQuoteProductId(\\n $productId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelDecorationComponentFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n decorationComponentsByQuoteProductId(\\n productId: $productId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n productId\\n type\\n name\\n slug\\n order\\n unit\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst getSummary = \"\\n query GetSummary($id: ID!) {\\n getSummary(id: $id) {\\n id\\n projectId\\n pricingId\\n pricingName\\n productId\\n quoteLineId\\n invoiceLineId\\n isBilled\\n name\\n order\\n quantity\\n tareWeight\\n productLength\\n productWidth\\n productHeight\\n outerLength\\n outerWidth\\n outerHeight\\n unitM3\\n unitNW\\n unitGrossWeight\\n NW\\n grossWeight\\n m3\\n unitPrice\\n unit\\n autoCalculate\\n taxType\\n overwritten\\n createdAt\\n updatedAt\\n }\\n }\\n\";\nconst listSummaries = \"\\n query ListSummaries(\\n $filter: ModelSummaryFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listSummaries(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n projectId\\n pricingId\\n pricingName\\n productId\\n quoteLineId\\n invoiceLineId\\n isBilled\\n name\\n order\\n quantity\\n tareWeight\\n productLength\\n productWidth\\n productHeight\\n outerLength\\n outerWidth\\n outerHeight\\n unitM3\\n unitNW\\n unitGrossWeight\\n NW\\n grossWeight\\n m3\\n unitPrice\\n unit\\n autoCalculate\\n taxType\\n overwritten\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst summariesByProjectId = \"\\n query SummariesByProjectId(\\n $projectId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelSummaryFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n summariesByProjectId(\\n projectId: $projectId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n projectId\\n pricingId\\n pricingName\\n productId\\n quoteLineId\\n invoiceLineId\\n isBilled\\n name\\n order\\n quantity\\n tareWeight\\n productLength\\n productWidth\\n productHeight\\n outerLength\\n outerWidth\\n outerHeight\\n unitM3\\n unitNW\\n unitGrossWeight\\n NW\\n grossWeight\\n m3\\n unitPrice\\n unit\\n autoCalculate\\n taxType\\n overwritten\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst getQuoteProduct = \"\\n query GetQuoteProduct($id: ID!) {\\n getQuoteProduct(id: $id) {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n cases {\\n order\\n name\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n phaseId\\n isPacked\\n netWeight\\n grossWeight\\n outerLength\\n outerWidth\\n outerHeight\\n m3\\n thumbnail\\n managementNumber\\n isBilled\\n invoiceLineId\\n version\\n note\\n summaryOrder\\n vanplanCreated\\n containerName\\n containerId\\n vanplanId\\n loadingOrder\\n }\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n packageType {\\n id\\n groupId\\n pricingId\\n name\\n description\\n publish\\n quantity\\n material\\n stamp\\n packageMethod\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n note\\n standard\\n woodCost\\n lvlCost\\n panelCost\\n normalWoodCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n active\\n order\\n pricingGroup\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n areas {\\n items {\\n id\\n packageTypeId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n components {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n decorations {\\n items {\\n id\\n packageTypeId\\n type\\n name\\n slug\\n order\\n unit\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n pricings {\\n nextToken\\n }\\n }\\n }\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n pricings {\\n items {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n accountSpecific\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n areas {\\n items {\\n id\\n productId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n components {\\n items {\\n id\\n areaId\\n name\\n slug\\n order\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n decorations {\\n items {\\n id\\n productId\\n type\\n name\\n slug\\n order\\n unit\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n cases {\\n order\\n name\\n phaseId\\n isPacked\\n netWeight\\n grossWeight\\n outerLength\\n outerWidth\\n outerHeight\\n m3\\n thumbnail\\n managementNumber\\n isBilled\\n invoiceLineId\\n version\\n note\\n summaryOrder\\n vanplanCreated\\n containerName\\n containerId\\n vanplanId\\n loadingOrder\\n }\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n packageType {\\n id\\n groupId\\n pricingId\\n name\\n description\\n publish\\n quantity\\n material\\n stamp\\n packageMethod\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n note\\n standard\\n woodCost\\n lvlCost\\n panelCost\\n normalWoodCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n active\\n order\\n pricingGroup\\n createdAt\\n updatedAt\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n accountSpecific\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n }\\n areas {\\n nextToken\\n }\\n decorations {\\n nextToken\\n }\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n stockNumImgs\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n }\\n schedules {\\n items {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n stockNumImgs\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n projects {\\n nextToken\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n tenants {\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n mainContainerMasters {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n }\\n vanplans {\\n items {\\n id\\n projectId\\n scheduleId\\n name\\n loadPlanUrl\\n loadPlanId\\n createdAt\\n updatedAt\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n stockNumImgs\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n }\\n containers {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n }\\n }\\n\";\nconst listQuoteProducts = \"\\n query ListQuoteProducts(\\n $filter: ModelQuoteProductFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listQuoteProducts(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n cases {\\n order\\n name\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n phaseId\\n isPacked\\n netWeight\\n grossWeight\\n outerLength\\n outerWidth\\n outerHeight\\n m3\\n thumbnail\\n managementNumber\\n isBilled\\n invoiceLineId\\n version\\n note\\n summaryOrder\\n vanplanCreated\\n containerName\\n containerId\\n vanplanId\\n loadingOrder\\n }\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n packageType {\\n id\\n groupId\\n pricingId\\n name\\n description\\n publish\\n quantity\\n material\\n stamp\\n packageMethod\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n note\\n standard\\n woodCost\\n lvlCost\\n panelCost\\n normalWoodCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n active\\n order\\n pricingGroup\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n areas {\\n items {\\n id\\n packageTypeId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n decorations {\\n items {\\n id\\n packageTypeId\\n type\\n name\\n slug\\n order\\n unit\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n }\\n }\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n pricings {\\n nextToken\\n }\\n }\\n }\\n areas {\\n items {\\n id\\n productId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n components {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n decorations {\\n items {\\n id\\n productId\\n type\\n name\\n slug\\n order\\n unit\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n schedules {\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n vanplans {\\n items {\\n id\\n projectId\\n scheduleId\\n name\\n loadPlanUrl\\n loadPlanId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst quoteProductsByProjectId = \"\\n query QuoteProductsByProjectId(\\n $projectId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelQuoteProductFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n quoteProductsByProjectId(\\n projectId: $projectId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n cases {\\n order\\n name\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n phaseId\\n isPacked\\n netWeight\\n grossWeight\\n outerLength\\n outerWidth\\n outerHeight\\n m3\\n thumbnail\\n managementNumber\\n isBilled\\n invoiceLineId\\n version\\n note\\n summaryOrder\\n vanplanCreated\\n containerName\\n containerId\\n vanplanId\\n loadingOrder\\n }\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n packageType {\\n id\\n groupId\\n pricingId\\n name\\n description\\n publish\\n quantity\\n material\\n stamp\\n packageMethod\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n note\\n standard\\n woodCost\\n lvlCost\\n panelCost\\n normalWoodCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n active\\n order\\n pricingGroup\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n areas {\\n items {\\n id\\n packageTypeId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n decorations {\\n items {\\n id\\n packageTypeId\\n type\\n name\\n slug\\n order\\n unit\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n }\\n }\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n pricings {\\n nextToken\\n }\\n }\\n }\\n areas {\\n items {\\n id\\n productId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n components {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n decorations {\\n items {\\n id\\n productId\\n type\\n name\\n slug\\n order\\n unit\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n schedules {\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n vanplans {\\n items {\\n id\\n projectId\\n scheduleId\\n name\\n loadPlanUrl\\n loadPlanId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst quoteProductsByPackageTypeId = \"\\n query QuoteProductsByPackageTypeId(\\n $packageTypeId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelQuoteProductFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n quoteProductsByPackageTypeId(\\n packageTypeId: $packageTypeId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n cases {\\n order\\n name\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n phaseId\\n isPacked\\n netWeight\\n grossWeight\\n outerLength\\n outerWidth\\n outerHeight\\n m3\\n thumbnail\\n managementNumber\\n isBilled\\n invoiceLineId\\n version\\n note\\n summaryOrder\\n vanplanCreated\\n containerName\\n containerId\\n vanplanId\\n loadingOrder\\n }\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n packageType {\\n id\\n groupId\\n pricingId\\n name\\n description\\n publish\\n quantity\\n material\\n stamp\\n packageMethod\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n note\\n standard\\n woodCost\\n lvlCost\\n panelCost\\n normalWoodCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n active\\n order\\n pricingGroup\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n areas {\\n items {\\n id\\n packageTypeId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n decorations {\\n items {\\n id\\n packageTypeId\\n type\\n name\\n slug\\n order\\n unit\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n }\\n }\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n pricings {\\n nextToken\\n }\\n }\\n }\\n areas {\\n items {\\n id\\n productId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n components {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n decorations {\\n items {\\n id\\n productId\\n type\\n name\\n slug\\n order\\n unit\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n schedules {\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n vanplans {\\n items {\\n id\\n projectId\\n scheduleId\\n name\\n loadPlanUrl\\n loadPlanId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getProject = \"\\n query GetProject($id: ID!) {\\n getProject(id: $id) {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n schedules {\\n items {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n schedules {\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n vanplans {\\n items {\\n id\\n projectId\\n scheduleId\\n name\\n loadPlanUrl\\n loadPlanId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n projects {\\n items {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n schedules {\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n items {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n sfObjects {\\n items {\\n id\\n name\\n tenantId\\n label\\n sfObjectName\\n editable\\n condition\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n groups {\\n items {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n tenants {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n customId\\n active\\n createdAt\\n updatedAt\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n items {\\n id\\n groupId\\n name\\n date\\n isWorking\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n mainContainerMasters {\\n items {\\n id\\n containerMasterId\\n groupId\\n order\\n createdAt\\n updatedAt\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n containerMaster {\\n id\\n groupId\\n presetId\\n name\\n order\\n active\\n insideLangth\\n insideWidth\\n insideHeight\\n payload\\n cost\\n noEndWalls\\n noSideWalls\\n noRoof\\n doorWidth\\n doorHeight\\n doorAtLongside\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n items {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n sfObjects {\\n items {\\n id\\n name\\n tenantId\\n label\\n sfObjectName\\n editable\\n condition\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n groups {\\n items {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n }\\n }\\n\";\nconst listProjects = \"\\n query ListProjects(\\n $filter: ModelProjectFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listProjects(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n }\\n schedules {\\n items {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n }\\n vanplans {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n projects {\\n items {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n }\\n nextToken\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n tenants {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n customId\\n active\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n items {\\n id\\n groupId\\n name\\n date\\n isWorking\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n mainContainerMasters {\\n items {\\n id\\n containerMasterId\\n groupId\\n order\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst projectsByUserId = \"\\n query ProjectsByUserId(\\n $userId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelProjectFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n projectsByUserId(\\n userId: $userId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n }\\n schedules {\\n items {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n }\\n vanplans {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n projects {\\n items {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n }\\n nextToken\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n tenants {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n customId\\n active\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n items {\\n id\\n groupId\\n name\\n date\\n isWorking\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n mainContainerMasters {\\n items {\\n id\\n containerMasterId\\n groupId\\n order\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst projectsByAccountId = \"\\n query ProjectsByAccountId(\\n $accountId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelProjectFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n projectsByAccountId(\\n accountId: $accountId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n }\\n schedules {\\n items {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n }\\n vanplans {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n projects {\\n items {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n }\\n nextToken\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n tenants {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n customId\\n active\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n items {\\n id\\n groupId\\n name\\n date\\n isWorking\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n mainContainerMasters {\\n items {\\n id\\n containerMasterId\\n groupId\\n order\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst projectsByContactId = \"\\n query ProjectsByContactId(\\n $contactId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelProjectFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n projectsByContactId(\\n contactId: $contactId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n }\\n schedules {\\n items {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n }\\n vanplans {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n projects {\\n items {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n }\\n nextToken\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n tenants {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n customId\\n active\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n items {\\n id\\n groupId\\n name\\n date\\n isWorking\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n mainContainerMasters {\\n items {\\n id\\n containerMasterId\\n groupId\\n order\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst projectsByGroupId = \"\\n query ProjectsByGroupId(\\n $groupId: ID\\n $createdAt: ModelStringKeyConditionInput\\n $sortDirection: ModelSortDirection\\n $filter: ModelProjectFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n projectsByGroupId(\\n groupId: $groupId\\n createdAt: $createdAt\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n }\\n schedules {\\n items {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n }\\n vanplans {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n projects {\\n items {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n }\\n nextToken\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n tenants {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n customId\\n active\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n items {\\n id\\n groupId\\n name\\n date\\n isWorking\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n mainContainerMasters {\\n items {\\n id\\n containerMasterId\\n groupId\\n order\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst projectsByCategoryId = \"\\n query ProjectsByCategoryId(\\n $categoryId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelProjectFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n projectsByCategoryId(\\n categoryId: $categoryId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n }\\n schedules {\\n items {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n }\\n vanplans {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n projects {\\n items {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n }\\n nextToken\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n tenants {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n customId\\n active\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n items {\\n id\\n groupId\\n name\\n date\\n isWorking\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n mainContainerMasters {\\n items {\\n id\\n containerMasterId\\n groupId\\n order\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getSchedule = \"\\n query GetSchedule($id: ID!) {\\n getSchedule(id: $id) {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n cases {\\n order\\n name\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n phaseId\\n isPacked\\n netWeight\\n grossWeight\\n outerLength\\n outerWidth\\n outerHeight\\n m3\\n thumbnail\\n managementNumber\\n isBilled\\n invoiceLineId\\n version\\n note\\n summaryOrder\\n vanplanCreated\\n containerName\\n containerId\\n vanplanId\\n loadingOrder\\n }\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n packageType {\\n id\\n groupId\\n pricingId\\n name\\n description\\n publish\\n quantity\\n material\\n stamp\\n packageMethod\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n note\\n standard\\n woodCost\\n lvlCost\\n panelCost\\n normalWoodCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n active\\n order\\n pricingGroup\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n areas {\\n nextToken\\n }\\n decorations {\\n nextToken\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n accountSpecific\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n }\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n }\\n }\\n areas {\\n items {\\n id\\n productId\\n name\\n areaType\\n order\\n description\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n decorations {\\n items {\\n id\\n productId\\n type\\n name\\n slug\\n order\\n unit\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n }\\n vanplans {\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n }\\n schedules {\\n items {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n }\\n vanplans {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n projects {\\n items {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n }\\n nextToken\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n tenants {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n customId\\n active\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n items {\\n id\\n groupId\\n name\\n date\\n isWorking\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n mainContainerMasters {\\n items {\\n id\\n containerMasterId\\n groupId\\n order\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n }\\n }\\n vanplans {\\n items {\\n id\\n projectId\\n scheduleId\\n name\\n loadPlanUrl\\n loadPlanId\\n createdAt\\n updatedAt\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n }\\n vanplans {\\n nextToken\\n }\\n }\\n containers {\\n items {\\n id\\n vanplanId\\n scheduleId\\n containerMasterId\\n order\\n name\\n shoring\\n lashing\\n securingMemo\\n otherMemo\\n isDesiccant\\n desiccantMemo\\n qtyDesiccant\\n shipCompleted\\n caseQuantity\\n weight\\n m3\\n externalContainerId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n }\\n\";\nconst listSchedules = \"\\n query ListSchedules(\\n $filter: ModelScheduleFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listSchedules(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n cases {\\n order\\n name\\n phaseId\\n isPacked\\n netWeight\\n grossWeight\\n outerLength\\n outerWidth\\n outerHeight\\n m3\\n thumbnail\\n managementNumber\\n isBilled\\n invoiceLineId\\n version\\n note\\n summaryOrder\\n vanplanCreated\\n containerName\\n containerId\\n vanplanId\\n loadingOrder\\n }\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n packageType {\\n id\\n groupId\\n pricingId\\n name\\n description\\n publish\\n quantity\\n material\\n stamp\\n packageMethod\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n note\\n standard\\n woodCost\\n lvlCost\\n panelCost\\n normalWoodCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n active\\n order\\n pricingGroup\\n createdAt\\n updatedAt\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n accountSpecific\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n }\\n areas {\\n nextToken\\n }\\n decorations {\\n nextToken\\n }\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n stockNumImgs\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n }\\n schedules {\\n items {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n stockNumImgs\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n projects {\\n nextToken\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n tenants {\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n mainContainerMasters {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n }\\n vanplans {\\n items {\\n id\\n projectId\\n scheduleId\\n name\\n loadPlanUrl\\n loadPlanId\\n createdAt\\n updatedAt\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n stockNumImgs\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n }\\n containers {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst schedulesByProjectId = \"\\n query SchedulesByProjectId(\\n $projectId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelScheduleFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n schedulesByProjectId(\\n projectId: $projectId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n cases {\\n order\\n name\\n phaseId\\n isPacked\\n netWeight\\n grossWeight\\n outerLength\\n outerWidth\\n outerHeight\\n m3\\n thumbnail\\n managementNumber\\n isBilled\\n invoiceLineId\\n version\\n note\\n summaryOrder\\n vanplanCreated\\n containerName\\n containerId\\n vanplanId\\n loadingOrder\\n }\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n packageType {\\n id\\n groupId\\n pricingId\\n name\\n description\\n publish\\n quantity\\n material\\n stamp\\n packageMethod\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n note\\n standard\\n woodCost\\n lvlCost\\n panelCost\\n normalWoodCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n active\\n order\\n pricingGroup\\n createdAt\\n updatedAt\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n accountSpecific\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n }\\n areas {\\n nextToken\\n }\\n decorations {\\n nextToken\\n }\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n stockNumImgs\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n }\\n schedules {\\n items {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n stockNumImgs\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n projects {\\n nextToken\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n tenants {\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n mainContainerMasters {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n }\\n vanplans {\\n items {\\n id\\n projectId\\n scheduleId\\n name\\n loadPlanUrl\\n loadPlanId\\n createdAt\\n updatedAt\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n stockNumImgs\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n }\\n containers {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getReport = \"\\n query GetReport($id: ID!) {\\n getReport(id: $id) {\\n id\\n projectId\\n name\\n template {\\n name\\n key\\n mimeType\\n }\\n type\\n data\\n exportAsPdf\\n autoFillFormula\\n description\\n createdAt\\n updatedAt\\n }\\n }\\n\";\nconst listReports = \"\\n query ListReports(\\n $filter: ModelReportFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listReports(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n projectId\\n name\\n template {\\n name\\n key\\n mimeType\\n }\\n type\\n data\\n exportAsPdf\\n autoFillFormula\\n description\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst reportsByProjectId = \"\\n query ReportsByProjectId(\\n $projectId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelReportFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n reportsByProjectId(\\n projectId: $projectId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n projectId\\n name\\n template {\\n name\\n key\\n mimeType\\n }\\n type\\n data\\n exportAsPdf\\n autoFillFormula\\n description\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst getReportTemplate = \"\\n query GetReportTemplate($id: ID!) {\\n getReportTemplate(id: $id) {\\n id\\n groupId\\n name\\n template {\\n name\\n key\\n mimeType\\n }\\n type\\n data\\n scope\\n exportAsPdf\\n autoFillFormula\\n description\\n createdAt\\n updatedAt\\n }\\n }\\n\";\nconst listReportTemplates = \"\\n query ListReportTemplates(\\n $filter: ModelReportTemplateFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listReportTemplates(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n groupId\\n name\\n template {\\n name\\n key\\n mimeType\\n }\\n type\\n data\\n scope\\n exportAsPdf\\n autoFillFormula\\n description\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst reportsByGroupId = \"\\n query ReportsByGroupId(\\n $groupId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelReportTemplateFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n reportsByGroupId(\\n groupId: $groupId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n groupId\\n name\\n template {\\n name\\n key\\n mimeType\\n }\\n type\\n data\\n scope\\n exportAsPdf\\n autoFillFormula\\n description\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst getGroupReport = \"\\n query GetGroupReport($id: ID!) {\\n getGroupReport(id: $id) {\\n id\\n groupId\\n name\\n template {\\n name\\n key\\n mimeType\\n }\\n type\\n data\\n scope\\n exportAsPdf\\n autoFillFormula\\n description\\n createdAt\\n updatedAt\\n }\\n }\\n\";\nconst listGroupReports = \"\\n query ListGroupReports(\\n $filter: ModelGroupReportFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listGroupReports(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n groupId\\n name\\n template {\\n name\\n key\\n mimeType\\n }\\n type\\n data\\n scope\\n exportAsPdf\\n autoFillFormula\\n description\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst groupReportsByGroupId = \"\\n query GroupReportsByGroupId(\\n $groupId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelGroupReportFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n groupReportsByGroupId(\\n groupId: $groupId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n groupId\\n name\\n template {\\n name\\n key\\n mimeType\\n }\\n type\\n data\\n scope\\n exportAsPdf\\n autoFillFormula\\n description\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst getProjectCategory = \"\\n query GetProjectCategory($id: ID!) {\\n getProjectCategory(id: $id) {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n projects {\\n items {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n }\\n schedules {\\n items {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n stockNumImgs\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n projects {\\n nextToken\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n tenants {\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n mainContainerMasters {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n }\\n\";\nconst listProjectCategories = \"\\n query ListProjectCategories(\\n $filter: ModelProjectCategoryFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listProjectCategories(\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n projects {\\n items {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n schedules {\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst projectCategoriesByGroupId = \"\\n query ProjectCategoriesByGroupId(\\n $groupId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelProjectCategoryFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n projectCategoriesByGroupId(\\n groupId: $groupId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n projects {\\n items {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n schedules {\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getVendor = \"\\n query GetVendor($id: ID!) {\\n getVendor(id: $id) {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n purchasings {\\n nextToken\\n }\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n vendors {\\n nextToken\\n }\\n species {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n materialType {\\n id\\n groupId\\n name\\n description\\n type\\n isWood\\n isPanel\\n isLvl\\n isNormalWood\\n summaryReportTarget\\n active\\n createdAt\\n updatedAt\\n }\\n purchasings {\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n purchasings {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n customFields {\\n label\\n value\\n }\\n note\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n purchasings {\\n nextToken\\n }\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n vendors {\\n nextToken\\n }\\n species {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n materialType {\\n id\\n groupId\\n name\\n description\\n type\\n isWood\\n isPanel\\n isLvl\\n isNormalWood\\n summaryReportTarget\\n active\\n createdAt\\n updatedAt\\n }\\n purchasings {\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n }\\n\";\nconst listVendors = \"\\n query ListVendors(\\n $filter: ModelVendorFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listVendors(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n purchasings {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n customFields {\\n label\\n value\\n }\\n note\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst vendorsByTenantId = \"\\n query VendorsByTenantId(\\n $tenantId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelVendorFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n vendorsByTenantId(\\n tenantId: $tenantId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n purchasings {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n customFields {\\n label\\n value\\n }\\n note\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getMaterial = \"\\n query GetMaterial($id: ID!) {\\n getMaterial(id: $id) {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n vendors {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n purchasings {\\n nextToken\\n }\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n vendors {\\n nextToken\\n }\\n species {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n materialType {\\n id\\n groupId\\n name\\n description\\n type\\n isWood\\n isPanel\\n isLvl\\n isNormalWood\\n summaryReportTarget\\n active\\n createdAt\\n updatedAt\\n }\\n purchasings {\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n species {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n vendors {\\n nextToken\\n }\\n species {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n materialType {\\n id\\n groupId\\n name\\n description\\n type\\n isWood\\n isPanel\\n isLvl\\n isNormalWood\\n summaryReportTarget\\n active\\n createdAt\\n updatedAt\\n }\\n purchasings {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n materialType {\\n id\\n groupId\\n name\\n description\\n type\\n isWood\\n isPanel\\n isLvl\\n isNormalWood\\n summaryReportTarget\\n customFields {\\n name\\n type\\n required\\n }\\n active\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n vendors {\\n nextToken\\n }\\n species {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n materialType {\\n id\\n groupId\\n name\\n description\\n type\\n isWood\\n isPanel\\n isLvl\\n isNormalWood\\n summaryReportTarget\\n active\\n createdAt\\n updatedAt\\n }\\n purchasings {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n purchasings {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n customFields {\\n label\\n value\\n }\\n note\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n purchasings {\\n nextToken\\n }\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n vendors {\\n nextToken\\n }\\n species {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n materialType {\\n id\\n groupId\\n name\\n description\\n type\\n isWood\\n isPanel\\n isLvl\\n isNormalWood\\n summaryReportTarget\\n active\\n createdAt\\n updatedAt\\n }\\n purchasings {\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n }\\n\";\nconst listMaterials = \"\\n query ListMaterials(\\n $filter: ModelMaterialFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listMaterials(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n vendors {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n species {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n materialType {\\n id\\n groupId\\n name\\n description\\n type\\n isWood\\n isPanel\\n isLvl\\n isNormalWood\\n summaryReportTarget\\n customFields {\\n name\\n type\\n required\\n }\\n active\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n purchasings {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n customFields {\\n label\\n value\\n }\\n note\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst materialsByGroupId = \"\\n query MaterialsByGroupId(\\n $groupId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelMaterialFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n materialsByGroupId(\\n groupId: $groupId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n vendors {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n species {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n materialType {\\n id\\n groupId\\n name\\n description\\n type\\n isWood\\n isPanel\\n isLvl\\n isNormalWood\\n summaryReportTarget\\n customFields {\\n name\\n type\\n required\\n }\\n active\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n purchasings {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n customFields {\\n label\\n value\\n }\\n note\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst materialsBySpeciesId = \"\\n query MaterialsBySpeciesId(\\n $speciesId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelMaterialFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n materialsBySpeciesId(\\n speciesId: $speciesId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n vendors {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n species {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n materialType {\\n id\\n groupId\\n name\\n description\\n type\\n isWood\\n isPanel\\n isLvl\\n isNormalWood\\n summaryReportTarget\\n customFields {\\n name\\n type\\n required\\n }\\n active\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n purchasings {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n customFields {\\n label\\n value\\n }\\n note\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst materialsByTypeId = \"\\n query MaterialsByTypeId(\\n $materialTypeId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelMaterialFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n materialsByTypeId(\\n materialTypeId: $materialTypeId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n vendors {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n species {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n materialType {\\n id\\n groupId\\n name\\n description\\n type\\n isWood\\n isPanel\\n isLvl\\n isNormalWood\\n summaryReportTarget\\n customFields {\\n name\\n type\\n required\\n }\\n active\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n purchasings {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n customFields {\\n label\\n value\\n }\\n note\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getSpecies = \"\\n query GetSpecies($id: ID!) {\\n getSpecies(id: $id) {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n vendors {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n species {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n materialType {\\n id\\n groupId\\n name\\n description\\n type\\n isWood\\n isPanel\\n isLvl\\n isNormalWood\\n summaryReportTarget\\n customFields {\\n name\\n type\\n required\\n }\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n purchasings {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n note\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n }\\n\";\nconst listSpecies = \"\\n query ListSpecies(\\n $filter: ModelSpeciesFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listSpecies(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n vendors {\\n nextToken\\n }\\n species {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n materialType {\\n id\\n groupId\\n name\\n description\\n type\\n isWood\\n isPanel\\n isLvl\\n isNormalWood\\n summaryReportTarget\\n active\\n createdAt\\n updatedAt\\n }\\n purchasings {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst speciesByGroupId = \"\\n query SpeciesByGroupId(\\n $groupId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelSpeciesFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n speciesByGroupId(\\n groupId: $groupId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n vendors {\\n nextToken\\n }\\n species {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n materialType {\\n id\\n groupId\\n name\\n description\\n type\\n isWood\\n isPanel\\n isLvl\\n isNormalWood\\n summaryReportTarget\\n active\\n createdAt\\n updatedAt\\n }\\n purchasings {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getMaterialType = \"\\n query GetMaterialType($id: ID!) {\\n getMaterialType(id: $id) {\\n id\\n groupId\\n name\\n description\\n type\\n isWood\\n isPanel\\n isLvl\\n isNormalWood\\n summaryReportTarget\\n customFields {\\n name\\n type\\n required\\n }\\n active\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n vendors {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n species {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n materialType {\\n id\\n groupId\\n name\\n description\\n type\\n isWood\\n isPanel\\n isLvl\\n isNormalWood\\n summaryReportTarget\\n customFields {\\n name\\n type\\n required\\n }\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n purchasings {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n note\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n }\\n\";\nconst listMaterialTypes = \"\\n query ListMaterialTypes(\\n $filter: ModelMaterialTypeFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listMaterialTypes(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n groupId\\n name\\n description\\n type\\n isWood\\n isPanel\\n isLvl\\n isNormalWood\\n summaryReportTarget\\n customFields {\\n name\\n type\\n required\\n }\\n active\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n vendors {\\n nextToken\\n }\\n species {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n materialType {\\n id\\n groupId\\n name\\n description\\n type\\n isWood\\n isPanel\\n isLvl\\n isNormalWood\\n summaryReportTarget\\n active\\n createdAt\\n updatedAt\\n }\\n purchasings {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst materialTypesByGroupId = \"\\n query MaterialTypesByGroupId(\\n $groupId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelMaterialTypeFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n materialTypesByGroupId(\\n groupId: $groupId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n groupId\\n name\\n description\\n type\\n isWood\\n isPanel\\n isLvl\\n isNormalWood\\n summaryReportTarget\\n customFields {\\n name\\n type\\n required\\n }\\n active\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n vendors {\\n nextToken\\n }\\n species {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n materialType {\\n id\\n groupId\\n name\\n description\\n type\\n isWood\\n isPanel\\n isLvl\\n isNormalWood\\n summaryReportTarget\\n active\\n createdAt\\n updatedAt\\n }\\n purchasings {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getPurchasing = \"\\n query GetPurchasing($id: ID!) {\\n getPurchasing(id: $id) {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n customFields {\\n label\\n value\\n }\\n note\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n purchasings {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n customFields {\\n label\\n value\\n }\\n note\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n vendors {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n species {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n materialType {\\n id\\n groupId\\n name\\n description\\n type\\n isWood\\n isPanel\\n isLvl\\n isNormalWood\\n summaryReportTarget\\n customFields {\\n name\\n type\\n required\\n }\\n active\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n purchasings {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n customFields {\\n label\\n value\\n }\\n note\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n }\\n }\\n\";\nconst listPurchasings = \"\\n query ListPurchasings(\\n $filter: ModelPurchasingFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listPurchasings(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n customFields {\\n label\\n value\\n }\\n note\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n purchasings {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n note\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n vendors {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n species {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n materialType {\\n id\\n groupId\\n name\\n description\\n type\\n isWood\\n isPanel\\n isLvl\\n isNormalWood\\n summaryReportTarget\\n customFields {\\n name\\n type\\n required\\n }\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n purchasings {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n note\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst purchasingsByMaterialId = \"\\n query PurchasingsByMaterialId(\\n $materialId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelPurchasingFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n purchasingsByMaterialId(\\n materialId: $materialId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n customFields {\\n label\\n value\\n }\\n note\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n purchasings {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n note\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n vendors {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n species {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n materialType {\\n id\\n groupId\\n name\\n description\\n type\\n isWood\\n isPanel\\n isLvl\\n isNormalWood\\n summaryReportTarget\\n customFields {\\n name\\n type\\n required\\n }\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n purchasings {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n note\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst purchasingsByGroupId = \"\\n query PurchasingsByGroupId(\\n $groupId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelPurchasingFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n purchasingsByGroupId(\\n groupId: $groupId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n customFields {\\n label\\n value\\n }\\n note\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n purchasings {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n note\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n vendors {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n species {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n materialType {\\n id\\n groupId\\n name\\n description\\n type\\n isWood\\n isPanel\\n isLvl\\n isNormalWood\\n summaryReportTarget\\n customFields {\\n name\\n type\\n required\\n }\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n purchasings {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n note\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst purchasingsByVendorId = \"\\n query PurchasingsByVendorId(\\n $vendorId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelPurchasingFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n purchasingsByVendorId(\\n vendorId: $vendorId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n customFields {\\n label\\n value\\n }\\n note\\n createdAt\\n updatedAt\\n vendor {\\n id\\n businessRegistrationNumber\\n name\\n tenantId\\n abbreviation\\n site\\n disinfectantCertificationCode\\n billingAddress\\n billingPostalCode\\n billingCountry\\n billingState\\n billingCity\\n billingStreet\\n billingType\\n phone\\n fax\\n customCode\\n active\\n accountCode\\n vendorId\\n packagingMaterialProducerRegistrationNumber\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n purchasings {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n note\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n material {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n vendors {\\n items {\\n id\\n vendorId\\n materialId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n species {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n materialType {\\n id\\n groupId\\n name\\n description\\n type\\n isWood\\n isPanel\\n isLvl\\n isNormalWood\\n summaryReportTarget\\n customFields {\\n name\\n type\\n required\\n }\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n purchasings {\\n items {\\n id\\n groupId\\n vendorId\\n materialId\\n purchasingDate\\n startDate\\n unitPurchasingCost\\n purchaseUnit\\n quantity\\n totalCost\\n unitCost\\n costUnit\\n note\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst testSync = \"\\n query TestSync($input: SalesForceInput!) {\\n testSync(input: $input)\\n }\\n\";\nconst listSFObjectNames = \"\\n query ListSFObjectNames($input: ListSFObjectNamesInput!) {\\n listSFObjectNames(input: $input) {\\n sfObjectName\\n sfObjectLabel\\n }\\n }\\n\";\nconst listSFFieldsBySFObject = \"\\n query ListSFFieldsBySFObject($input: ListSFFieldsBySFObjectInput!) {\\n listSFFieldsBySFObject(input: $input) {\\n sfFieldName\\n sfFieldLabel\\n sfFieldType\\n }\\n }\\n\";\nconst sFObjectByTenantIdAndName = \"\\n query SFObjectByTenantIdAndName($tenantId: ID!, $name: String!) {\\n sFObjectByTenantIdAndName(tenantId: $tenantId, name: $name) {\\n id\\n name\\n tenantId\\n label\\n sfObjectName\\n editable\\n condition\\n fields {\\n name\\n label\\n apiName\\n type\\n required\\n unique\\n primary\\n }\\n }\\n }\\n\";\nconst quoteSummariesByQuoteId = \"\\n query QuoteSummariesByQuoteId($input: QuoteSummaryInput!) {\\n quoteSummariesByQuoteId(input: $input) {\\n items {\\n id\\n name\\n pricingName\\n amount\\n unit\\n unitPrice\\n subtotal\\n taxType\\n order\\n notes\\n }\\n }\\n }\\n\";\nconst getProductBom = \"\\n query GetProductBom($input: GetProductBomInput!) {\\n getProductBom(input: $input) {\\n product {\\n id\\n packageTypeId\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n productNumber\\n quantity\\n description\\n note\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n material\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n elements\\n }\\n components {\\n areaId\\n areaName\\n areaOrder\\n id\\n name\\n slug\\n order\\n elements\\n }\\n interiors {\\n id\\n name\\n type\\n slug\\n unit\\n order\\n elements\\n }\\n exteriors {\\n id\\n name\\n type\\n slug\\n unit\\n order\\n elements\\n }\\n }\\n }\\n\";\nconst getPackageBom = \"\\n query GetPackageBom($input: GetPackageBomInput!) {\\n getPackageBom(input: $input) {\\n product {\\n id\\n name\\n quantity\\n description\\n note\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n standard\\n material\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n elements\\n }\\n components {\\n areaId\\n areaName\\n areaOrder\\n id\\n name\\n slug\\n order\\n elements\\n }\\n interiors {\\n id\\n name\\n type\\n slug\\n unit\\n order\\n elements\\n }\\n exteriors {\\n id\\n name\\n type\\n slug\\n unit\\n order\\n elements\\n }\\n }\\n }\\n\";\nconst productSummariesByProjectId = \"\\n query ProductSummariesByProjectId($input: ProductSummariesInput!) {\\n productSummariesByProjectId(input: $input) {\\n items {\\n productId\\n name\\n productName\\n pricingId\\n packageTypeId\\n pricingName\\n packageTypeName\\n quantity\\n order\\n productOrder\\n caseOrder\\n netWeight\\n grossWeight\\n outerLength\\n outerWidth\\n outerHeight\\n productOuterLength\\n productOuterWidth\\n productOuterHeight\\n m3\\n phaseName\\n scheduleId\\n scheduleName\\n shippingDate\\n material\\n destination\\n managementNumber\\n isBilled\\n invoiceLineId\\n readyToPack\\n vanplanCreated\\n }\\n }\\n }\\n\";\nconst checkCaseVersion = \"\\n query CheckCaseVersion($input: CheckCaseVersionInput!) {\\n checkCaseVersion(input: $input)\\n }\\n\";\nconst listSummarizedMaterials = \"\\n query ListSummarizedMaterials($input: SummarizedMaterialsInput!) {\\n listSummarizedMaterials(input: $input) {\\n items {\\n accountId\\n accountName\\n contactId\\n contactName\\n projectId\\n projectName\\n productId\\n productName\\n productNumber\\n scheduleId\\n scheduleName\\n stockingDate\\n packagingDate\\n shippingDate\\n productQuantity\\n materialTypeId\\n materialTypeName\\n materialId\\n materialName\\n speciesId\\n speciesName\\n lossRate\\n usedM3\\n usedM2\\n totalM3\\n totalM2\\n projectReference\\n productDestination\\n productPackageTypeName\\n productMaterial\\n }\\n nextToken\\n }\\n }\\n\";\nconst listSummarizedInvoices = \"\\n query ListSummarizedInvoices($input: SummarizedInvoicesInput!) {\\n listSummarizedInvoices(input: $input) {\\n key\\n items {\\n projectId\\n projectName\\n projectReference\\n projectCategory\\n projectAccountName\\n projectAccountSite\\n projectAccountCode\\n projectAccountNameSite\\n projectAccountAbbreviation\\n projectAccountCutoffDateText\\n projectAccountPaymentMonthText\\n projectAccountPaymentDateText\\n projectContactName\\n projectContactTitle\\n projectContactDepartment\\n projectManagerName\\n projectQuoterName\\n projectOperatorName\\n projectType\\n projectUserName\\n projectStatus\\n projectStockingDate\\n projectPackagingDate\\n projectShippingDate\\n projectCutDate\\n name\\n invoiceNo\\n billed\\n taxableSubtotal\\n nonTaxableTotal\\n taxableTotal\\n subtotal\\n taxTotal\\n total\\n totalPurchasingCost\\n description\\n billingDate\\n issueDate\\n recordingDate\\n externalId\\n createdAt\\n updatedAt\\n accountPostalCode\\n accountState\\n accountCity\\n accountStreet\\n bankName\\n bankBranchName\\n bankBranchNumber\\n bankAccountType\\n bankAccountNumber\\n productDestination\\n productMaterial\\n productStockingDate\\n productPackagingDate\\n productShippingDate\\n productCutDate\\n lineOrder\\n lineName\\n lineShippingDate\\n lineSalesType\\n linePricingName\\n lineQuantity\\n lineM3\\n lineMinimumAmount\\n lineGrossWeight\\n lineRt\\n lineAmount\\n lineDescription\\n lineUnit\\n lineUnitPrice\\n lineTaxType\\n lineSubtotal\\n lineTotal\\n lineCreatedAt\\n lineUpdatedAt\\n lineUnitPurchasingCost\\n lineTotalPurchasingCost\\n lineVendorName\\n lineVendorSite\\n lineExternalId\\n }\\n nextToken\\n }\\n }\\n\";\nconst reportProjects = \"\\n query ReportProjects($input: ReportProjectsInput) {\\n reportProjects(input: $input) {\\n items {\\n id\\n name\\n reference\\n account {\\n id\\n accountCode\\n site\\n name\\n }\\n contact {\\n id\\n name\\n firstName\\n lastName\\n title\\n }\\n alert\\n managerName\\n quoterName\\n operatorName\\n user {\\n id\\n name\\n firstName\\n lastName\\n }\\n type\\n status\\n createdAt\\n updatedAt\\n schedules {\\n items {\\n id\\n name\\n note\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n case\\n m3\\n isShipped\\n }\\n }\\n }\\n }\\n }\\n\";\nconst projectsByGroupIdForMobile = \"\\n query ProjectsByGroupIdForMobile(\\n $groupId: ID!\\n $limit: Int\\n $nextToken: String\\n $filter: ProjectsByGroupIdFilter\\n ) {\\n projectsByGroupIdForMobile(\\n groupId: $groupId\\n limit: $limit\\n nextToken: $nextToken\\n filter: $filter\\n ) {\\n items {\\n id\\n accountName\\n schedules {\\n items {\\n id\\n name\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n }\\n }\\n name\\n status\\n }\\n nextToken\\n }\\n }\\n\";\nconst projectsByGroupIdForManager = \"\\n query ProjectsByGroupIdForManager(\\n $groupId: ID!\\n $tenantId: ID\\n $status: [String]\\n $dates: [String]\\n $visibleKeyDates: VisibleKeyDates\\n $limit: Int\\n $nextToken: String\\n $startIndex: Int\\n $filter: ProjectsByGroupIdFilter\\n $userFilter: UserFilter\\n $categoryFilter: CategoryFilter\\n $scheduleFilter: ScheduleFilter\\n $sortDirection: SortDirectionInput\\n ) {\\n projectsByGroupIdForManager(\\n groupId: $groupId\\n tenantId: $tenantId\\n status: $status\\n dates: $dates\\n visibleKeyDates: $visibleKeyDates\\n limit: $limit\\n nextToken: $nextToken\\n startIndex: $startIndex\\n filter: $filter\\n userFilter: $userFilter\\n categoryFilter: $categoryFilter\\n scheduleFilter: $scheduleFilter\\n sortDirection: $sortDirection\\n ) {\\n items {\\n id\\n accountId\\n contactId\\n accountName\\n schedules {\\n items {\\n id\\n name\\n note\\n shipType\\n beforeStockingName\\n beforeStockingDate\\n stockingDate\\n beforePackagingName\\n beforePackagingDate\\n packagingDate\\n beforeShippingName\\n beforeShippingDate\\n shippingDate\\n beforeCutName\\n beforeCutDate\\n cutDate\\n afterCutName\\n afterCutDate\\n m3\\n case\\n }\\n }\\n name\\n status\\n reference\\n contactName\\n managerName\\n quoterName\\n operatorName\\n user {\\n name\\n firstName\\n lastName\\n }\\n account {\\n name\\n active\\n }\\n categoryId\\n category {\\n name\\n }\\n alert\\n type\\n createdAt\\n updatedAt\\n }\\n nextToken\\n startIndex\\n }\\n }\\n\";\nconst downloadContainerMasterPreset = \"\\n query DownloadContainerMasterPreset {\\n downloadContainerMasterPreset {\\n downloadURL\\n }\\n }\\n\";\nconst signInExternalSharePage = \"\\n query SignInExternalSharePage($input: SignInExternalSharePageInput!) {\\n signInExternalSharePage(input: $input) {\\n result\\n accessToken\\n project {\\n id\\n account {\\n id\\n name\\n }\\n schedules {\\n id\\n name\\n numImgs\\n shippingDate\\n stockingDate\\n stockNumImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n }\\n name\\n type\\n status\\n stockNumImgs\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n }\\n schedules {\\n id\\n name\\n numImgs\\n shippingDate\\n stockingDate\\n stockNumImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n }\\n products {\\n id\\n projectId\\n name\\n order\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n cases {\\n order\\n name\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n phaseId\\n thumbnail\\n }\\n }\\n photos {\\n key\\n eTag\\n size\\n lastModified\\n total\\n index\\n }\\n errReason\\n }\\n }\\n\";\nconst verifyExternalShareAccessToken = \"\\n query VerifyExternalShareAccessToken(\\n $input: VerifyExternalShareAccessTokenInput!\\n ) {\\n verifyExternalShareAccessToken(input: $input) {\\n result\\n project {\\n id\\n account {\\n id\\n name\\n }\\n schedules {\\n id\\n name\\n numImgs\\n shippingDate\\n stockingDate\\n stockNumImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n }\\n name\\n type\\n status\\n stockNumImgs\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n }\\n schedules {\\n id\\n name\\n numImgs\\n shippingDate\\n stockingDate\\n stockNumImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n }\\n products {\\n id\\n projectId\\n name\\n order\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n cases {\\n order\\n name\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n phaseId\\n thumbnail\\n }\\n }\\n photos {\\n key\\n eTag\\n size\\n lastModified\\n total\\n index\\n }\\n errReason\\n }\\n }\\n\";\nconst getQuote = \"\\n query GetQuote($id: ID!) {\\n getQuote(id: $id) {\\n id\\n projectId\\n name\\n quoteNumber\\n linkProduct\\n order\\n orderPlaced\\n packRevenue\\n packEstimatedCost\\n packEstimatedProfit\\n packTotalNetWeight\\n packTotalNumOfCases\\n packTotalGrossWeight\\n packTotalM3\\n revenue\\n estimatedCost\\n estimatedProfit\\n totalNumOfCases\\n totalNetWeight\\n totalGrossWeight\\n totalM3\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n groupName\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n phone\\n fax\\n createdAt\\n updatedAt\\n quoteLines {\\n items {\\n id\\n quoteId\\n pricingId\\n packageTypeId\\n productId\\n quoteProductId\\n productName\\n pricingName\\n packageTypeName\\n showInQuoteSummary\\n name\\n index\\n notes\\n quantity\\n autocalculate\\n amount\\n minimumAmount\\n actualAmount\\n order\\n unitNW\\n NW\\n productLength\\n productWidth\\n productHeight\\n outerLength\\n outerWidth\\n outerHeight\\n estimatedUnitM3\\n estimatedM3\\n estimatedUnitGrossWeight\\n estimatedGrossWeight\\n estimatedUnitCost\\n estimatedCost\\n estimatedProfit\\n estimatedWood\\n estimatedLvl\\n estimatedPanel\\n estimatedInterior\\n estimatedExterior\\n estimatedCostM3\\n estimatedOther\\n unitPrice\\n subtotal\\n total\\n unit\\n taxType\\n taxRate\\n salesType\\n costDetail\\n createdAt\\n updatedAt\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n }\\n\";\nconst listQuotes = \"\\n query ListQuotes(\\n $filter: ModelQuoteFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listQuotes(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n projectId\\n name\\n quoteNumber\\n linkProduct\\n order\\n orderPlaced\\n packRevenue\\n packEstimatedCost\\n packEstimatedProfit\\n packTotalNetWeight\\n packTotalNumOfCases\\n packTotalGrossWeight\\n packTotalM3\\n revenue\\n estimatedCost\\n estimatedProfit\\n totalNumOfCases\\n totalNetWeight\\n totalGrossWeight\\n totalM3\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n groupName\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n phone\\n fax\\n createdAt\\n updatedAt\\n quoteLines {\\n items {\\n id\\n quoteId\\n pricingId\\n packageTypeId\\n productId\\n quoteProductId\\n productName\\n pricingName\\n packageTypeName\\n showInQuoteSummary\\n name\\n index\\n notes\\n quantity\\n autocalculate\\n amount\\n minimumAmount\\n actualAmount\\n order\\n unitNW\\n NW\\n productLength\\n productWidth\\n productHeight\\n outerLength\\n outerWidth\\n outerHeight\\n estimatedUnitM3\\n estimatedM3\\n estimatedUnitGrossWeight\\n estimatedGrossWeight\\n estimatedUnitCost\\n estimatedCost\\n estimatedProfit\\n estimatedWood\\n estimatedLvl\\n estimatedPanel\\n estimatedInterior\\n estimatedExterior\\n estimatedCostM3\\n estimatedOther\\n unitPrice\\n subtotal\\n total\\n unit\\n taxType\\n taxRate\\n salesType\\n costDetail\\n createdAt\\n updatedAt\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n accountSpecific\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst quotesByProjectId = \"\\n query QuotesByProjectId(\\n $projectId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelQuoteFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n quotesByProjectId(\\n projectId: $projectId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n projectId\\n name\\n quoteNumber\\n linkProduct\\n order\\n orderPlaced\\n packRevenue\\n packEstimatedCost\\n packEstimatedProfit\\n packTotalNetWeight\\n packTotalNumOfCases\\n packTotalGrossWeight\\n packTotalM3\\n revenue\\n estimatedCost\\n estimatedProfit\\n totalNumOfCases\\n totalNetWeight\\n totalGrossWeight\\n totalM3\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n groupName\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n phone\\n fax\\n createdAt\\n updatedAt\\n quoteLines {\\n items {\\n id\\n quoteId\\n pricingId\\n packageTypeId\\n productId\\n quoteProductId\\n productName\\n pricingName\\n packageTypeName\\n showInQuoteSummary\\n name\\n index\\n notes\\n quantity\\n autocalculate\\n amount\\n minimumAmount\\n actualAmount\\n order\\n unitNW\\n NW\\n productLength\\n productWidth\\n productHeight\\n outerLength\\n outerWidth\\n outerHeight\\n estimatedUnitM3\\n estimatedM3\\n estimatedUnitGrossWeight\\n estimatedGrossWeight\\n estimatedUnitCost\\n estimatedCost\\n estimatedProfit\\n estimatedWood\\n estimatedLvl\\n estimatedPanel\\n estimatedInterior\\n estimatedExterior\\n estimatedCostM3\\n estimatedOther\\n unitPrice\\n subtotal\\n total\\n unit\\n taxType\\n taxRate\\n salesType\\n costDetail\\n createdAt\\n updatedAt\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n accountSpecific\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getQuoteLine = \"\\n query GetQuoteLine($id: ID!) {\\n getQuoteLine(id: $id) {\\n id\\n quoteId\\n pricingId\\n packageTypeId\\n productId\\n quoteProductId\\n productName\\n pricingName\\n packageTypeName\\n showInQuoteSummary\\n name\\n index\\n notes\\n quantity\\n autocalculate\\n amount\\n minimumAmount\\n actualAmount\\n order\\n unitNW\\n NW\\n productLength\\n productWidth\\n productHeight\\n outerLength\\n outerWidth\\n outerHeight\\n estimatedUnitM3\\n estimatedM3\\n estimatedUnitGrossWeight\\n estimatedGrossWeight\\n estimatedUnitCost\\n estimatedCost\\n estimatedProfit\\n estimatedWood\\n estimatedLvl\\n estimatedPanel\\n estimatedInterior\\n estimatedExterior\\n estimatedCostM3\\n estimatedOther\\n unitPrice\\n subtotal\\n total\\n unit\\n taxType\\n taxRate\\n salesType\\n costDetail\\n createdAt\\n updatedAt\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n pricings {\\n items {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n accountSpecific\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n }\\n }\\n\";\nconst listQuoteLines = \"\\n query ListQuoteLines(\\n $filter: ModelQuoteLineFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listQuoteLines(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n quoteId\\n pricingId\\n packageTypeId\\n productId\\n quoteProductId\\n productName\\n pricingName\\n packageTypeName\\n showInQuoteSummary\\n name\\n index\\n notes\\n quantity\\n autocalculate\\n amount\\n minimumAmount\\n actualAmount\\n order\\n unitNW\\n NW\\n productLength\\n productWidth\\n productHeight\\n outerLength\\n outerWidth\\n outerHeight\\n estimatedUnitM3\\n estimatedM3\\n estimatedUnitGrossWeight\\n estimatedGrossWeight\\n estimatedUnitCost\\n estimatedCost\\n estimatedProfit\\n estimatedWood\\n estimatedLvl\\n estimatedPanel\\n estimatedInterior\\n estimatedExterior\\n estimatedCostM3\\n estimatedOther\\n unitPrice\\n subtotal\\n total\\n unit\\n taxType\\n taxRate\\n salesType\\n costDetail\\n createdAt\\n updatedAt\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n pricings {\\n nextToken\\n }\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst quoteLinesByQuoteId = \"\\n query QuoteLinesByQuoteId(\\n $quoteId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelQuoteLineFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n quoteLinesByQuoteId(\\n quoteId: $quoteId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n quoteId\\n pricingId\\n packageTypeId\\n productId\\n quoteProductId\\n productName\\n pricingName\\n packageTypeName\\n showInQuoteSummary\\n name\\n index\\n notes\\n quantity\\n autocalculate\\n amount\\n minimumAmount\\n actualAmount\\n order\\n unitNW\\n NW\\n productLength\\n productWidth\\n productHeight\\n outerLength\\n outerWidth\\n outerHeight\\n estimatedUnitM3\\n estimatedM3\\n estimatedUnitGrossWeight\\n estimatedGrossWeight\\n estimatedUnitCost\\n estimatedCost\\n estimatedProfit\\n estimatedWood\\n estimatedLvl\\n estimatedPanel\\n estimatedInterior\\n estimatedExterior\\n estimatedCostM3\\n estimatedOther\\n unitPrice\\n subtotal\\n total\\n unit\\n taxType\\n taxRate\\n salesType\\n costDetail\\n createdAt\\n updatedAt\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n pricesBySize {\\n minSize\\n maxSize\\n unitPrice\\n }\\n accountSpecific\\n accounts {\\n key\\n label\\n }\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n priceType {\\n id\\n groupId\\n name\\n description\\n showInQuoteSummary\\n active\\n createdAt\\n updatedAt\\n pricings {\\n nextToken\\n }\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getSFObject = \"\\n query GetSFObject($id: ID!) {\\n getSFObject(id: $id) {\\n id\\n name\\n tenantId\\n label\\n sfObjectName\\n editable\\n condition\\n fields {\\n name\\n label\\n apiName\\n type\\n required\\n unique\\n primary\\n }\\n createdAt\\n updatedAt\\n }\\n }\\n\";\nconst listSFObjects = \"\\n query ListSFObjects(\\n $filter: ModelSFObjectFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listSFObjects(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n name\\n tenantId\\n label\\n sfObjectName\\n editable\\n condition\\n fields {\\n name\\n label\\n apiName\\n type\\n required\\n unique\\n primary\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst sFObjectsByTenantId = \"\\n query SFObjectsByTenantId(\\n $tenantId: ID\\n $sfObjectName: ModelStringKeyConditionInput\\n $sortDirection: ModelSortDirection\\n $filter: ModelSFObjectFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n sFObjectsByTenantId(\\n tenantId: $tenantId\\n sfObjectName: $sfObjectName\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n name\\n tenantId\\n label\\n sfObjectName\\n editable\\n condition\\n fields {\\n name\\n label\\n apiName\\n type\\n required\\n unique\\n primary\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst getSyncLog = \"\\n query GetSyncLog($id: ID!) {\\n getSyncLog(id: $id) {\\n id\\n status\\n numberOfNewRecords\\n numberOfDeletedRecords\\n numberOfUpdatedRecords\\n message\\n sFObjectId\\n createdAt\\n updatedAt\\n sFObject {\\n id\\n name\\n tenantId\\n label\\n sfObjectName\\n editable\\n condition\\n fields {\\n name\\n label\\n apiName\\n type\\n required\\n unique\\n primary\\n }\\n createdAt\\n updatedAt\\n }\\n }\\n }\\n\";\nconst listSyncLogs = \"\\n query ListSyncLogs(\\n $filter: ModelSyncLogFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listSyncLogs(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n status\\n numberOfNewRecords\\n numberOfDeletedRecords\\n numberOfUpdatedRecords\\n message\\n sFObjectId\\n createdAt\\n updatedAt\\n sFObject {\\n id\\n name\\n tenantId\\n label\\n sfObjectName\\n editable\\n condition\\n fields {\\n name\\n label\\n apiName\\n type\\n required\\n unique\\n primary\\n }\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst syncLogsBySFObject = \"\\n query SyncLogsBySFObject(\\n $sFObjectId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelSyncLogFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n syncLogsBySFObject(\\n sFObjectId: $sFObjectId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n status\\n numberOfNewRecords\\n numberOfDeletedRecords\\n numberOfUpdatedRecords\\n message\\n sFObjectId\\n createdAt\\n updatedAt\\n sFObject {\\n id\\n name\\n tenantId\\n label\\n sfObjectName\\n editable\\n condition\\n fields {\\n name\\n label\\n apiName\\n type\\n required\\n unique\\n primary\\n }\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getAccessLog = \"\\n query GetAccessLog($id: ID!) {\\n getAccessLog(id: $id) {\\n id\\n device\\n ipAddress\\n description\\n tenantUserId\\n createdAt\\n updatedAt\\n }\\n }\\n\";\nconst listAccessLogs = \"\\n query ListAccessLogs(\\n $filter: ModelAccessLogFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listAccessLogs(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n device\\n ipAddress\\n description\\n tenantUserId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst getUser = \"\\n query GetUser($id: ID!) {\\n getUser(id: $id) {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n tenants {\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n mainContainerMasters {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n items {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n sfObjects {\\n items {\\n id\\n name\\n tenantId\\n label\\n sfObjectName\\n editable\\n condition\\n fields {\\n name\\n label\\n apiName\\n type\\n required\\n unique\\n primary\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n tenants {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n groups {\\n items {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n mainContainerMasters {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n tenants {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n configuration {\\n projectFilter {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n }\\n customId\\n active\\n createdAt\\n updatedAt\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n tenants {\\n nextToken\\n }\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n }\\n\";\nconst listUsers = \"\\n query ListUsers(\\n $filter: ModelUserFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listUsers(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n items {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n sfObjects {\\n items {\\n id\\n name\\n tenantId\\n label\\n sfObjectName\\n editable\\n condition\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n groups {\\n items {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n tenants {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n customId\\n active\\n createdAt\\n updatedAt\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst legacyUsersByTenantId = \"\\n query LegacyUsersByTenantId(\\n $tenantId: ID\\n $createdAt: ModelStringKeyConditionInput\\n $sortDirection: ModelSortDirection\\n $filter: ModelUserFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n legacyUsersByTenantId(\\n tenantId: $tenantId\\n createdAt: $createdAt\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n items {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n sfObjects {\\n items {\\n id\\n name\\n tenantId\\n label\\n sfObjectName\\n editable\\n condition\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n groups {\\n items {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n tenants {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n customId\\n active\\n createdAt\\n updatedAt\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst usersByEmail = \"\\n query UsersByEmail(\\n $email: String\\n $sortDirection: ModelSortDirection\\n $filter: ModelUserFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n usersByEmail(\\n email: $email\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n items {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n sfObjects {\\n items {\\n id\\n name\\n tenantId\\n label\\n sfObjectName\\n editable\\n condition\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n groups {\\n items {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n tenants {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n customId\\n active\\n createdAt\\n updatedAt\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getGroup = \"\\n query GetGroup($id: ID!) {\\n getGroup(id: $id) {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n items {\\n id\\n groupId\\n name\\n date\\n isWorking\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n vendors {\\n nextToken\\n }\\n species {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n materialType {\\n id\\n groupId\\n name\\n description\\n type\\n isWood\\n isPanel\\n isLvl\\n isNormalWood\\n summaryReportTarget\\n active\\n createdAt\\n updatedAt\\n }\\n purchasings {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n mainContainerMasters {\\n items {\\n id\\n containerMasterId\\n groupId\\n order\\n createdAt\\n updatedAt\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n mainContainerMasters {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n containerMaster {\\n id\\n groupId\\n presetId\\n name\\n order\\n active\\n insideLangth\\n insideWidth\\n insideHeight\\n payload\\n cost\\n noEndWalls\\n noSideWalls\\n noRoof\\n doorWidth\\n doorHeight\\n doorAtLongside\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n tenants {\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n mainContainerMasters {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n items {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n sfObjects {\\n items {\\n id\\n name\\n tenantId\\n label\\n sfObjectName\\n editable\\n condition\\n fields {\\n name\\n label\\n apiName\\n type\\n required\\n unique\\n primary\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n tenants {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n groups {\\n items {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n mainContainerMasters {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n }\\n }\\n\";\nconst listGroups = \"\\n query ListGroups(\\n $filter: ModelGroupFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listGroups(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n items {\\n id\\n groupId\\n name\\n date\\n isWorking\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n mainContainerMasters {\\n items {\\n id\\n containerMasterId\\n groupId\\n order\\n createdAt\\n updatedAt\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n containerMaster {\\n id\\n groupId\\n presetId\\n name\\n order\\n active\\n insideLangth\\n insideWidth\\n insideHeight\\n payload\\n cost\\n noEndWalls\\n noSideWalls\\n noRoof\\n doorWidth\\n doorHeight\\n doorAtLongside\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n items {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n sfObjects {\\n items {\\n id\\n name\\n tenantId\\n label\\n sfObjectName\\n editable\\n condition\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n groups {\\n items {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst groupsByTenantId = \"\\n query GroupsByTenantId(\\n $tenantId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelGroupFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n groupsByTenantId(\\n tenantId: $tenantId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n items {\\n id\\n groupId\\n name\\n date\\n isWorking\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n items {\\n id\\n groupId\\n materialTypeId\\n speciesId\\n name\\n purchaseUnit\\n lossRate\\n weight\\n costCalculation\\n defaultUnitCost\\n unit\\n length\\n lengthApplicable\\n lengthLocked\\n lengthNominal\\n width\\n widthApplicable\\n widthLocked\\n widthNominal\\n height\\n heightApplicable\\n heightLocked\\n heightNominal\\n active\\n refBhhFace\\n refBhhEdge\\n z1402BeamOrder\\n z1403BeamSupportOrder\\n z1403BeamFaceOrder\\n z1403BeamEdgeOrder\\n z1410BeamSupportOrder\\n z1410BeamFaceOrder\\n z1410BeamEdgeOrder\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n mainContainerMasters {\\n items {\\n id\\n containerMasterId\\n groupId\\n order\\n createdAt\\n updatedAt\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n containerMaster {\\n id\\n groupId\\n presetId\\n name\\n order\\n active\\n insideLangth\\n insideWidth\\n insideHeight\\n payload\\n cost\\n noEndWalls\\n noSideWalls\\n noRoof\\n doorWidth\\n doorHeight\\n doorAtLongside\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n items {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n sfObjects {\\n items {\\n id\\n name\\n tenantId\\n label\\n sfObjectName\\n editable\\n condition\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n groups {\\n items {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getTenant = \"\\n query GetTenant($id: ID!) {\\n getTenant(id: $id) {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n items {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n sfObjects {\\n items {\\n id\\n name\\n tenantId\\n label\\n sfObjectName\\n editable\\n condition\\n fields {\\n name\\n label\\n apiName\\n type\\n required\\n unique\\n primary\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n tenants {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n customId\\n active\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n groups {\\n items {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n items {\\n id\\n groupId\\n name\\n date\\n isWorking\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n materials {\\n nextToken\\n }\\n }\\n mainContainerMasters {\\n items {\\n id\\n containerMasterId\\n groupId\\n order\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n }\\n\";\nconst listTenants = \"\\n query ListTenants(\\n $filter: ModelTenantFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listTenants(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n items {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n sfObjects {\\n items {\\n id\\n name\\n tenantId\\n label\\n sfObjectName\\n editable\\n condition\\n fields {\\n name\\n label\\n apiName\\n type\\n required\\n unique\\n primary\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n tenants {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n groups {\\n items {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n mainContainerMasters {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getUsersTenants = \"\\n query GetUsersTenants($id: ID!) {\\n getUsersTenants(id: $id) {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n configuration {\\n projectFilter {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n }\\n customId\\n active\\n createdAt\\n updatedAt\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n items {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n sfObjects {\\n items {\\n id\\n name\\n tenantId\\n label\\n sfObjectName\\n editable\\n condition\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n groups {\\n items {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n tenants {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n customId\\n active\\n createdAt\\n updatedAt\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n items {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n sfObjects {\\n items {\\n id\\n name\\n tenantId\\n label\\n sfObjectName\\n editable\\n condition\\n fields {\\n name\\n label\\n apiName\\n type\\n required\\n unique\\n primary\\n }\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n tenants {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n groups {\\n items {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n mainContainerMasters {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n }\\n }\\n\";\nconst listUsersTenants = \"\\n query ListUsersTenants(\\n $filter: ModelUsersTenantsFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listUsersTenants(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n configuration {\\n projectFilter {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n }\\n customId\\n active\\n createdAt\\n updatedAt\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n tenants {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n customId\\n active\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n items {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n sfObjects {\\n items {\\n id\\n name\\n tenantId\\n label\\n sfObjectName\\n editable\\n condition\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n groups {\\n items {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst tenantsByUserId = \"\\n query TenantsByUserId(\\n $userId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelUsersTenantsFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n tenantsByUserId(\\n userId: $userId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n configuration {\\n projectFilter {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n }\\n customId\\n active\\n createdAt\\n updatedAt\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n tenants {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n customId\\n active\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n items {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n sfObjects {\\n items {\\n id\\n name\\n tenantId\\n label\\n sfObjectName\\n editable\\n condition\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n groups {\\n items {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst usersByTenantId = \"\\n query UsersByTenantId(\\n $tenantId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelUsersTenantsFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n usersByTenantId(\\n tenantId: $tenantId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n configuration {\\n projectFilter {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n }\\n customId\\n active\\n createdAt\\n updatedAt\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n items {\\n id\\n userId\\n groupId\\n role\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n nextToken\\n }\\n contacts {\\n nextToken\\n }\\n sfObjects {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n groups {\\n nextToken\\n }\\n }\\n tenants {\\n items {\\n id\\n userId\\n tenantId\\n isAdmin\\n license\\n hidden\\n name\\n firstName\\n lastName\\n customId\\n active\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n projectFilters {\\n name\\n duration\\n sort\\n showProcesses\\n showUnits\\n showPhases\\n }\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n accounts {\\n items {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n contacts {\\n items {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n sfObjects {\\n items {\\n id\\n name\\n tenantId\\n label\\n sfObjectName\\n editable\\n condition\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n users {\\n items {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n groups {\\n items {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getVanplan = \"\\n query GetVanplan($id: ID!) {\\n getVanplan(id: $id) {\\n id\\n projectId\\n scheduleId\\n name\\n loadPlanUrl\\n loadPlanId\\n createdAt\\n updatedAt\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n cases {\\n order\\n name\\n phaseId\\n isPacked\\n netWeight\\n grossWeight\\n outerLength\\n outerWidth\\n outerHeight\\n m3\\n thumbnail\\n managementNumber\\n isBilled\\n invoiceLineId\\n version\\n note\\n summaryOrder\\n vanplanCreated\\n containerName\\n containerId\\n vanplanId\\n loadingOrder\\n }\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n packageType {\\n id\\n groupId\\n pricingId\\n name\\n description\\n publish\\n quantity\\n material\\n stamp\\n packageMethod\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n note\\n standard\\n woodCost\\n lvlCost\\n panelCost\\n normalWoodCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n active\\n order\\n pricingGroup\\n createdAt\\n updatedAt\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n accountSpecific\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n }\\n areas {\\n nextToken\\n }\\n decorations {\\n nextToken\\n }\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n stockNumImgs\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n }\\n schedules {\\n items {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n stockNumImgs\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n projects {\\n nextToken\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n tenants {\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n mainContainerMasters {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n }\\n vanplans {\\n items {\\n id\\n projectId\\n scheduleId\\n name\\n loadPlanUrl\\n loadPlanId\\n createdAt\\n updatedAt\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n stockNumImgs\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n }\\n containers {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n containers {\\n items {\\n id\\n vanplanId\\n scheduleId\\n containerMasterId\\n order\\n name\\n shoring\\n lashing\\n securingMemo\\n otherMemo\\n isDesiccant\\n desiccantMemo\\n qtyDesiccant\\n shipCompleted\\n caseQuantity\\n weight\\n m3\\n externalContainerId\\n createdAt\\n updatedAt\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n }\\n vanplans {\\n nextToken\\n }\\n }\\n containerMaster {\\n id\\n groupId\\n presetId\\n name\\n order\\n active\\n insideLangth\\n insideWidth\\n insideHeight\\n payload\\n cost\\n noEndWalls\\n noSideWalls\\n noRoof\\n doorWidth\\n doorHeight\\n doorAtLongside\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n }\\n\";\nconst listVanplans = \"\\n query ListVanplans(\\n $filter: ModelVanplanFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listVanplans(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n projectId\\n scheduleId\\n name\\n loadPlanUrl\\n loadPlanId\\n createdAt\\n updatedAt\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n schedules {\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n vanplans {\\n items {\\n id\\n projectId\\n scheduleId\\n name\\n loadPlanUrl\\n loadPlanId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n containers {\\n items {\\n id\\n vanplanId\\n scheduleId\\n containerMasterId\\n order\\n name\\n shoring\\n lashing\\n securingMemo\\n otherMemo\\n isDesiccant\\n desiccantMemo\\n qtyDesiccant\\n shipCompleted\\n caseQuantity\\n weight\\n m3\\n externalContainerId\\n createdAt\\n updatedAt\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n stockNumImgs\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n }\\n containerMaster {\\n id\\n groupId\\n presetId\\n name\\n order\\n active\\n insideLangth\\n insideWidth\\n insideHeight\\n payload\\n cost\\n noEndWalls\\n noSideWalls\\n noRoof\\n doorWidth\\n doorHeight\\n doorAtLongside\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst vanplansByProjectId = \"\\n query VanplansByProjectId(\\n $projectId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelVanplanFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n vanplansByProjectId(\\n projectId: $projectId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n projectId\\n scheduleId\\n name\\n loadPlanUrl\\n loadPlanId\\n createdAt\\n updatedAt\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n schedules {\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n vanplans {\\n items {\\n id\\n projectId\\n scheduleId\\n name\\n loadPlanUrl\\n loadPlanId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n containers {\\n items {\\n id\\n vanplanId\\n scheduleId\\n containerMasterId\\n order\\n name\\n shoring\\n lashing\\n securingMemo\\n otherMemo\\n isDesiccant\\n desiccantMemo\\n qtyDesiccant\\n shipCompleted\\n caseQuantity\\n weight\\n m3\\n externalContainerId\\n createdAt\\n updatedAt\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n stockNumImgs\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n }\\n containerMaster {\\n id\\n groupId\\n presetId\\n name\\n order\\n active\\n insideLangth\\n insideWidth\\n insideHeight\\n payload\\n cost\\n noEndWalls\\n noSideWalls\\n noRoof\\n doorWidth\\n doorHeight\\n doorAtLongside\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst vanplansByScheduleId = \"\\n query VanplansByScheduleId(\\n $scheduleId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelVanplanFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n vanplansByScheduleId(\\n scheduleId: $scheduleId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n projectId\\n scheduleId\\n name\\n loadPlanUrl\\n loadPlanId\\n createdAt\\n updatedAt\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n schedules {\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n vanplans {\\n items {\\n id\\n projectId\\n scheduleId\\n name\\n loadPlanUrl\\n loadPlanId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n containers {\\n items {\\n id\\n vanplanId\\n scheduleId\\n containerMasterId\\n order\\n name\\n shoring\\n lashing\\n securingMemo\\n otherMemo\\n isDesiccant\\n desiccantMemo\\n qtyDesiccant\\n shipCompleted\\n caseQuantity\\n weight\\n m3\\n externalContainerId\\n createdAt\\n updatedAt\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n stockNumImgs\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n }\\n containerMaster {\\n id\\n groupId\\n presetId\\n name\\n order\\n active\\n insideLangth\\n insideWidth\\n insideHeight\\n payload\\n cost\\n noEndWalls\\n noSideWalls\\n noRoof\\n doorWidth\\n doorHeight\\n doorAtLongside\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst getContainerMasterPreset = \"\\n query GetContainerMasterPreset($id: ID!) {\\n getContainerMasterPreset(id: $id) {\\n id\\n name\\n order\\n active\\n insideLangth\\n insideWidth\\n insideHeight\\n payload\\n cost\\n noEndWalls\\n noSideWalls\\n noRoof\\n doorWidth\\n doorHeight\\n doorAtLongside\\n createdAt\\n updatedAt\\n }\\n }\\n\";\nconst listContainerMasterPresets = \"\\n query ListContainerMasterPresets(\\n $filter: ModelContainerMasterPresetFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listContainerMasterPresets(\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n name\\n order\\n active\\n insideLangth\\n insideWidth\\n insideHeight\\n payload\\n cost\\n noEndWalls\\n noSideWalls\\n noRoof\\n doorWidth\\n doorHeight\\n doorAtLongside\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst getContainerMaster = \"\\n query GetContainerMaster($id: ID!) {\\n getContainerMaster(id: $id) {\\n id\\n groupId\\n presetId\\n name\\n order\\n active\\n insideLangth\\n insideWidth\\n insideHeight\\n payload\\n cost\\n noEndWalls\\n noSideWalls\\n noRoof\\n doorWidth\\n doorHeight\\n doorAtLongside\\n createdAt\\n updatedAt\\n }\\n }\\n\";\nconst listContainerMasters = \"\\n query ListContainerMasters(\\n $filter: ModelContainerMasterFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listContainerMasters(\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n groupId\\n presetId\\n name\\n order\\n active\\n insideLangth\\n insideWidth\\n insideHeight\\n payload\\n cost\\n noEndWalls\\n noSideWalls\\n noRoof\\n doorWidth\\n doorHeight\\n doorAtLongside\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst containerMastersByGroupId = \"\\n query ContainerMastersByGroupId(\\n $groupId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelContainerMasterFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n containerMastersByGroupId(\\n groupId: $groupId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n groupId\\n presetId\\n name\\n order\\n active\\n insideLangth\\n insideWidth\\n insideHeight\\n payload\\n cost\\n noEndWalls\\n noSideWalls\\n noRoof\\n doorWidth\\n doorHeight\\n doorAtLongside\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n\";\nconst getContainer = \"\\n query GetContainer($id: ID!) {\\n getContainer(id: $id) {\\n id\\n vanplanId\\n scheduleId\\n containerMasterId\\n order\\n name\\n shoring\\n lashing\\n securingMemo\\n otherMemo\\n isDesiccant\\n desiccantMemo\\n qtyDesiccant\\n shipCompleted\\n caseQuantity\\n weight\\n m3\\n externalContainerId\\n createdAt\\n updatedAt\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n cases {\\n order\\n name\\n phaseId\\n isPacked\\n netWeight\\n grossWeight\\n outerLength\\n outerWidth\\n outerHeight\\n m3\\n thumbnail\\n managementNumber\\n isBilled\\n invoiceLineId\\n version\\n note\\n summaryOrder\\n vanplanCreated\\n containerName\\n containerId\\n vanplanId\\n loadingOrder\\n }\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n elements {\\n type\\n name\\n slug\\n value\\n expr\\n description\\n overwriteValue\\n cutting\\n }\\n createdAt\\n updatedAt\\n packageType {\\n id\\n groupId\\n pricingId\\n name\\n description\\n publish\\n quantity\\n material\\n stamp\\n packageMethod\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n note\\n standard\\n woodCost\\n lvlCost\\n panelCost\\n normalWoodCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n active\\n order\\n pricingGroup\\n createdAt\\n updatedAt\\n }\\n pricing {\\n id\\n groupId\\n priceTypeId\\n packageTypeId\\n isDefault\\n name\\n packageTypeName\\n unitPrice\\n unit\\n autoCalculate\\n minimumAmount\\n taxType\\n sizeDependent\\n accountSpecific\\n active\\n description\\n pricingGroup\\n createdAt\\n updatedAt\\n }\\n areas {\\n nextToken\\n }\\n decorations {\\n nextToken\\n }\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n stockNumImgs\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n contacts {\\n nextToken\\n }\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n }\\n schedules {\\n items {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n stockNumImgs\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n projects {\\n nextToken\\n }\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n groups {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n tenants {\\n nextToken\\n }\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n groupAddress {\\n address\\n street\\n city\\n state\\n postalCode\\n country\\n }\\n quoteInfo {\\n greeting\\n paymentMethod\\n destination\\n dueDate\\n expiryDate\\n description\\n }\\n bank {\\n name\\n branchName\\n branchNumber\\n type\\n accountNumber\\n swiftCode\\n }\\n packPhases {\\n id\\n name\\n requiresPhoto\\n showInKanBan\\n numImgs\\n version\\n }\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n holidays {\\n nextToken\\n }\\n mainSpecies {\\n id\\n groupId\\n name\\n faceMPa\\n edgeMPa\\n description\\n active\\n createdAt\\n updatedAt\\n }\\n mainContainerMasters {\\n nextToken\\n }\\n users {\\n nextToken\\n }\\n tenant {\\n id\\n name\\n host\\n mobileHost\\n disableMultiTenant\\n enableVanplan\\n logoUrl\\n address\\n phone\\n syncSFObject\\n sfLoginUrl\\n sfUsername\\n sfPassword\\n sfSecretToken\\n maxManagerLicense\\n maxMobileLicense\\n createdAt\\n updatedAt\\n }\\n }\\n }\\n vanplans {\\n items {\\n id\\n projectId\\n scheduleId\\n name\\n loadPlanUrl\\n loadPlanId\\n createdAt\\n updatedAt\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n stockNumImgs\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n }\\n containers {\\n nextToken\\n }\\n }\\n nextToken\\n }\\n }\\n containerMaster {\\n id\\n groupId\\n presetId\\n name\\n order\\n active\\n insideLangth\\n insideWidth\\n insideHeight\\n payload\\n cost\\n noEndWalls\\n noSideWalls\\n noRoof\\n doorWidth\\n doorHeight\\n doorAtLongside\\n createdAt\\n updatedAt\\n }\\n }\\n }\\n\";\nconst listContainers = \"\\n query ListContainers(\\n $filter: ModelContainerFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n listContainers(filter: $filter, limit: $limit, nextToken: $nextToken) {\\n items {\\n id\\n vanplanId\\n scheduleId\\n containerMasterId\\n order\\n name\\n shoring\\n lashing\\n securingMemo\\n otherMemo\\n isDesiccant\\n desiccantMemo\\n qtyDesiccant\\n shipCompleted\\n caseQuantity\\n weight\\n m3\\n externalContainerId\\n createdAt\\n updatedAt\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n schedules {\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n vanplans {\\n items {\\n id\\n projectId\\n scheduleId\\n name\\n loadPlanUrl\\n loadPlanId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n containerMaster {\\n id\\n groupId\\n presetId\\n name\\n order\\n active\\n insideLangth\\n insideWidth\\n insideHeight\\n payload\\n cost\\n noEndWalls\\n noSideWalls\\n noRoof\\n doorWidth\\n doorHeight\\n doorAtLongside\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst containersByVanplanId = \"\\n query ContainersByVanplanId(\\n $vanplanId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelContainerFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n containersByVanplanId(\\n vanplanId: $vanplanId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n vanplanId\\n scheduleId\\n containerMasterId\\n order\\n name\\n shoring\\n lashing\\n securingMemo\\n otherMemo\\n isDesiccant\\n desiccantMemo\\n qtyDesiccant\\n shipCompleted\\n caseQuantity\\n weight\\n m3\\n externalContainerId\\n createdAt\\n updatedAt\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n schedules {\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n vanplans {\\n items {\\n id\\n projectId\\n scheduleId\\n name\\n loadPlanUrl\\n loadPlanId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n containerMaster {\\n id\\n groupId\\n presetId\\n name\\n order\\n active\\n insideLangth\\n insideWidth\\n insideHeight\\n payload\\n cost\\n noEndWalls\\n noSideWalls\\n noRoof\\n doorWidth\\n doorHeight\\n doorAtLongside\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst containersByContainerMasterId = \"\\n query ContainersByContainerMasterId(\\n $containerMasterId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelContainerFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n containersByContainerMasterId(\\n containerMasterId: $containerMasterId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n vanplanId\\n scheduleId\\n containerMasterId\\n order\\n name\\n shoring\\n lashing\\n securingMemo\\n otherMemo\\n isDesiccant\\n desiccantMemo\\n qtyDesiccant\\n shipCompleted\\n caseQuantity\\n weight\\n m3\\n externalContainerId\\n createdAt\\n updatedAt\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n schedules {\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n vanplans {\\n items {\\n id\\n projectId\\n scheduleId\\n name\\n loadPlanUrl\\n loadPlanId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n containerMaster {\\n id\\n groupId\\n presetId\\n name\\n order\\n active\\n insideLangth\\n insideWidth\\n insideHeight\\n payload\\n cost\\n noEndWalls\\n noSideWalls\\n noRoof\\n doorWidth\\n doorHeight\\n doorAtLongside\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n\";\nconst containersByScheduleId = \"\\n query ContainersByScheduleId(\\n $scheduleId: ID\\n $sortDirection: ModelSortDirection\\n $filter: ModelContainerFilterInput\\n $limit: Int\\n $nextToken: String\\n ) {\\n containersByScheduleId(\\n scheduleId: $scheduleId\\n sortDirection: $sortDirection\\n filter: $filter\\n limit: $limit\\n nextToken: $nextToken\\n ) {\\n items {\\n id\\n vanplanId\\n scheduleId\\n containerMasterId\\n order\\n name\\n shoring\\n lashing\\n securingMemo\\n otherMemo\\n isDesiccant\\n desiccantMemo\\n qtyDesiccant\\n shipCompleted\\n caseQuantity\\n weight\\n m3\\n externalContainerId\\n createdAt\\n updatedAt\\n schedule {\\n id\\n projectId\\n name\\n m3\\n case\\n shipType\\n stockingDate\\n packagingDate\\n shippingDate\\n cutDate\\n numImgs\\n shipSubFolders {\\n id\\n name\\n numImgs\\n }\\n stockNumImgs\\n stockSubFolders {\\n id\\n name\\n numImgs\\n }\\n isShipped\\n note\\n beforeStockingName\\n beforeStockingDate\\n beforePackagingName\\n beforePackagingDate\\n beforeShippingName\\n beforeShippingDate\\n beforeCutName\\n beforeCutDate\\n afterCutName\\n afterCutDate\\n createdAt\\n updatedAt\\n products {\\n items {\\n id\\n projectId\\n packageTypeId\\n scheduleId\\n userId\\n pricingId\\n overwriteUnitPrice\\n overwriteUnit\\n packageTypeName\\n quoteLineId\\n quoteLineName\\n unit\\n name\\n order\\n productNumber\\n quantity\\n material\\n panelM2\\n woodM3\\n tareWeight\\n grossWeight\\n m3\\n stamp\\n destination\\n packagingStart\\n packagingEnd\\n packageMethod\\n description\\n readyToPack\\n note\\n woodCost\\n normalWoodCost\\n lvlCost\\n panelCost\\n interiorCost\\n exteriorCost\\n m3Cost\\n totalCost\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n project {\\n id\\n groupId\\n quoteId\\n userId\\n managerId\\n managerName\\n quoterId\\n quoterName\\n operatorId\\n operatorName\\n accountId\\n accountName\\n contactId\\n contactName\\n externalShareUrl\\n externalSharePassword\\n externalShareEnabled\\n externalShareExpirationDate\\n name\\n status\\n inquiryDate\\n quotationDate\\n destinationName\\n destination {\\n lat\\n lng\\n }\\n confidence\\n description\\n alert\\n cancelled\\n cancelReason\\n caseMarkNumImgs\\n stockNumImgs\\n reference\\n photoPhases {\\n id\\n name\\n requiresPhoto\\n numImgs\\n }\\n externalSharedImageKeys\\n type\\n categoryId\\n version\\n archived\\n createdAt\\n updatedAt\\n note\\n account {\\n id\\n tenantId\\n accountCode\\n businessRegistrationNumber\\n name\\n abbreviation\\n site\\n billingAddress\\n billingStreet\\n billingCity\\n billingState\\n billingPostalCode\\n billingCountry\\n billingType\\n fax\\n phone\\n customeCode\\n cutoffDateText\\n cutoffDateNumber\\n paymentMonthText\\n paymentMonthNumber\\n paymentDateText\\n paymentDateNumber\\n invoiceUnit\\n invoiceMethod\\n active\\n note\\n accountId\\n createdAt\\n updatedAt\\n }\\n contact {\\n id\\n accountId\\n tenantId\\n name\\n firstName\\n lastName\\n suffix\\n active\\n email\\n phone\\n mobilePhone\\n department\\n title\\n retired\\n customeCode\\n description\\n contactId\\n createdAt\\n updatedAt\\n }\\n schedules {\\n nextToken\\n }\\n category {\\n id\\n groupId\\n name\\n beforeStockingName\\n beforePackagingName\\n beforeShippingName\\n beforeCutName\\n afterCutName\\n active\\n createdAt\\n updatedAt\\n }\\n user {\\n id\\n externalId\\n name\\n firstName\\n lastName\\n email\\n showTutorial\\n invited\\n verified\\n fontSize\\n language\\n receiveEmailNotification\\n theme\\n useMfa\\n customId\\n tenantId\\n isAdmin\\n createdAt\\n updatedAt\\n }\\n group {\\n id\\n name\\n phone\\n fax\\n email\\n logoUrl\\n taxRate\\n maxInventoryM3\\n prefix\\n fiscalYearStartMonth\\n salesCutoffDay\\n revenueRecognitionCriterion\\n mainSpeciesId\\n mainSpeciesName\\n mainSpeciesFaceMPa\\n mainSpeciesEdgeMPa\\n notStackable\\n maxStacking\\n bottomOnly\\n orientation\\n labelField\\n tenantId\\n version\\n createdAt\\n updatedAt\\n }\\n }\\n vanplans {\\n items {\\n id\\n projectId\\n scheduleId\\n name\\n loadPlanUrl\\n loadPlanId\\n createdAt\\n updatedAt\\n }\\n nextToken\\n }\\n }\\n containerMaster {\\n id\\n groupId\\n presetId\\n name\\n order\\n active\\n insideLangth\\n insideWidth\\n insideHeight\\n payload\\n cost\\n noEndWalls\\n noSideWalls\\n noRoof\\n doorWidth\\n doorHeight\\n doorAtLongside\\n createdAt\\n updatedAt\\n }\\n }\\n nextToken\\n }\\n }\\n\";\n\n\n/***/ }),\n\n/***/ 5295:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": function() { return /* binding */ useData; }\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67294);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(96486);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var aws_amplify__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10552);\n/* harmony import */ var graphql_queries__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(18490);\n/* harmony import */ var graphql_mutations__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(23765);\n/* harmony import */ var contexts_alerts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(75313);\n\n\n\n\n\n\nconst initialState = {\n data: undefined,\n loading: false,\n updating: false,\n error: false,\n nextToken: null,\n refetch: ()=>null,\n loadNext: ()=>null,\n update: ()=>null,\n remove: ()=>null,\n set: ()=>null\n};\nconst reducer = (state, action)=>{\n switch(action.type){\n case \"LOAD_DATA\":\n return {\n ...state,\n loading: true,\n error: false\n };\n case \"DATA_LOADED\":\n return {\n ...state,\n loading: false,\n error: false,\n data: action.payload.data\n };\n case \"SET_DATA\":\n return {\n ...state,\n data: action.payload.data\n };\n case \"SET_ERROR\":\n return {\n ...state,\n loading: false,\n error: action.payload\n };\n case \"UPDATE_DATA\":\n return {\n ...state,\n updating: true,\n error: false\n };\n case \"DATA_UPDATED\":\n return {\n ...state,\n updating: false,\n error: false,\n data: action.payload.data\n };\n case \"DELETE_DATA\":\n return {\n ...state,\n updating: true,\n error: false\n };\n case \"DATA_DELETED\":\n return {\n ...state,\n updating: false,\n error: false,\n data: {}\n };\n default:\n return initialState;\n }\n};\nfunction cap(str) {\n return \"\".concat(str[0].toUpperCase()).concat(str.substring(1));\n}\nconst loadOptions = {\n progress: true\n};\n//TODO: Learn proper way to use useReducer\nfunction useData(param) {\n let { object , variables } = param;\n const [result, dispatch] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useReducer)(reducer, initialState);\n const { addAlert } = (0,contexts_alerts__WEBPACK_IMPORTED_MODULE_2__/* .useAlerts */ .Z)();\n // triggers data fetch when initialized\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{\n getData(variables);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const getData = async function(gqlVariables) {\n let options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : loadOptions;\n try {\n const query = \"get\".concat(cap(object));\n if (!!options.progress) {\n dispatch({\n type: \"LOAD_DATA\"\n });\n }\n const res = await aws_amplify__WEBPACK_IMPORTED_MODULE_3__/* .API.graphql */ .b.graphql({\n query: lodash__WEBPACK_IMPORTED_MODULE_1___default().get(graphql_queries__WEBPACK_IMPORTED_MODULE_4__, query),\n variables: gqlVariables,\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n });\n dispatch({\n type: \"DATA_LOADED\",\n payload: {\n data: res.data[query]\n }\n });\n } catch (err) {\n if (typeof err === \"string\") {\n addAlert({\n message: err,\n severity: \"error\"\n });\n dispatch({\n type: \"SET_ERROR\",\n payload: err\n });\n } else if (err instanceof Error) {\n addAlert({\n message: err.message,\n severity: \"error\"\n });\n dispatch({\n type: \"SET_ERROR\",\n payload: err.message\n });\n }\n if (err.errors) {\n addAlert({\n message: err.errors[0].message,\n severity: \"error\"\n });\n dispatch({\n type: \"SET_ERROR\",\n payload: err.errors\n });\n }\n throw err;\n }\n };\n const update = async (input)=>{\n try {\n const mutation = \"update\".concat(cap(object));\n dispatch({\n type: \"UPDATE_DATA\"\n });\n const res = await aws_amplify__WEBPACK_IMPORTED_MODULE_3__/* .API.graphql */ .b.graphql({\n query: lodash__WEBPACK_IMPORTED_MODULE_1___default().get(graphql_mutations__WEBPACK_IMPORTED_MODULE_5__, mutation),\n variables: {\n input\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n });\n dispatch({\n type: \"DATA_UPDATED\",\n payload: {\n data: res.data[mutation]\n }\n });\n addAlert({\n message: \"更新されました\",\n severity: \"success\"\n });\n } catch (err) {\n if (typeof err === \"string\") {\n addAlert({\n message: err,\n severity: \"error\"\n });\n dispatch({\n type: \"SET_ERROR\",\n payload: err\n });\n } else if (err instanceof Error) {\n addAlert({\n message: err.message,\n severity: \"error\"\n });\n dispatch({\n type: \"SET_ERROR\",\n payload: err.message\n });\n }\n if (err.errors) {\n addAlert({\n message: err.errors[0].message,\n severity: \"error\"\n });\n dispatch({\n type: \"SET_ERROR\",\n payload: err.errors[0].message\n });\n }\n throw err;\n }\n };\n const remove = async (input)=>{\n try {\n const mutation = \"delete\".concat(cap(object));\n dispatch({\n type: \"DELETE_DATA\"\n });\n const res = await aws_amplify__WEBPACK_IMPORTED_MODULE_3__/* .API.graphql */ .b.graphql({\n query: lodash__WEBPACK_IMPORTED_MODULE_1___default().get(graphql_mutations__WEBPACK_IMPORTED_MODULE_5__, mutation),\n variables: {\n input\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n });\n dispatch({\n type: \"DATA_DELETED\",\n payload: {\n data: res.data[mutation]\n }\n });\n addAlert({\n message: \"削除されました\",\n severity: \"success\"\n });\n } catch (err) {\n if (typeof err === \"string\") {\n addAlert({\n message: err,\n severity: \"error\"\n });\n dispatch({\n type: \"SET_ERROR\",\n payload: err\n });\n } else if (err instanceof Error) {\n addAlert({\n message: err.message,\n severity: \"error\"\n });\n dispatch({\n type: \"SET_ERROR\",\n payload: err.message\n });\n }\n if (err.errors) {\n addAlert({\n message: err.errors[0].message,\n severity: \"error\"\n });\n dispatch({\n type: \"SET_ERROR\",\n payload: err.errors\n });\n }\n throw err;\n }\n };\n const set = (data)=>{\n dispatch({\n type: \"SET_DATA\",\n payload: {\n data\n }\n });\n };\n // refetch the same dataset\n // can refetch with new variables\n const refetch = async function() {\n let customVariables = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : undefined, options = arguments.length > 1 ? arguments[1] : void 0;\n await getData(customVariables || variables, options);\n };\n // useMemo to prevent force re-render components that are reading these values\n const values = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>({\n ...result,\n refetch,\n update,\n remove,\n set\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n result,\n refetch,\n update\n ]);\n return values;\n}\n\n\n/***/ }),\n\n/***/ 32380:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Z\": function() { return /* binding */ useDatalist; }\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67294);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(96486);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var aws_amplify__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10552);\n/* harmony import */ var graphql_queries__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(18490);\n/* harmony import */ var graphql_mutations__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(23765);\n/* harmony import */ var contexts_alerts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(75313);\n\n\n\n\n\n\nconst initialState = {\n data: [],\n loading: false,\n creating: false,\n updating: false,\n removing: false,\n error: false,\n nextToken: null,\n refetch: ()=>null,\n loadNext: ()=>null,\n appendNext: ()=>null,\n create: ()=>null,\n update: ()=>null,\n remove: ()=>null,\n set: ()=>null\n};\nconst reducer = (state, action)=>{\n const newData = state.data;\n switch(action.type){\n case \"LOAD_DATA\":\n return {\n ...state,\n loading: true,\n error: false\n };\n case \"DATA_LOADED\":\n let result = action.payload.data;\n if (action.payload.sort) {\n if (typeof action.payload.sort === \"string\") {\n result = result.sort((a, b)=>a[action.payload.sort] - b[action.payload.sort]);\n } else {\n // custom sort\n result = result.sort(action.payload.sort);\n }\n }\n return {\n ...state,\n loading: false,\n error: false,\n data: result,\n nextToken: action.payload.nextToken\n };\n case \"DATA_LOADED_AND_APPEND\":\n const appendData = action.payload.data;\n let allData = [\n ...state.data,\n ...appendData\n ];\n if (action.payload.sort) {\n if (typeof action.payload.sort === \"string\") {\n allData = allData.sort((a, b)=>a[action.payload.sort] - b[action.payload.sort]);\n } else {\n // custom sort\n allData = allData.sort(action.payload.sort);\n }\n }\n return {\n ...state,\n loading: false,\n error: false,\n data: allData,\n nextToken: action.payload.nextToken\n };\n case \"SET_ERROR\":\n return {\n ...state,\n loading: false,\n error: action.payload.error\n };\n case \"CREATE_DATA\":\n return {\n ...state,\n creating: true,\n error: false\n };\n case \"DATA_CREATED\":\n // state.data[].idがaction.payload.data.idと同じ場合は上書きする\n let appendedData = [\n ...state.data,\n action.payload.data\n ];\n if (state.data.some((d)=>d.id === action.payload.data.id)) {\n appendedData = state.data.map((d)=>d.id === action.payload.data.id ? action.payload.data : d);\n }\n return {\n ...state,\n creating: false,\n error: false,\n data: appendedData\n };\n case \"UPDATE_DATA\":\n const targetIdx = state.data.findIndex((d)=>d.id === action.payload.data.id);\n newData[targetIdx] = {\n ...newData[targetIdx],\n ...action.payload.data\n };\n return {\n ...state,\n updating: true,\n error: false,\n data: newData\n };\n case \"DATA_UPDATED\":\n newData[state.data.findIndex((d)=>d.id === action.payload.data.id)] = action.payload.data;\n return {\n ...state,\n updating: false,\n error: false,\n data: newData\n };\n case \"SET_DATA\":\n return {\n ...state,\n data: action.payload.data\n };\n case \"DATA_SET\":\n return {\n ...state,\n updating: false,\n error: false,\n data: newData\n };\n case \"DELETE_DATA\":\n return {\n ...state,\n deleting: true,\n error: false\n };\n case \"DATA_DELETED\":\n return {\n ...state,\n deleting: false,\n error: false,\n data: state.data.filter((d)=>d.id !== action.payload.data.id)\n };\n default:\n return initialState;\n }\n};\nconst loadOptions = {\n progress: true\n};\nfunction useDatalist(param) {\n let { query , variables , sort } = param;\n const [result, dispatch] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useReducer)(reducer, initialState);\n const [customVariables, setCustomVariables] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(undefined);\n const { addAlert } = (0,contexts_alerts__WEBPACK_IMPORTED_MODULE_2__/* .useAlerts */ .Z)();\n // triggers data fetch when initialized\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{\n loadData(variables, loadOptions);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const loadData = async function(gqlVariables) {\n let options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : loadOptions;\n try {\n if (!!options.progress) {\n dispatch({\n type: \"LOAD_DATA\"\n });\n }\n const res = await aws_amplify__WEBPACK_IMPORTED_MODULE_3__/* .API.graphql */ .b.graphql({\n query: lodash__WEBPACK_IMPORTED_MODULE_1___default().get(graphql_queries__WEBPACK_IMPORTED_MODULE_4__, query),\n variables: gqlVariables,\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n });\n if (res.errors) return dispatch({\n type: \"SET_ERROR\",\n payload: res.errors\n });\n const { items , nextToken } = res.data[query];\n dispatch({\n type: \"DATA_LOADED\",\n payload: {\n data: items,\n nextToken,\n sort\n }\n });\n } catch (err) {\n if (typeof err === \"string\") {\n dispatch({\n type: \"SET_ERROR\",\n payload: err\n });\n } else if (err instanceof Error) {\n dispatch({\n type: \"SET_ERROR\",\n payload: err.message\n });\n }\n throw err;\n }\n };\n const loadNext = async ()=>{\n try {\n const res = await aws_amplify__WEBPACK_IMPORTED_MODULE_3__/* .API.graphql */ .b.graphql({\n query: lodash__WEBPACK_IMPORTED_MODULE_1___default().get(graphql_queries__WEBPACK_IMPORTED_MODULE_4__, query),\n variables: {\n ...variables,\n nextToken: result.nextToken\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n });\n if (res.errors) return dispatch({\n type: \"SET_ERROR\",\n payload: res.errors\n });\n const { items , nextToken } = res.data[query];\n dispatch({\n type: \"DATA_LOADED\",\n payload: {\n data: items,\n nextToken,\n sort\n }\n });\n } catch (err) {\n if (typeof err === \"string\") {\n dispatch({\n type: \"SET_ERROR\",\n payload: err\n });\n } else if (err instanceof Error) {\n dispatch({\n type: \"SET_ERROR\",\n payload: err.message\n });\n } else if (err.errors !== undefined) {\n addAlert({\n message: err.errors[0].message,\n severity: \"error\"\n });\n dispatch({\n type: \"SET_ERROR\",\n payload: err.errors[0].message\n });\n }\n throw err;\n }\n };\n const appendNext = async ()=>{\n if (result.nextToken === null) return dispatch({\n type: \"SET_ERROR\",\n payload: \"no more data\"\n });\n try {\n const res = await aws_amplify__WEBPACK_IMPORTED_MODULE_3__/* .API.graphql */ .b.graphql({\n query: lodash__WEBPACK_IMPORTED_MODULE_1___default().get(graphql_queries__WEBPACK_IMPORTED_MODULE_4__, query),\n variables: {\n ...variables,\n ...customVariables,\n nextToken: result.nextToken\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n });\n if (res.errors) return dispatch({\n type: \"SET_ERROR\",\n payload: res.errors\n });\n const { items , nextToken } = res.data[query];\n dispatch({\n type: \"DATA_LOADED_AND_APPEND\",\n payload: {\n data: items,\n nextToken,\n sort\n }\n });\n } catch (err) {\n if (typeof err === \"string\") {\n dispatch({\n type: \"SET_ERROR\",\n payload: err\n });\n } else if (err instanceof Error) {\n dispatch({\n type: \"SET_ERROR\",\n payload: err.message\n });\n } else if (err.errors !== undefined) {\n addAlert({\n message: err.errors[0].message,\n severity: \"error\"\n });\n dispatch({\n type: \"SET_ERROR\",\n payload: err.errors[0].message\n });\n }\n throw err;\n }\n };\n const create = async (mutation, input)=>{\n try {\n dispatch({\n type: \"CREATE_DATA\"\n });\n const res = await aws_amplify__WEBPACK_IMPORTED_MODULE_3__/* .API.graphql */ .b.graphql({\n query: lodash__WEBPACK_IMPORTED_MODULE_1___default().get(graphql_mutations__WEBPACK_IMPORTED_MODULE_5__, mutation),\n variables: {\n input\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n });\n if (!res.data[mutation]) throw Error(\"Data not created\");\n dispatch({\n type: \"DATA_CREATED\",\n payload: {\n data: res.data[mutation]\n }\n });\n addAlert({\n message: \"作成されました\",\n severity: \"success\"\n });\n return res.data[mutation];\n } catch (err) {\n if (typeof err === \"string\") {\n addAlert({\n message: err,\n severity: \"error\"\n });\n dispatch({\n type: \"SET_ERROR\",\n payload: err\n });\n } else if (err instanceof Error) {\n addAlert({\n message: err.message,\n severity: \"error\"\n });\n dispatch({\n type: \"SET_ERROR\",\n payload: err.message\n });\n } else if (err.errors !== undefined) {\n addAlert({\n message: err.errors[0].message,\n severity: \"error\"\n });\n dispatch({\n type: \"SET_ERROR\",\n payload: err.errors[0].message\n });\n }\n throw err;\n }\n };\n const update = async (mutation, input, options)=>{\n try {\n dispatch({\n type: \"UPDATE_DATA\",\n payload: {\n data: input\n }\n });\n const res = await aws_amplify__WEBPACK_IMPORTED_MODULE_3__/* .API.graphql */ .b.graphql({\n query: lodash__WEBPACK_IMPORTED_MODULE_1___default().get(graphql_mutations__WEBPACK_IMPORTED_MODULE_5__, mutation),\n variables: {\n input\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n });\n if (options === null || options === void 0 ? void 0 : options.dbOnly) {\n return res.data[mutation];\n }\n dispatch({\n type: \"DATA_UPDATED\",\n payload: {\n data: res.data[mutation]\n }\n });\n addAlert({\n message: \"データが更新されました\",\n severity: \"success\"\n });\n return res.data[mutation];\n } catch (err) {\n if (typeof err === \"string\") {\n addAlert({\n message: err,\n severity: \"error\"\n });\n dispatch({\n type: \"SET_ERROR\",\n payload: err\n });\n } else if (err instanceof Error) {\n addAlert({\n message: err.message,\n severity: \"error\"\n });\n dispatch({\n type: \"SET_ERROR\",\n payload: err.message\n });\n } else if (err.errors !== undefined) {\n addAlert({\n message: err.errors[0].message,\n severity: \"error\"\n });\n dispatch({\n type: \"SET_ERROR\",\n payload: err.errors[0].message\n });\n }\n throw err;\n }\n };\n const set = async (input)=>{\n try {\n dispatch({\n type: \"SET_DATA\",\n payload: {\n data: input\n }\n });\n dispatch({\n type: \"DATA_SET\"\n });\n return;\n } catch (err) {\n if (typeof err === \"string\") {\n addAlert({\n message: err,\n severity: \"error\"\n });\n dispatch({\n type: \"SET_ERROR\",\n payload: err\n });\n } else if (err instanceof Error) {\n addAlert({\n message: err.message,\n severity: \"error\"\n });\n dispatch({\n type: \"SET_ERROR\",\n payload: err.message\n });\n } else if (err.errors !== undefined) {\n addAlert({\n message: err.errors[0].message,\n severity: \"error\"\n });\n dispatch({\n type: \"SET_ERROR\",\n payload: err.errors[0].message\n });\n }\n throw err;\n }\n };\n const remove = async (mutation, input)=>{\n try {\n dispatch({\n type: \"DELETE_DATA\"\n });\n const res = await aws_amplify__WEBPACK_IMPORTED_MODULE_3__/* .API.graphql */ .b.graphql({\n query: lodash__WEBPACK_IMPORTED_MODULE_1___default().get(graphql_mutations__WEBPACK_IMPORTED_MODULE_5__, mutation),\n variables: {\n input\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n });\n dispatch({\n type: \"DATA_DELETED\",\n payload: {\n data: res.data[mutation]\n }\n });\n addAlert({\n message: \"データが削除されました\",\n severity: \"success\"\n });\n return res.data[mutation];\n } catch (err) {\n if (typeof err === \"string\") {\n addAlert({\n message: err,\n severity: \"error\"\n });\n dispatch({\n type: \"SET_ERROR\",\n payload: err\n });\n } else if (err instanceof Error) {\n addAlert({\n message: err.message,\n severity: \"error\"\n });\n dispatch({\n type: \"SET_ERROR\",\n payload: err.message\n });\n } else if (err.errors !== undefined) {\n addAlert({\n message: err.errors[0].message,\n severity: \"error\"\n });\n dispatch({\n type: \"SET_ERROR\",\n payload: err.errors[0].message\n });\n }\n throw err;\n }\n };\n // refetch the same dataset\n // can refetch with new variables\n const refetch = async function() {\n let customVariables = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : undefined, options = arguments.length > 1 ? arguments[1] : void 0;\n setCustomVariables(customVariables);\n await loadData(customVariables || variables, options);\n };\n return {\n ...result,\n refetch,\n loadNext,\n appendNext,\n update,\n create,\n remove,\n set\n };\n}\n\n\n/***/ }),\n\n/***/ 91294:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"lq\": function() { return /* binding */ AdminLayout; },\n \"Os\": function() { return /* binding */ HomeLayout; },\n \"AM\": function() { return /* binding */ ProjectLayout; }\n});\n\n// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js\nvar jsx_runtime = __webpack_require__(85893);\n// EXTERNAL MODULE: ./node_modules/react/index.js\nvar react = __webpack_require__(67294);\n// EXTERNAL MODULE: ./node_modules/@mui/material/styles/createTheme.js + 12 modules\nvar createTheme = __webpack_require__(549);\n// EXTERNAL MODULE: ./node_modules/@mui/material/styles/ThemeProvider.js + 5 modules\nvar ThemeProvider = __webpack_require__(22430);\n// EXTERNAL MODULE: ./node_modules/@mui/material/CssBaseline/CssBaseline.js\nvar CssBaseline = __webpack_require__(66720);\n// EXTERNAL MODULE: ./node_modules/@mui/material/Box/Box.js + 2 modules\nvar Box = __webpack_require__(5616);\n// EXTERNAL MODULE: ./node_modules/@mui/material/Toolbar/Toolbar.js + 1 modules\nvar Toolbar = __webpack_require__(10155);\n// EXTERNAL MODULE: ./node_modules/@mui/x-data-grid/locales/jaJP.js + 1 modules\nvar jaJP = __webpack_require__(53995);\n// EXTERNAL MODULE: ./node_modules/@mui/x-date-pickers/locales/jaJP.js\nvar locales_jaJP = __webpack_require__(33660);\n// EXTERNAL MODULE: ./node_modules/@mui/material/locale/index.js\nvar locale = __webpack_require__(58973);\n// EXTERNAL MODULE: ./node_modules/next/router.js\nvar next_router = __webpack_require__(11163);\n// EXTERNAL MODULE: ./node_modules/@mui/material/IconButton/IconButton.js + 1 modules\nvar IconButton = __webpack_require__(93946);\n// EXTERNAL MODULE: ./node_modules/@mui/icons-material/Settings.js\nvar Settings = __webpack_require__(94229);\n// EXTERNAL MODULE: ./node_modules/@mui/material/Tooltip/Tooltip.js\nvar Tooltip = __webpack_require__(21023);\n// EXTERNAL MODULE: ./src/contexts/auth.tsx + 2 modules\nvar auth = __webpack_require__(17297);\n// EXTERNAL MODULE: ./node_modules/next/link.js\nvar next_link = __webpack_require__(41664);\nvar link_default = /*#__PURE__*/__webpack_require__.n(next_link);\n// EXTERNAL MODULE: ./node_modules/@mui/material/AppBar/AppBar.js + 1 modules\nvar AppBar = __webpack_require__(42293);\n// EXTERNAL MODULE: ./node_modules/@mui/material/Typography/Typography.js + 1 modules\nvar Typography = __webpack_require__(15861);\n// EXTERNAL MODULE: ./node_modules/@mui/icons-material/QuestionMark.js\nvar QuestionMark = __webpack_require__(63094);\n// EXTERNAL MODULE: ./node_modules/@mui/icons-material/QrCodeScanner.js\nvar QrCodeScanner = __webpack_require__(78394);\n// EXTERNAL MODULE: ./node_modules/@mui/icons-material/Menu.js\nvar Menu = __webpack_require__(326);\n// EXTERNAL MODULE: ./node_modules/@mui/icons-material/AccountCircle.js\nvar AccountCircle = __webpack_require__(28201);\n// EXTERNAL MODULE: ./src/utils/constant.ts\nvar constant = __webpack_require__(8269);\n// EXTERNAL MODULE: ./node_modules/@mui/material/Dialog/Dialog.js + 1 modules\nvar Dialog = __webpack_require__(50657);\n// EXTERNAL MODULE: ./node_modules/@mui/icons-material/Close.js\nvar Close = __webpack_require__(50594);\n// EXTERNAL MODULE: ./node_modules/@mui/material/Slide/Slide.js\nvar Slide = __webpack_require__(54776);\n// EXTERNAL MODULE: ./node_modules/qr-scanner/qr-scanner.min.js\nvar qr_scanner_min = __webpack_require__(3006);\n// EXTERNAL MODULE: ./src/contexts/alerts.tsx + 6 modules\nvar alerts = __webpack_require__(75313);\n;// CONCATENATED MODULE: ./src/components/QrScanner.tsx\n/* eslint-disable react-hooks/exhaustive-deps */ \n\n\n\n\n\n\n\n\n\n\n\nconst Transition = /*#__PURE__*/ (0,react.forwardRef)(function Transition(props, ref) {\n return /*#__PURE__*/ (0,jsx_runtime.jsx)(Slide/* default */.Z, {\n direction: \"left\",\n ref: ref,\n ...props\n });\n});\nfunction QrReader(param) {\n let { open , setOpen } = param;\n const [scanner, setScanner] = (0,react.useState)(null);\n const { addAlert } = (0,alerts/* useAlerts */.Z)();\n const router = (0,next_router.useRouter)();\n const handleClose = ()=>{\n setOpen(false);\n scanner === null || scanner === void 0 ? void 0 : scanner.stop();\n };\n const startScan = (0,react.useCallback)((videoRef)=>{\n if (!videoRef) return;\n const qrScanner = new qr_scanner_min/* default */.Z(videoRef, (result)=>{\n try {\n const data = JSON.parse(result.data);\n qrScanner.stop();\n setOpen(false);\n if (data.case && data.product) {\n return router.push(\"/projects/\".concat(data.project, \"?page=products&productId=\").concat(data.product, \"&case=\").concat(data.case));\n } else if (data.project && data.product) {\n router.push(\"/projects/\".concat(data.project, \"?product=\").concat(data.product));\n } else if (data.project) {\n router.push(\"/projects/\".concat(data.project));\n } else {\n addAlert({\n message: \"無効なQRコードです\",\n severity: \"warning\"\n });\n }\n } catch (e) {\n addAlert({\n message: \"無効なQRコードです\",\n severity: \"warning\"\n });\n }\n }, {\n highlightScanRegion: true,\n highlightCodeOutline: true\n });\n setScanner(qrScanner);\n qrScanner.start();\n }, []);\n return /*#__PURE__*/ (0,jsx_runtime.jsxs)(Dialog/* default */.Z, {\n fullScreen: true,\n open: open,\n onClose: handleClose,\n TransitionComponent: Transition,\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(AppBar/* default */.Z, {\n sx: {\n position: \"relative\"\n },\n children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(Toolbar/* default */.Z, {\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(Typography/* default */.Z, {\n sx: {\n ml: 2,\n flex: 1\n },\n variant: \"h6\",\n component: \"div\",\n children: \"QRコード\"\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(IconButton/* default */.Z, {\n color: \"inherit\",\n onClick: handleClose,\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Close/* default */.Z, {})\n })\n ]\n })\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(\"div\", {\n className: \"fixed inset-0 bg-black overflow-hidden object-cover\",\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(\"video\", {\n className: \"h-screen mx-auto\",\n ref: startScan\n })\n })\n ]\n });\n}\n\n;// CONCATENATED MODULE: ./src/layouts/AppBar/AppBarIconButton.tsx\n\n\n\n\n\n\n\n\n\n\n/**\n * AppBarの共通アイコン\n * @param children アイコンボタンに追加するReactNode\n * @param toggleDrawer 左ドロワーの状態\n * @param projectName project配下での案件名\n * @param title スケジュール・設定画面のタイトル(画面名・グループ名・テナント名)\n * @returns ボタンのElement\n */ function AppBarIconButton(param) {\n let { children , toggleDrawer , projectName , title } = param;\n const [showQrScan, setShowQr] = (0,react.useState)(false);\n return /*#__PURE__*/ (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(QrReader, {\n open: showQrScan,\n setOpen: setShowQr\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(AppBar/* default */.Z, {\n children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(Toolbar/* default */.Z, {\n variant: projectName ? \"dense\" : \"regular\",\n children: [\n toggleDrawer && /*#__PURE__*/ (0,jsx_runtime.jsxs)(IconButton/* default */.Z, {\n edge: \"start\",\n color: \"inherit\",\n \"aria-label\": \"open drawer\",\n onClick: toggleDrawer,\n sx: {\n ...title && {\n marginRight: \"1rem\"\n },\n ...projectName && {\n mr: \"2\",\n display: {\n sm: \"none\"\n }\n }\n },\n children: [\n title && /*#__PURE__*/ (0,jsx_runtime.jsx)(AccountCircle/* default */.Z, {}),\n projectName && /*#__PURE__*/ (0,jsx_runtime.jsx)(Menu/* default */.Z, {})\n ]\n }),\n !projectName && /*#__PURE__*/ (0,jsx_runtime.jsx)(Typography/* default */.Z, {\n component: \"h1\",\n variant: \"h6\",\n color: \"inherit\",\n noWrap: true,\n sx: {\n flexGrow: 1\n },\n children: title\n }),\n projectName && /*#__PURE__*/ (0,jsx_runtime.jsx)(Box/* default */.Z, {\n sx: {\n flexGrow: 1\n },\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Typography/* default */.Z, {\n component: \"h1\",\n variant: \"h6\",\n color: \"inherit\",\n noWrap: true,\n sx: {\n flexGrow: 1,\n display: {\n sm: \"none\"\n }\n },\n children: projectName\n })\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(Tooltip/* default */.Z, {\n title: \"PAXヘルプデスク\",\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)((link_default()), {\n href: constant/* SUPPORT_SITE_URL */.o,\n target: \"_blank\",\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(IconButton/* default */.Z, {\n \"aria-label\": \"pax support site\",\n color: \"inherit\",\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(QuestionMark/* default */.Z, {})\n })\n })\n }),\n children,\n /*#__PURE__*/ (0,jsx_runtime.jsx)(Tooltip/* default */.Z, {\n title: \"QRコードスキャン\",\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(IconButton/* default */.Z, {\n \"aria-label\": \"scan QR code\",\n color: \"inherit\",\n onClick: ()=>setShowQr(true),\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(QrCodeScanner/* default */.Z, {})\n })\n })\n ]\n })\n })\n ]\n });\n}\n\n;// CONCATENATED MODULE: ./src/layouts/AppBar/HomeAppBar/index.tsx\n\n\n\n\n\n\n\nfunction HomeAppBar(param) {\n let { toggleDrawer } = param;\n const { currentGroup , user } = (0,auth/* useAuth */.a)();\n const router = (0,next_router.useRouter)();\n const { permissions } = (0,auth/* useAuth */.a)();\n if (!currentGroup) return /*#__PURE__*/ (0,jsx_runtime.jsx)(\"div\", {\n className: \"h-screen flex justify-center items-center\",\n children: \"グループに所属されていません\"\n });\n return /*#__PURE__*/ (0,jsx_runtime.jsx)(jsx_runtime.Fragment, {\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(AppBarIconButton, {\n toggleDrawer: toggleDrawer,\n title: currentGroup === null || currentGroup === void 0 ? void 0 : currentGroup.name,\n children: permissions.GroupInfo.canRead && /*#__PURE__*/ (0,jsx_runtime.jsx)(Tooltip/* default */.Z, {\n title: \"事業所設定\",\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(IconButton/* default */.Z, {\n \"aria-label\": \"Group Setting\",\n color: \"inherit\",\n onClick: ()=>router.push(\"/group/settings\"),\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Settings/* default */.Z, {})\n })\n })\n })\n });\n}\n\n// EXTERNAL MODULE: ./node_modules/@mui/icons-material/AccountTree.js\nvar AccountTree = __webpack_require__(30061);\n;// CONCATENATED MODULE: ./src/layouts/AppBar/AdminAppBar/index.tsx\n\n\n\n\n\n\n\nfunction AdminAppBar(param) {\n let { title , toggleDrawer } = param;\n const { currentGroup } = (0,auth/* useAuth */.a)();\n const router = (0,next_router.useRouter)();\n if (!currentGroup) return /*#__PURE__*/ (0,jsx_runtime.jsx)(\"div\", {\n className: \"h-screen flex justify-center items-center\",\n children: \"グループに所属されていません\"\n });\n return /*#__PURE__*/ (0,jsx_runtime.jsx)(jsx_runtime.Fragment, {\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(AppBarIconButton, {\n toggleDrawer: toggleDrawer,\n title: title,\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Tooltip/* default */.Z, {\n title: \"案件管理\",\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(IconButton/* default */.Z, {\n \"aria-label\": \"go to projects\",\n color: \"inherit\",\n onClick: ()=>router.push(\"/\"),\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(AccountTree/* default */.Z, {})\n })\n })\n })\n });\n}\n\n// EXTERNAL MODULE: ./node_modules/@mui/icons-material/Home.js\nvar Home = __webpack_require__(76638);\n// EXTERNAL MODULE: ./src/contexts/project.tsx\nvar contexts_project = __webpack_require__(46100);\n;// CONCATENATED MODULE: ./src/layouts/AppBar/ProjectAppBar/index.tsx\n\n\n\n\n\n\n\nfunction ProjectAppBar(param) {\n let { toggleDrawer } = param;\n const { project } = (0,contexts_project/* useProject */.P)();\n return /*#__PURE__*/ (0,jsx_runtime.jsx)(jsx_runtime.Fragment, {\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(AppBarIconButton, {\n toggleDrawer: toggleDrawer,\n projectName: project === null || project === void 0 ? void 0 : project.name,\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Tooltip/* default */.Z, {\n title: \"ホーム\",\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)((link_default()), {\n href: \"/\",\n prefetch: false,\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(IconButton/* default */.Z, {\n color: \"inherit\",\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Home/* default */.Z, {})\n })\n })\n })\n })\n });\n}\n\n// EXTERNAL MODULE: ./node_modules/@mui/icons-material/Logout.js\nvar Logout = __webpack_require__(13540);\n// EXTERNAL MODULE: ./src/contexts/externalShareInfo.tsx\nvar externalShareInfo = __webpack_require__(82783);\n;// CONCATENATED MODULE: ./src/layouts/AppBar/ExternalAppBar/ProjectAppBar/index.tsx\n\n\n\n\n\n // 追加\n\nfunction ExternalProjectAppBar() {\n const { project } = (0,externalShareInfo/* useExternalShareInfo */.r)();\n const { logout } = (0,externalShareInfo/* useExternalShareInfo */.r)();\n var ref;\n return /*#__PURE__*/ (0,jsx_runtime.jsx)(jsx_runtime.Fragment, {\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(AppBar/* default */.Z, {\n children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(Toolbar/* default */.Z, {\n variant: \"dense\",\n className: \"flex justify-between\",\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(Typography/* default */.Z, {\n component: \"h1\",\n variant: \"h6\",\n color: \"inherit\",\n noWrap: true,\n className: \"flex-grow hidden sm:block\",\n children: project === null || project === void 0 ? void 0 : project.name\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(IconButton/* default */.Z, {\n color: \"inherit\",\n onClick: ()=>{\n return logout((ref = project === null || project === void 0 ? void 0 : project.id) !== null && ref !== void 0 ? ref : \"\");\n },\n className: \"ml-auto\",\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Logout/* default */.Z, {})\n })\n ]\n })\n })\n });\n}\n\n;// CONCATENATED MODULE: ./src/layouts/AppBar/index.tsx\n\n\n\n\n\n// EXTERNAL MODULE: ./node_modules/@mui/material/Drawer/Drawer.js + 1 modules\nvar Drawer = __webpack_require__(58826);\n// EXTERNAL MODULE: ./node_modules/@mui/material/List/List.js + 1 modules\nvar List = __webpack_require__(78462);\n// EXTERNAL MODULE: ./node_modules/@mui/material/Divider/Divider.js\nvar Divider = __webpack_require__(67720);\n// EXTERNAL MODULE: ./node_modules/@mui/icons-material/ChevronLeft.js\nvar ChevronLeft = __webpack_require__(19572);\n// EXTERNAL MODULE: ./node_modules/@mui/material/ListItemButton/ListItemButton.js\nvar ListItemButton = __webpack_require__(98619);\n// EXTERNAL MODULE: ./node_modules/@mui/material/ListItemIcon/ListItemIcon.js\nvar ListItemIcon = __webpack_require__(48885);\n// EXTERNAL MODULE: ./node_modules/@mui/material/ListItemText/ListItemText.js\nvar ListItemText = __webpack_require__(59334);\n// EXTERNAL MODULE: ./node_modules/@mui/material/ListSubheader/ListSubheader.js + 1 modules\nvar ListSubheader = __webpack_require__(75438);\n// EXTERNAL MODULE: ./node_modules/@mui/icons-material/ExitToApp.js\nvar ExitToApp = __webpack_require__(49123);\n// EXTERNAL MODULE: ./node_modules/@mui/icons-material/Check.js\nvar Check = __webpack_require__(27036);\n;// CONCATENATED MODULE: ./src/layouts/Navigation/HomeNavs/NavItems.tsx\n\n\n\n\n\n\n\n\n\n\nconst MainListItems = (param)=>{\n let { toggleDrawer } = param;\n const { logout , permissions } = (0,auth/* useAuth */.a)();\n const handleSignOut = ()=>{\n logout();\n toggleDrawer();\n };\n return /*#__PURE__*/ (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListSubheader/* default */.Z, {\n component: \"div\",\n inset: true,\n children: \"メニュー\"\n }),\n permissions.TenantInfo.canRead && /*#__PURE__*/ (0,jsx_runtime.jsx)((link_default()), {\n href: \"/tenant\",\n prefetch: false,\n children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(ListItemButton/* default */.Z, {\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemIcon/* default */.Z, {\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Settings/* default */.Z, {})\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemText/* default */.Z, {\n primary: \"テナント設定\"\n })\n ]\n })\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsxs)(ListItemButton/* default */.Z, {\n onClick: handleSignOut,\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemIcon/* default */.Z, {\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(ExitToApp/* default */.Z, {})\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemText/* default */.Z, {\n primary: \"ログアウト\"\n })\n ]\n })\n ]\n });\n};\nconst SecondaryListItems = (param)=>{\n let { toggleDrawer } = param;\n const { user , currentGroup , setCurrentGroup } = (0,auth/* useAuth */.a)();\n const handleGroupChange = (group)=>{\n setCurrentGroup(group);\n toggleDrawer();\n };\n return /*#__PURE__*/ (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListSubheader/* default */.Z, {\n component: \"div\",\n inset: true,\n children: \"事業所選択\"\n }),\n user === null || user === void 0 ? void 0 : user.groups.map((group)=>{\n /*#__PURE__*/ return (0,jsx_runtime.jsxs)(ListItemButton/* default */.Z, {\n onClick: ()=>handleGroupChange(group),\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemText/* default */.Z, {\n primary: group.name\n }),\n (currentGroup === null || currentGroup === void 0 ? void 0 : currentGroup.id) === group.id && /*#__PURE__*/ (0,jsx_runtime.jsx)(Check/* default */.Z, {\n color: \"primary\"\n })\n ]\n }, group.id);\n })\n ]\n });\n};\n\n;// CONCATENATED MODULE: ./src/layouts/Navigation/HomeNavs/index.tsx\n\n\n\n\n\n\n\n\nfunction HomeNavs(param) {\n let { open , toggleDrawer } = param;\n return /*#__PURE__*/ (0,jsx_runtime.jsxs)(Drawer/* default */.ZP, {\n variant: \"temporary\",\n open: open,\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsxs)(Toolbar/* default */.Z, {\n sx: {\n display: \"flex\",\n alignItems: \"center\",\n px: [\n 1\n ]\n },\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(IconButton/* default */.Z, {\n onClick: toggleDrawer,\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(ChevronLeft/* default */.Z, {})\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(\"div\", {\n className: \"ml-4 w-16\",\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(\"img\", {\n src: \"/logo.png\",\n alt: \"logo\"\n })\n })\n ]\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(Divider/* default */.Z, {}),\n /*#__PURE__*/ (0,jsx_runtime.jsxs)(List/* default */.Z, {\n component: \"nav\",\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(MainListItems, {\n toggleDrawer: toggleDrawer\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(Divider/* default */.Z, {\n sx: {\n my: 1\n }\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(SecondaryListItems, {\n toggleDrawer: toggleDrawer\n })\n ]\n })\n ]\n });\n}\n\n// EXTERNAL MODULE: ./node_modules/@mui/icons-material/InfoOutlined.js\nvar InfoOutlined = __webpack_require__(2548);\n// EXTERNAL MODULE: ./node_modules/@mui/icons-material/PhotoOutlined.js\nvar PhotoOutlined = __webpack_require__(66029);\n// EXTERNAL MODULE: ./node_modules/@mui/icons-material/FolderOutlined.js\nvar FolderOutlined = __webpack_require__(86408);\n// EXTERNAL MODULE: ./node_modules/@mui/icons-material/SummarizeOutlined.js\nvar SummarizeOutlined = __webpack_require__(66382);\n// EXTERNAL MODULE: ./node_modules/@mui/icons-material/EventOutlined.js\nvar EventOutlined = __webpack_require__(92036);\n// EXTERNAL MODULE: ./node_modules/@mui/icons-material/SettingsOutlined.js\nvar SettingsOutlined = __webpack_require__(46396);\n// EXTERNAL MODULE: ./node_modules/@mui/material/Collapse/Collapse.js + 1 modules\nvar Collapse = __webpack_require__(57922);\n// EXTERNAL MODULE: ./node_modules/@mui/material/LinearProgress/LinearProgress.js + 1 modules\nvar LinearProgress = __webpack_require__(81458);\n// EXTERNAL MODULE: ./node_modules/@mui/icons-material/ExpandLess.js\nvar ExpandLess = __webpack_require__(60181);\n// EXTERNAL MODULE: ./node_modules/@mui/icons-material/ExpandMore.js\nvar ExpandMore = __webpack_require__(23508);\n// EXTERNAL MODULE: ./node_modules/@mui/icons-material/RequestQuoteOutlined.js\nvar RequestQuoteOutlined = __webpack_require__(45519);\n// EXTERNAL MODULE: ./node_modules/@mui/material/Avatar/Avatar.js + 2 modules\nvar Avatar = __webpack_require__(69661);\n// EXTERNAL MODULE: ./node_modules/@mui/material/colors/green.js\nvar green = __webpack_require__(13486);\n// EXTERNAL MODULE: ./src/contexts/quotes.tsx\nvar contexts_quotes = __webpack_require__(85262);\n;// CONCATENATED MODULE: ./src/layouts/Navigation/ProjectNavs/NavItems/QuoteItems.tsx\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst QuoteItems = (param)=>{\n let { toggleDrawer } = param;\n const [open, setOpen] = (0,react.useState)(false);\n const [currentPage, setCurrentPage] = (0,react.useState)(\"project\");\n const router = (0,next_router.useRouter)();\n const { project } = (0,contexts_project/* useProject */.P)();\n const { quotes , loading } = (0,contexts_quotes/* useQuotes */.v)();\n const { query } = router;\n (0,react.useEffect)(()=>{\n if (!!query.quoteId) {\n setCurrentPage(query.quoteId);\n return setOpen(true);\n }\n setCurrentPage(query.page);\n }, [\n query\n ]);\n if (!project || !quotes) return null;\n const handleClick = ()=>{\n toggleDrawer();\n router.push(\"/projects/\".concat(project.id, \"?page=quotes\"));\n };\n return /*#__PURE__*/ (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsxs)(\"div\", {\n className: \"flex justify-between\",\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsxs)(ListItemButton/* default */.Z, {\n onClick: handleClick,\n selected: currentPage === \"quotes\",\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemIcon/* default */.Z, {\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(RequestQuoteOutlined/* default */.Z, {})\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemText/* default */.Z, {\n primary: \"見積\"\n })\n ]\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(\"div\", {\n className: \"cursor-pointer flex items-center mr-4\",\n children: open ? /*#__PURE__*/ (0,jsx_runtime.jsx)(ExpandLess/* default */.Z, {\n onClick: ()=>setOpen(false)\n }) : /*#__PURE__*/ (0,jsx_runtime.jsx)(ExpandMore/* default */.Z, {\n onClick: ()=>setOpen(true)\n })\n })\n ]\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(Collapse/* default */.Z, {\n in: open,\n timeout: \"auto\",\n unmountOnExit: true,\n children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(List/* default */.Z, {\n component: \"div\",\n disablePadding: true,\n children: [\n loading && quotes.length === 0 && /*#__PURE__*/ (0,jsx_runtime.jsx)(LinearProgress/* default */.Z, {}),\n quotes.map((quote)=>/*#__PURE__*/ (0,jsx_runtime.jsx)((link_default()), {\n href: \"/projects/\".concat(project.id, \"?page=quotes"eId=\").concat(quote.id),\n prefetch: false,\n children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(ListItemButton/* default */.Z, {\n sx: {\n pl: 4\n },\n selected: currentPage === quote.id,\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemIcon/* default */.Z, {\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Avatar/* default */.Z, {\n sx: {\n bgcolor: quote.id === project.quoteId ? green/* default.800 */.Z[800] : \"gray\",\n width: 30,\n height: 30,\n fontSize: 15\n },\n \"aria-label\": \"status\",\n children: quote.id === project.quoteId ? \"受\" : \"仮\"\n })\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemText/* default */.Z, {\n primary: quote.name\n })\n ]\n })\n }, \"item_\".concat(quote.id)))\n ]\n })\n })\n ]\n });\n};\n/* harmony default export */ var NavItems_QuoteItems = (QuoteItems);\n\n// EXTERNAL MODULE: ./node_modules/@mui/icons-material/WidgetsOutlined.js\nvar WidgetsOutlined = __webpack_require__(19590);\n// EXTERNAL MODULE: ./src/contexts/products.tsx\nvar contexts_products = __webpack_require__(3204);\n// EXTERNAL MODULE: ./src/utils/product.tsx\nvar utils_product = __webpack_require__(41491);\n// EXTERNAL MODULE: ./src/utils/case.tsx\nvar utils_case = __webpack_require__(45149);\n;// CONCATENATED MODULE: ./src/layouts/Navigation/ProjectNavs/NavItems/PackProductItems.tsx\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst CaseItems = (param)=>{\n let { toggleDrawer , product } = param;\n const [open, setOpen] = (0,react.useState)(false);\n const [currentPage, setCurrentPage] = (0,react.useState)(\"project\");\n const { project } = (0,contexts_project/* useProject */.P)();\n const router = (0,next_router.useRouter)();\n const { query } = router;\n (0,react.useEffect)(()=>{\n if (!!query.case) {\n setCurrentPage(\"\".concat(query.productId, \"-\").concat(query.case));\n if (query.productId === (product === null || product === void 0 ? void 0 : product.id)) setOpen(true);\n } else if (!!query.productId) {\n setCurrentPage(query.productId);\n } else {\n setCurrentPage(\"\");\n }\n }, [\n query,\n product\n ]);\n if (!project || !product) return null;\n const handleClick = ()=>{\n toggleDrawer();\n router.push(\"/projects/\".concat(project.id, \"?page=products&productId=\").concat(product.id));\n };\n return /*#__PURE__*/ (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsxs)(\"div\", {\n className: \"flex justify-between\",\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsxs)(ListItemButton/* default */.Z, {\n sx: {\n pl: 4\n },\n selected: currentPage === product.id,\n onClick: handleClick,\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemIcon/* default */.Z, {\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Avatar/* default */.Z, {\n sx: {\n width: 30,\n height: 30,\n fontSize: 16,\n bgcolor: product.readyToPack ? \"transparent\" : \"gray\"\n },\n \"aria-label\": \"status\",\n children: product.readyToPack ? /*#__PURE__*/ (0,jsx_runtime.jsx)(utils_product/* ProgressIcon */.QO, {\n progress: (0,utils_product/* getProductCompletionRate */.q5)(product) * 100,\n size: 30\n }) : \"仮\"\n })\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemText/* default */.Z, {\n primary: product.name,\n secondary: product.packageTypeName\n })\n ]\n }),\n product.readyToPack && /*#__PURE__*/ (0,jsx_runtime.jsx)(\"div\", {\n className: \"cursor-pointer flex items-center mr-4\",\n children: open ? /*#__PURE__*/ (0,jsx_runtime.jsx)(ExpandLess/* default */.Z, {\n onClick: ()=>setOpen(false)\n }) : /*#__PURE__*/ (0,jsx_runtime.jsx)(ExpandMore/* default */.Z, {\n onClick: ()=>setOpen(true)\n })\n })\n ]\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(Collapse/* default */.Z, {\n in: open,\n timeout: \"auto\",\n unmountOnExit: true,\n children: product.cases && product.cases.length > 0 && product.cases.map((cs)=>{\n /*#__PURE__*/ return (0,jsx_runtime.jsx)((link_default()), {\n href: \"/projects/\".concat(project.id, \"?page=products&productId=\").concat(product.id, \"&case=\").concat(cs === null || cs === void 0 ? void 0 : cs.order),\n prefetch: false,\n children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(ListItemButton/* default */.Z, {\n sx: {\n pl: 8\n },\n selected: currentPage === \"\".concat(product.id, \"-\").concat(cs === null || cs === void 0 ? void 0 : cs.order),\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemIcon/* default */.Z, {\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(utils_case/* ProgressIcon */.QO, {\n cs: cs,\n className: \"w-14\"\n })\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemText/* default */.Z, {\n primary: \"\".concat(product.name, \"-\").concat(cs === null || cs === void 0 ? void 0 : cs.order)\n })\n ]\n })\n }, \"product_\".concat(product.id, \"_case_\").concat(cs === null || cs === void 0 ? void 0 : cs.order));\n })\n })\n ]\n });\n};\nconst ProductItems = (param)=>{\n let { toggleDrawer } = param;\n const [open, setOpen] = (0,react.useState)(false);\n const [currentPage, setCurrentPage] = (0,react.useState)(\"project\");\n const { products , loading } = (0,contexts_products/* useProducts */.r)();\n const { project } = (0,contexts_project/* useProject */.P)();\n const router = (0,next_router.useRouter)();\n const { query } = router;\n (0,react.useEffect)(()=>{\n if (!query.productId && !query.case) {\n setCurrentPage(query.page);\n } else if (!!query.productId && query.page === \"products\") {\n setCurrentPage(\"\");\n setOpen(true);\n } else if (!!query.productId && !!query) {\n setCurrentPage(\"\");\n setOpen(true);\n } else {\n setCurrentPage(\"\");\n }\n }, [\n query\n ]);\n if (!project || !products) return null;\n const handleClick = ()=>{\n toggleDrawer();\n router.push(\"/projects/\".concat(project.id, \"?page=products\"));\n };\n return /*#__PURE__*/ (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsxs)(\"div\", {\n className: \"flex justify-between\",\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsxs)(ListItemButton/* default */.Z, {\n onClick: handleClick,\n selected: currentPage === \"products\",\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemIcon/* default */.Z, {\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(WidgetsOutlined/* default */.Z, {})\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemText/* default */.Z, {\n primary: \"梱包\"\n })\n ]\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(\"div\", {\n className: \"cursor-pointer flex items-center mr-4\",\n children: open ? /*#__PURE__*/ (0,jsx_runtime.jsx)(ExpandLess/* default */.Z, {\n onClick: ()=>setOpen(false)\n }) : /*#__PURE__*/ (0,jsx_runtime.jsx)(ExpandMore/* default */.Z, {\n onClick: ()=>setOpen(true)\n })\n })\n ]\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(Collapse/* default */.Z, {\n in: open,\n timeout: \"auto\",\n unmountOnExit: true,\n children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(List/* default */.Z, {\n component: \"div\",\n disablePadding: true,\n children: [\n loading && products.length === 0 && /*#__PURE__*/ (0,jsx_runtime.jsx)(LinearProgress/* default */.Z, {}),\n products.length > 0 && products.map((product)=>/*#__PURE__*/ (0,jsx_runtime.jsx)(CaseItems, {\n product: product,\n toggleDrawer: toggleDrawer\n }, product.id))\n ]\n })\n })\n ]\n });\n};\n/* harmony default export */ var PackProductItems = (ProductItems);\n\n;// CONCATENATED MODULE: ./src/layouts/Navigation/ProjectNavs/NavItems/NonPackProductItems.tsx\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst NonPackProductItems_ProductItems = (param)=>{\n let { toggleDrawer , product } = param;\n const [currentPage, setCurrentPage] = (0,react.useState)(\"project\");\n const { project } = (0,contexts_project/* useProject */.P)();\n const router = (0,next_router.useRouter)();\n const { query } = router;\n (0,react.useEffect)(()=>{\n if (!!query.productId) {\n setCurrentPage(query.productId);\n } else {\n setCurrentPage(\"\");\n }\n }, [\n query,\n product\n ]);\n if (!project || !product) return null;\n const handleClick = ()=>{\n toggleDrawer();\n router.push(\"/projects/\".concat(project.id, \"?page=products&productId=\").concat(product.id));\n };\n return /*#__PURE__*/ (0,jsx_runtime.jsx)(\"div\", {\n className: \"flex justify-between\",\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemButton/* default */.Z, {\n sx: {\n pl: 4\n },\n selected: currentPage === product.id,\n onClick: handleClick,\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemText/* default */.Z, {\n primary: product.name\n })\n })\n });\n};\nconst NonProductNav = (param)=>{\n let { toggleDrawer } = param;\n const [open, setOpen] = (0,react.useState)(false);\n const [currentPage, setCurrentPage] = (0,react.useState)(\"project\");\n const { products , loading } = (0,contexts_products/* useProducts */.r)();\n const { project } = (0,contexts_project/* useProject */.P)();\n const router = (0,next_router.useRouter)();\n const { query } = router;\n (0,react.useEffect)(()=>{\n if (!query.productId && !query.case) {\n setCurrentPage(query.page);\n } else if (!!query.productId && query.page === \"products\") {\n setCurrentPage(\"\");\n setOpen(true);\n } else if (!!query.productId && !!query) {\n setCurrentPage(\"\");\n setOpen(true);\n } else {\n setCurrentPage(\"\");\n }\n }, [\n query\n ]);\n if (!project || !products) return null;\n const handleClick = ()=>{\n toggleDrawer();\n router.push(\"/projects/\".concat(project.id, \"?page=products\"));\n };\n return /*#__PURE__*/ (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsxs)(\"div\", {\n className: \"flex justify-between\",\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsxs)(ListItemButton/* default */.Z, {\n onClick: handleClick,\n selected: currentPage === \"products\",\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemIcon/* default */.Z, {\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(WidgetsOutlined/* default */.Z, {})\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemText/* default */.Z, {\n primary: \"製品サービス\"\n })\n ]\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(\"div\", {\n className: \"cursor-pointer flex items-center mr-4\",\n children: open ? /*#__PURE__*/ (0,jsx_runtime.jsx)(ExpandLess/* default */.Z, {\n onClick: ()=>setOpen(false)\n }) : /*#__PURE__*/ (0,jsx_runtime.jsx)(ExpandMore/* default */.Z, {\n onClick: ()=>setOpen(true)\n })\n })\n ]\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(Collapse/* default */.Z, {\n in: open,\n timeout: \"auto\",\n unmountOnExit: true,\n children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(List/* default */.Z, {\n component: \"div\",\n disablePadding: true,\n children: [\n loading && products.length === 0 && /*#__PURE__*/ (0,jsx_runtime.jsx)(LinearProgress/* default */.Z, {}),\n products.length > 0 && products.map((product)=>/*#__PURE__*/ (0,jsx_runtime.jsx)(NonPackProductItems_ProductItems, {\n product: product,\n toggleDrawer: toggleDrawer\n }, product.id))\n ]\n })\n })\n ]\n });\n};\n/* harmony default export */ var NonPackProductItems = (NonProductNav);\n\n// EXTERNAL MODULE: ./node_modules/@mui/icons-material/Receipt.js\nvar Receipt = __webpack_require__(2391);\n// EXTERNAL MODULE: ./src/contexts/invoices.tsx\nvar contexts_invoices = __webpack_require__(23429);\n;// CONCATENATED MODULE: ./src/layouts/Navigation/ProjectNavs/NavItems/InvoiceItems.tsx\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst InvoiceItems = (param)=>{\n let { toggleDrawer } = param;\n const [open, setOpen] = (0,react.useState)(false);\n const [currentPage, setCurrentPage] = (0,react.useState)(\"project\");\n const router = (0,next_router.useRouter)();\n const { project } = (0,contexts_project/* useProject */.P)();\n const { invoices , loading } = (0,contexts_invoices/* useInvoices */.q)();\n const { query } = router;\n (0,react.useEffect)(()=>{\n if (!!query.invoiceId) {\n setCurrentPage(query.invoiceId);\n return setOpen(true);\n }\n setCurrentPage(query.page);\n }, [\n query\n ]);\n if (!project || !invoices) return null;\n const handleClick = ()=>{\n toggleDrawer();\n router.push(\"/projects/\".concat(project.id, \"?page=invoice\"));\n };\n return /*#__PURE__*/ (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsxs)(\"div\", {\n className: \"flex justify-between\",\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsxs)(ListItemButton/* default */.Z, {\n onClick: handleClick,\n selected: currentPage === \"invoice\",\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemIcon/* default */.Z, {\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Receipt/* default */.Z, {})\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemText/* default */.Z, {\n primary: \"請求\"\n })\n ]\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(\"div\", {\n className: \"cursor-pointer flex items-center mr-4\",\n children: open ? /*#__PURE__*/ (0,jsx_runtime.jsx)(ExpandLess/* default */.Z, {\n onClick: ()=>setOpen(false)\n }) : /*#__PURE__*/ (0,jsx_runtime.jsx)(ExpandMore/* default */.Z, {\n onClick: ()=>setOpen(true)\n })\n })\n ]\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(Collapse/* default */.Z, {\n in: open,\n timeout: \"auto\",\n unmountOnExit: true,\n children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(List/* default */.Z, {\n component: \"div\",\n disablePadding: true,\n children: [\n loading && invoices.length === 0 && /*#__PURE__*/ (0,jsx_runtime.jsx)(LinearProgress/* default */.Z, {}),\n invoices.map((invoice)=>/*#__PURE__*/ (0,jsx_runtime.jsx)((link_default()), {\n href: \"/projects/\".concat(project.id, \"?page=invoices&invoiceId=\").concat(invoice.id),\n prefetch: false,\n children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(ListItemButton/* default */.Z, {\n sx: {\n pl: 4\n },\n selected: currentPage === invoice.id,\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemIcon/* default */.Z, {\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Avatar/* default */.Z, {\n sx: {\n bgcolor: invoice.billed ? green/* default.800 */.Z[800] : \"gray\",\n width: 30,\n height: 30,\n fontSize: 15\n },\n \"aria-label\": \"status\",\n children: invoice.billed ? \"済\" : \"未\"\n })\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemText/* default */.Z, {\n primary: invoice.name\n })\n ]\n })\n }, \"item_\".concat(invoice.id)))\n ]\n })\n })\n ]\n });\n};\n/* harmony default export */ var NavItems_InvoiceItems = (InvoiceItems);\n\n// EXTERNAL MODULE: ./node_modules/@mui/icons-material/LocalShipping.js\nvar LocalShipping = __webpack_require__(1645);\n// EXTERNAL MODULE: ./src/contexts/vanplans.tsx\nvar contexts_vanplans = __webpack_require__(46648);\n// EXTERNAL MODULE: ./src/utils/vanplan/vanplan.ts\nvar vanplan_vanplan = __webpack_require__(790);\n;// CONCATENATED MODULE: ./src/layouts/Navigation/ProjectNavs/NavItems/vanplanItems.tsx\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst ContainerItems = (param)=>{\n let { toggleDrawer , vanplan } = param;\n const [open, setOpen] = (0,react.useState)(false);\n const [currentPage, setCurrentPage] = (0,react.useState)(\"vanplans\");\n const { project } = (0,contexts_project/* useProject */.P)();\n const router = (0,next_router.useRouter)();\n const { query } = router;\n (0,react.useEffect)(()=>{\n if (!!query.containerId) {\n setCurrentPage(\"\".concat(query.vanplanId, \"-\").concat(query.containerId));\n if (query.vanplanId === (vanplan === null || vanplan === void 0 ? void 0 : vanplan.id)) setOpen(true);\n } else if (!!query.vanplanId) {\n setCurrentPage(query.vanplanId);\n } else {\n setCurrentPage(\"\");\n }\n }, [\n query,\n vanplan\n ]);\n if (!project || !vanplan) return null;\n const handleClick = ()=>{\n toggleDrawer();\n router.push(\"/projects/\".concat(project.id, \"?page=vanplans&vanplanId=\").concat(vanplan.id));\n };\n var ref, ref1;\n return /*#__PURE__*/ (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsxs)(\"div\", {\n className: \"flex justify-between\",\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsxs)(ListItemButton/* default */.Z, {\n sx: {\n pl: 4\n },\n selected: currentPage === vanplan.id,\n onClick: handleClick,\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemIcon/* default */.Z, {\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(utils_product/* ProgressIcon */.QO, {\n progress: (0,vanplan_vanplan/* getVanplanCompletionRate */.D0)(vanplan) * 100,\n size: 30\n })\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemText/* default */.Z, {\n primary: vanplan.name\n })\n ]\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(\"div\", {\n className: \"cursor-pointer flex items-center mr-4\",\n children: open ? /*#__PURE__*/ (0,jsx_runtime.jsx)(ExpandLess/* default */.Z, {\n onClick: ()=>setOpen(false)\n }) : /*#__PURE__*/ (0,jsx_runtime.jsx)(ExpandMore/* default */.Z, {\n onClick: ()=>setOpen(true)\n })\n })\n ]\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(Collapse/* default */.Z, {\n in: open,\n timeout: \"auto\",\n unmountOnExit: true,\n children: vanplan.containers && vanplan.containers.items.length > 0 && vanplan.containers.items.sort((a, b)=>{\n return ((ref = a === null || a === void 0 ? void 0 : a.order) !== null && ref !== void 0 ? ref : 999) - ((ref1 = b === null || b === void 0 ? void 0 : b.order) !== null && ref1 !== void 0 ? ref1 : 999);\n }).map((container)=>{\n /*#__PURE__*/ return (0,jsx_runtime.jsx)((link_default()), {\n href: \"/projects/\".concat(project.id, \"?page=vanplans&vanplanId=\").concat(vanplan.id, \"&containerId=\").concat(container === null || container === void 0 ? void 0 : container.id),\n prefetch: false,\n children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(ListItemButton/* default */.Z, {\n sx: {\n pl: 8\n },\n selected: currentPage === \"\".concat(vanplan.id, \"-\").concat(container === null || container === void 0 ? void 0 : container.id),\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemIcon/* default */.Z, {\n children: (container === null || container === void 0 ? void 0 : container.shipCompleted) ? /*#__PURE__*/ (0,jsx_runtime.jsx)(Avatar/* default */.Z, {\n sx: {\n bgcolor: green/* default.800 */.Z[800]\n },\n \"aria-label\": \"status\",\n children: \"済\"\n }) : /*#__PURE__*/ (0,jsx_runtime.jsx)(Avatar/* default */.Z, {\n sx: {\n bgcolor: \"gray\"\n },\n \"aria-label\": \"status\",\n children: \"未\"\n })\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemText/* default */.Z, {\n primary: \"\".concat(container === null || container === void 0 ? void 0 : container.name)\n })\n ]\n })\n }, \"vanplan_\".concat(vanplan.id, \"_container_\").concat(container === null || container === void 0 ? void 0 : container.id));\n })\n })\n ]\n });\n};\nconst VanplanItems = (param)=>{\n let { toggleDrawer } = param;\n const [open, setOpen] = (0,react.useState)(false);\n const [currentPage, setCurrentPage] = (0,react.useState)(\"vanplans\");\n const router = (0,next_router.useRouter)();\n const { project } = (0,contexts_project/* useProject */.P)();\n const { vanplans , loading } = (0,contexts_vanplans/* useVanplans */.Z)();\n const { query } = router;\n (0,react.useEffect)(()=>{\n if (!query.vanplanId && !query.containerId) {\n setCurrentPage(query.page);\n } else if (!!query.vanplanId && query.page === \"vanplans\") {\n setCurrentPage(\"\");\n setOpen(true);\n } else if (!!query.vanplanId && !!query) {\n setCurrentPage(\"\");\n setOpen(true);\n } else {\n setCurrentPage(\"\");\n }\n }, [\n query,\n router.isReady,\n vanplans\n ]);\n (0,react.useEffect)(()=>{\n if (router.isReady) {\n if (query.containerId) {\n setCurrentPage(\"\".concat(query.vanplanId, \"-\").concat(query.containerId));\n } else if (query.vanplanId) {\n setCurrentPage(query.vanplanId);\n } else {\n setCurrentPage(\"\");\n }\n }\n }, [\n router.isReady,\n query.vanplanId,\n query.containerId\n ]);\n if (!project || !vanplans) return null;\n const handleClick = ()=>{\n toggleDrawer();\n router.push(\"/projects/\".concat(project.id, \"?page=vanplans\"));\n };\n return /*#__PURE__*/ (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsxs)(\"div\", {\n className: \"flex justify-between\",\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsxs)(ListItemButton/* default */.Z, {\n onClick: handleClick,\n selected: currentPage === \"vanplans\",\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemIcon/* default */.Z, {\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(LocalShipping/* default */.Z, {})\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemText/* default */.Z, {\n primary: \"バンプラン\"\n })\n ]\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(\"div\", {\n className: \"cursor-pointer flex items-center mr-4\",\n children: open ? /*#__PURE__*/ (0,jsx_runtime.jsx)(ExpandLess/* default */.Z, {\n onClick: ()=>setOpen(false)\n }) : /*#__PURE__*/ (0,jsx_runtime.jsx)(ExpandMore/* default */.Z, {\n onClick: ()=>setOpen(true)\n })\n })\n ]\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(Collapse/* default */.Z, {\n in: open,\n timeout: \"auto\",\n unmountOnExit: true,\n children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(List/* default */.Z, {\n component: \"div\",\n disablePadding: true,\n children: [\n loading && vanplans.length === 0 && /*#__PURE__*/ (0,jsx_runtime.jsx)(LinearProgress/* default */.Z, {}),\n vanplans.map((vanplan)=>/*#__PURE__*/ (0,jsx_runtime.jsx)(ContainerItems, {\n vanplan: vanplan,\n toggleDrawer: toggleDrawer\n }, vanplan.id))\n ]\n })\n })\n ]\n });\n};\n/* harmony default export */ var vanplanItems = (VanplanItems);\n\n// EXTERNAL MODULE: ./src/contexts/tenant.tsx\nvar contexts_tenant = __webpack_require__(27349);\n;// CONCATENATED MODULE: ./src/layouts/Navigation/ProjectNavs/NavItems/index.tsx\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst NavItems_MainListItems = (param)=>{\n let { toggleDrawer } = param;\n const { project } = (0,contexts_project/* useProject */.P)();\n const [currentPage, setCurrentPage] = (0,react.useState)(\"project\");\n const { permissions } = (0,auth/* useAuth */.a)();\n const router = (0,next_router.useRouter)();\n const { query } = router;\n (0,react.useEffect)(()=>{\n if (!query.page) return setCurrentPage(\"project\");\n setCurrentPage(query.page);\n }, [\n query\n ]);\n if (!project) return /*#__PURE__*/ (0,jsx_runtime.jsx)(\"div\", {});\n return /*#__PURE__*/ (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)((link_default()), {\n href: \"/projects/\".concat(project.id),\n prefetch: false,\n children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(ListItemButton/* default */.Z, {\n onClick: toggleDrawer,\n selected: currentPage === \"project\",\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemIcon/* default */.Z, {\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(InfoOutlined/* default */.Z, {})\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemText/* default */.Z, {\n primary: \"案件\"\n })\n ]\n })\n }),\n permissions.ProjectPhoto.canRead && /*#__PURE__*/ (0,jsx_runtime.jsx)((link_default()), {\n href: \"/projects/\".concat(project.id, \"?page=photo\"),\n prefetch: false,\n children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(ListItemButton/* default */.Z, {\n onClick: toggleDrawer,\n selected: currentPage === \"photo\",\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemIcon/* default */.Z, {\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(PhotoOutlined/* default */.Z, {})\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemText/* default */.Z, {\n primary: \"写真\"\n })\n ]\n })\n }),\n permissions.ProjectFile.canRead && /*#__PURE__*/ (0,jsx_runtime.jsx)((link_default()), {\n href: \"/projects/\".concat(project.id, \"?page=files\"),\n prefetch: false,\n children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(ListItemButton/* default */.Z, {\n onClick: toggleDrawer,\n selected: currentPage === \"files\",\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemIcon/* default */.Z, {\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(FolderOutlined/* default */.Z, {})\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemText/* default */.Z, {\n primary: \"ファイル\"\n })\n ]\n })\n }),\n permissions.ProjectReport.canRead && /*#__PURE__*/ (0,jsx_runtime.jsx)((link_default()), {\n href: \"/projects/\".concat(project.id, \"?page=reports\"),\n prefetch: false,\n children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(ListItemButton/* default */.Z, {\n onClick: toggleDrawer,\n selected: currentPage === \"reports\",\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemIcon/* default */.Z, {\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(SummarizeOutlined/* default */.Z, {})\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemText/* default */.Z, {\n primary: \"帳票\"\n })\n ]\n })\n })\n ]\n });\n};\nconst NavItems_SecondaryListItems = (param)=>{\n let { toggleDrawer } = param;\n const { project } = (0,contexts_project/* useProject */.P)();\n const { tenant } = (0,contexts_tenant/* useTenant */.S)();\n const [currentPage, setCurrentPage] = (0,react.useState)(\"project\");\n const { permissions } = (0,auth/* useAuth */.a)();\n const router = (0,next_router.useRouter)();\n const { query } = router;\n (0,react.useEffect)(()=>{\n if (!!query.quoteId) return setCurrentPage(query.quoteId);\n if (!!query.productId) return setCurrentPage(query.productId);\n setCurrentPage(query.page);\n }, [\n query\n ]);\n if (!project) return /*#__PURE__*/ (0,jsx_runtime.jsx)(\"div\", {});\n return /*#__PURE__*/ (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListSubheader/* default */.Z, {\n component: \"div\",\n inset: true,\n children: \"データ入力\"\n }),\n permissions.ProjectSchedule.canRead && /*#__PURE__*/ (0,jsx_runtime.jsx)((link_default()), {\n href: \"/projects/\".concat(project.id, \"?page=schedules\"),\n prefetch: false,\n children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(ListItemButton/* default */.Z, {\n onClick: toggleDrawer,\n selected: currentPage === \"schedules\",\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemIcon/* default */.Z, {\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(EventOutlined/* default */.Z, {})\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemText/* default */.Z, {\n primary: \"スケジュール\"\n })\n ]\n })\n }),\n permissions.ProjectQuote.canRead && /*#__PURE__*/ (0,jsx_runtime.jsx)(NavItems_QuoteItems, {\n toggleDrawer: toggleDrawer\n }),\n permissions.ProjectProduct.canRead && /*#__PURE__*/ (0,jsx_runtime.jsx)(jsx_runtime.Fragment, {\n children: project.type === \"OTHER\" ? /*#__PURE__*/ (0,jsx_runtime.jsx)(NonPackProductItems, {\n toggleDrawer: toggleDrawer\n }) : /*#__PURE__*/ (0,jsx_runtime.jsx)(PackProductItems, {\n toggleDrawer: toggleDrawer\n })\n }),\n permissions.ProjectVanplan.canRead && (tenant === null || tenant === void 0 ? void 0 : tenant.enableVanplan) && project.type !== \"OTHER\" && /*#__PURE__*/ (0,jsx_runtime.jsx)(vanplanItems, {\n toggleDrawer: toggleDrawer\n }),\n permissions.ProjectInvoice.canRead && /*#__PURE__*/ (0,jsx_runtime.jsx)(NavItems_InvoiceItems, {\n toggleDrawer: toggleDrawer\n }),\n permissions.Project.canWrite && /*#__PURE__*/ (0,jsx_runtime.jsx)((link_default()), {\n href: \"/projects/\".concat(project.id, \"?page=settings\"),\n prefetch: false,\n children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(ListItemButton/* default */.Z, {\n onClick: toggleDrawer,\n selected: currentPage === \"settings\",\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemIcon/* default */.Z, {\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(SettingsOutlined/* default */.Z, {})\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemText/* default */.Z, {\n primary: \"設定\"\n })\n ]\n })\n })\n ]\n });\n};\n\n;// CONCATENATED MODULE: ./src/layouts/Navigation/ProjectNavs/index.tsx\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction ProjectNavs(param) {\n let { open , toggleDrawer , drawerWidth } = param;\n const { project } = (0,contexts_project/* useProject */.P)();\n const [openDrawer, setOpenDrawer] = (0,react.useState)(true);\n const handleDrawerOpen = ()=>{\n setOpenDrawer(true);\n };\n const handleDrawerClose = ()=>{\n setOpenDrawer(false);\n };\n return /*#__PURE__*/ (0,jsx_runtime.jsxs)(Box/* default */.Z, {\n component: \"nav\",\n sx: {\n width: openDrawer ? {\n sm: drawerWidth\n } : 0,\n flexShrink: {\n sm: 0\n }\n },\n \"aria-label\": \"mailbox folders\",\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsxs)(Drawer/* default */.ZP, {\n variant: \"persistent\",\n anchor: \"left\",\n sx: {\n display: {\n xs: \"none\",\n sm: \"block\"\n },\n \"& .MuiDrawer-paper\": {\n boxSizing: \"border-box\",\n width: drawerWidth\n }\n },\n open: openDrawer,\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsxs)(Toolbar/* default */.Z, {\n variant: \"dense\",\n sx: {\n display: \"flex\",\n justifyContent: \"space-between\"\n },\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(Tooltip/* default */.Z, {\n title: (project === null || project === void 0 ? void 0 : project.name) || \"\",\n placement: \"right\",\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Typography/* default */.Z, {\n variant: \"subtitle2\",\n color: \"inherit\",\n noWrap: true,\n sx: {\n textOverflow: \"fade\",\n cursor: \"help\"\n },\n children: project === null || project === void 0 ? void 0 : project.name\n })\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(IconButton/* default */.Z, {\n onClick: handleDrawerClose,\n sx: {\n marginRight: \"-10%\"\n },\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(ChevronLeft/* default */.Z, {})\n })\n ]\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsxs)(List/* default */.Z, {\n component: \"nav\",\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(NavItems_MainListItems, {\n toggleDrawer: toggleDrawer\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(Divider/* default */.Z, {\n sx: {\n my: 1\n }\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(NavItems_SecondaryListItems, {\n toggleDrawer: toggleDrawer\n })\n ]\n })\n ]\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(Toolbar/* default */.Z, {\n variant: \"dense\",\n sx: {\n display: \"flex\",\n justifyContent: \"space-between\",\n visibility: openDrawer ? \"hidden\" : \"visible\"\n },\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(IconButton/* default */.Z, {\n onClick: handleDrawerOpen,\n sx: {\n visibility: openDrawer ? \"hidden\" : \"visible\",\n zIndex: 10000,\n color: \"white\",\n alignItems: \"center\"\n },\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Menu/* default */.Z, {})\n })\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsxs)(Drawer/* default */.ZP, {\n variant: \"temporary\",\n open: open,\n ModalProps: {\n keepMounted: true\n },\n sx: {\n display: {\n xs: \"block\",\n sm: \"none\"\n },\n \"& .MuiDrawer-paper\": {\n boxSizing: \"border-box\",\n width: drawerWidth\n }\n },\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsxs)(Toolbar/* default */.Z, {\n variant: \"dense\",\n sx: {\n display: \"flex\",\n alignItems: \"center\",\n px: [\n 1\n ]\n },\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(Typography/* default */.Z, {\n variant: \"subtitle2\",\n color: \"inherit\",\n noWrap: true,\n children: project === null || project === void 0 ? void 0 : project.name\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(IconButton/* default */.Z, {\n onClick: toggleDrawer,\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(ChevronLeft/* default */.Z, {})\n })\n ]\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(Divider/* default */.Z, {}),\n /*#__PURE__*/ (0,jsx_runtime.jsxs)(List/* default */.Z, {\n component: \"nav\",\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(NavItems_MainListItems, {\n toggleDrawer: toggleDrawer\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(Divider/* default */.Z, {\n sx: {\n my: 1\n }\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(NavItems_SecondaryListItems, {\n toggleDrawer: toggleDrawer\n })\n ]\n })\n ]\n })\n ]\n });\n}\n\n;// CONCATENATED MODULE: ./src/layouts/Navigation/index.tsx\n\n\n\n;// CONCATENATED MODULE: ./src/layouts/index.tsx\n\n\n\n\n\n\n\n\n\n\n\n\nconst mdTheme = (0,createTheme/* default */.Z)({\n palette: {\n primary: {\n main: \"#104470\",\n contrastText: \"#fff\"\n }\n },\n breakpoints: {\n values: {\n xs: 0,\n sm: 640,\n md: 1024,\n lg: 1200,\n xl: 1536\n }\n }\n}, jaJP/* jaJP */.j, locales_jaJP/* jaJP */.j, locale/* jaJP */.jz);\nconst boxStyle = {\n backgroundColor: (theme)=>theme.palette.mode === \"light\" ? theme.palette.grey[100] : theme.palette.grey[900],\n height: \"100vh\",\n overflowY: \"scroll\",\n width: \"100%\"\n};\nfunction HomeLayout(param) {\n let { children } = param;\n const [open, setOpen] = (0,react.useState)(false);\n const toggleDrawer = ()=>{\n setOpen(!open);\n };\n return /*#__PURE__*/ (0,jsx_runtime.jsx)(ThemeProvider/* default */.Z, {\n theme: mdTheme,\n children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(Box/* default */.Z, {\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(CssBaseline/* default */.ZP, {}),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(HomeAppBar, {\n open: open,\n toggleDrawer: toggleDrawer\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(HomeNavs, {\n open: open,\n toggleDrawer: toggleDrawer\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsxs)(Box/* default */.Z, {\n component: \"main\",\n sx: boxStyle,\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(Toolbar/* default */.Z, {}),\n children\n ]\n })\n ]\n })\n });\n}\nfunction AdminLayout(param) {\n let { title , children } = param;\n const [open, setOpen] = (0,react.useState)(false);\n const toggleDrawer = ()=>{\n setOpen(!open);\n };\n return /*#__PURE__*/ (0,jsx_runtime.jsx)(ThemeProvider/* default */.Z, {\n theme: mdTheme,\n children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(Box/* default */.Z, {\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(CssBaseline/* default */.ZP, {}),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(AdminAppBar, {\n title: title,\n open: open,\n toggleDrawer: toggleDrawer\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(HomeNavs, {\n open: open,\n toggleDrawer: toggleDrawer\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsxs)(Box/* default */.Z, {\n component: \"main\",\n sx: boxStyle,\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(Toolbar/* default */.Z, {}),\n children\n ]\n })\n ]\n })\n });\n}\nfunction ProjectLayout(param) {\n let { children } = param;\n const [open, setOpen] = (0,react.useState)(false);\n const { isExternalLogin } = (0,externalShareInfo/* useExternalShareInfo */.r)();\n const toggleDrawer = ()=>{\n setOpen(!open);\n };\n const drawerWidth = 260;\n return /*#__PURE__*/ (0,jsx_runtime.jsxs)(ThemeProvider/* default */.Z, {\n theme: mdTheme,\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(CssBaseline/* default */.ZP, {}),\n /*#__PURE__*/ (0,jsx_runtime.jsxs)(Box/* default */.Z, {\n className: \"w-screen h-full min-h-screen flex\",\n children: [\n isExternalLogin ? /*#__PURE__*/ (0,jsx_runtime.jsx)(ExternalProjectAppBar, {}) : /*#__PURE__*/ (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ProjectAppBar, {\n open: open,\n toggleDrawer: toggleDrawer\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(ProjectNavs, {\n open: open,\n toggleDrawer: toggleDrawer,\n drawerWidth: drawerWidth\n })\n ]\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsxs)(Box/* default */.Z, {\n component: \"main\",\n sx: boxStyle,\n children: [\n /*#__PURE__*/ (0,jsx_runtime.jsx)(\"div\", {\n className: \"absolute\",\n children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Toolbar/* default */.Z, {\n variant: \"dense\"\n })\n }),\n /*#__PURE__*/ (0,jsx_runtime.jsx)(\"div\", {\n className: \"pt-10 h-full\",\n children: children\n })\n ]\n })\n ]\n })\n ]\n });\n}\n\n\n/***/ }),\n\n/***/ 32379:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Ox\": function() { return /* binding */ calculateElements; },\n/* harmony export */ \"WF\": function() { return /* binding */ calculateGW; },\n/* harmony export */ \"g\": function() { return /* binding */ calculatePanelM2; },\n/* harmony export */ \"k3\": function() { return /* binding */ calculateWoodM3; },\n/* harmony export */ \"tv\": function() { return /* binding */ calculateProductCost; }\n/* harmony export */ });\n/* unused harmony export flattenElements */\n/* harmony import */ var _extract__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(51404);\n/* harmony import */ var utils_jis_combinationSign_Z1402__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19794);\n/* harmony import */ var utils_jis_combinationSign_Z1403__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(94924);\n/* harmony import */ var utils_jis_combinationSign_Z1410Level1__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(58235);\n/* harmony import */ var utils_jis_combinationSign_Z1410Level2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14391);\n/* harmony import */ var utils_jis_combinationSign_Z1410Level3__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(24158);\n/* harmony import */ var utils_jis_combinationSign_Z1410Level4__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(31330);\n/* harmony import */ var utils_jis_beamSupportMaterial__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(75547);\n/* harmony import */ var utils_jis_beamMaterial__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(10175);\n/* harmony import */ var utils_product__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(41491);\n\n\n\n\n\n\n\n\n\n\n/**\n * Extracts slug from variables in expression\n * @param {string} variable i.e. '\\@\\[長さ](productLength)'\n * @returns {string} i.e. 'productLength'\n */ const extractSlug = (variable)=>variable.replace(/@\\[(.*?)]\\(/g, \"\").replace(/\\)/g, \"\");\n/**\n * Extracts id from materials in expression\n * @param {string} variable i.e. '#[薫蒸木材 チリ松 120x120](8acc8f8e-e01c-4aa2-b4df-dbbf4ee224ab)'\n * @returns {string} i.e. '8acc8f8e-e01c-4aa2-b4df-dbbf4ee224ab'\n */ const extractId = (variable)=>variable.replace(/#\\[(.*?)]\\(/g, \"\").replace(/\\)/g, \"\");\n/**\n * Extracts variables within the expression, and returns if it exists in slugs\n * @param {string} expr expression in cell i.e. '= \\@\\[長さ](productLength) + 100'\n * @param {string} slugs all avaialble slugs i.e. ['productLength', 'productWidth', ...]\n * @returns {string[]} variables(slugs) extracted from expression\n */ const extractVariables = (expr, slugs)=>{\n expr = expr.replace(/[!=&|<>]/g, \" + \");\n expr = expr.replace(/if\\s/gi, \" + \");\n expr = expr.replace(/\\selse\\s/gi, \" + \");\n // expr = expr.replace(/Math.+?\\(*\\)/gi, ' + ');\n const exprs = expr.split(/[+\\-*/%,]/);\n const variables = exprs.reduce((r, e)=>{\n const matches = e.match(/@\\[(.*?)]\\([.\\w]+\\)/g);\n if (matches) r.push(matches[0]);\n return r;\n }, []);\n if (!variables) return null;\n // check if the variable is available in slugs\n if (variables.filter((v)=>!slugs.includes(extractSlug(v))).length > 0) return null;\n return variables;\n};\n/**\n * Extracts material ids within the expression\n * @param {string} expr expression in cell i.e. '= #[薫蒸木材 チリ松 120x120](8acc8f8e-e01c-4aa2-b4df-dbbf4ee224ab)'\n * @returns {string[]} material ids extracted from expression\n */ const extractMaterials = (expr)=>{\n expr = expr.replace(/[!=&|<>]/g, \" + \");\n expr = expr.replace(/if/gi, \" + \");\n expr = expr.replace(/else/gi, \" + \");\n const exprs = expr.split(/[\\s}][+\\-*/%][\\s{]/);\n const materials = exprs.reduce((r, e)=>{\n const matches = e.match(/#\\[(.*?)]\\([\\s\\S]+\\)/g);\n if (matches) r.push({\n var: matches[0],\n id: extractId(matches[0])\n });\n return r;\n }, []);\n if (!materials) return [];\n return materials;\n};\n/**\n * Calculates element value based on expression\n * @param {object} elements { slug: element[] }\n * @param {object} element target element data with expression\n * @param {string[]} slugs all available slugs\n * @param {object[]} result { slug: value }[] - results from previous calculation\n * @param {function} materialOverwrite overwrite mateiral dimensions to elements\n * @returns {object[]} { slug: value }[] - appends new slug-value pair to previous result, returns null as value if unapplicable\n */ const calculateValue = (elements, result, element, slugs, materialOverwrite, materials, species, mainSpeciesId, mainSpeciesEdgeMPa, mainSpeciesFaceMPa)=>{\n const { slug , expr } = element;\n const vars = extractVariables(expr, slugs);\n if (!vars) return {\n ...result,\n [slug]: null\n };\n // create new expr with value inside\n let newExpr = expr.replace(\"=\", \"\").replace(\"materialValue\", \"\");\n vars.forEach((variable)=>{\n const vSlug = extractSlug(variable);\n const varEl = flattenElements(elements).filter((e)=>e.slug === vSlug)[0];\n if (!(vSlug in result)) {\n result = extractValues(elements, result, varEl, slugs, materialOverwrite, materials, species, mainSpeciesId, mainSpeciesEdgeMPa, mainSpeciesFaceMPa);\n }\n if (varEl.type === \"string\") {\n newExpr = newExpr.replace(variable, \"'\".concat(result[vSlug], \"'\"));\n } else {\n newExpr = newExpr.replace(variable, result[vSlug]);\n }\n });\n // materials\n const extMaterials = extractMaterials(expr);\n extMaterials.forEach((m)=>{\n newExpr = newExpr.replace(m.var, \"'\".concat(m.id, \"'\"));\n });\n try {\n // evalで使う可能性があるので定義しておく\n const Z1402calcCombinationSign = utils_jis_combinationSign_Z1402__WEBPACK_IMPORTED_MODULE_0__/* .calcCombinationSign */ .A;\n const Z1403calcCombinationSign = utils_jis_combinationSign_Z1403__WEBPACK_IMPORTED_MODULE_1__/* .calcCombinationSign */ .A;\n const Z1410Level1calcCombinationSign = utils_jis_combinationSign_Z1410Level1__WEBPACK_IMPORTED_MODULE_2__/* .calcCombinationSign */ .A;\n const Z1410Level2calcCombinationSign = utils_jis_combinationSign_Z1410Level2__WEBPACK_IMPORTED_MODULE_3__/* .calcCombinationSign */ .A;\n const Z1410Level3calcCombinationSign = utils_jis_combinationSign_Z1410Level3__WEBPACK_IMPORTED_MODULE_4__/* .calcCombinationSign */ .A;\n const Z1410Level4calcCombinationSign = utils_jis_combinationSign_Z1410Level4__WEBPACK_IMPORTED_MODULE_5__/* .calcCombinationSign */ .A;\n const JISBeamSupportMaterial = utils_jis_beamSupportMaterial__WEBPACK_IMPORTED_MODULE_7__/* .JISBeamSupportMaterial */ .a;\n const JISBeamMaterial = utils_jis_beamMaterial__WEBPACK_IMPORTED_MODULE_8__/* .JISBeamMaterial */ .H;\n const JISBeamEdge = utils_jis_beamMaterial__WEBPACK_IMPORTED_MODULE_8__/* .JISBeamEdge */ .B;\n // eslint-disable-next-line no-eval\n const newVal = eval(newExpr);\n if (element.type === \"string\" && slug.includes(\"materialId\")) {\n //* update elements from material\n materialOverwrite(newVal, element);\n }\n // eslint-disable-next-line valid-typeof\n result[slug] = newVal;\n // result[slug] = typeof newVal === ('number' || 'string') ? newVal : null;\n } catch (err) {\n // ReferenceErrorだったらvalueを入れてあげる\n if (err instanceof ReferenceError) {\n result[slug] = element === null || element === void 0 ? void 0 : element.value;\n } else {\n result[slug] = null;\n }\n }\n return result;\n};\n/**\n * Extract element value when expression is null\n * @param {object} elements { slug: element[] }\n * @param {object} element target element data with expression\n * @param {string[]} slugs all available slugs\n * @param {object[]} result { slug: value }[] results from previous calculation\n * @param {function} materialOverwrite overwrite mateiral dimensions to elements\n * @returns {object[]} { slug: value }[], appends new slug-value pair to previous result, returns null as value if unapplicable\n */ const extractValues = (elements, result, element, slugs, materialOverwrite, materials, species, mainSpeciesId, mainSpeciesEdgeMPa, mainSpeciesFaceMPa)=>{\n const { slug , expr , value , overwriteValue } = element;\n if (!expr && value || overwriteValue !== null) {\n result[slug] = value;\n } else if (!expr) {\n result[slug] = null;\n } else {\n result = calculateValue(elements, result, element, slugs, materialOverwrite, materials, species, mainSpeciesId, mainSpeciesEdgeMPa, mainSpeciesFaceMPa);\n }\n return result;\n};\n/**\n * flatten slug-elements object into elements array\n * @param {object} elements { slug: element[] }\n * @returns {object[]} element[] - flattened array of elements\n */ const flattenElements = (elements)=>{\n let flattened = [];\n Object.keys(elements).forEach((key)=>{\n flattened = flattened.concat(elements[key]);\n });\n return flattened;\n};\n/**\n * @typedef {object} AllElements\n * @property {object} elements { slug: elements[] } all elements\n * @property {string[]} slugs all available slugs\n */ const getAllElements = (product, cmps, interiors, exteriors)=>{\n const elements = {};\n elements.product = Object.values(product).map((x)=>x);\n Object.entries(cmps).forEach((param)=>{\n let [id, el] = param;\n elements[id] = Object.values(el).map((x)=>x);\n });\n Object.entries(interiors).forEach((param)=>{\n let [id, el] = param;\n elements[id] = Object.values(el).map((x)=>x);\n });\n Object.entries(exteriors).forEach((param)=>{\n let [id, el] = param;\n elements[id] = Object.values(el).map((x)=>x);\n });\n return elements;\n};\n/**\n * Gets all elements from package and components form methods\n * @param {object} product package form methods\n * @param {object} cmps { slug: component form methods }\n * @returns {AllElements} { elements, slugs } - all available elements and slugs\n */ const getElements = (product, cmps, interiors, exteriors)=>{\n const elements = getAllElements(product, cmps, interiors, exteriors);\n const slugs = Object.values(elements).reduce((r, c)=>{\n r = r.concat(c.map((element)=>element.slug));\n return r;\n }, []);\n return {\n elements,\n slugs\n };\n};\n/**\n * Set all updated values for all package's & components' elements\n * @param {object[]} variables { slug: value }\n * @param {object} elements { slug: element[] }\n * @param {object} product package form methods\n * @param {object} cmps { slug: component form methods }\n */ const setElements = (variables, elements, cmps, setProductElements, setCmpElements, interiorElements, setInteriorElements, exteriorElements, setExteriorElements)=>{\n //* loop through product elements\n const newProduct = elements.product.reduce((r, element)=>{\n // product.setValue(`elements[${idx}].value`, variables[element.slug]);\n r[element.slug] = {\n ...element,\n value: variables[element.slug]\n };\n return r;\n }, {});\n setProductElements(newProduct);\n //* loop through all components elements\n const newCmps = Object.entries(cmps).reduce((result, param)=>{\n let [id, els] = param;\n result[id] = Object.values(els).reduce((r, el)=>{\n r[el.slug] = {\n ...el,\n value: variables[el.slug]\n };\n return r;\n }, {});\n return result;\n }, {});\n setCmpElements(newCmps);\n const newInteriors = Object.entries(interiorElements).reduce((result, param)=>{\n let [id, els] = param;\n result[id] = Object.values(els).reduce((r, el)=>{\n r[el.slug] = {\n ...el,\n value: variables[el.slug]\n };\n return r;\n }, {});\n return result;\n }, {});\n setInteriorElements(newInteriors);\n const newExteriors = Object.entries(exteriorElements).reduce((result, param)=>{\n let [id, els] = param;\n result[id] = Object.values(els).reduce((r, el)=>{\n r[el.slug] = {\n ...el,\n value: variables[el.slug]\n };\n return r;\n }, {});\n return result;\n }, {});\n setExteriorElements(newExteriors);\n};\n/**\n * Update all elements which has a bining material dimension, except overwritten values\n * @param {object} material material information with dimension\n * @param {string} slug element's slug with component slug attached\n * @param {function overwriteElementValue(slug, value) {\n\n }} overwriteElementValue function that updates specific element\n */ const overwriteElementsByMaterial = (material, slug, overwriteElementValue)=>{\n const componentSlug = slug.split(\".\")[0];\n if (!material) {\n overwriteElementValue(\"\".concat(componentSlug, \".length\"), null);\n overwriteElementValue(\"\".concat(componentSlug, \".lengthNominal\"), null);\n overwriteElementValue(\"\".concat(componentSlug, \".width\"), null);\n overwriteElementValue(\"\".concat(componentSlug, \".widthNominal\"), null);\n overwriteElementValue(\"\".concat(componentSlug, \".height\"), null);\n overwriteElementValue(\"\".concat(componentSlug, \".heightNominal\"), null);\n }\n if (material) {\n // materialIdを上書き\n // 基本的には変更にはならないが、JISBeamMaterialを使っている場合は発生する\n if (material.id) {\n overwriteElementValue(\"\".concat(componentSlug, \".materialId\"), material.id);\n }\n if (material.lengthLocked) {\n // find index of element and update\n overwriteElementValue(\"\".concat(componentSlug, \".length\"), material.length);\n overwriteElementValue(\"\".concat(componentSlug, \".lengthNominal\"), material.lengthNominal);\n } else {\n overwriteElementValue(\"\".concat(componentSlug, \".length\"), null);\n overwriteElementValue(\"\".concat(componentSlug, \".lengthNominal\"), null);\n }\n if (material.widthLocked) {\n overwriteElementValue(\"\".concat(componentSlug, \".width\"), material.width);\n overwriteElementValue(\"\".concat(componentSlug, \".widthNominal\"), material.widthNominal);\n } else {\n overwriteElementValue(\"\".concat(componentSlug, \".width\"), null);\n overwriteElementValue(\"\".concat(componentSlug, \".widthNominal\"), null);\n }\n if (material.heightLocked) {\n overwriteElementValue(\"\".concat(componentSlug, \".height\"), material.height);\n overwriteElementValue(\"\".concat(componentSlug, \".heightNominal\"), material.heightNominal);\n } else {\n overwriteElementValue(\"\".concat(componentSlug, \".height\"), null);\n overwriteElementValue(\"\".concat(componentSlug, \".heightNominal\"), null);\n }\n }\n};\n/**\n * Update all elements with calculated values from expression\n * @param {object} productElements package form methods\n * @param {object} cmpElements { slug: component form methods }\n */ const calculateElements = (productElements, cmpElements, setProductElements, setCmpElements, materials, interiorElements, exteriorElements, setInteriorElements, setExteriorElements, bomData, species, mainSpeciesId, mainSpeciesEdgeMPa, mainSpeciesFaceMPa)=>{\n const { elements , slugs } = getElements(productElements, cmpElements, interiorElements, exteriorElements);\n // edgeの以前の値\n const variablesForEdgeBefore = {};\n for (const component of bomData === null || bomData === void 0 ? void 0 : bomData.components){\n var ref, ref1;\n var ref2;\n const edgeValue = (ref2 = component === null || component === void 0 ? void 0 : (ref = component.elements) === null || ref === void 0 ? void 0 : (ref1 = ref.edge) === null || ref1 === void 0 ? void 0 : ref1.value) !== null && ref2 !== void 0 ? ref2 : 0;\n variablesForEdgeBefore[\"\".concat(component.slug, \".edge\")] = parseInt(edgeValue, 10) || 0;\n }\n // valueはmaterialの値\n const overwriteElementValue = (slug, value)=>{\n let idx = flatElements.findIndex((x)=>x.slug === slug);\n if (idx === -1) return;\n // materialIdはvalueの上書きのみ。\n // 基本的にMaterialIDの上書きは入力として行われるので、この処理はいらない(入力ではない場合も後でvariablesで上書きするから問題ない)。\n // ただ、materialIdに式が入っていて、それでサイズ関連が変わる場合に反映されないことがあるので、ここで更新する必要がある\n if (slug.endsWith(\".materialId\")) {\n flatElements[idx].value = value;\n return;\n }\n // width, height, widthNominal, heightNominalは\n // 1. 今反転はしないけど、すでに反転状態の場合はslugを反転させていidxを更新する(資材変更などの考慮)\n if (slug.includes(\".width\") || slug.includes(\".height\")) {\n // 同Elementのedgeを持ってくる\n const edgeSlug = slug.split(\".\")[0] + \".edge\";\n const edgeIdx = flatElements.findIndex((x)=>x.slug === edgeSlug);\n if (edgeIdx !== -1) {\n const beforeValue = variablesForEdgeBefore[edgeSlug];\n var _value, ref;\n const afterValue = (ref = parseInt((_value = flatElements[edgeIdx].value) !== null && _value !== void 0 ? _value : \"0\", 10)) !== null && ref !== void 0 ? ref : 0;\n // 今反転はしないけど、すでに反転状態の場合は対象のslugを反転させる\n if (beforeValue === afterValue && afterValue !== 0) {\n // 反転する\n if (slug.includes(\".width\")) {\n slug = slug.replace(\".width\", \".height\");\n idx = flatElements.findIndex((x)=>x.slug === slug);\n } else if (slug.includes(\".height\")) {\n slug = slug.replace(\".height\", \".width\");\n idx = flatElements.findIndex((x)=>x.slug === slug);\n }\n }\n }\n }\n if (idx === -1) return;\n // if material value is null, and no overwriteValue, append null\n if (value === null && !flatElements[idx].overwriteValue && flatElements[idx].expr) {\n flatElements[idx].value = null;\n if (!flatElements[idx].expr) return;\n // if material value appended to expression, clear expression\n const exprIsMaterial = flatElements[idx].expr.includes(\"materialValue\");\n if (exprIsMaterial) flatElements[idx].expr = \"\";\n }\n // if material value is null and overwrite exists, return\n if (!value) return;\n // add material value as expression\n flatElements[idx].expr = \"= materialValue(\".concat(value, \")\");\n // if current value is null, append material value\n if (flatElements[idx].value === null) flatElements[idx].value = value ? value.toString() : value;\n // if (\n // flatElements[idx].value != value &&\n //! !flatElements[idx].overwriteValue\n // ) {\n // if value not the same as material value, and no overwriteValue, add overwriteValue\n // flatElements[idx].overwriteValue = value ? value.toString() : value;\n // }\n if (flatElements[idx].value == value) {\n // if value is the same as material value, remove overwriteValue\n flatElements[idx].overwriteValue = null;\n flatElements[idx].value = value ? value.toString() : value;\n }\n };\n let flatElements = flattenElements(elements);\n // exprを利用していない部材のmaterialIdを更新\n slugs.forEach((slug)=>{\n if (!slug.includes(\"materialId\")) return;\n const materialId = flatElements.filter((x)=>x.slug === slug)[0].value;\n const material = materials.filter((x)=>x.id === materialId)[0];\n overwriteElementsByMaterial(material, slug, overwriteElementValue);\n });\n const materialOverwrite = (materialId, element)=>{\n const material = materials.filter((x)=>x.id === materialId)[0];\n overwriteElementsByMaterial(material, element.slug, overwriteElementValue);\n };\n // ここから各elementの評価を行う、順序は以下\n // 1. materialId(materialIdに式がある場合先に評価する必要がある)\n // 2. JISBeamMaterial(Edgeの設定とMaterialの設定が同時に起きた場合はMaterialを先に評価する必要があるため)\n // 3. edge(必要ならこの後の計算で巾高反転した値を使いたいため)\n // 4. panelM2とwoodM3を使っていない式(panelM2, woodM3の計算のために必要なものを先に計算)\n // 5. panelM2とwoodM3を使っている式\n const variablesForMaterialIds = flatElements.reduce((result, element)=>{\n var ref;\n if (!((ref = element.slug) === null || ref === void 0 ? void 0 : ref.includes(\".materialId\"))) {\n return result;\n }\n return extractValues(elements, result, element, slugs, materialOverwrite, materials, species, mainSpeciesId, mainSpeciesEdgeMPa, mainSpeciesFaceMPa);\n }, {});\n // JISBeamMaterialを使っているelementの評価を先に行う\n const variablesForJisBeamMaterial = flatElements.reduce((result, element)=>{\n var ref;\n if (!((ref = element.expr) === null || ref === void 0 ? void 0 : ref.includes(\"JISBeamMaterial\"))) {\n return result;\n }\n return extractValues(elements, result, element, slugs, materialOverwrite, materials, species, mainSpeciesId, mainSpeciesEdgeMPa, mainSpeciesFaceMPa);\n }, {});\n // edgeの評価を先に行う\n const variablesForEdge = flatElements.reduce((result, element)=>{\n var ref, ref1;\n if (!((ref = element.slug) === null || ref === void 0 ? void 0 : ref.endsWith(\".edge\")) || ((ref1 = element.expr) === null || ref1 === void 0 ? void 0 : ref1.includes(\"JISBeamMaterial\"))) {\n return result;\n }\n return extractValues(elements, result, element, slugs, materialOverwrite, materials, species, mainSpeciesId, mainSpeciesEdgeMPa, mainSpeciesFaceMPa);\n }, {});\n // edgeが0→0以外 or 0以外→0になる部材については、該当するmaterialを参考に巾と高さを反転する\n // flatElementsの反転\n flatElements = invertFlattenElements(flatElements, materials, variablesForEdge, variablesForEdgeBefore);\n // elementsを反転\n const invElements = invertElementMap(elements, materials, variablesForEdge, variablesForEdgeBefore);\n // component関連でこのあと参照する変数(cmpElements)を反転\n const invCmpElements = invertCmpElement(cmpElements, materials, variablesForEdge, variablesForEdgeBefore);\n //* map values to slugs\n // まずpanelM2とwoodM3を使っていない式を計算\n const variablesFirst = flatElements.reduce((result, element)=>{\n var ref, ref1, ref2, ref3;\n if (((ref = element.expr) === null || ref === void 0 ? void 0 : ref.includes(\"@[panelM2]\")) || ((ref1 = element.expr) === null || ref1 === void 0 ? void 0 : ref1.includes(\"@[woodM3]\")) || ((ref2 = element.slug) === null || ref2 === void 0 ? void 0 : ref2.endsWith(\".edge\")) || ((ref3 = element.expr) === null || ref3 === void 0 ? void 0 : ref3.includes(\"JISBeamMaterial\"))) {\n return result;\n }\n return extractValues(invElements, result, element, slugs, materialOverwrite, materials, species, mainSpeciesId, mainSpeciesEdgeMPa, mainSpeciesFaceMPa);\n }, {});\n // その結果からcomponentだけ持ってくる\n const newCmps = Object.entries(invCmpElements).reduce((result, param)=>{\n let [id, els] = param;\n result.push({\n id: id,\n elements: Object.values(els).map((el)=>{\n return {\n ...el,\n value: variablesFirst[el.slug]\n };\n })\n });\n return result;\n }, []);\n // ↑を使ってwoodM3とpanelM2を計算\n const woodM3 = calculateWoodM3(newCmps);\n const panelM2 = calculatePanelM2(newCmps);\n // 計算時にpanelM2とwoodM3を含める必要があるので一時的に追加\n invElements.product.push({\n cutting: null,\n description: null,\n expr: null,\n name: \"panelM2\",\n overwriteValue: null,\n slug: \"panelM2\",\n type: \"number\",\n value: panelM2\n });\n invElements.product.push({\n cutting: null,\n description: null,\n expr: null,\n name: \"woodM3\",\n overwriteValue: null,\n slug: \"woodM3\",\n type: \"number\",\n value: woodM3\n });\n slugs.push(\"woodM3\");\n slugs.push(\"panelM2\");\n // panelM2とwoodM3を使っている式を計算\n const variables = flatElements.reduce((result, element)=>{\n var ref, ref1, ref2, ref3;\n if (!((ref = element.expr) === null || ref === void 0 ? void 0 : ref.includes(\"@[panelM2]\")) && !((ref1 = element.expr) === null || ref1 === void 0 ? void 0 : ref1.includes(\"@[woodM3]\")) || ((ref2 = element.slug) === null || ref2 === void 0 ? void 0 : ref2.endsWith(\".edge\")) || ((ref3 = element.expr) === null || ref3 === void 0 ? void 0 : ref3.includes(\"JISBeamMaterial\"))) {\n return result;\n }\n return extractValues(invElements, result, element, slugs, materialOverwrite, materials, species, mainSpeciesId, mainSpeciesEdgeMPa, mainSpeciesFaceMPa);\n }, {});\n delete variables.panelM2;\n delete variables.woodM3;\n const newElements = {\n ...invElements,\n product: invElements.product.filter((elem)=>elem.slug !== \"panelM2\" && elem.slug !== \"woodM3\")\n };\n //* set value for package and components\n setElements({\n ...variablesForMaterialIds,\n ...variablesForJisBeamMaterial,\n ...variablesForEdge,\n ...variablesFirst,\n ...variables\n }, newElements, invCmpElements, setProductElements, setCmpElements, interiorElements, setInteriorElements, exteriorElements, setExteriorElements);\n};\nconst calculateProductCost = (product, bom, materials)=>{\n var ref, ref1, ref2, ref3, ref4, ref5, ref6, ref7, ref8;\n if (!product || !bom) {\n return {};\n }\n // plywoodTotal(合板合計)、woodenTotal(木材合計)、lvlTotal(Lvl合計)、normalWoodTotal(普通木材合計)を計算\n let plywoodTotal = 0;\n let woodenTotal = 0;\n let lvlTotal = 0;\n let normalWoodTotal = 0;\n if (bom.components !== undefined) {\n plywoodTotal = _sumComponentsTotalCost(bom.components, materials, \"isPanel\");\n woodenTotal = _sumComponentsTotalCost(bom.components, materials, \"isWood\");\n lvlTotal = _sumComponentsTotalCost(bom.components, materials, \"isLvl\");\n normalWoodTotal = _sumComponentsTotalCost(bom.components, materials, \"isNormalWood\");\n }\n // interiorTotal(内装合計)を計算\n let interiorTotal = 0;\n if (bom.interiors !== undefined) {\n interiorTotal = _sumComponentsTotalCost(bom.interiors, materials);\n }\n // exteriorTotal(外装合計)を計算\n let exteriorTotal = 0;\n if (bom.exteriors !== undefined) {\n exteriorTotal = _sumComponentsTotalCost(bom.exteriors, materials);\n }\n // otherTotal(その他原価)を取得\n let otherTotal = 0;\n if (bom.product !== undefined) {\n var ref9, ref10;\n var ref11;\n otherTotal = parseInt((ref11 = (ref9 = bom.product.elements) === null || ref9 === void 0 ? void 0 : (ref10 = ref9.otherCost) === null || ref10 === void 0 ? void 0 : ref10.value) !== null && ref11 !== void 0 ? ref11 : \"0\", 10);\n }\n // totalCost(合計)を計算\n const totalCost = woodenTotal + lvlTotal + plywoodTotal + normalWoodTotal + interiorTotal + exteriorTotal + otherTotal;\n var ref12, ref13, ref14, ref15, ref16, ref17;\n // m3Cost(m3原価)を計算\n const m3 = (0,utils_product__WEBPACK_IMPORTED_MODULE_6__/* .calcM3 */ .Hs)((ref13 = parseFloat((ref12 = bom === null || bom === void 0 ? void 0 : (ref = bom.product) === null || ref === void 0 ? void 0 : (ref1 = ref.elements) === null || ref1 === void 0 ? void 0 : (ref2 = ref1.outerLength) === null || ref2 === void 0 ? void 0 : ref2.value) !== null && ref12 !== void 0 ? ref12 : \"0\")) !== null && ref13 !== void 0 ? ref13 : 0, (ref15 = parseFloat((ref14 = bom === null || bom === void 0 ? void 0 : (ref3 = bom.product) === null || ref3 === void 0 ? void 0 : (ref4 = ref3.elements) === null || ref4 === void 0 ? void 0 : (ref5 = ref4.outerWidth) === null || ref5 === void 0 ? void 0 : ref5.value) !== null && ref14 !== void 0 ? ref14 : \"0\")) !== null && ref15 !== void 0 ? ref15 : 0, (ref17 = parseFloat((ref16 = bom === null || bom === void 0 ? void 0 : (ref6 = bom.product) === null || ref6 === void 0 ? void 0 : (ref7 = ref6.elements) === null || ref7 === void 0 ? void 0 : (ref8 = ref7.outerHeight) === null || ref8 === void 0 ? void 0 : ref8.value) !== null && ref16 !== void 0 ? ref16 : \"0\")) !== null && ref17 !== void 0 ? ref17 : 0);\n const m3Cost = Math.ceil(totalCost / m3);\n return {\n woodenTotal: woodenTotal,\n lvlTotal: lvlTotal,\n plywoodTotal: plywoodTotal,\n normalWoodTotal: normalWoodTotal,\n interiorTotal: interiorTotal,\n exteriorTotal: exteriorTotal,\n otherTotal: otherTotal,\n totalCost: totalCost,\n m3Cost: m3Cost\n };\n};\n// components, decorationsに対して、資材分類が指定したのものの「原価合計」の合計を計算する関数\n// materialTypeNameが空だったら全ての資材分類のものを合計する\nconst _sumComponentsTotalCost = function(components, materials) {\n let materialTypeName = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : \"\";\n return components.filter((component)=>{\n // componentに該当するmaterialを取得\n const material = materials.find((material)=>material.id === component.elements.materialId.value);\n // materialなかったらスキップ\n if (material === undefined) return false;\n // materialのmaterialTypeが空だったらスキップ\n if (material.materialType === null || material.materialType === undefined) return false;\n // 資材分類がmaterialTypeNameのものだけ抽出\n // 空文字だったら全て持ってくる\n return materialTypeName === \"\" || (material === null || material === void 0 ? void 0 : material.materialType[materialTypeName]);\n }).reduce((acc, component)=>{\n if (component.elements === undefined || component.elements === null || component.elements.totalCost === undefined || component.elements.totalCost === null) return acc;\n var _value;\n const total = parseInt((_value = component.elements.totalCost.value) !== null && _value !== void 0 ? _value : \"0\", 10);\n return acc + (isNaN(total) ? 0 : total);\n }, 0);\n};\nconst calculatePanelM2 = (components)=>{\n let panelM2 = 0;\n components.forEach((cpt)=>{\n const m2 = (0,_extract__WEBPACK_IMPORTED_MODULE_9__/* .extractElementValue */ .sI)(cpt.elements, \"m2\");\n panelM2 += m2;\n });\n return Math.round(panelM2 * 100000) / 100000;\n};\nconst calculateWoodM3 = (components)=>{\n let woodM3 = 0;\n components.forEach((cpt)=>{\n const m3 = (0,_extract__WEBPACK_IMPORTED_MODULE_9__/* .extractElementValue */ .sI)(cpt.elements, \"m3\");\n woodM3 += m3;\n });\n return Math.round(woodM3 * 100000) / 100000;\n};\nconst calculateGW = (productElements, tareWeight)=>{\n let grossWeight = 0;\n const netWeight = (0,_extract__WEBPACK_IMPORTED_MODULE_9__/* .extractElementValue */ .sI)(productElements, \"NW\");\n // GrossWeight-tareWeight=NetWeight\n grossWeight = parseFloat(netWeight) + tareWeight;\n return Math.round(grossWeight * 100000) / 100000;\n};\nconst invertCmpElement = (cmpElements, materials, edgeVariables, edgeVariablesBefore // { \"slug.edge\": value }\n)=>{\n const cmpOnlyElements = {};\n Object.entries(cmpElements).forEach((param)=>{\n let [id, el] = param;\n cmpOnlyElements[id] = Object.values(el).map((x)=>x);\n });\n const invCmpElementsMap = invertElementMap(cmpOnlyElements, materials, edgeVariables, edgeVariablesBefore);\n const invCmpElements = {};\n Object.entries(invCmpElementsMap).forEach((param)=>{\n let [id, values] = param;\n const el = {};\n values.forEach((value)=>{\n el[value.slug] = value;\n });\n invCmpElements[id] = el;\n });\n return invCmpElements;\n};\n// elementsでedgeが0以外のものを巾高反転する\nconst invertElementMap = (elements, materials, edgeVariables, edgeVariablesBefore // { \"slug.edge\": value }\n)=>{\n const invertedElements = {\n ...elements\n };\n // 反転する対象の取得\n const invertComponentSlugs = pickInvertTargets(edgeVariables, edgeVariablesBefore);\n // invertComponentSlugsに該当するComponentをMaterialを元に反転\n for (const { slug , reverse } of invertComponentSlugs){\n var ref;\n // elementsからvalueのslugに`slug`が含まれるvalueを取得する\n let targetKey = \"\";\n let targetElements = [];\n for (const [key, element] of Object.entries(elements)){\n const slugContainElem = element.filter((e)=>e.slug.startsWith(\"\".concat(slug, \".\")));\n if (slugContainElem && slugContainElem.length > 0) {\n targetKey = key;\n targetElements = element;\n break;\n }\n }\n // その中からmaterialId取得\n const materialId = (ref = targetElements.find((element)=>{\n var ref;\n return (ref = element.slug) === null || ref === void 0 ? void 0 : ref.endsWith(\".materialId\");\n })) === null || ref === void 0 ? void 0 : ref.value;\n // material持ってくる\n const material = materials.find((material)=>material.id === materialId);\n if (!material) continue;\n // 反転\n const inverted = invertElement(targetElements, material, slug, reverse);\n // 今回のtargetKeyを持つ要素をinvertedElementsから排除\n delete invertedElements[targetKey];\n // invertedElementsにinvertedを追加\n invertedElements[targetKey] = inverted;\n }\n return invertedElements;\n};\n// flattenElementsでedgeが0以外のものを巾高反転する\nconst invertFlattenElements = (flattenElements, materials, edgeVariables, edgeVariablesBefore // { \"slug.edge\": value }\n)=>{\n let invertedFlattenElements = [\n ...flattenElements\n ];\n // 反転する対象の取得\n const invertComponentSlugs = pickInvertTargets(edgeVariables, edgeVariablesBefore);\n // invertComponentSlugsに該当するComponentをMaterialを元に反転\n for (const { slug , reverse } of invertComponentSlugs){\n var ref;\n // 対象のelementを取得\n const elements = flattenElements.filter((element)=>{\n var ref;\n return (ref = element.slug) === null || ref === void 0 ? void 0 : ref.startsWith(slug);\n });\n // その中からmaterialId取得\n const materialId = (ref = elements.find((element)=>{\n var ref;\n return (ref = element.slug) === null || ref === void 0 ? void 0 : ref.endsWith(\".materialId\");\n })) === null || ref === void 0 ? void 0 : ref.value;\n // material持ってくる\n const material = materials.find((material)=>material.id === materialId);\n if (!material) continue;\n // 反転\n const invertedElements = invertElement(elements, material, slug, reverse);\n // 今回のslugを含むslugを持つelementをflattenElementsから削除し、invertedElementsを追加\n invertedFlattenElements = invertedFlattenElements.filter((element)=>{\n var ref;\n return !((ref = element.slug) === null || ref === void 0 ? void 0 : ref.startsWith(slug));\n });\n invertedFlattenElements.push(...invertedElements);\n }\n return invertedFlattenElements;\n};\n// 反転処理に回すべきかどうかを判定する関数\nconst pickInvertTargets = (edgeVariables, edgeVariablesBefore)=>{\n const invertComponentSlugs = Object.entries(edgeVariables).filter((param)=>{\n let [slug, value] = param;\n // まずは反転する対象のslugを抽出\n if (!slug.endsWith(\".edge\")) return false;\n var _slug;\n const beforeValue = (_slug = edgeVariablesBefore[slug]) !== null && _slug !== void 0 ? _slug : 0;\n const afterValue = typeof value === \"string\" ? parseInt(value) : value !== null && value !== void 0 ? value : 0;\n // 以前と今回で値が変わっていてどっちかが0だったらtrue(1→0 or 0→1)\n return afterValue !== beforeValue && (afterValue === 0 || beforeValue === 0);\n }).map((param)=>{\n let [slug, value] = param;\n // 抽出したものに対して0→0以外(反転)か、0以外→0(反転の反転)かの情報を付与\n const afterValue = typeof value === \"string\" ? parseInt(value) : value !== null && value !== void 0 ? value : 0;\n // 2つ目の値は反転(0→1)してたらfalse、反転の反転(1→0)だったらtrue\n const reverse = afterValue === 0;\n return {\n slug: slug.split(\".\")[0],\n reverse\n };\n });\n return invertComponentSlugs;\n};\nconst invertElement = (elements, material, slugPrefix, reverse // edgeが0->0以外(幅高反転)の時はfalse, 0以外->0(幅高反転の反転)の時はtrue\n)=>{\n let invertedElements = elements;\n // 呼び寸じゃないほう反転\n // 情報取得\n const [width, height] = pickUpElement(elements, material, false, reverse);\n // 変更前のもの持っておく\n const beforeWidth = invertedElements.find((i)=>i.slug === \"\".concat(slugPrefix, \".width\"));\n const beforeHeight = invertedElements.find((i)=>i.slug === \"\".concat(slugPrefix, \".height\"));\n if (width && height && beforeWidth && beforeHeight) {\n // 一回排除してから追加する\n invertedElements = invertedElements.filter((i)=>i.slug !== \"\".concat(slugPrefix, \".width\") && i.slug !== \"\".concat(slugPrefix, \".height\"));\n // 反転して更新\n invertedElements.push({\n ...beforeWidth,\n value: height.value,\n expr: height.expr,\n overwriteValue: height.overwriteValue\n }, {\n ...beforeHeight,\n value: width.value,\n expr: width.expr,\n overwriteValue: width.overwriteValue\n });\n }\n // 呼び寸反転\n const [widthNominal, heightNominal] = pickUpElement(elements, material, true, reverse);\n const beforeWidthNominal = invertedElements.find((i)=>i.slug === \"\".concat(slugPrefix, \".widthNominal\"));\n const beforeHeightNominal = invertedElements.find((i)=>i.slug === \"\".concat(slugPrefix, \".heightNominal\"));\n if (widthNominal && heightNominal && beforeWidthNominal && beforeHeightNominal) {\n invertedElements = invertedElements.filter((i)=>i.slug !== \"\".concat(slugPrefix, \".widthNominal\") && i.slug !== \"\".concat(slugPrefix, \".heightNominal\"));\n invertedElements.push({\n ...beforeWidthNominal,\n value: heightNominal.value,\n expr: heightNominal.expr,\n overwriteValue: heightNominal.overwriteValue\n }, {\n ...beforeHeightNominal,\n value: widthNominal.value,\n expr: widthNominal.expr,\n overwriteValue: widthNominal.overwriteValue\n });\n }\n return invertedElements;\n};\n// Element群から該当するmaterialのwidthとheightを取り出す関数(もしもElementの値が上書きされていたらそれを使う)\n// isNomialを指定すると呼び寸の方を取得する\n// reverseをtrueに指定すると元とするmaterialのwidthとheightを逆にする(反転後の反転では元とするmaterialのfieldが逆になるため)\nconst pickUpElement = (elements, material, isNominal, reverse // これをtrueにするとベースとするMaterialのwidthとheightの情報を逆にする(0→1の時はfalse)\n)=>{\n const keys = isNominal ? [\n \"widthNominal\",\n \"heightNominal\"\n ] : [\n \"width\",\n \"height\"\n ];\n const materialKeys = reverse ? keys.slice().reverse() : keys;\n const result = [];\n for (const key of keys){\n var ref;\n const materialKey = materialKeys[keys.indexOf(key)];\n let value = {\n value: ((ref = material[materialKey]) === null || ref === void 0 ? void 0 : ref.toString()) || null,\n expr: material[materialKey] ? \"= materialValue(\".concat(material[materialKey], \")\") : null,\n overwriteValue: null\n };\n if (isEditedMaterialValue(elements, key)) {\n const element = elements.find((e)=>e.slug.endsWith(\".\".concat(key)));\n if (element) {\n value = {\n value: element.value,\n expr: element.expr,\n overwriteValue: element.overwriteValue\n };\n }\n }\n result.push(value);\n }\n if (result.length !== 2) {\n return [\n null,\n null\n ];\n }\n return [\n result[0],\n result[1]\n ];\n};\n// targetとしているelementの値がmaterialから更新されたものか判定する\n// 判定基準としては、overwriteValueが存在するか\nconst isEditedMaterialValue = (elements, target)=>{\n const key = target;\n const element = elements.find((e)=>e.slug.endsWith(\".\".concat(key)));\n if (!element) return false;\n return !!element.overwriteValue;\n};\n\n\n/***/ }),\n\n/***/ 99529:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"$w\": function() { return /* binding */ addInitSubElements; },\n/* harmony export */ \"NA\": function() { return /* binding */ getValue; },\n/* harmony export */ \"PA\": function() { return /* binding */ isExpr; },\n/* harmony export */ \"Ut\": function() { return /* binding */ getMaterial; },\n/* harmony export */ \"YZ\": function() { return /* binding */ addInitElements; },\n/* harmony export */ \"nt\": function() { return /* binding */ createEmptyElements; },\n/* harmony export */ \"x3\": function() { return /* binding */ generateInitElements; }\n/* harmony export */ });\nfunction getMaterial(ms, elements) {\n const materialElement = elements.filter((e)=>e.slug.includes(\"materialId\"))[0];\n const material = ms.filter((ms)=>ms.id === materialElement.value)[0];\n if (!material) return null;\n return material;\n}\nfunction getValue(elements, slug) {\n const element = elements.filter((e)=>e.slug.includes(slug))[0];\n if (element.type === \"number\" && isNaN(Number(element.value))) {\n return 0;\n }\n return element.value;\n}\n// 初期状態のElementを作成する\n// componentの場合は\nfunction createEmptyElements(target, slug) {\n const initialElementObj = target === \"component\" ? initialComponentElementObj : initialDecorationElementObj;\n const initialElements = initialElementObj.map((e)=>({\n name: e.name,\n type: e.type,\n slug: \"\".concat(slug, \".\").concat(e.slugSuffix)\n }));\n return initialElements;\n}\n// 既存のcomponent/decorationのelementに指定したものを追加する\nfunction addInitSubElements(target, elementsStr, slug, addInfo) {\n const targetElements = JSON.parse(elementsStr);\n const initElements = createEmptyElements(target, slug);\n for (const elem of initElements){\n const slugSuffix = elem.slug.replace(\"\".concat(slug, \".\"), \"\");\n const info = addInfo.find((i)=>i.targetSlugSuffix === slugSuffix);\n if (!info) continue;\n if (!targetElements[slugSuffix]) {\n targetElements[slugSuffix] = {\n ...elem,\n value: info.initialValue\n };\n }\n }\n return JSON.stringify(targetElements);\n}\n// Area以下のComponentのElementの初期値\nconst initialComponentElementObj = [\n {\n name: \"資材\",\n type: \"string\",\n slugSuffix: \"materialId\"\n },\n {\n name: \"長さ\",\n type: \"number\",\n slugSuffix: \"length\"\n },\n {\n name: \"巾\",\n type: \"number\",\n slugSuffix: \"width\"\n },\n {\n name: \"高さ\",\n type: \"number\",\n slugSuffix: \"height\"\n },\n {\n name: \"数量\",\n type: \"number\",\n slugSuffix: \"quantity\"\n },\n {\n name: \"m2\",\n type: \"number\",\n slugSuffix: \"m2\"\n },\n {\n name: \"m3\",\n type: \"number\",\n slugSuffix: \"m3\"\n },\n {\n name: \"notes\",\n type: \"string\",\n slugSuffix: \"notes\"\n },\n {\n name: \"呼び寸長さ\",\n type: \"number\",\n slugSuffix: \"lengthNominal\"\n },\n {\n name: \"呼び寸巾\",\n type: \"number\",\n slugSuffix: \"widthNominal\"\n },\n {\n name: \"呼び寸高さ\",\n type: \"number\",\n slugSuffix: \"heightNominal\"\n },\n {\n name: \"木端方向\",\n type: \"number\",\n slugSuffix: \"edge\"\n }\n];\n// Decorations 以下のComponentのElementの初期値\nconst initialDecorationElementObj = [\n {\n name: \"資材\",\n type: \"string\",\n slugSuffix: \"materialId\"\n },\n {\n name: \"数量\",\n type: \"number\",\n slugSuffix: \"quantity\"\n }\n];\n// その値がexprかどうかの判定\nconst isExpr = (value)=>{\n // valueが数値だったら文字列に変換\n if (!isNaN(Number(value))) {\n value = String(value);\n }\n var ref;\n return (ref = value === null || value === void 0 ? void 0 : value.startsWith(\"=\")) !== null && ref !== void 0 ? ref : false;\n};\n// BomのElement以下に指定したslugを追加する(ない場合のみ追加)\n// 初期値を外部から指定できる\nconst addInitElements = (elementsStr, addInfo)=>{\n const elements = JSON.parse(elementsStr);\n for (const [name, { slug , type , initialExpr , initialValue }] of Object.entries(ELEMENT_MAPPING)){\n const info = addInfo.find((i)=>i.targetSlug === slug);\n if (!info) continue;\n if (!elements[slug]) {\n var _initialValue, ref;\n elements[slug] = {\n slug,\n name,\n type,\n value: (ref = (_initialValue = info.initialValue) !== null && _initialValue !== void 0 ? _initialValue : initialValue) !== null && ref !== void 0 ? ref : null,\n overwriteValue: null,\n expr: initialExpr,\n description: null,\n cutting: null\n };\n }\n }\n return JSON.stringify(elements);\n};\n// generateInitElements はpackageのelementの初期値を生成します\nconst generateInitElements = ()=>{\n const elements = Object.entries(ELEMENT_MAPPING).map((param)=>{\n let [name, { slug , type , initialExpr }] = param;\n return {\n name,\n slug,\n value: null,\n overwriteValue: null,\n type: type,\n cutting: null,\n description: null,\n expr: initialExpr\n };\n });\n return elements;\n};\nconst ELEMENT_MAPPING = {\n 内寸長さ: {\n slug: \"innerLength\",\n type: \"number\"\n },\n 内寸巾: {\n slug: \"innerWidth\",\n type: \"number\"\n },\n 内寸高さ: {\n slug: \"innerHeight\",\n type: \"number\"\n },\n 外寸長さ: {\n slug: \"outerLength\",\n type: \"number\"\n },\n 外寸巾: {\n slug: \"outerWidth\",\n type: \"number\"\n },\n 外寸高さ: {\n slug: \"outerHeight\",\n type: \"number\"\n },\n 製品長さ: {\n slug: \"productLength\",\n type: \"number\"\n },\n 製品巾: {\n slug: \"productWidth\",\n type: \"number\"\n },\n 製品高さ: {\n slug: \"productHeight\",\n type: \"number\"\n },\n クリアランス長さ左: {\n slug: \"clearanceLengthLeft\",\n type: \"number\"\n },\n クリアランス長さ右: {\n slug: \"clearanceLengthRight\",\n type: \"number\"\n },\n クリアランス巾左: {\n slug: \"clearanceWidthLeft\",\n type: \"number\"\n },\n クリアランス巾右: {\n slug: \"clearanceWidthRight\",\n type: \"number\"\n },\n クリアランス無負荷材上: {\n slug: \"clearanceHeightTop\",\n type: \"number\"\n },\n クリアランスハリ下: {\n slug: \"clearanceHeightTopUnderBeam\",\n type: \"number\"\n },\n クリアランス天井下: {\n slug: \"clearanceHeightBottom\",\n type: \"number\"\n },\n 上下クリアランス: {\n slug: \"verticalClearance\",\n type: \"number\"\n },\n m3: {\n slug: \"m3\",\n type: \"number\"\n },\n NW: {\n slug: \"NW\",\n type: \"number\"\n },\n 風袋重量: {\n slug: \"tareWeight\",\n type: \"number\",\n initialExpr: \"= Math.ceil( @[panelM2](panelM2) * 5.5 + @[woodM3](woodM3) * 550 )\"\n },\n 符号計算用外寸巾: {\n slug: \"signCalcOuterWidth\",\n type: \"number\",\n initialExpr: \"= @[内寸巾](innerWidth) + 150\"\n },\n Z1402用側桟長さ: {\n slug: \"Z1402SideBattenLength\",\n type: \"number\",\n initialExpr: \"= @[側桟長さ](sideBattenLength)\"\n },\n 側支柱の中心間隔: {\n slug: \"sideStrutsCenterSpace\",\n type: \"number\",\n initialExpr: \"= if( 側板巾 >= 1230 ){ 1230 } else { 側板巾 }\"\n },\n Z1402組合せ符号: {\n slug: \"Z1402CombinationSign\",\n type: \"number\",\n initialExpr: // 引数の順番はConfluence(https://pax-cloud.atlassian.net/wiki/spaces/PAXDOC/pages/62029825/JIS)と違ってややこしいが、Z1410と合わせた形にしている\n \"= Z1402calcCombinationSign( @[側支柱の中心間隔](sideStrutsCenterSpace) , @[符号計算用外寸巾](signCalcOuterWidth) , @[Z1402用側桟長さ](Z1402SideBattenLength) )\"\n },\n Z1403組合せ符号: {\n slug: \"Z1403CombinationSign\",\n type: \"number\",\n initialExpr: \"= Z1403calcCombinationSign( @[NW](NW) , @[側支柱の中心間隔](sideStrutsCenterSpace) , @[符号計算用外寸巾](signCalcOuterWidth) , @[内寸高さ](innerHeight) )\"\n },\n \"Z1410(レベルⅠ)組合せ符号\": {\n slug: \"Z1410Level1CombinationSign\",\n type: \"number\",\n initialExpr: \"= Z1410Level1calcCombinationSign( @[NW](NW) , @[側支柱の中心間隔](sideStrutsCenterSpace) , @[符号計算用外寸巾](signCalcOuterWidth) , @[内寸高さ](innerHeight) )\"\n },\n \"Z1410(レベルⅡ)組合せ符号\": {\n slug: \"Z1410Level2CombinationSign\",\n type: \"number\",\n initialExpr: \"= Z1410Level2calcCombinationSign( @[NW](NW) , @[側支柱の中心間隔](sideStrutsCenterSpace) , @[符号計算用外寸巾](signCalcOuterWidth) , @[内寸高さ](innerHeight) )\"\n },\n \"Z1410(レベルⅢ)組合せ符号\": {\n slug: \"Z1410Level3CombinationSign\",\n type: \"number\",\n initialExpr: \"= Z1410Level3calcCombinationSign( @[NW](NW) , @[側支柱の中心間隔](sideStrutsCenterSpace) , @[符号計算用外寸巾](signCalcOuterWidth) , @[内寸高さ](innerHeight) )\"\n },\n \"Z1410(レベルⅣ)組合せ符号\": {\n slug: \"Z1410Level4CombinationSign\",\n type: \"number\",\n initialExpr: \"= Z1410Level4calcCombinationSign( @[NW](NW) , @[側支柱の中心間隔](sideStrutsCenterSpace) , @[符号計算用外寸巾](signCalcOuterWidth) , @[内寸高さ](innerHeight) )\"\n },\n はり受け材質: {\n slug: \"beamSupportSpeciesId\",\n type: \"string\"\n },\n はり材質: {\n slug: \"beamSpeciesId\",\n type: \"string\"\n },\n はりの中心間隔: {\n slug: \"beamCenterSpace\",\n type: \"number\"\n },\n はりの長さ: {\n slug: \"beamLength\",\n type: \"number\"\n },\n 天井荷重: {\n slug: \"ceilingLoad\",\n type: \"number\"\n },\n 枠組み部材選定表: {\n slug: \"frameComponentSelectionTable\",\n type: \"string\"\n },\n 組立: {\n slug: \"assembly\",\n type: \"string\"\n },\n JISはり受け部材: {\n slug: \"JISBeamSupportMaterial\",\n type: \"string\",\n initialExpr: \"= JISBeamSupportMaterial( @[天井荷重](ceilingLoad) , @[はりの長さ](beamLength) , @[側支柱の中心間隔](sideStrutsCenterSpace) , @[はり受け材質](beamSupportSpeciesId), mainSpeciesId, mainSpeciesEdgeMPa, materials, species )\"\n },\n JISはり部材: {\n slug: \"JISBeamMaterial\",\n type: \"string\",\n initialExpr: \"= JISBeamMaterial( @[天井荷重](ceilingLoad) , @[はりの長さ](beamLength) , @[はりの中心間隔](beamCenterSpace) , @[はり材質](beamSpeciesId), mainSpeciesId, mainSpeciesEdgeMPa, mainSpeciesFaceMPa, materials, species )\"\n },\n はり方向: {\n slug: \"JISBeamEdge\",\n type: \"string\",\n initialExpr: \"= JISBeamEdge( @[天井荷重](ceilingLoad) , @[はりの長さ](beamLength) , @[はりの中心間隔](beamCenterSpace) , @[はり材質](beamSpeciesId), mainSpeciesId, mainSpeciesEdgeMPa, mainSpeciesFaceMPa, materials, species )\"\n },\n 負荷床材許容曲げ強さ: {\n slug: \"flooringMPa\",\n type: \"number\"\n },\n 負荷床材支点間の距離: {\n slug: \"flooringLength\",\n type: \"number\"\n },\n 負荷床材スパン1: {\n slug: \"flooringSpan1\",\n type: \"number\"\n },\n 負荷床材スパン2: {\n slug: \"flooringSpan2\",\n type: \"number\"\n },\n 負荷床材巾: {\n slug: \"flooringWidth\",\n type: \"number\"\n },\n 負荷床材高さ: {\n slug: \"flooringHeight\",\n type: \"number\"\n },\n 負荷床材本数: {\n slug: \"flooringNum\",\n type: \"number\"\n },\n その他原価: {\n slug: \"otherCost\",\n type: \"number\"\n }\n};\n\n\n/***/ }),\n\n/***/ 51404:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"VS\": function() { return /* binding */ extractComponentsElements; },\n/* harmony export */ \"sI\": function() { return /* binding */ extractElementValue; },\n/* harmony export */ \"x4\": function() { return /* binding */ extractProductElements; },\n/* harmony export */ \"yJ\": function() { return /* binding */ extractDecorationsElements; }\n/* harmony export */ });\nconst extractProductElements = (p)=>{\n var ref;\n if (!p) return {};\n return (ref = p.elements) === null || ref === void 0 ? void 0 : ref.reduce((r, c)=>{\n r[c.slug] = c;\n return r;\n }, {});\n};\nconst extractComponentsElements = (cps)=>{\n if (!cps) return {};\n const results = {};\n cps === null || cps === void 0 ? void 0 : cps.forEach((component)=>{\n const elements = component.elements;\n results[component.id] = elements.reduce((r, c)=>{\n r[c.slug] = c;\n return r;\n }, {});\n });\n return results;\n};\nconst extractDecorationsElements = (deco)=>{\n if (!deco) return {};\n const results = {};\n deco === null || deco === void 0 ? void 0 : deco.forEach((d)=>{\n const elements = d.elements;\n results[d.id] = elements.reduce((r, c)=>{\n r[c.slug] = c;\n return r;\n }, {});\n });\n return results;\n};\nconst extractElementValue = (elements, targetSlug)=>{\n if (elements === null) return {};\n return elements.reduce((result, e)=>{\n let slug = e.slug;\n if (slug.includes(\".\")) {\n slug = slug.split(\".\")[1];\n }\n if (slug === targetSlug) result = parseFloat(e.value || \"0\");\n return result;\n }, 0);\n};\n\n\n/***/ }),\n\n/***/ 49305:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"Pz\": function() { return /* reexport */ Calculate; },\n \"C2\": function() { return /* reexport */ getStyle; },\n \"XX\": function() { return /* reexport */ parse/* parseBom */.X; },\n \"mC\": function() { return /* reexport */ update/* updateArbitraryPackageBomElement */.mC; },\n \"Z1\": function() { return /* reexport */ update/* updateArbitraryProductBomElement */.Z1; },\n \"Wc\": function() { return /* reexport */ update/* updateBom */.Wc; },\n \"rh\": function() { return /* reexport */ update/* updateBomElements */.rh; }\n});\n\n// UNUSED EXPORTS: Centralization, EqualDistribution, Partial, TwoPointsConcentrated, makeUpdataleBom\n\n// EXTERNAL MODULE: ./src/utils/bom/update.ts\nvar update = __webpack_require__(49234);\n;// CONCATENATED MODULE: ./src/utils/bom/style.ts\nconst getStyle = (e)=>{\n if (!e) return \"\";\n if (e.overwriteValue && e.overwriteValue !== e.value) {\n return \"w-full text-yellow-500\";\n }\n if (e.expr) {\n return \"w-full text-green-500\";\n }\n return \"\";\n};\n\n// EXTERNAL MODULE: ./src/utils/bom/parse.ts\nvar parse = __webpack_require__(33873);\n;// CONCATENATED MODULE: ./src/utils/bom/calculateStrength.tsx\n// 等分布荷重\nconst EqualDistribution = (fb, l, l1, l2, b, h)=>{\n if (!l) {\n return 0;\n }\n return 4 * b * h ** 2 * fb / (3 * l);\n};\n// 中央集中荷重\nconst Centralization = (fb, l, l1, l2, b, h)=>{\n if (!l) {\n return 0;\n }\n return 2 * b * h ** 2 * fb / (3 * l);\n};\n// 偏荷重(集中)\nconst Partial = (fb, l, l1, l2, b, h)=>{\n if (!l1 || !l2 || l1 <= l2) {\n return 0;\n }\n return b * h ** 2 * l * fb / (6 * l1 * l2);\n};\n// 2点集中荷重\nconst TwoPointsConcentrated = (fb, l, l1, l2, b, h)=>{\n if (!l1 || !l2 || l1 < l2) {\n return 0;\n }\n // 等分布荷重で計算した結果の2.5倍までを許容し、それより大きい場合は等分布荷重の2.5倍を返す\n const equal = EqualDistribution(fb, l, l1, l2, b, h) * 2.5; // 等分布\n const twoPoint = b * h ** 2 * l * fb / (3 * (l - l1 + l2) * l1); // 2点集中\n return equal < twoPoint ? equal : twoPoint;\n};\nconst Calculate = {\n EqualDistribution: EqualDistribution,\n Centralization: Centralization,\n Partial: Partial,\n TwoPointsConcentrated: TwoPointsConcentrated\n};\n\n;// CONCATENATED MODULE: ./src/utils/bom/index.ts\n\n\n\n\n\n\n/***/ }),\n\n/***/ 38650:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"$h\": function() { return /* binding */ updateProductBom; },\n/* harmony export */ \"G$\": function() { return /* binding */ getProductBomByProductId; },\n/* harmony export */ \"pu\": function() { return /* binding */ updatePackageBom; }\n/* harmony export */ });\n/* harmony import */ var aws_amplify__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10552);\n/* harmony import */ var graphql_queries__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(18490);\n/* harmony import */ var graphql_mutations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23765);\n\n\n\nconst getProductBomByProductId = async function(id) {\n let fromQuoteLine = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;\n let bom;\n try {\n bom = (await aws_amplify__WEBPACK_IMPORTED_MODULE_0__/* .API.graphql */ .b.graphql({\n query: graphql_queries__WEBPACK_IMPORTED_MODULE_1__.getProductBom,\n variables: {\n input: {\n productId: id,\n fromQuoteLine\n }\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n })).data.getProductBom;\n } catch (err) {\n // quoteProduct削除(見積梱包初期化後)に、時差で取得できないエラーが発生する\n // そのためmessageにProduct not foundの文字列があったら無視してnullを返す\n if (err instanceof Error) {\n if (err.message.includes(\"Product not found\")) return null;\n }\n // その他のエラーはthrow\n throw err;\n }\n return bom;\n};\nconst updateProductBom = async (input)=>{\n const product = (await aws_amplify__WEBPACK_IMPORTED_MODULE_0__/* .API.graphql */ .b.graphql({\n query: graphql_mutations__WEBPACK_IMPORTED_MODULE_2__.updateProductBom,\n variables: {\n input\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n })).data.updateProductBom;\n return product;\n};\nconst updatePackageBom = async (input)=>{\n const product = (await aws_amplify__WEBPACK_IMPORTED_MODULE_0__/* .API.graphql */ .b.graphql({\n query: graphql_mutations__WEBPACK_IMPORTED_MODULE_2__.updatePackageBom,\n variables: {\n input\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n })).data.updatePackageBom;\n return product;\n};\n\n\n/***/ }),\n\n/***/ 33873:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"A\": function() { return /* binding */ makeUpdataleBom; },\n/* harmony export */ \"X\": function() { return /* binding */ parseBom; }\n/* harmony export */ });\nfunction parseBom(data) {\n var ref, ref1, ref2;\n if (!data) return undefined;\n var ref3, ref4;\n const bom = {\n product: {\n ...data.product,\n elements: JSON.parse((ref = data.product) === null || ref === void 0 ? void 0 : ref.elements)\n },\n components: data.components.map((component)=>({\n ...component,\n elements: JSON.parse(component.elements)\n })),\n interiors: (ref3 = (ref1 = data.interiors) === null || ref1 === void 0 ? void 0 : ref1.map((interior)=>({\n ...interior,\n elements: JSON.parse(interior.elements)\n }))) !== null && ref3 !== void 0 ? ref3 : [],\n exteriors: (ref4 = (ref2 = data.exteriors) === null || ref2 === void 0 ? void 0 : ref2.map((exterior)=>({\n ...exterior,\n elements: JSON.parse(exterior.elements)\n }))) !== null && ref4 !== void 0 ? ref4 : []\n };\n return bom;\n}\n// useBomで取得できるbomをupdateに流し込める形式に変換する\n// getProductBomで取得したbomを流し込みたい場合はparseBomの結果を入れてください\nfunction makeUpdataleBom(bom) {\n var ref, ref1, ref2, ref3;\n var ref4, ref5, ref6;\n const updatableBom = {\n product: {\n ...bom === null || bom === void 0 ? void 0 : bom.product,\n elements: Object.values((ref4 = bom === null || bom === void 0 ? void 0 : (ref = bom.product) === null || ref === void 0 ? void 0 : ref.elements) !== null && ref4 !== void 0 ? ref4 : {})\n },\n components: bom === null || bom === void 0 ? void 0 : (ref1 = bom.components) === null || ref1 === void 0 ? void 0 : ref1.map((component)=>({\n ...component,\n elements: Object.values(component.elements)\n })),\n decorations: [\n ...(ref5 = bom === null || bom === void 0 ? void 0 : (ref2 = bom.interiors) === null || ref2 === void 0 ? void 0 : ref2.map((interior)=>({\n ...interior,\n elements: Object.values(interior.elements)\n }))) !== null && ref5 !== void 0 ? ref5 : [],\n ...(ref6 = bom === null || bom === void 0 ? void 0 : (ref3 = bom.exteriors) === null || ref3 === void 0 ? void 0 : ref3.map((exterior)=>({\n ...exterior,\n elements: Object.values(exterior.elements)\n }))) !== null && ref6 !== void 0 ? ref6 : []\n ]\n };\n return updatableBom;\n}\n\n\n/***/ }),\n\n/***/ 49234:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Wc\": function() { return /* binding */ updateBom; },\n/* harmony export */ \"Z1\": function() { return /* binding */ updateArbitraryProductBomElement; },\n/* harmony export */ \"mC\": function() { return /* binding */ updateArbitraryPackageBomElement; },\n/* harmony export */ \"rh\": function() { return /* binding */ updateBomElements; }\n/* harmony export */ });\n/* harmony import */ var _extract__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(51404);\n/* harmony import */ var _calculate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(32379);\n/* harmony import */ var _parse__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33873);\n/* harmony import */ var _elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(99529);\n/* harmony import */ var _operation__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(38650);\n/* harmony import */ var utils_product__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41491);\n/* harmony import */ var utils_packageBom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(80491);\n/* harmony import */ var utils_package__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(70314);\n\n\n\n\n\n\n\n\n//input UpdateProductBomInput {\n//product: UpdateBomInput\n//components: [UpdateBomInput]\n//decorations: [UpdateBomInput]\n//}\n//\nfunction updateElements(elements, inputs) {\n // return as is when no input\n if (!elements || !inputs) return Object.values(elements);\n // get slugs\n const inputKeys = Object.keys(inputs).filter((i)=>i !== \"id\");\n return Object.keys(elements).reduce((result, key)=>{\n const element = elements[key];\n // return as is for other elements\n if (!inputKeys.includes(key)) return [\n ...result,\n element\n ];\n // 入力がexprの場合\n if ((0,_elements__WEBPACK_IMPORTED_MODULE_1__/* .isExpr */ .PA)(inputs[key])) {\n // expr更新して次へ\n result.push({\n ...element,\n expr: inputs[key],\n overwriteValue: null\n });\n return result;\n }\n // initiate element\n let overwriteValue = null;\n if (element.expr && inputs[key] !== null) {\n if (element.value === null) {\n // PAX-588 元々の数式がnullの場合、入力値を採用\n overwriteValue = 0; // PAX-588 フォント色がyellowにするため0に設定\n } else if (inputs[key] == element.value) {\n // 入力と元の値が同じなら上書きしない(set→update時にoverwriteValueまで上書きされるため)\n // ==で比較しているのは、入力値が文字列で元の値が数値の場合があるため\n overwriteValue = element.overwriteValue;\n } else {\n overwriteValue = element.value;\n }\n }\n const field = {\n value: inputs[key],\n overwriteValue: overwriteValue\n };\n if (inputKeys.includes(key)) result.push({\n ...element,\n ...field\n });\n return result;\n }, []);\n}\n// add cost elements to components\nconst calculateComponentCost = (elements, materials)=>{\n const material = (0,_elements__WEBPACK_IMPORTED_MODULE_1__/* .getMaterial */ .Ut)(materials, elements);\n if (!material) return elements;\n const slug = elements[0].slug.split(\".\")[0];\n const quantity = parseFloat((0,_elements__WEBPACK_IMPORTED_MODULE_1__/* .getValue */ .NA)(elements, \"quantity\"));\n let amount = quantity;\n const m2 = parseFloat((0,_elements__WEBPACK_IMPORTED_MODULE_1__/* .getValue */ .NA)(elements, \"m2\"));\n const m3 = parseFloat((0,_elements__WEBPACK_IMPORTED_MODULE_1__/* .getValue */ .NA)(elements, \"m3\"));\n if (material.unit === \"m2\") amount = m2;\n if (material.unit === \"m3\") amount = m3;\n const totalCost = (material.defaultUnitCost || 0) * (amount * (1 + (material.lossRate || 0)));\n // elementsにすでに${slug}.totalCost, ${slug}.unitCost, ${slug}.lossRateがある場合は上書き\n const newElements = elements.filter((el)=>![\n \"\".concat(slug, \".totalCost\"),\n \"\".concat(slug, \".unitCost\"),\n \"\".concat(slug, \".lossRate\")\n ].includes(el.slug));\n return [\n ...newElements,\n {\n slug: \"\".concat(slug, \".totalCost\"),\n name: \"原価合計\",\n type: \"number\",\n value: totalCost.toFixed(0)\n },\n {\n slug: \"\".concat(slug, \".unitCost\"),\n name: \"原価\",\n type: \"number\",\n value: material.defaultUnitCost\n },\n {\n slug: \"\".concat(slug, \".lossRate\"),\n name: \"ロス率\",\n type: \"number\",\n value: material.lossRate\n }\n ];\n};\nconst updateComponentElements = (id, components, materials, inputs)=>{\n if (!components) return [];\n // return updated elements for specific component\n const component = components.filter((c)=>c.id === id)[0];\n if (!component || !component.elements) return [];\n let updatedComponentElements;\n if (!inputs) updatedComponentElements = Object.values(component.elements);\n if (!!inputs) updatedComponentElements = updateElements(component.elements, inputs);\n updatedComponentElements = calculateComponentCost(updatedComponentElements, materials);\n return updatedComponentElements;\n};\n// add cost elements to decorations\nconst calculateDecorationCost = (elements, materials)=>{\n const material = (0,_elements__WEBPACK_IMPORTED_MODULE_1__/* .getMaterial */ .Ut)(materials, elements);\n if (!material) return elements;\n const slug = elements[0].slug.split(\".\")[0];\n const quantity = parseFloat((0,_elements__WEBPACK_IMPORTED_MODULE_1__/* .getValue */ .NA)(elements, \"quantity\"));\n const amount = quantity;\n const totalCost = (material.defaultUnitCost || 0) * (amount * (1 + (material.lossRate || 0)));\n return [\n ...elements,\n {\n slug: \"\".concat(slug, \".totalCost\"),\n name: \"原価合計\",\n type: \"number\",\n value: totalCost.toFixed(0)\n },\n {\n slug: \"\".concat(slug, \".unitCost\"),\n name: \"原価\",\n type: \"number\",\n value: material.defaultUnitCost\n },\n {\n slug: \"\".concat(slug, \".lossRate\"),\n name: \"ロス率\",\n type: \"number\",\n value: material.lossRate\n }\n ];\n};\nconst updateDecorationElements = (id, interiors, exteriors, materials, inputs)=>{\n if (!interiors || !exteriors) return [];\n // return updated elements for specific decoration\n const decorations = [\n ...interiors,\n ...exteriors\n ];\n const decoration = decorations.filter((c)=>c.id === id)[0];\n if (!decoration || !decoration.elements) return [];\n let updatedDecorationElements;\n if (!inputs) updatedDecorationElements = Object.values(decoration.elements);\n if (!!inputs) updatedDecorationElements = updateElements(decoration.elements, inputs);\n updatedDecorationElements = calculateDecorationCost(updatedDecorationElements, materials);\n return updatedDecorationElements;\n};\nfunction updateBomElements(rawData, inputs, materials, species, group) {\n var ref, ref1, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9, ref10, ref11;\n const data = (0,_parse__WEBPACK_IMPORTED_MODULE_4__/* .parseBom */ .X)(rawData);\n if (!rawData || !data) return {\n updatedBom: undefined,\n updatableBom: undefined\n };\n // rawDataはBom型ではない\n const updatedBom = rawData;\n const updatableBom = {\n product: undefined,\n components: [],\n decorations: []\n };\n // update product elements if inputs.id is equal to product.id\n const runUpdateProductElements = inputs.id && ((ref = data.product) === null || ref === void 0 ? void 0 : ref.id) && inputs.id === data.product.id;\n if (runUpdateProductElements) {\n var ref12;\n // updateする場合はupdateElementsを呼んでUpdateする\n Object.assign(updatableBom, {\n product: {\n id: inputs.id,\n elements: updateElements((ref12 = data.product) === null || ref12 === void 0 ? void 0 : ref12.elements, inputs)\n }\n });\n } else {\n var ref13, ref14;\n // updateしない場合は更新を空振りさせる\n Object.assign(updatableBom, {\n product: {\n id: (ref13 = data.product) === null || ref13 === void 0 ? void 0 : ref13.id,\n elements: updateElements((ref14 = data.product) === null || ref14 === void 0 ? void 0 : ref14.elements, {\n id: inputs.id\n })\n }\n });\n }\n // update component elements\n updatableBom.components = (ref1 = data.components) === null || ref1 === void 0 ? void 0 : ref1.map((component)=>{\n if (inputs.id === component.id) return {\n id: component.id,\n elements: updateComponentElements(component.id, data.components, materials, inputs)\n };\n return {\n id: component.id,\n elements: updateComponentElements(component.id, data.components, materials)\n };\n });\n // update interior elements\n const interiors = (ref2 = data.interiors) === null || ref2 === void 0 ? void 0 : ref2.map((int)=>{\n if (inputs.id === int.id) {\n return {\n id: inputs.id,\n elements: updateDecorationElements(int.id, data.interiors, data.exteriors, materials, inputs)\n };\n }\n return {\n id: int.id,\n elements: updateDecorationElements(int.id, data.interiors, data.exteriors, materials)\n };\n });\n // update exterior elements\n const exteriors = (ref3 = data.exteriors) === null || ref3 === void 0 ? void 0 : ref3.map((ext)=>{\n if (inputs.id === ext.id) {\n return {\n id: inputs.id,\n elements: updateDecorationElements(ext.id, data.interiors, data.exteriors, materials, inputs)\n };\n }\n return {\n id: ext.id,\n elements: updateDecorationElements(ext.id, data.interiors, data.exteriors, materials)\n };\n });\n let pkg = undefined;\n let cmp = [];\n let int = [];\n let ext = [];\n const pkgElements = (0,_extract__WEBPACK_IMPORTED_MODULE_5__/* .extractProductElements */ .x4)(updatableBom.product);\n const cmpElements = (0,_extract__WEBPACK_IMPORTED_MODULE_5__/* .extractComponentsElements */ .VS)(updatableBom.components);\n const interiorElements = (0,_extract__WEBPACK_IMPORTED_MODULE_5__/* .extractDecorationsElements */ .yJ)(interiors);\n const exteriorElements = (0,_extract__WEBPACK_IMPORTED_MODULE_5__/* .extractDecorationsElements */ .yJ)(exteriors);\n var ref15, ref16, ref17;\n (0,_calculate__WEBPACK_IMPORTED_MODULE_0__/* .calculateElements */ .Ox)(pkgElements, cmpElements, (newPkg)=>{\n pkg = Object.values(newPkg);\n }, (newCmp)=>{\n cmp = Object.entries(newCmp).map((param)=>{\n let [id, el] = param;\n return {\n id,\n elements: Object.values(el)\n };\n });\n }, materials, interiorElements, exteriorElements, (newInt)=>{\n int = Object.entries(newInt).map((param)=>{\n let [id, el] = param;\n return {\n id,\n elements: Object.values(el)\n };\n });\n }, (newExt)=>{\n ext = Object.entries(newExt).map((param)=>{\n let [id, el] = param;\n return {\n id,\n elements: Object.values(el)\n };\n });\n }, data, species, (ref15 = group === null || group === void 0 ? void 0 : group.mainSpeciesId) !== null && ref15 !== void 0 ? ref15 : \"\", (ref16 = group === null || group === void 0 ? void 0 : group.mainSpeciesEdgeMPa) !== null && ref16 !== void 0 ? ref16 : \"\", (ref17 = group === null || group === void 0 ? void 0 : group.mainSpeciesFaceMPa) !== null && ref17 !== void 0 ? ref17 : \"\");\n // productのpanelM2とwoodM3を計算する\n if (cmp && updatableBom.product) {\n updatableBom.product.woodM3 = (0,_calculate__WEBPACK_IMPORTED_MODULE_0__/* .calculateWoodM3 */ .k3)(cmp);\n updatableBom.product.panelM2 = (0,_calculate__WEBPACK_IMPORTED_MODULE_0__/* .calculatePanelM2 */ .g)(cmp);\n }\n var ref18, ref19;\n updatableBom.product = {\n id: (ref4 = data.product) === null || ref4 === void 0 ? void 0 : ref4.id,\n panelM2: (ref5 = updatableBom.product) === null || ref5 === void 0 ? void 0 : ref5.panelM2,\n woodM3: (ref6 = updatableBom.product) === null || ref6 === void 0 ? void 0 : ref6.woodM3,\n grossWeight: (0,_calculate__WEBPACK_IMPORTED_MODULE_0__/* .calculateGW */ .WF)(pkg, (ref19 = parseFloat((ref18 = (ref7 = pkg.find((p)=>p.slug === \"tareWeight\")) === null || ref7 === void 0 ? void 0 : ref7.value) !== null && ref18 !== void 0 ? ref18 : \"0\")) !== null && ref19 !== void 0 ? ref19 : 0),\n elements: pkg\n };\n // materialIdなど更新した後でtotalCostの再計算必要なので再計算実施\n updatableBom.components = cmp.map((component)=>{\n return {\n id: component.id,\n elements: updateComponentElements(component.id, cmp, materials)\n };\n });\n const updatableInt = int.map((i)=>{\n return {\n id: i.id,\n elements: updateDecorationElements(i.id, int, ext, materials)\n };\n });\n const updatableExt = ext.map((e)=>{\n return {\n id: e.id,\n elements: updateDecorationElements(e.id, int, ext, materials)\n };\n });\n updatableBom.decorations = [\n ...updatableInt,\n ...updatableExt\n ];\n // updatableBomをもとにupdatedBomを更新\n // まずはproduct.elementsを更新(updatableBomのproduct以下は全て情報があるのでそのままでOK)\n const newProductElements = (ref8 = updatableBom.product) === null || ref8 === void 0 ? void 0 : (ref9 = ref8.elements) === null || ref9 === void 0 ? void 0 : ref9.reduce((result, element)=>{\n result[element.slug] = element;\n return result;\n }, {});\n updatedBom.product.elements = JSON.stringify(newProductElements);\n updatedBom.product.panelM2 = updatableBom.product.panelM2;\n updatedBom.product.woodM3 = updatableBom.product.woodM3;\n updatedBom.product.grossWeight = updatableBom.product.grossWeight;\n // 次にcomponents.elementsを更新(updatableBomのcomponents以下はelementsしかないので注意)\n const newComponents = updatedBom.components.map((c)=>{\n var ref, ref1;\n const componentToUpdate = (ref = updatableBom.components) === null || ref === void 0 ? void 0 : ref.filter((component)=>component.id === c.id)[0];\n const newElements = componentToUpdate === null || componentToUpdate === void 0 ? void 0 : (ref1 = componentToUpdate.elements) === null || ref1 === void 0 ? void 0 : ref1.reduce((result, element)=>{\n // slugに.が含まれていたら.以降\n let slug = element.slug;\n if (element.slug.includes(\".\")) slug = element.slug.split(\".\")[1];\n result[slug] = element;\n return result;\n }, {});\n return {\n ...c,\n elements: JSON.stringify(newElements)\n };\n });\n updatedBom.components = newComponents;\n // interiorとexteriorについても同様\n const newInt = (ref10 = updatedBom.interiors) === null || ref10 === void 0 ? void 0 : ref10.map((interior)=>{\n const intToUpdate = updatableInt.filter((i)=>{\n return i.id === interior.id;\n })[0];\n const newElements = intToUpdate === null || intToUpdate === void 0 ? void 0 : intToUpdate.elements.reduce((result, element)=>{\n // slugに.が含まれていたら.以降\n let slug = element.slug;\n if (element.slug.includes(\".\")) slug = element.slug.split(\".\")[1];\n result[slug] = element;\n return result;\n }, {});\n return {\n ...interior,\n elements: JSON.stringify(newElements)\n };\n });\n const newExt = (ref11 = updatedBom.exteriors) === null || ref11 === void 0 ? void 0 : ref11.map((exterior)=>{\n const extToUpdate = updatableExt.filter((e)=>{\n return e.id === exterior.id;\n })[0];\n const newElements = extToUpdate === null || extToUpdate === void 0 ? void 0 : extToUpdate.elements.reduce((result, element)=>{\n // slugに.が含まれていたら.以降\n let slug = element.slug;\n if (element.slug.includes(\".\")) slug = element.slug.split(\".\")[1];\n result[slug] = element;\n return result;\n }, {});\n return {\n ...exterior,\n elements: JSON.stringify(newElements)\n };\n });\n updatedBom.exteriors = newExt;\n updatedBom.interiors = newInt;\n // 原価計算\n const info = (0,_calculate__WEBPACK_IMPORTED_MODULE_0__/* .calculateProductCost */ .tv)(updatedBom.product, (0,_parse__WEBPACK_IMPORTED_MODULE_4__/* .parseBom */ .X)(updatedBom), materials);\n const wood = info.woodenTotal;\n const normalWood = info.normalWoodTotal;\n const lvl = info.lvlTotal;\n const plywood = info.plywoodTotal;\n const interior = info.interiorTotal;\n const exterior = info.exteriorTotal;\n const total = info.totalCost;\n const m3 = info.m3Cost;\n updatedBom.product.woodCost = wood;\n updatedBom.product.normalWoodCost = normalWood;\n updatedBom.product.lvlCost = lvl;\n updatedBom.product.panelCost = plywood;\n updatedBom.product.interiorCost = interior;\n updatedBom.product.exteriorCost = exterior;\n updatedBom.product.totalCost = total;\n updatedBom.product.m3Cost = m3;\n if (updatableBom.product) {\n updatableBom.product.woodCost = wood;\n updatableBom.product.normalWoodCost = normalWood;\n updatableBom.product.lvlCost = lvl;\n updatableBom.product.panelCost = plywood;\n updatableBom.product.interiorCost = interior;\n updatableBom.product.exteriorCost = exterior;\n updatableBom.product.totalCost = total;\n updatableBom.product.m3Cost = m3;\n }\n return {\n updatedBom,\n updatableBom\n };\n}\nfunction updateBom(rawData, inputs, type) {\n if (!rawData) return {\n updatedBom: undefined,\n updatableBom: undefined\n };\n const updatedBom = rawData;\n const updatableBom = {\n product: undefined,\n components: [],\n decorations: []\n };\n if (type === \"product\") {\n Object.assign(updatableBom, {\n product: inputs\n });\n updatedBom.product = {\n ...updatedBom.product,\n ...inputs\n };\n }\n if (type === \"component\") {\n var ref;\n (ref = updatableBom.components) === null || ref === void 0 ? void 0 : ref.push(inputs);\n if (updatedBom.components) {\n // areaIdが一致するcomponentは複数あるので、この形式\n const targets = getIndex(updatedBom.components, inputs.id, true);\n targets.forEach((target)=>{\n // areaIdの更新の場合は対象componentのareaNameとareaOrderも更新する\n let updateObj = {};\n if (inputs.areaId) {\n var ref;\n const areaId = inputs.areaId;\n const comp = (ref = updatedBom.components) === null || ref === void 0 ? void 0 : ref.filter((c)=>c.areaId === areaId)[0];\n if (!comp) return;\n updateObj = {\n areaName: comp.areaName,\n areaOrder: comp.areaOrder\n };\n }\n if (updatedBom.components === undefined) return;\n let component = updatedBom.components[target];\n const componentId = component.id;\n if (!component) return;\n component = {\n ...component,\n ...inputs,\n id: componentId,\n ...updateObj\n };\n updatedBom.components[target] = component;\n });\n }\n }\n if (type === \"decoration\") {\n var ref1;\n (ref1 = updatableBom.decorations) === null || ref1 === void 0 ? void 0 : ref1.push(inputs);\n if (updatedBom.interiors) {\n let target = updatedBom.interiors[getIndex(updatedBom.interiors, inputs.id)[0]];\n target = {\n ...target,\n ...inputs\n };\n updatedBom.interiors[getIndex(updatedBom.interiors, inputs.id)[0]] = target;\n }\n if (updatedBom.exteriors) {\n let target1 = updatedBom.exteriors[getIndex(updatedBom.exteriors, inputs.id)[0]];\n target1 = {\n ...target1,\n ...inputs\n };\n updatedBom.exteriors[getIndex(updatedBom.exteriors, inputs.id)[0]] = target1;\n }\n }\n return {\n updatedBom,\n updatableBom\n };\n}\n// 対象となるcomponent(interiorやcomponents以下のcomponent)のindexを返す\n// componentId(なくてincludeAreaの指定があればareaIdも)が一致するものを探す(複数返ってくる場合もある)\nfunction getIndex(arr, id) {\n let includeArea = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;\n const idx = [];\n arr.forEach((a, i)=>{\n if (a.id === id || includeArea && a.areaId && a.areaId === id) idx.push(i);\n });\n return idx;\n}\n// 任意のproductBomのElementを更新する関数\nasync function updateArbitraryProductBomElement(productId, input, materials, species, group) {\n let ignoreCase = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : false;\n var ref;\n // 対象のproductBomとproductを持ってくる\n const [bom, product] = await Promise.all([\n (0,_operation__WEBPACK_IMPORTED_MODULE_6__/* .getProductBomByProductId */ .G$)(productId),\n (0,utils_product__WEBPACK_IMPORTED_MODULE_2__/* .getProductById */ .gk)(productId)\n ]);\n // Elementを再計算\n const { updatableBom } = updateBomElements(bom !== null && bom !== void 0 ? bom : undefined, {\n ...input,\n id: productId\n }, materials, species, group);\n // caseの更新データ作成\n const newProduct = {\n ...product,\n elements: updatableBom === null || updatableBom === void 0 ? void 0 : (ref = updatableBom.product) === null || ref === void 0 ? void 0 : ref.elements\n };\n const newCsInput = (0,utils_product__WEBPACK_IMPORTED_MODULE_2__/* .getUpdatedCaseInputByProductElements */ .BI)(newProduct);\n if (newCsInput !== null && !ignoreCase) {\n // case更新\n await (0,utils_product__WEBPACK_IMPORTED_MODULE_2__/* .updateProduct */ .nM)({\n id: productId,\n cases: newCsInput\n });\n }\n // bom更新\n const updatedProduct = await (0,_operation__WEBPACK_IMPORTED_MODULE_6__/* .updateProductBom */ .$h)({\n id: product.id,\n ...updatableBom\n });\n return updatedProduct;\n}\n// 任意のpackageBomのElementを更新する関数\nasync function updateArbitraryPackageBomElement(packageId, input, materials, species, group) {\n // 対象のproductBomとproductを持ってくる\n const [bom, product] = await Promise.all([\n (0,utils_packageBom__WEBPACK_IMPORTED_MODULE_7__/* .getPackageBomByID */ .H)(packageId),\n (0,utils_package__WEBPACK_IMPORTED_MODULE_3__/* .getPackageById */ .Jh)(packageId)\n ]);\n // Elementを再計算\n const { updatableBom } = updateBomElements(bom, {\n ...input,\n id: packageId\n }, materials, species, group);\n // bom更新\n const updatedPackage = await (0,_operation__WEBPACK_IMPORTED_MODULE_6__/* .updatePackageBom */ .pu)({\n id: product.id,\n ...updatableBom\n });\n return updatedPackage;\n}\n\n\n/***/ }),\n\n/***/ 45149:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"QO\": function() { return /* binding */ ProgressIcon; },\n/* harmony export */ \"uO\": function() { return /* binding */ invalidPhases; },\n/* harmony export */ \"x4\": function() { return /* binding */ getPhaseName; }\n/* harmony export */ });\n/* unused harmony exports packComplete, packFinal */\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(85893);\n/* harmony import */ var _mui_icons_material_CameraAlt__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(94964);\n/* harmony import */ var _mui_icons_material_CheckCircle__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(60888);\n/* harmony import */ var _mui_icons_material_Error__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(89572);\n/* harmony import */ var _mui_icons_material_Scale__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14904);\n\n\n\n\n\nconst getPhaseName = (c)=>{\n if (!c || !c.packPhases) return \"-\";\n if (c.phaseId === \"final\") return \"重量入力\";\n if (c.phaseId === \"complete\") return \"梱包完了\";\n const pidx = c.packPhases.findIndex((p)=>{\n return (p === null || p === void 0 ? void 0 : p.id) === c.phaseId;\n });\n const p = c.packPhases[pidx + 1];\n if (!p) return \"-\";\n return p.name;\n};\nfunction invalidPhases(cs) {\n return !cs.packPhases || cs.packPhases.length === 0;\n}\nfunction packComplete(cs) {\n return cs.phaseId === \"complete\";\n}\nfunction packFinal(cs) {\n return cs.phaseId === \"final\";\n}\nfunction ProgressIcon(param) {\n let { cs , ...props } = param;\n if (invalidPhases(cs)) return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material_Error__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"] */ .Z, {\n color: \"error\",\n ...props\n });\n if (packComplete(cs)) return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material_CheckCircle__WEBPACK_IMPORTED_MODULE_2__/* [\"default\"] */ .Z, {\n color: \"success\",\n ...props\n });\n if (packFinal(cs)) return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material_Scale__WEBPACK_IMPORTED_MODULE_3__/* [\"default\"] */ .Z, {\n color: \"primary\",\n ...props\n });\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material_CameraAlt__WEBPACK_IMPORTED_MODULE_4__/* [\"default\"] */ .Z, {\n ...props\n });\n}\n\n\n/***/ }),\n\n/***/ 8269:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"o\": function() { return /* binding */ SUPPORT_SITE_URL; },\n/* harmony export */ \"p\": function() { return /* binding */ JAPANESE_TAX_RATE; }\n/* harmony export */ });\n/** 事業所設定の税率未設定時に使用。消費税変更時は要変更 */ const JAPANESE_TAX_RATE = 0.1;\n/** PAXサポートURL */ const SUPPORT_SITE_URL = \"https://pax-help.freshdesk.com/support/home\";\n\n\n/***/ }),\n\n/***/ 78191:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"s\": function() { return /* binding */ CustomError; }\n/* harmony export */ });\nfunction isGraphQLResult(error) {\n return typeof error === \"object\" && error !== null && \"errors\" in error && Array.isArray(error.errors) && error.errors.every((e)=>typeof e.message === \"string\");\n}\nconst errorMapper = {\n delete: \"削除\",\n update: \"更新\",\n get: \"取得\",\n create: \"作成\"\n};\nclass CustomError extends Error {\n getCustomErrorMessage(err) {\n let message = \"\";\n if (isGraphQLResult(err)) {\n var ref;\n if ((ref = err.errors) === null || ref === void 0 ? void 0 : ref.some((error)=>error.message.match(/locking error/))) message += \"データが他のユーザーによって変更されています。リロードして再試行してください。\\n\";\n }\n return message;\n }\n setErrorMessage(customMessage) {\n this.message = customMessage;\n }\n constructor(err, type){\n // 詳細エラーメッセージは開発コンソールに表示\n // eslint-disable-next-line no-console\n console.error(err);\n super(\"データの\".concat(errorMapper[type], \"に失敗しました。\"));\n const customMessage = this.getCustomErrorMessage(err);\n if (!customMessage) return;\n this.setErrorMessage(customMessage);\n }\n}\n\n\n/***/ }),\n\n/***/ 12401:\n/***/ (function(__unused_webpack_module, __webpack_exports__) {\n\nvar InvoiceErrorMessages;\n(function(InvoiceErrorMessages) {\n InvoiceErrorMessages[\"CannotImportError\"] = \"梱包仕様と連携した見積が受注になっていません。連携している見積を受注にしてください。\";\n InvoiceErrorMessages[\"EmptyImportTarget\"] = \"同期するものがありません。\";\n InvoiceErrorMessages[\"EmptyProjectData\"] = \"案件が選択されていません。\";\n})(InvoiceErrorMessages || (InvoiceErrorMessages = {}));\n/* harmony default export */ __webpack_exports__[\"Z\"] = (InvoiceErrorMessages);\n\n\n/***/ }),\n\n/***/ 98053:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"$5\": function() { return /* binding */ convertSelectedProductSummariesToProductCaseInput; },\n/* harmony export */ \"Bg\": function() { return /* binding */ getAmount; },\n/* harmony export */ \"Bl\": function() { return /* binding */ getInvoiceInputs; },\n/* harmony export */ \"PJ\": function() { return /* binding */ canImportProductAndQuote; }\n/* harmony export */ });\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(30381);\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var utils_errors_invoice__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12401);\n\n\nconst getInvoiceInputs = (group, project, userId, input, domain)=>{\n var ref, ref1, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9, ref10, ref11, ref12, ref13, ref14;\n var ref15, ref16, ref17, ref18, ref19, ref20, ref21, ref22, ref23, ref24, ref25;\n return {\n projectId: project.id,\n accountId: project.accountId,\n contactId: project.contactId,\n userId: userId,\n groupId: group.id,\n name: input.name,\n invoiceNo: input.invoiceNo,\n issueDate: moment__WEBPACK_IMPORTED_MODULE_0___default()(input.issueDate).isValid() ? input.issueDate : null,\n billed: false,\n billingDate: moment__WEBPACK_IMPORTED_MODULE_0___default()(input.billingDate).isValid() ? input.billingDate : null,\n recordingDate: moment__WEBPACK_IMPORTED_MODULE_0___default()(input.recordingDate).isValid() ? input.recordingDate : null,\n description: \"\",\n subtotal: 0,\n nonTaxableTotal: 0,\n taxableSubtotal: 0,\n taxTotal: 0,\n taxableTotal: 0,\n total: 0,\n accountName: (ref = project.account) === null || ref === void 0 ? void 0 : ref.name,\n accountSite: (ref1 = project.account) === null || ref1 === void 0 ? void 0 : ref1.site,\n billingType: (ref15 = (ref2 = project.account) === null || ref2 === void 0 ? void 0 : ref2.billingType) !== null && ref15 !== void 0 ? ref15 : null,\n accountAddress: {\n address: (ref16 = (ref3 = project.account) === null || ref3 === void 0 ? void 0 : ref3.billingAddress) !== null && ref16 !== void 0 ? ref16 : null,\n street: (ref17 = (ref4 = project.account) === null || ref4 === void 0 ? void 0 : ref4.billingStreet) !== null && ref17 !== void 0 ? ref17 : null,\n city: (ref18 = (ref5 = project.account) === null || ref5 === void 0 ? void 0 : ref5.billingCity) !== null && ref18 !== void 0 ? ref18 : null,\n state: (ref19 = (ref6 = project.account) === null || ref6 === void 0 ? void 0 : ref6.billingState) !== null && ref19 !== void 0 ? ref19 : null,\n postalCode: (ref20 = (ref7 = project.account) === null || ref7 === void 0 ? void 0 : ref7.billingPostalCode) !== null && ref20 !== void 0 ? ref20 : null,\n country: (ref21 = (ref8 = project.account) === null || ref8 === void 0 ? void 0 : ref8.billingCountry) !== null && ref21 !== void 0 ? ref21 : null\n },\n contactName: \"\".concat((ref9 = project.contact) === null || ref9 === void 0 ? void 0 : ref9.lastName, \" \").concat((ref22 = (ref10 = project.contact) === null || ref10 === void 0 ? void 0 : ref10.firstName) !== null && ref22 !== void 0 ? ref22 : \"\"),\n contactFirstName: (ref23 = (ref11 = project.contact) === null || ref11 === void 0 ? void 0 : ref11.firstName) !== null && ref23 !== void 0 ? ref23 : \"\",\n contactLastName: (ref12 = project.contact) === null || ref12 === void 0 ? void 0 : ref12.lastName,\n contactDepartment: (ref24 = (ref13 = project.contact) === null || ref13 === void 0 ? void 0 : ref13.department) !== null && ref24 !== void 0 ? ref24 : \"\",\n contactTitle: (ref25 = (ref14 = project.contact) === null || ref14 === void 0 ? void 0 : ref14.title) !== null && ref25 !== void 0 ? ref25 : \"\",\n groupName: group.name,\n logoUrl: group.logoUrl,\n groupBank: group.bank,\n groupAddress: group.groupAddress,\n phone: group.phone,\n fax: group.fax,\n taxRate: group.taxRate,\n url: domain !== \"\" ? \"https://\".concat(domain, \"/projects/\").concat(project.id) : \"https://pax-cloud.com/projects/\".concat(project.id)\n };\n};\nconst canImportProductAndQuote = (allProducts, targetProductIds, project, quotes)=>{\n var _id;\n // 今回importするproductを持ってくる\n const targetProducts = allProducts.filter((product)=>targetProductIds.includes((_id = product.id) !== null && _id !== void 0 ? _id : \"\"));\n // 以下の条件を全て満たすとき確認する\n // a1. checkProducts(確認対象の梱包)が0より多かったら\n // a2. 見積が受注されてるか、見積が案件に一つ以上ある\n // a3. 対象の梱包が一つでも見積もり連携している\n // もしくは\n // b1. checkProducts(確認対象の梱包)が0の場合は、\n // b2. 見積のその他明細行が1つ以上ある\n // a.bどちらも他案件から同期してきた梱包(quoteLineId === null && quoteLineName !== null)の場合はチェック対象外\n const checkProducts = targetProducts.filter((product)=>!(product.quoteLineId == null && product.quoteLineName != null));\n // 見積が受注されてるか、見積が案件に一つ以上ある\n const isOrderedOrHasQuotes = (project === null || project === void 0 ? void 0 : project.quoteId) !== undefined || quotes.length > 0;\n // 対象の梱包が一つでも見積もり連携している\n const isAnyProductLinked = checkProducts.some((product)=>product.quoteLineId !== null);\n // ↑の条件確認してチェック実行\n if (checkProducts.length > 0 && isOrderedOrHasQuotes && isAnyProductLinked) {\n var ref;\n // そもそも受注されてなかったらダメ\n if (!(project === null || project === void 0 ? void 0 : project.quoteId)) {\n return [\n false,\n utils_errors_invoice__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"].CannotImportError */ .Z.CannotImportError\n ];\n }\n // 受注しているquoteが存在しなかったらダメ(これはないはず)\n const quote = quotes.find((q)=>q.id === project.quoteId);\n if (!quote) {\n return [\n false,\n utils_errors_invoice__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"].CannotImportError */ .Z.CannotImportError\n ];\n }\n // 受注したquoteのquoteLineのID\n const orderedQuoteLineIds = (ref = quote.quoteLines) === null || ref === void 0 ? void 0 : ref.items.map((quoteLine)=>{\n return quoteLine === null || quoteLine === void 0 ? void 0 : quoteLine.id;\n }).filter((id)=>!!id);\n // チェック対象の連携する見積行のID\n const linkedQuoteLineIds = checkProducts.map((product)=>product.quoteLineId).filter((id)=>!!id);\n // 連携した見積行(linkedQuoteLineIds)が全て受注した見積行(orderedQuoteLineIds)に含まれていればOK\n const isAllLinkedQuoteLineOrdered = linkedQuoteLineIds.every((id)=>{\n return orderedQuoteLineIds === null || orderedQuoteLineIds === void 0 ? void 0 : orderedQuoteLineIds.includes(id !== null && id !== void 0 ? id : \"\");\n });\n if (!isAllLinkedQuoteLineOrdered) {\n return [\n false,\n utils_errors_invoice__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"].CannotImportError */ .Z.CannotImportError\n ];\n }\n } else if (checkProducts.length === 0) {\n var ref1;\n if (targetProducts.length > 0) {\n // targetProductsはあるが、checkProductsがないのは、すべて「他案件から同期してきた梱包」と判断\n return [\n true,\n \"\"\n ];\n }\n // そもそも受注されてなかったらダメ\n if (!(project === null || project === void 0 ? void 0 : project.quoteId)) {\n return [\n false,\n utils_errors_invoice__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"].CannotImportError */ .Z.CannotImportError\n ];\n }\n // 受注しているquoteが存在しなかったらダメ(これはないはず)\n const quote1 = quotes.find((q)=>q.id === project.quoteId);\n if (!quote1) {\n return [\n false,\n utils_errors_invoice__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"].CannotImportError */ .Z.CannotImportError\n ];\n }\n // 受注したquoteのその他のquoteLineのID\n const orderedOtherQuoteLineIds = (ref1 = quote1.quoteLines) === null || ref1 === void 0 ? void 0 : ref1.items// `quoteLine?.showInQuoteSummary`が梱包明細行という判定なので、\n // `!quoteLine?.showInQuoteSummary` が trueなのはその他明細行\n .filter((quoteLine)=>{\n return !!(quoteLine === null || quoteLine === void 0 ? void 0 : quoteLine.id) && !(quoteLine === null || quoteLine === void 0 ? void 0 : quoteLine.showInQuoteSummary);\n }).map((quoteLine)=>{\n return quoteLine === null || quoteLine === void 0 ? void 0 : quoteLine.id;\n });\n if (orderedOtherQuoteLineIds !== undefined && orderedOtherQuoteLineIds.length > 0) {\n return [\n true,\n \"\"\n ];\n } else {\n return [\n false,\n utils_errors_invoice__WEBPACK_IMPORTED_MODULE_1__/* [\"default\"].EmptyImportTarget */ .Z.EmptyImportTarget\n ];\n }\n }\n return [\n true,\n \"\"\n ];\n};\nconst convertSelectedProductSummariesToProductCaseInput = (targetProductSummaries, productSummaries)=>{\n const targetProductCase = [];\n for (const t of targetProductSummaries){\n // idからcase情報持ってくる\n const [productId, order] = t.toString().split(\"|\");\n // productSummariesから対象持ってくる\n const summary = productSummaries.find((p)=>{\n var ref;\n return p.productId === productId && ((ref = p.caseOrder) === null || ref === void 0 ? void 0 : ref.toString()) === order;\n });\n if (!summary || !summary.name) continue;\n // 保存\n // すでにproductIdがある場合はcaseNamesに追加、ない場合は新規作成\n const idx = targetProductCase.findIndex((c)=>c.productId === productId);\n if (idx === -1) {\n targetProductCase.push({\n productId,\n caseNames: [\n summary.name\n ]\n });\n } else {\n var ref;\n (ref = targetProductCase[idx].caseNames) === null || ref === void 0 ? void 0 : ref.push(summary.name);\n }\n }\n return targetProductCase;\n};\nfunction getAmount(invoiceLine, unit) {\n // minimumAmount\n if (invoiceLine.minimumAmount || invoiceLine.minimumAmount === 0) return getActualAmount(invoiceLine, unit);\n var ref, _minimumAmount;\n // If actual amount is greater than minimum amount, return actual amount\n if (((ref = getActualAmount(invoiceLine, unit)) !== null && ref !== void 0 ? ref : 0) > ((_minimumAmount = invoiceLine.minimumAmount) !== null && _minimumAmount !== void 0 ? _minimumAmount : 0)) return getActualAmount(invoiceLine, unit);\n var _quantity;\n // If actual amount is smaller than minimum amount, return case quantity\n return (_quantity = invoiceLine.quantity) !== null && _quantity !== void 0 ? _quantity : null;\n}\nfunction getActualAmount(invoiceLine, unit) {\n const KG_TON = 1000;\n var _grossWeight;\n const ton = ((_grossWeight = invoiceLine.grossWeight) !== null && _grossWeight !== void 0 ? _grossWeight : 0) / KG_TON;\n // Extract the amount from special unit\n if (invoiceLine.synced) {\n //PAX-632 連動している請求のみ重量更新\n switch(unit){\n case \"m3\":\n return invoiceLine.m3 || invoiceLine.actualAmount || null;\n case \"R/T\":\n // m3 vs ton\n if (invoiceLine.rt) {\n return invoiceLine.rt;\n //rtが既にある場合はrtを取得\n } else {\n var _m3;\n return Math.max(ton, (_m3 = invoiceLine.m3) !== null && _m3 !== void 0 ? _m3 : 0) || invoiceLine.actualAmount || null;\n }\n case \"PKG\":\n return invoiceLine.quantity || invoiceLine.quantity || null;\n default:\n // return quantity or actual amount if units not applicable\n return invoiceLine.quantity || invoiceLine.actualAmount || null;\n }\n } else return invoiceLine.amount || null;\n}\n\n\n/***/ }),\n\n/***/ 10175:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"B\": function() { return /* binding */ JISBeamEdge; },\n/* harmony export */ \"H\": function() { return /* binding */ JISBeamMaterial; }\n/* harmony export */ });\n// はり資材の方向を返す関数\nfunction JISBeamEdge(ceilingLoad, beamLength, beamCenterSpace, beamSpeciesId, mainSpeciesId, mainSpeciesEdgeMPa, mainSpeciesFaceMPa, materials, species) {\n return JISBeamMaterialEdge(ceilingLoad, beamLength, beamCenterSpace, beamSpeciesId, mainSpeciesId, mainSpeciesEdgeMPa, mainSpeciesFaceMPa, materials, species).beamEdge;\n}\n// はり資材の選定を行う関数\nfunction JISBeamMaterial(ceilingLoad, beamLength, beamCenterSpace, beamSpeciesId, mainSpeciesId, mainSpeciesEdgeMPa, mainSpeciesFaceMPa, materials, species) {\n return JISBeamMaterialEdge(ceilingLoad, beamLength, beamCenterSpace, beamSpeciesId, mainSpeciesId, mainSpeciesEdgeMPa, mainSpeciesFaceMPa, materials, species).materialId;\n}\n// ここでは、事前の以下の処理を行い実際に該当する部材を計算する関数を呼び出す\n// - 必要なパラメータの確認(ceilingLoad, beamLength, beamCenterSpace, materials)\n// - 定数の計算…ceil(400 / (天井荷重(ceilingLoad) / 10 x 3))を定数とする\n// - 許容強さ…beamSpeciesIdの{EdgeMPa/faceMPa} > mainSpeciesIdの{EdgeMPa/faceMPa} > {mainSpeciesEdgeMPa/mainSpeciesFaceMPa} > 8.1、の優先度\n// - 木材のみに絞る…materialsの中で木材のもののみを対象とする\nfunction JISBeamMaterialEdge(ceilingLoad, beamLength, beamCenterSpace, beamSpeciesId, mainSpeciesId, mainSpeciesEdgeMPa, mainSpeciesFaceMPa, materials, species) {\n // 必要なパラメータの確認\n if (!ceilingLoad || !beamLength || !beamCenterSpace || !materials) {\n return {\n materialId: \"\",\n beamEdge: \"\"\n };\n }\n // 定数の計算\n const constant = Math.ceil(400 / (ceilingLoad / 10 * 3));\n // 木端方向許容強さ\n let edgeMPa = 8.1;\n let faceMPa = 8.1;\n if (beamSpeciesId && beamSpeciesId !== \"null\") {\n const beamSpecies = species.find((s)=>s.id === beamSpeciesId);\n if ((beamSpecies === null || beamSpecies === void 0 ? void 0 : beamSpecies.edgeMPa) && (beamSpecies === null || beamSpecies === void 0 ? void 0 : beamSpecies.faceMPa)) {\n edgeMPa = beamSpecies.edgeMPa;\n faceMPa = beamSpecies.faceMPa;\n } else {\n return {\n materialId: \"\",\n beamEdge: \"\"\n };\n }\n } else if (mainSpeciesId) {\n const mainSpecies = species.find((s)=>s.id === mainSpeciesId);\n if ((mainSpecies === null || mainSpecies === void 0 ? void 0 : mainSpecies.edgeMPa) && (mainSpecies === null || mainSpecies === void 0 ? void 0 : mainSpecies.faceMPa)) {\n edgeMPa = mainSpecies.edgeMPa;\n faceMPa = mainSpecies.faceMPa;\n } else if (mainSpeciesEdgeMPa && mainSpeciesFaceMPa) {\n edgeMPa = mainSpeciesEdgeMPa;\n faceMPa = mainSpeciesFaceMPa;\n }\n }\n var ref;\n // 木材のみに絞る\n const woodMaterials = materials.filter((m)=>{\n var ref1;\n return (ref = (ref1 = m.materialType) === null || ref1 === void 0 ? void 0 : ref1.isWood) !== null && ref !== void 0 ? ref : false;\n });\n return selectBeamMaterial(constant, beamLength, beamCenterSpace, edgeMPa, faceMPa, woodMaterials);\n}\n// はり部材の選定を行う関数\n// 以下の式を満たすmaterialIdと方向(beamEdge)を返す\n// はりの中心間隔(beamCenterSpace) <= (定数(constant) * はりの幅 * はりの高さ^2 * 許容強さ) / はりの長さ(beamLength)\n// ここではりの幅, はりの高さ, 許容強さには以下の注意点があります。\n// - 「はりの幅」と「はりの高さ」は部材を平方向で比較する場合はそれぞれ部材の「呼び寸巾」と「呼び寸高さ」になり、木端方向の時は逆になる\n// - 「許容強さ」は平方向の場合は「EdgeMPa」、木端方向の場合は「FaceMPa」になる\n// materialの検索順序は以下の通り\n// - materialsの要素に一つでも「はり検索順(木端方向)(=z1403BeamEdgeOrder)」と「はり検索順(平方向)(=z1403BeamFaceOrder)」に値があったら、値があるものの中で値の昇順で確認していく\n// - ここでedgeかfaceかはフラグとして保持しておく(比較のため)\n// - 一つもなかったらrefBhhEdgeの小さい順に確認していく\nfunction selectBeamMaterial(constant, beamLength, beamCenterSpace, edgeMPa, faceMPa, materials) {\n let targetMaterials = [];\n // z1403BeamEdgeOrderまたはz1403BeamFaceOrderが設定されているMaterialを抽出\n const z1403BeamOrderMaterials = materials.filter((m)=>m.z1403BeamEdgeOrder != null || m.z1403BeamFaceOrder != null);\n // 比較順で以下のObjectをMaterialから生成\n const targetParameters = [];\n // 全くなかったらrefBhhEdgeの設定されているものを抽出\n if (z1403BeamOrderMaterials.length === 0) {\n targetMaterials = materials.filter((m)=>m.refBhhEdge != null);\n // refBhhEdgeが小さい順にソート\n targetMaterials.sort((a, b)=>{\n var _refBhhEdge, _refBhhEdge1;\n return ((_refBhhEdge = a.refBhhEdge) !== null && _refBhhEdge !== void 0 ? _refBhhEdge : 0) - ((_refBhhEdge1 = b.refBhhEdge) !== null && _refBhhEdge1 !== void 0 ? _refBhhEdge1 : 0);\n });\n // targetParametersに設定\n targetMaterials.forEach((m)=>{\n var _heightNominal, _widthNominal;\n targetParameters.push({\n materialId: m.id,\n beamHeight: (_heightNominal = m.heightNominal) !== null && _heightNominal !== void 0 ? _heightNominal : 0,\n beamWidth: (_widthNominal = m.widthNominal) !== null && _widthNominal !== void 0 ? _widthNominal : 0,\n mpa: faceMPa,\n edge: false\n });\n });\n } else {\n // 対象があったらz1403BeamSupportOrderから{materialId, order, edge(edgeなら1, faceなら0)}を引き出してくる\n const targetOrders = [];\n z1403BeamOrderMaterials.forEach((m)=>{\n if (m.z1403BeamEdgeOrder != null) {\n targetOrders.push({\n materialId: m.id,\n order: m.z1403BeamEdgeOrder,\n edge: true\n });\n }\n if (m.z1403BeamFaceOrder != null) {\n targetOrders.push({\n materialId: m.id,\n order: m.z1403BeamFaceOrder,\n edge: false\n });\n }\n });\n // それを使ってtargetParametersに追加\n targetOrders.sort((a, b)=>a.order - b.order);\n targetOrders.forEach((t)=>{\n const material = materials.find((m)=>m.id === t.materialId);\n if (material) {\n // はり長さ、はり幅、許容強さを設定\n // edge or faceで変わってくる\n const beamWidth = t.edge ? material.heightNominal : material.widthNominal;\n const beamHeight = t.edge ? material.widthNominal : material.heightNominal;\n const mpa = t.edge ? edgeMPa : faceMPa;\n targetParameters.push({\n materialId: t.materialId,\n beamWidth: beamWidth !== null && beamWidth !== void 0 ? beamWidth : 0,\n beamHeight: beamHeight !== null && beamHeight !== void 0 ? beamHeight : 0,\n mpa: mpa,\n edge: t.edge\n });\n }\n });\n }\n // 資材の選定\n for(let i = 0; i < targetParameters.length; i++){\n const param = targetParameters[i];\n if (check(constant, beamLength, beamCenterSpace, param.mpa, param.beamWidth, param.beamHeight)) {\n return {\n materialId: param.materialId,\n beamEdge: param.edge ? \"1\" : \"0\"\n };\n }\n }\n return {\n materialId: \"\",\n beamEdge: \"\"\n };\n}\n// 実際に計算する関数\n// 以下の式を満たすかどうかを確認する\n// はりの中心間隔(beamCenterSpace) <= (定数(constant) * はりの幅(beamWidth) * はりの高さ(beamHeight)^2 * 許容強さ(mpa)) / はりの長さ(beamLength)\nfunction check(constant, beamLength, beamCenterSpace, mpa, beamWidth, beamHeight) {\n const leftHand = beamCenterSpace;\n const rightHand = constant * beamWidth * Math.pow(beamHeight !== null && beamHeight !== void 0 ? beamHeight : 0, 2) * mpa / Math.pow(beamLength !== null && beamLength !== void 0 ? beamLength : 0, 2);\n return leftHand <= rightHand;\n}\n\n\n/***/ }),\n\n/***/ 75547:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"a\": function() { return /* binding */ JISBeamSupportMaterial; }\n/* harmony export */ });\n// はり受け資材の選定を行う関数\n// ここでは、事前の以下の処理を行い実際に該当する部材を計算する関数を呼び出す\n// - 必要なパラメータの確認(ceilingLoad, beamLength, sideStrutsCenterSpace, materials)\n// - 定数の計算…((天井荷重(ceilingLoad) x 615 / 1000) x 3)/4を定数とする\n// - 木端方向許容強さ…beamSupportSpeciesIdのEdgeMPa > mainSpeciesIdのEdgeMPa > mainSpeciesEdgeMPa > 8.1、の優先度\n// - 木材のみに絞る…materialsの中で木材のもののみを対象とする\nfunction JISBeamSupportMaterial(ceilingLoad, beamLength, sideStrutsCenterSpace, beamSupportSpeciesId, mainSpeciesId, mainSpeciesEdgeMPa, materials, species) {\n // 必要なパラメータの確認\n if (!ceilingLoad || !beamLength || !sideStrutsCenterSpace || !materials) {\n return \"\";\n }\n // 定数の計算\n const constant = (ceilingLoad !== null && ceilingLoad !== void 0 ? ceilingLoad : 0) * 615 / 1000 * 3 / 4;\n // 木端方向許容強さ\n let edgeMPa = 8.1;\n if (beamSupportSpeciesId && beamSupportSpeciesId !== \"null\") {\n const beamSupportSpecies = species.find((s)=>s.id === beamSupportSpeciesId);\n if (beamSupportSpecies === null || beamSupportSpecies === void 0 ? void 0 : beamSupportSpecies.edgeMPa) {\n edgeMPa = beamSupportSpecies.edgeMPa;\n } else {\n return \"\";\n }\n } else if (mainSpeciesId) {\n const mainSpecies = species.find((s)=>s.id === mainSpeciesId);\n if (mainSpecies === null || mainSpecies === void 0 ? void 0 : mainSpecies.edgeMPa) {\n edgeMPa = mainSpecies.edgeMPa;\n } else if (mainSpeciesEdgeMPa) {\n edgeMPa = mainSpeciesEdgeMPa;\n }\n }\n var ref;\n // 木材のみに絞る\n const woodMaterials = materials.filter((m)=>{\n var ref1;\n return (ref = (ref1 = m.materialType) === null || ref1 === void 0 ? void 0 : ref1.isWood) !== null && ref !== void 0 ? ref : false;\n });\n return selectBeamSupportMaterial(constant, beamLength, sideStrutsCenterSpace, edgeMPa, woodMaterials);\n}\n// はり受け部材の選定を行う関数\n// 以下の式を満たすmaterialIdを返す\n// material.heightNominal * material.widthNominal ^ 2 >= (constant * beamLength * sideStrutsCenterSpace) / edgeMPa\n// materialの検索順序は以下の通り\n// - materialsの要素に一つでも「はり受け検索順(z1403BeamSupportOrder)」に値があったら、値があるものの中で値の昇順で確認していく\n// - 一つもなかったらrefBhhEdgeの小さい順に確認していく\nfunction selectBeamSupportMaterial(constant, beamLength, sideStrutsCenterSpace, edgeMPa, materials) {\n let targetMaterials = [];\n // z1403BeamSupportOrderが設定されているMaterialを抽出\n const z1403BeamSupportOrderMaterials = materials.filter((m)=>m.z1403BeamSupportOrder != null);\n // 全くなかったらrefBhhEdgeの設定されているものを抽出\n if (z1403BeamSupportOrderMaterials.length === 0) {\n targetMaterials = materials.filter((m)=>m.refBhhEdge != null);\n // refBhhEdgeが小さい順にソート\n targetMaterials.sort((a, b)=>{\n var _refBhhEdge, _refBhhEdge1;\n return ((_refBhhEdge = a.refBhhEdge) !== null && _refBhhEdge !== void 0 ? _refBhhEdge : 0) - ((_refBhhEdge1 = b.refBhhEdge) !== null && _refBhhEdge1 !== void 0 ? _refBhhEdge1 : 0);\n });\n } else {\n // 対象があったらz1403BeamSupportOrderの昇順に並び替え\n z1403BeamSupportOrderMaterials.sort((a, b)=>{\n var _z1403BeamSupportOrder, _z1403BeamSupportOrder1;\n return ((_z1403BeamSupportOrder = a.z1403BeamSupportOrder) !== null && _z1403BeamSupportOrder !== void 0 ? _z1403BeamSupportOrder : 0) - ((_z1403BeamSupportOrder1 = b.z1403BeamSupportOrder) !== null && _z1403BeamSupportOrder1 !== void 0 ? _z1403BeamSupportOrder1 : 0);\n });\n targetMaterials = z1403BeamSupportOrderMaterials;\n }\n // 資材の選定\n for(let i = 0; i < targetMaterials.length; i++){\n const material = targetMaterials[i];\n if (check(constant, beamLength, sideStrutsCenterSpace, edgeMPa, material)) {\n return material.id;\n }\n }\n return \"\";\n}\n// 実際に計算する関数\n// 以下の式を満たすかどうかを確認する\n// material.heightNominal * material.widthNominal ^ 2 >= (constant * beamLength * sideStrutsCenterSpace) / edgeMPa\nfunction check(constant, beamLength, sideStrutsCenterSpace, edgeMPa, materials) {\n var _heightNominal, _widthNominal;\n const leftHand = ((_heightNominal = materials.heightNominal) !== null && _heightNominal !== void 0 ? _heightNominal : 0) * Math.pow((_widthNominal = materials.widthNominal) !== null && _widthNominal !== void 0 ? _widthNominal : 0, 2);\n const rightHand = constant * beamLength * sideStrutsCenterSpace / edgeMPa;\n return leftHand >= rightHand;\n}\n\n\n/***/ }),\n\n/***/ 19794:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"A\": function() { return /* reexport */ calcCombinationSign; }\n});\n\n;// CONCATENATED MODULE: ./src/utils/jis/combinationSign/Z1402/combinationSign.ts\nfunction calcCombinationSign(sideStrutsCenterSpace, signCalcOuterWidth, z1402SideBattenLength) {\n if (!sideStrutsCenterSpace || !signCalcOuterWidth || !z1402SideBattenLength) {\n return 999;\n }\n const firstKeys = Object.keys(MATRIX);\n const closestOuterWidth = findClosestKey(signCalcOuterWidth, firstKeys, 0);\n const closestSideBattenLength = findClosestKey(z1402SideBattenLength, firstKeys, 1);\n const selectedKey = \"\".concat(closestOuterWidth, \"x\").concat(closestSideBattenLength);\n if (!MATRIX[selectedKey]) {\n return 999;\n }\n const sideStructsCenterSpaceKeys = Object.keys(MATRIX[selectedKey]);\n const closestSpacing = findClosestKey(sideStrutsCenterSpace, sideStructsCenterSpaceKeys, 0);\n const spacingKey = \"\".concat(closestSpacing);\n if (MATRIX[selectedKey][spacingKey] !== undefined) {\n return MATRIX[selectedKey][spacingKey];\n } else {\n return 999;\n }\n}\nfunction findClosestKey(value, keys, index) {\n const numericKeys = keys.map((key)=>parseInt(key.split(\"x\")[index])).filter((key)=>key >= value);\n if (numericKeys.length === 0) return \"No matching key found.\";\n const closestKey = Math.min(...numericKeys);\n return closestKey.toString();\n}\nconst MATRIX = {\n \"500x500\": {\n \"600\": 1,\n \"750\": 1,\n \"910\": 1,\n \"1050\": 1,\n \"1200\": 1\n },\n \"500x750\": {\n \"600\": 2,\n \"750\": 3,\n \"910\": 3,\n \"1050\": 3,\n \"1200\": 3\n },\n \"500x1000\": {\n \"600\": 3,\n \"750\": 4,\n \"910\": 5,\n \"1050\": 5,\n \"1200\": 5\n },\n \"500x1250\": {\n \"600\": 5,\n \"750\": 5,\n \"910\": 5,\n \"1050\": 5,\n \"1200\": 6\n },\n \"500x1500\": {\n \"600\": 6,\n \"750\": 6,\n \"910\": 6,\n \"1050\": 6,\n \"1200\": 6\n },\n \"500x1750\": {\n \"600\": 7,\n \"750\": 7,\n \"910\": 7,\n \"1050\": 7,\n \"1200\": 7\n },\n \"500x2000\": {\n \"600\": 8,\n \"750\": 8,\n \"910\": 8,\n \"1050\": 8,\n \"1200\": 8\n },\n \"500x2250\": {\n \"600\": 10,\n \"750\": 10,\n \"910\": 10,\n \"1050\": 10,\n \"1200\": 10\n },\n \"750x500\": {\n \"600\": 1,\n \"750\": 1,\n \"910\": 2,\n \"1050\": 3,\n \"1200\": 3\n },\n \"750x750\": {\n \"600\": 3,\n \"750\": 3,\n \"910\": 4,\n \"1050\": 4,\n \"1200\": 5\n },\n \"750x1000\": {\n \"600\": 5,\n \"750\": 5,\n \"910\": 5,\n \"1050\": 5,\n \"1200\": 6\n },\n \"750x1250\": {\n \"600\": 5,\n \"750\": 6,\n \"910\": 6,\n \"1050\": 6,\n \"1200\": 6\n },\n \"750x1500\": {\n \"600\": 6,\n \"750\": 6,\n \"910\": 7,\n \"1050\": 7,\n \"1200\": 7\n },\n \"750x1750\": {\n \"600\": 7,\n \"750\": 7,\n \"910\": 7,\n \"1050\": 8,\n \"1200\": 8\n },\n \"750x2000\": {\n \"600\": 8,\n \"750\": 8,\n \"910\": 8,\n \"1050\": 8,\n \"1200\": 8\n },\n \"750x2250\": {\n \"600\": 10,\n \"750\": 10,\n \"910\": 10,\n \"1050\": 10,\n \"1200\": 10\n },\n \"1000x500\": {\n \"600\": 1,\n \"750\": 2,\n \"910\": 3,\n \"1050\": 3,\n \"1200\": 3\n },\n \"1000x750\": {\n \"600\": 3,\n \"750\": 4,\n \"910\": 5,\n \"1050\": 5,\n \"1200\": 5\n },\n \"1000x1000\": {\n \"600\": 5,\n \"750\": 5,\n \"910\": 6,\n \"1050\": 6,\n \"1200\": 6\n },\n \"1000x1250\": {\n \"600\": 6,\n \"750\": 6,\n \"910\": 6,\n \"1050\": 7,\n \"1200\": 7\n },\n \"1000x1500\": {\n \"600\": 6,\n \"750\": 7,\n \"910\": 7,\n \"1050\": 7,\n \"1200\": 8\n },\n \"1000x1750\": {\n \"600\": 7,\n \"750\": 7,\n \"910\": 9,\n \"1050\": 9,\n \"1200\": 10\n },\n \"1000x2000\": {\n \"600\": 9,\n \"750\": 9,\n \"910\": 10,\n \"1050\": 10,\n \"1200\": 10\n },\n \"1000x2250\": {\n \"600\": 10,\n \"750\": 10,\n \"910\": 11,\n \"1050\": 11,\n \"1200\": 11\n },\n \"1250x500\": {\n \"600\": 2,\n \"750\": 3,\n \"910\": 3,\n \"1050\": 4,\n \"1200\": 4\n },\n \"1250x750\": {\n \"600\": 4,\n \"750\": 5,\n \"910\": 5,\n \"1050\": 5,\n \"1200\": 5\n },\n \"1250x1000\": {\n \"600\": 5,\n \"750\": 6,\n \"910\": 6,\n \"1050\": 6,\n \"1200\": 6\n },\n \"1250x1250\": {\n \"600\": 6,\n \"750\": 6,\n \"910\": 7,\n \"1050\": 7,\n \"1200\": 7\n },\n \"1250x1500\": {\n \"600\": 7,\n \"750\": 7,\n \"910\": 8,\n \"1050\": 8,\n \"1200\": 8\n },\n \"1250x1750\": {\n \"600\": 8,\n \"750\": 8,\n \"910\": 10,\n \"1050\": 10,\n \"1200\": 10\n },\n \"1250x2000\": {\n \"600\": 10,\n \"750\": 10,\n \"910\": 10,\n \"1050\": 11,\n \"1200\": 11\n },\n \"1250x2250\": {\n \"600\": 10,\n \"750\": 10,\n \"910\": 11,\n \"1050\": 11,\n \"1200\": 11\n },\n \"1500x500\": {\n \"600\": 3,\n \"750\": 3,\n \"910\": 4,\n \"1050\": 5,\n \"1200\": 5\n },\n \"1500x750\": {\n \"600\": 5,\n \"750\": 5,\n \"910\": 5,\n \"1050\": 6,\n \"1200\": 6\n },\n \"1500x1000\": {\n \"600\": 6,\n \"750\": 6,\n \"910\": 6,\n \"1050\": 7,\n \"1200\": 7\n },\n \"1500x1250\": {\n \"600\": 6,\n \"750\": 7,\n \"910\": 7,\n \"1050\": 9,\n \"1200\": 9\n },\n \"1500x1500\": {\n \"600\": 8,\n \"750\": 9,\n \"910\": 10,\n \"1050\": 10,\n \"1200\": 10\n },\n \"1500x1750\": {\n \"600\": 8,\n \"750\": 9,\n \"910\": 10,\n \"1050\": 10,\n \"1200\": 11\n },\n \"1500x2000\": {\n \"600\": 10,\n \"750\": 10,\n \"910\": 11,\n \"1050\": 11,\n \"1200\": 11\n },\n \"1500x2250\": {\n \"600\": 10,\n \"750\": 11,\n \"910\": 11,\n \"1050\": 11,\n \"1200\": 11\n }\n};\n\n;// CONCATENATED MODULE: ./src/utils/jis/combinationSign/Z1402/index.ts\n\n\n\n/***/ }),\n\n/***/ 94924:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"A\": function() { return /* reexport */ calcCombinationSign; }\n});\n\n;// CONCATENATED MODULE: ./src/utils/jis/combinationSign/Z1403/combinationSign.ts\nfunction calcCombinationSign(nw, sideStrutsCenterSpace, signCalcOuterWidth, innerHeight) {\n if (!nw || !sideStrutsCenterSpace || !signCalcOuterWidth || !innerHeight) {\n return 999;\n }\n const firstKeys = Object.keys(MATRIX);\n const closestOuterWidth = findClosestKey(signCalcOuterWidth, firstKeys, 0);\n const closestInnerHeight = findClosestKey(innerHeight, firstKeys, 1);\n const selectedKey = \"\".concat(closestOuterWidth, \"x\").concat(closestInnerHeight);\n if (!MATRIX[selectedKey]) {\n return 999;\n }\n const nwSpacingKeys = Object.keys(MATRIX[selectedKey]);\n const closestNW = findClosestKey(nw, nwSpacingKeys, 0);\n const closestSpacing = findClosestKey(sideStrutsCenterSpace, nwSpacingKeys, 1);\n const weightSpacingKey = \"\".concat(closestNW, \"x\").concat(closestSpacing);\n if (MATRIX[selectedKey][weightSpacingKey] !== undefined) {\n return MATRIX[selectedKey][weightSpacingKey];\n } else {\n return 999;\n }\n}\nfunction findClosestKey(value, keys, index) {\n const numericKeys = keys.map((key)=>parseInt(key.split(\"x\")[index])).filter((key)=>key >= value);\n if (numericKeys.length === 0) return \"No matching key found.\";\n const closestKey = Math.min(...numericKeys);\n return closestKey.toString();\n}\nconst MATRIX = {\n \"1000x1000\": {\n \"1000x600\": 1,\n \"1000x750\": 1,\n \"1000x910\": 1,\n \"1000x1050\": 1,\n \"1000x1230\": 1,\n \"2000x600\": 1,\n \"2000x750\": 1,\n \"2000x910\": 1,\n \"2000x1050\": 1,\n \"2000x1230\": 1,\n \"3000x600\": 11,\n \"3000x750\": 11,\n \"3000x910\": 11,\n \"3000x1050\": 11,\n \"3000x1230\": 11,\n \"4000x600\": 21,\n \"4000x750\": 21,\n \"4000x910\": 21,\n \"4000x1050\": 21,\n \"4000x1230\": 21,\n \"5000x600\": 21,\n \"5000x750\": 21,\n \"5000x910\": 21,\n \"5000x1050\": 21,\n \"5000x1230\": 21,\n \"6500x600\": 31,\n \"6500x750\": 31,\n \"6500x910\": 31,\n \"6500x1050\": 31,\n \"6500x1230\": 31,\n \"8000x600\": 31,\n \"8000x750\": 31,\n \"8000x910\": 31,\n \"8000x1050\": 31,\n \"8000x1230\": 31,\n \"10000x600\": 31,\n \"10000x750\": 31,\n \"10000x910\": 31,\n \"10000x1050\": 31,\n \"10000x1230\": 31,\n \"12500x600\": 31,\n \"12500x750\": 31,\n \"12500x910\": 31,\n \"12500x1050\": 31,\n \"12500x1230\": 31,\n \"15500x600\": 31,\n \"15500x750\": 31,\n \"15500x910\": 31,\n \"15500x1050\": 31,\n \"15500x1230\": 31,\n \"20000x600\": 41,\n \"20000x750\": 41,\n \"20000x910\": 41,\n \"20000x1050\": 41,\n \"20000x1230\": 41,\n \"25000x600\": 41,\n \"25000x750\": 41,\n \"25000x910\": 41,\n \"25000x1050\": 41,\n \"25000x1230\": 41,\n \"30000x600\": 51,\n \"30000x750\": 51,\n \"30000x910\": 51,\n \"30000x1050\": 51,\n \"30000x1230\": 51,\n \"35000x600\": 51,\n \"35000x750\": 51,\n \"35000x910\": 51,\n \"35000x1050\": 51,\n \"35000x1230\": 51,\n \"40000x600\": 51,\n \"40000x750\": 51,\n \"40000x910\": 51,\n \"40000x1050\": 51,\n \"40000x1230\": 51,\n \"50000x600\": 51,\n \"50000x750\": 51,\n \"50000x910\": 51,\n \"50000x1050\": 51,\n \"50000x1230\": 51,\n \"60000x600\": 61,\n \"60000x750\": 61,\n \"60000x910\": 61,\n \"60000x1050\": 61,\n \"60000x1230\": 61\n },\n \"1000x1500\": {\n \"1000x600\": 1.0,\n \"1000x750\": 11.0,\n \"1000x910\": 2.0,\n \"1000x1050\": 2.0,\n \"1000x1230\": 2.0,\n \"2000x600\": 11.0,\n \"2000x750\": 11.0,\n \"2000x910\": 11.0,\n \"2000x1050\": 11.0,\n \"2000x1230\": 12.0,\n \"3000x600\": 11.0,\n \"3000x750\": 11.0,\n \"3000x910\": 11.0,\n \"3000x1050\": 11.0,\n \"3000x1230\": 12.0,\n \"4000x600\": 21.0,\n \"4000x750\": 21.0,\n \"4000x910\": 21.0,\n \"4000x1050\": 21.0,\n \"4000x1230\": 21.0,\n \"5000x600\": 21.0,\n \"5000x750\": 21.0,\n \"5000x910\": 21.0,\n \"5000x1050\": 21.0,\n \"5000x1230\": 21.0,\n \"6500x600\": 31.0,\n \"6500x750\": 31.0,\n \"6500x910\": 31.0,\n \"6500x1050\": 31.0,\n \"6500x1230\": 31.0,\n \"8000x600\": 31.0,\n \"8000x750\": 31.0,\n \"8000x910\": 31.0,\n \"8000x1050\": 31.0,\n \"8000x1230\": 31.0,\n \"10000x600\": 31.0,\n \"10000x750\": 31.0,\n \"10000x910\": 31.0,\n \"10000x1050\": 31.0,\n \"10000x1230\": 31.0,\n \"12500x600\": 31.0,\n \"12500x750\": 31.0,\n \"12500x910\": 31.0,\n \"12500x1050\": 31.0,\n \"12500x1230\": 31.0,\n \"15500x600\": 31.0,\n \"15500x750\": 31.0,\n \"15500x910\": 31.0,\n \"15500x1050\": 31.0,\n \"15500x1230\": 31.0,\n \"20000x600\": 41.0,\n \"20000x750\": 41.0,\n \"20000x910\": 41.0,\n \"20000x1050\": 41.0,\n \"20000x1230\": 41.0,\n \"25000x600\": 41.0,\n \"25000x750\": 41.0,\n \"25000x910\": 41.0,\n \"25000x1050\": 41.0,\n \"25000x1230\": 41.0,\n \"30000x600\": 51.0,\n \"30000x750\": 51.0,\n \"30000x910\": 51.0,\n \"30000x1050\": 51.0,\n \"30000x1230\": 51.0,\n \"35000x600\": 51.0,\n \"35000x750\": 51.0,\n \"35000x910\": 51.0,\n \"35000x1050\": 51.0,\n \"35000x1230\": 51.0,\n \"40000x600\": 51.0,\n \"40000x750\": 51.0,\n \"40000x910\": 51.0,\n \"40000x1050\": 51.0,\n \"40000x1230\": 51.0,\n \"50000x600\": 51.0,\n \"50000x750\": 51.0,\n \"50000x910\": 51.0,\n \"50000x1050\": 51.0,\n \"50000x1230\": 51.0,\n \"60000x600\": 61.0,\n \"60000x750\": 61.0,\n \"60000x910\": 61.0,\n \"60000x1050\": 61.0,\n \"60000x1230\": 61.0\n },\n \"1000x2000\": {\n \"1000x600\": 2.0,\n \"1000x750\": 2.0,\n \"1000x910\": 2.0,\n \"1000x1050\": 2.0,\n \"1000x1230\": 2.0,\n \"2000x600\": 12.0,\n \"2000x750\": 12.0,\n \"2000x910\": 12.0,\n \"2000x1050\": 12.0,\n \"2000x1230\": 12.0,\n \"3000x600\": 12.0,\n \"3000x750\": 12.0,\n \"3000x910\": 12.0,\n \"3000x1050\": 12.0,\n \"3000x1230\": 12.0,\n \"4000x600\": 21.0,\n \"4000x750\": 21.0,\n \"4000x910\": 22.0,\n \"4000x1050\": 22.0,\n \"4000x1230\": 22.0,\n \"5000x600\": 21.0,\n \"5000x750\": 21.0,\n \"5000x910\": 22.0,\n \"5000x1050\": 22.0,\n \"5000x1230\": 22.0,\n \"6500x600\": 31.0,\n \"6500x750\": 31.0,\n \"6500x910\": 31.0,\n \"6500x1050\": 31.0,\n \"6500x1230\": 31.0,\n \"8000x600\": 31.0,\n \"8000x750\": 31.0,\n \"8000x910\": 31.0,\n \"8000x1050\": 31.0,\n \"8000x1230\": 32.0,\n \"10000x600\": 31.0,\n \"10000x750\": 31.0,\n \"10000x910\": 31.0,\n \"10000x1050\": 31.0,\n \"10000x1230\": 32.0,\n \"12500x600\": 31.0,\n \"12500x750\": 31.0,\n \"12500x910\": 31.0,\n \"12500x1050\": 31.0,\n \"12500x1230\": 32.0,\n \"15500x600\": 31.0,\n \"15500x750\": 31.0,\n \"15500x910\": 31.0,\n \"15500x1050\": 31.0,\n \"15500x1230\": 32.0,\n \"20000x600\": 41.0,\n \"20000x750\": 41.0,\n \"20000x910\": 41.0,\n \"20000x1050\": 41.0,\n \"20000x1230\": 41.0,\n \"25000x600\": 41.0,\n \"25000x750\": 41.0,\n \"25000x910\": 41.0,\n \"25000x1050\": 41.0,\n \"25000x1230\": 41.0,\n \"30000x600\": 51.0,\n \"30000x750\": 51.0,\n \"30000x910\": 51.0,\n \"30000x1050\": 51.0,\n \"30000x1230\": 51.0,\n \"35000x600\": 51.0,\n \"35000x750\": 51.0,\n \"35000x910\": 51.0,\n \"35000x1050\": 51.0,\n \"35000x1230\": 51.0,\n \"40000x600\": 51.0,\n \"40000x750\": 51.0,\n \"40000x910\": 51.0,\n \"40000x1050\": 51.0,\n \"40000x1230\": 51.0,\n \"50000x600\": 51.0,\n \"50000x750\": 51.0,\n \"50000x910\": 51.0,\n \"50000x1050\": 51.0,\n \"50000x1230\": 51.0,\n \"60000x600\": 61.0,\n \"60000x750\": 61.0,\n \"60000x910\": 61.0,\n \"60000x1050\": 61.0,\n \"60000x1230\": 61.0\n },\n \"1000x2500\": {\n \"1000x600\": 2.0,\n \"1000x750\": 2.0,\n \"1000x910\": 2.0,\n \"1000x1050\": 2.0,\n \"1000x1230\": 12.0,\n \"2000x600\": 12.0,\n \"2000x750\": 12.0,\n \"2000x910\": 12.0,\n \"2000x1050\": 12.0,\n \"2000x1230\": 12.0,\n \"3000x600\": 12.0,\n \"3000x750\": 12.0,\n \"3000x910\": 12.0,\n \"3000x1050\": 12.0,\n \"3000x1230\": 12.0,\n \"4000x600\": 22.0,\n \"4000x750\": 22.0,\n \"4000x910\": 22.0,\n \"4000x1050\": 22.0,\n \"4000x1230\": 22.0,\n \"5000x600\": 22.0,\n \"5000x750\": 22.0,\n \"5000x910\": 22.0,\n \"5000x1050\": 22.0,\n \"5000x1230\": 22.0,\n \"6500x600\": 31.0,\n \"6500x750\": 32.0,\n \"6500x910\": 32.0,\n \"6500x1050\": 32.0,\n \"6500x1230\": 32.0,\n \"8000x600\": 31.0,\n \"8000x750\": 32.0,\n \"8000x910\": 32.0,\n \"8000x1050\": 32.0,\n \"8000x1230\": 32.0,\n \"10000x600\": 31.0,\n \"10000x750\": 32.0,\n \"10000x910\": 32.0,\n \"10000x1050\": 32.0,\n \"10000x1230\": 32.0,\n \"12500x600\": 31.0,\n \"12500x750\": 31.0,\n \"12500x910\": 32.0,\n \"12500x1050\": 32.0,\n \"12500x1230\": 32.0,\n \"15500x600\": 31.0,\n \"15500x750\": 31.0,\n \"15500x910\": 32.0,\n \"15500x1050\": 32.0,\n \"15500x1230\": 32.0,\n \"20000x600\": 41.0,\n \"20000x750\": 41.0,\n \"20000x910\": 41.0,\n \"20000x1050\": 42.0,\n \"20000x1230\": 42.0,\n \"25000x600\": 41.0,\n \"25000x750\": 41.0,\n \"25000x910\": 41.0,\n \"25000x1050\": 42.0,\n \"25000x1230\": 42.0,\n \"30000x600\": 51.0,\n \"30000x750\": 51.0,\n \"30000x910\": 51.0,\n \"30000x1050\": 51.0,\n \"30000x1230\": 51.0,\n \"35000x600\": 51.0,\n \"35000x750\": 51.0,\n \"35000x910\": 51.0,\n \"35000x1050\": 51.0,\n \"35000x1230\": 52.0,\n \"40000x600\": 51.0,\n \"40000x750\": 51.0,\n \"40000x910\": 51.0,\n \"40000x1050\": 51.0,\n \"40000x1230\": 52.0,\n \"50000x600\": 51.0,\n \"50000x750\": 51.0,\n \"50000x910\": 51.0,\n \"50000x1050\": 51.0,\n \"50000x1230\": 52.0,\n \"60000x600\": 61.0,\n \"60000x750\": 61.0,\n \"60000x910\": 61.0,\n \"60000x1050\": 61.0,\n \"60000x1230\": 61.0\n },\n \"1000x3000\": {\n \"1000x600\": 22.0,\n \"1000x750\": 22.0,\n \"1000x910\": 22.0,\n \"1000x1050\": 22.0,\n \"1000x1230\": 23.0,\n \"2000x600\": 12.0,\n \"2000x750\": 12.0,\n \"2000x910\": 12.0,\n \"2000x1050\": 22.0,\n \"2000x1230\": 22.0,\n \"3000x600\": 12.0,\n \"3000x750\": 12.0,\n \"3000x910\": 12.0,\n \"3000x1050\": 22.0,\n \"3000x1230\": 22.0,\n \"4000x600\": 22.0,\n \"4000x750\": 22.0,\n \"4000x910\": 22.0,\n \"4000x1050\": 22.0,\n \"4000x1230\": 22.0,\n \"5000x600\": 22.0,\n \"5000x750\": 22.0,\n \"5000x910\": 22.0,\n \"5000x1050\": 22.0,\n \"5000x1230\": 22.0,\n \"6500x600\": 32.0,\n \"6500x750\": 32.0,\n \"6500x910\": 32.0,\n \"6500x1050\": 32.0,\n \"6500x1230\": 32.0,\n \"8000x600\": 32.0,\n \"8000x750\": 32.0,\n \"8000x910\": 32.0,\n \"8000x1050\": 32.0,\n \"8000x1230\": 32.0,\n \"10000x600\": 32.0,\n \"10000x750\": 32.0,\n \"10000x910\": 32.0,\n \"10000x1050\": 32.0,\n \"10000x1230\": 32.0,\n \"12500x600\": 32.0,\n \"12500x750\": 32.0,\n \"12500x910\": 32.0,\n \"12500x1050\": 32.0,\n \"12500x1230\": 32.0,\n \"15500x600\": 32.0,\n \"15500x750\": 32.0,\n \"15500x910\": 32.0,\n \"15500x1050\": 32.0,\n \"15500x1230\": 32.0,\n \"20000x600\": 41.0,\n \"20000x750\": 42.0,\n \"20000x910\": 42.0,\n \"20000x1050\": 42.0,\n \"20000x1230\": 42.0,\n \"25000x600\": 41.0,\n \"25000x750\": 42.0,\n \"25000x910\": 42.0,\n \"25000x1050\": 42.0,\n \"25000x1230\": 42.0,\n \"30000x600\": 51.0,\n \"30000x750\": 51.0,\n \"30000x910\": 51.0,\n \"30000x1050\": 52.0,\n \"30000x1230\": 52.0,\n \"35000x600\": 51.0,\n \"35000x750\": 51.0,\n \"35000x910\": 52.0,\n \"35000x1050\": 52.0,\n \"35000x1230\": 52.0,\n \"40000x600\": 51.0,\n \"40000x750\": 51.0,\n \"40000x910\": 52.0,\n \"40000x1050\": 52.0,\n \"40000x1230\": 52.0,\n \"50000x600\": 51.0,\n \"50000x750\": 51.0,\n \"50000x910\": 52.0,\n \"50000x1050\": 52.0,\n \"50000x1230\": 52.0,\n \"60000x600\": 61.0,\n \"60000x750\": 61.0,\n \"60000x910\": 61.0,\n \"60000x1050\": 61.0,\n \"60000x1230\": 62.0\n },\n \"1000x3500\": {\n \"1000x600\": 32.0,\n \"1000x750\": 32.0,\n \"1000x910\": 32.0,\n \"1000x1050\": 32.0,\n \"1000x1230\": 32.0,\n \"2000x600\": 23.0,\n \"2000x750\": 23.0,\n \"2000x910\": 23.0,\n \"2000x1050\": 23.0,\n \"2000x1230\": 23.0,\n \"3000x600\": 23.0,\n \"3000x750\": 23.0,\n \"3000x910\": 23.0,\n \"3000x1050\": 23.0,\n \"3000x1230\": 23.0,\n \"4000x600\": 23.0,\n \"4000x750\": 23.0,\n \"4000x910\": 23.0,\n \"4000x1050\": 23.0,\n \"4000x1230\": 23.0,\n \"5000x600\": 23.0,\n \"5000x750\": 23.0,\n \"5000x910\": 23.0,\n \"5000x1050\": 23.0,\n \"5000x1230\": 23.0,\n \"6500x600\": 32.0,\n \"6500x750\": 32.0,\n \"6500x910\": 32.0,\n \"6500x1050\": 32.0,\n \"6500x1230\": 32.0,\n \"8000x600\": 32.0,\n \"8000x750\": 32.0,\n \"8000x910\": 32.0,\n \"8000x1050\": 32.0,\n \"8000x1230\": 32.0,\n \"10000x600\": 32.0,\n \"10000x750\": 32.0,\n \"10000x910\": 32.0,\n \"10000x1050\": 32.0,\n \"10000x1230\": 32.0,\n \"12500x600\": 32.0,\n \"12500x750\": 32.0,\n \"12500x910\": 32.0,\n \"12500x1050\": 32.0,\n \"12500x1230\": 33.0,\n \"15500x600\": 32.0,\n \"15500x750\": 32.0,\n \"15500x910\": 32.0,\n \"15500x1050\": 32.0,\n \"15500x1230\": 33.0,\n \"20000x600\": 42.0,\n \"20000x750\": 42.0,\n \"20000x910\": 42.0,\n \"20000x1050\": 42.0,\n \"20000x1230\": 42.0,\n \"25000x600\": 42.0,\n \"25000x750\": 42.0,\n \"25000x910\": 42.0,\n \"25000x1050\": 42.0,\n \"25000x1230\": 42.0,\n \"30000x600\": 52.0,\n \"30000x750\": 52.0,\n \"30000x910\": 52.0,\n \"30000x1050\": 52.0,\n \"30000x1230\": 52.0,\n \"35000x600\": 52.0,\n \"35000x750\": 52.0,\n \"35000x910\": 52.0,\n \"35000x1050\": 52.0,\n \"35000x1230\": 52.0,\n \"40000x600\": 52.0,\n \"40000x750\": 52.0,\n \"40000x910\": 52.0,\n \"40000x1050\": 52.0,\n \"40000x1230\": 53.0,\n \"50000x600\": 52.0,\n \"50000x750\": 52.0,\n \"50000x910\": 52.0,\n \"50000x1050\": 52.0,\n \"50000x1230\": 52.0,\n \"60000x600\": 61.0,\n \"60000x750\": 61.0,\n \"60000x910\": 62.0,\n \"60000x1050\": 62.0,\n \"60000x1230\": 62.0\n },\n \"1000x4000\": {\n \"1000x600\": 42.0,\n \"1000x750\": 42.0,\n \"1000x910\": 42.0,\n \"1000x1050\": 43.0,\n \"1000x1230\": 44.0,\n \"2000x600\": 42.0,\n \"2000x750\": 42.0,\n \"2000x910\": 42.0,\n \"2000x1050\": 43.0,\n \"2000x1230\": 44.0,\n \"3000x600\": 42.0,\n \"3000x750\": 42.0,\n \"3000x910\": 42.0,\n \"3000x1050\": 43.0,\n \"3000x1230\": 44.0,\n \"4000x600\": 42.0,\n \"4000x750\": 42.0,\n \"4000x910\": 42.0,\n \"4000x1050\": 43.0,\n \"4000x1230\": 44.0,\n \"5000x600\": 42.0,\n \"5000x750\": 42.0,\n \"5000x910\": 42.0,\n \"5000x1050\": 43.0,\n \"5000x1230\": 44.0,\n \"6500x600\": 42.0,\n \"6500x750\": 42.0,\n \"6500x910\": 42.0,\n \"6500x1050\": 43.0,\n \"6500x1230\": 44.0,\n \"8000x600\": 42.0,\n \"8000x750\": 42.0,\n \"8000x910\": 42.0,\n \"8000x1050\": 43.0,\n \"8000x1230\": 44.0,\n \"10000x600\": 42.0,\n \"10000x750\": 42.0,\n \"10000x910\": 42.0,\n \"10000x1050\": 43.0,\n \"10000x1230\": 44.0,\n \"12500x600\": 42.0,\n \"12500x750\": 42.0,\n \"12500x910\": 42.0,\n \"12500x1050\": 43.0,\n \"12500x1230\": 44.0,\n \"15500x600\": 42.0,\n \"15500x750\": 42.0,\n \"15500x910\": 42.0,\n \"15500x1050\": 43.0,\n \"15500x1230\": 44.0,\n \"20000x600\": 42.0,\n \"20000x750\": 42.0,\n \"20000x910\": 42.0,\n \"20000x1050\": 43.0,\n \"20000x1230\": 44.0,\n \"25000x600\": 42.0,\n \"25000x750\": 42.0,\n \"25000x910\": 42.0,\n \"25000x1050\": 43.0,\n \"25000x1230\": 44.0,\n \"30000x600\": 52.0,\n \"30000x750\": 52.0,\n \"30000x910\": 52.0,\n \"30000x1050\": 52.0,\n \"30000x1230\": 52.0,\n \"35000x600\": 52.0,\n \"35000x750\": 52.0,\n \"35000x910\": 52.0,\n \"35000x1050\": 52.0,\n \"35000x1230\": 53.0,\n \"40000x600\": 52.0,\n \"40000x750\": 52.0,\n \"40000x910\": 52.0,\n \"40000x1050\": 52.0,\n \"40000x1230\": 53.0,\n \"50000x600\": 52.0,\n \"50000x750\": 52.0,\n \"50000x910\": 52.0,\n \"50000x1050\": 52.0,\n \"50000x1230\": 53.0,\n \"60000x600\": 62.0,\n \"60000x750\": 62.0,\n \"60000x910\": 62.0,\n \"60000x1050\": 62.0,\n \"60000x1230\": 62.0\n },\n \"1000x5000\": {\n \"1000x600\": 45.0,\n \"1000x750\": 45.0,\n \"1000x910\": 45.0,\n \"1000x1050\": 45.0,\n \"1000x1230\": 54.0,\n \"2000x600\": 45.0,\n \"2000x750\": 45.0,\n \"2000x910\": 45.0,\n \"2000x1050\": 45.0,\n \"2000x1230\": 54.0,\n \"3000x600\": 45.0,\n \"3000x750\": 45.0,\n \"3000x910\": 45.0,\n \"3000x1050\": 45.0,\n \"3000x1230\": 54.0,\n \"4000x600\": 45.0,\n \"4000x750\": 45.0,\n \"4000x910\": 45.0,\n \"4000x1050\": 45.0,\n \"4000x1230\": 54.0,\n \"5000x600\": 45.0,\n \"5000x750\": 45.0,\n \"5000x910\": 45.0,\n \"5000x1050\": 45.0,\n \"5000x1230\": 54.0,\n \"6500x600\": 45.0,\n \"6500x750\": 45.0,\n \"6500x910\": 45.0,\n \"6500x1050\": 45.0,\n \"6500x1230\": 54.0,\n \"8000x600\": 45.0,\n \"8000x750\": 45.0,\n \"8000x910\": 45.0,\n \"8000x1050\": 45.0,\n \"8000x1230\": 54.0,\n \"10000x600\": 45.0,\n \"10000x750\": 45.0,\n \"10000x910\": 45.0,\n \"10000x1050\": 45.0,\n \"10000x1230\": 54.0,\n \"12500x600\": 45.0,\n \"12500x750\": 45.0,\n \"12500x910\": 45.0,\n \"12500x1050\": 45.0,\n \"12500x1230\": 54.0,\n \"15500x600\": 45.0,\n \"15500x750\": 45.0,\n \"15500x910\": 45.0,\n \"15500x1050\": 45.0,\n \"15500x1230\": 54.0,\n \"20000x600\": 45.0,\n \"20000x750\": 45.0,\n \"20000x910\": 45.0,\n \"20000x1050\": 45.0,\n \"20000x1230\": 54.0,\n \"25000x600\": 45.0,\n \"25000x750\": 45.0,\n \"25000x910\": 45.0,\n \"25000x1050\": 45.0,\n \"25000x1230\": 54.0,\n \"30000x600\": 54.0,\n \"30000x750\": 54.0,\n \"30000x910\": 54.0,\n \"30000x1050\": 54.0,\n \"30000x1230\": 54.0,\n \"35000x600\": 54.0,\n \"35000x750\": 54.0,\n \"35000x910\": 54.0,\n \"35000x1050\": 54.0,\n \"35000x1230\": 54.0,\n \"40000x600\": 54.0,\n \"40000x750\": 54.0,\n \"40000x910\": 54.0,\n \"40000x1050\": 54.0,\n \"40000x1230\": 54.0,\n \"50000x600\": 54.0,\n \"50000x750\": 54.0,\n \"50000x910\": 54.0,\n \"50000x1050\": 54.0,\n \"50000x1230\": 54.0,\n \"60000x600\": 63.0,\n \"60000x750\": 63.0,\n \"60000x910\": 63.0,\n \"60000x1050\": 64.0,\n \"60000x1230\": 64.0\n },\n \"1500x1000\": {\n \"1000x600\": 1.0,\n \"1000x750\": 1.0,\n \"1000x910\": 1.0,\n \"1000x1050\": 1.0,\n \"1000x1230\": 11.0,\n \"2000x600\": 11.0,\n \"2000x750\": 11.0,\n \"2000x910\": 11.0,\n \"2000x1050\": 11.0,\n \"2000x1230\": 11.0,\n \"3000x600\": 21.0,\n \"3000x750\": 21.0,\n \"3000x910\": 21.0,\n \"3000x1050\": 21.0,\n \"3000x1230\": 21.0,\n \"4000x600\": 21.0,\n \"4000x750\": 21.0,\n \"4000x910\": 21.0,\n \"4000x1050\": 21.0,\n \"4000x1230\": 21.0,\n \"5000x600\": 21.0,\n \"5000x750\": 21.0,\n \"5000x910\": 21.0,\n \"5000x1050\": 21.0,\n \"5000x1230\": 21.0,\n \"6500x600\": 31.0,\n \"6500x750\": 31.0,\n \"6500x910\": 31.0,\n \"6500x1050\": 31.0,\n \"6500x1230\": 31.0,\n \"8000x600\": 31.0,\n \"8000x750\": 31.0,\n \"8000x910\": 31.0,\n \"8000x1050\": 31.0,\n \"8000x1230\": 31.0,\n \"10000x600\": 31.0,\n \"10000x750\": 31.0,\n \"10000x910\": 31.0,\n \"10000x1050\": 31.0,\n \"10000x1230\": 31.0,\n \"12500x600\": 31.0,\n \"12500x750\": 31.0,\n \"12500x910\": 31.0,\n \"12500x1050\": 31.0,\n \"12500x1230\": 31.0,\n \"15500x600\": 41.0,\n \"15500x750\": 41.0,\n \"15500x910\": 41.0,\n \"15500x1050\": 41.0,\n \"15500x1230\": 41.0,\n \"20000x600\": 41.0,\n \"20000x750\": 41.0,\n \"20000x910\": 41.0,\n \"20000x1050\": 41.0,\n \"20000x1230\": 41.0,\n \"25000x600\": 51.0,\n \"25000x750\": 51.0,\n \"25000x910\": 51.0,\n \"25000x1050\": 51.0,\n \"25000x1230\": 51.0,\n \"30000x600\": 51.0,\n \"30000x750\": 51.0,\n \"30000x910\": 51.0,\n \"30000x1050\": 51.0,\n \"30000x1230\": 51.0,\n \"35000x600\": 51.0,\n \"35000x750\": 51.0,\n \"35000x910\": 51.0,\n \"35000x1050\": 51.0,\n \"35000x1230\": 51.0,\n \"40000x600\": 51.0,\n \"40000x750\": 51.0,\n \"40000x910\": 51.0,\n \"40000x1050\": 51.0,\n \"40000x1230\": 52.0,\n \"50000x600\": 51.0,\n \"50000x750\": 51.0,\n \"50000x910\": 52.0,\n \"50000x1050\": 51.0,\n \"50000x1230\": 52.0,\n \"60000x600\": 61.0,\n \"60000x750\": 61.0,\n \"60000x910\": 61.0,\n \"60000x1050\": 61.0,\n \"60000x1230\": 61.0\n },\n \"1500x1500\": {\n \"1000x600\": 2.0,\n \"1000x750\": 2.0,\n \"1000x910\": 2.0,\n \"1000x1050\": 2.0,\n \"1000x1230\": 2.0,\n \"2000x600\": 11.0,\n \"2000x750\": 12.0,\n \"2000x910\": 12.0,\n \"2000x1050\": 12.0,\n \"2000x1230\": 12.0,\n \"3000x600\": 21.0,\n \"3000x750\": 21.0,\n \"3000x910\": 21.0,\n \"3000x1050\": 21.0,\n \"3000x1230\": 22.0,\n \"4000x600\": 21.0,\n \"4000x750\": 21.0,\n \"4000x910\": 21.0,\n \"4000x1050\": 21.0,\n \"4000x1230\": 22.0,\n \"5000x600\": 31.0,\n \"5000x750\": 31.0,\n \"5000x910\": 31.0,\n \"5000x1050\": 31.0,\n \"5000x1230\": 31.0,\n \"6500x600\": 31.0,\n \"6500x750\": 31.0,\n \"6500x910\": 31.0,\n \"6500x1050\": 31.0,\n \"6500x1230\": 31.0,\n \"8000x600\": 31.0,\n \"8000x750\": 31.0,\n \"8000x910\": 31.0,\n \"8000x1050\": 31.0,\n \"8000x1230\": 31.0,\n \"10000x600\": 31.0,\n \"10000x750\": 31.0,\n \"10000x910\": 31.0,\n \"10000x1050\": 31.0,\n \"10000x1230\": 31.0,\n \"12500x600\": 31.0,\n \"12500x750\": 31.0,\n \"12500x910\": 31.0,\n \"12500x1050\": 31.0,\n \"12500x1230\": 31.0,\n \"15500x600\": 41.0,\n \"15500x750\": 41.0,\n \"15500x910\": 41.0,\n \"15500x1050\": 41.0,\n \"15500x1230\": 41.0,\n \"20000x600\": 41.0,\n \"20000x750\": 41.0,\n \"20000x910\": 41.0,\n \"20000x1050\": 41.0,\n \"20000x1230\": 41.0,\n \"25000x600\": 51.0,\n \"25000x750\": 51.0,\n \"25000x910\": 51.0,\n \"25000x1050\": 51.0,\n \"25000x1230\": 51.0,\n \"30000x600\": 51.0,\n \"30000x750\": 51.0,\n \"30000x910\": 51.0,\n \"30000x1050\": 51.0,\n \"30000x1230\": 51.0,\n \"35000x600\": 51.0,\n \"35000x750\": 51.0,\n \"35000x910\": 51.0,\n \"35000x1050\": 51.0,\n \"35000x1230\": 51.0,\n \"40000x600\": 51.0,\n \"40000x750\": 51.0,\n \"40000x910\": 51.0,\n \"40000x1050\": 51.0,\n \"40000x1230\": 52.0,\n \"50000x600\": 51.0,\n \"50000x750\": 51.0,\n \"50000x910\": 52.0,\n \"50000x1050\": 51.0,\n \"50000x1230\": 52.0,\n \"60000x600\": 61.0,\n \"60000x750\": 61.0,\n \"60000x910\": 61.0,\n \"60000x1050\": 61.0,\n \"60000x1230\": 61.0\n },\n \"1500x2000\": {\n \"1000x600\": 2.0,\n \"1000x750\": 2.0,\n \"1000x910\": 2.0,\n \"1000x1050\": 2.0,\n \"1000x1230\": 12.0,\n \"2000x600\": 12.0,\n \"2000x750\": 12.0,\n \"2000x910\": 12.0,\n \"2000x1050\": 12.0,\n \"2000x1230\": 12.0,\n \"3000x600\": 22.0,\n \"3000x750\": 22.0,\n \"3000x910\": 22.0,\n \"3000x1050\": 22.0,\n \"3000x1230\": 22.0,\n \"4000x600\": 22.0,\n \"4000x750\": 22.0,\n \"4000x910\": 22.0,\n \"4000x1050\": 22.0,\n \"4000x1230\": 22.0,\n \"5000x600\": 31.0,\n \"5000x750\": 31.0,\n \"5000x910\": 31.0,\n \"5000x1050\": 31.0,\n \"5000x1230\": 32.0,\n \"6500x600\": 31.0,\n \"6500x750\": 31.0,\n \"6500x910\": 31.0,\n \"6500x1050\": 31.0,\n \"6500x1230\": 32.0,\n \"8000x600\": 31.0,\n \"8000x750\": 31.0,\n \"8000x910\": 31.0,\n \"8000x1050\": 31.0,\n \"8000x1230\": 32.0,\n \"10000x600\": 31.0,\n \"10000x750\": 31.0,\n \"10000x910\": 31.0,\n \"10000x1050\": 31.0,\n \"10000x1230\": 32.0,\n \"12500x600\": 31.0,\n \"12500x750\": 31.0,\n \"12500x910\": 32.0,\n \"12500x1050\": 32.0,\n \"12500x1230\": 32.0,\n \"15500x600\": 41.0,\n \"15500x750\": 41.0,\n \"15500x910\": 41.0,\n \"15500x1050\": 42.0,\n \"15500x1230\": 42.0,\n \"20000x600\": 41.0,\n \"20000x750\": 41.0,\n \"20000x910\": 41.0,\n \"20000x1050\": 42.0,\n \"20000x1230\": 42.0,\n \"25000x600\": 51.0,\n \"25000x750\": 51.0,\n \"25000x910\": 51.0,\n \"25000x1050\": 51.0,\n \"25000x1230\": 51.0,\n \"30000x600\": 51.0,\n \"30000x750\": 51.0,\n \"30000x910\": 51.0,\n \"30000x1050\": 51.0,\n \"30000x1230\": 51.0,\n \"35000x600\": 51.0,\n \"35000x750\": 51.0,\n \"35000x910\": 51.0,\n \"35000x1050\": 51.0,\n \"35000x1230\": 52.0,\n \"40000x600\": 51.0,\n \"40000x750\": 51.0,\n \"40000x910\": 51.0,\n \"40000x1050\": 51.0,\n \"40000x1230\": 52.0,\n \"50000x600\": 51.0,\n \"50000x750\": 51.0,\n \"50000x910\": 52.0,\n \"50000x1050\": 51.0,\n \"50000x1230\": 52.0,\n \"60000x600\": 61.0,\n \"60000x750\": 61.0,\n \"60000x910\": 61.0,\n \"60000x1050\": 61.0,\n \"60000x1230\": 61.0\n },\n \"1500x2500\": {\n \"1000x600\": 12.0,\n \"1000x750\": 12.0,\n \"1000x910\": 22.0,\n \"1000x1050\": 22.0,\n \"1000x1230\": 23.0,\n \"2000x600\": 12.0,\n \"2000x750\": 12.0,\n \"2000x910\": 12.0,\n \"2000x1050\": 22.0,\n \"2000x1230\": 22.0,\n \"3000x600\": 22.0,\n \"3000x750\": 22.0,\n \"3000x910\": 22.0,\n \"3000x1050\": 22.0,\n \"3000x1230\": 22.0,\n \"4000x600\": 22.0,\n \"4000x750\": 22.0,\n \"4000x910\": 22.0,\n \"4000x1050\": 22.0,\n \"4000x1230\": 22.0,\n \"5000x600\": 31.0,\n \"5000x750\": 32.0,\n \"5000x910\": 32.0,\n \"5000x1050\": 32.0,\n \"5000x1230\": 32.0,\n \"6500x600\": 31.0,\n \"6500x750\": 32.0,\n \"6500x910\": 32.0,\n \"6500x1050\": 32.0,\n \"6500x1230\": 32.0,\n \"8000x600\": 31.0,\n \"8000x750\": 32.0,\n \"8000x910\": 32.0,\n \"8000x1050\": 32.0,\n \"8000x1230\": 32.0,\n \"10000x600\": 31.0,\n \"10000x750\": 32.0,\n \"10000x910\": 32.0,\n \"10000x1050\": 32.0,\n \"10000x1230\": 32.0,\n \"12500x600\": 32.0,\n \"12500x750\": 32.0,\n \"12500x910\": 32.0,\n \"12500x1050\": 32.0,\n \"12500x1230\": 32.0,\n \"15500x600\": 42.0,\n \"15500x750\": 42.0,\n \"15500x910\": 42.0,\n \"15500x1050\": 42.0,\n \"15500x1230\": 42.0,\n \"20000x600\": 41.0,\n \"20000x750\": 42.0,\n \"20000x910\": 42.0,\n \"20000x1050\": 42.0,\n \"20000x1230\": 42.0,\n \"25000x600\": 51.0,\n \"25000x750\": 51.0,\n \"25000x910\": 51.0,\n \"25000x1050\": 52.0,\n \"25000x1230\": 52.0,\n \"30000x600\": 51.0,\n \"30000x750\": 51.0,\n \"30000x910\": 51.0,\n \"30000x1050\": 52.0,\n \"30000x1230\": 52.0,\n \"35000x600\": 51.0,\n \"35000x750\": 51.0,\n \"35000x910\": 52.0,\n \"35000x1050\": 52.0,\n \"35000x1230\": 52.0,\n \"40000x600\": 51.0,\n \"40000x750\": 51.0,\n \"40000x910\": 52.0,\n \"40000x1050\": 52.0,\n \"40000x1230\": 52.0,\n \"50000x600\": 51.0,\n \"50000x750\": 51.0,\n \"50000x910\": 52.0,\n \"50000x1050\": 52.0,\n \"50000x1230\": 52.0,\n \"60000x600\": 61.0,\n \"60000x750\": 61.0,\n \"60000x910\": 61.0,\n \"60000x1050\": 62.0,\n \"60000x1230\": 62.0\n },\n \"1500x3000\": {\n \"1000x600\": 22.0,\n \"1000x750\": 22.0,\n \"1000x910\": 23.0,\n \"1000x1050\": 32.0,\n \"1000x1230\": 33.0,\n \"2000x600\": 12.0,\n \"2000x750\": 22.0,\n \"2000x910\": 23.0,\n \"2000x1050\": 23.0,\n \"2000x1230\": 32.0,\n \"3000x600\": 22.0,\n \"3000x750\": 22.0,\n \"3000x910\": 23.0,\n \"3000x1050\": 23.0,\n \"3000x1230\": 32.0,\n \"4000x600\": 22.0,\n \"4000x750\": 22.0,\n \"4000x910\": 23.0,\n \"4000x1050\": 23.0,\n \"4000x1230\": 32.0,\n \"5000x600\": 32.0,\n \"5000x750\": 32.0,\n \"5000x910\": 32.0,\n \"5000x1050\": 32.0,\n \"5000x1230\": 32.0,\n \"6500x600\": 32.0,\n \"6500x750\": 32.0,\n \"6500x910\": 32.0,\n \"6500x1050\": 32.0,\n \"6500x1230\": 32.0,\n \"8000x600\": 32.0,\n \"8000x750\": 32.0,\n \"8000x910\": 32.0,\n \"8000x1050\": 32.0,\n \"8000x1230\": 32.0,\n \"10000x600\": 32.0,\n \"10000x750\": 32.0,\n \"10000x910\": 32.0,\n \"10000x1050\": 32.0,\n \"10000x1230\": 32.0,\n \"12500x600\": 32.0,\n \"12500x750\": 32.0,\n \"12500x910\": 32.0,\n \"12500x1050\": 33.0,\n \"12500x1230\": 34.0,\n \"15500x600\": 42.0,\n \"15500x750\": 42.0,\n \"15500x910\": 42.0,\n \"15500x1050\": 42.0,\n \"15500x1230\": 43.0,\n \"20000x600\": 42.0,\n \"20000x750\": 42.0,\n \"20000x910\": 42.0,\n \"20000x1050\": 42.0,\n \"20000x1230\": 43.0,\n \"25000x600\": 51.0,\n \"25000x750\": 52.0,\n \"25000x910\": 52.0,\n \"25000x1050\": 52.0,\n \"25000x1230\": 52.0,\n \"30000x600\": 51.0,\n \"30000x750\": 52.0,\n \"30000x910\": 52.0,\n \"30000x1050\": 52.0,\n \"30000x1230\": 52.0,\n \"35000x600\": 52.0,\n \"35000x750\": 52.0,\n \"35000x910\": 52.0,\n \"35000x1050\": 52.0,\n \"35000x1230\": 52.0,\n \"40000x600\": 52.0,\n \"40000x750\": 52.0,\n \"40000x910\": 52.0,\n \"40000x1050\": 52.0,\n \"40000x1230\": 52.0,\n \"50000x600\": 52.0,\n \"50000x750\": 52.0,\n \"50000x910\": 52.0,\n \"50000x1050\": 52.0,\n \"50000x1230\": 52.0,\n \"60000x600\": 61.0,\n \"60000x750\": 62.0,\n \"60000x910\": 62.0,\n \"60000x1050\": 62.0,\n \"60000x1230\": 62.0\n },\n \"1500x3500\": {\n \"1000x600\": 32.0,\n \"1000x750\": 32.0,\n \"1000x910\": 33.0,\n \"1000x1050\": 33.0,\n \"1000x1230\": 43.0,\n \"2000x600\": 23.0,\n \"2000x750\": 23.0,\n \"2000x910\": 32.0,\n \"2000x1050\": 33.0,\n \"2000x1230\": 34.0,\n \"3000x600\": 23.0,\n \"3000x750\": 23.0,\n \"3000x910\": 32.0,\n \"3000x1050\": 33.0,\n \"3000x1230\": 34.0,\n \"4000x600\": 32.0,\n \"4000x750\": 32.0,\n \"4000x910\": 32.0,\n \"4000x1050\": 33.0,\n \"4000x1230\": 34.0,\n \"5000x600\": 32.0,\n \"5000x750\": 32.0,\n \"5000x910\": 32.0,\n \"5000x1050\": 33.0,\n \"5000x1230\": 34.0,\n \"6500x600\": 32.0,\n \"6500x750\": 32.0,\n \"6500x910\": 32.0,\n \"6500x1050\": 33.0,\n \"6500x1230\": 34.0,\n \"8000x600\": 32.0,\n \"8000x750\": 32.0,\n \"8000x910\": 32.0,\n \"8000x1050\": 33.0,\n \"8000x1230\": 34.0,\n \"10000x600\": 32.0,\n \"10000x750\": 32.0,\n \"10000x910\": 32.0,\n \"10000x1050\": 33.0,\n \"10000x1230\": 34.0,\n \"12500x600\": 32.0,\n \"12500x750\": 33.0,\n \"12500x910\": 34.0,\n \"12500x1050\": 34.0,\n \"12500x1230\": 44.0,\n \"15500x600\": 42.0,\n \"15500x750\": 42.0,\n \"15500x910\": 43.0,\n \"15500x1050\": 44.0,\n \"15500x1230\": 44.0,\n \"20000x600\": 42.0,\n \"20000x750\": 42.0,\n \"20000x910\": 43.0,\n \"20000x1050\": 44.0,\n \"20000x1230\": 44.0,\n \"25000x600\": 52.0,\n \"25000x750\": 52.0,\n \"25000x910\": 52.0,\n \"25000x1050\": 52.0,\n \"25000x1230\": 53.0,\n \"30000x600\": 52.0,\n \"30000x750\": 52.0,\n \"30000x910\": 52.0,\n \"30000x1050\": 52.0,\n \"30000x1230\": 53.0,\n \"35000x600\": 52.0,\n \"35000x750\": 52.0,\n \"35000x910\": 52.0,\n \"35000x1050\": 53.0,\n \"35000x1230\": 54.0,\n \"40000x600\": 52.0,\n \"40000x750\": 52.0,\n \"40000x910\": 52.0,\n \"40000x1050\": 53.0,\n \"40000x1230\": 54.0,\n \"50000x600\": 52.0,\n \"50000x750\": 52.0,\n \"50000x910\": 53.0,\n \"50000x1050\": 53.0,\n \"50000x1230\": 54.0,\n \"60000x600\": 62.0,\n \"60000x750\": 62.0,\n \"60000x910\": 62.0,\n \"60000x1050\": 62.0,\n \"60000x1230\": 63.0\n },\n \"1500x4000\": {\n \"1000x600\": 42.0,\n \"1000x750\": 43.0,\n \"1000x910\": 44.0,\n \"1000x1050\": 44.0,\n \"1000x1230\": 44.0,\n \"2000x600\": 42.0,\n \"2000x750\": 43.0,\n \"2000x910\": 44.0,\n \"2000x1050\": 44.0,\n \"2000x1230\": 44.0,\n \"3000x600\": 42.0,\n \"3000x750\": 43.0,\n \"3000x910\": 44.0,\n \"3000x1050\": 44.0,\n \"3000x1230\": 44.0,\n \"4000x600\": 42.0,\n \"4000x750\": 43.0,\n \"4000x910\": 44.0,\n \"4000x1050\": 44.0,\n \"4000x1230\": 44.0,\n \"5000x600\": 42.0,\n \"5000x750\": 43.0,\n \"5000x910\": 44.0,\n \"5000x1050\": 44.0,\n \"5000x1230\": 44.0,\n \"6500x600\": 42.0,\n \"6500x750\": 43.0,\n \"6500x910\": 44.0,\n \"6500x1050\": 44.0,\n \"6500x1230\": 44.0,\n \"8000x600\": 42.0,\n \"8000x750\": 43.0,\n \"8000x910\": 44.0,\n \"8000x1050\": 44.0,\n \"8000x1230\": 44.0,\n \"10000x600\": 42.0,\n \"10000x750\": 43.0,\n \"10000x910\": 44.0,\n \"10000x1050\": 44.0,\n \"10000x1230\": 44.0,\n \"12500x600\": 42.0,\n \"12500x750\": 43.0,\n \"12500x910\": 44.0,\n \"12500x1050\": 44.0,\n \"12500x1230\": 44.0,\n \"15500x600\": 42.0,\n \"15500x750\": 43.0,\n \"15500x910\": 44.0,\n \"15500x1050\": 44.0,\n \"15500x1230\": 44.0,\n \"20000x600\": 42.0,\n \"20000x750\": 43.0,\n \"20000x910\": 44.0,\n \"20000x1050\": 44.0,\n \"20000x1230\": 45.0,\n \"25000x600\": 52.0,\n \"25000x750\": 52.0,\n \"25000x910\": 53.0,\n \"25000x1050\": 54.0,\n \"25000x1230\": 54.0,\n \"30000x600\": 52.0,\n \"30000x750\": 52.0,\n \"30000x910\": 53.0,\n \"30000x1050\": 54.0,\n \"30000x1230\": 54.0,\n \"35000x600\": 52.0,\n \"35000x750\": 53.0,\n \"35000x910\": 54.0,\n \"35000x1050\": 54.0,\n \"35000x1230\": 54.0,\n \"40000x600\": 52.0,\n \"40000x750\": 53.0,\n \"40000x910\": 54.0,\n \"40000x1050\": 54.0,\n \"40000x1230\": 54.0,\n \"50000x600\": 52.0,\n \"50000x750\": 53.0,\n \"50000x910\": 54.0,\n \"50000x1050\": 54.0,\n \"50000x1230\": 54.0,\n \"60000x600\": 62.0,\n \"60000x750\": 62.0,\n \"60000x910\": 63.0,\n \"60000x1050\": 64.0,\n \"60000x1230\": 64.0\n },\n \"1500x5000\": {\n \"1000x600\": 45.0,\n \"1000x750\": 45.0,\n \"1000x910\": 54.0,\n \"1000x1050\": 54.0,\n \"1000x1230\": 54.0,\n \"2000x600\": 45.0,\n \"2000x750\": 45.0,\n \"2000x910\": 54.0,\n \"2000x1050\": 54.0,\n \"2000x1230\": 54.0,\n \"3000x600\": 45.0,\n \"3000x750\": 45.0,\n \"3000x910\": 54.0,\n \"3000x1050\": 54.0,\n \"3000x1230\": 54.0,\n \"4000x600\": 45.0,\n \"4000x750\": 45.0,\n \"4000x910\": 54.0,\n \"4000x1050\": 54.0,\n \"4000x1230\": 54.0,\n \"5000x600\": 45.0,\n \"5000x750\": 45.0,\n \"5000x910\": 54.0,\n \"5000x1050\": 54.0,\n \"5000x1230\": 54.0,\n \"6500x600\": 45.0,\n \"6500x750\": 45.0,\n \"6500x910\": 54.0,\n \"6500x1050\": 54.0,\n \"6500x1230\": 54.0,\n \"8000x600\": 45.0,\n \"8000x750\": 45.0,\n \"8000x910\": 54.0,\n \"8000x1050\": 54.0,\n \"8000x1230\": 54.0,\n \"10000x600\": 45.0,\n \"10000x750\": 45.0,\n \"10000x910\": 54.0,\n \"10000x1050\": 54.0,\n \"10000x1230\": 54.0,\n \"12500x600\": 45.0,\n \"12500x750\": 45.0,\n \"12500x910\": 54.0,\n \"12500x1050\": 54.0,\n \"12500x1230\": 54.0,\n \"15500x600\": 45.0,\n \"15500x750\": 45.0,\n \"15500x910\": 54.0,\n \"15500x1050\": 54.0,\n \"15500x1230\": 54.0,\n \"20000x600\": 45.0,\n \"20000x750\": 45.0,\n \"20000x910\": 54.0,\n \"20000x1050\": 54.0,\n \"20000x1230\": 66.0,\n \"25000x600\": 54.0,\n \"25000x750\": 54.0,\n \"25000x910\": 54.0,\n \"25000x1050\": 54.0,\n \"25000x1230\": 66.0,\n \"30000x600\": 54.0,\n \"30000x750\": 54.0,\n \"30000x910\": 54.0,\n \"30000x1050\": 54.0,\n \"30000x1230\": 66.0,\n \"35000x600\": 54.0,\n \"35000x750\": 54.0,\n \"35000x910\": 54.0,\n \"35000x1050\": 66.0,\n \"35000x1230\": 66.0,\n \"40000x600\": 54.0,\n \"40000x750\": 54.0,\n \"40000x910\": 54.0,\n \"40000x1050\": 66.0,\n \"40000x1230\": 66.0,\n \"50000x600\": 63.0,\n \"50000x750\": 64.0,\n \"50000x910\": 65.0,\n \"50000x1050\": 66.0,\n \"50000x1230\": 66.0,\n \"60000x600\": 63.0,\n \"60000x750\": 64.0,\n \"60000x910\": 65.0,\n \"60000x1050\": 66.0,\n \"60000x1230\": 66.0\n },\n \"2000x1000\": {\n \"1000x600\": 1.0,\n \"1000x750\": 1.0,\n \"1000x910\": 11.0,\n \"1000x1050\": 12.0,\n \"1000x1230\": 12.0,\n \"2000x600\": 21.0,\n \"2000x750\": 21.0,\n \"2000x910\": 21.0,\n \"2000x1050\": 21.0,\n \"2000x1230\": 21.0,\n \"3000x600\": 21.0,\n \"3000x750\": 21.0,\n \"3000x910\": 21.0,\n \"3000x1050\": 21.0,\n \"3000x1230\": 21.0,\n \"4000x600\": 31.0,\n \"4000x750\": 31.0,\n \"4000x910\": 31.0,\n \"4000x1050\": 31.0,\n \"4000x1230\": 31.0,\n \"5000x600\": 31.0,\n \"5000x750\": 31.0,\n \"5000x910\": 31.0,\n \"5000x1050\": 31.0,\n \"5000x1230\": 31.0,\n \"6500x600\": 31.0,\n \"6500x750\": 31.0,\n \"6500x910\": 31.0,\n \"6500x1050\": 31.0,\n \"6500x1230\": 31.0,\n \"8000x600\": 31.0,\n \"8000x750\": 31.0,\n \"8000x910\": 31.0,\n \"8000x1050\": 31.0,\n \"8000x1230\": 31.0,\n \"10000x600\": 41.0,\n \"10000x750\": 41.0,\n \"10000x910\": 41.0,\n \"10000x1050\": 41.0,\n \"10000x1230\": 41.0,\n \"12500x600\": 41.0,\n \"12500x750\": 41.0,\n \"12500x910\": 41.0,\n \"12500x1050\": 41.0,\n \"12500x1230\": 41.0,\n \"15500x600\": 41.0,\n \"15500x750\": 41.0,\n \"15500x910\": 41.0,\n \"15500x1050\": 41.0,\n \"15500x1230\": 41.0,\n \"20000x600\": 51.0,\n \"20000x750\": 51.0,\n \"20000x910\": 51.0,\n \"20000x1050\": 51.0,\n \"20000x1230\": 51.0,\n \"25000x600\": 51.0,\n \"25000x750\": 51.0,\n \"25000x910\": 51.0,\n \"25000x1050\": 51.0,\n \"25000x1230\": 51.0,\n \"30000x600\": 51.0,\n \"30000x750\": 51.0,\n \"30000x910\": 51.0,\n \"30000x1050\": 51.0,\n \"30000x1230\": 51.0,\n \"35000x600\": 51.0,\n \"35000x750\": 51.0,\n \"35000x910\": 51.0,\n \"35000x1050\": 51.0,\n \"35000x1230\": 51.0,\n \"40000x600\": 61.0,\n \"40000x750\": 61.0,\n \"40000x910\": 61.0,\n \"40000x1050\": 61.0,\n \"40000x1230\": 62.0,\n \"50000x600\": 61.0,\n \"50000x750\": 61.0,\n \"50000x910\": 61.0,\n \"50000x1050\": 61.0,\n \"50000x1230\": 62.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0\n },\n \"2000x1500\": {\n \"1000x600\": 2.0,\n \"1000x750\": 2.0,\n \"1000x910\": 2.0,\n \"1000x1050\": 2.0,\n \"1000x1230\": 12.0,\n \"2000x600\": 21.0,\n \"2000x750\": 21.0,\n \"2000x910\": 22.0,\n \"2000x1050\": 22.0,\n \"2000x1230\": 22.0,\n \"3000x600\": 21.0,\n \"3000x750\": 21.0,\n \"3000x910\": 22.0,\n \"3000x1050\": 22.0,\n \"3000x1230\": 22.0,\n \"4000x600\": 31.0,\n \"4000x750\": 31.0,\n \"4000x910\": 31.0,\n \"4000x1050\": 31.0,\n \"4000x1230\": 31.0,\n \"5000x600\": 31.0,\n \"5000x750\": 31.0,\n \"5000x910\": 31.0,\n \"5000x1050\": 31.0,\n \"5000x1230\": 31.0,\n \"6500x600\": 31.0,\n \"6500x750\": 31.0,\n \"6500x910\": 31.0,\n \"6500x1050\": 31.0,\n \"6500x1230\": 31.0,\n \"8000x600\": 31.0,\n \"8000x750\": 31.0,\n \"8000x910\": 31.0,\n \"8000x1050\": 31.0,\n \"8000x1230\": 31.0,\n \"10000x600\": 41.0,\n \"10000x750\": 41.0,\n \"10000x910\": 41.0,\n \"10000x1050\": 41.0,\n \"10000x1230\": 41.0,\n \"12500x600\": 41.0,\n \"12500x750\": 41.0,\n \"12500x910\": 41.0,\n \"12500x1050\": 41.0,\n \"12500x1230\": 41.0,\n \"15500x600\": 41.0,\n \"15500x750\": 41.0,\n \"15500x910\": 41.0,\n \"15500x1050\": 41.0,\n \"15500x1230\": 41.0,\n \"20000x600\": 51.0,\n \"20000x750\": 51.0,\n \"20000x910\": 51.0,\n \"20000x1050\": 51.0,\n \"20000x1230\": 51.0,\n \"25000x600\": 51.0,\n \"25000x750\": 51.0,\n \"25000x910\": 51.0,\n \"25000x1050\": 51.0,\n \"25000x1230\": 51.0,\n \"30000x600\": 51.0,\n \"30000x750\": 51.0,\n \"30000x910\": 51.0,\n \"30000x1050\": 51.0,\n \"30000x1230\": 51.0,\n \"35000x600\": 51.0,\n \"35000x750\": 51.0,\n \"35000x910\": 51.0,\n \"35000x1050\": 51.0,\n \"35000x1230\": 51.0,\n \"40000x600\": 61.0,\n \"40000x750\": 61.0,\n \"40000x910\": 61.0,\n \"40000x1050\": 61.0,\n \"40000x1230\": 62.0,\n \"50000x600\": 61.0,\n \"50000x750\": 61.0,\n \"50000x910\": 61.0,\n \"50000x1050\": 61.0,\n \"50000x1230\": 62.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0\n },\n \"2000x2000\": {\n \"1000x600\": 2.0,\n \"1000x750\": 2.0,\n \"1000x910\": 12.0,\n \"1000x1050\": 22.0,\n \"1000x1230\": 22.0,\n \"2000x600\": 22.0,\n \"2000x750\": 22.0,\n \"2000x910\": 22.0,\n \"2000x1050\": 22.0,\n \"2000x1230\": 22.0,\n \"3000x600\": 22.0,\n \"3000x750\": 22.0,\n \"3000x910\": 22.0,\n \"3000x1050\": 22.0,\n \"3000x1230\": 22.0,\n \"4000x600\": 31.0,\n \"4000x750\": 31.0,\n \"4000x910\": 32.0,\n \"4000x1050\": 32.0,\n \"4000x1230\": 32.0,\n \"5000x600\": 31.0,\n \"5000x750\": 31.0,\n \"5000x910\": 32.0,\n \"5000x1050\": 32.0,\n \"5000x1230\": 32.0,\n \"6500x600\": 31.0,\n \"6500x750\": 31.0,\n \"6500x910\": 32.0,\n \"6500x1050\": 32.0,\n \"6500x1230\": 32.0,\n \"8000x600\": 31.0,\n \"8000x750\": 31.0,\n \"8000x910\": 32.0,\n \"8000x1050\": 32.0,\n \"8000x1230\": 32.0,\n \"10000x600\": 41.0,\n \"10000x750\": 41.0,\n \"10000x910\": 41.0,\n \"10000x1050\": 42.0,\n \"10000x1230\": 42.0,\n \"12500x600\": 41.0,\n \"12500x750\": 41.0,\n \"12500x910\": 42.0,\n \"12500x1050\": 42.0,\n \"12500x1230\": 42.0,\n \"15500x600\": 41.0,\n \"15500x750\": 41.0,\n \"15500x910\": 42.0,\n \"15500x1050\": 42.0,\n \"15500x1230\": 42.0,\n \"20000x600\": 51.0,\n \"20000x750\": 51.0,\n \"20000x910\": 51.0,\n \"20000x1050\": 51.0,\n \"20000x1230\": 52.0,\n \"25000x600\": 51.0,\n \"25000x750\": 51.0,\n \"25000x910\": 51.0,\n \"25000x1050\": 51.0,\n \"25000x1230\": 52.0,\n \"30000x600\": 51.0,\n \"30000x750\": 51.0,\n \"30000x910\": 51.0,\n \"30000x1050\": 51.0,\n \"30000x1230\": 52.0,\n \"35000x600\": 51.0,\n \"35000x750\": 51.0,\n \"35000x910\": 52.0,\n \"35000x1050\": 52.0,\n \"35000x1230\": 52.0,\n \"40000x600\": 61.0,\n \"40000x750\": 61.0,\n \"40000x910\": 61.0,\n \"40000x1050\": 61.0,\n \"40000x1230\": 62.0,\n \"50000x600\": 61.0,\n \"50000x750\": 61.0,\n \"50000x910\": 61.0,\n \"50000x1050\": 61.0,\n \"50000x1230\": 62.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0\n },\n \"2000x2500\": {\n \"1000x600\": 12.0,\n \"1000x750\": 22.0,\n \"1000x910\": 23.0,\n \"1000x1050\": 23.0,\n \"1000x1230\": 32.0,\n \"2000x600\": 22.0,\n \"2000x750\": 22.0,\n \"2000x910\": 22.0,\n \"2000x1050\": 23.0,\n \"2000x1230\": 23.0,\n \"3000x600\": 22.0,\n \"3000x750\": 22.0,\n \"3000x910\": 22.0,\n \"3000x1050\": 23.0,\n \"3000x1230\": 32.0,\n \"4000x600\": 32.0,\n \"4000x750\": 32.0,\n \"4000x910\": 32.0,\n \"4000x1050\": 32.0,\n \"4000x1230\": 32.0,\n \"5000x600\": 32.0,\n \"5000x750\": 32.0,\n \"5000x910\": 32.0,\n \"5000x1050\": 32.0,\n \"5000x1230\": 32.0,\n \"6500x600\": 32.0,\n \"6500x750\": 32.0,\n \"6500x910\": 32.0,\n \"6500x1050\": 32.0,\n \"6500x1230\": 32.0,\n \"8000x600\": 32.0,\n \"8000x750\": 32.0,\n \"8000x910\": 32.0,\n \"8000x1050\": 32.0,\n \"8000x1230\": 32.0,\n \"10000x600\": 41.0,\n \"10000x750\": 42.0,\n \"10000x910\": 42.0,\n \"10000x1050\": 42.0,\n \"10000x1230\": 42.0,\n \"12500x600\": 42.0,\n \"12500x750\": 42.0,\n \"12500x910\": 42.0,\n \"12500x1050\": 42.0,\n \"12500x1230\": 42.0,\n \"15500x600\": 42.0,\n \"15500x750\": 42.0,\n \"15500x910\": 42.0,\n \"15500x1050\": 42.0,\n \"15500x1230\": 42.0,\n \"20000x600\": 51.0,\n \"20000x750\": 52.0,\n \"20000x910\": 52.0,\n \"20000x1050\": 52.0,\n \"20000x1230\": 52.0,\n \"25000x600\": 51.0,\n \"25000x750\": 52.0,\n \"25000x910\": 52.0,\n \"25000x1050\": 52.0,\n \"25000x1230\": 52.0,\n \"30000x600\": 51.0,\n \"30000x750\": 52.0,\n \"30000x910\": 52.0,\n \"30000x1050\": 52.0,\n \"30000x1230\": 52.0,\n \"35000x600\": 52.0,\n \"35000x750\": 52.0,\n \"35000x910\": 52.0,\n \"35000x1050\": 52.0,\n \"35000x1230\": 52.0,\n \"40000x600\": 61.0,\n \"40000x750\": 61.0,\n \"40000x910\": 62.0,\n \"40000x1050\": 62.0,\n \"40000x1230\": 62.0,\n \"50000x600\": 61.0,\n \"50000x750\": 61.0,\n \"50000x910\": 62.0,\n \"50000x1050\": 62.0,\n \"50000x1230\": 62.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0\n },\n \"2000x3000\": {\n \"1000x600\": 23.0,\n \"1000x750\": 23.0,\n \"1000x910\": 33.0,\n \"1000x1050\": 33.0,\n \"1000x1230\": 34.0,\n \"2000x600\": 22.0,\n \"2000x750\": 23.0,\n \"2000x910\": 32.0,\n \"2000x1050\": 33.0,\n \"2000x1230\": 34.0,\n \"3000x600\": 22.0,\n \"3000x750\": 23.0,\n \"3000x910\": 32.0,\n \"3000x1050\": 33.0,\n \"3000x1230\": 34.0,\n \"4000x600\": 32.0,\n \"4000x750\": 32.0,\n \"4000x910\": 32.0,\n \"4000x1050\": 33.0,\n \"4000x1230\": 34.0,\n \"5000x600\": 32.0,\n \"5000x750\": 32.0,\n \"5000x910\": 32.0,\n \"5000x1050\": 33.0,\n \"5000x1230\": 34.0,\n \"6500x600\": 32.0,\n \"6500x750\": 32.0,\n \"6500x910\": 32.0,\n \"6500x1050\": 33.0,\n \"6500x1230\": 34.0,\n \"8000x600\": 32.0,\n \"8000x750\": 32.0,\n \"8000x910\": 32.0,\n \"8000x1050\": 33.0,\n \"8000x1230\": 34.0,\n \"10000x600\": 42.0,\n \"10000x750\": 42.0,\n \"10000x910\": 42.0,\n \"10000x1050\": 42.0,\n \"10000x1230\": 43.0,\n \"12500x600\": 42.0,\n \"12500x750\": 42.0,\n \"12500x910\": 43.0,\n \"12500x1050\": 43.0,\n \"12500x1230\": 44.0,\n \"15500x600\": 42.0,\n \"15500x750\": 42.0,\n \"15500x910\": 43.0,\n \"15500x1050\": 44.0,\n \"15500x1230\": 44.0,\n \"20000x600\": 52.0,\n \"20000x750\": 52.0,\n \"20000x910\": 52.0,\n \"20000x1050\": 52.0,\n \"20000x1230\": 53.0,\n \"25000x600\": 52.0,\n \"25000x750\": 52.0,\n \"25000x910\": 52.0,\n \"25000x1050\": 52.0,\n \"25000x1230\": 53.0,\n \"30000x600\": 52.0,\n \"30000x750\": 52.0,\n \"30000x910\": 52.0,\n \"30000x1050\": 52.0,\n \"30000x1230\": 53.0,\n \"35000x600\": 52.0,\n \"35000x750\": 52.0,\n \"35000x910\": 52.0,\n \"35000x1050\": 53.0,\n \"35000x1230\": 54.0,\n \"40000x600\": 62.0,\n \"40000x750\": 62.0,\n \"40000x910\": 62.0,\n \"40000x1050\": 62.0,\n \"40000x1230\": 63.0,\n \"50000x600\": 62.0,\n \"50000x750\": 62.0,\n \"50000x910\": 62.0,\n \"50000x1050\": 62.0,\n \"50000x1230\": 63.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0\n },\n \"2000x3500\": {\n \"1000x600\": 32.0,\n \"1000x750\": 33.0,\n \"1000x910\": 34.0,\n \"1000x1050\": 34.0,\n \"1000x1230\": 44.0,\n \"2000x600\": 33.0,\n \"2000x750\": 33.0,\n \"2000x910\": 34.0,\n \"2000x1050\": 34.0,\n \"2000x1230\": 34.0,\n \"3000x600\": 32.0,\n \"3000x750\": 33.0,\n \"3000x910\": 34.0,\n \"3000x1050\": 34.0,\n \"3000x1230\": 34.0,\n \"4000x600\": 33.0,\n \"4000x750\": 33.0,\n \"4000x910\": 34.0,\n \"4000x1050\": 34.0,\n \"4000x1230\": 34.0,\n \"5000x600\": 33.0,\n \"5000x750\": 33.0,\n \"5000x910\": 34.0,\n \"5000x1050\": 34.0,\n \"5000x1230\": 34.0,\n \"6500x600\": 32.0,\n \"6500x750\": 33.0,\n \"6500x910\": 34.0,\n \"6500x1050\": 34.0,\n \"6500x1230\": 34.0,\n \"8000x600\": 32.0,\n \"8000x750\": 33.0,\n \"8000x910\": 34.0,\n \"8000x1050\": 34.0,\n \"8000x1230\": 34.0,\n \"10000x600\": 42.0,\n \"10000x750\": 42.0,\n \"10000x910\": 43.0,\n \"10000x1050\": 43.0,\n \"10000x1230\": 44.0,\n \"12500x600\": 42.0,\n \"12500x750\": 43.0,\n \"12500x910\": 44.0,\n \"12500x1050\": 44.0,\n \"12500x1230\": 54.0,\n \"15500x600\": 42.0,\n \"15500x750\": 43.0,\n \"15500x910\": 44.0,\n \"15500x1050\": 54.0,\n \"15500x1230\": 54.0,\n \"20000x600\": 52.0,\n \"20000x750\": 52.0,\n \"20000x910\": 53.0,\n \"20000x1050\": 54.0,\n \"20000x1230\": 54.0,\n \"25000x600\": 52.0,\n \"25000x750\": 52.0,\n \"25000x910\": 53.0,\n \"25000x1050\": 54.0,\n \"25000x1230\": 54.0,\n \"30000x600\": 52.0,\n \"30000x750\": 52.0,\n \"30000x910\": 53.0,\n \"30000x1050\": 54.0,\n \"30000x1230\": 54.0,\n \"35000x600\": 52.0,\n \"35000x750\": 53.0,\n \"35000x910\": 54.0,\n \"35000x1050\": 54.0,\n \"35000x1230\": 54.0,\n \"40000x600\": 62.0,\n \"40000x750\": 62.0,\n \"40000x910\": 63.0,\n \"40000x1050\": 64.0,\n \"40000x1230\": 64.0,\n \"50000x600\": 62.0,\n \"50000x750\": 62.0,\n \"50000x910\": 63.0,\n \"50000x1050\": 64.0,\n \"50000x1230\": 64.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 72.0\n },\n \"2000x4000\": {\n \"1000x600\": 52.0,\n \"1000x750\": 53.0,\n \"1000x910\": 54.0,\n \"1000x1050\": 54.0,\n \"1000x1230\": 54.0,\n \"2000x600\": 52.0,\n \"2000x750\": 53.0,\n \"2000x910\": 54.0,\n \"2000x1050\": 54.0,\n \"2000x1230\": 54.0,\n \"3000x600\": 52.0,\n \"3000x750\": 53.0,\n \"3000x910\": 54.0,\n \"3000x1050\": 54.0,\n \"3000x1230\": 54.0,\n \"4000x600\": 52.0,\n \"4000x750\": 53.0,\n \"4000x910\": 54.0,\n \"4000x1050\": 54.0,\n \"4000x1230\": 54.0,\n \"5000x600\": 52.0,\n \"5000x750\": 53.0,\n \"5000x910\": 54.0,\n \"5000x1050\": 54.0,\n \"5000x1230\": 54.0,\n \"6500x600\": 52.0,\n \"6500x750\": 53.0,\n \"6500x910\": 54.0,\n \"6500x1050\": 54.0,\n \"6500x1230\": 54.0,\n \"8000x600\": 52.0,\n \"8000x750\": 53.0,\n \"8000x910\": 54.0,\n \"8000x1050\": 54.0,\n \"8000x1230\": 54.0,\n \"10000x600\": 52.0,\n \"10000x750\": 53.0,\n \"10000x910\": 54.0,\n \"10000x1050\": 54.0,\n \"10000x1230\": 54.0,\n \"12500x600\": 52.0,\n \"12500x750\": 53.0,\n \"12500x910\": 54.0,\n \"12500x1050\": 54.0,\n \"12500x1230\": 54.0,\n \"15500x600\": 52.0,\n \"15500x750\": 53.0,\n \"15500x910\": 54.0,\n \"15500x1050\": 54.0,\n \"15500x1230\": 54.0,\n \"20000x600\": 52.0,\n \"20000x750\": 53.0,\n \"20000x910\": 54.0,\n \"20000x1050\": 54.0,\n \"20000x1230\": 54.0,\n \"25000x600\": 52.0,\n \"25000x750\": 53.0,\n \"25000x910\": 54.0,\n \"25000x1050\": 54.0,\n \"25000x1230\": 54.0,\n \"30000x600\": 52.0,\n \"30000x750\": 53.0,\n \"30000x910\": 54.0,\n \"30000x1050\": 54.0,\n \"30000x1230\": 54.0,\n \"35000x600\": 53.0,\n \"35000x750\": 54.0,\n \"35000x910\": 54.0,\n \"35000x1050\": 54.0,\n \"35000x1230\": 66.0,\n \"40000x600\": 62.0,\n \"40000x750\": 63.0,\n \"40000x910\": 64.0,\n \"40000x1050\": 65.0,\n \"40000x1230\": 66.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 72.0,\n \"50000x1050\": 73.0,\n \"50000x1230\": 73.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 72.0,\n \"60000x1050\": 73.0,\n \"60000x1230\": 73.0\n },\n \"2000x5000\": {\n \"1000x600\": 54.0,\n \"1000x750\": 54.0,\n \"1000x910\": 66.0,\n \"1000x1050\": 66.0,\n \"1000x1230\": 73.0,\n \"2000x600\": 54.0,\n \"2000x750\": 54.0,\n \"2000x910\": 66.0,\n \"2000x1050\": 66.0,\n \"2000x1230\": 73.0,\n \"3000x600\": 54.0,\n \"3000x750\": 54.0,\n \"3000x910\": 66.0,\n \"3000x1050\": 66.0,\n \"3000x1230\": 73.0,\n \"4000x600\": 54.0,\n \"4000x750\": 54.0,\n \"4000x910\": 66.0,\n \"4000x1050\": 66.0,\n \"4000x1230\": 73.0,\n \"5000x600\": 54.0,\n \"5000x750\": 54.0,\n \"5000x910\": 66.0,\n \"5000x1050\": 66.0,\n \"5000x1230\": 73.0,\n \"6500x600\": 54.0,\n \"6500x750\": 54.0,\n \"6500x910\": 66.0,\n \"6500x1050\": 66.0,\n \"6500x1230\": 73.0,\n \"8000x600\": 54.0,\n \"8000x750\": 54.0,\n \"8000x910\": 66.0,\n \"8000x1050\": 66.0,\n \"8000x1230\": 73.0,\n \"10000x600\": 54.0,\n \"10000x750\": 54.0,\n \"10000x910\": 66.0,\n \"10000x1050\": 66.0,\n \"10000x1230\": 73.0,\n \"12500x600\": 54.0,\n \"12500x750\": 54.0,\n \"12500x910\": 66.0,\n \"12500x1050\": 66.0,\n \"12500x1230\": 73.0,\n \"15500x600\": 54.0,\n \"15500x750\": 54.0,\n \"15500x910\": 66.0,\n \"15500x1050\": 66.0,\n \"15500x1230\": 73.0,\n \"20000x600\": 54.0,\n \"20000x750\": 54.0,\n \"20000x910\": 66.0,\n \"20000x1050\": 66.0,\n \"20000x1230\": 73.0,\n \"25000x600\": 54.0,\n \"25000x750\": 54.0,\n \"25000x910\": 66.0,\n \"25000x1050\": 66.0,\n \"25000x1230\": 73.0,\n \"30000x600\": 54.0,\n \"30000x750\": 54.0,\n \"30000x910\": 66.0,\n \"30000x1050\": 66.0,\n \"30000x1230\": 73.0,\n \"35000x600\": 54.0,\n \"35000x750\": 66.0,\n \"35000x910\": 66.0,\n \"35000x1050\": 73.0,\n \"35000x1230\": 73.0,\n \"40000x600\": 66.0,\n \"40000x750\": 66.0,\n \"40000x910\": 73.0,\n \"40000x1050\": 73.0,\n \"40000x1230\": 73.0,\n \"50000x600\": 72.0,\n \"50000x750\": 73.0,\n \"50000x910\": 73.0,\n \"50000x1050\": 73.0,\n \"50000x1230\": 73.0,\n \"60000x600\": 72.0,\n \"60000x750\": 73.0,\n \"60000x910\": 73.0,\n \"60000x1050\": 73.0,\n \"60000x1230\": 73.0\n },\n \"2500x1000\": {\n \"1000x600\": 21.0,\n \"1000x750\": 21.0,\n \"1000x910\": 21.0,\n \"1000x1050\": 21.0,\n \"1000x1230\": 22.0,\n \"2000x600\": 21.0,\n \"2000x750\": 21.0,\n \"2000x910\": 21.0,\n \"2000x1050\": 21.0,\n \"2000x1230\": 31.0,\n \"3000x600\": 31.0,\n \"3000x750\": 31.0,\n \"3000x910\": 31.0,\n \"3000x1050\": 31.0,\n \"3000x1230\": 31.0,\n \"4000x600\": 31.0,\n \"4000x750\": 31.0,\n \"4000x910\": 31.0,\n \"4000x1050\": 31.0,\n \"4000x1230\": 31.0,\n \"5000x600\": 31.0,\n \"5000x750\": 31.0,\n \"5000x910\": 31.0,\n \"5000x1050\": 31.0,\n \"5000x1230\": 31.0,\n \"6500x600\": 31.0,\n \"6500x750\": 31.0,\n \"6500x910\": 31.0,\n \"6500x1050\": 31.0,\n \"6500x1230\": 31.0,\n \"8000x600\": 41.0,\n \"8000x750\": 41.0,\n \"8000x910\": 41.0,\n \"8000x1050\": 41.0,\n \"8000x1230\": 41.0,\n \"10000x600\": 41.0,\n \"10000x750\": 41.0,\n \"10000x910\": 41.0,\n \"10000x1050\": 41.0,\n \"10000x1230\": 41.0,\n \"12500x600\": 41.0,\n \"12500x750\": 41.0,\n \"12500x910\": 41.0,\n \"12500x1050\": 41.0,\n \"12500x1230\": 41.0,\n \"15500x600\": 51.0,\n \"15500x750\": 51.0,\n \"15500x910\": 51.0,\n \"15500x1050\": 51.0,\n \"15500x1230\": 51.0,\n \"20000x600\": 51.0,\n \"20000x750\": 51.0,\n \"20000x910\": 51.0,\n \"20000x1050\": 51.0,\n \"20000x1230\": 51.0,\n \"25000x600\": 51.0,\n \"25000x750\": 51.0,\n \"25000x910\": 51.0,\n \"25000x1050\": 51.0,\n \"25000x1230\": 51.0,\n \"30000x600\": 51.0,\n \"30000x750\": 51.0,\n \"30000x910\": 51.0,\n \"30000x1050\": 51.0,\n \"30000x1230\": 51.0,\n \"35000x600\": 61.0,\n \"35000x750\": 61.0,\n \"35000x910\": 61.0,\n \"35000x1050\": 61.0,\n \"35000x1230\": 61.0,\n \"40000x600\": 61.0,\n \"40000x750\": 61.0,\n \"40000x910\": 62.0,\n \"40000x1050\": 62.0,\n \"40000x1230\": 62.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 71.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0\n },\n \"2500x1500\": {\n \"1000x600\": 22.0,\n \"1000x750\": 22.0,\n \"1000x910\": 22.0,\n \"1000x1050\": 22.0,\n \"1000x1230\": 22.0,\n \"2000x600\": 21.0,\n \"2000x750\": 22.0,\n \"2000x910\": 22.0,\n \"2000x1050\": 22.0,\n \"2000x1230\": 22.0,\n \"3000x600\": 31.0,\n \"3000x750\": 31.0,\n \"3000x910\": 31.0,\n \"3000x1050\": 31.0,\n \"3000x1230\": 32.0,\n \"4000x600\": 31.0,\n \"4000x750\": 31.0,\n \"4000x910\": 31.0,\n \"4000x1050\": 31.0,\n \"4000x1230\": 32.0,\n \"5000x600\": 31.0,\n \"5000x750\": 31.0,\n \"5000x910\": 31.0,\n \"5000x1050\": 31.0,\n \"5000x1230\": 32.0,\n \"6500x600\": 31.0,\n \"6500x750\": 31.0,\n \"6500x910\": 31.0,\n \"6500x1050\": 31.0,\n \"6500x1230\": 32.0,\n \"8000x600\": 41.0,\n \"8000x750\": 41.0,\n \"8000x910\": 41.0,\n \"8000x1050\": 41.0,\n \"8000x1230\": 41.0,\n \"10000x600\": 41.0,\n \"10000x750\": 41.0,\n \"10000x910\": 41.0,\n \"10000x1050\": 41.0,\n \"10000x1230\": 41.0,\n \"12500x600\": 41.0,\n \"12500x750\": 41.0,\n \"12500x910\": 41.0,\n \"12500x1050\": 42.0,\n \"12500x1230\": 42.0,\n \"15500x600\": 51.0,\n \"15500x750\": 51.0,\n \"15500x910\": 51.0,\n \"15500x1050\": 51.0,\n \"15500x1230\": 51.0,\n \"20000x600\": 51.0,\n \"20000x750\": 51.0,\n \"20000x910\": 51.0,\n \"20000x1050\": 51.0,\n \"20000x1230\": 51.0,\n \"25000x600\": 51.0,\n \"25000x750\": 51.0,\n \"25000x910\": 51.0,\n \"25000x1050\": 51.0,\n \"25000x1230\": 51.0,\n \"30000x600\": 51.0,\n \"30000x750\": 51.0,\n \"30000x910\": 51.0,\n \"30000x1050\": 51.0,\n \"30000x1230\": 51.0,\n \"35000x600\": 61.0,\n \"35000x750\": 61.0,\n \"35000x910\": 61.0,\n \"35000x1050\": 61.0,\n \"35000x1230\": 62.0,\n \"40000x600\": 61.0,\n \"40000x750\": 61.0,\n \"40000x910\": 62.0,\n \"40000x1050\": 62.0,\n \"40000x1230\": 62.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 71.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0\n },\n \"2500x2000\": {\n \"1000x600\": 22.0,\n \"1000x750\": 22.0,\n \"1000x910\": 22.0,\n \"1000x1050\": 22.0,\n \"1000x1230\": 23.0,\n \"2000x600\": 22.0,\n \"2000x750\": 22.0,\n \"2000x910\": 22.0,\n \"2000x1050\": 22.0,\n \"2000x1230\": 32.0,\n \"3000x600\": 31.0,\n \"3000x750\": 32.0,\n \"3000x910\": 32.0,\n \"3000x1050\": 32.0,\n \"3000x1230\": 32.0,\n \"4000x600\": 31.0,\n \"4000x750\": 32.0,\n \"4000x910\": 32.0,\n \"4000x1050\": 32.0,\n \"4000x1230\": 32.0,\n \"5000x600\": 32.0,\n \"5000x750\": 32.0,\n \"5000x910\": 32.0,\n \"5000x1050\": 32.0,\n \"5000x1230\": 32.0,\n \"6500x600\": 31.0,\n \"6500x750\": 32.0,\n \"6500x910\": 32.0,\n \"6500x1050\": 32.0,\n \"6500x1230\": 32.0,\n \"8000x600\": 41.0,\n \"8000x750\": 41.0,\n \"8000x910\": 42.0,\n \"8000x1050\": 42.0,\n \"8000x1230\": 42.0,\n \"10000x600\": 41.0,\n \"10000x750\": 41.0,\n \"10000x910\": 42.0,\n \"10000x1050\": 42.0,\n \"10000x1230\": 42.0,\n \"12500x600\": 41.0,\n \"12500x750\": 42.0,\n \"12500x910\": 42.0,\n \"12500x1050\": 42.0,\n \"12500x1230\": 42.0,\n \"15500x600\": 51.0,\n \"15500x750\": 51.0,\n \"15500x910\": 52.0,\n \"15500x1050\": 52.0,\n \"15500x1230\": 52.0,\n \"20000x600\": 51.0,\n \"20000x750\": 51.0,\n \"20000x910\": 52.0,\n \"20000x1050\": 52.0,\n \"20000x1230\": 52.0,\n \"25000x600\": 51.0,\n \"25000x750\": 51.0,\n \"25000x910\": 52.0,\n \"25000x1050\": 52.0,\n \"25000x1230\": 52.0,\n \"30000x600\": 51.0,\n \"30000x750\": 51.0,\n \"30000x910\": 52.0,\n \"30000x1050\": 52.0,\n \"30000x1230\": 52.0,\n \"35000x600\": 61.0,\n \"35000x750\": 61.0,\n \"35000x910\": 62.0,\n \"35000x1050\": 62.0,\n \"35000x1230\": 62.0,\n \"40000x600\": 61.0,\n \"40000x750\": 61.0,\n \"40000x910\": 62.0,\n \"40000x1050\": 62.0,\n \"40000x1230\": 62.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 71.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0\n },\n \"2500x2500\": {\n \"1000x600\": 22.0,\n \"1000x750\": 23.0,\n \"1000x910\": 32.0,\n \"1000x1050\": 33.0,\n \"1000x1230\": 33.0,\n \"2000x600\": 22.0,\n \"2000x750\": 22.0,\n \"2000x910\": 23.0,\n \"2000x1050\": 32.0,\n \"2000x1230\": 33.0,\n \"3000x600\": 32.0,\n \"3000x750\": 32.0,\n \"3000x910\": 32.0,\n \"3000x1050\": 32.0,\n \"3000x1230\": 33.0,\n \"4000x600\": 32.0,\n \"4000x750\": 32.0,\n \"4000x910\": 32.0,\n \"4000x1050\": 32.0,\n \"4000x1230\": 33.0,\n \"5000x600\": 32.0,\n \"5000x750\": 32.0,\n \"5000x910\": 32.0,\n \"5000x1050\": 32.0,\n \"5000x1230\": 33.0,\n \"6500x600\": 32.0,\n \"6500x750\": 32.0,\n \"6500x910\": 32.0,\n \"6500x1050\": 32.0,\n \"6500x1230\": 33.0,\n \"8000x600\": 42.0,\n \"8000x750\": 42.0,\n \"8000x910\": 42.0,\n \"8000x1050\": 42.0,\n \"8000x1230\": 42.0,\n \"10000x600\": 42.0,\n \"10000x750\": 42.0,\n \"10000x910\": 42.0,\n \"10000x1050\": 42.0,\n \"10000x1230\": 42.0,\n \"12500x600\": 42.0,\n \"12500x750\": 42.0,\n \"12500x910\": 42.0,\n \"12500x1050\": 43.0,\n \"12500x1230\": 44.0,\n \"15500x600\": 52.0,\n \"15500x750\": 52.0,\n \"15500x910\": 52.0,\n \"15500x1050\": 52.0,\n \"15500x1230\": 52.0,\n \"20000x600\": 52.0,\n \"20000x750\": 52.0,\n \"20000x910\": 52.0,\n \"20000x1050\": 52.0,\n \"20000x1230\": 52.0,\n \"25000x600\": 52.0,\n \"25000x750\": 52.0,\n \"25000x910\": 52.0,\n \"25000x1050\": 52.0,\n \"25000x1230\": 52.0,\n \"30000x600\": 52.0,\n \"30000x750\": 52.0,\n \"30000x910\": 52.0,\n \"30000x1050\": 52.0,\n \"30000x1230\": 52.0,\n \"35000x600\": 61.0,\n \"35000x750\": 62.0,\n \"35000x910\": 62.0,\n \"35000x1050\": 62.0,\n \"35000x1230\": 63.0,\n \"40000x600\": 61.0,\n \"40000x750\": 62.0,\n \"40000x910\": 62.0,\n \"40000x1050\": 62.0,\n \"40000x1230\": 63.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 71.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0\n },\n \"2500x3000\": {\n \"1000x600\": 32.0,\n \"1000x750\": 33.0,\n \"1000x910\": 34.0,\n \"1000x1050\": 34.0,\n \"1000x1230\": 34.0,\n \"2000x600\": 32.0,\n \"2000x750\": 32.0,\n \"2000x910\": 33.0,\n \"2000x1050\": 34.0,\n \"2000x1230\": 34.0,\n \"3000x600\": 32.0,\n \"3000x750\": 32.0,\n \"3000x910\": 33.0,\n \"3000x1050\": 34.0,\n \"3000x1230\": 34.0,\n \"4000x600\": 32.0,\n \"4000x750\": 32.0,\n \"4000x910\": 33.0,\n \"4000x1050\": 34.0,\n \"4000x1230\": 34.0,\n \"5000x600\": 32.0,\n \"5000x750\": 32.0,\n \"5000x910\": 33.0,\n \"5000x1050\": 34.0,\n \"5000x1230\": 34.0,\n \"6500x600\": 32.0,\n \"6500x750\": 32.0,\n \"6500x910\": 33.0,\n \"6500x1050\": 34.0,\n \"6500x1230\": 34.0,\n \"8000x600\": 42.0,\n \"8000x750\": 42.0,\n \"8000x910\": 42.0,\n \"8000x1050\": 43.0,\n \"8000x1230\": 44.0,\n \"10000x600\": 42.0,\n \"10000x750\": 42.0,\n \"10000x910\": 42.0,\n \"10000x1050\": 43.0,\n \"10000x1230\": 44.0,\n \"12500x600\": 42.0,\n \"12500x750\": 43.0,\n \"12500x910\": 44.0,\n \"12500x1050\": 44.0,\n \"12500x1230\": 45.0,\n \"15500x600\": 52.0,\n \"15500x750\": 52.0,\n \"15500x910\": 53.0,\n \"15500x1050\": 53.0,\n \"15500x1230\": 54.0,\n \"20000x600\": 52.0,\n \"20000x750\": 52.0,\n \"20000x910\": 52.0,\n \"20000x1050\": 53.0,\n \"20000x1230\": 54.0,\n \"25000x600\": 52.0,\n \"25000x750\": 52.0,\n \"25000x910\": 52.0,\n \"25000x1050\": 53.0,\n \"25000x1230\": 54.0,\n \"30000x600\": 52.0,\n \"30000x750\": 52.0,\n \"30000x910\": 52.0,\n \"30000x1050\": 53.0,\n \"30000x1230\": 54.0,\n \"35000x600\": 62.0,\n \"35000x750\": 62.0,\n \"35000x910\": 62.0,\n \"35000x1050\": 63.0,\n \"35000x1230\": 64.0,\n \"40000x600\": 62.0,\n \"40000x750\": 62.0,\n \"40000x910\": 62.0,\n \"40000x1050\": 64.0,\n \"40000x1230\": 64.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 72.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 72.0\n },\n \"2500x3500\": {\n \"1000x600\": 42.0,\n \"1000x750\": 44.0,\n \"1000x910\": 44.0,\n \"1000x1050\": 45.0,\n \"1000x1230\": 54.0,\n \"2000x600\": 42.0,\n \"2000x750\": 43.0,\n \"2000x910\": 44.0,\n \"2000x1050\": 44.0,\n \"2000x1230\": 45.0,\n \"3000x600\": 42.0,\n \"3000x750\": 43.0,\n \"3000x910\": 44.0,\n \"3000x1050\": 44.0,\n \"3000x1230\": 45.0,\n \"4000x600\": 42.0,\n \"4000x750\": 43.0,\n \"4000x910\": 44.0,\n \"4000x1050\": 44.0,\n \"4000x1230\": 45.0,\n \"5000x600\": 42.0,\n \"5000x750\": 43.0,\n \"5000x910\": 44.0,\n \"5000x1050\": 44.0,\n \"5000x1230\": 45.0,\n \"6500x600\": 42.0,\n \"6500x750\": 43.0,\n \"6500x910\": 44.0,\n \"6500x1050\": 44.0,\n \"6500x1230\": 45.0,\n \"8000x600\": 42.0,\n \"8000x750\": 43.0,\n \"8000x910\": 44.0,\n \"8000x1050\": 44.0,\n \"8000x1230\": 45.0,\n \"10000x600\": 42.0,\n \"10000x750\": 43.0,\n \"10000x910\": 44.0,\n \"10000x1050\": 44.0,\n \"10000x1230\": 45.0,\n \"12500x600\": 43.0,\n \"12500x750\": 44.0,\n \"12500x910\": 45.0,\n \"12500x1050\": 64.0,\n \"12500x1230\": 64.0,\n \"15500x600\": 52.0,\n \"15500x750\": 53.0,\n \"15500x910\": 54.0,\n \"15500x1050\": 54.0,\n \"15500x1230\": 54.0,\n \"20000x600\": 52.0,\n \"20000x750\": 53.0,\n \"20000x910\": 54.0,\n \"20000x1050\": 54.0,\n \"20000x1230\": 54.0,\n \"25000x600\": 52.0,\n \"25000x750\": 53.0,\n \"25000x910\": 54.0,\n \"25000x1050\": 54.0,\n \"25000x1230\": 54.0,\n \"30000x600\": 52.0,\n \"30000x750\": 53.0,\n \"30000x910\": 54.0,\n \"30000x1050\": 54.0,\n \"30000x1230\": 54.0,\n \"35000x600\": 62.0,\n \"35000x750\": 63.0,\n \"35000x910\": 64.0,\n \"35000x1050\": 65.0,\n \"35000x1230\": 66.0,\n \"40000x600\": 62.0,\n \"40000x750\": 63.0,\n \"40000x910\": 64.0,\n \"40000x1050\": 65.0,\n \"40000x1230\": 66.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 72.0,\n \"50000x1050\": 73.0,\n \"50000x1230\": 73.0,\n \"60000x600\": 71.0,\n \"60000x750\": 72.0,\n \"60000x910\": 73.0,\n \"60000x1050\": 73.0,\n \"60000x1230\": 73.0\n },\n \"2500x4000\": {\n \"1000x600\": 53.0,\n \"1000x750\": 54.0,\n \"1000x910\": 54.0,\n \"1000x1050\": 54.0,\n \"1000x1230\": 66.0,\n \"2000x600\": 53.0,\n \"2000x750\": 54.0,\n \"2000x910\": 54.0,\n \"2000x1050\": 54.0,\n \"2000x1230\": 66.0,\n \"3000x600\": 53.0,\n \"3000x750\": 54.0,\n \"3000x910\": 54.0,\n \"3000x1050\": 54.0,\n \"3000x1230\": 66.0,\n \"4000x600\": 53.0,\n \"4000x750\": 54.0,\n \"4000x910\": 54.0,\n \"4000x1050\": 54.0,\n \"4000x1230\": 66.0,\n \"5000x600\": 53.0,\n \"5000x750\": 54.0,\n \"5000x910\": 54.0,\n \"5000x1050\": 54.0,\n \"5000x1230\": 66.0,\n \"6500x600\": 53.0,\n \"6500x750\": 54.0,\n \"6500x910\": 54.0,\n \"6500x1050\": 54.0,\n \"6500x1230\": 66.0,\n \"8000x600\": 53.0,\n \"8000x750\": 54.0,\n \"8000x910\": 54.0,\n \"8000x1050\": 54.0,\n \"8000x1230\": 66.0,\n \"10000x600\": 53.0,\n \"10000x750\": 54.0,\n \"10000x910\": 54.0,\n \"10000x1050\": 54.0,\n \"10000x1230\": 66.0,\n \"12500x600\": 53.0,\n \"12500x750\": 54.0,\n \"12500x910\": 54.0,\n \"12500x1050\": 54.0,\n \"12500x1230\": 66.0,\n \"15500x600\": 53.0,\n \"15500x750\": 54.0,\n \"15500x910\": 54.0,\n \"15500x1050\": 54.0,\n \"15500x1230\": 66.0,\n \"20000x600\": 53.0,\n \"20000x750\": 54.0,\n \"20000x910\": 54.0,\n \"20000x1050\": 54.0,\n \"20000x1230\": 66.0,\n \"25000x600\": 53.0,\n \"25000x750\": 54.0,\n \"25000x910\": 54.0,\n \"25000x1050\": 54.0,\n \"25000x1230\": 66.0,\n \"30000x600\": 53.0,\n \"30000x750\": 54.0,\n \"30000x910\": 54.0,\n \"30000x1050\": 54.0,\n \"30000x1230\": 66.0,\n \"35000x600\": 64.0,\n \"35000x750\": 65.0,\n \"35000x910\": 66.0,\n \"35000x1050\": 66.0,\n \"35000x1230\": 73.0,\n \"40000x600\": 64.0,\n \"40000x750\": 65.0,\n \"40000x910\": 66.0,\n \"40000x1050\": 66.0,\n \"40000x1230\": 73.0,\n \"50000x600\": 71.0,\n \"50000x750\": 72.0,\n \"50000x910\": 73.0,\n \"50000x1050\": 73.0,\n \"50000x1230\": 73.0,\n \"60000x600\": 71.0,\n \"60000x750\": 72.0,\n \"60000x910\": 73.0,\n \"60000x1050\": 73.0,\n \"60000x1230\": 73.0\n },\n \"2500x5000\": {\n \"1000x600\": 54.0,\n \"1000x750\": 66.0,\n \"1000x910\": 66.0,\n \"1000x1050\": 73.0,\n \"1000x1230\": 73.0,\n \"2000x600\": 54.0,\n \"2000x750\": 66.0,\n \"2000x910\": 66.0,\n \"2000x1050\": 73.0,\n \"2000x1230\": 73.0,\n \"3000x600\": 54.0,\n \"3000x750\": 66.0,\n \"3000x910\": 66.0,\n \"3000x1050\": 73.0,\n \"3000x1230\": 73.0,\n \"4000x600\": 54.0,\n \"4000x750\": 66.0,\n \"4000x910\": 66.0,\n \"4000x1050\": 73.0,\n \"4000x1230\": 73.0,\n \"5000x600\": 54.0,\n \"5000x750\": 66.0,\n \"5000x910\": 66.0,\n \"5000x1050\": 73.0,\n \"5000x1230\": 73.0,\n \"6500x600\": 54.0,\n \"6500x750\": 66.0,\n \"6500x910\": 66.0,\n \"6500x1050\": 73.0,\n \"6500x1230\": 73.0,\n \"8000x600\": 54.0,\n \"8000x750\": 66.0,\n \"8000x910\": 66.0,\n \"8000x1050\": 73.0,\n \"8000x1230\": 73.0,\n \"10000x600\": 54.0,\n \"10000x750\": 66.0,\n \"10000x910\": 66.0,\n \"10000x1050\": 73.0,\n \"10000x1230\": 73.0,\n \"12500x600\": 54.0,\n \"12500x750\": 66.0,\n \"12500x910\": 66.0,\n \"12500x1050\": 73.0,\n \"12500x1230\": 73.0,\n \"15500x600\": 54.0,\n \"15500x750\": 66.0,\n \"15500x910\": 66.0,\n \"15500x1050\": 73.0,\n \"15500x1230\": 73.0,\n \"20000x600\": 54.0,\n \"20000x750\": 66.0,\n \"20000x910\": 66.0,\n \"20000x1050\": 73.0,\n \"20000x1230\": 73.0,\n \"25000x600\": 54.0,\n \"25000x750\": 66.0,\n \"25000x910\": 66.0,\n \"25000x1050\": 73.0,\n \"25000x1230\": 73.0,\n \"30000x600\": 54.0,\n \"30000x750\": 66.0,\n \"30000x910\": 66.0,\n \"30000x1050\": 73.0,\n \"30000x1230\": 73.0,\n \"35000x600\": 66.0,\n \"35000x750\": 66.0,\n \"35000x910\": 73.0,\n \"35000x1050\": 83.0,\n \"35000x1230\": 83.0,\n \"40000x600\": 66.0,\n \"40000x750\": 66.0,\n \"40000x910\": 73.0,\n \"40000x1050\": 83.0,\n \"40000x1230\": 83.0,\n \"50000x600\": 73.0,\n \"50000x750\": 73.0,\n \"50000x910\": 73.0,\n \"50000x1050\": 83.0,\n \"50000x1230\": 83.0,\n \"60000x600\": 73.0,\n \"60000x750\": 73.0,\n \"60000x910\": 73.0,\n \"60000x1050\": 83.0,\n \"60000x1230\": 83.0\n },\n \"3000x1000\": {\n \"1000x600\": 21,\n \"1000x750\": 21,\n \"1000x910\": 22,\n \"1000x1050\": 22,\n \"1000x1230\": 22,\n \"2000x600\": 31,\n \"2000x750\": 31,\n \"2000x910\": 31,\n \"2000x1050\": 31,\n \"2000x1230\": 31,\n \"3000x600\": 31,\n \"3000x750\": 31,\n \"3000x910\": 31,\n \"3000x1050\": 31,\n \"3000x1230\": 31,\n \"4000x600\": 31,\n \"4000x750\": 31,\n \"4000x910\": 31,\n \"4000x1050\": 31,\n \"4000x1230\": 31,\n \"5000x600\": 41,\n \"5000x750\": 41,\n \"5000x910\": 41,\n \"5000x1050\": 41,\n \"5000x1230\": 41,\n \"6500x600\": 41,\n \"6500x750\": 41,\n \"6500x910\": 41,\n \"6500x1050\": 41,\n \"6500x1230\": 41,\n \"8000x600\": 41,\n \"8000x750\": 41,\n \"8000x910\": 41,\n \"8000x1050\": 41,\n \"8000x1230\": 41,\n \"10000x600\": 41,\n \"10000x750\": 41,\n \"10000x910\": 41,\n \"10000x1050\": 41,\n \"10000x1230\": 41,\n \"12500x600\": 51,\n \"12500x750\": 51,\n \"12500x910\": 51,\n \"12500x1050\": 51,\n \"12500x1230\": 51,\n \"15500x600\": 51,\n \"15500x750\": 51,\n \"15500x910\": 51,\n \"15500x1050\": 51,\n \"15500x1230\": 51,\n \"20000x600\": 51,\n \"20000x750\": 51,\n \"20000x910\": 51,\n \"20000x1050\": 51,\n \"20000x1230\": 51,\n \"25000x600\": 51,\n \"25000x750\": 51,\n \"25000x910\": 51,\n \"25000x1050\": 52,\n \"25000x1230\": 51,\n \"30000x600\": 61,\n \"30000x750\": 61,\n \"30000x910\": 61,\n \"30000x1050\": 61,\n \"30000x1230\": 61,\n \"35000x600\": 71,\n \"35000x750\": 71,\n \"35000x910\": 71,\n \"35000x1050\": 71,\n \"35000x1230\": 71,\n \"40000x600\": 71,\n \"40000x750\": 71,\n \"40000x910\": 71,\n \"40000x1050\": 71,\n \"40000x1230\": 71,\n \"50000x600\": 71,\n \"50000x750\": 71,\n \"50000x910\": 71,\n \"50000x1050\": 71,\n \"50000x1230\": 71,\n \"60000x600\": 71,\n \"60000x750\": 71,\n \"60000x910\": 71,\n \"60000x1050\": 71,\n \"60000x1230\": 71\n },\n \"3000x1500\": {\n \"1000x600\": 22.0,\n \"1000x750\": 22.0,\n \"1000x910\": 22.0,\n \"1000x1050\": 22.0,\n \"1000x1230\": 22.0,\n \"2000x600\": 31.0,\n \"2000x750\": 31.0,\n \"2000x910\": 31.0,\n \"2000x1050\": 32.0,\n \"2000x1230\": 32.0,\n \"3000x600\": 31.0,\n \"3000x750\": 31.0,\n \"3000x910\": 31.0,\n \"3000x1050\": 32.0,\n \"3000x1230\": 32.0,\n \"4000x600\": 31.0,\n \"4000x750\": 31.0,\n \"4000x910\": 31.0,\n \"4000x1050\": 32.0,\n \"4000x1230\": 32.0,\n \"5000x600\": 41.0,\n \"5000x750\": 41.0,\n \"5000x910\": 41.0,\n \"5000x1050\": 41.0,\n \"5000x1230\": 42.0,\n \"6500x600\": 41.0,\n \"6500x750\": 41.0,\n \"6500x910\": 41.0,\n \"6500x1050\": 41.0,\n \"6500x1230\": 42.0,\n \"8000x600\": 41.0,\n \"8000x750\": 41.0,\n \"8000x910\": 41.0,\n \"8000x1050\": 41.0,\n \"8000x1230\": 42.0,\n \"10000x600\": 41.0,\n \"10000x750\": 41.0,\n \"10000x910\": 41.0,\n \"10000x1050\": 41.0,\n \"10000x1230\": 42.0,\n \"12500x600\": 51.0,\n \"12500x750\": 51.0,\n \"12500x910\": 51.0,\n \"12500x1050\": 51.0,\n \"12500x1230\": 52.0,\n \"15500x600\": 51.0,\n \"15500x750\": 51.0,\n \"15500x910\": 51.0,\n \"15500x1050\": 51.0,\n \"15500x1230\": 52.0,\n \"20000x600\": 51.0,\n \"20000x750\": 51.0,\n \"20000x910\": 51.0,\n \"20000x1050\": 51.0,\n \"20000x1230\": 52.0,\n \"25000x600\": 51.0,\n \"25000x750\": 51.0,\n \"25000x910\": 51.0,\n \"25000x1050\": 52.0,\n \"25000x1230\": 52.0,\n \"30000x600\": 61.0,\n \"30000x750\": 61.0,\n \"30000x910\": 61.0,\n \"30000x1050\": 61.0,\n \"30000x1230\": 62.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 71.0,\n \"35000x1230\": 71.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 71.0,\n \"40000x1230\": 71.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 71.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0\n },\n \"3000x2000\": {\n \"1000x600\": 22.0,\n \"1000x750\": 22.0,\n \"1000x910\": 23.0,\n \"1000x1050\": 23.0,\n \"1000x1230\": 32.0,\n \"2000x600\": 32.0,\n \"2000x750\": 32.0,\n \"2000x910\": 32.0,\n \"2000x1050\": 32.0,\n \"2000x1230\": 32.0,\n \"3000x600\": 32.0,\n \"3000x750\": 32.0,\n \"3000x910\": 32.0,\n \"3000x1050\": 32.0,\n \"3000x1230\": 32.0,\n \"4000x600\": 32.0,\n \"4000x750\": 32.0,\n \"4000x910\": 32.0,\n \"4000x1050\": 32.0,\n \"4000x1230\": 32.0,\n \"5000x600\": 41.0,\n \"5000x750\": 42.0,\n \"5000x910\": 42.0,\n \"5000x1050\": 42.0,\n \"5000x1230\": 42.0,\n \"6500x600\": 41.0,\n \"6500x750\": 42.0,\n \"6500x910\": 42.0,\n \"6500x1050\": 42.0,\n \"6500x1230\": 42.0,\n \"8000x600\": 41.0,\n \"8000x750\": 42.0,\n \"8000x910\": 42.0,\n \"8000x1050\": 42.0,\n \"8000x1230\": 42.0,\n \"10000x600\": 41.0,\n \"10000x750\": 42.0,\n \"10000x910\": 42.0,\n \"10000x1050\": 42.0,\n \"10000x1230\": 42.0,\n \"12500x600\": 51.0,\n \"12500x750\": 52.0,\n \"12500x910\": 52.0,\n \"12500x1050\": 52.0,\n \"12500x1230\": 52.0,\n \"15500x600\": 51.0,\n \"15500x750\": 52.0,\n \"15500x910\": 52.0,\n \"15500x1050\": 52.0,\n \"15500x1230\": 52.0,\n \"20000x600\": 51.0,\n \"20000x750\": 52.0,\n \"20000x910\": 52.0,\n \"20000x1050\": 52.0,\n \"20000x1230\": 52.0,\n \"25000x600\": 51.0,\n \"25000x750\": 52.0,\n \"25000x910\": 52.0,\n \"25000x1050\": 52.0,\n \"25000x1230\": 52.0,\n \"30000x600\": 61.0,\n \"30000x750\": 61.0,\n \"30000x910\": 61.0,\n \"30000x1050\": 62.0,\n \"30000x1230\": 62.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 71.0,\n \"35000x1230\": 71.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 71.0,\n \"40000x1230\": 71.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 71.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0\n },\n \"3000x2500\": {\n \"1000x600\": 32.0,\n \"1000x750\": 32.0,\n \"1000x910\": 33.0,\n \"1000x1050\": 33.0,\n \"1000x1230\": 34.0,\n \"2000x600\": 32.0,\n \"2000x750\": 32.0,\n \"2000x910\": 32.0,\n \"2000x1050\": 33.0,\n \"2000x1230\": 34.0,\n \"3000x600\": 32.0,\n \"3000x750\": 32.0,\n \"3000x910\": 32.0,\n \"3000x1050\": 33.0,\n \"3000x1230\": 34.0,\n \"4000x600\": 32.0,\n \"4000x750\": 32.0,\n \"4000x910\": 32.0,\n \"4000x1050\": 33.0,\n \"4000x1230\": 34.0,\n \"5000x600\": 42.0,\n \"5000x750\": 42.0,\n \"5000x910\": 42.0,\n \"5000x1050\": 42.0,\n \"5000x1230\": 43.0,\n \"6500x600\": 42.0,\n \"6500x750\": 42.0,\n \"6500x910\": 42.0,\n \"6500x1050\": 42.0,\n \"6500x1230\": 43.0,\n \"8000x600\": 42.0,\n \"8000x750\": 42.0,\n \"8000x910\": 42.0,\n \"8000x1050\": 42.0,\n \"8000x1230\": 43.0,\n \"10000x600\": 42.0,\n \"10000x750\": 42.0,\n \"10000x910\": 42.0,\n \"10000x1050\": 42.0,\n \"10000x1230\": 43.0,\n \"12500x600\": 52.0,\n \"12500x750\": 52.0,\n \"12500x910\": 52.0,\n \"12500x1050\": 52.0,\n \"12500x1230\": 53.0,\n \"15500x600\": 52.0,\n \"15500x750\": 52.0,\n \"15500x910\": 52.0,\n \"15500x1050\": 52.0,\n \"15500x1230\": 53.0,\n \"20000x600\": 52.0,\n \"20000x750\": 52.0,\n \"20000x910\": 52.0,\n \"20000x1050\": 52.0,\n \"20000x1230\": 53.0,\n \"25000x600\": 52.0,\n \"25000x750\": 52.0,\n \"25000x910\": 52.0,\n \"25000x1050\": 52.0,\n \"25000x1230\": 53.0,\n \"30000x600\": 61.0,\n \"30000x750\": 62.0,\n \"30000x910\": 62.0,\n \"30000x1050\": 62.0,\n \"30000x1230\": 62.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 71.0,\n \"35000x1230\": 71.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 71.0,\n \"40000x1230\": 71.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 71.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0\n },\n \"3000x3000\": {\n \"1000x600\": 33.0,\n \"1000x750\": 34.0,\n \"1000x910\": 34.0,\n \"1000x1050\": 44.0,\n \"1000x1230\": 45.0,\n \"2000x600\": 32.0,\n \"2000x750\": 33.0,\n \"2000x910\": 34.0,\n \"2000x1050\": 44.0,\n \"2000x1230\": 45.0,\n \"3000x600\": 32.0,\n \"3000x750\": 33.0,\n \"3000x910\": 34.0,\n \"3000x1050\": 44.0,\n \"3000x1230\": 45.0,\n \"4000x600\": 32.0,\n \"4000x750\": 33.0,\n \"4000x910\": 34.0,\n \"4000x1050\": 44.0,\n \"4000x1230\": 45.0,\n \"5000x600\": 42.0,\n \"5000x750\": 42.0,\n \"5000x910\": 43.0,\n \"5000x1050\": 44.0,\n \"5000x1230\": 45.0,\n \"6500x600\": 42.0,\n \"6500x750\": 42.0,\n \"6500x910\": 43.0,\n \"6500x1050\": 44.0,\n \"6500x1230\": 45.0,\n \"8000x600\": 42.0,\n \"8000x750\": 42.0,\n \"8000x910\": 43.0,\n \"8000x1050\": 44.0,\n \"8000x1230\": 45.0,\n \"10000x600\": 42.0,\n \"10000x750\": 42.0,\n \"10000x910\": 43.0,\n \"10000x1050\": 44.0,\n \"10000x1230\": 45.0,\n \"12500x600\": 52.0,\n \"12500x750\": 52.0,\n \"12500x910\": 53.0,\n \"12500x1050\": 54.0,\n \"12500x1230\": 54.0,\n \"15500x600\": 52.0,\n \"15500x750\": 52.0,\n \"15500x910\": 53.0,\n \"15500x1050\": 54.0,\n \"15500x1230\": 54.0,\n \"20000x600\": 52.0,\n \"20000x750\": 52.0,\n \"20000x910\": 53.0,\n \"20000x1050\": 54.0,\n \"20000x1230\": 54.0,\n \"25000x600\": 52.0,\n \"25000x750\": 52.0,\n \"25000x910\": 53.0,\n \"25000x1050\": 54.0,\n \"25000x1230\": 54.0,\n \"30000x600\": 62.0,\n \"30000x750\": 62.0,\n \"30000x910\": 62.0,\n \"30000x1050\": 63.0,\n \"30000x1230\": 64.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 72.0,\n \"35000x1230\": 73.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 72.0,\n \"40000x1230\": 73.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 72.0,\n \"50000x1230\": 73.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 72.0,\n \"60000x1230\": 73.0\n },\n \"3000x3500\": {\n \"1000x600\": 52.0,\n \"1000x750\": 53.0,\n \"1000x910\": 54.0,\n \"1000x1050\": 54.0,\n \"1000x1230\": 54.0,\n \"2000x600\": 52.0,\n \"2000x750\": 52.0,\n \"2000x910\": 53.0,\n \"2000x1050\": 54.0,\n \"2000x1230\": 54.0,\n \"3000x600\": 52.0,\n \"3000x750\": 52.0,\n \"3000x910\": 53.0,\n \"3000x1050\": 54.0,\n \"3000x1230\": 54.0,\n \"4000x600\": 52.0,\n \"4000x750\": 52.0,\n \"4000x910\": 53.0,\n \"4000x1050\": 54.0,\n \"4000x1230\": 54.0,\n \"5000x600\": 52.0,\n \"5000x750\": 52.0,\n \"5000x910\": 53.0,\n \"5000x1050\": 54.0,\n \"5000x1230\": 54.0,\n \"6500x600\": 52.0,\n \"6500x750\": 52.0,\n \"6500x910\": 53.0,\n \"6500x1050\": 54.0,\n \"6500x1230\": 54.0,\n \"8000x600\": 52.0,\n \"8000x750\": 52.0,\n \"8000x910\": 53.0,\n \"8000x1050\": 54.0,\n \"8000x1230\": 54.0,\n \"10000x600\": 52.0,\n \"10000x750\": 52.0,\n \"10000x910\": 53.0,\n \"10000x1050\": 54.0,\n \"10000x1230\": 54.0,\n \"12500x600\": 53.0,\n \"12500x750\": 54.0,\n \"12500x910\": 54.0,\n \"12500x1050\": 54.0,\n \"12500x1230\": 66.0,\n \"15500x600\": 53.0,\n \"15500x750\": 54.0,\n \"15500x910\": 54.0,\n \"15500x1050\": 54.0,\n \"15500x1230\": 66.0,\n \"20000x600\": 53.0,\n \"20000x750\": 54.0,\n \"20000x910\": 54.0,\n \"20000x1050\": 54.0,\n \"20000x1230\": 66.0,\n \"25000x600\": 53.0,\n \"25000x750\": 54.0,\n \"25000x910\": 54.0,\n \"25000x1050\": 54.0,\n \"25000x1230\": 66.0,\n \"30000x600\": 62.0,\n \"30000x750\": 63.0,\n \"30000x910\": 64.0,\n \"30000x1050\": 65.0,\n \"30000x1230\": 66.0,\n \"35000x600\": 71.0,\n \"35000x750\": 72.0,\n \"35000x910\": 73.0,\n \"35000x1050\": 73.0,\n \"35000x1230\": 73.0,\n \"40000x600\": 71.0,\n \"40000x750\": 72.0,\n \"40000x910\": 73.0,\n \"40000x1050\": 73.0,\n \"40000x1230\": 73.0,\n \"50000x600\": 71.0,\n \"50000x750\": 72.0,\n \"50000x910\": 73.0,\n \"50000x1050\": 73.0,\n \"50000x1230\": 73.0,\n \"60000x600\": 71.0,\n \"60000x750\": 72.0,\n \"60000x910\": 73.0,\n \"60000x1050\": 73.0,\n \"60000x1230\": 73.0\n },\n \"3000x4000\": {\n \"1000x600\": 54.0,\n \"1000x750\": 54.0,\n \"1000x910\": 66.0,\n \"1000x1050\": 66.0,\n \"1000x1230\": 66.0,\n \"2000x600\": 54.0,\n \"2000x750\": 54.0,\n \"2000x910\": 66.0,\n \"2000x1050\": 66.0,\n \"2000x1230\": 66.0,\n \"3000x600\": 54.0,\n \"3000x750\": 54.0,\n \"3000x910\": 66.0,\n \"3000x1050\": 66.0,\n \"3000x1230\": 66.0,\n \"4000x600\": 54.0,\n \"4000x750\": 54.0,\n \"4000x910\": 66.0,\n \"4000x1050\": 66.0,\n \"4000x1230\": 66.0,\n \"5000x600\": 54.0,\n \"5000x750\": 54.0,\n \"5000x910\": 66.0,\n \"5000x1050\": 66.0,\n \"5000x1230\": 66.0,\n \"6500x600\": 54.0,\n \"6500x750\": 54.0,\n \"6500x910\": 66.0,\n \"6500x1050\": 66.0,\n \"6500x1230\": 66.0,\n \"8000x600\": 54.0,\n \"8000x750\": 54.0,\n \"8000x910\": 66.0,\n \"8000x1050\": 66.0,\n \"8000x1230\": 66.0,\n \"10000x600\": 54.0,\n \"10000x750\": 54.0,\n \"10000x910\": 66.0,\n \"10000x1050\": 66.0,\n \"10000x1230\": 66.0,\n \"12500x600\": 54.0,\n \"12500x750\": 54.0,\n \"12500x910\": 66.0,\n \"12500x1050\": 66.0,\n \"12500x1230\": 66.0,\n \"15500x600\": 54.0,\n \"15500x750\": 54.0,\n \"15500x910\": 66.0,\n \"15500x1050\": 66.0,\n \"15500x1230\": 66.0,\n \"20000x600\": 54.0,\n \"20000x750\": 54.0,\n \"20000x910\": 66.0,\n \"20000x1050\": 66.0,\n \"20000x1230\": 66.0,\n \"25000x600\": 54.0,\n \"25000x750\": 54.0,\n \"25000x910\": 66.0,\n \"25000x1050\": 66.0,\n \"25000x1230\": 66.0,\n \"30000x600\": 63.0,\n \"30000x750\": 64.0,\n \"30000x910\": 66.0,\n \"30000x1050\": 66.0,\n \"30000x1230\": 66.0,\n \"35000x600\": 72.0,\n \"35000x750\": 73.0,\n \"35000x910\": 73.0,\n \"35000x1050\": 73.0,\n \"35000x1230\": 73.0,\n \"40000x600\": 72.0,\n \"40000x750\": 73.0,\n \"40000x910\": 73.0,\n \"40000x1050\": 73.0,\n \"40000x1230\": 73.0,\n \"50000x600\": 72.0,\n \"50000x750\": 73.0,\n \"50000x910\": 73.0,\n \"50000x1050\": 73.0,\n \"50000x1230\": 73.0,\n \"60000x600\": 72.0,\n \"60000x750\": 73.0,\n \"60000x910\": 73.0,\n \"60000x1050\": 73.0,\n \"60000x1230\": 73.0\n },\n \"3000x5000\": {\n \"1000x600\": 66.0,\n \"1000x750\": 66.0,\n \"1000x910\": 73.0,\n \"1000x1050\": 73.0,\n \"1000x1230\": 83.0,\n \"2000x600\": 66.0,\n \"2000x750\": 66.0,\n \"2000x910\": 73.0,\n \"2000x1050\": 73.0,\n \"2000x1230\": 83.0,\n \"3000x600\": 66.0,\n \"3000x750\": 66.0,\n \"3000x910\": 73.0,\n \"3000x1050\": 73.0,\n \"3000x1230\": 83.0,\n \"4000x600\": 66.0,\n \"4000x750\": 66.0,\n \"4000x910\": 73.0,\n \"4000x1050\": 73.0,\n \"4000x1230\": 83.0,\n \"5000x600\": 66.0,\n \"5000x750\": 66.0,\n \"5000x910\": 73.0,\n \"5000x1050\": 73.0,\n \"5000x1230\": 83.0,\n \"6500x600\": 66.0,\n \"6500x750\": 66.0,\n \"6500x910\": 73.0,\n \"6500x1050\": 73.0,\n \"6500x1230\": 83.0,\n \"8000x600\": 66.0,\n \"8000x750\": 66.0,\n \"8000x910\": 73.0,\n \"8000x1050\": 73.0,\n \"8000x1230\": 83.0,\n \"10000x600\": 66.0,\n \"10000x750\": 66.0,\n \"10000x910\": 73.0,\n \"10000x1050\": 73.0,\n \"10000x1230\": 83.0,\n \"12500x600\": 66.0,\n \"12500x750\": 66.0,\n \"12500x910\": 73.0,\n \"12500x1050\": 73.0,\n \"12500x1230\": 83.0,\n \"15500x600\": 66.0,\n \"15500x750\": 66.0,\n \"15500x910\": 73.0,\n \"15500x1050\": 73.0,\n \"15500x1230\": 83.0,\n \"20000x600\": 66.0,\n \"20000x750\": 66.0,\n \"20000x910\": 73.0,\n \"20000x1050\": 73.0,\n \"20000x1230\": 83.0,\n \"25000x600\": 66.0,\n \"25000x750\": 66.0,\n \"25000x910\": 73.0,\n \"25000x1050\": 73.0,\n \"25000x1230\": 83.0,\n \"30000x600\": 66.0,\n \"30000x750\": 66.0,\n \"30000x910\": 73.0,\n \"30000x1050\": 73.0,\n \"30000x1230\": 83.0,\n \"35000x600\": 73.0,\n \"35000x750\": 73.0,\n \"35000x910\": 83.0,\n \"35000x1050\": 83.0,\n \"35000x1230\": 83.0,\n \"40000x600\": 73.0,\n \"40000x750\": 73.0,\n \"40000x910\": 83.0,\n \"40000x1050\": 83.0,\n \"40000x1230\": 83.0,\n \"50000x600\": 73.0,\n \"50000x750\": 73.0,\n \"50000x910\": 83.0,\n \"50000x1050\": 83.0,\n \"50000x1230\": 83.0,\n \"60000x600\": 73.0,\n \"60000x750\": 73.0,\n \"60000x910\": 83.0,\n \"60000x1050\": 83.0,\n \"60000x1230\": 83.0\n },\n \"3500x1000\": {\n \"1000x600\": 31.0,\n \"1000x750\": 31.0,\n \"1000x910\": 31.0,\n \"1000x1050\": 31.0,\n \"1000x1230\": 32.0,\n \"2000x600\": 31.0,\n \"2000x750\": 31.0,\n \"2000x910\": 31.0,\n \"2000x1050\": 31.0,\n \"2000x1230\": 41.0,\n \"3000x600\": 31.0,\n \"3000x750\": 31.0,\n \"3000x910\": 31.0,\n \"3000x1050\": 31.0,\n \"3000x1230\": 41.0,\n \"4000x600\": 41.0,\n \"4000x750\": 41.0,\n \"4000x910\": 41.0,\n \"4000x1050\": 41.0,\n \"4000x1230\": 41.0,\n \"5000x600\": 41.0,\n \"5000x750\": 41.0,\n \"5000x910\": 41.0,\n \"5000x1050\": 41.0,\n \"5000x1230\": 41.0,\n \"6500x600\": 41.0,\n \"6500x750\": 41.0,\n \"6500x910\": 41.0,\n \"6500x1050\": 41.0,\n \"6500x1230\": 41.0,\n \"8000x600\": 41.0,\n \"8000x750\": 41.0,\n \"8000x910\": 41.0,\n \"8000x1050\": 41.0,\n \"8000x1230\": 41.0,\n \"10000x600\": 51.0,\n \"10000x750\": 51.0,\n \"10000x910\": 51.0,\n \"10000x1050\": 51.0,\n \"10000x1230\": 51.0,\n \"12500x600\": 51.0,\n \"12500x750\": 51.0,\n \"12500x910\": 51.0,\n \"12500x1050\": 51.0,\n \"12500x1230\": 51.0,\n \"15500x600\": 51.0,\n \"15500x750\": 51.0,\n \"15500x910\": 51.0,\n \"15500x1050\": 51.0,\n \"15500x1230\": 51.0,\n \"20000x600\": 51.0,\n \"20000x750\": 51.0,\n \"20000x910\": 51.0,\n \"20000x1050\": 51.0,\n \"20000x1230\": 51.0,\n \"25000x600\": 61.0,\n \"25000x750\": 61.0,\n \"25000x910\": 61.0,\n \"25000x1050\": 61.0,\n \"25000x1230\": 61.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 71.0,\n \"30000x1050\": 71.0,\n \"30000x1230\": 71.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 71.0,\n \"35000x1230\": 71.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 71.0,\n \"40000x1230\": 71.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 71.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0\n },\n \"3500x1500\": {\n \"1000x600\": 31.0,\n \"1000x750\": 32.0,\n \"1000x910\": 32.0,\n \"1000x1050\": 32.0,\n \"1000x1230\": 32.0,\n \"2000x600\": 31.0,\n \"2000x750\": 32.0,\n \"2000x910\": 32.0,\n \"2000x1050\": 32.0,\n \"2000x1230\": 32.0,\n \"3000x600\": 31.0,\n \"3000x750\": 32.0,\n \"3000x910\": 32.0,\n \"3000x1050\": 32.0,\n \"3000x1230\": 32.0,\n \"4000x600\": 41.0,\n \"4000x750\": 41.0,\n \"4000x910\": 41.0,\n \"4000x1050\": 42.0,\n \"4000x1230\": 42.0,\n \"5000x600\": 41.0,\n \"5000x750\": 41.0,\n \"5000x910\": 41.0,\n \"5000x1050\": 42.0,\n \"5000x1230\": 42.0,\n \"6500x600\": 41.0,\n \"6500x750\": 41.0,\n \"6500x910\": 41.0,\n \"6500x1050\": 42.0,\n \"6500x1230\": 42.0,\n \"8000x600\": 41.0,\n \"8000x750\": 41.0,\n \"8000x910\": 41.0,\n \"8000x1050\": 42.0,\n \"8000x1230\": 42.0,\n \"10000x600\": 51.0,\n \"10000x750\": 51.0,\n \"10000x910\": 51.0,\n \"10000x1050\": 51.0,\n \"10000x1230\": 51.0,\n \"12500x600\": 51.0,\n \"12500x750\": 51.0,\n \"12500x910\": 51.0,\n \"12500x1050\": 52.0,\n \"12500x1230\": 52.0,\n \"15500x600\": 51.0,\n \"15500x750\": 51.0,\n \"15500x910\": 51.0,\n \"15500x1050\": 52.0,\n \"15500x1230\": 52.0,\n \"20000x600\": 51.0,\n \"20000x750\": 51.0,\n \"20000x910\": 51.0,\n \"20000x1050\": 52.0,\n \"20000x1230\": 52.0,\n \"25000x600\": 61.0,\n \"25000x750\": 61.0,\n \"25000x910\": 61.0,\n \"25000x1050\": 61.0,\n \"25000x1230\": 62.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 71.0,\n \"30000x1050\": 71.0,\n \"30000x1230\": 71.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 71.0,\n \"35000x1230\": 71.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 71.0,\n \"40000x1230\": 71.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 71.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0\n },\n \"3500x2000\": {\n \"1000x600\": 32.0,\n \"1000x750\": 32.0,\n \"1000x910\": 32.0,\n \"1000x1050\": 32.0,\n \"1000x1230\": 33.0,\n \"2000x600\": 32.0,\n \"2000x750\": 32.0,\n \"2000x910\": 32.0,\n \"2000x1050\": 32.0,\n \"2000x1230\": 33.0,\n \"3000x600\": 32.0,\n \"3000x750\": 32.0,\n \"3000x910\": 32.0,\n \"3000x1050\": 32.0,\n \"3000x1230\": 33.0,\n \"4000x600\": 42.0,\n \"4000x750\": 42.0,\n \"4000x910\": 42.0,\n \"4000x1050\": 42.0,\n \"4000x1230\": 42.0,\n \"5000x600\": 42.0,\n \"5000x750\": 42.0,\n \"5000x910\": 42.0,\n \"5000x1050\": 42.0,\n \"5000x1230\": 42.0,\n \"6500x600\": 42.0,\n \"6500x750\": 42.0,\n \"6500x910\": 42.0,\n \"6500x1050\": 42.0,\n \"6500x1230\": 42.0,\n \"8000x600\": 42.0,\n \"8000x750\": 42.0,\n \"8000x910\": 42.0,\n \"8000x1050\": 42.0,\n \"8000x1230\": 42.0,\n \"10000x600\": 51.0,\n \"10000x750\": 51.0,\n \"10000x910\": 52.0,\n \"10000x1050\": 52.0,\n \"10000x1230\": 52.0,\n \"12500x600\": 51.0,\n \"12500x750\": 52.0,\n \"12500x910\": 52.0,\n \"12500x1050\": 52.0,\n \"12500x1230\": 52.0,\n \"15500x600\": 51.0,\n \"15500x750\": 52.0,\n \"15500x910\": 52.0,\n \"15500x1050\": 52.0,\n \"15500x1230\": 52.0,\n \"20000x600\": 51.0,\n \"20000x750\": 52.0,\n \"20000x910\": 52.0,\n \"20000x1050\": 52.0,\n \"20000x1230\": 52.0,\n \"25000x600\": 61.0,\n \"25000x750\": 61.0,\n \"25000x910\": 62.0,\n \"25000x1050\": 62.0,\n \"25000x1230\": 62.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 71.0,\n \"30000x1050\": 71.0,\n \"30000x1230\": 71.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 71.0,\n \"35000x1230\": 71.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 71.0,\n \"40000x1230\": 71.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 71.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 71.0\n },\n \"3500x2500\": {\n \"1000x600\": 32.0,\n \"1000x750\": 33.0,\n \"1000x910\": 34.0,\n \"1000x1050\": 34.0,\n \"1000x1230\": 34.0,\n \"2000x600\": 32.0,\n \"2000x750\": 32.0,\n \"2000x910\": 33.0,\n \"2000x1050\": 34.0,\n \"2000x1230\": 34.0,\n \"3000x600\": 32.0,\n \"3000x750\": 32.0,\n \"3000x910\": 33.0,\n \"3000x1050\": 34.0,\n \"3000x1230\": 34.0,\n \"4000x600\": 42.0,\n \"4000x750\": 42.0,\n \"4000x910\": 42.0,\n \"4000x1050\": 43.0,\n \"4000x1230\": 44.0,\n \"5000x600\": 42.0,\n \"5000x750\": 42.0,\n \"5000x910\": 42.0,\n \"5000x1050\": 43.0,\n \"5000x1230\": 44.0,\n \"6500x600\": 42.0,\n \"6500x750\": 42.0,\n \"6500x910\": 42.0,\n \"6500x1050\": 43.0,\n \"6500x1230\": 44.0,\n \"8000x600\": 42.0,\n \"8000x750\": 42.0,\n \"8000x910\": 42.0,\n \"8000x1050\": 43.0,\n \"8000x1230\": 44.0,\n \"10000x600\": 52.0,\n \"10000x750\": 52.0,\n \"10000x910\": 52.0,\n \"10000x1050\": 52.0,\n \"10000x1230\": 52.0,\n \"12500x600\": 52.0,\n \"12500x750\": 52.0,\n \"12500x910\": 52.0,\n \"12500x1050\": 53.0,\n \"12500x1230\": 54.0,\n \"15500x600\": 52.0,\n \"15500x750\": 52.0,\n \"15500x910\": 52.0,\n \"15500x1050\": 53.0,\n \"15500x1230\": 54.0,\n \"20000x600\": 52.0,\n \"20000x750\": 52.0,\n \"20000x910\": 52.0,\n \"20000x1050\": 53.0,\n \"20000x1230\": 54.0,\n \"25000x600\": 62.0,\n \"25000x750\": 62.0,\n \"25000x910\": 62.0,\n \"25000x1050\": 62.0,\n \"25000x1230\": 64.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 71.0,\n \"30000x1050\": 71.0,\n \"30000x1230\": 71.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 71.0,\n \"35000x1230\": 72.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 71.0,\n \"40000x1230\": 72.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 72.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 71.0,\n \"60000x1050\": 71.0,\n \"60000x1230\": 72.0\n },\n \"3500x3000\": {\n \"1000x600\": 33.0,\n \"1000x750\": 34.0,\n \"1000x910\": 44.0,\n \"1000x1050\": 45.0,\n \"1000x1230\": 54.0,\n \"2000x600\": 33.0,\n \"2000x750\": 34.0,\n \"2000x910\": 34.0,\n \"2000x1050\": 44.0,\n \"2000x1230\": 45.0,\n \"3000x600\": 33.0,\n \"3000x750\": 34.0,\n \"3000x910\": 34.0,\n \"3000x1050\": 44.0,\n \"3000x1230\": 45.0,\n \"4000x600\": 42.0,\n \"4000x750\": 43.0,\n \"4000x910\": 44.0,\n \"4000x1050\": 44.0,\n \"4000x1230\": 45.0,\n \"5000x600\": 42.0,\n \"5000x750\": 43.0,\n \"5000x910\": 44.0,\n \"5000x1050\": 44.0,\n \"5000x1230\": 45.0,\n \"6500x600\": 42.0,\n \"6500x750\": 43.0,\n \"6500x910\": 44.0,\n \"6500x1050\": 44.0,\n \"6500x1230\": 45.0,\n \"8000x600\": 42.0,\n \"8000x750\": 43.0,\n \"8000x910\": 44.0,\n \"8000x1050\": 44.0,\n \"8000x1230\": 45.0,\n \"10000x600\": 52.0,\n \"10000x750\": 52.0,\n \"10000x910\": 53.0,\n \"10000x1050\": 53.0,\n \"10000x1230\": 54.0,\n \"12500x600\": 52.0,\n \"12500x750\": 53.0,\n \"12500x910\": 54.0,\n \"12500x1050\": 54.0,\n \"12500x1230\": 54.0,\n \"15500x600\": 52.0,\n \"15500x750\": 53.0,\n \"15500x910\": 54.0,\n \"15500x1050\": 54.0,\n \"15500x1230\": 54.0,\n \"20000x600\": 52.0,\n \"20000x750\": 53.0,\n \"20000x910\": 54.0,\n \"20000x1050\": 54.0,\n \"20000x1230\": 54.0,\n \"25000x600\": 62.0,\n \"25000x750\": 62.0,\n \"25000x910\": 63.0,\n \"25000x1050\": 64.0,\n \"25000x1230\": 65.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 71.0,\n \"30000x1050\": 72.0,\n \"30000x1230\": 72.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 72.0,\n \"35000x1050\": 73.0,\n \"35000x1230\": 73.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 72.0,\n \"40000x1050\": 73.0,\n \"40000x1230\": 73.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 72.0,\n \"50000x1050\": 73.0,\n \"50000x1230\": 73.0,\n \"60000x600\": 71.0,\n \"60000x750\": 71.0,\n \"60000x910\": 72.0,\n \"60000x1050\": 73.0,\n \"60000x1230\": 73.0\n },\n \"3500x3500\": {\n \"1000x600\": 53.0,\n \"1000x750\": 54.0,\n \"1000x910\": 54.0,\n \"1000x1050\": 54.0,\n \"1000x1230\": 54.0,\n \"2000x600\": 52.0,\n \"2000x750\": 53.0,\n \"2000x910\": 54.0,\n \"2000x1050\": 54.0,\n \"2000x1230\": 54.0,\n \"3000x600\": 52.0,\n \"3000x750\": 53.0,\n \"3000x910\": 54.0,\n \"3000x1050\": 54.0,\n \"3000x1230\": 54.0,\n \"4000x600\": 52.0,\n \"4000x750\": 53.0,\n \"4000x910\": 54.0,\n \"4000x1050\": 54.0,\n \"4000x1230\": 54.0,\n \"5000x600\": 52.0,\n \"5000x750\": 53.0,\n \"5000x910\": 54.0,\n \"5000x1050\": 54.0,\n \"5000x1230\": 54.0,\n \"6500x600\": 52.0,\n \"6500x750\": 53.0,\n \"6500x910\": 54.0,\n \"6500x1050\": 54.0,\n \"6500x1230\": 54.0,\n \"8000x600\": 52.0,\n \"8000x750\": 53.0,\n \"8000x910\": 54.0,\n \"8000x1050\": 54.0,\n \"8000x1230\": 54.0,\n \"10000x600\": 52.0,\n \"10000x750\": 53.0,\n \"10000x910\": 54.0,\n \"10000x1050\": 54.0,\n \"10000x1230\": 54.0,\n \"12500x600\": 54.0,\n \"12500x750\": 54.0,\n \"12500x910\": 54.0,\n \"12500x1050\": 66.0,\n \"12500x1230\": 66.0,\n \"15500x600\": 54.0,\n \"15500x750\": 54.0,\n \"15500x910\": 54.0,\n \"15500x1050\": 66.0,\n \"15500x1230\": 66.0,\n \"20000x600\": 54.0,\n \"20000x750\": 54.0,\n \"20000x910\": 54.0,\n \"20000x1050\": 66.0,\n \"20000x1230\": 66.0,\n \"25000x600\": 63.0,\n \"25000x750\": 64.0,\n \"25000x910\": 65.0,\n \"25000x1050\": 66.0,\n \"25000x1230\": 66.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 72.0,\n \"30000x1050\": 73.0,\n \"30000x1230\": 73.0,\n \"35000x600\": 71.0,\n \"35000x750\": 73.0,\n \"35000x910\": 73.0,\n \"35000x1050\": 73.0,\n \"35000x1230\": 73.0,\n \"40000x600\": 71.0,\n \"40000x750\": 73.0,\n \"40000x910\": 73.0,\n \"40000x1050\": 73.0,\n \"40000x1230\": 73.0,\n \"50000x600\": 71.0,\n \"50000x750\": 73.0,\n \"50000x910\": 73.0,\n \"50000x1050\": 73.0,\n \"50000x1230\": 73.0,\n \"60000x600\": 71.0,\n \"60000x750\": 73.0,\n \"60000x910\": 73.0,\n \"60000x1050\": 73.0,\n \"60000x1230\": 73.0\n },\n \"3500x4000\": {\n \"1000x600\": 54.0,\n \"1000x750\": 54.0,\n \"1000x910\": 66.0,\n \"1000x1050\": 66.0,\n \"1000x1230\": 73.0,\n \"2000x600\": 54.0,\n \"2000x750\": 54.0,\n \"2000x910\": 66.0,\n \"2000x1050\": 66.0,\n \"2000x1230\": 73.0,\n \"3000x600\": 54.0,\n \"3000x750\": 54.0,\n \"3000x910\": 66.0,\n \"3000x1050\": 66.0,\n \"3000x1230\": 73.0,\n \"4000x600\": 54.0,\n \"4000x750\": 54.0,\n \"4000x910\": 66.0,\n \"4000x1050\": 66.0,\n \"4000x1230\": 73.0,\n \"5000x600\": 54.0,\n \"5000x750\": 54.0,\n \"5000x910\": 66.0,\n \"5000x1050\": 66.0,\n \"5000x1230\": 73.0,\n \"6500x600\": 54.0,\n \"6500x750\": 54.0,\n \"6500x910\": 66.0,\n \"6500x1050\": 66.0,\n \"6500x1230\": 73.0,\n \"8000x600\": 54.0,\n \"8000x750\": 54.0,\n \"8000x910\": 66.0,\n \"8000x1050\": 66.0,\n \"8000x1230\": 73.0,\n \"10000x600\": 54.0,\n \"10000x750\": 54.0,\n \"10000x910\": 66.0,\n \"10000x1050\": 66.0,\n \"10000x1230\": 73.0,\n \"12500x600\": 54.0,\n \"12500x750\": 54.0,\n \"12500x910\": 66.0,\n \"12500x1050\": 66.0,\n \"12500x1230\": 73.0,\n \"15500x600\": 54.0,\n \"15500x750\": 54.0,\n \"15500x910\": 66.0,\n \"15500x1050\": 66.0,\n \"15500x1230\": 73.0,\n \"20000x600\": 54.0,\n \"20000x750\": 54.0,\n \"20000x910\": 66.0,\n \"20000x1050\": 66.0,\n \"20000x1230\": 73.0,\n \"25000x600\": 64.0,\n \"25000x750\": 65.0,\n \"25000x910\": 66.0,\n \"25000x1050\": 66.0,\n \"25000x1230\": 73.0,\n \"30000x600\": 73.0,\n \"30000x750\": 73.0,\n \"30000x910\": 73.0,\n \"30000x1050\": 73.0,\n \"30000x1230\": 73.0,\n \"35000x600\": 73.0,\n \"35000x750\": 73.0,\n \"35000x910\": 73.0,\n \"35000x1050\": 73.0,\n \"35000x1230\": 83.0,\n \"40000x600\": 73.0,\n \"40000x750\": 73.0,\n \"40000x910\": 73.0,\n \"40000x1050\": 73.0,\n \"40000x1230\": 83.0,\n \"50000x600\": 73.0,\n \"50000x750\": 73.0,\n \"50000x910\": 73.0,\n \"50000x1050\": 73.0,\n \"50000x1230\": 83.0,\n \"60000x600\": 73.0,\n \"60000x750\": 73.0,\n \"60000x910\": 73.0,\n \"60000x1050\": 73.0,\n \"60000x1230\": 83.0\n },\n \"3500x5000\": {\n \"1000x600\": 66.0,\n \"1000x750\": 73.0,\n \"1000x910\": 73.0,\n \"1000x1050\": 83.0,\n \"1000x1230\": 83.0,\n \"2000x600\": 66.0,\n \"2000x750\": 73.0,\n \"2000x910\": 73.0,\n \"2000x1050\": 83.0,\n \"2000x1230\": 83.0,\n \"3000x600\": 66.0,\n \"3000x750\": 73.0,\n \"3000x910\": 73.0,\n \"3000x1050\": 83.0,\n \"3000x1230\": 83.0,\n \"4000x600\": 66.0,\n \"4000x750\": 73.0,\n \"4000x910\": 73.0,\n \"4000x1050\": 83.0,\n \"4000x1230\": 83.0,\n \"5000x600\": 66.0,\n \"5000x750\": 73.0,\n \"5000x910\": 73.0,\n \"5000x1050\": 83.0,\n \"5000x1230\": 83.0,\n \"6500x600\": 66.0,\n \"6500x750\": 73.0,\n \"6500x910\": 73.0,\n \"6500x1050\": 83.0,\n \"6500x1230\": 83.0,\n \"8000x600\": 66.0,\n \"8000x750\": 73.0,\n \"8000x910\": 73.0,\n \"8000x1050\": 83.0,\n \"8000x1230\": 83.0,\n \"10000x600\": 66.0,\n \"10000x750\": 73.0,\n \"10000x910\": 73.0,\n \"10000x1050\": 83.0,\n \"10000x1230\": 83.0,\n \"12500x600\": 66.0,\n \"12500x750\": 73.0,\n \"12500x910\": 73.0,\n \"12500x1050\": 83.0,\n \"12500x1230\": 83.0,\n \"15500x600\": 66.0,\n \"15500x750\": 73.0,\n \"15500x910\": 73.0,\n \"15500x1050\": 83.0,\n \"15500x1230\": 83.0,\n \"20000x600\": 66.0,\n \"20000x750\": 73.0,\n \"20000x910\": 73.0,\n \"20000x1050\": 83.0,\n \"20000x1230\": 83.0,\n \"25000x600\": 73.0,\n \"25000x750\": 73.0,\n \"25000x910\": 73.0,\n \"25000x1050\": 83.0,\n \"25000x1230\": 83.0,\n \"30000x600\": 73.0,\n \"30000x750\": 73.0,\n \"30000x910\": 73.0,\n \"30000x1050\": 83.0,\n \"30000x1230\": 83.0,\n \"35000x600\": 73.0,\n \"35000x750\": 83.0,\n \"35000x910\": 83.0,\n \"35000x1050\": 83.0,\n \"35000x1230\": 93.0,\n \"40000x600\": 73.0,\n \"40000x750\": 83.0,\n \"40000x910\": 83.0,\n \"40000x1050\": 83.0,\n \"40000x1230\": 93.0,\n \"50000x600\": 73.0,\n \"50000x750\": 83.0,\n \"50000x910\": 83.0,\n \"50000x1050\": 83.0,\n \"50000x1230\": 93.0,\n \"60000x600\": 73.0,\n \"60000x750\": 83.0,\n \"60000x910\": 83.0,\n \"60000x1050\": 83.0,\n \"60000x1230\": 93.0\n },\n \"4000x1000\": {\n \"1000x600\": 31.0,\n \"1000x750\": 31.0,\n \"1000x910\": 31.0,\n \"1000x1050\": 32.0,\n \"1000x1230\": 32.0,\n \"2000x600\": 31.0,\n \"2000x750\": 31.0,\n \"2000x910\": 31.0,\n \"2000x1050\": 31.0,\n \"2000x1230\": 32.0,\n \"3000x600\": 41.0,\n \"3000x750\": 41.0,\n \"3000x910\": 41.0,\n \"3000x1050\": 41.0,\n \"3000x1230\": 42.0,\n \"4000x600\": 41.0,\n \"4000x750\": 41.0,\n \"4000x910\": 41.0,\n \"4000x1050\": 41.0,\n \"4000x1230\": 41.0,\n \"5000x600\": 41.0,\n \"5000x750\": 41.0,\n \"5000x910\": 41.0,\n \"5000x1050\": 41.0,\n \"5000x1230\": 42.0,\n \"6500x600\": 41.0,\n \"6500x750\": 41.0,\n \"6500x910\": 41.0,\n \"6500x1050\": 41.0,\n \"6500x1230\": 41.0,\n \"8000x600\": 51.0,\n \"8000x750\": 51.0,\n \"8000x910\": 51.0,\n \"8000x1050\": 51.0,\n \"8000x1230\": 51.0,\n \"10000x600\": 51.0,\n \"10000x750\": 51.0,\n \"10000x910\": 51.0,\n \"10000x1050\": 51.0,\n \"10000x1230\": 51.0,\n \"12500x600\": 51.0,\n \"12500x750\": 51.0,\n \"12500x910\": 51.0,\n \"12500x1050\": 51.0,\n \"12500x1230\": 52.0,\n \"15500x600\": 51.0,\n \"15500x750\": 51.0,\n \"15500x910\": 51.0,\n \"15500x1050\": 51.0,\n \"15500x1230\": 52.0,\n \"20000x600\": 61.0,\n \"20000x750\": 61.0,\n \"20000x910\": 61.0,\n \"20000x1050\": 61.0,\n \"20000x1230\": 62.0,\n \"25000x600\": 71.0,\n \"25000x750\": 71.0,\n \"25000x910\": 71.0,\n \"25000x1050\": 71.0,\n \"25000x1230\": 71.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 71.0,\n \"30000x1050\": 71.0,\n \"30000x1230\": 71.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 71.0,\n \"35000x1230\": 71.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 71.0,\n \"40000x1230\": 71.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 71.0,\n \"60000x600\": 91.0,\n \"60000x750\": 91.0,\n \"60000x910\": 91.0,\n \"60000x1050\": 91.0,\n \"60000x1230\": 91.0\n },\n \"4000x1500\": {\n \"1000x600\": 31.0,\n \"1000x750\": 32.0,\n \"1000x910\": 32.0,\n \"1000x1050\": 32.0,\n \"1000x1230\": 32.0,\n \"2000x600\": 31.0,\n \"2000x750\": 32.0,\n \"2000x910\": 32.0,\n \"2000x1050\": 32.0,\n \"2000x1230\": 32.0,\n \"3000x600\": 41.0,\n \"3000x750\": 41.0,\n \"3000x910\": 42.0,\n \"3000x1050\": 42.0,\n \"3000x1230\": 42.0,\n \"4000x600\": 41.0,\n \"4000x750\": 41.0,\n \"4000x910\": 42.0,\n \"4000x1050\": 42.0,\n \"4000x1230\": 42.0,\n \"5000x600\": 41.0,\n \"5000x750\": 41.0,\n \"5000x910\": 42.0,\n \"5000x1050\": 42.0,\n \"5000x1230\": 42.0,\n \"6500x600\": 41.0,\n \"6500x750\": 41.0,\n \"6500x910\": 42.0,\n \"6500x1050\": 42.0,\n \"6500x1230\": 42.0,\n \"8000x600\": 51.0,\n \"8000x750\": 51.0,\n \"8000x910\": 51.0,\n \"8000x1050\": 51.0,\n \"8000x1230\": 52.0,\n \"10000x600\": 51.0,\n \"10000x750\": 51.0,\n \"10000x910\": 51.0,\n \"10000x1050\": 51.0,\n \"10000x1230\": 52.0,\n \"12500x600\": 51.0,\n \"12500x750\": 51.0,\n \"12500x910\": 52.0,\n \"12500x1050\": 52.0,\n \"12500x1230\": 52.0,\n \"15500x600\": 51.0,\n \"15500x750\": 51.0,\n \"15500x910\": 52.0,\n \"15500x1050\": 52.0,\n \"15500x1230\": 52.0,\n \"20000x600\": 61.0,\n \"20000x750\": 61.0,\n \"20000x910\": 61.0,\n \"20000x1050\": 62.0,\n \"20000x1230\": 62.0,\n \"25000x600\": 71.0,\n \"25000x750\": 71.0,\n \"25000x910\": 71.0,\n \"25000x1050\": 71.0,\n \"25000x1230\": 71.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 71.0,\n \"30000x1050\": 71.0,\n \"30000x1230\": 71.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 71.0,\n \"35000x1230\": 71.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 71.0,\n \"40000x1230\": 71.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 71.0,\n \"60000x600\": 91.0,\n \"60000x750\": 91.0,\n \"60000x910\": 91.0,\n \"60000x1050\": 91.0,\n \"60000x1230\": 91.0\n },\n \"4000x2000\": {\n \"1000x600\": 32.0,\n \"1000x750\": 32.0,\n \"1000x910\": 32.0,\n \"1000x1050\": 33.0,\n \"1000x1230\": 44.0,\n \"2000x600\": 32.0,\n \"2000x750\": 32.0,\n \"2000x910\": 32.0,\n \"2000x1050\": 32.0,\n \"2000x1230\": 33.0,\n \"3000x600\": 42.0,\n \"3000x750\": 42.0,\n \"3000x910\": 42.0,\n \"3000x1050\": 42.0,\n \"3000x1230\": 42.0,\n \"4000x600\": 42.0,\n \"4000x750\": 42.0,\n \"4000x910\": 42.0,\n \"4000x1050\": 42.0,\n \"4000x1230\": 43.0,\n \"5000x600\": 42.0,\n \"5000x750\": 42.0,\n \"5000x910\": 42.0,\n \"5000x1050\": 42.0,\n \"5000x1230\": 43.0,\n \"6500x600\": 42.0,\n \"6500x750\": 42.0,\n \"6500x910\": 42.0,\n \"6500x1050\": 42.0,\n \"6500x1230\": 43.0,\n \"8000x600\": 51.0,\n \"8000x750\": 52.0,\n \"8000x910\": 52.0,\n \"8000x1050\": 52.0,\n \"8000x1230\": 52.0,\n \"10000x600\": 51.0,\n \"10000x750\": 52.0,\n \"10000x910\": 52.0,\n \"10000x1050\": 52.0,\n \"10000x1230\": 52.0,\n \"12500x600\": 52.0,\n \"12500x750\": 52.0,\n \"12500x910\": 52.0,\n \"12500x1050\": 53.0,\n \"12500x1230\": 54.0,\n \"15500x600\": 52.0,\n \"15500x750\": 52.0,\n \"15500x910\": 52.0,\n \"15500x1050\": 52.0,\n \"15500x1230\": 53.0,\n \"20000x600\": 61.0,\n \"20000x750\": 62.0,\n \"20000x910\": 62.0,\n \"20000x1050\": 62.0,\n \"20000x1230\": 63.0,\n \"25000x600\": 71.0,\n \"25000x750\": 71.0,\n \"25000x910\": 71.0,\n \"25000x1050\": 71.0,\n \"25000x1230\": 71.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 71.0,\n \"30000x1050\": 71.0,\n \"30000x1230\": 71.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 71.0,\n \"35000x1230\": 71.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 71.0,\n \"40000x1230\": 71.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 71.0,\n \"50000x1230\": 71.0,\n \"60000x600\": 91.0,\n \"60000x750\": 91.0,\n \"60000x910\": 91.0,\n \"60000x1050\": 91.0,\n \"60000x1230\": 91.0\n },\n \"4000x2500\": {\n \"1000x600\": 32.0,\n \"1000x750\": 33.0,\n \"1000x910\": 34.0,\n \"1000x1050\": 34.0,\n \"1000x1230\": 44.0,\n \"2000x600\": 32.0,\n \"2000x750\": 33.0,\n \"2000x910\": 34.0,\n \"2000x1050\": 34.0,\n \"2000x1230\": 44.0,\n \"3000x600\": 42.0,\n \"3000x750\": 42.0,\n \"3000x910\": 43.0,\n \"3000x1050\": 44.0,\n \"3000x1230\": 44.0,\n \"4000x600\": 42.0,\n \"4000x750\": 42.0,\n \"4000x910\": 43.0,\n \"4000x1050\": 44.0,\n \"4000x1230\": 44.0,\n \"5000x600\": 42.0,\n \"5000x750\": 42.0,\n \"5000x910\": 43.0,\n \"5000x1050\": 44.0,\n \"5000x1230\": 44.0,\n \"6500x600\": 42.0,\n \"6500x750\": 42.0,\n \"6500x910\": 43.0,\n \"6500x1050\": 44.0,\n \"6500x1230\": 44.0,\n \"8000x600\": 52.0,\n \"8000x750\": 52.0,\n \"8000x910\": 52.0,\n \"8000x1050\": 52.0,\n \"8000x1230\": 53.0,\n \"10000x600\": 52.0,\n \"10000x750\": 52.0,\n \"10000x910\": 52.0,\n \"10000x1050\": 52.0,\n \"10000x1230\": 53.0,\n \"12500x600\": 52.0,\n \"12500x750\": 53.0,\n \"12500x910\": 54.0,\n \"12500x1050\": 54.0,\n \"12500x1230\": 54.0,\n \"15500x600\": 52.0,\n \"15500x750\": 52.0,\n \"15500x910\": 53.0,\n \"15500x1050\": 54.0,\n \"15500x1230\": 54.0,\n \"20000x600\": 62.0,\n \"20000x750\": 62.0,\n \"20000x910\": 62.0,\n \"20000x1050\": 63.0,\n \"20000x1230\": 64.0,\n \"25000x600\": 71.0,\n \"25000x750\": 71.0,\n \"25000x910\": 71.0,\n \"25000x1050\": 71.0,\n \"25000x1230\": 71.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 71.0,\n \"30000x1050\": 71.0,\n \"30000x1230\": 71.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 72.0,\n \"35000x1230\": 73.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 72.0,\n \"40000x1230\": 73.0,\n \"50000x600\": 71.0,\n \"50000x750\": 71.0,\n \"50000x910\": 71.0,\n \"50000x1050\": 72.0,\n \"50000x1230\": 73.0,\n \"60000x600\": 91.0,\n \"60000x750\": 91.0,\n \"60000x910\": 91.0,\n \"60000x1050\": 91.0,\n \"60000x1230\": 91.0\n },\n \"4000x3000\": {\n \"1000x600\": 43.0,\n \"1000x750\": 44.0,\n \"1000x910\": 45.0,\n \"1000x1050\": 54.0,\n \"1000x1230\": 54.0,\n \"2000x600\": 43.0,\n \"2000x750\": 44.0,\n \"2000x910\": 44.0,\n \"2000x1050\": 45.0,\n \"2000x1230\": 54.0,\n \"3000x600\": 43.0,\n \"3000x750\": 44.0,\n \"3000x910\": 44.0,\n \"3000x1050\": 45.0,\n \"3000x1230\": 54.0,\n \"4000x600\": 43.0,\n \"4000x750\": 44.0,\n \"4000x910\": 44.0,\n \"4000x1050\": 45.0,\n \"4000x1230\": 54.0,\n \"5000x600\": 52.0,\n \"5000x750\": 52.0,\n \"5000x910\": 53.0,\n \"5000x1050\": 54.0,\n \"5000x1230\": 54.0,\n \"6500x600\": 43.0,\n \"6500x750\": 44.0,\n \"6500x910\": 44.0,\n \"6500x1050\": 45.0,\n \"6500x1230\": 54.0,\n \"8000x600\": 52.0,\n \"8000x750\": 52.0,\n \"8000x910\": 53.0,\n \"8000x1050\": 54.0,\n \"8000x1230\": 54.0,\n \"10000x600\": 52.0,\n \"10000x750\": 52.0,\n \"10000x910\": 53.0,\n \"10000x1050\": 54.0,\n \"10000x1230\": 54.0,\n \"12500x600\": 53.0,\n \"12500x750\": 54.0,\n \"12500x910\": 54.0,\n \"12500x1050\": 54.0,\n \"12500x1230\": 66.0,\n \"15500x600\": 53.0,\n \"15500x750\": 54.0,\n \"15500x910\": 54.0,\n \"15500x1050\": 54.0,\n \"15500x1230\": 66.0,\n \"20000x600\": 62.0,\n \"20000x750\": 63.0,\n \"20000x910\": 64.0,\n \"20000x1050\": 65.0,\n \"20000x1230\": 66.0,\n \"25000x600\": 71.0,\n \"25000x750\": 71.0,\n \"25000x910\": 71.0,\n \"25000x1050\": 72.0,\n \"25000x1230\": 73.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 71.0,\n \"30000x1050\": 72.0,\n \"30000x1230\": 73.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 73.0,\n \"35000x1050\": 73.0,\n \"35000x1230\": 73.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 73.0,\n \"40000x1050\": 73.0,\n \"40000x1230\": 73.0,\n \"50000x600\": 71.0,\n \"50000x750\": 72.0,\n \"50000x910\": 73.0,\n \"50000x1050\": 73.0,\n \"50000x1230\": 73.0,\n \"60000x600\": 91.0,\n \"60000x750\": 91.0,\n \"60000x910\": 91.0,\n \"60000x1050\": 91.0,\n \"60000x1230\": 91.0\n },\n \"4000x3500\": {\n \"1000x600\": 44.0,\n \"1000x750\": 45.0,\n \"1000x910\": 54.0,\n \"1000x1050\": 54.0,\n \"1000x1230\": 66.0,\n \"2000x600\": 53.0,\n \"2000x750\": 54.0,\n \"2000x910\": 54.0,\n \"2000x1050\": 54.0,\n \"2000x1230\": 65.0,\n \"3000x600\": 53.0,\n \"3000x750\": 54.0,\n \"3000x910\": 54.0,\n \"3000x1050\": 54.0,\n \"3000x1230\": 65.0,\n \"4000x600\": 53.0,\n \"4000x750\": 54.0,\n \"4000x910\": 54.0,\n \"4000x1050\": 54.0,\n \"4000x1230\": 65.0,\n \"5000x600\": 53.0,\n \"5000x750\": 54.0,\n \"5000x910\": 54.0,\n \"5000x1050\": 54.0,\n \"5000x1230\": 65.0,\n \"6500x600\": 53.0,\n \"6500x750\": 54.0,\n \"6500x910\": 54.0,\n \"6500x1050\": 54.0,\n \"6500x1230\": 65.0,\n \"8000x600\": 53.0,\n \"8000x750\": 54.0,\n \"8000x910\": 54.0,\n \"8000x1050\": 54.0,\n \"8000x1230\": 65.0,\n \"10000x600\": 53.0,\n \"10000x750\": 54.0,\n \"10000x910\": 54.0,\n \"10000x1050\": 54.0,\n \"10000x1230\": 65.0,\n \"12500x600\": 54.0,\n \"12500x750\": 54.0,\n \"12500x910\": 66.0,\n \"12500x1050\": 66.0,\n \"12500x1230\": 73.0,\n \"15500x600\": 54.0,\n \"15500x750\": 54.0,\n \"15500x910\": 66.0,\n \"15500x1050\": 66.0,\n \"15500x1230\": 73.0,\n \"20000x600\": 63.0,\n \"20000x750\": 64.0,\n \"20000x910\": 66.0,\n \"20000x1050\": 66.0,\n \"20000x1230\": 73.0,\n \"25000x600\": 71.0,\n \"25000x750\": 72.0,\n \"25000x910\": 73.0,\n \"25000x1050\": 73.0,\n \"25000x1230\": 73.0,\n \"30000x600\": 71.0,\n \"30000x750\": 72.0,\n \"30000x910\": 73.0,\n \"30000x1050\": 73.0,\n \"30000x1230\": 73.0,\n \"35000x600\": 72.0,\n \"35000x750\": 73.0,\n \"35000x910\": 73.0,\n \"35000x1050\": 73.0,\n \"35000x1230\": 73.0,\n \"40000x600\": 72.0,\n \"40000x750\": 73.0,\n \"40000x910\": 73.0,\n \"40000x1050\": 73.0,\n \"40000x1230\": 73.0,\n \"50000x600\": 73.0,\n \"50000x750\": 73.0,\n \"50000x910\": 73.0,\n \"50000x1050\": 83.0,\n \"50000x1230\": 83.0,\n \"60000x600\": 91.0,\n \"60000x750\": 91.0,\n \"60000x910\": 91.0,\n \"60000x1050\": 92.0,\n \"60000x1230\": 92.0\n },\n \"4000x4000\": {\n \"1000x600\": 65.0,\n \"1000x750\": 66.0,\n \"1000x910\": 66.0,\n \"1000x1050\": 73.0,\n \"1000x1230\": 73.0,\n \"2000x600\": 65.0,\n \"2000x750\": 66.0,\n \"2000x910\": 66.0,\n \"2000x1050\": 73.0,\n \"2000x1230\": 73.0,\n \"3000x600\": 65.0,\n \"3000x750\": 66.0,\n \"3000x910\": 66.0,\n \"3000x1050\": 73.0,\n \"3000x1230\": 73.0,\n \"4000x600\": 65.0,\n \"4000x750\": 66.0,\n \"4000x910\": 66.0,\n \"4000x1050\": 73.0,\n \"4000x1230\": 73.0,\n \"5000x600\": 65.0,\n \"5000x750\": 66.0,\n \"5000x910\": 66.0,\n \"5000x1050\": 73.0,\n \"5000x1230\": 73.0,\n \"6500x600\": 65.0,\n \"6500x750\": 66.0,\n \"6500x910\": 66.0,\n \"6500x1050\": 73.0,\n \"6500x1230\": 73.0,\n \"8000x600\": 65.0,\n \"8000x750\": 66.0,\n \"8000x910\": 66.0,\n \"8000x1050\": 73.0,\n \"8000x1230\": 73.0,\n \"10000x600\": 65.0,\n \"10000x750\": 66.0,\n \"10000x910\": 66.0,\n \"10000x1050\": 73.0,\n \"10000x1230\": 73.0,\n \"12500x600\": 65.0,\n \"12500x750\": 66.0,\n \"12500x910\": 66.0,\n \"12500x1050\": 73.0,\n \"12500x1230\": 73.0,\n \"15500x600\": 65.0,\n \"15500x750\": 66.0,\n \"15500x910\": 66.0,\n \"15500x1050\": 73.0,\n \"15500x1230\": 73.0,\n \"20000x600\": 65.0,\n \"20000x750\": 66.0,\n \"20000x910\": 66.0,\n \"20000x1050\": 73.0,\n \"20000x1230\": 73.0,\n \"25000x600\": 73.0,\n \"25000x750\": 73.0,\n \"25000x910\": 73.0,\n \"25000x1050\": 73.0,\n \"25000x1230\": 73.0,\n \"30000x600\": 73.0,\n \"30000x750\": 73.0,\n \"30000x910\": 73.0,\n \"30000x1050\": 73.0,\n \"30000x1230\": 73.0,\n \"35000x600\": 73.0,\n \"35000x750\": 73.0,\n \"35000x910\": 73.0,\n \"35000x1050\": 83.0,\n \"35000x1230\": 83.0,\n \"40000x600\": 73.0,\n \"40000x750\": 73.0,\n \"40000x910\": 73.0,\n \"40000x1050\": 83.0,\n \"40000x1230\": 83.0,\n \"50000x600\": 73.0,\n \"50000x750\": 73.0,\n \"50000x910\": 73.0,\n \"50000x1050\": 83.0,\n \"50000x1230\": 83.0,\n \"60000x600\": 91.0,\n \"60000x750\": 91.0,\n \"60000x910\": 92.0,\n \"60000x1050\": 92.0,\n \"60000x1230\": 92.0\n },\n \"4000x5000\": {\n \"1000x600\": 73.0,\n \"1000x750\": 73.0,\n \"1000x910\": 83.0,\n \"1000x1050\": 83.0,\n \"1000x1230\": 93.0,\n \"2000x600\": 73.0,\n \"2000x750\": 73.0,\n \"2000x910\": 83.0,\n \"2000x1050\": 83.0,\n \"2000x1230\": 93.0,\n \"3000x600\": 73.0,\n \"3000x750\": 73.0,\n \"3000x910\": 83.0,\n \"3000x1050\": 83.0,\n \"3000x1230\": 93.0,\n \"4000x600\": 73.0,\n \"4000x750\": 73.0,\n \"4000x910\": 83.0,\n \"4000x1050\": 83.0,\n \"4000x1230\": 93.0,\n \"5000x600\": 73.0,\n \"5000x750\": 73.0,\n \"5000x910\": 83.0,\n \"5000x1050\": 83.0,\n \"5000x1230\": 93.0,\n \"6500x600\": 73.0,\n \"6500x750\": 73.0,\n \"6500x910\": 83.0,\n \"6500x1050\": 83.0,\n \"6500x1230\": 93.0,\n \"8000x600\": 73.0,\n \"8000x750\": 73.0,\n \"8000x910\": 83.0,\n \"8000x1050\": 83.0,\n \"8000x1230\": 93.0,\n \"10000x600\": 73.0,\n \"10000x750\": 73.0,\n \"10000x910\": 83.0,\n \"10000x1050\": 83.0,\n \"10000x1230\": 93.0,\n \"12500x600\": 73.0,\n \"12500x750\": 73.0,\n \"12500x910\": 83.0,\n \"12500x1050\": 83.0,\n \"12500x1230\": 93.0,\n \"15500x600\": 73.0,\n \"15500x750\": 73.0,\n \"15500x910\": 83.0,\n \"15500x1050\": 83.0,\n \"15500x1230\": 93.0,\n \"20000x600\": 73.0,\n \"20000x750\": 73.0,\n \"20000x910\": 83.0,\n \"20000x1050\": 83.0,\n \"20000x1230\": 93.0,\n \"25000x600\": 73.0,\n \"25000x750\": 83.0,\n \"25000x910\": 83.0,\n \"25000x1050\": 93.0,\n \"25000x1230\": 93.0,\n \"30000x600\": 73.0,\n \"30000x750\": 83.0,\n \"30000x910\": 83.0,\n \"30000x1050\": 93.0,\n \"30000x1230\": 93.0,\n \"35000x600\": 73.0,\n \"35000x750\": 83.0,\n \"35000x910\": 83.0,\n \"35000x1050\": 93.0,\n \"35000x1230\": 93.0,\n \"40000x600\": 73.0,\n \"40000x750\": 83.0,\n \"40000x910\": 83.0,\n \"40000x1050\": 93.0,\n \"40000x1230\": 93.0,\n \"50000x600\": 73.0,\n \"50000x750\": 83.0,\n \"50000x910\": 83.0,\n \"50000x1050\": 93.0,\n \"50000x1230\": 93.0,\n \"60000x600\": 92.0,\n \"60000x750\": 92.0,\n \"60000x910\": 93.0,\n \"60000x1050\": 93.0,\n \"60000x1230\": 93.0\n },\n \"5000x1000\": {\n \"1000x600\": 31.0,\n \"1000x750\": 31.0,\n \"1000x910\": 32.0,\n \"1000x1050\": 32.0,\n \"1000x1230\": 32.0,\n \"2000x600\": 41.0,\n \"2000x750\": 41.0,\n \"2000x910\": 41.0,\n \"2000x1050\": 42.0,\n \"2000x1230\": 42.0,\n \"3000x600\": 41.0,\n \"3000x750\": 41.0,\n \"3000x910\": 41.0,\n \"3000x1050\": 42.0,\n \"3000x1230\": 42.0,\n \"4000x600\": 41.0,\n \"4000x750\": 41.0,\n \"4000x910\": 41.0,\n \"4000x1050\": 42.0,\n \"4000x1230\": 42.0,\n \"5000x600\": 41.0,\n \"5000x750\": 41.0,\n \"5000x910\": 41.0,\n \"5000x1050\": 42.0,\n \"5000x1230\": 42.0,\n \"6500x600\": 51.0,\n \"6500x750\": 51.0,\n \"6500x910\": 51.0,\n \"6500x1050\": 51.0,\n \"6500x1230\": 51.0,\n \"8000x600\": 51.0,\n \"8000x750\": 51.0,\n \"8000x910\": 51.0,\n \"8000x1050\": 51.0,\n \"8000x1230\": 51.0,\n \"10000x600\": 51.0,\n \"10000x750\": 51.0,\n \"10000x910\": 51.0,\n \"10000x1050\": 51.0,\n \"10000x1230\": 51.0,\n \"12500x600\": 51.0,\n \"12500x750\": 51.0,\n \"12500x910\": 52.0,\n \"12500x1050\": 52.0,\n \"12500x1230\": 52.0,\n \"15500x600\": 51.0,\n \"15500x750\": 51.0,\n \"15500x910\": 52.0,\n \"15500x1050\": 52.0,\n \"15500x1230\": 52.0,\n \"20000x600\": 71.0,\n \"20000x750\": 71.0,\n \"20000x910\": 71.0,\n \"20000x1050\": 71.0,\n \"20000x1230\": 71.0,\n \"25000x600\": 71.0,\n \"25000x750\": 71.0,\n \"25000x910\": 71.0,\n \"25000x1050\": 71.0,\n \"25000x1230\": 71.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 71.0,\n \"30000x1050\": 71.0,\n \"30000x1230\": 71.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 71.0,\n \"35000x1230\": 71.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 72.0,\n \"40000x1230\": 73.0,\n \"50000x600\": 91.0,\n \"50000x750\": 91.0,\n \"50000x910\": 91.0,\n \"50000x1050\": 91.0,\n \"50000x1230\": 91.0,\n \"60000x600\": 91.0,\n \"60000x750\": 91.0,\n \"60000x910\": 91.0,\n \"60000x1050\": 91.0,\n \"60000x1230\": 91.0\n },\n \"5000x1500\": {\n \"1000x600\": 32.0,\n \"1000x750\": 32.0,\n \"1000x910\": 32.0,\n \"1000x1050\": 32.0,\n \"1000x1230\": 33.0,\n \"2000x600\": 41.0,\n \"2000x750\": 42.0,\n \"2000x910\": 42.0,\n \"2000x1050\": 42.0,\n \"2000x1230\": 42.0,\n \"3000x600\": 41.0,\n \"3000x750\": 42.0,\n \"3000x910\": 42.0,\n \"3000x1050\": 42.0,\n \"3000x1230\": 42.0,\n \"4000x600\": 41.0,\n \"4000x750\": 42.0,\n \"4000x910\": 42.0,\n \"4000x1050\": 42.0,\n \"4000x1230\": 42.0,\n \"5000x600\": 41.0,\n \"5000x750\": 42.0,\n \"5000x910\": 42.0,\n \"5000x1050\": 42.0,\n \"5000x1230\": 42.0,\n \"6500x600\": 51.0,\n \"6500x750\": 51.0,\n \"6500x910\": 52.0,\n \"6500x1050\": 52.0,\n \"6500x1230\": 52.0,\n \"8000x600\": 51.0,\n \"8000x750\": 51.0,\n \"8000x910\": 52.0,\n \"8000x1050\": 52.0,\n \"8000x1230\": 52.0,\n \"10000x600\": 51.0,\n \"10000x750\": 51.0,\n \"10000x910\": 52.0,\n \"10000x1050\": 52.0,\n \"10000x1230\": 52.0,\n \"12500x600\": 51.0,\n \"12500x750\": 52.0,\n \"12500x910\": 52.0,\n \"12500x1050\": 52.0,\n \"12500x1230\": 54.0,\n \"15500x600\": 51.0,\n \"15500x750\": 52.0,\n \"15500x910\": 52.0,\n \"15500x1050\": 52.0,\n \"15500x1230\": 54.0,\n \"20000x600\": 71.0,\n \"20000x750\": 71.0,\n \"20000x910\": 71.0,\n \"20000x1050\": 71.0,\n \"20000x1230\": 71.0,\n \"25000x600\": 71.0,\n \"25000x750\": 71.0,\n \"25000x910\": 71.0,\n \"25000x1050\": 71.0,\n \"25000x1230\": 71.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 71.0,\n \"30000x1050\": 71.0,\n \"30000x1230\": 71.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 71.0,\n \"35000x1230\": 72.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 72.0,\n \"40000x1230\": 73.0,\n \"50000x600\": 91.0,\n \"50000x750\": 91.0,\n \"50000x910\": 91.0,\n \"50000x1050\": 91.0,\n \"50000x1230\": 91.0,\n \"60000x600\": 91.0,\n \"60000x750\": 91.0,\n \"60000x910\": 91.0,\n \"60000x1050\": 91.0,\n \"60000x1230\": 91.0\n },\n \"5000x2000\": {\n \"1000x600\": 32.0,\n \"1000x750\": 32.0,\n \"1000x910\": 33.0,\n \"1000x1050\": 34.0,\n \"1000x1230\": 44.0,\n \"2000x600\": 42.0,\n \"2000x750\": 42.0,\n \"2000x910\": 42.0,\n \"2000x1050\": 43.0,\n \"2000x1230\": 44.0,\n \"3000x600\": 42.0,\n \"3000x750\": 42.0,\n \"3000x910\": 42.0,\n \"3000x1050\": 43.0,\n \"3000x1230\": 44.0,\n \"4000x600\": 42.0,\n \"4000x750\": 42.0,\n \"4000x910\": 42.0,\n \"4000x1050\": 43.0,\n \"4000x1230\": 44.0,\n \"5000x600\": 42.0,\n \"5000x750\": 42.0,\n \"5000x910\": 42.0,\n \"5000x1050\": 43.0,\n \"5000x1230\": 44.0,\n \"6500x600\": 52.0,\n \"6500x750\": 52.0,\n \"6500x910\": 52.0,\n \"6500x1050\": 52.0,\n \"6500x1230\": 52.0,\n \"8000x600\": 52.0,\n \"8000x750\": 52.0,\n \"8000x910\": 52.0,\n \"8000x1050\": 52.0,\n \"8000x1230\": 52.0,\n \"10000x600\": 52.0,\n \"10000x750\": 52.0,\n \"10000x910\": 52.0,\n \"10000x1050\": 52.0,\n \"10000x1230\": 52.0,\n \"12500x600\": 52.0,\n \"12500x750\": 52.0,\n \"12500x910\": 53.0,\n \"12500x1050\": 54.0,\n \"12500x1230\": 54.0,\n \"15500x600\": 52.0,\n \"15500x750\": 52.0,\n \"15500x910\": 53.0,\n \"15500x1050\": 54.0,\n \"15500x1230\": 54.0,\n \"20000x600\": 71.0,\n \"20000x750\": 71.0,\n \"20000x910\": 71.0,\n \"20000x1050\": 71.0,\n \"20000x1230\": 71.0,\n \"25000x600\": 71.0,\n \"25000x750\": 71.0,\n \"25000x910\": 71.0,\n \"25000x1050\": 72.0,\n \"25000x1230\": 73.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 71.0,\n \"30000x1050\": 72.0,\n \"30000x1230\": 73.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 71.0,\n \"35000x1050\": 72.0,\n \"35000x1230\": 73.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 71.0,\n \"40000x1050\": 72.0,\n \"40000x1230\": 73.0,\n \"50000x600\": 91.0,\n \"50000x750\": 91.0,\n \"50000x910\": 91.0,\n \"50000x1050\": 91.0,\n \"50000x1230\": 91.0,\n \"60000x600\": 91.0,\n \"60000x750\": 91.0,\n \"60000x910\": 91.0,\n \"60000x1050\": 91.0,\n \"60000x1230\": 91.0\n },\n \"5000x2500\": {\n \"1000x600\": 33.0,\n \"1000x750\": 34.0,\n \"1000x910\": 44.0,\n \"1000x1050\": 54.0,\n \"1000x1230\": 54.0,\n \"2000x600\": 42.0,\n \"2000x750\": 43.0,\n \"2000x910\": 44.0,\n \"2000x1050\": 44.0,\n \"2000x1230\": 54.0,\n \"3000x600\": 42.0,\n \"3000x750\": 43.0,\n \"3000x910\": 44.0,\n \"3000x1050\": 44.0,\n \"3000x1230\": 54.0,\n \"4000x600\": 42.0,\n \"4000x750\": 43.0,\n \"4000x910\": 44.0,\n \"4000x1050\": 44.0,\n \"4000x1230\": 54.0,\n \"5000x600\": 42.0,\n \"5000x750\": 43.0,\n \"5000x910\": 44.0,\n \"5000x1050\": 44.0,\n \"5000x1230\": 54.0,\n \"6500x600\": 52.0,\n \"6500x750\": 52.0,\n \"6500x910\": 53.0,\n \"6500x1050\": 53.0,\n \"6500x1230\": 54.0,\n \"8000x600\": 52.0,\n \"8000x750\": 52.0,\n \"8000x910\": 53.0,\n \"8000x1050\": 53.0,\n \"8000x1230\": 54.0,\n \"10000x600\": 52.0,\n \"10000x750\": 52.0,\n \"10000x910\": 53.0,\n \"10000x1050\": 53.0,\n \"10000x1230\": 54.0,\n \"12500x600\": 52.0,\n \"12500x750\": 53.0,\n \"12500x910\": 54.0,\n \"12500x1050\": 54.0,\n \"12500x1230\": 66.0,\n \"15500x600\": 52.0,\n \"15500x750\": 53.0,\n \"15500x910\": 54.0,\n \"15500x1050\": 54.0,\n \"15500x1230\": 66.0,\n \"20000x600\": 71.0,\n \"20000x750\": 71.0,\n \"20000x910\": 71.0,\n \"20000x1050\": 72.0,\n \"20000x1230\": 73.0,\n \"25000x600\": 71.0,\n \"25000x750\": 71.0,\n \"25000x910\": 73.0,\n \"25000x1050\": 73.0,\n \"25000x1230\": 73.0,\n \"30000x600\": 71.0,\n \"30000x750\": 71.0,\n \"30000x910\": 73.0,\n \"30000x1050\": 73.0,\n \"30000x1230\": 73.0,\n \"35000x600\": 71.0,\n \"35000x750\": 71.0,\n \"35000x910\": 73.0,\n \"35000x1050\": 73.0,\n \"35000x1230\": 73.0,\n \"40000x600\": 71.0,\n \"40000x750\": 71.0,\n \"40000x910\": 73.0,\n \"40000x1050\": 73.0,\n \"40000x1230\": 73.0,\n \"50000x600\": 91.0,\n \"50000x750\": 91.0,\n \"50000x910\": 91.0,\n \"50000x1050\": 91.0,\n \"50000x1230\": 91.0,\n \"60000x600\": 91.0,\n \"60000x750\": 91.0,\n \"60000x910\": 91.0,\n \"60000x1050\": 91.0,\n \"60000x1230\": 91.0\n },\n \"5000x3000\": {\n \"1000x600\": 44.0,\n \"1000x750\": 45.0,\n \"1000x910\": 54.0,\n \"1000x1050\": 54.0,\n \"1000x1230\": 66.0,\n \"2000x600\": 52.0,\n \"2000x750\": 53.0,\n \"2000x910\": 54.0,\n \"2000x1050\": 54.0,\n \"2000x1230\": 54.0,\n \"3000x600\": 52.0,\n \"3000x750\": 53.0,\n \"3000x910\": 54.0,\n \"3000x1050\": 54.0,\n \"3000x1230\": 54.0,\n \"4000x600\": 52.0,\n \"4000x750\": 53.0,\n \"4000x910\": 54.0,\n \"4000x1050\": 54.0,\n \"4000x1230\": 54.0,\n \"5000x600\": 52.0,\n \"5000x750\": 53.0,\n \"5000x910\": 54.0,\n \"5000x1050\": 54.0,\n \"5000x1230\": 54.0,\n \"6500x600\": 52.0,\n \"6500x750\": 53.0,\n \"6500x910\": 54.0,\n \"6500x1050\": 54.0,\n \"6500x1230\": 54.0,\n \"8000x600\": 52.0,\n \"8000x750\": 53.0,\n \"8000x910\": 54.0,\n \"8000x1050\": 54.0,\n \"8000x1230\": 54.0,\n \"10000x600\": 52.0,\n \"10000x750\": 53.0,\n \"10000x910\": 54.0,\n \"10000x1050\": 54.0,\n \"10000x1230\": 54.0,\n \"12500x600\": 54.0,\n \"12500x750\": 54.0,\n \"12500x910\": 54.0,\n \"12500x1050\": 66.0,\n \"12500x1230\": 73.0,\n \"15500x600\": 54.0,\n \"15500x750\": 54.0,\n \"15500x910\": 54.0,\n \"15500x1050\": 66.0,\n \"15500x1230\": 73.0,\n \"20000x600\": 71.0,\n \"20000x750\": 72.0,\n \"20000x910\": 73.0,\n \"20000x1050\": 73.0,\n \"20000x1230\": 73.0,\n \"25000x600\": 72.0,\n \"25000x750\": 73.0,\n \"25000x910\": 73.0,\n \"25000x1050\": 73.0,\n \"25000x1230\": 73.0,\n \"30000x600\": 72.0,\n \"30000x750\": 73.0,\n \"30000x910\": 73.0,\n \"30000x1050\": 73.0,\n \"30000x1230\": 73.0,\n \"35000x600\": 71.0,\n \"35000x750\": 73.0,\n \"35000x910\": 73.0,\n \"35000x1050\": 73.0,\n \"35000x1230\": 83.0,\n \"40000x600\": 71.0,\n \"40000x750\": 73.0,\n \"40000x910\": 73.0,\n \"40000x1050\": 73.0,\n \"40000x1230\": 83.0,\n \"50000x600\": 91.0,\n \"50000x750\": 91.0,\n \"50000x910\": 91.0,\n \"50000x1050\": 91.0,\n \"50000x1230\": 92.0,\n \"60000x600\": 91.0,\n \"60000x750\": 91.0,\n \"60000x910\": 91.0,\n \"60000x1050\": 91.0,\n \"60000x1230\": 92.0\n },\n \"5000x3500\": {\n \"1000x600\": 54.0,\n \"1000x750\": 54.0,\n \"1000x910\": 65.0,\n \"1000x1050\": 66.0,\n \"1000x1230\": 66.0,\n \"2000x600\": 54.0,\n \"2000x750\": 54.0,\n \"2000x910\": 54.0,\n \"2000x1050\": 66.0,\n \"2000x1230\": 66.0,\n \"3000x600\": 54.0,\n \"3000x750\": 54.0,\n \"3000x910\": 54.0,\n \"3000x1050\": 66.0,\n \"3000x1230\": 66.0,\n \"4000x600\": 54.0,\n \"4000x750\": 54.0,\n \"4000x910\": 54.0,\n \"4000x1050\": 66.0,\n \"4000x1230\": 66.0,\n \"5000x600\": 54.0,\n \"5000x750\": 54.0,\n \"5000x910\": 54.0,\n \"5000x1050\": 66.0,\n \"5000x1230\": 66.0,\n \"6500x600\": 54.0,\n \"6500x750\": 54.0,\n \"6500x910\": 54.0,\n \"6500x1050\": 66.0,\n \"6500x1230\": 66.0,\n \"8000x600\": 54.0,\n \"8000x750\": 54.0,\n \"8000x910\": 54.0,\n \"8000x1050\": 66.0,\n \"8000x1230\": 66.0,\n \"10000x600\": 54.0,\n \"10000x750\": 54.0,\n \"10000x910\": 54.0,\n \"10000x1050\": 66.0,\n \"10000x1230\": 66.0,\n \"12500x600\": 54.0,\n \"12500x750\": 66.0,\n \"12500x910\": 66.0,\n \"12500x1050\": 73.0,\n \"12500x1230\": 73.0,\n \"15500x600\": 54.0,\n \"15500x750\": 66.0,\n \"15500x910\": 66.0,\n \"15500x1050\": 73.0,\n \"15500x1230\": 73.0,\n \"20000x600\": 72.0,\n \"20000x750\": 73.0,\n \"20000x910\": 73.0,\n \"20000x1050\": 73.0,\n \"20000x1230\": 73.0,\n \"25000x600\": 72.0,\n \"25000x750\": 73.0,\n \"25000x910\": 73.0,\n \"25000x1050\": 73.0,\n \"25000x1230\": 73.0,\n \"30000x600\": 72.0,\n \"30000x750\": 73.0,\n \"30000x910\": 73.0,\n \"30000x1050\": 73.0,\n \"30000x1230\": 73.0,\n \"35000x600\": 73.0,\n \"35000x750\": 73.0,\n \"35000x910\": 73.0,\n \"35000x1050\": 83.0,\n \"35000x1230\": 83.0,\n \"40000x600\": 73.0,\n \"40000x750\": 73.0,\n \"40000x910\": 73.0,\n \"40000x1050\": 83.0,\n \"40000x1230\": 83.0,\n \"50000x600\": 91.0,\n \"50000x750\": 91.0,\n \"50000x910\": 91.0,\n \"50000x1050\": 92.0,\n \"50000x1230\": 92.0,\n \"60000x600\": 91.0,\n \"60000x750\": 91.0,\n \"60000x910\": 91.0,\n \"60000x1050\": 92.0,\n \"60000x1230\": 92.0\n },\n \"5000x4000\": {\n \"1000x600\": 73.0,\n \"1000x750\": 73.0,\n \"1000x910\": 73.0,\n \"1000x1050\": 83.0,\n \"1000x1230\": 83.0,\n \"2000x600\": 73.0,\n \"2000x750\": 73.0,\n \"2000x910\": 73.0,\n \"2000x1050\": 83.0,\n \"2000x1230\": 83.0,\n \"3000x600\": 73.0,\n \"3000x750\": 73.0,\n \"3000x910\": 73.0,\n \"3000x1050\": 83.0,\n \"3000x1230\": 83.0,\n \"4000x600\": 73.0,\n \"4000x750\": 73.0,\n \"4000x910\": 73.0,\n \"4000x1050\": 83.0,\n \"4000x1230\": 83.0,\n \"5000x600\": 73.0,\n \"5000x750\": 73.0,\n \"5000x910\": 73.0,\n \"5000x1050\": 83.0,\n \"5000x1230\": 83.0,\n \"6500x600\": 73.0,\n \"6500x750\": 73.0,\n \"6500x910\": 73.0,\n \"6500x1050\": 83.0,\n \"6500x1230\": 83.0,\n \"8000x600\": 73.0,\n \"8000x750\": 73.0,\n \"8000x910\": 73.0,\n \"8000x1050\": 83.0,\n \"8000x1230\": 83.0,\n \"10000x600\": 73.0,\n \"10000x750\": 73.0,\n \"10000x910\": 73.0,\n \"10000x1050\": 83.0,\n \"10000x1230\": 83.0,\n \"12500x600\": 73.0,\n \"12500x750\": 73.0,\n \"12500x910\": 73.0,\n \"12500x1050\": 83.0,\n \"12500x1230\": 83.0,\n \"15500x600\": 73.0,\n \"15500x750\": 73.0,\n \"15500x910\": 73.0,\n \"15500x1050\": 83.0,\n \"15500x1230\": 83.0,\n \"20000x600\": 73.0,\n \"20000x750\": 73.0,\n \"20000x910\": 73.0,\n \"20000x1050\": 83.0,\n \"20000x1230\": 83.0,\n \"25000x600\": 73.0,\n \"25000x750\": 73.0,\n \"25000x910\": 83.0,\n \"25000x1050\": 83.0,\n \"25000x1230\": 83.0,\n \"30000x600\": 73.0,\n \"30000x750\": 73.0,\n \"30000x910\": 83.0,\n \"30000x1050\": 83.0,\n \"30000x1230\": 83.0,\n \"35000x600\": 73.0,\n \"35000x750\": 73.0,\n \"35000x910\": 83.0,\n \"35000x1050\": 83.0,\n \"35000x1230\": 93.0,\n \"40000x600\": 73.0,\n \"40000x750\": 73.0,\n \"40000x910\": 83.0,\n \"40000x1050\": 83.0,\n \"40000x1230\": 93.0,\n \"50000x600\": 91.0,\n \"50000x750\": 92.0,\n \"50000x910\": 92.0,\n \"50000x1050\": 92.0,\n \"50000x1230\": 93.0,\n \"60000x600\": 91.0,\n \"60000x750\": 92.0,\n \"60000x910\": 92.0,\n \"60000x1050\": 92.0,\n \"60000x1230\": 93.0\n },\n \"5000x5000\": {\n \"1000x600\": 73.0,\n \"1000x750\": 83.0,\n \"1000x910\": 83.0,\n \"1000x1050\": 93.0,\n \"1000x1230\": 93.0,\n \"2000x600\": 73.0,\n \"2000x750\": 83.0,\n \"2000x910\": 83.0,\n \"2000x1050\": 93.0,\n \"2000x1230\": 93.0,\n \"3000x600\": 73.0,\n \"3000x750\": 83.0,\n \"3000x910\": 83.0,\n \"3000x1050\": 93.0,\n \"3000x1230\": 93.0,\n \"4000x600\": 73.0,\n \"4000x750\": 83.0,\n \"4000x910\": 83.0,\n \"4000x1050\": 93.0,\n \"4000x1230\": 93.0,\n \"5000x600\": 73.0,\n \"5000x750\": 83.0,\n \"5000x910\": 83.0,\n \"5000x1050\": 93.0,\n \"5000x1230\": 93.0,\n \"6500x600\": 73.0,\n \"6500x750\": 83.0,\n \"6500x910\": 83.0,\n \"6500x1050\": 93.0,\n \"6500x1230\": 93.0,\n \"8000x600\": 73.0,\n \"8000x750\": 83.0,\n \"8000x910\": 83.0,\n \"8000x1050\": 93.0,\n \"8000x1230\": 93.0,\n \"10000x600\": 73.0,\n \"10000x750\": 83.0,\n \"10000x910\": 83.0,\n \"10000x1050\": 93.0,\n \"10000x1230\": 93.0,\n \"12500x600\": 73.0,\n \"12500x750\": 83.0,\n \"12500x910\": 83.0,\n \"12500x1050\": 93.0,\n \"12500x1230\": 93.0,\n \"15500x600\": 73.0,\n \"15500x750\": 83.0,\n \"15500x910\": 83.0,\n \"15500x1050\": 93.0,\n \"15500x1230\": 93.0,\n \"20000x600\": 73.0,\n \"20000x750\": 83.0,\n \"20000x910\": 83.0,\n \"20000x1050\": 93.0,\n \"20000x1230\": 93.0,\n \"25000x600\": 83.0,\n \"25000x750\": 83.0,\n \"25000x910\": 93.0,\n \"25000x1050\": 93.0,\n \"25000x1230\": 93.0,\n \"30000x600\": 83.0,\n \"30000x750\": 83.0,\n \"30000x910\": 93.0,\n \"30000x1050\": 93.0,\n \"30000x1230\": 93.0,\n \"35000x600\": 83.0,\n \"35000x750\": 83.0,\n \"35000x910\": 93.0,\n \"35000x1050\": 93.0,\n \"35000x1230\": 103.0,\n \"40000x600\": 83.0,\n \"40000x750\": 83.0,\n \"40000x910\": 93.0,\n \"40000x1050\": 93.0,\n \"40000x1230\": 103.0,\n \"50000x600\": 92.0,\n \"50000x750\": 93.0,\n \"50000x910\": 93.0,\n \"50000x1050\": 93.0,\n \"50000x1230\": 103.0,\n \"60000x600\": 92.0,\n \"60000x750\": 93.0,\n \"60000x910\": 93.0,\n \"60000x1050\": 93.0,\n \"60000x1230\": 103.0\n }\n};\n\n;// CONCATENATED MODULE: ./src/utils/jis/combinationSign/Z1403/index.ts\n\n// calcCombinationSignを再エクスポート\n\n\n\n/***/ }),\n\n/***/ 58235:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"A\": function() { return /* reexport */ calcCombinationSign; }\n});\n\n;// CONCATENATED MODULE: ./src/utils/jis/combinationSign/Z1410Level1/combinationSign.ts\nfunction calcCombinationSign(nw, sideStrutsCenterSpace, signCalcOuterWidth, innerHeight) {\n if (!nw || !sideStrutsCenterSpace || !signCalcOuterWidth || !innerHeight) {\n return 999;\n }\n const firstKeys = Object.keys(MATRIX);\n const closestOuterWidth = findClosestKey(signCalcOuterWidth, firstKeys, 0);\n const closestInnerHeight = findClosestKey(innerHeight, firstKeys, 1);\n const selectedKey = \"\".concat(closestOuterWidth, \"x\").concat(closestInnerHeight);\n if (!MATRIX[selectedKey]) {\n return 999;\n }\n const nwSpacingKeys = Object.keys(MATRIX[selectedKey]);\n const closestNW = findClosestKey(nw, nwSpacingKeys, 0);\n const closestSpacing = findClosestKey(sideStrutsCenterSpace, nwSpacingKeys, 1);\n const weightSpacingKey = \"\".concat(closestNW, \"x\").concat(closestSpacing);\n if (MATRIX[selectedKey][weightSpacingKey] !== undefined) {\n return MATRIX[selectedKey][weightSpacingKey];\n } else {\n return 999;\n }\n}\nfunction findClosestKey(value, keys, index) {\n const numericKeys = keys.map((key)=>parseInt(key.split(\"x\")[index])).filter((key)=>key >= value);\n if (numericKeys.length === 0) return \"No matching key found.\";\n const closestKey = Math.min(...numericKeys);\n return closestKey.toString();\n}\nconst MATRIX = {\n \"1000x1000\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 1,\n \"1000x1250\": 1,\n \"2000x750\": 1,\n \"2000x950\": 1,\n \"2000x1050\": 1,\n \"2000x1250\": 1,\n \"3000x750\": 1,\n \"3000x950\": 1,\n \"3000x1050\": 1,\n \"3000x1250\": 1,\n \"4000x750\": 1,\n \"4000x950\": 1,\n \"4000x1050\": 1,\n \"4000x1250\": 1,\n \"5000x750\": 1,\n \"5000x950\": 1,\n \"5000x1050\": 1,\n \"5000x1250\": 1,\n \"7500x750\": 10,\n \"7500x950\": 10,\n \"7500x1050\": 10,\n \"7500x1250\": 10,\n \"10000x750\": 10,\n \"10000x950\": 10,\n \"10000x1050\": 10,\n \"10000x1250\": 10\n },\n \"1000x1500\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 1,\n \"1000x1250\": 1,\n \"2000x750\": 1,\n \"2000x950\": 1,\n \"2000x1050\": 1,\n \"2000x1250\": 1,\n \"3000x750\": 1,\n \"3000x950\": 1,\n \"3000x1050\": 1,\n \"3000x1250\": 1,\n \"4000x750\": 1,\n \"4000x950\": 1,\n \"4000x1050\": 1,\n \"4000x1250\": 1,\n \"5000x750\": 1,\n \"5000x950\": 1,\n \"5000x1050\": 1,\n \"5000x1250\": 1,\n \"7500x750\": 10,\n \"7500x950\": 10,\n \"7500x1050\": 10,\n \"7500x1250\": 10,\n \"10000x750\": 10,\n \"10000x950\": 10,\n \"10000x1050\": 10,\n \"10000x1250\": 10\n },\n \"1000x2000\": {\n \"1000x750\": 3,\n \"1000x950\": 3,\n \"1000x1050\": 3,\n \"1000x1250\": 3,\n \"2000x750\": 3,\n \"2000x950\": 3,\n \"2000x1050\": 3,\n \"2000x1250\": 3,\n \"3000x750\": 3,\n \"3000x950\": 3,\n \"3000x1050\": 3,\n \"3000x1250\": 3,\n \"4000x750\": 10,\n \"4000x950\": 11,\n \"4000x1050\": 11,\n \"4000x1250\": 11,\n \"5000x750\": 10,\n \"5000x950\": 11,\n \"5000x1050\": 11,\n \"5000x1250\": 11,\n \"7500x750\": 10,\n \"7500x950\": 10,\n \"7500x1050\": 10,\n \"7500x1250\": 11,\n \"10000x750\": 10,\n \"10000x950\": 10,\n \"10000x1050\": 10,\n \"10000x1250\": 11\n },\n \"1000x2500\": {\n \"1000x750\": 10,\n \"1000x950\": 10,\n \"1000x1050\": 10,\n \"1000x1250\": 10,\n \"2000x750\": 10,\n \"2000x950\": 10,\n \"2000x1050\": 10,\n \"2000x1250\": 10,\n \"3000x750\": 10,\n \"3000x950\": 10,\n \"3000x1050\": 10,\n \"3000x1250\": 10,\n \"4000x750\": 11,\n \"4000x950\": 11,\n \"4000x1050\": 11,\n \"4000x1250\": 11,\n \"5000x750\": 11,\n \"5000x950\": 11,\n \"5000x1050\": 11,\n \"5000x1250\": 11,\n \"7500x750\": 11,\n \"7500x950\": 12,\n \"7500x1050\": 12,\n \"7500x1250\": 13,\n \"10000x750\": 11,\n \"10000x950\": 12,\n \"10000x1050\": 12,\n \"10000x1250\": 13\n },\n \"1000x3000\": {\n \"1000x750\": 21,\n \"1000x950\": 21,\n \"1000x1050\": 21,\n \"1000x1250\": 21,\n \"2000x750\": 21,\n \"2000x950\": 21,\n \"2000x1050\": 21,\n \"2000x1250\": 21,\n \"3000x750\": 21,\n \"3000x950\": 21,\n \"3000x1050\": 21,\n \"3000x1250\": 21,\n \"4000x750\": 21,\n \"4000x950\": 21,\n \"4000x1050\": 21,\n \"4000x1250\": 21,\n \"5000x750\": 21,\n \"5000x950\": 21,\n \"5000x1050\": 21,\n \"5000x1250\": 21,\n \"7500x750\": 13,\n \"7500x950\": 13,\n \"7500x1050\": 13,\n \"7500x1250\": 20,\n \"10000x750\": 13,\n \"10000x950\": 13,\n \"10000x1050\": 13,\n \"10000x1250\": 20\n },\n \"1000x3300\": {\n \"1000x750\": 22,\n \"1000x950\": 22,\n \"1000x1050\": 22,\n \"1000x1250\": 22,\n \"2000x750\": 22,\n \"2000x950\": 22,\n \"2000x1050\": 22,\n \"2000x1250\": 22,\n \"3000x750\": 22,\n \"3000x950\": 22,\n \"3000x1050\": 22,\n \"3000x1250\": 22,\n \"4000x750\": 22,\n \"4000x950\": 22,\n \"4000x1050\": 22,\n \"4000x1250\": 22,\n \"5000x750\": 22,\n \"5000x950\": 22,\n \"5000x1050\": 22,\n \"5000x1250\": 22,\n \"7500x750\": 21,\n \"7500x950\": 21,\n \"7500x1050\": 21,\n \"7500x1250\": 22,\n \"10000x750\": 21,\n \"10000x950\": 21,\n \"10000x1050\": 21,\n \"10000x1250\": 22\n },\n \"1500x1000\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 1,\n \"1000x1250\": 1,\n \"2000x750\": 1,\n \"2000x950\": 1,\n \"2000x1050\": 1,\n \"2000x1250\": 1,\n \"3000x750\": 1,\n \"3000x950\": 1,\n \"3000x1050\": 1,\n \"3000x1250\": 1,\n \"4000x750\": 1,\n \"4000x950\": 1,\n \"4000x1050\": 1,\n \"4000x1250\": 1,\n \"5000x750\": 1,\n \"5000x950\": 1,\n \"5000x1050\": 1,\n \"5000x1250\": 1,\n \"7500x750\": 10,\n \"7500x950\": 10,\n \"7500x1050\": 10,\n \"7500x1250\": 10,\n \"10000x750\": 10,\n \"10000x950\": 10,\n \"10000x1050\": 10,\n \"10000x1250\": 10\n },\n \"1500x1500\": {\n \"1000x750\": 3,\n \"1000x950\": 3,\n \"1000x1050\": 3,\n \"1000x1250\": 4,\n \"2000x750\": 3,\n \"2000x950\": 3,\n \"2000x1050\": 3,\n \"2000x1250\": 4,\n \"3000x750\": 3,\n \"3000x950\": 3,\n \"3000x1050\": 3,\n \"3000x1250\": 4,\n \"4000x750\": 3,\n \"4000x950\": 3,\n \"4000x1050\": 3,\n \"4000x1250\": 4,\n \"5000x750\": 3,\n \"5000x950\": 3,\n \"5000x1050\": 3,\n \"5000x1250\": 4,\n \"7500x750\": 10,\n \"7500x950\": 10,\n \"7500x1050\": 10,\n \"7500x1250\": 10,\n \"10000x750\": 10,\n \"10000x950\": 10,\n \"10000x1050\": 10,\n \"10000x1250\": 10\n },\n \"1500x2000\": {\n \"1000x750\": 4,\n \"1000x950\": 10,\n \"1000x1050\": 10,\n \"1000x1250\": 11,\n \"2000x750\": 4,\n \"2000x950\": 10,\n \"2000x1050\": 10,\n \"2000x1250\": 11,\n \"3000x750\": 11,\n \"3000x950\": 11,\n \"3000x1050\": 11,\n \"3000x1250\": 11,\n \"4000x750\": 11,\n \"4000x950\": 11,\n \"4000x1050\": 11,\n \"4000x1250\": 12,\n \"5000x750\": 11,\n \"5000x950\": 11,\n \"5000x1050\": 11,\n \"5000x1250\": 12,\n \"7500x750\": 10,\n \"7500x950\": 10,\n \"7500x1050\": 11,\n \"7500x1250\": 12,\n \"10000x750\": 10,\n \"10000x950\": 10,\n \"10000x1050\": 11,\n \"10000x1250\": 12\n },\n \"1500x2500\": {\n \"1000x750\": 12,\n \"1000x950\": 13,\n \"1000x1050\": 20,\n \"1000x1250\": 21,\n \"2000x750\": 12,\n \"2000x950\": 13,\n \"2000x1050\": 20,\n \"2000x1250\": 21,\n \"3000x750\": 12,\n \"3000x950\": 13,\n \"3000x1050\": 20,\n \"3000x1250\": 21,\n \"4000x750\": 12,\n \"4000x950\": 13,\n \"4000x1050\": 20,\n \"4000x1250\": 21,\n \"5000x750\": 12,\n \"5000x950\": 13,\n \"5000x1050\": 20,\n \"5000x1250\": 21,\n \"7500x750\": 12,\n \"7500x950\": 13,\n \"7500x1050\": 20,\n \"7500x1250\": 21,\n \"10000x750\": 12,\n \"10000x950\": 13,\n \"10000x1050\": 20,\n \"10000x1250\": 21\n },\n \"1500x3000\": {\n \"1000x750\": 21,\n \"1000x950\": 21,\n \"1000x1050\": 21,\n \"1000x1250\": 22,\n \"2000x750\": 21,\n \"2000x950\": 21,\n \"2000x1050\": 21,\n \"2000x1250\": 21,\n \"3000x750\": 21,\n \"3000x950\": 21,\n \"3000x1050\": 21,\n \"3000x1250\": 21,\n \"4000x750\": 21,\n \"4000x950\": 21,\n \"4000x1050\": 21,\n \"4000x1250\": 21,\n \"5000x750\": 21,\n \"5000x950\": 22,\n \"5000x1050\": 22,\n \"5000x1250\": 22,\n \"7500x750\": 13,\n \"7500x950\": 20,\n \"7500x1050\": 21,\n \"7500x1250\": 22,\n \"10000x750\": 13,\n \"10000x950\": 20,\n \"10000x1050\": 21,\n \"10000x1250\": 22\n },\n \"1500x3300\": {\n \"1000x750\": 22,\n \"1000x950\": 30,\n \"1000x1050\": 31,\n \"1000x1250\": 32,\n \"2000x750\": 22,\n \"2000x950\": 30,\n \"2000x1050\": 31,\n \"2000x1250\": 32,\n \"3000x750\": 22,\n \"3000x950\": 30,\n \"3000x1050\": 31,\n \"3000x1250\": 32,\n \"4000x750\": 22,\n \"4000x950\": 30,\n \"4000x1050\": 31,\n \"4000x1250\": 32,\n \"5000x750\": 22,\n \"5000x950\": 30,\n \"5000x1050\": 31,\n \"5000x1250\": 32,\n \"7500x750\": 21,\n \"7500x950\": 21,\n \"7500x1050\": 22,\n \"7500x1250\": 22,\n \"10000x750\": 21,\n \"10000x950\": 21,\n \"10000x1050\": 22,\n \"10000x1250\": 22\n },\n \"2000x1000\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 1,\n \"1000x1250\": 1,\n \"2000x750\": 1,\n \"2000x950\": 1,\n \"2000x1050\": 1,\n \"2000x1250\": 1,\n \"3000x750\": 1,\n \"3000x950\": 1,\n \"3000x1050\": 1,\n \"3000x1250\": 1,\n \"4000x750\": 1,\n \"4000x950\": 1,\n \"4000x1050\": 1,\n \"4000x1250\": 1,\n \"5000x750\": 1,\n \"5000x950\": 1,\n \"5000x1050\": 1,\n \"5000x1250\": 1,\n \"7500x750\": 10,\n \"7500x950\": 10,\n \"7500x1050\": 10,\n \"7500x1250\": 10,\n \"10000x750\": 10,\n \"10000x950\": 10,\n \"10000x1050\": 10,\n \"10000x1250\": 10\n },\n \"2000x1500\": {\n \"1000x750\": 3,\n \"1000x950\": 4,\n \"1000x1050\": 4,\n \"1000x1250\": 10,\n \"2000x750\": 3,\n \"2000x950\": 4,\n \"2000x1050\": 4,\n \"2000x1250\": 10,\n \"3000x750\": 3,\n \"3000x950\": 4,\n \"3000x1050\": 4,\n \"3000x1250\": 10,\n \"4000x750\": 3,\n \"4000x950\": 4,\n \"4000x1050\": 4,\n \"4000x1250\": 10,\n \"5000x750\": 3,\n \"5000x950\": 4,\n \"5000x1050\": 4,\n \"5000x1250\": 10,\n \"7500x750\": 10,\n \"7500x950\": 10,\n \"7500x1050\": 10,\n \"7500x1250\": 10,\n \"10000x750\": 10,\n \"10000x950\": 10,\n \"10000x1050\": 10,\n \"10000x1250\": 10\n },\n \"2000x2000\": {\n \"1000x750\": 10,\n \"1000x950\": 11,\n \"1000x1050\": 12,\n \"1000x1250\": 13,\n \"2000x750\": 10,\n \"2000x950\": 11,\n \"2000x1050\": 12,\n \"2000x1250\": 13,\n \"3000x750\": 10,\n \"3000x950\": 11,\n \"3000x1050\": 12,\n \"3000x1250\": 13,\n \"4000x750\": 10,\n \"4000x950\": 11,\n \"4000x1050\": 12,\n \"4000x1250\": 13,\n \"5000x750\": 10,\n \"5000x950\": 11,\n \"5000x1050\": 12,\n \"5000x1250\": 13,\n \"7500x750\": 10,\n \"7500x950\": 11,\n \"7500x1050\": 12,\n \"7500x1250\": 13,\n \"10000x750\": 10,\n \"10000x950\": 11,\n \"10000x1050\": 12,\n \"10000x1250\": 13\n },\n \"2000x2500\": {\n \"1000x750\": 20,\n \"1000x950\": 21,\n \"1000x1050\": 21,\n \"1000x1250\": 22,\n \"2000x750\": 20,\n \"2000x950\": 21,\n \"2000x1050\": 21,\n \"2000x1250\": 22,\n \"3000x750\": 20,\n \"3000x950\": 21,\n \"3000x1050\": 21,\n \"3000x1250\": 22,\n \"4000x750\": 20,\n \"4000x950\": 21,\n \"4000x1050\": 21,\n \"4000x1250\": 22,\n \"5000x750\": 20,\n \"5000x950\": 21,\n \"5000x1050\": 21,\n \"5000x1250\": 22,\n \"7500x750\": 20,\n \"7500x950\": 21,\n \"7500x1050\": 21,\n \"7500x1250\": 22,\n \"10000x750\": 20,\n \"10000x950\": 21,\n \"10000x1050\": 21,\n \"10000x1250\": 22\n },\n \"2000x3000\": {\n \"1000x750\": 30,\n \"1000x950\": 31,\n \"1000x1050\": 32,\n \"1000x1250\": 32,\n \"2000x750\": 30,\n \"2000x950\": 31,\n \"2000x1050\": 32,\n \"2000x1250\": 32,\n \"3000x750\": 30,\n \"3000x950\": 31,\n \"3000x1050\": 32,\n \"3000x1250\": 32,\n \"4000x750\": 30,\n \"4000x950\": 31,\n \"4000x1050\": 32,\n \"4000x1250\": 32,\n \"5000x750\": 30,\n \"5000x950\": 31,\n \"5000x1050\": 32,\n \"5000x1250\": 32,\n \"7500x750\": 30,\n \"7500x950\": 31,\n \"7500x1050\": 31,\n \"7500x1250\": 32,\n \"10000x750\": 30,\n \"10000x950\": 31,\n \"10000x1050\": 31,\n \"10000x1250\": 32\n },\n \"2000x3300\": {\n \"1000x750\": 31,\n \"1000x950\": 32,\n \"1000x1050\": 32,\n \"1000x1250\": 33,\n \"2000x750\": 31,\n \"2000x950\": 32,\n \"2000x1050\": 32,\n \"2000x1250\": 33,\n \"3000x750\": 31,\n \"3000x950\": 32,\n \"3000x1050\": 32,\n \"3000x1250\": 33,\n \"4000x750\": 31,\n \"4000x950\": 32,\n \"4000x1050\": 32,\n \"4000x1250\": 33,\n \"5000x750\": 31,\n \"5000x950\": 32,\n \"5000x1050\": 32,\n \"5000x1250\": 33,\n \"7500x750\": 31,\n \"7500x950\": 32,\n \"7500x1050\": 33,\n \"7500x1250\": 33,\n \"10000x750\": 31,\n \"10000x950\": 32,\n \"10000x1050\": 33,\n \"10000x1250\": 33\n },\n \"2500x1000\": {\n \"1000x750\": 1,\n \"1000x950\": 3,\n \"1000x1050\": 3,\n \"1000x1250\": 4,\n \"2000x750\": 1,\n \"2000x950\": 3,\n \"2000x1050\": 3,\n \"2000x1250\": 4,\n \"3000x750\": 1,\n \"3000x950\": 3,\n \"3000x1050\": 3,\n \"3000x1250\": 4,\n \"4000x750\": 1,\n \"4000x950\": 3,\n \"4000x1050\": 3,\n \"4000x1250\": 4,\n \"5000x750\": 1,\n \"5000x950\": 3,\n \"5000x1050\": 3,\n \"5000x1250\": 4,\n \"7500x750\": 11,\n \"7500x950\": 11,\n \"7500x1050\": 11,\n \"7500x1250\": 11,\n \"10000x750\": 11,\n \"10000x950\": 11,\n \"10000x1050\": 11,\n \"10000x1250\": 11\n },\n \"2500x1500\": {\n \"1000x750\": 10,\n \"1000x950\": 11,\n \"1000x1050\": 11,\n \"1000x1250\": 12,\n \"2000x750\": 10,\n \"2000x950\": 11,\n \"2000x1050\": 11,\n \"2000x1250\": 12,\n \"3000x750\": 10,\n \"3000x950\": 11,\n \"3000x1050\": 11,\n \"3000x1250\": 12,\n \"4000x750\": 10,\n \"4000x950\": 11,\n \"4000x1050\": 11,\n \"4000x1250\": 12,\n \"5000x750\": 10,\n \"5000x950\": 11,\n \"5000x1050\": 11,\n \"5000x1250\": 12,\n \"7500x750\": 11,\n \"7500x950\": 11,\n \"7500x1050\": 11,\n \"7500x1250\": 13,\n \"10000x750\": 11,\n \"10000x950\": 11,\n \"10000x1050\": 11,\n \"10000x1250\": 13\n },\n \"2500x2000\": {\n \"1000x750\": 12,\n \"1000x950\": 13,\n \"1000x1050\": 20,\n \"1000x1250\": 21,\n \"2000x750\": 12,\n \"2000x950\": 13,\n \"2000x1050\": 20,\n \"2000x1250\": 21,\n \"3000x750\": 12,\n \"3000x950\": 13,\n \"3000x1050\": 20,\n \"3000x1250\": 21,\n \"4000x750\": 12,\n \"4000x950\": 13,\n \"4000x1050\": 20,\n \"4000x1250\": 21,\n \"5000x750\": 12,\n \"5000x950\": 13,\n \"5000x1050\": 20,\n \"5000x1250\": 21,\n \"7500x750\": 12,\n \"7500x950\": 13,\n \"7500x1050\": 20,\n \"7500x1250\": 21,\n \"10000x750\": 12,\n \"10000x950\": 13,\n \"10000x1050\": 20,\n \"10000x1250\": 21\n },\n \"2500x2500\": {\n \"1000x750\": 21,\n \"1000x950\": 22,\n \"1000x1050\": 30,\n \"1000x1250\": 31,\n \"2000x750\": 21,\n \"2000x950\": 22,\n \"2000x1050\": 30,\n \"2000x1250\": 31,\n \"3000x750\": 21,\n \"3000x950\": 22,\n \"3000x1050\": 30,\n \"3000x1250\": 31,\n \"4000x750\": 21,\n \"4000x950\": 22,\n \"4000x1050\": 30,\n \"4000x1250\": 31,\n \"5000x750\": 21,\n \"5000x950\": 22,\n \"5000x1050\": 30,\n \"5000x1250\": 31,\n \"7500x750\": 21,\n \"7500x950\": 22,\n \"7500x1050\": 30,\n \"7500x1250\": 31,\n \"10000x750\": 21,\n \"10000x950\": 22,\n \"10000x1050\": 30,\n \"10000x1250\": 31\n },\n \"2500x3000\": {\n \"1000x750\": 31,\n \"1000x950\": 32,\n \"1000x1050\": 32,\n \"1000x1250\": 33,\n \"2000x750\": 31,\n \"2000x950\": 32,\n \"2000x1050\": 32,\n \"2000x1250\": 33,\n \"3000x750\": 31,\n \"3000x950\": 32,\n \"3000x1050\": 32,\n \"3000x1250\": 33,\n \"4000x750\": 31,\n \"4000x950\": 32,\n \"4000x1050\": 32,\n \"4000x1250\": 33,\n \"5000x750\": 31,\n \"5000x950\": 32,\n \"5000x1050\": 32,\n \"5000x1250\": 33,\n \"7500x750\": 31,\n \"7500x950\": 32,\n \"7500x1050\": 33,\n \"7500x1250\": 33,\n \"10000x750\": 31,\n \"10000x950\": 32,\n \"10000x1050\": 33,\n \"10000x1250\": 33\n },\n \"2500x3300\": {\n \"1000x750\": 31,\n \"1000x950\": 32,\n \"1000x1050\": 33,\n \"1000x1250\": 33,\n \"2000x750\": 31,\n \"2000x950\": 32,\n \"2000x1050\": 33,\n \"2000x1250\": 33,\n \"3000x750\": 31,\n \"3000x950\": 32,\n \"3000x1050\": 33,\n \"3000x1250\": 33,\n \"4000x750\": 31,\n \"4000x950\": 32,\n \"4000x1050\": 33,\n \"4000x1250\": 33,\n \"5000x750\": 31,\n \"5000x950\": 32,\n \"5000x1050\": 33,\n \"5000x1250\": 33,\n \"7500x750\": 32,\n \"7500x950\": 33,\n \"7500x1050\": 33,\n \"7500x1250\": 34,\n \"10000x750\": 32,\n \"10000x950\": 33,\n \"10000x1050\": 33,\n \"10000x1250\": 34\n },\n \"3000x1000\": {\n \"1000x750\": 3,\n \"1000x950\": 3,\n \"1000x1050\": 4,\n \"1000x1250\": 4,\n \"2000x750\": 3,\n \"2000x950\": 3,\n \"2000x1050\": 4,\n \"2000x1250\": 4,\n \"3000x750\": 3,\n \"3000x950\": 3,\n \"3000x1050\": 4,\n \"3000x1250\": 4,\n \"4000x750\": 3,\n \"4000x950\": 3,\n \"4000x1050\": 4,\n \"4000x1250\": 4,\n \"5000x750\": 3,\n \"5000x950\": 3,\n \"5000x1050\": 4,\n \"5000x1250\": 4,\n \"7500x750\": 11,\n \"7500x950\": 11,\n \"7500x1050\": 11,\n \"7500x1250\": 11,\n \"10000x750\": 11,\n \"10000x950\": 11,\n \"10000x1050\": 11,\n \"10000x1250\": 11\n },\n \"3000x1500\": {\n \"1000x750\": 10,\n \"1000x950\": 11,\n \"1000x1050\": 12,\n \"1000x1250\": 13,\n \"2000x750\": 10,\n \"2000x950\": 11,\n \"2000x1050\": 12,\n \"2000x1250\": 13,\n \"3000x750\": 10,\n \"3000x950\": 11,\n \"3000x1050\": 12,\n \"3000x1250\": 13,\n \"4000x750\": 10,\n \"4000x950\": 11,\n \"4000x1050\": 12,\n \"4000x1250\": 13,\n \"5000x750\": 10,\n \"5000x950\": 11,\n \"5000x1050\": 12,\n \"5000x1250\": 13,\n \"7500x750\": 11,\n \"7500x950\": 11,\n \"7500x1050\": 12,\n \"7500x1250\": 13,\n \"10000x750\": 11,\n \"10000x950\": 11,\n \"10000x1050\": 12,\n \"10000x1250\": 13\n },\n \"3000x2000\": {\n \"1000x750\": 13,\n \"1000x950\": 20,\n \"1000x1050\": 21,\n \"1000x1250\": 22,\n \"2000x750\": 13,\n \"2000x950\": 20,\n \"2000x1050\": 21,\n \"2000x1250\": 22,\n \"3000x750\": 13,\n \"3000x950\": 20,\n \"3000x1050\": 21,\n \"3000x1250\": 22,\n \"4000x750\": 13,\n \"4000x950\": 20,\n \"4000x1050\": 21,\n \"4000x1250\": 22,\n \"5000x750\": 13,\n \"5000x950\": 20,\n \"5000x1050\": 21,\n \"5000x1250\": 22,\n \"7500x750\": 20,\n \"7500x950\": 21,\n \"7500x1050\": 21,\n \"7500x1250\": 22,\n \"10000x750\": 20,\n \"10000x950\": 21,\n \"10000x1050\": 21,\n \"10000x1250\": 22\n },\n \"3000x2500\": {\n \"1000x750\": 22,\n \"1000x950\": 30,\n \"1000x1050\": 31,\n \"1000x1250\": 32,\n \"2000x750\": 22,\n \"2000x950\": 30,\n \"2000x1050\": 31,\n \"2000x1250\": 32,\n \"3000x750\": 22,\n \"3000x950\": 30,\n \"3000x1050\": 31,\n \"3000x1250\": 32,\n \"4000x750\": 22,\n \"4000x950\": 30,\n \"4000x1050\": 31,\n \"4000x1250\": 32,\n \"5000x750\": 22,\n \"5000x950\": 30,\n \"5000x1050\": 31,\n \"5000x1250\": 32,\n \"7500x750\": 30,\n \"7500x950\": 31,\n \"7500x1050\": 32,\n \"7500x1250\": 33,\n \"10000x750\": 30,\n \"10000x950\": 31,\n \"10000x1050\": 32,\n \"10000x1250\": 33\n },\n \"3000x3000\": {\n \"1000x750\": 31,\n \"1000x950\": 32,\n \"1000x1050\": 33,\n \"1000x1250\": 33,\n \"2000x750\": 31,\n \"2000x950\": 32,\n \"2000x1050\": 33,\n \"2000x1250\": 33,\n \"3000x750\": 31,\n \"3000x950\": 32,\n \"3000x1050\": 33,\n \"3000x1250\": 33,\n \"4000x750\": 31,\n \"4000x950\": 32,\n \"4000x1050\": 33,\n \"4000x1250\": 33,\n \"5000x750\": 31,\n \"5000x950\": 32,\n \"5000x1050\": 33,\n \"5000x1250\": 33,\n \"7500x750\": 32,\n \"7500x950\": 33,\n \"7500x1050\": 34,\n \"7500x1250\": 34,\n \"10000x750\": 32,\n \"10000x950\": 33,\n \"10000x1050\": 34,\n \"10000x1250\": 34\n },\n \"3000x3300\": {\n \"1000x750\": 32,\n \"1000x950\": 33,\n \"1000x1050\": 33,\n \"1000x1250\": 34,\n \"2000x750\": 32,\n \"2000x950\": 33,\n \"2000x1050\": 33,\n \"2000x1250\": 34,\n \"3000x750\": 32,\n \"3000x950\": 33,\n \"3000x1050\": 33,\n \"3000x1250\": 34,\n \"4000x750\": 32,\n \"4000x950\": 33,\n \"4000x1050\": 33,\n \"4000x1250\": 34,\n \"5000x750\": 32,\n \"5000x950\": 33,\n \"5000x1050\": 33,\n \"5000x1250\": 34,\n \"7500x750\": 33,\n \"7500x950\": 34,\n \"7500x1050\": 34,\n \"7500x1250\": 35,\n \"10000x750\": 33,\n \"10000x950\": 34,\n \"10000x1050\": 34,\n \"10000x1250\": 35\n },\n \"3300x1000\": {\n \"1000x750\": 10,\n \"1000x950\": 10,\n \"1000x1050\": 11,\n \"1000x1250\": 11,\n \"2000x750\": 10,\n \"2000x950\": 10,\n \"2000x1050\": 11,\n \"2000x1250\": 11,\n \"3000x750\": 10,\n \"3000x950\": 10,\n \"3000x1050\": 11,\n \"3000x1250\": 11,\n \"4000x750\": 10,\n \"4000x950\": 10,\n \"4000x1050\": 11,\n \"4000x1250\": 11,\n \"5000x750\": 10,\n \"5000x950\": 10,\n \"5000x1050\": 11,\n \"5000x1250\": 11,\n \"7500x750\": 11,\n \"7500x950\": 11,\n \"7500x1050\": 11,\n \"7500x1250\": 11,\n \"10000x750\": 11,\n \"10000x950\": 11,\n \"10000x1050\": 11,\n \"10000x1250\": 11\n },\n \"3300x1500\": {\n \"1000x750\": 11,\n \"1000x950\": 12,\n \"1000x1050\": 12,\n \"1000x1250\": 13,\n \"2000x750\": 11,\n \"2000x950\": 12,\n \"2000x1050\": 12,\n \"2000x1250\": 13,\n \"3000x750\": 11,\n \"3000x950\": 12,\n \"3000x1050\": 12,\n \"3000x1250\": 13,\n \"4000x750\": 11,\n \"4000x950\": 12,\n \"4000x1050\": 12,\n \"4000x1250\": 13,\n \"5000x750\": 11,\n \"5000x950\": 12,\n \"5000x1050\": 12,\n \"5000x1250\": 13,\n \"7500x750\": 12,\n \"7500x950\": 13,\n \"7500x1050\": 13,\n \"7500x1250\": 20,\n \"10000x750\": 12,\n \"10000x950\": 13,\n \"10000x1050\": 13,\n \"10000x1250\": 20\n },\n \"3300x2000\": {\n \"1000x750\": 20,\n \"1000x950\": 21,\n \"1000x1050\": 22,\n \"1000x1250\": 22,\n \"2000x750\": 20,\n \"2000x950\": 21,\n \"2000x1050\": 22,\n \"2000x1250\": 22,\n \"3000x750\": 20,\n \"3000x950\": 21,\n \"3000x1050\": 22,\n \"3000x1250\": 22,\n \"4000x750\": 20,\n \"4000x950\": 21,\n \"4000x1050\": 22,\n \"4000x1250\": 22,\n \"5000x750\": 20,\n \"5000x950\": 21,\n \"5000x1050\": 22,\n \"5000x1250\": 22,\n \"7500x750\": 20,\n \"7500x950\": 21,\n \"7500x1050\": 22,\n \"7500x1250\": 22,\n \"10000x750\": 22,\n \"10000x950\": 24,\n \"10000x1050\": 24,\n \"10000x1250\": 31\n },\n \"3300x2500\": {\n \"1000x750\": 30,\n \"1000x950\": 31,\n \"1000x1050\": 32,\n \"1000x1250\": 32,\n \"2000x750\": 30,\n \"2000x950\": 31,\n \"2000x1050\": 32,\n \"2000x1250\": 32,\n \"3000x750\": 30,\n \"3000x950\": 31,\n \"3000x1050\": 32,\n \"3000x1250\": 32,\n \"4000x750\": 30,\n \"4000x950\": 31,\n \"4000x1050\": 32,\n \"4000x1250\": 32,\n \"5000x750\": 30,\n \"5000x950\": 31,\n \"5000x1050\": 32,\n \"5000x1250\": 32,\n \"7500x750\": 31,\n \"7500x950\": 32,\n \"7500x1050\": 33,\n \"7500x1250\": 33,\n \"10000x750\": 31,\n \"10000x950\": 32,\n \"10000x1050\": 33,\n \"10000x1250\": 33\n },\n \"3300x3000\": {\n \"1000x750\": 32,\n \"1000x950\": 33,\n \"1000x1050\": 34,\n \"1000x1250\": 34,\n \"2000x750\": 32,\n \"2000x950\": 33,\n \"2000x1050\": 34,\n \"2000x1250\": 34,\n \"3000x750\": 32,\n \"3000x950\": 33,\n \"3000x1050\": 34,\n \"3000x1250\": 34,\n \"4000x750\": 32,\n \"4000x950\": 33,\n \"4000x1050\": 34,\n \"4000x1250\": 34,\n \"5000x750\": 32,\n \"5000x950\": 33,\n \"5000x1050\": 34,\n \"5000x1250\": 34,\n \"7500x750\": 33,\n \"7500x950\": 33,\n \"7500x1050\": 34,\n \"7500x1250\": 35,\n \"10000x750\": 33,\n \"10000x950\": 33,\n \"10000x1050\": 34,\n \"10000x1250\": 35\n },\n \"3300x3300\": {\n \"1000x750\": 32,\n \"1000x950\": 33,\n \"1000x1050\": 34,\n \"1000x1250\": 35,\n \"2000x750\": 32,\n \"2000x950\": 33,\n \"2000x1050\": 34,\n \"2000x1250\": 35,\n \"3000x750\": 32,\n \"3000x950\": 33,\n \"3000x1050\": 34,\n \"3000x1250\": 35,\n \"4000x750\": 32,\n \"4000x950\": 33,\n \"4000x1050\": 34,\n \"4000x1250\": 35,\n \"5000x750\": 32,\n \"5000x950\": 33,\n \"5000x1050\": 34,\n \"5000x1250\": 35,\n \"7500x750\": 33,\n \"7500x950\": 34,\n \"7500x1050\": 35,\n \"7500x1250\": 35,\n \"10000x750\": 33,\n \"10000x950\": 34,\n \"10000x1050\": 35,\n \"10000x1250\": 35\n }\n};\n\n;// CONCATENATED MODULE: ./src/utils/jis/combinationSign/Z1410Level1/index.ts\n\n\n\n/***/ }),\n\n/***/ 14391:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"A\": function() { return /* reexport */ calcCombinationSign; }\n});\n\n;// CONCATENATED MODULE: ./src/utils/jis/combinationSign/Z1410Level2/combinationSign.ts\nfunction calcCombinationSign(nw, sideStrutsCenterSpace, signCalcOuterWidth, innerHeight) {\n if (!nw || !sideStrutsCenterSpace || !signCalcOuterWidth || !innerHeight) {\n return 999;\n }\n const firstKeys = Object.keys(MATRIX);\n const closestOuterWidth = findClosestKey(signCalcOuterWidth, firstKeys, 0);\n const closestInnerHeight = findClosestKey(innerHeight, firstKeys, 1);\n const selectedKey = \"\".concat(closestOuterWidth, \"x\").concat(closestInnerHeight);\n if (!MATRIX[selectedKey]) {\n return 999;\n }\n const nwSpacingKeys = Object.keys(MATRIX[selectedKey]);\n const closestNW = findClosestKey(nw, nwSpacingKeys, 0);\n const closestSpacing = findClosestKey(sideStrutsCenterSpace, nwSpacingKeys, 1);\n const weightSpacingKey = \"\".concat(closestNW, \"x\").concat(closestSpacing);\n if (MATRIX[selectedKey][weightSpacingKey] !== undefined) {\n return MATRIX[selectedKey][weightSpacingKey];\n } else {\n return 999;\n }\n}\nfunction findClosestKey(value, keys, index) {\n const numericKeys = keys.map((key)=>parseInt(key.split(\"x\")[index])).filter((key)=>key >= value);\n if (numericKeys.length === 0) return \"No matching key found.\";\n const closestKey = Math.min(...numericKeys);\n return closestKey.toString();\n}\nconst MATRIX = {\n \"1000x1000\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 0,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 0,\n \"2000x1250\": 0,\n \"3000x750\": 0,\n \"3000x950\": 0,\n \"3000x1050\": 0,\n \"3000x1250\": 0,\n \"4000x750\": 2,\n \"4000x950\": 2,\n \"4000x1050\": 2,\n \"4000x1250\": 2,\n \"5000x750\": 2,\n \"5000x950\": 2,\n \"5000x1050\": 2,\n \"5000x1250\": 2,\n \"7500x750\": 2,\n \"7500x950\": 2,\n \"7500x1050\": 2,\n \"7500x1250\": 2,\n \"10000x750\": 2,\n \"10000x950\": 2,\n \"10000x1050\": 2,\n \"10000x1250\": 2\n },\n \"1000x1500\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 1,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 0,\n \"2000x1250\": 1,\n \"3000x750\": 0,\n \"3000x950\": 0,\n \"3000x1050\": 0,\n \"3000x1250\": 1,\n \"4000x750\": 1,\n \"4000x950\": 1,\n \"4000x1050\": 1,\n \"4000x1250\": 1,\n \"5000x750\": 1,\n \"5000x950\": 1,\n \"5000x1050\": 1,\n \"5000x1250\": 1,\n \"7500x750\": 2,\n \"7500x950\": 2,\n \"7500x1050\": 2,\n \"7500x1250\": 1,\n \"10000x750\": 2,\n \"10000x950\": 2,\n \"10000x1050\": 2,\n \"10000x1250\": 1\n },\n \"1000x2000\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 1,\n \"1000x1250\": 1,\n \"2000x750\": 1,\n \"2000x950\": 1,\n \"2000x1050\": 1,\n \"2000x1250\": 1,\n \"3000x750\": 1,\n \"3000x950\": 1,\n \"3000x1050\": 1,\n \"3000x1250\": 1,\n \"4000x750\": 3,\n \"4000x950\": 3,\n \"4000x1050\": 3,\n \"4000x1250\": 3,\n \"5000x750\": 3,\n \"5000x950\": 3,\n \"5000x1050\": 3,\n \"5000x1250\": 3,\n \"7500x750\": 1,\n \"7500x950\": 1,\n \"7500x1050\": 3,\n \"7500x1250\": 4,\n \"10000x750\": 1,\n \"10000x950\": 1,\n \"10000x1050\": 3,\n \"10000x1250\": 4\n },\n \"1000x2450\": {\n \"1000x750\": 10,\n \"1000x950\": 10,\n \"1000x1050\": 10,\n \"1000x1250\": 10,\n \"2000x750\": 10,\n \"2000x950\": 10,\n \"2000x1050\": 10,\n \"2000x1250\": 10,\n \"3000x750\": 10,\n \"3000x950\": 10,\n \"3000x1050\": 10,\n \"3000x1250\": 10,\n \"4000x750\": 10,\n \"4000x950\": 10,\n \"4000x1050\": 10,\n \"4000x1250\": 10,\n \"5000x750\": 10,\n \"5000x950\": 10,\n \"5000x1050\": 10,\n \"5000x1250\": 10,\n \"7500x750\": 10,\n \"7500x950\": 10,\n \"7500x1050\": 11,\n \"7500x1250\": 11,\n \"10000x750\": 10,\n \"10000x950\": 10,\n \"10000x1050\": 11,\n \"10000x1250\": 11\n },\n \"1500x1000\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 0,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 0,\n \"2000x1250\": 0,\n \"3000x750\": 2,\n \"3000x950\": 2,\n \"3000x1050\": 2,\n \"3000x1250\": 2,\n \"4000x750\": 2,\n \"4000x950\": 2,\n \"4000x1050\": 2,\n \"4000x1250\": 2,\n \"5000x750\": 2,\n \"5000x950\": 2,\n \"5000x1050\": 2,\n \"5000x1250\": 2,\n \"7500x750\": 2,\n \"7500x950\": 2,\n \"7500x1050\": 2,\n \"7500x1250\": 2,\n \"10000x750\": 2,\n \"10000x950\": 2,\n \"10000x1050\": 2,\n \"10000x1250\": 2\n },\n \"1500x1500\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 1,\n \"1000x1250\": 1,\n \"2000x750\": 1,\n \"2000x950\": 1,\n \"2000x1050\": 1,\n \"2000x1250\": 1,\n \"3000x750\": 1,\n \"3000x950\": 1,\n \"3000x1050\": 1,\n \"3000x1250\": 1,\n \"4000x750\": 1,\n \"4000x950\": 1,\n \"4000x1050\": 1,\n \"4000x1250\": 1,\n \"5000x750\": 1,\n \"5000x950\": 1,\n \"5000x1050\": 1,\n \"5000x1250\": 1,\n \"7500x750\": 1,\n \"7500x950\": 1,\n \"7500x1050\": 1,\n \"7500x1250\": 1,\n \"10000x750\": 1,\n \"10000x950\": 1,\n \"10000x1050\": 1,\n \"10000x1250\": 1\n },\n \"1500x2000\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 3,\n \"1000x1250\": 3,\n \"2000x750\": 1,\n \"2000x950\": 1,\n \"2000x1050\": 3,\n \"2000x1250\": 3,\n \"3000x750\": 1,\n \"3000x950\": 1,\n \"3000x1050\": 3,\n \"3000x1250\": 3,\n \"4000x750\": 3,\n \"4000x950\": 3,\n \"4000x1050\": 4,\n \"4000x1250\": 4,\n \"5000x750\": 10,\n \"5000x950\": 10,\n \"5000x1050\": 10,\n \"5000x1250\": 10,\n \"7500x750\": 3,\n \"7500x950\": 4,\n \"7500x1050\": 10,\n \"7500x1250\": 11,\n \"10000x750\": 3,\n \"10000x950\": 4,\n \"10000x1050\": 10,\n \"10000x1250\": 11\n },\n \"1500x2450\": {\n \"1000x750\": 10,\n \"1000x950\": 10,\n \"1000x1050\": 11,\n \"1000x1250\": 12,\n \"2000x750\": 10,\n \"2000x950\": 10,\n \"2000x1050\": 11,\n \"2000x1250\": 12,\n \"3000x750\": 10,\n \"3000x950\": 10,\n \"3000x1050\": 11,\n \"3000x1250\": 12,\n \"4000x750\": 10,\n \"4000x950\": 10,\n \"4000x1050\": 11,\n \"4000x1250\": 12,\n \"5000x750\": 11,\n \"5000x950\": 11,\n \"5000x1050\": 12,\n \"5000x1250\": 12,\n \"7500x750\": 10,\n \"7500x950\": 11,\n \"7500x1050\": 12,\n \"7500x1250\": 13,\n \"10000x750\": 10,\n \"10000x950\": 11,\n \"10000x1050\": 12,\n \"10000x1250\": 13\n },\n \"2000x1000\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 1,\n \"2000x750\": 2,\n \"2000x950\": 2,\n \"2000x1050\": 2,\n \"2000x1250\": 1,\n \"3000x750\": 2,\n \"3000x950\": 2,\n \"3000x1050\": 2,\n \"3000x1250\": 1,\n \"4000x750\": 2,\n \"4000x950\": 2,\n \"4000x1050\": 2,\n \"4000x1250\": 1,\n \"5000x750\": 2,\n \"5000x950\": 2,\n \"5000x1050\": 2,\n \"5000x1250\": 1,\n \"7500x750\": 2,\n \"7500x950\": 2,\n \"7500x1050\": 2,\n \"7500x1250\": 1,\n \"10000x750\": 2,\n \"10000x950\": 2,\n \"10000x1050\": 2,\n \"10000x1250\": 1\n },\n \"2000x1500\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 1,\n \"1000x1250\": 1,\n \"2000x750\": 1,\n \"2000x950\": 1,\n \"2000x1050\": 1,\n \"2000x1250\": 1,\n \"3000x750\": 1,\n \"3000x950\": 1,\n \"3000x1050\": 1,\n \"3000x1250\": 1,\n \"4000x750\": 1,\n \"4000x950\": 1,\n \"4000x1050\": 1,\n \"4000x1250\": 1,\n \"5000x750\": 1,\n \"5000x950\": 1,\n \"5000x1050\": 1,\n \"5000x1250\": 1,\n \"7500x750\": 1,\n \"7500x950\": 1,\n \"7500x1050\": 1,\n \"7500x1250\": 3,\n \"10000x750\": 1,\n \"10000x950\": 1,\n \"10000x1050\": 1,\n \"10000x1250\": 3\n },\n \"2000x2000\": {\n \"1000x750\": 1,\n \"1000x950\": 3,\n \"1000x1050\": 4,\n \"1000x1250\": 4,\n \"2000x750\": 3,\n \"2000x950\": 3,\n \"2000x1050\": 4,\n \"2000x1250\": 4,\n \"3000x750\": 3,\n \"3000x950\": 3,\n \"3000x1050\": 4,\n \"3000x1250\": 4,\n \"4000x750\": 10,\n \"4000x950\": 10,\n \"4000x1050\": 10,\n \"4000x1250\": 10,\n \"5000x750\": 10,\n \"5000x950\": 10,\n \"5000x1050\": 10,\n \"5000x1250\": 10,\n \"7500x750\": 10,\n \"7500x950\": 10,\n \"7500x1050\": 11,\n \"7500x1250\": 12,\n \"10000x750\": 10,\n \"10000x950\": 10,\n \"10000x1050\": 11,\n \"10000x1250\": 12\n },\n \"2000x2450\": {\n \"1000x750\": 11,\n \"1000x950\": 12,\n \"1000x1050\": 13,\n \"1000x1250\": 13,\n \"2000x750\": 11,\n \"2000x950\": 12,\n \"2000x1050\": 13,\n \"2000x1250\": 13,\n \"3000x750\": 11,\n \"3000x950\": 12,\n \"3000x1050\": 13,\n \"3000x1250\": 13,\n \"4000x750\": 11,\n \"4000x950\": 12,\n \"4000x1050\": 13,\n \"4000x1250\": 13,\n \"5000x750\": 11,\n \"5000x950\": 12,\n \"5000x1050\": 13,\n \"5000x1250\": 13,\n \"7500x750\": 12,\n \"7500x950\": 13,\n \"7500x1050\": 20,\n \"7500x1250\": 21,\n \"10000x750\": 12,\n \"10000x950\": 13,\n \"10000x1050\": 20,\n \"10000x1250\": 21\n },\n \"2300x1000\": {\n \"1000x750\": 2,\n \"1000x950\": 2,\n \"1000x1050\": 2,\n \"1000x1250\": 1,\n \"2000x750\": 2,\n \"2000x950\": 2,\n \"2000x1050\": 2,\n \"2000x1250\": 1,\n \"3000x750\": 2,\n \"3000x950\": 2,\n \"3000x1050\": 2,\n \"3000x1250\": 1,\n \"4000x750\": 2,\n \"4000x950\": 2,\n \"4000x1050\": 2,\n \"4000x1250\": 1,\n \"5000x750\": 2,\n \"5000x950\": 2,\n \"5000x1050\": 2,\n \"5000x1250\": 1,\n \"7500x750\": 2,\n \"7500x950\": 2,\n \"7500x1050\": 1,\n \"7500x1250\": 1,\n \"10000x750\": 2,\n \"10000x950\": 2,\n \"10000x1050\": 1,\n \"10000x1250\": 1\n },\n \"2300x1500\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 1,\n \"1000x1250\": 3,\n \"2000x750\": 1,\n \"2000x950\": 1,\n \"2000x1050\": 1,\n \"2000x1250\": 3,\n \"3000x750\": 1,\n \"3000x950\": 1,\n \"3000x1050\": 1,\n \"3000x1250\": 3,\n \"4000x750\": 1,\n \"4000x950\": 1,\n \"4000x1050\": 1,\n \"4000x1250\": 3,\n \"5000x750\": 1,\n \"5000x950\": 1,\n \"5000x1050\": 1,\n \"5000x1250\": 3,\n \"7500x750\": 1,\n \"7500x950\": 1,\n \"7500x1050\": 3,\n \"7500x1250\": 4,\n \"10000x750\": 1,\n \"10000x950\": 1,\n \"10000x1050\": 3,\n \"10000x1250\": 4\n },\n \"2300x2000\": {\n \"1000x750\": 3,\n \"1000x950\": 4,\n \"1000x1050\": 10,\n \"1000x1250\": 11,\n \"2000x750\": 3,\n \"2000x950\": 4,\n \"2000x1050\": 10,\n \"2000x1250\": 11,\n \"3000x750\": 3,\n \"3000x950\": 4,\n \"3000x1050\": 10,\n \"3000x1250\": 11,\n \"4000x750\": 3,\n \"4000x950\": 4,\n \"4000x1050\": 10,\n \"4000x1250\": 11,\n \"5000x750\": 3,\n \"5000x950\": 4,\n \"5000x1050\": 10,\n \"5000x1250\": 11,\n \"7500x750\": 10,\n \"7500x950\": 11,\n \"7500x1050\": 12,\n \"7500x1250\": 13,\n \"10000x750\": 10,\n \"10000x950\": 11,\n \"10000x1050\": 12,\n \"10000x1250\": 13\n },\n \"2300x2450\": {\n \"1000x750\": 12,\n \"1000x950\": 13,\n \"1000x1050\": 20,\n \"1000x1250\": 21,\n \"2000x750\": 12,\n \"2000x950\": 13,\n \"2000x1050\": 20,\n \"2000x1250\": 21,\n \"3000x750\": 12,\n \"3000x950\": 13,\n \"3000x1050\": 20,\n \"3000x1250\": 21,\n \"4000x750\": 12,\n \"4000x950\": 13,\n \"4000x1050\": 20,\n \"4000x1250\": 21,\n \"5000x750\": 12,\n \"5000x950\": 13,\n \"5000x1050\": 20,\n \"5000x1250\": 21,\n \"7500x750\": 20,\n \"7500x950\": 21,\n \"7500x1050\": 22,\n \"7500x1250\": 22,\n \"10000x750\": 20,\n \"10000x950\": 21,\n \"10000x1050\": 22,\n \"10000x1250\": 22\n }\n};\n\n;// CONCATENATED MODULE: ./src/utils/jis/combinationSign/Z1410Level2/index.ts\n\n\n\n/***/ }),\n\n/***/ 24158:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"A\": function() { return /* reexport */ calcCombinationSign; }\n});\n\n;// CONCATENATED MODULE: ./src/utils/jis/combinationSign/Z1410Level3/combinationSign.ts\nfunction calcCombinationSign(nw, sideStrutsCenterSpace, signCalcOuterWidth, innerHeight) {\n if (!nw || !sideStrutsCenterSpace || !signCalcOuterWidth || !innerHeight) {\n return 999;\n }\n const firstKeys = Object.keys(MATRIX);\n const closestOuterWidth = findClosestKey(signCalcOuterWidth, firstKeys, 0);\n const closestInnerHeight = findClosestKey(innerHeight, firstKeys, 1);\n const selectedKey = \"\".concat(closestOuterWidth, \"x\").concat(closestInnerHeight);\n if (!MATRIX[selectedKey]) {\n return 999;\n }\n const nwSpacingKeys = Object.keys(MATRIX[selectedKey]);\n const closestNW = findClosestKey(nw, nwSpacingKeys, 0);\n const closestSpacing = findClosestKey(sideStrutsCenterSpace, nwSpacingKeys, 1);\n const weightSpacingKey = \"\".concat(closestNW, \"x\").concat(closestSpacing);\n if (MATRIX[selectedKey][weightSpacingKey] !== undefined) {\n return MATRIX[selectedKey][weightSpacingKey];\n } else {\n return 999;\n }\n}\nfunction findClosestKey(value, keys, index) {\n const numericKeys = keys.map((key)=>parseInt(key.split(\"x\")[index])).filter((key)=>key >= value);\n if (numericKeys.length === 0) return \"No matching key found.\";\n const closestKey = Math.min(...numericKeys);\n return closestKey.toString();\n}\nconst MATRIX = {\n \"1000x1000\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 0,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 0,\n \"2000x1250\": 0,\n \"3000x750\": 0,\n \"3000x950\": 0,\n \"3000x1050\": 0,\n \"3000x1250\": 0,\n \"4000x750\": 0,\n \"4000x950\": 0,\n \"4000x1050\": 0,\n \"4000x1250\": 0,\n \"5000x750\": 0,\n \"5000x950\": 0,\n \"5000x1050\": 0,\n \"5000x1250\": 0,\n \"7500x750\": 0,\n \"7500x950\": 0,\n \"7500x1050\": 0,\n \"7500x1250\": 0,\n \"10000x750\": 0,\n \"10000x950\": 0,\n \"10000x1050\": 0,\n \"10000x1250\": 0\n },\n \"1000x1500\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 1,\n \"1000x1250\": 1,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 2,\n \"2000x1250\": 2,\n \"3000x750\": 0,\n \"3000x950\": 0,\n \"3000x1050\": 2,\n \"3000x1250\": 2,\n \"4000x750\": 0,\n \"4000x950\": 0,\n \"4000x1050\": 2,\n \"4000x1250\": 2,\n \"5000x750\": 0,\n \"5000x950\": 0,\n \"5000x1050\": 2,\n \"5000x1250\": 2,\n \"7500x750\": 2,\n \"7500x950\": 2,\n \"7500x1050\": 2,\n \"7500x1250\": 2,\n \"10000x750\": 2,\n \"10000x950\": 2,\n \"10000x1050\": 2,\n \"10000x1250\": 2\n },\n \"1000x2000\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 1,\n \"1000x1250\": 1,\n \"2000x750\": 1,\n \"2000x950\": 1,\n \"2000x1050\": 1,\n \"2000x1250\": 1,\n \"3000x750\": 1,\n \"3000x950\": 1,\n \"3000x1050\": 1,\n \"3000x1250\": 1,\n \"4000x750\": 1,\n \"4000x950\": 1,\n \"4000x1050\": 1,\n \"4000x1250\": 1,\n \"5000x750\": 1,\n \"5000x950\": 1,\n \"5000x1050\": 1,\n \"5000x1250\": 1,\n \"7500x750\": 1,\n \"7500x950\": 1,\n \"7500x1050\": 1,\n \"7500x1250\": 1,\n \"10000x750\": 1,\n \"10000x950\": 1,\n \"10000x1050\": 1,\n \"10000x1250\": 1\n },\n \"1000x2450\": {\n \"1000x750\": 11,\n \"1000x950\": 11,\n \"1000x1050\": 11,\n \"1000x1250\": 11,\n \"2000x750\": 11,\n \"2000x950\": 11,\n \"2000x1050\": 11,\n \"2000x1250\": 11,\n \"3000x750\": 11,\n \"3000x950\": 11,\n \"3000x1050\": 11,\n \"3000x1250\": 11,\n \"4000x750\": 11,\n \"4000x950\": 11,\n \"4000x1050\": 11,\n \"4000x1250\": 11,\n \"5000x750\": 11,\n \"5000x950\": 11,\n \"5000x1050\": 11,\n \"5000x1250\": 11,\n \"7500x750\": 11,\n \"7500x950\": 11,\n \"7500x1050\": 11,\n \"7500x1250\": 11,\n \"10000x750\": 11,\n \"10000x950\": 11,\n \"10000x1050\": 11,\n \"10000x1250\": 11\n },\n \"1500x1000\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 0,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 0,\n \"2000x1250\": 0,\n \"3000x750\": 0,\n \"3000x950\": 0,\n \"3000x1050\": 0,\n \"3000x1250\": 0,\n \"4000x750\": 0,\n \"4000x950\": 0,\n \"4000x1050\": 0,\n \"4000x1250\": 0,\n \"5000x750\": 0,\n \"5000x950\": 0,\n \"5000x1050\": 0,\n \"5000x1250\": 0,\n \"7500x750\": 0,\n \"7500x950\": 0,\n \"7500x1050\": 0,\n \"7500x1250\": 0,\n \"10000x750\": 0,\n \"10000x950\": 0,\n \"10000x1050\": 0,\n \"10000x1250\": 0\n },\n \"1500x1500\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 1,\n \"1000x1250\": 1,\n \"2000x750\": 2,\n \"2000x950\": 2,\n \"2000x1050\": 2,\n \"2000x1250\": 1,\n \"3000x750\": 2,\n \"3000x950\": 2,\n \"3000x1050\": 2,\n \"3000x1250\": 1,\n \"4000x750\": 2,\n \"4000x950\": 2,\n \"4000x1050\": 2,\n \"4000x1250\": 1,\n \"5000x750\": 2,\n \"5000x950\": 2,\n \"5000x1050\": 2,\n \"5000x1250\": 1,\n \"7500x750\": 2,\n \"7500x950\": 2,\n \"7500x1050\": 2,\n \"7500x1250\": 1,\n \"10000x750\": 2,\n \"10000x950\": 2,\n \"10000x1050\": 2,\n \"10000x1250\": 1\n },\n \"1500x2000\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 1,\n \"1000x1250\": 3,\n \"2000x750\": 1,\n \"2000x950\": 1,\n \"2000x1050\": 1,\n \"2000x1250\": 3,\n \"3000x750\": 1,\n \"3000x950\": 1,\n \"3000x1050\": 1,\n \"3000x1250\": 3,\n \"4000x750\": 1,\n \"4000x950\": 1,\n \"4000x1050\": 1,\n \"4000x1250\": 3,\n \"5000x750\": 1,\n \"5000x950\": 1,\n \"5000x1050\": 1,\n \"5000x1250\": 3,\n \"7500x750\": 1,\n \"7500x950\": 1,\n \"7500x1050\": 1,\n \"7500x1250\": 1,\n \"10000x750\": 1,\n \"10000x950\": 1,\n \"10000x1050\": 1,\n \"10000x1250\": 1\n },\n \"1500x2450\": {\n \"1000x750\": 11,\n \"1000x950\": 11,\n \"1000x1050\": 11,\n \"1000x1250\": 11,\n \"2000x750\": 11,\n \"2000x950\": 11,\n \"2000x1050\": 11,\n \"2000x1250\": 11,\n \"3000x750\": 11,\n \"3000x950\": 11,\n \"3000x1050\": 11,\n \"3000x1250\": 11,\n \"4000x750\": 11,\n \"4000x950\": 11,\n \"4000x1050\": 11,\n \"4000x1250\": 11,\n \"5000x750\": 11,\n \"5000x950\": 11,\n \"5000x1050\": 11,\n \"5000x1250\": 11,\n \"7500x750\": 11,\n \"7500x950\": 11,\n \"7500x1050\": 11,\n \"7500x1250\": 11,\n \"10000x750\": 11,\n \"10000x950\": 11,\n \"10000x1050\": 11,\n \"10000x1250\": 11\n },\n \"2000x1000\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 2,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 0,\n \"2000x1250\": 2,\n \"3000x750\": 0,\n \"3000x950\": 0,\n \"3000x1050\": 0,\n \"3000x1250\": 2,\n \"4000x750\": 0,\n \"4000x950\": 0,\n \"4000x1050\": 0,\n \"4000x1250\": 2,\n \"5000x750\": 0,\n \"5000x950\": 0,\n \"5000x1050\": 0,\n \"5000x1250\": 2,\n \"7500x750\": 0,\n \"7500x950\": 0,\n \"7500x1050\": 0,\n \"7500x1250\": 2,\n \"10000x750\": 0,\n \"10000x950\": 0,\n \"10000x1050\": 0,\n \"10000x1250\": 2\n },\n \"2000x1500\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 1,\n \"1000x1250\": 1,\n \"2000x750\": 1,\n \"2000x950\": 1,\n \"2000x1050\": 1,\n \"2000x1250\": 1,\n \"3000x750\": 1,\n \"3000x950\": 1,\n \"3000x1050\": 1,\n \"3000x1250\": 1,\n \"4000x750\": 1,\n \"4000x950\": 1,\n \"4000x1050\": 1,\n \"4000x1250\": 1,\n \"5000x750\": 1,\n \"5000x950\": 1,\n \"5000x1050\": 1,\n \"5000x1250\": 1,\n \"7500x750\": 2,\n \"7500x950\": 1,\n \"7500x1050\": 1,\n \"7500x1250\": 1,\n \"10000x750\": 2,\n \"10000x950\": 1,\n \"10000x1050\": 1,\n \"10000x1250\": 1\n },\n \"2000x2000\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 3,\n \"1000x1250\": 4,\n \"2000x750\": 1,\n \"2000x950\": 1,\n \"2000x1050\": 3,\n \"2000x1250\": 4,\n \"3000x750\": 1,\n \"3000x950\": 1,\n \"3000x1050\": 3,\n \"3000x1250\": 4,\n \"4000x750\": 1,\n \"4000x950\": 1,\n \"4000x1050\": 3,\n \"4000x1250\": 4,\n \"5000x750\": 1,\n \"5000x950\": 1,\n \"5000x1050\": 3,\n \"5000x1250\": 4,\n \"7500x750\": 1,\n \"7500x950\": 1,\n \"7500x1050\": 1,\n \"7500x1250\": 3,\n \"10000x750\": 1,\n \"10000x950\": 1,\n \"10000x1050\": 1,\n \"10000x1250\": 3\n },\n \"2000x2450\": {\n \"1000x750\": 11,\n \"1000x950\": 11,\n \"1000x1050\": 11,\n \"1000x1250\": 11,\n \"2000x750\": 11,\n \"2000x950\": 11,\n \"2000x1050\": 11,\n \"2000x1250\": 11,\n \"3000x750\": 11,\n \"3000x950\": 11,\n \"3000x1050\": 11,\n \"3000x1250\": 11,\n \"4000x750\": 11,\n \"4000x950\": 11,\n \"4000x1050\": 11,\n \"4000x1250\": 11,\n \"5000x750\": 11,\n \"5000x950\": 11,\n \"5000x1050\": 11,\n \"5000x1250\": 11,\n \"7500x750\": 11,\n \"7500x950\": 11,\n \"7500x1050\": 11,\n \"7500x1250\": 12,\n \"10000x750\": 11,\n \"10000x950\": 11,\n \"10000x1050\": 11,\n \"10000x1250\": 12\n },\n \"2300x1000\": {\n \"1000x750\": 0,\n \"1000x950\": 2,\n \"1000x1050\": 2,\n \"1000x1250\": 2,\n \"2000x750\": 0,\n \"2000x950\": 2,\n \"2000x1050\": 2,\n \"2000x1250\": 2,\n \"3000x750\": 0,\n \"3000x950\": 2,\n \"3000x1050\": 2,\n \"3000x1250\": 2,\n \"4000x750\": 0,\n \"4000x950\": 2,\n \"4000x1050\": 2,\n \"4000x1250\": 2,\n \"5000x750\": 0,\n \"5000x950\": 2,\n \"5000x1050\": 2,\n \"5000x1250\": 2,\n \"7500x750\": 0,\n \"7500x950\": 2,\n \"7500x1050\": 2,\n \"7500x1250\": 2,\n \"10000x750\": 0,\n \"10000x950\": 2,\n \"10000x1050\": 2,\n \"10000x1250\": 2\n },\n \"2300x1500\": {\n \"1000x750\": 1,\n \"1000x950\": 1,\n \"1000x1050\": 1,\n \"1000x1250\": 1,\n \"2000x750\": 1,\n \"2000x950\": 1,\n \"2000x1050\": 1,\n \"2000x1250\": 1,\n \"3000x750\": 1,\n \"3000x950\": 1,\n \"3000x1050\": 1,\n \"3000x1250\": 1,\n \"4000x750\": 1,\n \"4000x950\": 1,\n \"4000x1050\": 1,\n \"4000x1250\": 1,\n \"5000x750\": 1,\n \"5000x950\": 1,\n \"5000x1050\": 1,\n \"5000x1250\": 1,\n \"7500x750\": 2,\n \"7500x950\": 1,\n \"7500x1050\": 1,\n \"7500x1250\": 1,\n \"10000x750\": 2,\n \"10000x950\": 1,\n \"10000x1050\": 1,\n \"10000x1250\": 1\n },\n \"2300x2000\": {\n \"1000x750\": 3,\n \"1000x950\": 4,\n \"1000x1050\": 10,\n \"1000x1250\": 11,\n \"2000x750\": 3,\n \"2000x950\": 4,\n \"2000x1050\": 10,\n \"2000x1250\": 11,\n \"3000x750\": 3,\n \"3000x950\": 4,\n \"3000x1050\": 10,\n \"3000x1250\": 11,\n \"4000x750\": 3,\n \"4000x950\": 4,\n \"4000x1050\": 10,\n \"4000x1250\": 11,\n \"5000x750\": 3,\n \"5000x950\": 4,\n \"5000x1050\": 10,\n \"5000x1250\": 11,\n \"7500x750\": 1,\n \"7500x950\": 1,\n \"7500x1050\": 1,\n \"7500x1250\": 3,\n \"10000x750\": 1,\n \"10000x950\": 1,\n \"10000x1050\": 1,\n \"10000x1250\": 3\n },\n \"2300x2450\": {\n \"1000x750\": 11,\n \"1000x950\": 11,\n \"1000x1050\": 11,\n \"1000x1250\": 11,\n \"2000x750\": 11,\n \"2000x950\": 11,\n \"2000x1050\": 11,\n \"2000x1250\": 11,\n \"3000x750\": 11,\n \"3000x950\": 11,\n \"3000x1050\": 11,\n \"3000x1250\": 11,\n \"4000x750\": 11,\n \"4000x950\": 11,\n \"4000x1050\": 11,\n \"4000x1250\": 11,\n \"5000x750\": 11,\n \"5000x950\": 11,\n \"5000x1050\": 11,\n \"5000x1250\": 11,\n \"7500x750\": 11,\n \"7500x950\": 11,\n \"7500x1050\": 12,\n \"7500x1250\": 13,\n \"10000x750\": 11,\n \"10000x950\": 11,\n \"10000x1050\": 12,\n \"10000x1250\": 13\n }\n};\n\n;// CONCATENATED MODULE: ./src/utils/jis/combinationSign/Z1410Level3/index.ts\n\n\n\n/***/ }),\n\n/***/ 31330:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"A\": function() { return /* reexport */ calcCombinationSign; }\n});\n\n;// CONCATENATED MODULE: ./src/utils/jis/combinationSign/Z1410Level4/combinationSign.ts\nfunction calcCombinationSign(nw, sideStrutsCenterSpace, signCalcOuterWidth, innerHeight) {\n if (!nw || !sideStrutsCenterSpace || !signCalcOuterWidth || !innerHeight) {\n return 999;\n }\n const firstKeys = Object.keys(MATRIX);\n const closestOuterWidth = findClosestKey(signCalcOuterWidth, firstKeys, 0);\n const closestInnerHeight = findClosestKey(innerHeight, firstKeys, 1);\n const selectedKey = \"\".concat(closestOuterWidth, \"x\").concat(closestInnerHeight);\n if (!MATRIX[selectedKey]) {\n return 999;\n }\n const nwSpacingKeys = Object.keys(MATRIX[selectedKey]);\n const closestNW = findClosestKey(nw, nwSpacingKeys, 0);\n const closestSpacing = findClosestKey(sideStrutsCenterSpace, nwSpacingKeys, 1);\n const weightSpacingKey = \"\".concat(closestNW, \"x\").concat(closestSpacing);\n if (MATRIX[selectedKey][weightSpacingKey] !== undefined) {\n return MATRIX[selectedKey][weightSpacingKey];\n } else {\n return 999;\n }\n}\nfunction findClosestKey(value, keys, index) {\n const numericKeys = keys.map((key)=>parseInt(key.split(\"x\")[index])).filter((key)=>key >= value);\n if (numericKeys.length === 0) return \"No matching key found.\";\n const closestKey = Math.min(...numericKeys);\n return closestKey.toString();\n}\nconst MATRIX = {\n \"1000x1000\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 0,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 0,\n \"2000x1250\": 0,\n \"3000x750\": 0,\n \"3000x950\": 0,\n \"3000x1050\": 0,\n \"3000x1250\": 0,\n \"4000x750\": 0,\n \"4000x950\": 0,\n \"4000x1050\": 0,\n \"4000x1250\": 0,\n \"5000x750\": 0,\n \"5000x950\": 0,\n \"5000x1050\": 0,\n \"5000x1250\": 0\n },\n \"1000x1500\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 0,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 0,\n \"2000x1250\": 0,\n \"3000x750\": 0,\n \"3000x950\": 0,\n \"3000x1050\": 0,\n \"3000x1250\": 0,\n \"4000x750\": 0,\n \"4000x950\": 0,\n \"4000x1050\": 0,\n \"4000x1250\": 0,\n \"5000x750\": 0,\n \"5000x950\": 0,\n \"5000x1050\": 0,\n \"5000x1250\": 0\n },\n \"1000x2000\": {\n \"1000x750\": 2,\n \"1000x950\": 2,\n \"1000x1050\": 2,\n \"1000x1250\": 2,\n \"2000x750\": 2,\n \"2000x950\": 2,\n \"2000x1050\": 2,\n \"2000x1250\": 2,\n \"3000x750\": 2,\n \"3000x950\": 2,\n \"3000x1050\": 2,\n \"3000x1250\": 2,\n \"4000x750\": 2,\n \"4000x950\": 2,\n \"4000x1050\": 2,\n \"4000x1250\": 2,\n \"5000x750\": 2,\n \"5000x950\": 2,\n \"5000x1050\": 2,\n \"5000x1250\": 2\n },\n \"1000x2200\": {\n \"1000x750\": 2,\n \"1000x950\": 2,\n \"1000x1050\": 2,\n \"1000x1250\": 2,\n \"2000x750\": 2,\n \"2000x950\": 2,\n \"2000x1050\": 2,\n \"2000x1250\": 2,\n \"3000x750\": 2,\n \"3000x950\": 2,\n \"3000x1050\": 2,\n \"3000x1250\": 2,\n \"4000x750\": 2,\n \"4000x950\": 2,\n \"4000x1050\": 2,\n \"4000x1250\": 2,\n \"5000x750\": 2,\n \"5000x950\": 2,\n \"5000x1050\": 2,\n \"5000x1250\": 2\n },\n \"1500x1000\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 0,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 0,\n \"2000x1250\": 0,\n \"3000x750\": 0,\n \"3000x950\": 0,\n \"3000x1050\": 0,\n \"3000x1250\": 0,\n \"4000x750\": 0,\n \"4000x950\": 0,\n \"4000x1050\": 0,\n \"4000x1250\": 0,\n \"5000x750\": 0,\n \"5000x950\": 0,\n \"5000x1050\": 0,\n \"5000x1250\": 0\n },\n \"1500x1500\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 0,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 0,\n \"2000x1250\": 0,\n \"3000x750\": 0,\n \"3000x950\": 0,\n \"3000x1050\": 0,\n \"3000x1250\": 0,\n \"4000x750\": 0,\n \"4000x950\": 0,\n \"4000x1050\": 0,\n \"4000x1250\": 0,\n \"5000x750\": 0,\n \"5000x950\": 0,\n \"5000x1050\": 0,\n \"5000x1250\": 0\n },\n \"1500x2000\": {\n \"1000x750\": 2,\n \"1000x950\": 2,\n \"1000x1050\": 2,\n \"1000x1250\": 2,\n \"2000x750\": 2,\n \"2000x950\": 2,\n \"2000x1050\": 2,\n \"2000x1250\": 2,\n \"3000x750\": 2,\n \"3000x950\": 2,\n \"3000x1050\": 2,\n \"3000x1250\": 2,\n \"4000x750\": 2,\n \"4000x950\": 2,\n \"4000x1050\": 2,\n \"4000x1250\": 2,\n \"5000x750\": 2,\n \"5000x950\": 2,\n \"5000x1050\": 2,\n \"5000x1250\": 2\n },\n \"1500x2200\": {\n \"1000x750\": 2,\n \"1000x950\": 2,\n \"1000x1050\": 2,\n \"1000x1250\": 2,\n \"2000x750\": 2,\n \"2000x950\": 2,\n \"2000x1050\": 2,\n \"2000x1250\": 2,\n \"3000x750\": 2,\n \"3000x950\": 2,\n \"3000x1050\": 2,\n \"3000x1250\": 2,\n \"4000x750\": 2,\n \"4000x950\": 2,\n \"4000x1050\": 2,\n \"4000x1250\": 2,\n \"5000x750\": 2,\n \"5000x950\": 2,\n \"5000x1050\": 2,\n \"5000x1250\": 2\n },\n \"2000x1000\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 0,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 0,\n \"2000x1250\": 0,\n \"3000x750\": 0,\n \"3000x950\": 0,\n \"3000x1050\": 0,\n \"3000x1250\": 0,\n \"4000x750\": 0,\n \"4000x950\": 0,\n \"4000x1050\": 0,\n \"4000x1250\": 0,\n \"5000x750\": 0,\n \"5000x950\": 0,\n \"5000x1050\": 0,\n \"5000x1250\": 0\n },\n \"2000x1500\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 0,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 0,\n \"2000x1250\": 0,\n \"3000x750\": 0,\n \"3000x950\": 0,\n \"3000x1050\": 0,\n \"3000x1250\": 0,\n \"4000x750\": 0,\n \"4000x950\": 0,\n \"4000x1050\": 0,\n \"4000x1250\": 0,\n \"5000x750\": 0,\n \"5000x950\": 0,\n \"5000x1050\": 0,\n \"5000x1250\": 0\n },\n \"2000x2000\": {\n \"1000x750\": 2,\n \"1000x950\": 2,\n \"1000x1050\": 2,\n \"1000x1250\": 2,\n \"2000x750\": 2,\n \"2000x950\": 2,\n \"2000x1050\": 2,\n \"2000x1250\": 2,\n \"3000x750\": 2,\n \"3000x950\": 2,\n \"3000x1050\": 2,\n \"3000x1250\": 2,\n \"4000x750\": 2,\n \"4000x950\": 2,\n \"4000x1050\": 2,\n \"4000x1250\": 2,\n \"5000x750\": 2,\n \"5000x950\": 2,\n \"5000x1050\": 2,\n \"5000x1250\": 2\n },\n \"2000x2200\": {\n \"1000x750\": 2,\n \"1000x950\": 2,\n \"1000x1050\": 2,\n \"1000x1250\": 2,\n \"2000x750\": 2,\n \"2000x950\": 2,\n \"2000x1050\": 2,\n \"2000x1250\": 2,\n \"3000x750\": 2,\n \"3000x950\": 2,\n \"3000x1050\": 2,\n \"3000x1250\": 2,\n \"4000x750\": 2,\n \"4000x950\": 2,\n \"4000x1050\": 2,\n \"4000x1250\": 2,\n \"5000x750\": 2,\n \"5000x950\": 2,\n \"5000x1050\": 2,\n \"5000x1250\": 2\n },\n \"2300x1000\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 0,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 0,\n \"2000x1250\": 0,\n \"3000x750\": 0,\n \"3000x950\": 0,\n \"3000x1050\": 0,\n \"3000x1250\": 0,\n \"4000x750\": 0,\n \"4000x950\": 0,\n \"4000x1050\": 0,\n \"4000x1250\": 0,\n \"5000x750\": 0,\n \"5000x950\": 0,\n \"5000x1050\": 0,\n \"5000x1250\": 0\n },\n \"2300x1500\": {\n \"1000x750\": 0,\n \"1000x950\": 0,\n \"1000x1050\": 0,\n \"1000x1250\": 0,\n \"2000x750\": 0,\n \"2000x950\": 0,\n \"2000x1050\": 0,\n \"2000x1250\": 0,\n \"3000x750\": 0,\n \"3000x950\": 0,\n \"3000x1050\": 0,\n \"3000x1250\": 0,\n \"4000x750\": 0,\n \"4000x950\": 0,\n \"4000x1050\": 0,\n \"4000x1250\": 0,\n \"5000x750\": 0,\n \"5000x950\": 0,\n \"5000x1050\": 0,\n \"5000x1250\": 0\n },\n \"2300x2000\": {\n \"1000x750\": 2,\n \"1000x950\": 2,\n \"1000x1050\": 2,\n \"1000x1250\": 2,\n \"2000x750\": 2,\n \"2000x950\": 2,\n \"2000x1050\": 2,\n \"2000x1250\": 2,\n \"3000x750\": 2,\n \"3000x950\": 2,\n \"3000x1050\": 2,\n \"3000x1250\": 2,\n \"4000x750\": 2,\n \"4000x950\": 2,\n \"4000x1050\": 2,\n \"4000x1250\": 2,\n \"5000x750\": 2,\n \"5000x950\": 2,\n \"5000x1050\": 2,\n \"5000x1250\": 2\n }\n};\n\n;// CONCATENATED MODULE: ./src/utils/jis/combinationSign/Z1410Level4/index.ts\n\n\n\n/***/ }),\n\n/***/ 33389:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"CS\": function() { return /* binding */ calcRefBhh; },\n/* harmony export */ \"Ns\": function() { return /* binding */ getMaterialName; },\n/* harmony export */ \"YE\": function() { return /* binding */ getMaterialDropdownItems; },\n/* harmony export */ \"ug\": function() { return /* binding */ groupAndSortMaterial; },\n/* harmony export */ \"zF\": function() { return /* binding */ sortMaterialsBySize; }\n/* harmony export */ });\n/* unused harmony exports estimateComponentCost, estimateCost */\nconst getMaterialName = (materials, materialId)=>{\n if (!materialId) return \"----\";\n const material = materials.filter((m)=>m.id === materialId)[0];\n if (!material) return \"NOT FOUND\";\n return material.name;\n};\n// materialとmaterialTypeを利用して、materialのdropdownのitemsを作成する\nconst getMaterialDropdownItems = (materials, materialTypes)=>{\n if (materialTypes.length === 0) return [];\n if (materials.length === 0) return [];\n const sorted = groupAndSortMaterial(materials, materialTypes);\n // ソートしたものを平坦化する、materialTypeNameも追加する\n const materialsWithPrefix = Array.from(sorted.entries()).reduce((acc, param)=>{\n let [key, value] = param;\n const materialType = materialTypes.filter((m)=>m.id === key)[0];\n acc.push({\n value: \"INVALID_ID\",\n label: \"== 梱包分類: \".concat(materialType === null || materialType === void 0 ? void 0 : materialType.name, \" ==\")\n });\n value.forEach((m)=>{\n acc.push({\n value: m.id,\n label: m.name\n });\n });\n return acc;\n }, []);\n return materialsWithPrefix;\n};\n// withが小さい順(widthが一緒ならheightが小さい順)にする\n// with/heightがnullの場合は名前順\nconst sortMaterialsBySize = (materials)=>{\n return materials.sort((a, b)=>{\n var _width;\n // widthが小さい順(widthが一緒だったらheightが小さい順)\n const aWith = (_width = a.width) !== null && _width !== void 0 ? _width : -1;\n var _width1;\n const bWith = (_width1 = b.width) !== null && _width1 !== void 0 ? _width1 : -1;\n if (aWith !== bWith) return aWith < bWith ? -1 : 1;\n var _height;\n const aHeight = (_height = a.height) !== null && _height !== void 0 ? _height : -1;\n var _height1;\n const bHeight = (_height1 = b.height) !== null && _height1 !== void 0 ? _height1 : -1;\n if (aHeight !== bHeight) return aHeight < bHeight ? -1 : 1;\n // 名前順\n if (a.name < b.name) return -1;\n if (a.name > b.name) return 1;\n return 0;\n });\n};\n// materialをmaterialTypesでgroupingし、sizeでソートする\nconst groupAndSortMaterial = (materials, materialTypes)=>{\n // materialTypeIdでgroup化\n const grouped = materials.reduce((acc, cur)=>{\n const key = cur.materialTypeId;\n const existing = acc.get(key) || [];\n existing.push(cur);\n acc.set(key, existing);\n return acc;\n }, new Map());\n // それぞれのgroup内でmaterialをnameでsort\n // withが小さい順(widthが一緒ならheightが小さい順)にする\n // 保存はmapのまま\n const sorted = Array.from(grouped.entries()).reduce((acc, param)=>{\n let [key, value] = param;\n const sorted = sortMaterialsBySize(value);\n acc.set(key, sorted);\n return acc;\n }, new Map());\n return sorted;\n};\n// refBhhEdge(参考用bhh(木端方向))とrefBhhFace(参考用bhh(平方向))の計算をする\n// refBhhFace = 呼び寸巾(widthNominal)x呼び寸高さ(heightNominal)^2\n// refBhhEdge = 呼び寸高さ(heightNominal)x呼び寸巾(widthNominal)^2\n// 返り値は[refBhhFace, refBhhEdge]\nconst calcRefBhh = (widthNominal, heightNominal)=>{\n return [\n (widthNominal !== null && widthNominal !== void 0 ? widthNominal : 0) * (heightNominal !== null && heightNominal !== void 0 ? heightNominal : 0) ** 2,\n (heightNominal !== null && heightNominal !== void 0 ? heightNominal : 0) * (widthNominal !== null && widthNominal !== void 0 ? widthNominal : 0) ** 2\n ];\n};\nconst _getElement = (elements, slug)=>{\n if (!elements) return 0;\n return Object.values(elements).filter((el)=>{\n var ref;\n return (el === null || el === void 0 ? void 0 : el.slug) && (el === null || el === void 0 ? void 0 : (ref = el.slug) === null || ref === void 0 ? void 0 : ref.includes(\".\".concat(slug)));\n })[0].value || 0;\n};\nconst _getMaterialAmount = (els, materialUnit)=>{\n let amount = 0;\n try {\n // materialUnitに対応するslugがelsにない場合はcatchのquantityを取得することになる\n switch(materialUnit){\n case \"length\":\n amount = _getElement(els, \"length\");\n break;\n case \"width\":\n amount = _getElement(els, \"width\");\n break;\n case \"height\":\n amount = _getElement(els, \"height\");\n break;\n case \"m2\":\n amount = _getElement(els, \"m2\");\n break;\n case \"m3\":\n amount = _getElement(els, \"m3\");\n break;\n default:\n amount = _getElement(els, \"quantity\");\n break;\n }\n } catch (e) {\n amount = _getElement(els, \"quantity\");\n }\n return amount;\n};\nconst estimateComponentCost = (components, elements, materials)=>Object.entries(elements).reduce((result, param)=>{\n let [id, els] = param;\n const materialId = _getElement(els, \"materialId\");\n const material = materials.filter((m)=>m.id === materialId)[0];\n const component = components.filter((c)=>c.id === id)[0];\n if (!material) {\n // console.log(\"material not found\", component);\n result.push({\n ...els,\n name: component.name,\n materialName: \"-\",\n materialUnit: \"-\",\n defaultUnitCost: 0,\n lossRate: 0,\n amount: 0,\n cost: 0\n });\n return result;\n }\n const { name , lossRate , defaultUnitCost } = material;\n const amount = _getMaterialAmount(els, material.unit);\n const cost = amount * (1 + lossRate) * defaultUnitCost;\n // console.log(\"material found\", { name, defaultUnitCost, lossRate, amount });\n result.push({\n ...els,\n name: component.name,\n materialName: name,\n materialUnit: material.unit,\n defaultUnitCost,\n lossRate,\n amount,\n cost\n });\n return result;\n }, []);\nconst estimateCost = function(elements, materials) {\n let materialTypeName = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : \"\";\n return Object.values(elements).reduce((result, els)=>{\n var ref;\n const materialId = _getElement(els, \"materialId\");\n const material = materials.filter((m)=>m.id === materialId)[0];\n if (!material) return result;\n // materialのmaterialTypeが設定されてなかったらスキップ\n if (!material.materialType) return result;\n // materialTypeNameが指定されていて(空文字以外)、materialTypeが一致しない場合はスキップ\n if (materialTypeName !== \"\" && (material === null || material === void 0 ? void 0 : (ref = material.materialType) === null || ref === void 0 ? void 0 : ref.name) !== materialTypeName) {\n return result;\n }\n const { lossRate , defaultUnitCost } = material;\n const amount = _getMaterialAmount(els, material.unit);\n const cost = defaultUnitCost * (amount * (1 + lossRate));\n return result + Math.round(cost);\n }, 0);\n};\n\n\n/***/ }),\n\n/***/ 70314:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Jh\": function() { return /* binding */ getPackageById; },\n/* harmony export */ \"Rw\": function() { return /* binding */ deleteBaseArea; },\n/* harmony export */ \"_A\": function() { return /* binding */ deleteBaseComponent; },\n/* harmony export */ \"iv\": function() { return /* binding */ getBaseComponentsByAreaId; },\n/* harmony export */ \"mg\": function() { return /* binding */ addBaseComponent; },\n/* harmony export */ \"o3\": function() { return /* binding */ addBaseArea; }\n/* harmony export */ });\n/* unused harmony exports getAreaComponents, getInteriors, getExteriors */\n/* harmony import */ var short_uuid__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7597);\n/* harmony import */ var short_uuid__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(short_uuid__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var aws_amplify__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(10552);\n/* harmony import */ var _bom_elements__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(99529);\n/* harmony import */ var graphql_mutations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23765);\n/* harmony import */ var graphql_queries__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(18490);\n\n\n\n\n\n// 指定した梱包仕様にComponent(部材)を追加する\nasync function addBaseComponent(target, order, areaId, packageTypeId) {\n const slug = short_uuid__WEBPACK_IMPORTED_MODULE_0___default()().generate().toString();\n const componentId = (0,short_uuid__WEBPACK_IMPORTED_MODULE_0__.uuid)();\n if (target === \"component\") {\n if (!areaId) return;\n const input = {\n id: componentId,\n baseAreaId: areaId,\n name: \"新部材\",\n slug,\n order,\n elements: (0,_bom_elements__WEBPACK_IMPORTED_MODULE_1__/* .createEmptyElements */ .nt)(\"component\", slug)\n };\n await aws_amplify__WEBPACK_IMPORTED_MODULE_2__/* .API.graphql */ .b.graphql({\n query: graphql_mutations__WEBPACK_IMPORTED_MODULE_3__.createBaseComponent,\n variables: {\n input: input\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n });\n return;\n }\n if (target === \"exterior\") {\n if (!packageTypeId) return;\n const input1 = {\n id: componentId,\n packageTypeId,\n name: \"新外装\",\n type: \"EXTERIOR\",\n slug,\n order,\n elements: (0,_bom_elements__WEBPACK_IMPORTED_MODULE_1__/* .createEmptyElements */ .nt)(\"decoration\", slug)\n };\n await aws_amplify__WEBPACK_IMPORTED_MODULE_2__/* .API.graphql */ .b.graphql({\n query: graphql_mutations__WEBPACK_IMPORTED_MODULE_3__.createBaseDecorationComponent,\n variables: {\n input: input1\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n });\n return;\n }\n if (target === \"interior\") {\n if (!packageTypeId) return;\n const input2 = {\n id: componentId,\n packageTypeId,\n name: \"新内装\",\n type: \"INTERIOR\",\n slug,\n order,\n elements: (0,_bom_elements__WEBPACK_IMPORTED_MODULE_1__/* .createEmptyElements */ .nt)(\"decoration\", slug)\n };\n await aws_amplify__WEBPACK_IMPORTED_MODULE_2__/* .API.graphql */ .b.graphql({\n query: graphql_mutations__WEBPACK_IMPORTED_MODULE_3__.createBaseDecorationComponent,\n variables: {\n input: input2\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n });\n return;\n }\n}\nasync function deleteBaseComponent(target, id) {\n if (target === \"component\") {\n await aws_amplify__WEBPACK_IMPORTED_MODULE_2__/* .API.graphql */ .b.graphql({\n query: graphql_mutations__WEBPACK_IMPORTED_MODULE_3__.deleteBaseComponent,\n variables: {\n input: {\n id\n }\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n });\n return;\n } else {\n await aws_amplify__WEBPACK_IMPORTED_MODULE_2__/* .API.graphql */ .b.graphql({\n query: graphql_mutations__WEBPACK_IMPORTED_MODULE_3__.deleteBaseDecorationComponent,\n variables: {\n input: {\n id\n }\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n });\n return;\n }\n}\n// 指定したareaId以下のcomponentを取得する\nasync function getBaseComponentsByAreaId(areaId) {\n const components = (await aws_amplify__WEBPACK_IMPORTED_MODULE_2__/* .API.graphql */ .b.graphql({\n query: graphql_queries__WEBPACK_IMPORTED_MODULE_4__.baseComponentsByBaseAreaId,\n variables: {\n baseAreaId: areaId\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n })).data.baseComponentsByBaseAreaId.items;\n return components;\n}\nasync function addBaseArea(packageTypeId, order) {\n const input = {\n id: (0,short_uuid__WEBPACK_IMPORTED_MODULE_0__.uuid)(),\n packageTypeId,\n name: \"新区分\",\n order,\n areaType: \"COMPONENT\"\n };\n const areaId = (await aws_amplify__WEBPACK_IMPORTED_MODULE_2__/* .API.graphql */ .b.graphql({\n query: graphql_mutations__WEBPACK_IMPORTED_MODULE_3__.createBaseArea,\n variables: {\n input: input\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n })).data.createBaseArea.id;\n return areaId;\n}\nasync function deleteBaseArea(id) {\n await aws_amplify__WEBPACK_IMPORTED_MODULE_2__/* .API.graphql */ .b.graphql({\n query: graphql_mutations__WEBPACK_IMPORTED_MODULE_3__.deleteBaseArea,\n variables: {\n input: {\n id: id\n }\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n });\n}\nfunction getAreaComponents(pkg) {\n if (pkg && pkg.areas) {\n return pkg.areas.items.sort((a, b)=>a.order - b.order).reduce((r, c)=>{\n var ref, ref1;\n r[c.id] = (ref = c.components) === null || ref === void 0 ? void 0 : (ref1 = ref.items) === null || ref1 === void 0 ? void 0 : ref1.sort((a, b)=>a.order - b.order);\n return r;\n }, {});\n }\n return {};\n}\nfunction getInteriors(pkg) {\n if (pkg && pkg.decorations) {\n var ref;\n return (ref = pkg.decorations.items) === null || ref === void 0 ? void 0 : ref.filter((d)=>d.type === \"INTERIOR\");\n }\n return [];\n}\nfunction getExteriors(pkg) {\n if (pkg && pkg.decorations) {\n var ref;\n return (ref = pkg.decorations.items) === null || ref === void 0 ? void 0 : ref.filter((d)=>d.type === \"EXTERIOR\");\n }\n return [];\n}\nconst getPackageById = async (packageId)=>{\n const p = (await aws_amplify__WEBPACK_IMPORTED_MODULE_2__/* .API.graphql */ .b.graphql({\n query: graphql_queries__WEBPACK_IMPORTED_MODULE_4__.getPackageType,\n variables: {\n id: packageId\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n })).data.getPackageType;\n return p;\n};\n\n\n/***/ }),\n\n/***/ 80491:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"H\": function() { return /* binding */ getPackageBomByID; }\n/* harmony export */ });\n/* harmony import */ var aws_amplify__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10552);\n/* harmony import */ var graphql_queries__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(18490);\n\n\nconst getPackageBomByID = async (packageTypeId)=>{\n const p = (await aws_amplify__WEBPACK_IMPORTED_MODULE_0__/* .API.graphql */ .b.graphql({\n query: graphql_queries__WEBPACK_IMPORTED_MODULE_1__.getPackageBom,\n variables: {\n input: {\n packageTypeId\n }\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n })).data.getPackageBom;\n return p;\n};\n\n\n/***/ }),\n\n/***/ 41491:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"BI\": function() { return /* binding */ getUpdatedCaseInputByProductElements; },\n/* harmony export */ \"DQ\": function() { return /* binding */ checkCaseVersion; },\n/* harmony export */ \"Hs\": function() { return /* binding */ calcM3; },\n/* harmony export */ \"QO\": function() { return /* binding */ ProgressIcon; },\n/* harmony export */ \"Se\": function() { return /* binding */ addArea; },\n/* harmony export */ \"Tk\": function() { return /* binding */ addComponent; },\n/* harmony export */ \"Uw\": function() { return /* binding */ getProductsByProjectId; },\n/* harmony export */ \"W6\": function() { return /* binding */ addCommaToNum; },\n/* harmony export */ \"bc\": function() { return /* binding */ createCases; },\n/* harmony export */ \"d\": function() { return /* binding */ updateCaseWithOptimisticLock; },\n/* harmony export */ \"dn\": function() { return /* binding */ deleteArea; },\n/* harmony export */ \"gk\": function() { return /* binding */ getProductById; },\n/* harmony export */ \"im\": function() { return /* binding */ getProductsCompletionRate; },\n/* harmony export */ \"lB\": function() { return /* binding */ getUpdatedCaseInputByProductNumber; },\n/* harmony export */ \"nM\": function() { return /* binding */ updateProduct; },\n/* harmony export */ \"q5\": function() { return /* binding */ getProductCompletionRate; },\n/* harmony export */ \"v7\": function() { return /* binding */ deleteComponent; },\n/* harmony export */ \"x3\": function() { return /* binding */ getTotalCases; },\n/* harmony export */ \"xK\": function() { return /* binding */ getComponentsByAreaId; }\n/* harmony export */ });\n/* unused harmony export extractElements */\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(85893);\n/* harmony import */ var _mui_icons_material_CheckCircle__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(60888);\n/* harmony import */ var _mui_material_CircularProgress__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(98456);\n/* harmony import */ var _mui_material_Typography__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(15861);\n/* harmony import */ var _mui_material_Box__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(5616);\n/* harmony import */ var aws_amplify__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(10552);\n/* harmony import */ var short_uuid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7597);\n/* harmony import */ var short_uuid__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(short_uuid__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _bom_elements__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(99529);\n/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(78191);\n/* harmony import */ var graphql_product__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(95479);\n/* harmony import */ var graphql_mutations__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(23765);\n/* harmony import */ var graphql_queries__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(18490);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction CircularProgressWithLabel(props) {\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material_Box__WEBPACK_IMPORTED_MODULE_4__/* [\"default\"] */ .Z, {\n sx: {\n position: \"relative\",\n display: \"inline-flex\"\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material_CircularProgress__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"] */ .Z, {\n variant: \"determinate\",\n ...props\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material_Box__WEBPACK_IMPORTED_MODULE_4__/* [\"default\"] */ .Z, {\n sx: {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n position: \"absolute\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\"\n },\n children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material_Typography__WEBPACK_IMPORTED_MODULE_6__/* [\"default\"] */ .Z, {\n variant: \"caption\",\n component: \"div\",\n color: \"text.secondary\",\n children: \"\".concat(Math.round(props.label), \"%\")\n })\n })\n ]\n });\n}\nconst getTotalCases = (products)=>{\n let totalCases = 0;\n if (!products || products.length === 0) return 0;\n products.forEach((p)=>{\n if (!p || !p.cases) return;\n totalCases += p.cases.length;\n });\n return totalCases;\n};\nconst getProductCompletionRate = (product)=>{\n if (!product || !product.cases || product.cases.length === 0) return 0;\n let packedCases = 0;\n product.cases.forEach((c)=>{\n if (!c || !c.phaseId) return;\n if (c.phaseId !== \"complete\") return;\n packedCases += 1;\n });\n return packedCases / product.cases.length;\n};\nconst getProductsCompletionRate = (products)=>{\n if (!products || products.length === 0) return 0;\n const totalCases = getTotalCases(products);\n return products.reduce((r, p)=>{\n if (!p || !p.cases || p.cases.length === 0) return r;\n r += p.cases.filter((c)=>{\n return c === null || c === void 0 ? void 0 : c.isPacked;\n }).length;\n return r;\n }, 0) / totalCases;\n};\nconst ProgressIcon = (param)=>{\n let { progress , ...props } = param;\n if (progress === 0) return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(CircularProgressWithLabel, {\n sx: {\n color: \"#999\"\n },\n variant: \"determinate\",\n value: 100,\n label: 0,\n ...props\n });\n if (progress === 100) return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(\"div\", {\n className: \"relative flex items-center justify-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material_CircularProgress__WEBPACK_IMPORTED_MODULE_5__/* [\"default\"] */ .Z, {\n color: \"success\",\n variant: \"determinate\",\n value: 100,\n ...props\n }),\n /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material_CheckCircle__WEBPACK_IMPORTED_MODULE_7__/* [\"default\"] */ .Z, {\n color: \"success\",\n className: \"absolute\"\n })\n ]\n });\n return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(CircularProgressWithLabel, {\n variant: \"determinate\",\n value: progress,\n label: progress,\n ...props\n });\n};\n//\nconst getUpdatedCaseInputByProductElements = (product)=>{\n if (product.cases === undefined || product.cases === null) return [];\n if (product.elements === undefined || product.elements === null) return null;\n const outerLengthElem = product.elements.find((e)=>e !== null && e.slug === \"outerLength\");\n const outerWidthElem = product.elements.find((e)=>e !== null && e.slug === \"outerWidth\");\n const outerHeightElem = product.elements.find((e)=>e !== null && e.slug === \"outerHeight\");\n const outerLength = parseInt((outerLengthElem === null || outerLengthElem === void 0 ? void 0 : outerLengthElem.value) || \"\", 10) || 0;\n const outerWidth = parseInt((outerWidthElem === null || outerWidthElem === void 0 ? void 0 : outerWidthElem.value) || \"\", 10) || 0;\n const outerHeight = parseInt((outerHeightElem === null || outerHeightElem === void 0 ? void 0 : outerHeightElem.value) || \"\", 10) || 0;\n const newCs = product.cases.map((c)=>{\n return {\n ...c,\n order: c === null || c === void 0 ? void 0 : c.order,\n outerLength: outerLength,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n // m3は小数点3桁まで\n m3: calcM3(outerLength, outerWidth, outerHeight)\n };\n });\n return newCs;\n};\nconst extractElements = (elements)=>{\n if (elements == null) return {};\n const extractedElements = elements.reduce((result, e)=>{\n let slug = e.slug;\n if (slug.includes(\".\")) {\n slug = slug.split(\".\")[1];\n }\n result[slug] = e;\n return result;\n }, {});\n if (!extractedElements[\"speciesId\"]) {\n extractedElements[\"speciesId\"] = {\n cutting: null,\n description: null,\n expr: null,\n overwriteValue: null,\n value: null,\n type: \"string\",\n name: \"speciesId\",\n slug: \"\".concat(elements[0].slug.split(\".\")[0], \".speciesId\")\n };\n }\n return extractedElements;\n};\nfunction createCases(product, bom) {\n // PAX-698 暫定措置:外寸の取得元をproductからbomに変更、getCasesからcreateCasesに関数変更\n // 指示書一覧画面からは product、指示書編集画面からはbomで外寸を取得します。\n let outerLength = 0;\n let outerWidth = 0;\n let outerHeight = 0;\n if (bom) {\n var ref, ref1, ref2;\n outerLength = parseFloat((bom === null || bom === void 0 ? void 0 : (ref = bom.product) === null || ref === void 0 ? void 0 : ref.elements.outerLength.value) || \"0\");\n outerWidth = parseFloat((bom === null || bom === void 0 ? void 0 : (ref1 = bom.product) === null || ref1 === void 0 ? void 0 : ref1.elements.outerWidth.value) || \"0\");\n outerHeight = parseFloat((bom === null || bom === void 0 ? void 0 : (ref2 = bom.product) === null || ref2 === void 0 ? void 0 : ref2.elements.outerHeight.value) || \"0\");\n } else {\n var ref3, ref4, ref5;\n const elements = extractElements(product.elements || []);\n outerLength = parseFloat(((ref3 = elements.outerLength) === null || ref3 === void 0 ? void 0 : ref3.value) || \"0\");\n outerWidth = parseFloat(((ref4 = elements.outerWidth) === null || ref4 === void 0 ? void 0 : ref4.value) || \"0\");\n outerHeight = parseFloat(((ref5 = elements.outerHeight) === null || ref5 === void 0 ? void 0 : ref5.value) || \"0\");\n }\n const quantity = product.quantity ? product.quantity.toString() : \"0\"; // デフォルト値を '0' に設定\n var _productNumber;\n const cases = Array.from(Array(parseInt(quantity, 10)).keys()).map((o)=>{\n return {\n order: o + 1,\n name: \"\".concat((_productNumber = product.productNumber) !== null && _productNumber !== void 0 ? _productNumber : product.name, \"-\").concat(o + 1),\n packPhases: product.packPhases || [],\n phaseId: null,\n isPacked: false,\n netWeight: ((product === null || product === void 0 ? void 0 : product.grossWeight) || 0) - ((product === null || product === void 0 ? void 0 : product.tareWeight) || 0),\n grossWeight: 0,\n outerLength: outerLength,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n m3: product === null || product === void 0 ? void 0 : product.m3,\n thumbnail: null,\n managementNumber: null,\n isBilled: false,\n invoiceLineId: null\n };\n });\n return cases;\n}\nconst getUpdatedCaseInputByProductNumber = (products, input)=>{\n var ref;\n const product = products.find((p)=>p.id === input.id);\n const newCs = product === null || product === void 0 ? void 0 : (ref = product.cases) === null || ref === void 0 ? void 0 : ref.map((c, index)=>({\n ...c,\n name: input.productNumber + \"-\" + (index + 1)\n }));\n return newCs;\n};\nconst calcM3 = (outerLength, outerWidth, outerHeight)=>{\n const CM_TO_M3 = 1000000;\n return Math.round(outerLength * outerWidth * outerHeight / CM_TO_M3 * 1000) / 1000;\n};\n// ProductsProviderで同じようなことをしているが、これはある案件内で別の案件の梱包を確認したい場合に使う\nconst getProductsByProjectId = async (projectId)=>{\n const p = (await aws_amplify__WEBPACK_IMPORTED_MODULE_8__/* .API.graphql */ .b.graphql({\n query: graphql_product__WEBPACK_IMPORTED_MODULE_9__/* .getProductsByProjectId */ .Uw,\n variables: {\n id: projectId\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n })).data.productsByProjectId.items;\n return p;\n};\nconst getProductById = async (productId)=>{\n const p = (await aws_amplify__WEBPACK_IMPORTED_MODULE_8__/* .API.graphql */ .b.graphql({\n query: graphql_queries__WEBPACK_IMPORTED_MODULE_10__.getProduct,\n variables: {\n id: productId\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n })).data.getProduct;\n return p;\n};\nconst updateProduct = async (input)=>{\n const product = (await aws_amplify__WEBPACK_IMPORTED_MODULE_8__/* .API.graphql */ .b.graphql({\n query: graphql_mutations__WEBPACK_IMPORTED_MODULE_11__.updateProduct,\n variables: {\n input\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n })).data.updateProduct;\n return product;\n};\n// 指定した梱包にComponent(部材)を追加する\nasync function addComponent(target, order, areaId, productId) {\n const slug = short_uuid__WEBPACK_IMPORTED_MODULE_1___default()().generate().toString();\n const componentId = (0,short_uuid__WEBPACK_IMPORTED_MODULE_1__.uuid)();\n if (target === \"component\") {\n if (!areaId) return;\n const input = {\n id: componentId,\n areaId,\n name: \"新部材\",\n slug,\n order,\n elements: (0,_bom_elements__WEBPACK_IMPORTED_MODULE_2__/* .createEmptyElements */ .nt)(\"component\", slug)\n };\n await aws_amplify__WEBPACK_IMPORTED_MODULE_8__/* .API.graphql */ .b.graphql({\n query: graphql_mutations__WEBPACK_IMPORTED_MODULE_11__.createComponent,\n variables: {\n input: input\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n });\n return;\n }\n if (target === \"exterior\") {\n if (!productId) return;\n const input1 = {\n id: componentId,\n productId,\n name: \"新外装\",\n type: \"EXTERIOR\",\n slug,\n order,\n elements: (0,_bom_elements__WEBPACK_IMPORTED_MODULE_2__/* .createEmptyElements */ .nt)(\"decoration\", slug)\n };\n await aws_amplify__WEBPACK_IMPORTED_MODULE_8__/* .API.graphql */ .b.graphql({\n query: graphql_mutations__WEBPACK_IMPORTED_MODULE_11__.createDecorationComponent,\n variables: {\n input: input1\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n });\n return;\n }\n if (target === \"interior\") {\n if (!productId) return;\n const input2 = {\n id: componentId,\n productId,\n name: \"新内装\",\n type: \"INTERIOR\",\n slug,\n order,\n elements: (0,_bom_elements__WEBPACK_IMPORTED_MODULE_2__/* .createEmptyElements */ .nt)(\"decoration\", slug)\n };\n await aws_amplify__WEBPACK_IMPORTED_MODULE_8__/* .API.graphql */ .b.graphql({\n query: graphql_mutations__WEBPACK_IMPORTED_MODULE_11__.createDecorationComponent,\n variables: {\n input: input2\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n });\n return;\n }\n}\nasync function deleteComponent(target, id) {\n if (target === \"component\") {\n await aws_amplify__WEBPACK_IMPORTED_MODULE_8__/* .API.graphql */ .b.graphql({\n query: graphql_mutations__WEBPACK_IMPORTED_MODULE_11__.deleteComponent,\n variables: {\n input: {\n id\n }\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n });\n return;\n } else {\n await aws_amplify__WEBPACK_IMPORTED_MODULE_8__/* .API.graphql */ .b.graphql({\n query: graphql_mutations__WEBPACK_IMPORTED_MODULE_11__.deleteDecorationComponent,\n variables: {\n input: {\n id\n }\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n });\n return;\n }\n}\n// 指定したareaId以下のcomponentを取得する\nasync function getComponentsByAreaId(areaId) {\n const components = (await aws_amplify__WEBPACK_IMPORTED_MODULE_8__/* .API.graphql */ .b.graphql({\n query: graphql_queries__WEBPACK_IMPORTED_MODULE_10__.componentsByAreaId,\n variables: {\n areaId: areaId\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n })).data.componentsByAreaId.items;\n return components;\n}\nasync function addArea(productId, order) {\n const input = {\n id: (0,short_uuid__WEBPACK_IMPORTED_MODULE_1__.uuid)(),\n productId,\n name: \"新区分\",\n order,\n areaType: \"COMPONENT\"\n };\n const areaId = (await aws_amplify__WEBPACK_IMPORTED_MODULE_8__/* .API.graphql */ .b.graphql({\n query: graphql_mutations__WEBPACK_IMPORTED_MODULE_11__.createArea,\n variables: {\n input: input\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n })).data.createArea.id;\n return areaId;\n}\nasync function deleteArea(id) {\n await aws_amplify__WEBPACK_IMPORTED_MODULE_8__/* .API.graphql */ .b.graphql({\n query: graphql_mutations__WEBPACK_IMPORTED_MODULE_11__.deleteArea,\n variables: {\n input: {\n id\n }\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n });\n}\n// 数字に,を入れていく(3桁ごと)\nfunction addCommaToNum(target) {\n try {\n const num = parseInt(target, 10);\n if (isNaN(num)) return null;\n return num.toLocaleString(); // 3桁ごとにカンマ入れる\n } catch (e) {\n return null;\n }\n}\nconst updateCaseWithOptimisticLock = async (input)=>{\n try {\n const res = await aws_amplify__WEBPACK_IMPORTED_MODULE_8__/* .API.graphql */ .b.graphql({\n query: graphql_mutations__WEBPACK_IMPORTED_MODULE_11__.updateCaseWithOptimisticLock,\n variables: {\n input\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n });\n if (res.errors) {\n throw new Error(res.errors);\n }\n return res.data.updateCaseWithOptimisticLock;\n } catch (err) {\n throw new _error__WEBPACK_IMPORTED_MODULE_3__/* .CustomError */ .s(err, \"update\");\n }\n};\nconst checkCaseVersion = async (input)=>{\n try {\n const res = await aws_amplify__WEBPACK_IMPORTED_MODULE_8__/* .API.graphql */ .b.graphql({\n query: graphql_queries__WEBPACK_IMPORTED_MODULE_10__.checkCaseVersion,\n variables: {\n input\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n });\n if (res.errors) {\n throw new Error(res.errors);\n }\n return res.data.checkCaseVersion;\n } catch (err) {\n throw new _error__WEBPACK_IMPORTED_MODULE_3__/* .CustomError */ .s(err, \"get\");\n }\n};\n\n\n/***/ }),\n\n/***/ 11:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"$Y\": function() { return /* binding */ sortSummariesBySummaryOrder; },\n/* harmony export */ \"DC\": function() { return /* binding */ convertProductSummariesFilterToCache; },\n/* harmony export */ \"Ot\": function() { return /* binding */ defaultProductSummariesFilter; },\n/* harmony export */ \"P2\": function() { return /* binding */ makeSummaryOrderMapping; },\n/* harmony export */ \"kJ\": function() { return /* binding */ summaryOrderMappingToCaseInput; },\n/* harmony export */ \"lB\": function() { return /* binding */ makeProductSummaryId; }\n/* harmony export */ });\n/* unused harmony exports isProductSummariesFilterCache, splitProductSummaryId */\nconst defaultProductSummariesFilter = {\n includeIncompleteProduct: false,\n includeBilledProduct: true,\n scheduleIds: undefined\n};\nconst convertProductSummariesFilterToCache = (filter)=>{\n if (isProductSummariesFilterCache(filter)) {\n return filter;\n }\n // プロパティがない場合はデフォルトの値を使う\n const result = {\n ...defaultProductSummariesFilter\n };\n // プロパティがある場合のみその値で上書きする => 結果的にプロパティがないものはデフォルトの値が使われる\n Object.keys(filter).forEach((key)=>{\n if (filter[key] !== undefined) {\n result[key] = filter[key];\n }\n });\n return result;\n};\nconst isProductSummariesFilterCache = (filter)=>{\n return typeof filter.includeIncompleteProduct === \"boolean\" && typeof filter.includeBilledProduct === \"boolean\" && // {scheduleIds: undefined}と{}(プロパティが存在しない)を区別する\n \"scheduleIds\" in filter && (filter.scheduleIds === undefined || Array.isArray(filter.scheduleIds));\n};\nconst sortSummariesBySummaryOrder = (summaries)=>{\n // 1. order(default: 9999)で昇順に並べる\n // 2. (order が同じなら)productOrderで昇順に並べる\n // 3. (productOrder が同じなら)caseOrderで昇順に並べる\n // 4. (基本ないはずだが、caseOrder が同じなら)そのままの並びとする\n summaries.sort((a, b)=>{\n const orderA = a.order !== undefined ? a.order : 9999;\n const orderB = b.order !== undefined ? b.order : 9999;\n if (orderA !== orderB) {\n return orderA - orderB;\n }\n if (a.productOrder !== b.productOrder) {\n return a.productOrder - b.productOrder;\n }\n if (a.caseOrder !== b.caseOrder) {\n return a.caseOrder - b.caseOrder;\n }\n return 0;\n });\n return summaries;\n};\n/**\n * ProductSummaryの配列からproductIdとcaseOrderをキーとしてorderを取得する\n * このmappingは並び替え機能が一々APIを叩かなくてもできるようにするために使われる(メモリ上の更新)\n * @param data ProductSummaryの配列\n * @returns { [key: string]: number } productIdとcaseOrderをキーとしてorderを取得するmapping\n */ const makeSummaryOrderMapping = (data)=>{\n if (!(data === null || data === void 0 ? void 0 : data.length) || data.length === 0) {\n return {};\n }\n const mapping = {};\n data.forEach((summary)=>{\n mapping[\"\".concat(summary.productId, \"|\").concat(summary.caseOrder)] = summary.order;\n });\n return mapping;\n};\n/**\n * mappingをproductIdとcaseOrderに分割しCaseのsummaryOrderを更新するためのinputにする\n * @param mappings productIdとcaseOrderをキーとしたorderのmapping\n * @returns summaryOrderを更新するためのinput, productIdごとにまとめられている\n */ const summaryOrderMappingToCaseInput = (mappings)=>{\n const caseInputs = [];\n Object.keys(mappings).forEach((key)=>{\n const [productId, caseOrder] = key.split(\"|\");\n const order = mappings[key];\n // ProductSummaryのOrderはCaseではsummaryOrderとして扱われる\n const caseInput = {\n order: parseInt(caseOrder, 10),\n summaryOrder: order\n };\n const target = caseInputs.find((c)=>c.productId === productId);\n if (target) {\n target.caseInputs.push(caseInput);\n } else {\n caseInputs.push({\n productId,\n caseInputs: [\n caseInput\n ]\n });\n }\n });\n return caseInputs;\n};\n/**\n * ProductSummaryのIDを作成する(`${productId}|${caseOrder}`)\n * @param p 対象のProductSummary\n * @returns ID\n */ const makeProductSummaryId = (p)=>{\n return \"\".concat(p.productId, \"|\").concat(p.caseOrder);\n};\n/**\n * productSummaryのIDからproductIdとcaseOrderを取得する\n * @param id productSummaryのID\n * @returns productIdとcaseOrder\n */ const splitProductSummaryId = (id)=>{\n const [productId, caseOrder] = id.split(\"|\");\n return {\n productId,\n caseOrder: parseInt(caseOrder, 10)\n };\n};\n\n\n/***/ }),\n\n/***/ 25180:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ao\": function() { return /* binding */ updateProjectWithOptimisticLock; },\n/* harmony export */ \"co\": function() { return /* binding */ RedirectTypes; },\n/* harmony export */ \"eK\": function() { return /* binding */ isSharedProduct; },\n/* harmony export */ \"m\": function() { return /* binding */ getProjectTypeName; }\n/* harmony export */ });\n/* harmony import */ var aws_amplify__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(10552);\n/* harmony import */ var _image__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(77325);\n/* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(78191);\n/* harmony import */ var graphql_mutations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23765);\n\n\n\n\nfunction getProjectTypeName(type) {\n switch(type){\n case \"PACK\":\n return \"梱包\";\n case \"OTHER\":\n return \"その他\";\n default:\n return \"梱包\";\n }\n}\nvar RedirectTypes;\n(function(RedirectTypes) {\n RedirectTypes[\"schedules\"] = \"schedules\";\n})(RedirectTypes || (RedirectTypes = {}));\n/**\n * 案件の公開している画像に対象の梱包のものが含まれるか確認する\n * @param project 案件\n * @param productId 梱包ID\n * @returns 梱包の画像が含まれる場合はtrue\n */ function isSharedProduct(project, productId) {\n return project && project.externalSharedImageKeys && project.externalSharedImageKeys.some((key)=>key && (0,_image__WEBPACK_IMPORTED_MODULE_0__/* .isProductCaseKey */ .WK)(key, productId));\n}\nconst updateProjectWithOptimisticLock = async (input)=>{\n try {\n const res = await aws_amplify__WEBPACK_IMPORTED_MODULE_2__/* .API.graphql */ .b.graphql({\n query: graphql_mutations__WEBPACK_IMPORTED_MODULE_3__.updateProjectWithOptimisticLock,\n variables: {\n input\n },\n authMode: \"AMAZON_COGNITO_USER_POOLS\"\n });\n if (res.errors) {\n throw new Error(res.errors);\n }\n return res.data.updateProjectWithOptimisticLock;\n } catch (err) {\n throw new _error__WEBPACK_IMPORTED_MODULE_1__/* .CustomError */ .s(err, \"update\");\n }\n};\n\n\n/***/ }),\n\n/***/ 55080:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"N6\": function() { return /* binding */ diffContainerMasters; },\n/* harmony export */ \"NE\": function() { return /* binding */ DEFAULT_ORIENTATION; },\n/* harmony export */ \"PU\": function() { return /* binding */ createContainerInfos; },\n/* harmony export */ \"Vs\": function() { return /* binding */ ORIENTATIONS; },\n/* harmony export */ \"Xr\": function() { return /* binding */ groupsContainerMastersToContainerMasters; },\n/* harmony export */ \"fx\": function() { return /* binding */ containerMastersToSelectableListItems; },\n/* harmony export */ \"sJ\": function() { return /* binding */ groupsContainerMastersToSelectableListItems; }\n/* harmony export */ });\n/* harmony import */ var _productSummary__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);\n\n// 回転方向用の定数\nconst DEFAULT_ORIENTATION = {\n label: \"LW回転\",\n value: \"LW_ROTATE\"\n};\nconst ORIENTATIONS = [\n DEFAULT_ORIENTATION,\n {\n label: \"長さ方向固定\",\n value: \"L_LOCK\"\n },\n {\n label: \"幅方向固定\",\n value: \"W_LOCK\"\n },\n {\n label: \"全面回転可\",\n value: \"ALL_ROTATE\"\n }\n];\n/**\n * バンプラン作成用のコンテナ情報を作成する\n * 基本的にはproductSummariesから作成するが、以前の情報がある場合はそれを利用する\n * またnotStackable以降について以前の情報がない場合は、groupから取得する\n * @param productSummaries ProductSummaries\n * @param beforeInfoList 以前のコンテナ情報(Wizard遷移などで以前の情報がある場合がある)\n * @param group 所属する事業所\n * @returns 今回利用するコンテナ情報\n */ const createContainerInfos = (productSummaries, beforeInfoList, group)=>{\n const containerInfo = productSummaries.map((productSummary, index)=>{\n const before = beforeInfoList.find((beforeInfo)=>beforeInfo.productSummaryId === (0,_productSummary__WEBPACK_IMPORTED_MODULE_0__/* .makeProductSummaryId */ .lB)(productSummary));\n var _cn, ref, ref1, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9;\n // notStackable, bottomOnly, maxStacking, orientationについては以前の情報があればそれを利用する、なければgroupから取得する\n // その他の値はproductSummaryから取得する\n return {\n cn: (_cn = productSummary.cn) !== null && _cn !== void 0 ? _cn : index + 1,\n productSummaryId: (0,_productSummary__WEBPACK_IMPORTED_MODULE_0__/* .makeProductSummaryId */ .lB)(productSummary),\n productSummaryName: productSummary.name,\n order: productSummary.order,\n productOrder: productSummary.productOrder,\n caseOrder: productSummary.caseOrder,\n productName: productSummary.productName,\n managementNumber: productSummary.managementNumber,\n pricingId: productSummary.pricingId,\n grossWeight: productSummary.grossWeight,\n outerHeight: productSummary.outerHeight,\n outerLength: productSummary.outerLength,\n outerWidth: productSummary.outerWidth,\n notStackable: (ref1 = (ref = before === null || before === void 0 ? void 0 : before.notStackable) !== null && ref !== void 0 ? ref : group.notStackable) !== null && ref1 !== void 0 ? ref1 : false,\n bottomOnly: (ref3 = (ref2 = before === null || before === void 0 ? void 0 : before.bottomOnly) !== null && ref2 !== void 0 ? ref2 : group.bottomOnly) !== null && ref3 !== void 0 ? ref3 : false,\n maxStacking: (ref5 = (ref4 = before === null || before === void 0 ? void 0 : before.maxStacking) !== null && ref4 !== void 0 ? ref4 : group.maxStacking) !== null && ref5 !== void 0 ? ref5 : null,\n orientation: (ref7 = (ref6 = before === null || before === void 0 ? void 0 : before.orientation) !== null && ref6 !== void 0 ? ref6 : group.orientation) !== null && ref7 !== void 0 ? ref7 : DEFAULT_ORIENTATION.value,\n casePriority: (ref8 = before === null || before === void 0 ? void 0 : before.casePriority) !== null && ref8 !== void 0 ? ref8 : 1,\n shipmentId: (ref9 = before === null || before === void 0 ? void 0 : before.shipmentId) !== null && ref9 !== void 0 ? ref9 : null\n };\n });\n return containerInfo;\n};\n/**\n * コンテナマスタと事業所の関連情報をコンテナマスタに変換する関数\n * @param groupsContainerMasters コンテナマスタと事業所の関連情報\n * @param activeOnly activeのもののみにする\n * @returns コンテナマスタ\n */ const groupsContainerMastersToContainerMasters = function(groupsContainerMasters) {\n let activeOnly = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;\n return groupsContainerMasters.filter((containerMaster)=>{\n return containerMaster === null || containerMaster === void 0 ? void 0 : containerMaster.containerMaster;\n }).filter((containerMaster)=>{\n var ref;\n return !activeOnly || (containerMaster === null || containerMaster === void 0 ? void 0 : (ref = containerMaster.containerMaster) === null || ref === void 0 ? void 0 : ref.active);\n }).map((groupContainerMaster)=>{\n const cm = groupContainerMaster === null || groupContainerMaster === void 0 ? void 0 : groupContainerMaster.containerMaster;\n var ref, ref1;\n return {\n ...cm,\n // 順番についてはgroup内での順番を利用する\n order: (ref1 = (ref = groupContainerMaster === null || groupContainerMaster === void 0 ? void 0 : groupContainerMaster.order) !== null && ref !== void 0 ? ref : cm === null || cm === void 0 ? void 0 : cm.order) !== null && ref1 !== void 0 ? ref1 : 999\n };\n });\n};\n/**\n * コンテナマスタと事業所の関連情報をSelectableListで利用できる形式に変換する関数\n * @param groupsContainerMasters コンテナマスタと事業所の関連情報\n * @param activeOnly activeのもののみにする\n * @returns SelectableListで利用できるような形式に変換したコンテナマスタ\n */ const groupsContainerMastersToSelectableListItems = function(groupsContainerMasters) {\n let activeOnly = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;\n return groupsContainerMasters.filter((containerMaster)=>containerMaster !== null).filter((containerMaster)=>{\n var ref;\n return !activeOnly || (containerMaster === null || containerMaster === void 0 ? void 0 : (ref = containerMaster.containerMaster) === null || ref === void 0 ? void 0 : ref.active);\n }).map((containerMaster)=>{\n var ref, ref1;\n var ref2, ref3, ref4;\n return {\n id: (ref2 = containerMaster === null || containerMaster === void 0 ? void 0 : (ref = containerMaster.containerMaster) === null || ref === void 0 ? void 0 : ref.id) !== null && ref2 !== void 0 ? ref2 : \"\",\n name: (ref3 = containerMaster === null || containerMaster === void 0 ? void 0 : (ref1 = containerMaster.containerMaster) === null || ref1 === void 0 ? void 0 : ref1.name) !== null && ref3 !== void 0 ? ref3 : \"\",\n order: (ref4 = containerMaster === null || containerMaster === void 0 ? void 0 : containerMaster.order) !== null && ref4 !== void 0 ? ref4 : 999\n };\n });\n};\n/**\n * コンテナマスタ情報の選択用の変換関数\n * @param containerMasters コンテナマスタ情報\n * @param activeOnly activeのもののみにする\n * @returns SelectableListで利用できるような形式に変換したコンテナマスタ\n */ const containerMastersToSelectableListItems = function(containerMasters) {\n let activeOnly = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;\n return containerMasters.filter((c)=>!activeOnly || c.active).map((containerMaster)=>{\n var ref, ref1, ref2;\n return {\n id: (ref = containerMaster === null || containerMaster === void 0 ? void 0 : containerMaster.id) !== null && ref !== void 0 ? ref : \"\",\n name: (ref1 = containerMaster === null || containerMaster === void 0 ? void 0 : containerMaster.name) !== null && ref1 !== void 0 ? ref1 : \"\",\n order: (ref2 = containerMaster === null || containerMaster === void 0 ? void 0 : containerMaster.order) !== null && ref2 !== void 0 ? ref2 : 999\n };\n });\n};\n/**\n * group.mainContainerMastersと現状の選択されたcontainerMastersを比較し削除、追加、更新の情報を返す\n * @param group group情報\n * @param selectedContainerMasters 選択されたcontainerMasters\n * @returns 削除、追加、更新の情報\n */ const diffContainerMasters = (group, selectedContainerMasters)=>{\n var ref;\n if (!group.mainContainerMasters) return {\n deleted: [],\n added: [],\n updated: []\n };\n var ref1;\n const currentContainerMasters = (ref1 = (ref = group.mainContainerMasters) === null || ref === void 0 ? void 0 : ref.items) !== null && ref1 !== void 0 ? ref1 : [];\n var ref2;\n // mainContainerMastersにあって、選択済になかったら削除\n const deleted = currentContainerMasters.filter((c)=>{\n return !selectedContainerMasters.find((sc)=>{\n return c && sc.id === (c === null || c === void 0 ? void 0 : c.id);\n });\n }).map((c)=>{\n return {\n id: (ref2 = c === null || c === void 0 ? void 0 : c.id) !== null && ref2 !== void 0 ? ref2 : \"\"\n };\n });\n // 選択済にあって、mainContainerMastersになかったら追加\n const added = selectedContainerMasters.filter((sc)=>{\n return !currentContainerMasters.find((c)=>{\n return c && (c === null || c === void 0 ? void 0 : c.id) === sc.id;\n });\n }).map((sc)=>({\n containerMasterId: sc.id,\n groupId: group.id,\n order: sc.order\n }));\n // containerMasterIdが一致しててorderが異なる場合は更新\n const updated = selectedContainerMasters.filter((sc)=>{\n return currentContainerMasters.find((c)=>{\n return (c === null || c === void 0 ? void 0 : c.id) === sc.id && (c === null || c === void 0 ? void 0 : c.order) !== sc.order;\n });\n }).map((sc)=>{\n const c = currentContainerMasters.find((c)=>{\n return (c === null || c === void 0 ? void 0 : c.id) === sc.id;\n });\n var ref;\n return {\n id: (ref = c === null || c === void 0 ? void 0 : c.id) !== null && ref !== void 0 ? ref : \"\",\n order: sc.order\n };\n });\n return {\n deleted,\n added,\n updated\n };\n};\n\n\n/***/ }),\n\n/***/ 790:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"D0\": function() { return /* binding */ getVanplanCompletionRate; },\n/* harmony export */ \"RV\": function() { return /* binding */ LABEL_FIELDS; },\n/* harmony export */ \"hU\": function() { return /* binding */ containerMasterInfo; },\n/* harmony export */ \"me\": function() { return /* binding */ DEFAULT_LABEL_FIELD; },\n/* harmony export */ \"oT\": function() { return /* binding */ summarizeContainer; }\n/* harmony export */ });\n// ラベルに利用するField用の定数\nconst DEFAULT_LABEL_FIELD = {\n label: \"C/N\",\n value: \"cn\"\n};\nconst LABEL_FIELDS = [\n DEFAULT_LABEL_FIELD,\n {\n label: \"指示書No\",\n value: \"productSummaryName\"\n },\n {\n label: \"品名\",\n value: \"productName\"\n },\n {\n label: \"管理No\",\n value: \"managementNumber\"\n }\n];\n/**\n * バンプラン以下のcontainerの完了率を取得する\n * @param vanplan 対象のバンプラン\n * @returns 完了率\n */ const getVanplanCompletionRate = (vanplan)=>{\n if (!vanplan || !vanplan.containers || vanplan.containers.items.length === 0) return 0;\n let shippedContainers = 0;\n vanplan.containers.items.forEach((c)=>{\n if (!c) return;\n if (!c.shipCompleted) return;\n shippedContainers += 1;\n });\n return shippedContainers / vanplan.containers.items.length;\n};\n/**\n * バンプラン以下のContainerのMasterの情報を文字列にして返す\n * xの形式で表示する\n * @param vanplan 対象のバンプラン\n * @returns label: 表示用の文字列, context: すべてのcontainerMasterを表示する文字列\n */ const containerMasterInfo = (vanplan)=>{\n var ref;\n // containerが存在しない場合は空文字を返す\n if (!((ref = vanplan.containers) === null || ref === void 0 ? void 0 : ref.items)) return {\n label: \"\",\n context: \"\"\n };\n // containerMasterの種類ごとにカウントする\n const containerMasterCount = vanplan.containers.items.reduce((acc, container)=>{\n var ref;\n const containerMaster = container === null || container === void 0 ? void 0 : container.containerMaster;\n if (!containerMaster) return acc;\n const name = containerMaster.name;\n const count = ((ref = acc.get(name)) === null || ref === void 0 ? void 0 : ref.count) || 0;\n var _order;\n acc.set(name, {\n count: count + 1,\n order: (_order = containerMaster.order) !== null && _order !== void 0 ? _order : 0\n });\n return acc;\n }, new Map());\n // orderでソート\n const sortedContainerMaster = Array.from(containerMasterCount.entries()).sort((param, param1)=>{\n let [, a] = param, [, b] = param1;\n return a.order - b.order;\n });\n // context用にすべてのcontainerMasterを表示する文字列作成(カンマで連結)\n const context = sortedContainerMaster.map((param)=>{\n let [name, { count }] = param;\n return \"\".concat(name, \"x\").concat(count);\n }).join(\", \");\n // 表示用の文字列作成(Namexcountをカンマで連結するが2セットごとに改行、4種類以降は...にする)\n const label = sortedContainerMaster.filter((_, index)=>index < 4).map((param, index)=>{\n let [name, { count }] = param;\n return \"\".concat(name, \"x\").concat(count).concat(index % 2 === 1 ? \"\\n\" : \",\");\n }).join(\"\").slice(0, -1) + (sortedContainerMaster.length > 4 ? \"...\" : \"\");\n // labelとcontextを結合して返す\n return {\n label,\n context\n };\n};\n/**\n * Containerのm3, weight, ケース個数を合算して返す\n * @param vanplan 対象のバンプラン\n * @returns caseQuantity: ケースの個数, m3: m3の合計, weight: 重量の合計\n */ const summarizeContainer = (vanplan)=>{\n var ref;\n // containerが存在しない場合は空文字を返す\n if (!((ref = vanplan.containers) === null || ref === void 0 ? void 0 : ref.items)) return {\n caseQuantity: \"\",\n m3: \"\",\n weight: \"\"\n };\n // containerの情報を合算する\n const caseQuantity = vanplan.containers.items.reduce((acc, container)=>{\n var ref;\n return acc + ((ref = container === null || container === void 0 ? void 0 : container.caseQuantity) !== null && ref !== void 0 ? ref : 0);\n }, 0);\n const m3 = vanplan.containers.items.reduce((acc, container)=>{\n var ref;\n return acc + ((ref = container === null || container === void 0 ? void 0 : container.m3) !== null && ref !== void 0 ? ref : 0);\n }, 0);\n const weight = vanplan.containers.items.reduce((acc, container)=>{\n var ref;\n return acc + ((ref = container === null || container === void 0 ? void 0 : container.weight) !== null && ref !== void 0 ? ref : 0);\n }, 0);\n return {\n caseQuantity: caseQuantity.toString(),\n m3: (Math.round(m3 * 1000) / 1000).toString(),\n weight: weight.toString()\n };\n};\n\n\n/***/ })\n\n}]);"],"names":["self","push","__unused_webpack_module","__webpack_exports__","__webpack_require__","d","GroupProvider","useGroup","jsx_runtime","react","API","auth","alerts","hooks_data","error","mutations","updatePackPhaseWithOptimisticLock","input","res","b","graphql","query","variables","authMode","errors","data","err","s","updateGroupWithOptimisticLock","container","GroupContext","createContext","group","undefined","users","loading","update","updateMainContainerMasters","Promise","resolve","refetch","set","children","param","currentGroup","a","addAlert","Z","setUsers","useState","object","id","useEffect","items","setPackPhase","newPackPhases","packPhases","index","findIndex","p","packPhase","newGroup","updateGroup","version","message","severity","updatePackPhase","selected","deleted","added","updated","N6","promises","length","deleteGroupsContainerMasters","createGroupsContainerMasters","u","updateGroupsContainerMasters","all","values","useMemo","jsx","Provider","value","groupContext","useContext","InvoicesProvider","useInvoices","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","react__WEBPACK_IMPORTED_MODULE_1__","aws_amplify__WEBPACK_IMPORTED_MODULE_11__","aws_amplify__WEBPACK_IMPORTED_MODULE_12__","next_router__WEBPACK_IMPORTED_MODULE_2__","_products__WEBPACK_IMPORTED_MODULE_3__","hooks_datalist__WEBPACK_IMPORTED_MODULE_4__","contexts_project__WEBPACK_IMPORTED_MODULE_5__","contexts_alerts__WEBPACK_IMPORTED_MODULE_6__","contexts_dialog__WEBPACK_IMPORTED_MODULE_7__","contexts_auth__WEBPACK_IMPORTED_MODULE_8__","contexts_group__WEBPACK_IMPORTED_MODULE_9__","utils_invoice__WEBPACK_IMPORTED_MODULE_10__","graphql_queries__WEBPACK_IMPORTED_MODULE_13__","InvoicesContext","invoices","productSummariesForInvoice","productSummariesLoading","lastUpdatedAt","create","importWithDeleting","importWithoutDeleting","export","remove","fetchProductSummaries","isInvoice","projectId","name","project","P","sort","order","Date","createdAt","getTime","defaultProductSummariesFilter","includeIncompleteProduct","includeBilledProduct","scheduleIds","productSummaries","setProductSummaries","productSummariesLoadingData","setProductSummariesLoadingData","filter","arguments","wT","productSummariesByProjectId","productOrder","open","R","products","updateProduct","refetchProduct","r","setSnooze","user","_","setLastUpdatedAt","router","useRouter","createInvoice","ref","ref1","Bl","invoiceNo","issueDate","billingDate","recordingDate","tenant","host","url","concat","removeInvoice","title","content","okText","onOk","invoice","find","invoiceLineIds","invoiceLines","map","line","productUpdatePromises","product","cases","c","invoiceLineId","includes","isBilled","progress","force","updateInvoice","importInvoiceDataWithDeleting","productCases","withDeletion","includeOtherQuoteLines","now","toLocaleString","importInvoiceDataWithoutDeleting","exportInvoiceData","invoicesContext","MaterialTypesProvider","useMaterialTypes","_auth__WEBPACK_IMPORTED_MODULE_2__","hooks_datalist__WEBPACK_IMPORTED_MODULE_3__","contexts_dialog__WEBPACK_IMPORTED_MODULE_4__","contexts_alerts__WEBPACK_IMPORTED_MODULE_5__","MaterialTypesContext","materialTypes","packagingMaterialTypes","secondaryMaterialTypes","nextToken","appendNext","groupId","width","height","localeCompare","fetchingNext","setFetchingNext","finally","createMaterialType","updatedAt","materials","customFields","forEach","__typename","updateMaterialType","removeMaterialType","ids","type","materialTypesContext","MaterialsProvider","useMaterials","_materialTypes__WEBPACK_IMPORTED_MODULE_3__","contexts_dialog__WEBPACK_IMPORTED_MODULE_5__","utils_material__WEBPACK_IMPORTED_MODULE_7__","MaterialsContext","allMaterials","packagingMaterials","secondaryMaterials","W","materialType","isWood","refBhhFace","refBhhEdge","CS","widthNominal","heightNominal","createMaterial","t","materialTypeId","updateMaterial","material","m","removeMaterial","active","materialsContext","ProductsProvider","useProducts","use_deep_compare_effect__WEBPACK_IMPORTED_MODULE_1__","react__WEBPACK_IMPORTED_MODULE_2__","lodash__WEBPACK_IMPORTED_MODULE_3__","lodash__WEBPACK_IMPORTED_MODULE_3___default","n","next_router__WEBPACK_IMPORTED_MODULE_4__","_materials__WEBPACK_IMPORTED_MODULE_5__","_species__WEBPACK_IMPORTED_MODULE_6__","_auth__WEBPACK_IMPORTED_MODULE_7__","hooks_datalist__WEBPACK_IMPORTED_MODULE_8__","contexts_project__WEBPACK_IMPORTED_MODULE_9__","contexts_dialog__WEBPACK_IMPORTED_MODULE_10__","utils_product__WEBPACK_IMPORTED_MODULE_11__","utils_bom__WEBPACK_IMPORTED_MODULE_12__","utils_project__WEBPACK_IMPORTED_MODULE_13__","utils_image__WEBPACK_IMPORTED_MODULE_14__","ProductsContext","creating","copying","createNonPack","copy","updateToPending","link","unlink","isProduct","by","setCopying","ZP","updateProject","updateExternalSharedImageKeys","isShared","f","species","isCreatingProductRef","useRef","createProduct","current","orderMax","maxBy","productId","Z1","isCreatingNonPackroductRef","createNonPackProduct","packageTypeId","packageTypeName","copyProduct","productNumber","lB","setProduct","updatedData","refetchFuncs","eK","excludeKeys","externalSharedImageKeys","key","WK","readyToPack","func","removeProduct","linkProductToQuoteLine","quoteLineId","unlinkProductFromQuoteLine","options","productsContext","useProject","ProjectProvider","short_uuid__WEBPACK_IMPORTED_MODULE_2__","use_deep_compare_effect__WEBPACK_IMPORTED_MODULE_3__","next_link__WEBPACK_IMPORTED_MODULE_4__","next_link__WEBPACK_IMPORTED_MODULE_4___default","_mui_material__WEBPACK_IMPORTED_MODULE_14__","_tanstack_react_query__WEBPACK_IMPORTED_MODULE_13__","aws_amplify__WEBPACK_IMPORTED_MODULE_15__","lodash__WEBPACK_IMPORTED_MODULE_5__","lodash__WEBPACK_IMPORTED_MODULE_5___default","graphql_mutations__WEBPACK_IMPORTED_MODULE_16__","hooks_data__WEBPACK_IMPORTED_MODULE_6__","contexts_alerts__WEBPACK_IMPORTED_MODULE_8__","contexts_auth__WEBPACK_IMPORTED_MODULE_9__","utils_image__WEBPACK_IMPORTED_MODULE_10__","utils_project__WEBPACK_IMPORTED_MODULE_11__","utils_error__WEBPACK_IMPORTED_MODULE_12__","getAccessLevel","userId","managerId","quoterId","operatorId","ProjectContext","access","updateProjectWithOptimisticLock","updatePhotoPhases","generateExternalInfo","setAccess","queryClient","NL","externalShareUrl","externalSharePassword","externalShareEnabled","F_","removeProject","invalidateQueries","queryKey","ao","photoPhases","slice","phaseExists","reduce","result","splice","uuid","userHasAccess","groups","jsxs","role","className","href","variant","generateExternalShareInfo","shareImageKeys","excludeImageKeys","alreadySharedImageKeys","addKeys","IP","delKeys","newSharedImages","difference","addedImageKeys","removedImageKeys","customVariables","projectContext","QuotesProvider","useQuotes","use_deep_compare_effect__WEBPACK_IMPORTED_MODULE_2__","next_router__WEBPACK_IMPORTED_MODULE_3__","contexts_dialog__WEBPACK_IMPORTED_MODULE_6__","isQuote","QuotesContext","quotes","createQuote","removeQuote","copyQuote","quoteId","quoteNumber","refetchQuotes","quotesContext","SpeciesProvider","useSpecies","SpeciesContext","createSpecies","updateSpecies","removeSpecies","speciesContext","useTenant","TenantProvider","hooks_data__WEBPACK_IMPORTED_MODULE_3__","TenantContext","tenantId","updateTenant","tenantContext","useVanplans","VanplansProvider","_project__WEBPACK_IMPORTED_MODULE_2__","VanplansContext","vanplans","createAll","createVanplan","vanplanId","updateVanplan","removeVanplan","deleteInput","refetchVanplans","vanplansContext","getProductsByProjectId","getAllProduct","accountsByTenantId","areasByProductId","areasByQuoteProductId","baseAreasByPackageTypeId","baseComponentsByBaseAreaId","baseDecorationComponentsByPackageTypeId","checkCaseVersion","clientsByAccountId","componentsByAreaId","contactsByAccountId","contactsByTenantId","containerMastersByGroupId","containersByContainerMasterId","containersByScheduleId","containersByVanplanId","decorationComponentsByProductId","decorationComponentsByQuoteProductId","downloadContainerMasterPreset","getAccessLog","getAccount","getArea","getBaseArea","getBaseComponent","getBaseDecorationComponent","getClient","getComponent","getContact","getContainer","getContainerMaster","getContainerMasterPreset","getDecorationComponent","getGroup","getGroupReport","getHoliday","getInvoice","getInvoiceLine","getMaterial","getMaterialType","getMetaTable","getPackageBom","getPackageType","getPriceType","getPricing","getProduct","getProductBom","getProject","getProjectCategory","getPurchasing","getQuote","getQuoteLine","getQuoteProduct","getReport","getReportTemplate","getSFObject","getSchedule","getSpecies","getSummary","getSyncLog","getTenant","getUnit","getUser","getUsersTenants","getVanplan","getVendor","groupReportsByGroupId","groupsByMainContainerMasterId","groupsByTenantId","groupsByUserId","holidaysByGroupId","invoiceLinesByInvoiceId","invoicesByGroupAndBillingDate","invoicesByGroupAndIssueDate","invoicesByGroupAndRecordingDate","invoicesByProjectId","legacyUsersByTenantId","listAccessLogs","listAccounts","listAreas","listBaseAreas","listBaseComponents","listBaseDecorationComponents","listClients","listComponents","listContacts","listContainerMasterPresets","listContainerMasters","listContainers","listDecorationComponents","listGroupReports","listGroups","listHolidays","listInvoiceLines","listInvoices","listMaterialTypes","listMaterials","listMetaTables","listPackageTypes","listPriceTypes","listPricings","listProducts","listProjectCategories","listProjects","listPurchasings","listQuoteLines","listQuoteProducts","listQuotes","listReportTemplates","listReports","listSFFieldsBySFObject","listSFObjectNames","listSFObjects","listSchedules","listSpecies","listSummaries","listSummarizedInvoices","listSummarizedMaterials","listSyncLogs","listTenants","listUnits","listUsers","listUsersTenants","listVanplans","listVendors","mainContainerMastersByGroupId","materialTypesByGroupId","materialsByGroupId","materialsBySpeciesId","materialsByTypeId","materialsByVendorId","metaTableByName","packageTypesByGroupId","packageTypesByPricingId","priceTypesByGroupId","pricingsByGroupId","pricingsByTypeId","productsByPackageTypeId","productsByProjectId","productsByScheduleId","projectCategoriesByGroupId","projectsByAccountId","projectsByCategoryId","projectsByContactId","projectsByGroupId","projectsByGroupIdForManager","projectsByGroupIdForMobile","projectsByUserId","purchasingsByGroupId","purchasingsByMaterialId","purchasingsByVendorId","quoteLinesByQuoteId","quoteProductsByPackageTypeId","quoteProductsByProjectId","quoteSummariesByQuoteId","quotesByProjectId","reportProjects","reportsByGroupId","reportsByProjectId","sFObjectByTenantIdAndName","sFObjectsByTenantId","schedulesByProjectId","signInExternalSharePage","speciesByGroupId","summariesByProjectId","syncLogsBySFObject","tenantsByUserId","testSync","unitsByTenantId","usersByEmail","usersByGroupId","usersByTenantId","vanplansByProjectId","vanplansByScheduleId","vendorsByMaterialId","vendorsByTenantId","verifyExternalShareAccessToken","useData","react__WEBPACK_IMPORTED_MODULE_0__","lodash__WEBPACK_IMPORTED_MODULE_1__","lodash__WEBPACK_IMPORTED_MODULE_1___default","aws_amplify__WEBPACK_IMPORTED_MODULE_3__","graphql_queries__WEBPACK_IMPORTED_MODULE_4__","graphql_mutations__WEBPACK_IMPORTED_MODULE_5__","contexts_alerts__WEBPACK_IMPORTED_MODULE_2__","initialState","updating","loadNext","reducer","state","action","payload","cap","str","toUpperCase","substring","loadOptions","dispatch","useReducer","getData","gqlVariables","get","Error","mutation","useDatalist","removing","newData","appendData","allData","appendedData","some","targetIdx","deleting","setCustomVariables","loadData","dbOnly","AdminLayout","HomeLayout","ProjectLayout","createTheme","ThemeProvider","CssBaseline","Box","Toolbar","jaJP","locales_jaJP","locale","next_router","IconButton","Settings","Tooltip","next_link","link_default","AppBar","Typography","QuestionMark","QrCodeScanner","Menu","AccountCircle","constant","Dialog","Close","Slide","qr_scanner_min","Transition","forwardRef","props","direction","QrReader","setOpen","scanner","setScanner","handleClose","stop","startScan","useCallback","videoRef","qrScanner","JSON","parse","case","e","highlightScanRegion","highlightCodeOutline","start","fullScreen","onClose","TransitionComponent","sx","position","ml","flex","component","color","onClick","AppBarIconButton","toggleDrawer","projectName","showQrScan","setShowQr","Fragment","edge","marginRight","mr","display","sm","noWrap","flexGrow","o","target","HomeAppBar","permissions","GroupInfo","canRead","AccountTree","AdminAppBar","Home","contexts_project","ProjectAppBar","prefetch","Logout","externalShareInfo","ExternalProjectAppBar","logout","Drawer","List","Divider","ChevronLeft","ListItemButton","ListItemIcon","ListItemText","ListSubheader","ExitToApp","Check","MainListItems","handleSignOut","inset","TenantInfo","primary","SecondaryListItems","setCurrentGroup","handleGroupChange","HomeNavs","alignItems","px","src","alt","my","InfoOutlined","PhotoOutlined","FolderOutlined","SummarizeOutlined","EventOutlined","SettingsOutlined","Collapse","LinearProgress","ExpandLess","ExpandMore","RequestQuoteOutlined","Avatar","green","contexts_quotes","QuoteItems","currentPage","setCurrentPage","v","page","handleClick","in","timeout","unmountOnExit","disablePadding","quote","pl","bgcolor","fontSize","NavItems_QuoteItems","WidgetsOutlined","contexts_products","utils_product","utils_case","CaseItems","QO","q5","size","secondary","cs","ProductItems","PackProductItems","NonPackProductItems_ProductItems","NonProductNav","NonPackProductItems","Receipt","contexts_invoices","InvoiceItems","q","invoiceId","billed","NavItems_InvoiceItems","LocalShipping","contexts_vanplans","vanplan_vanplan","ContainerItems","vanplan","containerId","D0","containers","shipCompleted","VanplanItems","isReady","vanplanItems","contexts_tenant","NavItems_MainListItems","ProjectPhoto","ProjectFile","ProjectReport","NavItems_SecondaryListItems","S","ProjectSchedule","ProjectQuote","ProjectProduct","ProjectVanplan","enableVanplan","ProjectInvoice","Project","canWrite","ProjectNavs","drawerWidth","openDrawer","setOpenDrawer","handleDrawerOpen","handleDrawerClose","flexShrink","anchor","xs","boxSizing","justifyContent","placement","textOverflow","cursor","visibility","zIndex","ModalProps","keepMounted","mdTheme","palette","main","contrastText","breakpoints","md","lg","xl","j","jz","boxStyle","backgroundColor","theme","mode","grey","overflowY","isExternalLogin","calculateElements","calculateGW","calculatePanelM2","calculateWoodM3","calculateProductCost","_extract__WEBPACK_IMPORTED_MODULE_9__","utils_jis_combinationSign_Z1402__WEBPACK_IMPORTED_MODULE_0__","utils_jis_combinationSign_Z1403__WEBPACK_IMPORTED_MODULE_1__","utils_jis_combinationSign_Z1410Level1__WEBPACK_IMPORTED_MODULE_2__","utils_jis_combinationSign_Z1410Level2__WEBPACK_IMPORTED_MODULE_3__","utils_jis_combinationSign_Z1410Level3__WEBPACK_IMPORTED_MODULE_4__","utils_jis_combinationSign_Z1410Level4__WEBPACK_IMPORTED_MODULE_5__","utils_jis_beamSupportMaterial__WEBPACK_IMPORTED_MODULE_7__","utils_jis_beamMaterial__WEBPACK_IMPORTED_MODULE_8__","utils_product__WEBPACK_IMPORTED_MODULE_6__","extractSlug","variable","replace","extractId","extractVariables","expr","slugs","exprs","split","matches","match","extractMaterials","var","calculateValue","elements","element","materialOverwrite","mainSpeciesId","mainSpeciesEdgeMPa","mainSpeciesFaceMPa","slug","vars","newExpr","vSlug","varEl","flattenElements","extractValues","extMaterials","Z1402calcCombinationSign","A","Z1403calcCombinationSign","Z1410Level1calcCombinationSign","Z1410Level2calcCombinationSign","Z1410Level3calcCombinationSign","Z1410Level4calcCombinationSign","JISBeamSupportMaterial","JISBeamMaterial","H","JISBeamEdge","B","newVal","eval","ReferenceError","overwriteValue","flattened","Object","keys","getAllElements","cmps","interiors","exteriors","x","entries","el","getElements","setElements","setProductElements","setCmpElements","interiorElements","setInteriorElements","exteriorElements","setExteriorElements","newProduct","newCmps","els","newInteriors","newExteriors","overwriteElementsByMaterial","overwriteElementValue","componentSlug","lengthLocked","lengthNominal","widthLocked","heightLocked","productElements","cmpElements","bomData","variablesForEdgeBefore","components","ref2","edgeValue","parseInt","idx","flatElements","endsWith","edgeSlug","edgeIdx","_value","beforeValue","afterValue","exprIsMaterial","toString","materialId","variablesForMaterialIds","variablesForJisBeamMaterial","variablesForEdge","invertFlattenElements","invElements","invertElementMap","invCmpElements","invertCmpElement","variablesFirst","ref3","woodM3","panelM2","cutting","description","newElements","elem","bom","ref4","ref5","ref6","ref7","ref8","ref9","ref10","ref11","ref12","ref13","ref14","ref15","ref16","ref17","plywoodTotal","woodenTotal","lvlTotal","normalWoodTotal","_sumComponentsTotalCost","interiorTotal","exteriorTotal","otherTotal","otherCost","totalCost","m3","Hs","parseFloat","outerLength","outerWidth","outerHeight","m3Cost","Math","ceil","materialTypeName","acc","total","isNaN","m2","sI","cpt","round","tareWeight","grossWeight","netWeight","edgeVariables","edgeVariablesBefore","cmpOnlyElements","invCmpElementsMap","invertedElements","invertComponentSlugs","pickInvertTargets","reverse","targetKey","targetElements","slugContainElem","startsWith","inverted","invertElement","invertedFlattenElements","_slug","slugPrefix","pickUpElement","beforeWidth","i","beforeHeight","beforeWidthNominal","beforeHeightNominal","isNominal","materialKeys","materialKey","indexOf","isEditedMaterialValue","ms","materialElement","getValue","Number","createEmptyElements","initialElementObj","initialComponentElementObj","initialDecorationElementObj","initialElements","slugSuffix","addInitSubElements","elementsStr","addInfo","initElements","info","targetSlugSuffix","initialValue","stringify","isExpr","addInitElements","generateInitElements","String","initialExpr","ELEMENT_MAPPING","targetSlug","_initialValue","内寸長さ","内寸巾","内寸高さ","外寸長さ","外寸巾","外寸高さ","製品長さ","製品巾","製品高さ","クリアランス長さ左","クリアランス長さ右","クリアランス巾左","クリアランス巾右","クリアランス無負荷材上","クリアランスハリ下","クリアランス天井下","上下クリアランス","NW","風袋重量","符号計算用外寸巾","Z1402用側桟長さ","側支柱の中心間隔","Z1402組合せ符号","Z1403組合せ符号","はり受け材質","はり材質","はりの中心間隔","はりの長さ","天井荷重","枠組み部材選定表","組立","JISはり受け部材","JISはり部材","はり方向","負荷床材許容曲げ強さ","負荷床材支点間の距離","負荷床材スパン1","負荷床材スパン2","負荷床材巾","負荷床材高さ","負荷床材本数","その他原価","extractComponentsElements","extractElementValue","extractProductElements","extractDecorationsElements","cps","results","deco","Calculate","getStyle","X","mC","Wc","rh","EqualDistribution","fb","l","l1","l2","h","Centralization","Partial","TwoPointsConcentrated","equal","twoPoint","updateProductBom","getProductBomByProductId","updatePackageBom","aws_amplify__WEBPACK_IMPORTED_MODULE_0__","graphql_queries__WEBPACK_IMPORTED_MODULE_1__","graphql_mutations__WEBPACK_IMPORTED_MODULE_2__","fromQuoteLine","parseBom","interior","exterior","makeUpdataleBom","updatableBom","decorations","updateBom","updateArbitraryProductBomElement","updateArbitraryPackageBomElement","updateBomElements","_extract__WEBPACK_IMPORTED_MODULE_5__","_calculate__WEBPACK_IMPORTED_MODULE_0__","_parse__WEBPACK_IMPORTED_MODULE_4__","_elements__WEBPACK_IMPORTED_MODULE_1__","_operation__WEBPACK_IMPORTED_MODULE_6__","utils_product__WEBPACK_IMPORTED_MODULE_2__","utils_packageBom__WEBPACK_IMPORTED_MODULE_7__","utils_package__WEBPACK_IMPORTED_MODULE_3__","updateElements","inputs","inputKeys","PA","field","calculateComponentCost","Ut","quantity","NA","amount","unit","defaultUnitCost","lossRate","toFixed","updateComponentElements","updatedComponentElements","calculateDecorationCost","updateDecorationElements","updatedDecorationElements","decoration","rawData","ref18","ref19","pkg","updatedBom","runUpdateProductElements","assign","int","ext","cmp","pkgElements","x4","VS","yJ","Ox","newPkg","newCmp","newInt","newExt","k3","g","WF","updatableInt","updatableExt","newProductElements","newComponents","componentToUpdate","intToUpdate","extToUpdate","tv","wood","normalWood","lvl","plywood","woodCost","normalWoodCost","lvlCost","panelCost","interiorCost","exteriorCost","targets","getIndex","updateObj","areaId","comp","areaName","areaOrder","componentId","target1","arr","includeArea","ignoreCase","G$","gk","newCsInput","BI","nM","updatedProduct","$h","packageId","Jh","updatedPackage","pu","ProgressIcon","invalidPhases","getPhaseName","_mui_icons_material_CameraAlt__WEBPACK_IMPORTED_MODULE_4__","_mui_icons_material_CheckCircle__WEBPACK_IMPORTED_MODULE_2__","_mui_icons_material_Error__WEBPACK_IMPORTED_MODULE_1__","_mui_icons_material_Scale__WEBPACK_IMPORTED_MODULE_3__","phaseId","pidx","packComplete","packFinal","SUPPORT_SITE_URL","JAPANESE_TAX_RATE","isGraphQLResult","Array","isArray","every","CustomError","errorMapper","delete","getCustomErrorMessage","setErrorMessage","customMessage","constructor","console","InvoiceErrorMessages","convertSelectedProductSummariesToProductCaseInput","getAmount","getInvoiceInputs","canImportProductAndQuote","moment__WEBPACK_IMPORTED_MODULE_0__","moment__WEBPACK_IMPORTED_MODULE_0___default","utils_errors_invoice__WEBPACK_IMPORTED_MODULE_1__","domain","ref20","ref21","ref22","ref23","ref24","ref25","accountId","contactId","isValid","subtotal","nonTaxableTotal","taxableSubtotal","taxTotal","taxableTotal","accountName","account","accountSite","site","billingType","accountAddress","address","billingAddress","street","billingStreet","city","billingCity","billingState","postalCode","billingPostalCode","country","billingCountry","contactName","contact","lastName","firstName","contactFirstName","contactLastName","contactDepartment","department","contactTitle","groupName","logoUrl","groupBank","bank","groupAddress","phone","fax","taxRate","allProducts","targetProductIds","_id","targetProducts","checkProducts","quoteLineName","isOrderedOrHasQuotes","isAnyProductLinked","CannotImportError","orderedQuoteLineIds","quoteLines","quoteLine","linkedQuoteLineIds","isAllLinkedQuoteLineOrdered","quote1","orderedOtherQuoteLineIds","showInQuoteSummary","EmptyImportTarget","targetProductSummaries","targetProductCase","summary","caseOrder","caseNames","invoiceLine","_minimumAmount","_quantity","minimumAmount","getActualAmount","_grossWeight","_m3","KG_TON","ton","synced","actualAmount","rt","max","ceilingLoad","beamLength","beamCenterSpace","beamSpeciesId","JISBeamMaterialEdge","beamEdge","edgeMPa","faceMPa","beamSpecies","mainSpecies","woodMaterials","selectBeamMaterial","targetMaterials","z1403BeamOrderMaterials","z1403BeamEdgeOrder","z1403BeamFaceOrder","targetParameters","_refBhhEdge","_refBhhEdge1","_heightNominal","_widthNominal","beamHeight","beamWidth","mpa","targetOrders","check","leftHand","rightHand","pow","sideStrutsCenterSpace","beamSupportSpeciesId","beamSupportSpecies","selectBeamSupportMaterial","z1403BeamSupportOrderMaterials","z1403BeamSupportOrder","_z1403BeamSupportOrder","_z1403BeamSupportOrder1","calcCombinationSign","signCalcOuterWidth","z1402SideBattenLength","firstKeys","MATRIX","closestOuterWidth","findClosestKey","closestSideBattenLength","selectedKey","sideStructsCenterSpaceKeys","closestSpacing","spacingKey","numericKeys","closestKey","min","nw","innerHeight","closestInnerHeight","nwSpacingKeys","closestNW","weightSpacingKey","calcRefBhh","getMaterialName","getMaterialDropdownItems","groupAndSortMaterial","sortMaterialsBySize","sorted","materialsWithPrefix","from","label","_width","_width1","_height","_height1","aWith","bWith","aHeight","bHeight","grouped","cur","existing","Map","getPackageById","deleteBaseArea","deleteBaseComponent","getBaseComponentsByAreaId","addBaseComponent","addBaseArea","short_uuid__WEBPACK_IMPORTED_MODULE_0__","short_uuid__WEBPACK_IMPORTED_MODULE_0___default","aws_amplify__WEBPACK_IMPORTED_MODULE_2__","_bom_elements__WEBPACK_IMPORTED_MODULE_1__","graphql_mutations__WEBPACK_IMPORTED_MODULE_3__","generate","baseAreaId","nt","createBaseComponent","input1","createBaseDecorationComponent","input2","deleteBaseDecorationComponent","areaType","createBaseArea","getPackageBomByID","getUpdatedCaseInputByProductElements","calcM3","addArea","addComponent","addCommaToNum","createCases","updateCaseWithOptimisticLock","deleteArea","getProductById","getProductsCompletionRate","getUpdatedCaseInputByProductNumber","getProductCompletionRate","deleteComponent","getTotalCases","getComponentsByAreaId","_mui_icons_material_CheckCircle__WEBPACK_IMPORTED_MODULE_7__","_mui_material_CircularProgress__WEBPACK_IMPORTED_MODULE_5__","_mui_material_Typography__WEBPACK_IMPORTED_MODULE_6__","_mui_material_Box__WEBPACK_IMPORTED_MODULE_4__","aws_amplify__WEBPACK_IMPORTED_MODULE_8__","short_uuid__WEBPACK_IMPORTED_MODULE_1__","short_uuid__WEBPACK_IMPORTED_MODULE_1___default","_bom_elements__WEBPACK_IMPORTED_MODULE_2__","_error__WEBPACK_IMPORTED_MODULE_3__","graphql_product__WEBPACK_IMPORTED_MODULE_9__","graphql_mutations__WEBPACK_IMPORTED_MODULE_11__","graphql_queries__WEBPACK_IMPORTED_MODULE_10__","CircularProgressWithLabel","top","left","bottom","right","totalCases","packedCases","isPacked","outerLengthElem","outerWidthElem","outerHeightElem","newCs","extractElements","extractedElements","_productNumber","thumbnail","managementNumber","CM_TO_M3","Uw","createComponent","createDecorationComponent","deleteDecorationComponent","createArea","num","sortSummariesBySummaryOrder","convertProductSummariesFilterToCache","makeSummaryOrderMapping","summaryOrderMappingToCaseInput","makeProductSummaryId","isProductSummariesFilterCache","summaries","orderA","orderB","mapping","caseInputs","mappings","caseInput","summaryOrder","RedirectTypes","isSharedProduct","getProjectTypeName","_image__WEBPACK_IMPORTED_MODULE_0__","_error__WEBPACK_IMPORTED_MODULE_1__","diffContainerMasters","DEFAULT_ORIENTATION","createContainerInfos","ORIENTATIONS","groupsContainerMastersToContainerMasters","containerMastersToSelectableListItems","groupsContainerMastersToSelectableListItems","_productSummary__WEBPACK_IMPORTED_MODULE_0__","beforeInfoList","containerInfo","productSummary","_cn","before","beforeInfo","productSummaryId","cn","productSummaryName","productName","pricingId","notStackable","bottomOnly","maxStacking","orientation","casePriority","shipmentId","groupsContainerMasters","activeOnly","containerMaster","cm","groupContainerMaster","containerMasters","selectedContainerMasters","mainContainerMasters","currentContainerMasters","sc","containerMasterId","getVanplanCompletionRate","LABEL_FIELDS","containerMasterInfo","DEFAULT_LABEL_FIELD","summarizeContainer","shippedContainers","context","containerMasterCount","_order","count","sortedContainerMaster","param1","join","caseQuantity","weight"],"sourceRoot":""}