Current File : /home/resuelf/www/wp-content/plugins/gutenberg/build/edit-site/index.min.js.map
{"version":3,"file":"./build/edit-site/index.min.js","mappings":"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CL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,KAAM,IACN,KAAM,IACN,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,KAAM,IACN,KAAM,IACN,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,KAAM,IACN,KAAM,IACN,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,KAAM,IACN,KAAM,IACN,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,KAAM,IACN,KAAM,IACN,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,KAAM,IACN,KAAM,IACN,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,KAAM,IACN,KAAM,IACN,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,KAAM,IACN,KAAM,IACN,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,KAAM,IACN,KAAM,IACN,IAAK,IACL,IAAK,IACL,IAAK,IACL,KAAM,IACN,KAAM,IACN,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,KAAM,IACN,KAAM,IACN,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,KAAM,IACN,KAAM,IACN,KAAM,IACN,KAAM,IACN,KAAM,IACN,KAAM,IACN,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,KAAM,IACN,KAAM,IACN,KAAM,IACN,KAAM,IACN,KAAM,IACN,KAAM,IACN,KAAM,IACN,KAAM,IACN,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,KAAM,IACN,IAAK,IACL,IAAK,IACL,IAAK,IACL,KAAM,IACN,KAAM,IACN,KAAM,IACN,KAAM,IACN,KAAM,IACN,KAAM,IACN,KAAM,IACN,KAAM,IACN,IAAK,IACL,IAAK,IACL,KAAM,IACN,KAAM,IACN,KAAM,IA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AAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAGlB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAEvC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EACT,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAE3B,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAExB,EACA,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GACrD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAEhD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAClD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACnD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACrD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAClD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAEhC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAClD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpD,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAE5B,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACtD,EAAG,EAAG,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i9F,WAAa58F,EAAE+mF,MACpBpnF,KAAKk9F,cAAgB78F,EAAEgnF,OACvBrnF,KAAKm9F,YAAc98F,EAAEgnF,OACrBrnF,KAAKo9F,aAAe/8F,EAAEgnF,OACjBrnF,KAAKggC,SAAW,EAAW3/B,EAAE8nF,gBAClCnoF,KAAKq9F,wBAA0Bh9F,EAAEgnF,OACjCrnF,KAAKs9F,wBAA0Bj9F,EAAEgnF,OACX,IAAjBrnF,KAAKggC,QAAuB3/B,EAAE8nF,oBAAnC,IACD,KAiED,MAAMoV,GAAa,CAClB,UACA,QACA,mBACA,QACA,SACA,WACA,aACA,SACA,UACA,YACA,cACA,YACA,aACA,WACA,OACA,QACA,SACA,SACA,QACA,OACA,MACA,MACA,QACA,OACA,OACA,MACA,QACA,QACA,OACA,QACA,YACA,OACA,QACA,UACA,WACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,cACA,YACA,eACA,cACA,aACA,QACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,YACA,MACA,aACA,aACA,YACA,QACA,WACA,SACA,SACA,YACA,YACA,SACA,SACA,cACA,YACA,SACA,QACA,WACA,SACA,SACA,cACA,YACA,SACA,SACA,cACA,YACA,SACA,SACA,SACA,cACA,YACA,SACA,SACA,SACA,cACA,YACA,SACA,SACA,OACA,WACA,UACA,SACA,YACA,aACA,aACA,YACA,YACA,QACA,WACA,WACA,KACA,SACA,WACA,YACA,YACA,eACA,MACA,KACA,cACA,YACA,UACA,KACA,WACA,cACA,eACA,QACA,KACA,SACA,eACA,aACA,aACA,UACA,SACA,cACA,QACA,gBACA,iBACA,WACA,mBACA,SACA,SACA,SACA,KACA,KACA,SACA,SACA,eACA,gBACA,YACA,aACA,SACA,UACA,YACA,YACA,WACA,WACA,gBACA,iBACA,KACA,KACA,YACA,iBACA,iBACA,eACA,cACA,cACA,cACA,SACA,YACA,SACA,SACA,cACA,YACA,SACA,SACA,cACA,QACA,SACA,SACA,cACA,SACA,WACA,aACA,QACA,SACA,QACA,YACA,OACA,UACA,eACA,SACA,QACA,SACA,SACA,SACA,SACA,SACA,SACA,YACA,MACA,MACA,SACA,SACA,QACA,QACA,QACA,WACA,cACA,cACA,gBACA,UACA,aACA,gBACA,QACA,SACA,SACA,aACA,WACA,WACA,SACA,SACA,SACA,SACA,UAED,IAAI9Q,GAASr2F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAMg8C,KAlU/C,cAAmB0sC,GAClB,WAAAroF,CAAaqmF,EAAM5b,GAClB,MAAQ3qE,EAAGA,GAAMwoF,MAAOjC,EAAM5b,GAU9B,GATAhrE,KAAKggC,QAAU3/B,EAAEinF,YACjBtnF,KAAKw9F,YAAcn9F,EAAE8mF,MACrBnnF,KAAKy9F,kBAAoBp9F,EAAEynF,MAC3B9nF,KAAK09F,mBAAqBr9F,EAAEynF,MAC5B9nF,KAAK29F,aAAet9F,EAAE6mF,OACtBlnF,KAAK49F,aAAev9F,EAAE6mF,OACtBlnF,KAAK69F,aAAex9F,EAAE6mF,OACtBlnF,KAAK89F,YAAcz9F,EAAE6mF,OACrBlnF,KAAK+9F,YAAc19F,EAAE6mF,OACC,IAAjBlnF,KAAKggC,SAAkC,IAAjBhgC,KAAKggC,QAAgB,OAAO3/B,EAAE8nF,eAEzD,GADAnoF,KAAKs5F,UAAYj5F,EAAEgnF,OACG,IAAjBrnF,KAAKggC,QAAgB,CACzBhgC,KAAKg+F,eAAiB,IAAK,IAAIllG,MAAOkH,KAAKs5F,YAAcllG,KACtD8H,GAAOmE,EAAEgnF,SAEZrnF,KAAKi+F,YAAc59F,EAAE0mF,gBACrB/mF,KAAKk+F,iBAAmB,CAAE,GAC1B,IAAM,IAAI1kG,EAAI,EAAGA,EAAIwG,KAAKs5F,UAAW9/F,IAAM,CAE1C,GADYwG,KAAKg+F,eAAgBxkG,GACpB+jG,GAAWtkG,OAAS,CAChC+G,KAAKk+F,iBAAiBtpG,KAAMoL,KAAKk+F,iBAAkB1kG,IACnD,QACD,CACA,IAAI2kG,EAAa99F,EAAE+9F,KACnB/9F,EAAEmiB,KAAM27E,GACRn+F,KAAKk+F,iBAAiBtpG,KACrBoL,KAAKk+F,iBAAkB1kG,GAAM2kG,EAAa,EAE5C,CACD,CACsB,MAAjBn+F,KAAKggC,UACThgC,KAAKiO,OAAS,IAAK,IAAInV,MAAOkH,KAAKs5F,YAAcllG,KAC9C8H,GAAOmE,EAAE+9F,OAGd,CACA,YAAAC,CAAc9M,GACb,GAAsB,IAAjBvxF,KAAKggC,QAIT,OAHA29C,QAAQiO,KACP,sBAAuB5rF,KAAKggC,+CAEtB,GAER,IAAIlrC,EAAQkL,KAAKg+F,eAAgBzM,GACjC,GAAKz8F,EAAQ,IAAM,OAAOyoG,GAAYzoG,GACtC,IAAImZ,EAASjO,KAAKk+F,iBAAkB3M,GAEhClsF,EADOrF,KAAKk+F,iBAAkB3M,EAAU,GAC3BtjF,EAAS,EAC1B,OAAa,IAAR5I,EAAmB,YACxBrF,KAAKuoF,OAAOxB,gBAAkB/mF,KAAKi+F,YAAchwF,EACpCjO,KAAKuoF,OAAOH,UACxB/iF,EACArF,KAAKi+F,YAAchwF,EACnB,GACA,GAEW7Z,KAAOgM,GAAOkG,OAAOC,aAAcnG,KAAMpG,KAAM,IAC5D,KA8SD,MAAMskG,WAAkB1V,GACvB,WAAAroF,CAAaqmF,EAAM5b,GAClB,MAAQ3qE,EAAGA,GAAMwoF,MAAOjC,EAAM5b,EAAU,aACxChrE,KAAKu+F,kBAAoBl+F,EAAE2nF,SAC3BhoF,KAAKw+F,qBAAuBn+F,EAAE2nF,SAC9Bc,GACC9oF,KACA,eACA,IACC,IAAIy+F,GACH,CAAExwF,OAAQ24E,EAAK34E,OAASjO,KAAKu+F,mBAC7BvzB,KAGH8d,GACC9oF,KACA,kBACA,IACC,IAAI0+F,GACH,CAAEzwF,OAAQ24E,EAAK34E,OAASjO,KAAKw+F,sBAC7BxzB,IAGJ,EAED,MAAMyzB,WAAyB7V,GAC9B,WAAAroF,CAAaqmF,EAAM5b,GAClB,MAAQ3qE,EAAGA,GAAMwoF,MAAOjC,EAAM5b,EAAU,oBACxChrE,KAAK2+F,aAAet+F,EAAEgnF,OACtBrnF,KAAK4+F,aAAe,IAAK,IAAI9lG,MAAOkH,KAAK2+F,eAAiBvqG,KACvD8H,GAAOmE,EAAEgjD,KAEb,EAED,MAAMq7C,WAA4B9V,GACjC,WAAAroF,CAAaqmF,EAAM5b,GAClB,MAAQ3qE,EAAGA,GAAMwoF,MAAOjC,EAAM5b,EAAU,uBACxChrE,KAAK6+F,gBAAkBx+F,EAAEgnF,OACzB,MAAMyX,EAAcz+F,EAAE0mF,gBACtB+B,GAAQ9oF,KAAM,qBAAqB,KAClCK,EAAE0mF,gBAAkB+X,EACb,IAAK,IAAIhmG,MAAOkH,KAAK6+F,kBAAoBzqG,KAC7C8H,GAAO,IAAI6iG,GAAkB/+F,KAAKwK,MAAOnK,OAG9C,EAED,MAAM0+F,GACL,WAAAx+F,CAAay+F,EAA0B3+F,GACtCL,KAAKi/F,cAAgB5+F,EAAEgjD,IACvBrjD,KAAKk/F,iBAAmB7+F,EAAE2nF,SAC1Bc,GAAQ9oF,KAAM,mBAAmB,KAChCK,EAAE0mF,gBACDiY,EAA2Bh/F,KAAKk/F,iBAC1B,IAAIC,GAAiB9+F,KAE9B,EAED,MAAM8+F,GACL,WAAA5+F,CAAaF,GACZL,KAAKwK,MAAQnK,EAAE0mF,gBACf/mF,KAAKo/F,iBAAmB/+F,EAAE2nF,SAC1BhoF,KAAKq/F,oBAAsBh/F,EAAE2nF,SAC7BhoF,KAAKs/F,iBAAmBj/F,EAAEgnF,OAC1BrnF,KAAKu/F,mBAAqB,IAAK,IAAIzmG,MAAOkH,KAAKs/F,mBAAqBlrG,KACjE8H,GAAO,IAAIsjG,GAAmBx/F,KAAKwK,MAAOnK,KAE7CyoF,GAAQ9oF,KAAM,cAAc,KAC3BK,EAAE0mF,gBAAkB/mF,KAAKwK,MAAQxK,KAAKo/F,iBAC/B,IAAIK,GAAiBp/F,MAE7ByoF,GAAQ9oF,KAAM,iBAAiB,KAC9BK,EAAE0mF,gBAAkB/mF,KAAKwK,MAAQxK,KAAKq/F,oBAC/B,IAAIK,GAAar/F,KAE1B,EAED,MAAMm/F,GACL,WAAAj/F,CAAao/F,EAAsBt/F,GAClCL,KAAK4/F,eAAiBv/F,EAAEgjD,IACxBrjD,KAAK6/F,aAAex/F,EAAE2nF,SACtBc,GAAQ9oF,KAAM,UAAU,KACvBK,EAAE0mF,gBAAkB4Y,EAAuB3/F,KAAK6/F,aACzC,IAAIH,GAAar/F,KAE1B,EAED,MAAMo/F,GACL,WAAAl/F,CAAaF,GACZL,KAAKuoF,OAASloF,EACdL,KAAKwK,MAAQnK,EAAE0mF,gBACf/mF,KAAK8/F,qBAAuBz/F,EAAEgnF,OAC9BrnF,KAAK+/F,eAAiB1/F,EAAEgnF,OACxBrnF,KAAKggG,WAAa,IAAK,IAAIlnG,MAAOkH,KAAK+/F,iBAAmB3rG,KACvD8H,GAAOmE,EAAE2nF,UAEb,CACA,QAAAiY,CAAUr2E,GAET,OADA5pB,KAAKuoF,OAAOxB,gBAAkB/mF,KAAKwK,MAAQxK,KAAKggG,WAAYp2E,GACrD,IAAIs2E,GAAgBlgG,KAAKuoF,OACjC,EAED,MAAMmX,GACL,WAAAn/F,CAAaF,GACZL,KAAKmgG,SAAW9/F,EAAE2nF,SAClBhoF,KAAKogG,SAAW//F,EAAE2nF,SAClBhoF,KAAKqgG,gBAAkBhgG,EAAEgnF,OACzB,MAAMyX,EAAcz+F,EAAE0mF,gBACtB+B,GAAQ9oF,KAAM,qBAAqB,KAClCK,EAAE0mF,gBAAkB+X,EACb,IAAK,IAAIhmG,MAAOkH,KAAKqgG,kBAAoBjsG,KAC7C8H,GAAO,IAAIokG,GAAkBjgG,OAGlC,EAED,MAAMigG,GACL,WAAA//F,CAAaF,GACZL,KAAKugG,gBAAkBlgG,EAAEgjD,IACzBrjD,KAAKmgG,SAAW9/F,EAAE2nF,SAClBhoF,KAAKogG,SAAW//F,EAAE2nF,QACnB,EAED,MAAMkY,GACL,WAAA3/F,CAAaF,GACZL,KAAKwgG,gBAAkBngG,EAAEgnF,OACzBrnF,KAAKygG,WAAapgG,EAAE+mF,MACU,IAAzBpnF,KAAKwgG,kBACTxgG,KAAK0gG,eAAiBrgG,EAAEgnF,OACxBrnF,KAAK2gG,eAAiBtgG,EAAEgnF,QAEK,IAAzBrnF,KAAKwgG,kBACTxgG,KAAK4gG,YAAcvgG,EAAE2nF,SAEvB,EAED,IAAI0E,GAASt2F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAM2gG,KA/K/C,cAAmBjY,GAClB,WAAAroF,CAAaqmF,EAAM5b,GAClB,MAAQ3qE,EAAGA,GAAMwoF,MAAOjC,EAAM5b,GAC9BhrE,KAAK6pF,aAAexpF,EAAEgnF,OACtBrnF,KAAK8pF,aAAezpF,EAAEgnF,OACtBrnF,KAAK8gG,gBAAkBzgG,EAAE2nF,SACzBhoF,KAAK+gG,eAAiB1gG,EAAE2nF,SACxBc,GACC9oF,KACA,aACA,IACC,IAAIs+F,GACH,CAAErwF,OAAQ24E,EAAK34E,OAASjO,KAAK8gG,iBAC7B91B,KAGH8d,GACC9oF,KACA,YACA,IACC,IAAIs+F,GACH,CAAErwF,OAAQ24E,EAAK34E,OAASjO,KAAK+gG,gBAC7B/1B,KAGwB,IAAtBhrE,KAAK6pF,cAA4C,IAAtB7pF,KAAK8pF,eACpC9pF,KAAKghG,mBAAqB3gG,EAAE4nF,SAC5Ba,GACC9oF,KACA,gBACA,IACC,IAAIs+F,GACH,CAAErwF,OAAQ24E,EAAK34E,OAASjO,KAAKghG,oBAC7Bh2B,KAIL,KA2ID,MAAMi2B,GACL,WAAA1gG,CAAaF,GACZL,KAAKkhG,YAAc7gG,EAAEgnF,OACK,IAArBrnF,KAAKkhG,cACTlhG,KAAK61F,aAAex1F,EAAEgnF,OACtBrnF,KAAKmhG,WAAa9gG,EAAEgnF,OACpBrnF,KAAKohG,gBAAkB,IAAK,IAAItoG,MAAOkH,KAAKmhG,aAAe/sG,KACxD8H,GAAOmE,EAAEgnF,UAGa,IAArBrnF,KAAKkhG,cACTlhG,KAAKqhG,gBAAkBhhG,EAAEgnF,OACzBrnF,KAAKshG,kBAAoB,IACrB,IAAIxoG,MAAOkH,KAAKqhG,kBAClBjtG,KAAO8H,GAAO,IAAIqlG,GAAkBlhG,KAExC,EAED,MAAMkhG,GACL,WAAAhhG,CAAaF,GACZL,KAAK61F,aAAex1F,EAAEgnF,OACtBrnF,KAAKwhG,WAAanhG,EAAEgnF,OACpBrnF,KAAKyhG,MAAQphG,EAAEgnF,MAChB,EAED,MAAMqa,WAAsBpZ,GAC3B,WAAA/nF,CAAaF,GACZwoF,MAAOxoF,GACPL,KAAK2hG,eAAiBthG,EAAEgnF,OACK,IAAxBrnF,KAAK2hG,iBACT3hG,KAAKmhG,WAAa9gG,EAAEgnF,OACpBrnF,KAAK4hG,WAAa,IAAK,IAAI9oG,MAAOkH,KAAKmhG,aAAe/sG,KACnD8H,GAAOmE,EAAEgnF,UAGgB,IAAxBrnF,KAAK2hG,iBACT3hG,KAAK6hG,WAAaxhG,EAAEgnF,OACpBrnF,KAAK8hG,aAAe,IAAK,IAAIhpG,MAAOkH,KAAK6hG,aAAeztG,KACrD8H,GAAO,IAAI6lG,GAAqB1hG,KAGrC,EAED,MAAM0hG,GACL,WAAAxhG,CAAaF,GACZL,KAAK61F,aAAex1F,EAAEgnF,OACtBrnF,KAAKwhG,WAAanhG,EAAEgnF,OACpBrnF,KAAKgiG,mBAAqB3hG,EAAEgnF,MAC7B,EAED,MAAM4a,GACL,WAAA1hG,CAAakJ,EAAOpJ,GACnBL,KAAKyJ,MAAQA,EACbzJ,KAAKuoF,OAASloF,EACdL,KAAKwK,MAAQnK,EAAE0mF,gBACf/mF,KAAKqvF,OAAShvF,EAAEgnF,OAChBrnF,KAAKkiG,0BAA4B7hG,EAAE4nF,SACnCjoF,KAAKmiG,uBAAyB9hG,EAAEgnF,OAChCrnF,KAAKoiG,yBAA2B,IAC5B,IAAItpG,MAAOkH,KAAKmiG,yBAClB/tG,KAAO8H,GAAOmE,EAAE4nF,UACnB,EAkDD,MAAMoa,WAAmB/Z,GACxB,WAAA/nF,CAAaF,GACZwoF,MAAOxoF,GACPL,KAAKsiG,eAAiBjiG,EAAE2nF,SACxBhoF,KAAKmhG,WAAa9gG,EAAEgnF,OACpBrnF,KAAKuiG,mBAAqB,IAAK,IAAIzpG,MAAOkH,KAAKmhG,aAAe/sG,KAC3D8H,GAAOmE,EAAE2nF,UAEb,CACA,QAAAwa,CAAUC,GAGT,OAFAziG,KAAKuoF,OAAOxB,gBACX/mF,KAAKwK,MAAQxK,KAAKuiG,mBAAoBE,GAChC,IAAIC,GAAa1iG,KAAKuoF,OAC9B,EAED,MAAMma,GACL,WAAAniG,CAAaF,GACZL,KAAK2iG,WAAatiG,EAAEgnF,OACpBrnF,KAAK4iG,aAAe,IAAK,IAAI9pG,MAAOkH,KAAK2iG,aAAevuG,KACrD8H,GAAOmE,EAAEgnF,QAEb,EAED,MAAMwb,WAAqBva,GAC1B,WAAA/nF,CAAaF,GACZwoF,MAAOxoF,GACPL,KAAKsiG,eAAiBjiG,EAAE2nF,SACxBc,GAAQ9oF,KAAM,YAAY,KACzBK,EAAE0mF,gBAAkB/mF,KAAKwK,MAAQxK,KAAKsiG,eAC/B,IAAIZ,GAAerhG,MAE3BL,KAAK8iG,cAAgBziG,EAAEgnF,OACvBrnF,KAAK+iG,gBAAkB,IAAK,IAAIjqG,MAAOkH,KAAK8iG,gBAAkB1uG,KAC3D8H,GAAOmE,EAAE2nF,UAEb,CACA,WAAAgb,CAAaC,GAGZ,OAFAjjG,KAAKuoF,OAAOxB,gBACX/mF,KAAKwK,MAAQxK,KAAK+iG,gBAAiBE,GAC7B,IAAIC,GAAUljG,KAAKuoF,OAC3B,EAED,MAAM2a,WAAiB5a,GACtB,WAAA/nF,CAAaF,GACZwoF,MAAOxoF,GACPL,KAAKmjG,WAAa9iG,EAAEgnF,OACpBrnF,KAAKojG,kBAAoB,IAAK,IAAItqG,MAAOkH,KAAKmjG,aAAe/uG,KAC1D8H,GAAOmE,EAAE2nF,UAEb,CACA,aAAAqb,CAAeC,GAGd,OAFAtjG,KAAKuoF,OAAOxB,gBACX/mF,KAAKwK,MAAQxK,KAAKojG,kBAAmBE,GAC/B,IAAIC,GAAYvjG,KAAKuoF,OAC7B,EAED,MAAMgb,GACL,WAAAhjG,CAAaF,GACZL,KAAKwjG,iBAAmBnjG,EAAEgnF,OACK,IAA1BrnF,KAAKwjG,mBACTxjG,KAAKygG,WAAapgG,EAAE+mF,OAEU,IAA1BpnF,KAAKwjG,mBACTxjG,KAAKyjG,qBAAuBpjG,EAAEgnF,QAEA,IAA1BrnF,KAAKwjG,mBACTxjG,KAAKygG,WAAapgG,EAAE+mF,MACpBpnF,KAAK0jG,aAAerjG,EAAE2nF,SAExB,EAED,MAAM2b,WAA2Brb,GAChC,WAAA/nF,CAAaF,GACZwoF,MAAOxoF,GACPL,KAAK4jG,wBAA0BvjG,EAAEgnF,OACjCrnF,KAAK6jG,kBAAoBxjG,EAAEgnF,OAC3BrnF,KAAK8jG,gBAAkB,IAAK,IAAIhrG,MAAOkH,KAAK6jG,oBAAsBzvG,KAC/D8H,GAAOmE,EAAE4nF,UAEb,CACA,eAAA8b,CAAiBC,GAGhB,OAFAhkG,KAAKuoF,OAAOxB,gBACX/mF,KAAKwK,MAAQxK,KAAK8jG,gBAAiBE,GAC7B,IAAItC,GAAe1hG,KAAKuoF,OAChC,EAED,IAAIoE,GAASv2F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAM+jG,KAtI/C,cAAmBrb,GAClB,WAAAroF,CAAaqmF,EAAM5b,GAClB,MAAQ3qE,EAAGA,GAAMwoF,MAAOjC,EAAM5b,GAC9BhrE,KAAK6pF,aAAexpF,EAAEgnF,OACtBrnF,KAAK8pF,aAAezpF,EAAEgnF,OACtBrnF,KAAKkkG,oBAAsB7jG,EAAE2nF,SAC7Bc,GAAQ9oF,KAAM,kBAAkB,KAC/B,GAAkC,IAA7BA,KAAKkkG,oBAEV,OADA7jG,EAAE0mF,gBAAkB/mF,KAAK20F,WAAa30F,KAAKkkG,oBACpC,IAAIjD,GAAiB5gG,EAAG,IAEhCL,KAAKmkG,iBAAmB9jG,EAAE2nF,SAC1Bc,GAAQ9oF,KAAM,cAAc,KAC3B,GAA+B,IAA1BA,KAAKmkG,iBAEV,OADA9jG,EAAE0mF,gBAAkB/mF,KAAK20F,WAAa30F,KAAKmkG,iBACpC,IAAI9B,GAAYhiG,EAAG,IAE3BL,KAAKokG,mBAAqB/jG,EAAE2nF,SAC5Bc,GAAQ9oF,KAAM,gBAAgB,KAC7B,GAAiC,IAA5BA,KAAKokG,mBAEV,OADA/jG,EAAE0mF,gBAAkB/mF,KAAK20F,WAAa30F,KAAKokG,mBACpC,IAAIvB,GAAcxiG,EAAG,IAE7BL,KAAKqkG,yBAA2BhkG,EAAE2nF,SAClCc,GAAQ9oF,KAAM,sBAAsB,KACnC,GAAuC,IAAlCA,KAAKqkG,yBAEV,OADAhkG,EAAE0mF,gBAAkB/mF,KAAK20F,WAAa30F,KAAKqkG,yBACpC,IAAIpD,GAAiB5gG,EAAG,IAE3BL,KAAK8pF,cAAgB,IACzB9pF,KAAKskG,uBAAyBjkG,EAAE2nF,SAChCc,GAAQ9oF,KAAM,oBAAoB,KACjC,GAAqC,IAAhCA,KAAKskG,uBAGV,OAFAjkG,EAAE0mF,gBACD/mF,KAAK20F,WAAa30F,KAAKskG,uBACjB,IAAIX,GAAoBtjG,EAAG,KAGT,IAAtBL,KAAK8pF,eACT9pF,KAAKghG,mBAAqB3gG,EAAE4nF,SAC5Ba,GAAQ9oF,KAAM,gBAAgB,KAC7B,GAAiC,IAA5BA,KAAKghG,mBAEV,OADA3gG,EAAE0mF,gBAAkB/mF,KAAK20F,WAAa30F,KAAKghG,mBACpC,IAAIiB,GAAyB5hG,EAAG,IAG1C,KAyFD,MAAMkkG,WAAmBjc,GACxBkc,aAAe,CAAEC,YAAa,EAAGC,cAAe,IAChD,WAAAnkG,CAAaF,GACZwoF,MAAOxoF,GACPL,KAAKykG,YAAcpkG,EAAEgnF,OACrBrnF,KAAK0kG,cAAgB,IAAK,IAAI5rG,MAAOkH,KAAKykG,cAAgBrwG,KACvD8H,GAAO,IAAIyoG,GAActkG,IAE7B,EAED,MAAMskG,GACL,WAAApkG,CAAaF,GACZL,KAAK4kG,UAAYvkG,EAAEgjD,IACnBrjD,KAAK6kG,aAAexkG,EAAE2nF,QACvB,EAED,MAAM8c,WAAoBxc,GACzB,WAAA/nF,CAAaF,GACZwoF,MAAOxoF,GACPL,KAAK+kG,eAAiB1kG,EAAE2nF,SACxBhoF,KAAKglG,aAAe3kG,EAAEgnF,OACtBrnF,KAAKilG,eAAiB,IAAK,IAAInsG,MAAOkH,KAAKglG,eAAiB5wG,KACzD8H,GAAO,IAAIgpG,GAAe7kG,IAE9B,EAED,MAAM6kG,GACL,WAAA3kG,CAAaF,GACZL,KAAKmlG,WAAa9kG,EAAEgjD,IACpBrjD,KAAKolG,cAAgB/kG,EAAE2nF,QACxB,EAED,MAAMqd,GACL,WAAA9kG,CAAaF,GACZL,KAAKslG,YAAcjlG,EAAE2nF,SACrBhoF,KAAKulG,qBAAuBllG,EAAEgnF,OAC9BrnF,KAAKwlG,kBAAoBnlG,EAAEgnF,OAC3BrnF,KAAKylG,eAAiB,IAAK,IAAI3sG,MAAOkH,KAAKwlG,oBAAsBpxG,KAC9D8H,GAAOmE,EAAEgnF,QAEb,EAED,MAAMqe,WAAoBpd,GACzBkc,aAAe,CAAEmB,aAAc,EAAGC,eAAgB,IAClD,WAAArlG,CAAaF,GACZwoF,MAAOxoF,GACPL,KAAK2lG,aAAetlG,EAAEgnF,OACtBrnF,KAAK4lG,eAAiB,IAAK,IAAI9sG,MAAOkH,KAAK2lG,eAAiBvxG,KACzD8H,GAAO,IAAI2pG,GAAexlG,IAE9B,EAED,MAAMwlG,GACL,WAAAtlG,CAAaF,GACZL,KAAK8lG,WAAazlG,EAAEgjD,IACpBrjD,KAAK+lG,cAAgB1lG,EAAE2nF,QACxB,EAED,MAAMge,WAAqB1d,GAC1B,WAAA/nF,CAAaF,GACZwoF,MAAOxoF,GACPL,KAAKimG,cAAgB5lG,EAAE2nF,SACvBhoF,KAAKkmG,iBAAmB7lG,EAAEgnF,OAC1BrnF,KAAKmmG,kBAAoB,IAAK,IAAIrtG,MAAOkH,KAAKkmG,mBAAqB9xG,KAChE8H,GAAOmE,EAAEgnF,QAEb,CACA,gBAAA+e,GACC,GAAKpmG,KAAKimG,cAAgB,EAAI,CAC7B,MAAM5lG,EAAIL,KAAKuoF,OACfloF,EAAE0mF,gBAAkB/mF,KAAKwK,MAAQxK,KAAKimG,cACtC,MAAM5iD,EAAMrjD,KAAK8lG,WACjB,GAAa,SAARziD,EAAiB,OAAO,IAAIgjD,GAAMhmG,GACvC,GAAKgjD,EAAIrI,WAAY,MAAS,OAAO,IAAIsrD,GAAkBjmG,GAC3D,GAAKgjD,EAAIrI,WAAY,MAAS,OAAO,IAAIurD,GAAclmG,EACxD,CACD,EAED,MAAMimG,GACL,WAAA/lG,CAAaF,GACZL,KAAKqvF,OAAShvF,EAAEgnF,OAChBrnF,KAAKwmG,kBAAoBnmG,EAAEgnF,OAC3BrnF,KAAKymG,wBAA0BpmG,EAAEgnF,OACjCrnF,KAAK0mG,iBAAmBrmG,EAAEgnF,OAC1BrnF,KAAK2mG,mBAAqBtmG,EAAEgnF,OAC5BrnF,KAAK4mG,wBAA0BvmG,EAAEgnF,OACjCrnF,KAAK6mG,UAAYxmG,EAAEgnF,OACnBrnF,KAAK8mG,UAAY,IAAK,IAAIhuG,MAAOkH,KAAK6mG,YAAczyG,KACjD8H,GAAOmE,EAAEonF,QAEb,EAED,MAAM4e,GACL,WAAA9lG,CAAaF,GACZL,KAAK+mG,WAAa1mG,EAAEgnF,OACpBrnF,KAAKgnG,oBAAsB3mG,EAAEgnF,OAC7BrnF,KAAKinG,gBAAkB5mG,EAAEgnF,OACzBrnF,KAAKknG,SAAW7mG,EAAEgnF,OAClBrnF,KAAKmnG,SAAW9mG,EAAEgnF,MACnB,EAED,MAAMkf,GACL,WAAAhmG,CAAaF,GACZL,KAAKggC,QAAU3/B,EAAEgnF,OACjBrnF,KAAKonG,SAAW/mG,EAAEgnF,MACnB,EAED,SAASggB,GAA2BC,GACnCA,EAAS/e,OAAOxB,iBAAmB,SAC5BugB,EAAShF,sBACTgF,EAASC,gBACjB,CACA,MAAMC,WAAqBlf,GAC1B,WAAA/nF,CAAaF,GACZwoF,MAAOxoF,GACPL,KAAKynG,YAAcpnG,EAAEgnF,OACrBrnF,KAAKsiG,eAAiBjiG,EAAE2nF,QACzB,CACA,gBAAAuf,GACC,IAAIlnG,EAAIL,KAAKuoF,OAEb,OADAloF,EAAE0mF,gBAAkB/mF,KAAKwK,MAAQxK,KAAKsiG,eAC/B,IAAIZ,GAAerhG,EAC3B,EAED,MAAMqnG,GACL,WAAAnnG,CAAaF,GACZL,KAAK2nG,mBAAqBtnG,EAAEgnF,OAC5BrnF,KAAK4nG,gBAAkBvnG,EAAEgnF,MAC1B,EAED,MAAMwgB,WAAsBL,GAC3B,WAAAjnG,CAAaF,GACZwoF,MAAOxoF,GACPL,KAAK8nG,aAAeznG,EAAE+mF,KACvB,EAED,MAAM2gB,WAAsBP,GAC3B,WAAAjnG,CAAaF,GACZwoF,MAAOxoF,GACPL,KAAKgoG,cAAgB3nG,EAAEgnF,OACvBrnF,KAAKioG,gBAAkB,IAAK,IAAInvG,MAAOkH,KAAKgoG,gBAAkB5zG,KAC3D8H,GAAOmE,EAAE2nF,UAEb,CACA,WAAAkgB,CAAapzG,GACZ,IAAIuL,EAAIL,KAAKuoF,OAEb,OADAloF,EAAE0mF,gBAAkB/mF,KAAKwK,MAAQxK,KAAKioG,gBAAiBnzG,GAChD,IAAIqzG,GAAe9nG,EAC3B,EAED,MAAM8nG,GACL,WAAA5nG,CAAaF,GACZL,KAAKmhG,WAAa9gG,EAAEgnF,OACpBrnF,KAAKooG,mBAAqB,IAAK,IAAItvG,MAAOkH,KAAKmhG,aAAe/sG,KAC3D8H,GAAOmE,EAAEgnF,QAEb,EAED,MAAMghB,WAAsBb,GAC3B,WAAAjnG,CAAaF,GACZwoF,MAAOxoF,GACPL,KAAKsoG,kBAAoBjoG,EAAEgnF,OAC3BrnF,KAAKuoG,oBAAsB,IACvB,IAAIzvG,MAAOkH,KAAKsoG,oBAClBl0G,KAAO8H,GAAOmE,EAAE2nF,UACnB,CACA,eAAAwgB,CAAiB1zG,GAChB,IAAIuL,EAAIL,KAAKuoF,OAEb,OADAloF,EAAE0mF,gBAAkB/mF,KAAKwK,MAAQxK,KAAKuoG,oBAAqBzzG,GACpD,IAAI2zG,GAAmBpoG,EAC/B,EAED,MAAMooG,GACL,WAAAloG,CAAaF,GACZL,KAAKmhG,WAAa9gG,EAAEgnF,OACpBrnF,KAAK0oG,kBAAoB,IAAK,IAAI5vG,MAAOkH,KAAKmhG,aAAe/sG,KAC1D8H,GAAOmE,EAAEgnF,QAEb,EAED,MAAMshB,WAAsBnB,GAC3B,WAAAjnG,CAAaF,GACZwoF,MAAOxoF,GACPL,KAAK4oG,iBAAmBvoG,EAAEgnF,OAC1BrnF,KAAK6oG,mBAAqB,IAAK,IAAI/vG,MAAOkH,KAAK4oG,mBAAqBx0G,KACjE8H,GAAOmE,EAAE2nF,UAEb,CACA,cAAA8gB,CAAgBh0G,GACf,IAAIuL,EAAIL,KAAKuoF,OAEb,OADAloF,EAAE0mF,gBAAkB/mF,KAAKwK,MAAQxK,KAAK6oG,mBAAoB/zG,GACnD,IAAIi0G,GAAkB1oG,EAC9B,EAED,MAAM0oG,WAAyBzgB,GAC9B,WAAA/nF,CAAaF,GACZwoF,MAAOxoF,GACPL,KAAKgpG,cAAgB3oG,EAAEgnF,OACvBrnF,KAAKipG,gBAAkB,IAAK,IAAInwG,MAAOkH,KAAKgpG,gBAAkB50G,KAC3D8H,GAAOmE,EAAE2nF,UAEb,CACA,WAAAkhB,CAAap0G,GACZ,IAAIuL,EAAIL,KAAKuoF,OAEb,OADAloF,EAAE0mF,gBAAkB/mF,KAAKwK,MAAQxK,KAAKipG,gBAAiBn0G,GAChD,IAAIq0G,GAAe9oG,EAC3B,EAED,MAAM8oG,GACL,WAAA5oG,CAAaF,GACZL,KAAKopG,cAAgB/oG,EAAEgnF,OACvBrnF,KAAKqpG,eAAiBhpG,EAAEgnF,OACxBrnF,KAAKspG,kBAAoB,IACrB,IAAIxwG,MAAOkH,KAAKqpG,eAAiB,IACnCj1G,KAAO8H,GAAOmE,EAAEgnF,QACnB,EAED,MAAMkiB,WAAsB/B,GAC3B,WAAAjnG,CAAaF,GACZwoF,MAAOxoF,GACmB,IAArBL,KAAKynG,cACTznG,KAAKwpG,gBAAkBnpG,EAAEgnF,OACzBrnF,KAAKypG,kBAAoB,IACrB,IAAI3wG,MAAOkH,KAAKwpG,kBAClBp1G,KAAO8H,GAAOmE,EAAE2nF,YAEO,IAArBhoF,KAAKynG,cACTznG,KAAK0pG,eAAiBrpG,EAAE2nF,SACxBhoF,KAAK2pG,iBAAmBtpG,EAAEgnF,OAC1BrnF,KAAK4pG,mBAAqB,IACtB,IAAI9wG,MAAOkH,KAAK2pG,mBAClBv1G,KAAO8H,GAAOmE,EAAE2nF,YAEO,IAArBhoF,KAAKynG,cACTJ,GAA2BrnG,MAC3BA,KAAKmhG,WAAa9gG,EAAEgnF,OACpBrnF,KAAK6pG,kBAAoBxpG,EAAEgnF,OAC3BrnF,KAAK8jG,gBAAkB,IAAK,IAAIhrG,MAAOkH,KAAKmhG,aAAe/sG,KACxD8H,GAAOmE,EAAE2nF,WAEZhoF,KAAK8pG,mBAAqB,IACtB,IAAIhxG,MAAOkH,KAAK6pG,oBAClBz1G,KAAO8H,GAAO,IAAIwrG,GAAmBrnG,KAEzC,CACA,aAAA0pG,CAAej1G,GACd,GAA0B,IAArBkL,KAAKynG,YACT,MAAM,IAAI7qG,MACT,iBAAkBoD,KAAKynG,oCAEzB,IAAIpnG,EAAIL,KAAKuoF,OAEb,OADAloF,EAAE0mF,gBAAkB/mF,KAAKwK,MAAQxK,KAAKypG,kBAAmB30G,GAClD,IAAIk1G,GAAiB3pG,EAC7B,CACA,cAAA4pG,CAAgBn1G,GACf,GAA0B,IAArBkL,KAAKynG,YACT,MAAM,IAAI7qG,MACT,iBAAkBoD,KAAKynG,qCAEzB,IAAIpnG,EAAIL,KAAKuoF,OAEb,OADAloF,EAAE0mF,gBAAkB/mF,KAAKwK,MAAQxK,KAAK4pG,mBAAoB90G,GACnD,IAAIo1G,GAAkB7pG,EAC9B,CACA,gBAAAknG,CAAkBzyG,GACjB,GAA0B,IAArBkL,KAAKynG,cAAuB3yG,EAChC,OAAO+zF,MAAM0e,mBACd,IAAOzyG,EACN,MAAM,IAAI8H,MACT,iBAAkBoD,KAAKynG,iDAEzB,IAAIpnG,EAAIL,KAAKuoF,OAEb,OADAloF,EAAE0mF,gBAAkB/mF,KAAKwK,MAAQxK,KAAK8jG,gBAAiBhvG,GAChD,IAAI4sG,GAAerhG,EAC3B,EAED,MAAM2pG,WAAwB1hB,GAC7B,WAAA/nF,CAAaF,GACZwoF,MAAOxoF,GACPL,KAAKmqG,aAAe9pG,EAAEgnF,OACtBrnF,KAAKoqG,eAAiB,IAAK,IAAItxG,MAAOkH,KAAKmqG,eAAiB/1G,KACzD8H,GAAOmE,EAAE2nF,UAEb,CACA,UAAAqiB,CAAYv1G,GACX,IAAIuL,EAAIL,KAAKuoF,OAEb,OADAloF,EAAE0mF,gBAAkB/mF,KAAKwK,MAAQxK,KAAKoqG,eAAgBt1G,GAC/C,IAAIw1G,GAAcjqG,EAC1B,EAED,MAAMiqG,GACL,WAAA/pG,CAAaF,GACZL,KAAKmhG,WAAa9gG,EAAEgnF,OACpBrnF,KAAK6pG,kBAAoBxpG,EAAEgnF,OAC3BrnF,KAAKuqG,cAAgB,IAAK,IAAIzxG,MAAOkH,KAAKmhG,WAAa,IAAM/sG,KAC1D8H,GAAOmE,EAAEgnF,SAEZrnF,KAAK8pG,mBAAqB,IACtB,IAAIhxG,MAAOkH,KAAK6pG,oBAClBz1G,KAAO8H,GAAO,IAAIwrG,GAAmBrnG,IACxC,EAED,MAAM6pG,WAAyB5hB,GAC9B,WAAA/nF,CAAaF,GACZwoF,MAAOxoF,GACPL,KAAKwqG,kBAAoBnqG,EAAEgnF,OAC3BrnF,KAAKyqG,oBAAsB,IACvB,IAAI3xG,MAAOkH,KAAKwqG,oBAClBp2G,KAAO8H,GAAOmE,EAAE2nF,UACnB,CACA,WAAA0iB,CAAa51G,GACZ,IAAIuL,EAAIL,KAAKuoF,OAEb,OADAloF,EAAE0mF,gBAAkB/mF,KAAKwK,MAAQxK,KAAKyqG,oBAAqB31G,GACpD,IAAI61G,GAAmBtqG,EAC/B,EAED,MAAMsqG,WAA0BL,GAC/B,WAAA/pG,CAAaF,GACZwoF,MAAOxoF,EACR,EAED,MAAMuqG,WAAsBpD,GAC3B,WAAAjnG,CAAaF,GACZwoF,MAAOxoF,GACmB,IAArBL,KAAKynG,cACTznG,KAAK6qG,qBAAuBxqG,EAAEgnF,OAC9BrnF,KAAK8qG,uBAAyB,IAC1B,IAAIhyG,MAAOkH,KAAK6qG,uBAClBz2G,KAAO8H,GAAOmE,EAAE2nF,YAEO,IAArBhoF,KAAKynG,cACTznG,KAAK+qG,wBAA0B1qG,EAAE2nF,SACjChoF,KAAKgrG,oBAAsB3qG,EAAE2nF,SAC7BhoF,KAAKirG,wBAA0B5qG,EAAE2nF,SACjChoF,KAAKkrG,sBAAwB7qG,EAAEgnF,OAC/BrnF,KAAKmrG,wBAA0B,IAC3B,IAAIryG,MAAOkH,KAAKkrG,wBAClB92G,KAAO8H,GAAOmE,EAAE2nF,YAEO,IAArBhoF,KAAKynG,cACTJ,GAA2BrnG,MAC3BA,KAAKorG,oBAAsB/qG,EAAEgnF,OAC7BrnF,KAAKqrG,yBAA2B,IAC5B,IAAIvyG,MAAOkH,KAAKorG,sBAClBh3G,KAAO8H,GAAOmE,EAAE2nF,WAClBhoF,KAAKsrG,gBAAkBjrG,EAAEgnF,OACzBrnF,KAAKurG,qBAAuB,IACxB,IAAIzyG,MAAOkH,KAAKsrG,kBAClBl3G,KAAO8H,GAAOmE,EAAE2nF,WAClBhoF,KAAKwrG,oBAAsBnrG,EAAEgnF,OAC7BrnF,KAAKyrG,yBAA2B,IAC5B,IAAI3yG,MAAOkH,KAAKwrG,sBAClBp3G,KAAO8H,GAAOmE,EAAE2nF,WAClBhoF,KAAK0rG,eAAiBrrG,EAAEgnF,OACxBrnF,KAAK2rG,iBAAmB,IACpB,IAAI7yG,MAAOkH,KAAK6pG,oBAClBz1G,KAAO8H,GAAO,IAAI0vG,GAAsBvrG,KAE5C,CACA,kBAAAwrG,CAAoB/2G,GACnB,GAA0B,IAArBkL,KAAKynG,YACT,MAAM,IAAI7qG,MACT,iBAAkBoD,KAAKynG,yCAEzB,IAAIpnG,EAAIL,KAAKuoF,OAEb,OADAloF,EAAE0mF,gBAAkB/mF,KAAKwK,MAAQxK,KAAK8qG,uBAAwBh2G,GACvD,IAAIg3G,GAAsBzrG,EAClC,CACA,mBAAA0rG,CAAqBj3G,GACpB,GAA0B,IAArBkL,KAAKynG,YACT,MAAM,IAAI7qG,MACT,iBAAkBoD,KAAKynG,0CAEzB,IAAIpnG,EAAIL,KAAKuoF,OAEb,OADAloF,EAAE0mF,gBAAkB/mF,KAAKwK,MAAQxK,KAAKmrG,wBAAyBr2G,GACxD,IAAIk3G,GAAuB3rG,EACnC,CACA,qBAAA4rG,CAAuBh+F,GACtB,GAA0B,IAArBjO,KAAKynG,YACT,MAAM,IAAI7qG,MACT,iBAAkBoD,KAAKynG,yDAEzB,IAAIpnG,EAAIL,KAAKuoF,OAEb,OADAloF,EAAE0mF,gBAAkB/mF,KAAKwK,MAAQyD,EAC1B,IAAIyzF,GAAerhG,EAC3B,EAED,MAAMyrG,WAA6BxjB,GAClC,WAAA/nF,CAAaF,GACZwoF,MAAOxoF,GACPL,KAAKksG,kBAAoB7rG,EAAEgnF,OAC3BrnF,KAAKmsG,oBAAsB,IACvB,IAAIrzG,MAAOkH,KAAKksG,oBAClB93G,KAAO8H,GAAOmE,EAAE2nF,UACnB,CACA,UAAAqiB,CAAYv1G,GACX,IAAIuL,EAAIL,KAAKuoF,OAEb,OADAloF,EAAE0mF,gBAAkB/mF,KAAKwK,MAAQxK,KAAKmsG,oBAAqBr3G,GACpD,IAAIs3G,GAAmB/rG,EAC/B,EAED,MAAM+rG,GACL,WAAA7rG,CAAaF,GACZL,KAAKorG,oBAAsB/qG,EAAEgnF,OAC7BrnF,KAAKqsG,kBAAoB,IACrB,IAAIvzG,MAAOkH,KAAKorG,sBAClBh3G,KAAO8H,GAAOmE,EAAEgnF,SAClBrnF,KAAKsrG,gBAAkBjrG,EAAEgnF,OACzBrnF,KAAKuqG,cAAgB,IAAK,IAAIzxG,MAAOkH,KAAKsrG,gBAAkB,IAAMl3G,KAC/D8H,GAAOmE,EAAEgnF,SAEZrnF,KAAKwrG,oBAAsBnrG,EAAEgnF,OAC7BrnF,KAAKssG,kBAAoB,IACrB,IAAIxzG,MAAOkH,KAAKusG,sBAClBn4G,KAAO8H,GAAOmE,EAAEgnF,SAClBrnF,KAAK6pG,kBAAoBxpG,EAAEgnF,OAC3BrnF,KAAK8pG,mBAAqB,IAAK,IAAIhxG,MAAOkH,KAAKwsG,aAAep4G,KAC3D8H,GAAO,IAAIwrG,GAAmBrnG,IAElC,EAED,MAAM2rG,WAA8B1jB,GACnC,WAAA/nF,CAAaF,GACZwoF,MAAOxoF,GACPL,KAAKysG,uBAAyBpsG,EAAEgnF,OAChCrnF,KAAK0sG,yBAA2B,IAC5B,IAAI5zG,MAAOkH,KAAKysG,yBAClBr4G,KAAO8H,GAAOmE,EAAE2nF,UACnB,CACA,WAAA0iB,CAAa51G,GACZ,IAAIuL,EAAIL,KAAKuoF,OAEb,OADAloF,EAAE0mF,gBAAkB/mF,KAAKwK,MAAQxK,KAAKmsG,oBAAqBr3G,GACpD,IAAI63G,GAAwBtsG,EACpC,EAED,MAAMssG,GACL,WAAApsG,CAAaF,GACZL,KAAKorG,oBAAsB/qG,EAAEgnF,OAC7BrnF,KAAKqsG,kBAAoB,IACrB,IAAIvzG,MAAOkH,KAAKorG,sBAClBh3G,KAAO8H,GAAOmE,EAAEgnF,SAClBrnF,KAAKsrG,gBAAkBjrG,EAAEgnF,OACzBrnF,KAAKuqG,cAAgB,IAAK,IAAIzxG,MAAOkH,KAAKsrG,gBAAkB,IAAMl3G,KAC/D8H,GAAOmE,EAAEgnF,SAEZrnF,KAAKwrG,oBAAsBnrG,EAAEgnF,OAC7BrnF,KAAKssG,kBAAoB,IACrB,IAAIxzG,MAAOkH,KAAKusG,sBAClBn4G,KAAO8H,GAAOmE,EAAEgnF,SAClBrnF,KAAK6pG,kBAAoBxpG,EAAEgnF,OAC3BrnF,KAAK8pG,mBAAqB,IACtB,IAAIhxG,MAAOkH,KAAK6pG,oBAClBz1G,KAAO8H,GAAO,IAAI0vG,GAAsBvrG,IAC3C,EAED,MAAMurG,WAA6BtjB,GAClC,WAAA/nF,CAAaF,GACZwoF,MAAOxoF,GACPL,KAAK4sG,cAAgBvsG,EAAEgnF,OACvBrnF,KAAK4nG,gBAAkBvnG,EAAEgnF,MAC1B,EAED,MAAMwlB,WAAsBvkB,GAC3B,WAAA/nF,CAAaF,GACZwoF,MAAOxoF,GACPL,KAAKynG,YAAcpnG,EAAEgnF,OACrBrnF,KAAK8sG,oBAAsBzsG,EAAEgnF,OAC7BrnF,KAAK+sG,gBAAkB1sG,EAAE4nF,QAC1B,EAED,MAAM+kB,WAAsBxF,GAC3B,WAAAjnG,CAAaF,GACZwoF,MAAOxoF,GACPL,KAAKorG,oBAAsB/qG,EAAEgnF,OAC7BrnF,KAAKqrG,yBAA2B,IAC5B,IAAIvyG,MAAOkH,KAAKorG,sBAClBh3G,KAAO8H,GAAOmE,EAAE2nF,WAClBhoF,KAAKwrG,oBAAsBnrG,EAAEgnF,OAC7BrnF,KAAKyrG,yBAA2B,CAC/B,IAAI3yG,MAAOkH,KAAKwrG,sBACfp3G,KAAO8H,GAAOmE,EAAE2nF,WAClBhoF,KAAKmhG,WAAa9gG,EAAEgnF,OACpBrnF,KAAKooG,mBAAqB,IAAK,IAAItvG,MAAOkH,KAAKmhG,aAAe/sG,KAC3D8H,GAAOmE,EAAEgnF,QAEb,EAED,IAAI4lB,GAAa,CAChBC,cAAe,SAAW57F,EAAMjR,GAC/B,MAAM8sG,EAAW,GAAI,MACpBnqF,EACA6kF,GACAE,GACAM,GACAM,GACAY,GACAqB,GACAiC,GACAG,IACE17F,GAAQjR,GAEX,OADA8sG,EAAS77F,KAAOA,EACT67F,CACR,GAED,MAAMC,WAAmB9kB,GACxB,WAAA/nF,CAAaF,GACZwoF,MAAOxoF,EACR,EAED,MAAMgtG,WAAoBD,GACzB,WAAA7sG,CAAaF,GACZwoF,MAAOxoF,GACPs9E,QAAQ2vB,IAAK,gBACd,EAED,MAAMC,WAAoBH,GACzB,WAAA7sG,CAAaF,GACZwoF,MAAOxoF,GACPs9E,QAAQ2vB,IAAK,gBACd,EAED,MAAME,WAAoBJ,GACzB,WAAA7sG,CAAaF,GACZwoF,MAAOxoF,GACPs9E,QAAQ2vB,IAAK,gBACd,EAED,MAAMG,WAAoBL,GACzB,WAAA7sG,CAAaF,GACZwoF,MAAOxoF,GACPs9E,QAAQ2vB,IAAK,gBACd,EAED,MAAMI,WAAoBN,GACzB,WAAA7sG,CAAaF,GACZwoF,MAAOxoF,GACPs9E,QAAQ2vB,IAAK,gBACd,EAED,MAAMK,WAAoBP,GACzB,WAAA7sG,CAAaF,GACZwoF,MAAOxoF,GACPs9E,QAAQ2vB,IAAK,gBACd,EAED,MAAMM,WAAoBR,GACzB,WAAA7sG,CAAaF,GACZwoF,MAAOxoF,GACPs9E,QAAQ2vB,IAAK,gBACd,EAED,MAAMO,WAAoBT,GACzB,WAAA7sG,CAAaF,GACZwoF,MAAOxoF,GACPs9E,QAAQ2vB,IAAK,gBACd,EAED,MAAMQ,WAAoBV,GACzB,WAAA7sG,CAAaF,GACZwoF,MAAOxoF,GACPs9E,QAAQ2vB,IAAK,gBACd,EAED,IAAIS,GAAa,CAChBb,cAAe,SAAW57F,EAAMjR,GAC/B,MAAM8sG,EAAW,GAAI,MACpBnqF,EACAqqF,GACAE,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,IACEx8F,GAAQjR,GAEX,OADA8sG,EAAS77F,KAAOA,EACT67F,CACR,GAED,MAAMa,WAAmB1lB,GACxBkc,aAAe,CAAEyJ,YAAa,EAAGC,QAAS,IAC1C,WAAA3tG,CAAaF,GACZwoF,MAAOxoF,GACPL,KAAKiuG,YAAc5tG,EAAEgnF,OACrBrnF,KAAKkuG,QAAU,IAAK,IAAIp1G,MAAOkH,KAAKiuG,cAAgB75G,KACjD8H,GAAOmE,EAAE2nF,UAEb,EAED,MAAMmmB,WAAoB7lB,GACzB,WAAA/nF,CAAaF,EAAGiR,GACfu3E,MAAOxoF,GACPL,KAAKouG,OAAS98F,EACdtR,KAAKquG,WAAahuG,EAAEgnF,OACpBrnF,KAAKsuG,WAAajuG,EAAEgnF,OACpBrnF,KAAKuuG,cAAgBluG,EAAEgnF,OACvBrnF,KAAKwuG,gBAAkB,IAAK,IAAI11G,MAAOkH,KAAKuuG,gBAAkBn6G,KAC3D8H,GAAOmE,EAAE2nF,WAEZhoF,KAAKyuG,iBAAmBpuG,EAAEgnF,MAC3B,CACA,eAAIqnB,GACH,OAAyB,EAAlB1uG,KAAKsuG,UACb,CACA,oBAAIK,GACH,OAAyB,EAAlB3uG,KAAKsuG,UACb,CACA,mBAAIM,GACH,OAAyB,EAAlB5uG,KAAKsuG,UACb,CACA,eAAIO,GACH,OAAyB,EAAlB7uG,KAAKsuG,UACb,CACA,uBAAIQ,GACH,OAAyB,EAAlB9uG,KAAKsuG,UACb,CACA,sBAAIS,GACH,OAAyB,EAAlB/uG,KAAKsuG,UACb,CACA,WAAAlX,CAAatiG,GACZ,MAAMk6G,EAA0B,SAAhBhvG,KAAKouG,OAAoBnB,GAAac,GAGtD,OAFA/tG,KAAKuoF,OAAOxB,gBACX/mF,KAAKwK,MAAQxK,KAAKwuG,gBAAiB15G,GAC7Bk6G,EAAQ9B,cAAeltG,KAAKquG,WAAYruG,KAAKuoF,OACrD,EAED,MAAM0mB,WAA0BrmB,GAC/B,WAAAroF,CAAaqmF,EAAM5b,EAAU/1E,GAC5B,MAAQoL,EAAGA,EAAGs0F,WAAYA,GAAe9L,MAAOjC,EAAM5b,EAAU/1E,GAChE+K,KAAK6pF,aAAexpF,EAAEgnF,OACtBrnF,KAAK8pF,aAAezpF,EAAEgnF,OACtBrnF,KAAKkvG,iBAAmB7uG,EAAE2nF,SAC1BhoF,KAAKmvG,kBAAoB9uG,EAAE2nF,SAC3BhoF,KAAKovG,iBAAmB/uG,EAAE2nF,SACC,IAAtBhoF,KAAK6pF,cAA4C,IAAtB7pF,KAAK8pF,eACpC9pF,KAAKqvG,wBAA0BhvG,EAAE4nF,UAElC,MAAMqnB,IACLtvG,KAAKkvG,kBACLlvG,KAAKmvG,mBACLnvG,KAAKovG,kBAENtmB,GAAQ9oF,KAAM,cAAc,IACtBsvG,EAAoB/K,GAAWgL,OACpClvG,EAAE0mF,gBAAkB4N,EAAa30F,KAAKkvG,iBAC/B,IAAI3K,GAAYlkG,MAExByoF,GAAQ9oF,KAAM,eAAe,IACvBsvG,EAAoB5J,GAAY6J,OACrClvG,EAAE0mF,gBAAkB4N,EAAa30F,KAAKmvG,kBAC/B,IAAIzJ,GAAarlG,MAEzByoF,GAAQ9oF,KAAM,cAAc,IACtBsvG,EAAoBtB,GAAWuB,OACpClvG,EAAE0mF,gBAAkB4N,EAAa30F,KAAKovG,iBAC/B,IAAIpB,GAAY3tG,MAEnBL,KAAKqvG,yBACTvmB,GAAQ9oF,KAAM,qBAAqB,IAC7BsvG,EAAoBE,kBAAkBD,OAC3ClvG,EAAE0mF,gBAAkB4N,EAAa30F,KAAKqvG,wBAC/B,IAAIG,kBAAmBnvG,KAGjC,CACA,mBAAAovG,GACC,OAAOzvG,KAAK0vG,WAAWhL,cAActwG,KAAOuP,GAAOA,EAAEihG,WACtD,CACA,cAAA+K,CAAgB/K,GACf,IAAI76D,EAAS/pC,KAAK0vG,WAAWhL,cAAcjuD,MACxC9yC,GAAOA,EAAEihG,YAAcA,IAE1B5kG,KAAKuoF,OAAOxB,gBACX/mF,KAAK0vG,WAAWllG,MAAQu/B,EAAO86D,aAChC,IAAIp7F,EAAQ,IAAIq7F,GAAa9kG,KAAKuoF,QAElC,OADA9+E,EAAMm7F,UAAYA,EACXn7F,CACR,CACA,iBAAAmmG,CAAmBl2G,GAClB,MAAoB,iBAARA,EACJsG,KAAK2vG,eAAgBj2G,GAEtBA,CACR,CACA,mBAAAm2G,CAAqBC,GAEpB,MAAMC,EAA4C,KADlDD,EAAc9vG,KAAK4vG,kBAAmBE,IACP/K,eACzBiL,EAAYF,EAAY7K,eAAe7wG,KAC1CqR,GAAOA,EAAE0/F,aAGZ,OADK4K,GAAaC,EAAU/qE,QAAS,QAC9B+qE,CACR,CACA,sBAAAC,CAAwBH,GAEvB,IAAI7hG,GADJ6hG,EAAc9vG,KAAK4vG,kBAAmBE,IACb/K,eACzB,GAAgB,IAAX92F,EAAe,CACnBjO,KAAKuoF,OAAOxB,gBAAkB+oB,EAAYtlG,MAAQyD,EAClD,IAAIxE,EAAQ,IAAI47F,GAAcrlG,KAAKuoF,QAGnC,OAFA9+E,EAAM07F,WAAa,GACnB17F,EAAMymG,iBAAmBJ,EAAYlL,UAC9Bn7F,CACR,CACD,CACA,eAAA0mG,CAAiBL,EAAa3K,EAAa,QAC1C,GAAoB,SAAfA,EACJ,OAAOnlG,KAAKiwG,uBAAwBH,GAErC,IAAI/lE,GADJ+lE,EAAc9vG,KAAK4vG,kBAAmBE,IACb7K,eAAexuD,MACrChxC,GAAOA,EAAE0/F,aAAeA,IAE3BnlG,KAAKuoF,OAAOxB,gBAAkB+oB,EAAYtlG,MAAQu/B,EAAOq7D,cACzD,IAAI37F,EAAQ,IAAI47F,GAAcrlG,KAAKuoF,QAEnC,OADA9+E,EAAM07F,WAAaA,EACZ17F,CACR,CACA,WAAA2mG,CAAaC,GACZ,OAAOA,EAAa5K,eAAerxG,KAAOU,GACzCkL,KAAKswG,WAAYx7G,IAEnB,CACA,UAAAw7G,CAAYC,GACX,IAAIxmE,EAQJ,GANCA,EADIjX,SAAUy9E,IAAgBA,EACrBvwG,KAAKwwG,YAAY5K,eAAgB2K,GAEjCvwG,KAAKwwG,YAAY5K,eAAenvD,MACtC5yC,GAAOA,EAAEiiG,aAAeyK,KAGrBxmE,EAAS,OAChB/pC,KAAKuoF,OAAOxB,gBACX/mF,KAAKwwG,YAAYhmG,MAAQu/B,EAAOg8D,cACjC,IAAIt8F,EAAQ,IAAIu8F,GAAchmG,KAAKuoF,QAEnC,OADA9+E,EAAMq8F,WAAa/7D,EAAO+7D,WACnBr8F,CACR,CACA,UAAAgnG,CAAYC,GACX,OAAOA,EAAavK,kBAAkB/xG,KAAOU,GAC5CkL,KAAK2wG,UAAW77G,IAElB,CACA,SAAA67G,CAAWC,EAAat/F,GACvB,IAAIu/F,EAAe7wG,KAAK8wG,WAAW5C,QAAS0C,GAE5C,OADA5wG,KAAKuoF,OAAOxB,gBAAkB/mF,KAAK8wG,WAAWtmG,MAAQqmG,EAC/C,IAAI1C,GAAanuG,KAAKuoF,OAAQj3E,EACtC,EAUD,IAAIs7E,GAASx2F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAM6wG,KAR/C,cAAmB9B,GAClB,WAAA1uG,CAAaqmF,EAAM5b,GAClB6d,MAAOjC,EAAM5b,EAAU,OACxB,CACA,SAAA2lC,CAAWC,GACV,OAAO/nB,MAAM8nB,UAAWC,EAAa,OACtC,KAWG/jB,GAASz2F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAM8wG,KAR/C,cAAmB/B,GAClB,WAAA1uG,CAAaqmF,EAAM5b,GAClB6d,MAAOjC,EAAM5b,EAAU,OACxB,CACA,SAAA2lC,CAAWC,GACV,OAAO/nB,MAAM8nB,UAAWC,EAAa,OACtC,KAYD,MAAMK,WAAwB3oB,GAC7B,WAAA/nF,CAAaF,GACZwoF,MAAOxoF,GACPL,KAAKkxG,WAAa7wG,EAAEgnF,OACpBrnF,KAAKmxG,gBAAkB,IAAK,IAAIr4G,MAAOkH,KAAKkxG,aAAe98G,KACxD8H,GAAO,IAAIk1G,GAAmB/wG,IAElC,CACA,WAAAgxG,CAAaC,GACZ,IAAIvnE,EAAS/pC,KAAKmxG,gBAAiBG,GACnC,IAAOvnE,EAAS,MAAO,GACvB,IAAI97B,EAASjO,KAAKwK,MAAQu/B,EAAOwnE,aAEjC,OADAvxG,KAAKuoF,OAAOxB,gBAAkB94E,EACvBjO,KAAKuoF,OAAOH,UAAWr+C,EAAOynE,aACtC,CACA,mBAAAC,CAAqB1e,GACpB,IAAInpE,EAAK5pB,KAAKmxG,gBAAgB/rD,WAC3BjlD,GAAOA,EAAE01F,cAAgB9C,GAAWA,GAAW5yF,EAAEqhG,aAEpD,OAAa,IAAR53E,EAAmB,GACjB5pB,KAAKqxG,YAAaznF,EAC1B,EAED,MAAMwnF,GACL,WAAA7wG,CAAaF,GACZL,KAAK61F,aAAex1F,EAAEgnF,OACtBrnF,KAAKwhG,WAAanhG,EAAEgnF,OACpBrnF,KAAKuxG,aAAelxG,EAAE4nF,SACtBjoF,KAAKwxG,aAAenxG,EAAE6mF,MACvB,EAED,IAAI4F,GAAQ12F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAMqjB,IAxC9C,cAAkBqlE,GACjB,WAAAroF,CAAaqmF,EAAM5b,GAClB,MAAQ3qE,EAAGA,GAAMwoF,MAAOjC,EAAM5b,GAC9BhrE,KAAKggC,QAAU3/B,EAAEgnF,OACjBrnF,KAAK0xG,wBAA0BrxG,EAAE4nF,SACjC5nF,EAAE0mF,gBAAkB/mF,KAAK20F,WAAa30F,KAAK0xG,wBAC3C1xG,KAAK2xG,aAAe,IAAIV,GAAiB5wG,EAC1C,KAuED,MAAMuxG,GACL,WAAArxG,CAAaF,GACZL,KAAKqjD,IAAMhjD,EAAEgjD,IACbrjD,KAAK6xG,SAAWxxG,EAAE8mF,MAClBnnF,KAAK8xG,aAAezxG,EAAE8mF,MACtBnnF,KAAK+xG,SAAW1xG,EAAE8mF,MAClBnnF,KAAK4N,MAAQvN,EAAEuN,MAAO,IACtB5N,KAAKgyG,WAAa3xG,EAAEgnF,MACrB,EAED,MAAM4qB,GACL,WAAA1xG,CAAaF,EAAG6xG,EAAWptG,GAC1B,IAAI0F,EAAQnK,EAAE0mF,gBACd/mF,KAAKinG,gBAAkB5mG,EAAEgnF,OACzBhnF,EAAEgnF,OACFrnF,KAAKmyG,YAAc,IAAK,IAAIr5G,MAAOo5G,IAAc99G,KAC9C8H,GAAOmE,EAAE8mF,QAEP9mF,EAAE0mF,gBAAkBv8E,EAAQ1F,IAChC9E,KAAKoyG,iBAAmB/xG,EAAEgnF,OAE5B,EAED,IAAI0F,GAAS32F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAMmyG,KA5D/C,cAAmBzpB,GAClB,WAAAroF,CAAaqmF,EAAM5b,GAClB,MAAQ3qE,EAAGA,GAAMwoF,MAAOjC,EAAM5b,GAC9BhrE,KAAK6pF,aAAexpF,EAAEgnF,OACtBrnF,KAAK8pF,aAAezpF,EAAEgnF,OACtBrnF,KAAKsyG,gBAAkBjyG,EAAE2nF,SACzB3nF,EAAEgnF,OACFrnF,KAAKkyG,UAAY7xG,EAAEgnF,OACnBrnF,KAAKuyG,SAAWlyG,EAAEgnF,OAClBrnF,KAAKwyG,cAAgBnyG,EAAEgnF,OACvBrnF,KAAKyyG,aAAepyG,EAAEgnF,OACtB,MAAMqrB,EAAY1yG,KAAK20F,WAAa30F,KAAKsyG,gBACzCxpB,GAAQ9oF,KAAM,QAAQ,KACrBK,EAAE0mF,gBAAkB2rB,EACb,IAAK,IAAI55G,MAAOkH,KAAKkyG,YAAc99G,KACvC8H,GAAO,IAAI01G,GAAqBvxG,QAGpC,MAAMsyG,EAAgBD,EAAY1yG,KAAKkyG,UAAYlyG,KAAKuyG,SACxDzpB,GAAQ9oF,KAAM,aAAa,KAC1B,IAAI4yG,EAAY,GAChB,IAAM,IAAIp5G,EAAI,EAAGA,EAAIwG,KAAKwyG,cAAeh5G,IACxC6G,EAAE0mF,gBAAkB4rB,EAAgBn5G,EAAIwG,KAAKyyG,aAC7CG,EAAUh+G,KACT,IAAIq9G,GAAgB5xG,EAAGL,KAAKkyG,UAAWlyG,KAAKyyG,eAG9C,OAAOG,CAAS,GAElB,CACA,gBAAAC,GACC,OAAO7yG,KAAK8yG,KAAK1+G,KAAO2P,GAAOA,EAAEs/C,KAClC,CACA,OAAA0vD,CAAS99G,GACR,OAAO+K,KAAK8yG,KAAKr8D,MAAQ1yC,GAAOA,EAAEs/C,MAAQpuD,GAC3C,KAmCG+3F,GAAQ52F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAM8yG,IAT9C,cAAkBpqB,GACjB,WAAAroF,CAAaqmF,EAAM5b,GAClB,MAAQ3qE,EAAGA,GAAMwoF,MAAOjC,EAAM5b,GACxBpqE,EAAIgmF,EAAK3tF,OAAS,EACxB6vF,GAAQ9oF,KAAM,SAAS,IACtB,IAAK,IAAIlH,MAAO8H,IAAMxM,KAAO8H,GAAOmE,EAAEynF,SAExC,KAWGmF,GAAS72F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAM+yG,KAR/C,cAAmBrqB,GAClB,WAAAroF,CAAaqmF,EAAM5b,GAClB,MAAQ3qE,EAAGA,GAAMwoF,MAAOjC,EAAM5b,GAC9B8d,GAAQ9oF,KAAM,gBAAgB,IAC7B,IAAK,IAAIlH,MAAO8tF,EAAK3tF,SAAW7E,KAAO8H,GAAOmE,EAAEkhB,SAElD,KAeD,MAAM2xF,GACL,WAAA3yG,CAAaF,GACZL,KAAKmzG,aAAe9yG,EAAEgnF,OACtBrnF,KAAKozG,kBAAoB/yG,EAAEgnF,MAC5B,EAED,IAAI6F,GAAS92F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAMmzG,KAlB/C,cAAmBzqB,GAClB,WAAAroF,CAAaqmF,EAAM5b,GAClB,MAAQ3qE,EAAGA,GAAMwoF,MAAOjC,EAAM5b,GAC9BhrE,KAAKggC,QAAU3/B,EAAEgnF,OACjBrnF,KAAKszG,UAAYjzG,EAAEgnF,OAKnByB,GAAQ9oF,KAAM,cAJC,IACd,IAAK,IAAIlH,MAAOkH,KAAKszG,YAAcl/G,KAChC8H,GAAO,IAAIg3G,GAAW7yG,MAG3B,KAkBG8sF,GAAS/2F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAMqzG,KAT/C,cAAmB3qB,GAClB,WAAAroF,CAAaqmF,EAAM5b,GAClB6d,MAAOjC,EAAM5b,EACd,CACA,YAAAwoC,CAAcvlG,EAAQhV,GAErB,OADA+G,KAAKuoF,OAAOxB,gBAAkB/mF,KAAK20F,WAAa1mF,EACzCjO,KAAKuoF,OAAOH,UAAWnvF,EAC/B,KAwBGm0F,GAASh3F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAMuzG,KArB/C,cAAmB7qB,GAClB,WAAAroF,CAAaqmF,EAAM5b,EAAU9yD,GAC5B,MAAQ7X,EAAGA,GAAMwoF,MAAOjC,EAAM5b,GACxBpqE,EAAIsX,EAAOqhF,KAAKD,UAAY,EACI,IAAjCphF,EAAOnK,KAAKsqF,kBAChBr4F,KAAK0zG,IAAK,EACV5qB,GAAQ9oF,KAAM,WAAW,IACxB,IAAK,IAAIlH,MAAO8H,IAAMxM,KAAO8H,GAAOmE,EAAE2nF,cAGvCc,GAAQ9oF,KAAM,WAAW,IACxB,IAAK,IAAIlH,MAAO8H,IAAMxM,KAAO8H,GAAOmE,EAAE4nF,YAGzC,CACA,2BAAA0rB,CAA6B5gB,GAC5B,IAAI9kF,EAASjO,KAAK4zG,QAAS7gB,GAAY/yF,KAAK0zG,GAAK,EAAI,EAErD,MAAO,CAAEzlG,OAAQA,EAAQhV,QADR+G,KAAK4zG,QAAS7gB,EAAU,GAAM/yF,KAAK0zG,GAAK,EAAI,GACfzlG,EAC/C,KAWGo/E,GAASj3F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAM2zG,KAR/C,cAAmBjrB,GAClB,WAAAroF,CAAaqmF,EAAM5b,GAClB,MAAQ3qE,EAAGA,GAAMwoF,MAAOjC,EAAM5b,GAC9B8d,GAAQ9oF,KAAM,gBAAgB,IAC7B,IAAK,IAAIlH,MAAO8tF,EAAK3tF,SAAW7E,KAAO8H,GAAOmE,EAAEkhB,SAElD,KASG+rE,GAAQl3F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAM4zG,IAN9C,cAAkBlrB,GACjB,WAAAroF,CAAaqmF,EAAM5b,GAClB,MAAQ3qE,EAAGA,GAAMwoF,MAAOjC,EAAM5b,GAC9B8d,GAAQ9oF,KAAM,QAAQ,IAAMK,EAAE+nF,aAC/B,KASGmF,GAASn3F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAM6zG,KAN/C,cAAmBnrB,GAClB,WAAAroF,CAAaqmF,EAAM5b,GAClB,MAAQ3qE,EAAGA,GAAMwoF,MAAOjC,EAAM5b,GAC9B8d,GAAQ9oF,KAAM,QAAQ,IAAMK,EAAE+nF,aAC/B,KAiBD,MAAM4rB,GACL,WAAAzzG,CAAaF,GACZL,KAAKi0G,WAAa5zG,EAAEgnF,OACpBrnF,KAAKk0G,YAAc7zG,EAAE+mF,KACtB,EAED,IAAIoG,GAASp3F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAMi0G,KApB/C,cAAmBvrB,GAClB,WAAAroF,CAAaqmF,EAAM5b,GAClB,MAAQ3qE,EAAGA,GAAMwoF,MAAOjC,EAAM5b,GAC9BhrE,KAAK6pF,aAAexpF,EAAEgnF,OACtBrnF,KAAK8pF,aAAezpF,EAAEgnF,OACtBrnF,KAAKo0G,mBAAqB/zG,EAAE+mF,MAC5BpnF,KAAKq0G,sBAAwBh0G,EAAEgnF,OAC/ByB,GAAQ9oF,KAAM,sBAAsB,IACnC,IAAK,IAAIlH,MAAOkH,KAAKq0G,wBAA0BjgH,KAC5C8H,GAAO,IAAI83G,GAAmB3zG,MAGnC,KASD,MAAMi0G,GACL,WAAA/zG,CAAaF,GACZL,KAAKu0G,yBAA2Bl0G,EAAE4nF,SAClCjoF,KAAKw0G,gBAAkBn0G,EAAE6mF,OACzBlnF,KAAKy0G,uBAAyBp0G,EAAE6mF,OAChClnF,KAAK00G,SAAWr0G,EAAE6mF,OAClBlnF,KAAK20G,KAAO,IAAIC,GAAiBv0G,GACjCL,KAAK60G,KAAO,IAAID,GAAiBv0G,GACjCL,KAAK80G,gBAAkBz0G,EAAEgnF,OACzBrnF,KAAK+0G,cAAgB10G,EAAEgnF,OACvBrnF,KAAKg1G,MAAQ30G,EAAEkhB,MACfvhB,KAAKi1G,MAAQ50G,EAAEkhB,MACfvhB,KAAKk1G,SAAW70G,EAAEkhB,MAClBvhB,KAAK4N,MAAQvN,EAAE+9F,IAChB,EAED,MAAM+W,GACL,WAAA50G,CAAaF,GACZL,KAAK20G,KAAO,IAAIC,GAAiBv0G,GACjCL,KAAK60G,KAAO,IAAID,GAAiBv0G,GACjCL,KAAKg1G,MAAQ30G,EAAEkhB,MACfvhB,KAAKi1G,MAAQ50G,EAAEkhB,MACfvhB,KAAKo1G,gBAAkB/0G,EAAEkhB,MACzBvhB,KAAKq1G,gBAAkBh1G,EAAEkhB,KAC1B,EAED,MAAMqzF,GACL,WAAAr0G,CAAaF,GACZL,KAAK8xF,SAAWzxF,EAAE+9F,KAClBp+F,KAAKgyF,UAAY3xF,EAAE+9F,KACnBp+F,KAAKs1G,SAAWj1G,EAAEkhB,MAClBvhB,KAAKu1G,oBAAsBl1G,EAAE+9F,KAC7Bp+F,KAAKw1G,sBAAwBn1G,EAAE+9F,KAC/Bp+F,KAAK+4F,YAAc14F,EAAE+9F,KACrBp+F,KAAKy1G,YAAcp1G,EAAE+9F,KACrBp+F,KAAK01G,aAAer1G,EAAE+9F,KACtBp+F,KAAK21G,YAAct1G,EAAE+9F,KACrBp+F,KAAK41G,WAAav1G,EAAE+9F,KACpBp+F,KAAK61G,KAAOx1G,EAAE+9F,KACdp+F,KAAK81G,KAAOz1G,EAAE+9F,IACf,EAED,MAAM2X,WAAantB,GAClB,WAAAroF,CAAaqmF,EAAM5b,EAAU/1E,GAC5B,MAAQoL,EAAGA,GAAMwoF,MAAOjC,EAAM5b,EAAU/1E,GACxC+K,KAAK6pF,aAAexpF,EAAEgnF,OACtBrnF,KAAK8pF,aAAezpF,EAAEgnF,OACtBrnF,KAAKg2G,SAAW31G,EAAE6mF,OAClB4B,GAAQ9oF,KAAM,eAAe,IAC5B,IAAK,IAAIlH,MAAOkH,KAAKg2G,WAAa5hH,KAC/B8H,GAAO,IAAIo4G,GAAYj0G,MAG5B,EAED,IAAIotF,GAASr3F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAM61G,KAAMA,KACrD,MAAME,WAAartB,GAClB,WAAAroF,CAAaqmF,EAAM5b,EAAU/1E,GAC5B,MAAQoL,EAAGA,GAAMwoF,MAAOjC,EAAM5b,EAAU/1E,GACxC+K,KAAK6pF,aAAexpF,EAAEgnF,OACtBrnF,KAAK8pF,aAAezpF,EAAEgnF,MACvB,EAED,IAAIqG,GAASt3F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAM+1G,KAAMA,KAcjDtoB,GAASv3F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAMg2G,KAb/C,cAAmBttB,GAClB,WAAAroF,CAAaqmF,EAAM5b,GAClB,MAAQ3qE,EAAGA,GAAMwoF,MAAOjC,EAAM5b,GAC9BhrE,KAAK6pF,aAAexpF,EAAEgnF,OACtBrnF,KAAK8pF,aAAezpF,EAAEgnF,OACtBrnF,KAAKg2G,SAAW31G,EAAE6mF,OAClB4B,GAAQ9oF,KAAM,gBAAgB,IAC7B,IAAK,IAAIlH,MAAOkH,KAAKg2G,WAAa5hH,KAC/B8H,GAAO,IAAIi5G,GAAa90G,MAG7B,KAQGutF,GAASx3F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAMi2G,KAL/C,cAAmBJ,GAClB,WAAAx1G,CAAaqmF,EAAM5b,GAClB6d,MAAOjC,EAAM5b,EAAU,OACxB,KAQG6iB,GAASz3F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAMk2G,KAL/C,cAAmBH,GAClB,WAAA11G,CAAaqmF,EAAM5b,GAClB6d,MAAOjC,EAAM5b,EAAU,OACxB,KAcG8iB,GAAS13F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAMm2G,KAX/C,cAAmBztB,GAClB,WAAAroF,CAAaqmF,EAAM5b,GAClB,MAAQ3qE,EAAGA,GAAMwoF,MAAOjC,EAAM5b,GAC9BhrE,KAAKggC,QAAU3/B,EAAEgnF,OACjBrnF,KAAK4N,MAAQvN,EAAEuN,MAAO,IACtB5N,KAAKs2G,WAAaj2G,EAAE6mF,OACpB4B,GAAQ9oF,KAAM,iBAAiB,IAC9B,IAAK,IAAIlH,MAAOkH,KAAKs2G,aAAeliH,KAAO8H,GAAOmE,EAAE4nF,YAEtD,KAiDD,MAAMsuB,GACL,WAAAh2G,CAAaF,GACZL,KAAKw2G,IAAMn2G,EAAEgnF,OACbrnF,KAAKy2G,gBAAkBp2G,EAAEgnF,OACzBrnF,KAAK02G,UAAYr2G,EAAEgnF,MACpB,EAED,MAAMsvB,GACL,WAAAp2G,CAAaF,GACZL,KAAKw2G,IAAMn2G,EAAEgnF,OACbrnF,KAAK42G,aAAev2G,EAAEgnF,MACvB,EAED,IAAI0G,GAAS33F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAM22G,KA3D/C,cAAmBjuB,GAClB,WAAAroF,CAAaqmF,EAAM5b,GAClB,MAAQ3qE,EAAGA,GAAMwoF,MAAOjC,EAAM5b,GAC9BhrE,KAAKggC,QAAU3/B,EAAEgnF,OACjBrnF,KAAK82G,oBAAsBz2G,EAAEgnF,OAC7BrnF,KAAK+2G,uBAAyB12G,EAAE4nF,SAChCjoF,KAAKg3G,mBAAqB32G,EAAE4nF,SAC5BjoF,KAAKi3G,gBAAkB52G,EAAEgnF,MAC1B,CACA,kBAAA6vB,CAAoBnkB,GACnB,IAAIvoF,EAAQxK,KAAK20F,WAAa30F,KAAK+2G,uBACnC/2G,KAAKuoF,OAAOxB,gBAAkBv8E,EAC9B,IAAImpF,EAAQ,IAAI4iB,GAAiBv2G,KAAKuoF,QAClC4uB,EAAUxjB,EAAM6iB,IAChB3sG,EAAM7J,KAAK20F,WAAa30F,KAAKg3G,mBAAqB,EACtDh3G,KAAKuoF,OAAOxB,gBAAkBl9E,EAC9B,IAAIa,EAAO,IAAI6rG,GAAiBv2G,KAAKuoF,QACjC6uB,EAAS1sG,EAAK8rG,IAClB,GAAKW,IAAYpkB,EAAU,OAAOY,EAClC,GAAKyjB,IAAWrkB,EAAU,OAAOroF,EACjC,KACMF,IAAUX,GADD,CAEd,IAAIwtG,EAAM7sG,GAAUX,EAAMW,GAAU,GACpCxK,KAAKuoF,OAAOxB,gBAAkBswB,EAC9B,IAAIC,EAAS,IAAIf,GAAiBv2G,KAAKuoF,QACnCgvB,EAAQD,EAAOd,IACnB,GAAKe,IAAUxkB,EAAU,OAAOukB,EACtBC,EAAQxkB,EACjBlpF,EAAMwtG,EACKE,EAAQxkB,IACnBvoF,EAAQ6sG,EAEV,CACA,OAAO,CACR,CACA,SAAAG,CAAWzkB,GACV,IAAIhpD,EAAS/pC,KAAKk3G,mBAAoBnkB,GAKtC,OAJA/yF,KAAKuoF,OAAOxB,gBACX/mF,KAAK20F,WACL30F,KAAKg3G,mBACL,EAAIjtE,EAAO0sE,gBACL,IAAK,IAAI39G,MAAOixC,EAAO2sE,YAActiH,KACzC8H,GAAO,IAAIy6G,GAAat2G,IAE5B,KAuDD,MAAMo3G,GACL,WAAAl3G,CAAaF,GACZL,KAAK03G,KAAOr3G,EAAEkhB,MACdvhB,KAAK23G,MAAQt3G,EAAEkhB,MACfvhB,KAAK43G,IAAMv3G,EAAEkhB,MACbvhB,KAAK20B,MAAQt0B,EAAEkhB,KAChB,EAED,MAAMs2F,GACL,WAAAt3G,CAAaF,EAAGy3G,GACf93G,KAAK+3G,aAAe,IAAK,IAAIj/G,MAAOg/G,IAAgB1jH,KACjD8H,GAAOmE,EAAE6mF,QAEb,EAED,MAAM8wB,GACL,WAAAz3G,CAAaF,EAAGy3G,GACf93G,KAAKi4G,cAAgB,IAAK,IAAIn/G,MAAOg/G,IAAgB1jH,KAClD8H,GAAOmE,EAAEgnF,QAEb,EAED,MAAM6wB,GACL,WAAA33G,CAAaF,EAAGy3G,GACf93G,KAAKm4G,mBAAqB,IAAK,IAAIr/G,MAAOg/G,IAAgB1jH,KACvD8H,GAAOmE,EAAEgnF,QAEb,EAED,IAAI2G,GAAS53F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAMk4G,KApE/C,cAAmBxvB,GAClB,WAAAroF,CAAaqmF,EAAM5b,GAClB,MAAQ3qE,EAAGA,GAAMwoF,MAAOjC,EAAM5b,GAC9BhrE,KAAKggC,QAAU3/B,EAAEgnF,OACjBrnF,KAAKq4G,kBAAoBh4G,EAAEgnF,OAC3B,MAAMywB,EAAgB93G,KAAK83G,YAAcz3G,EAAEgnF,OAC3CrnF,KAAKs4G,gBAAkBj4G,EAAEgnF,OACzBrnF,KAAKu4G,uBAAyBl4G,EAAE4nF,SAChCjoF,KAAKw4G,mBAAqB,IAAK,IAAI1/G,MAAOkH,KAAK83G,cAAgB1jH,KAC5D8H,GAAOmE,EAAEgnF,SAEZyB,GAAQ9oF,KAAM,gBAAgB,KAC7BK,EAAE0mF,gBAAkB/mF,KAAK20F,WAAa30F,KAAKu4G,uBACpC,IAAK,IAAIz/G,MAAOkH,KAAKs4G,kBAAoBlkH,KAC7C8H,GAAO,IAAIu7G,GAAap3G,QAGN,IAAjBL,KAAKggC,UACThgC,KAAKy4G,uBAAyBp4G,EAAE4nF,SAChCjoF,KAAK04G,wBAA0Br4G,EAAE4nF,SACjCjoF,KAAK24G,6BAA+Bt4G,EAAE4nF,SACtCa,GAAQ9oF,KAAM,oBAAoB,KACjCK,EAAE0mF,gBACD/mF,KAAK20F,WAAa30F,KAAKy4G,uBACjB,IAAIZ,GAAkBx3G,EAAGy3G,MAEjChvB,GAAQ9oF,KAAM,qBAAqB,KAClCK,EAAE0mF,gBACD/mF,KAAK20F,WAAa30F,KAAK04G,wBACjB,IAAIV,GAAoB33G,EAAGy3G,MAEnChvB,GAAQ9oF,KAAM,0BAA0B,KACvCK,EAAE0mF,gBACD/mF,KAAK20F,WAAa30F,KAAK24G,6BACjB,IAAIT,GAAwB73G,EAAGy3G,MAGzC,KAgDD,MAAMc,GACL,WAAAr4G,CAAaF,GACZL,KAAKqvF,OAAShvF,EAAE6mF,OAChBlnF,KAAK/G,OAASoH,EAAE6mF,OAChBlnF,KAAKiO,OAAS5N,EAAE4nF,QACjB,EAED,MAAM4wB,GACL,WAAAt4G,CAAaF,GACZA,EAAEgnF,OACFhnF,EAAEgnF,OACFrnF,KAAK84G,gBAAkBz4G,EAAE6mF,OACzBlnF,KAAK0pF,UAAYrpF,EAAE+nF,UAAWpoF,KAAK84G,gBACpC,EAED,IAAI7qB,GAAS73F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAM64G,KA/B/C,cAAmBnwB,GAClB,WAAAroF,CAAaqmF,EAAM5b,GAClB,MAAQ3qE,EAAGA,GAAMwoF,MAAOjC,EAAM5b,GAC9BhrE,KAAKggC,QAAU3/B,EAAE6mF,OACjBlnF,KAAKg5G,cAAgB34G,EAAEgnF,OACvBrnF,KAAK4N,MAAQvN,EAAEgnF,OACfrnF,KAAKi5G,iBAAmB,IAAK,IAAIngH,MAAOkH,KAAKg5G,gBAAkB5kH,KAC5D8H,GAAO,IAAI08G,GAAiBv4G,IAEhC,CACA,OAAA64G,CAASC,GACR,MAAMpvE,EAAS/pC,KAAKi5G,iBAAkBE,GAEtC,OADAn5G,KAAKuoF,OAAOxB,gBAAkB/mF,KAAK20F,WAAa5qD,EAAO97B,OAChD,IAAI4qG,GAAuB74G,KAAKuoF,OACxC,KA8BD,MAAM6wB,GACL,WAAA74G,CAAaF,EAAGi5F,GACft5F,KAAKq5G,UAAYh5G,EAAEkhB,MACnBvhB,KAAKmwC,SAAW9vC,EAAEkhB,MAClBvhB,KAAKs5G,OAASj5G,EAAE+nF,UAAWkR,EAC5B,EAED,IAAIpL,GAAS93F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAMq5G,KAnB/C,cAAmB3wB,GAClB,WAAAroF,CAAaqmF,EAAM5b,EAAU9yD,GAC5B,MAAQ7X,EAAGA,GAAMwoF,MAAOjC,EAAM5b,GACxBsuB,EAAYphF,EAAOmhF,KAAKC,UAC9Bt5F,KAAKggC,QAAU3/B,EAAEgnF,OACjBrnF,KAAKw5G,WAAan5G,EAAE+mF,MACpBpnF,KAAKy5G,iBAAmBp5G,EAAEq5G,MAC1B15G,KAAKy/C,QAAU,IAAK,IAAI3mD,MAAO0gH,aAAeplH,KAC3C8H,GAAO,IAAIk9G,GAAc/4G,EAAGi5F,IAEhC,KA4BD,MAAMqgB,GACL,WAAAp5G,CAAaF,GACZL,KAAKggC,QAAU3/B,EAAEgnF,OACjBrnF,KAAK/G,OAASoH,EAAEgnF,OAChBrnF,KAAK45G,SAAWv5G,EAAEuN,MAAO,GACzB5N,KAAKqvF,OAAShvF,EAAEkhB,MACK,IAAhBvhB,KAAKqvF,SACTrvF,KAAK65G,OAASx5G,EAAEgnF,OAChBrnF,KAAKkpF,YAAc7oF,EAAEgnF,OACrBrnF,KAAKmpF,cAAgB9oF,EAAEgnF,OACvBrnF,KAAKopF,WAAa/oF,EAAEgnF,OACpByB,GAAQ9oF,KAAM,SAAS,IACtB,IAAK,IAAIlH,MAAOkH,KAAK65G,SAAWzlH,KAAO8H,GAAO,IAAI49G,GAAMz5G,QAGrC,IAAhBL,KAAKqvF,QACT1R,QAAQiO,KACP,mGAGH,CACA,cAAImuB,GACH,OAAO/5G,KAAK45G,SAAU,EACvB,CACA,WAAII,GACH,OAAOh6G,KAAK45G,SAAU,EACvB,CACA,eAAIK,GACH,OAAOj6G,KAAK45G,SAAU,EACvB,CACA,YAAIM,GACH,OAAOl6G,KAAK45G,SAAU,EACvB,EAED,MAAME,GACL,WAAAv5G,CAAaF,GACZL,KAAK+P,KAAO1P,EAAEgnF,OACdrnF,KAAKwvC,MAAQnvC,EAAEgnF,OACfrnF,KAAKrL,MAAQ0L,EAAEynF,KAChB,EAED,IAAIqG,GAAS/3F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAMi6G,KA3D/C,cAAmBvxB,GAClB,WAAAroF,CAAaqmF,EAAM5b,GAClB,MAAQ3qE,EAAGA,GAAMwoF,MAAOjC,EAAM5b,GAC9BhrE,KAAKggC,QAAU3/B,EAAEgnF,OACjBrnF,KAAKo6G,QAAU/5G,EAAEgnF,OACjByB,GAAQ9oF,KAAM,UAAU,KACvB,IAAIiO,EAASjO,KAAK20F,WAAa,EAC/B,MAAMz8E,EAAS,GACf,IAAM,IAAI1e,EAAI,EAAGA,EAAIwG,KAAKo6G,QAAS5gH,IAAM,CACxC6G,EAAE0mF,gBAAkB94E,EACpB,IAAIk/F,EAAW,IAAIwM,GAAct5G,GACjC6X,EAAOtjB,KAAMu4G,GACbl/F,GAAUk/F,CACX,CACA,OAAOj1F,CAAM,GAEf,KAoDGk2E,GAASh4F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAMm6G,KAR/C,cAAmBzxB,GAClB,WAAAroF,CAAaqmF,EAAM5b,GAClB,MAAQ3qE,EAAGA,GAAMwoF,MAAOjC,EAAM5b,GAC9BhrE,KAAKggC,QAAU3/B,EAAEgnF,OACjBrnF,KAAKs5F,UAAYj5F,EAAEgnF,OACnBrnF,KAAKs6G,MAAQj6G,EAAE+nF,UAAWpoF,KAAKs5F,UAChC,KAsBGjL,GAASj4F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAMq6G,KAnB/C,cAAmB3xB,GAClB,WAAAroF,CAAaqmF,EAAM5b,GAClB,MAAQ3qE,EAAGA,GAAMwoF,MAAOjC,EAAM5b,GAC9BhrE,KAAKggC,QAAU3/B,EAAEgnF,OACjBrnF,KAAKw6G,gBAAkBn6G,EAAEgnF,OACzBrnF,KAAKy6G,gBAAkBp6G,EAAE2nF,SACzBhoF,KAAK06G,cAAgBr6G,EAAEgnF,OACvBrnF,KAAK26G,wBAA0Bt6G,EAAE2nF,SACjCc,GAAQ9oF,KAAM,oBAAoB,IACjC,IAAK,IAAIlH,MAAOkH,KAAKw6G,kBAAoBpmH,KAAO8H,GAC/CmE,EAAE+nF,UAAWpoF,KAAKw6G,qBAGpB78B,QAAQiO,KAAM,iDACdjO,QAAQiO,KACP,4EAEF,KAeD,MAAMgvB,GACL,WAAAr6G,CAAao0F,EAAYt0F,GACxBL,KAAK20F,WAAaA,EAClB30F,KAAKuoF,OAASloF,EACdL,KAAKqjD,IAAMhjD,EAAEgjD,IACbrjD,KAAK66G,WAAax6G,EAAE4nF,SACpBjoF,KAAK86G,WAAaz6G,EAAE6mF,MACrB,CACA,OAAAgyB,GAEC,OADAl5G,KAAKuoF,OAAOwyB,aAAe/6G,KAAK20F,WAAa30F,KAAK66G,WAC3C76G,KAAKuoF,OAAOH,UAAWpoF,KAAK86G,WACpC,EAED,IAAIxsB,GAASl4F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAM0nC,KAzB/C,cAAmBghD,GAClB,WAAAroF,CAAaqmF,EAAM5b,GAClB,MAAQ3qE,EAAGA,GAAMwoF,MAAOjC,EAAM5b,GAC9BhrE,KAAKggC,QAAU3/B,EAAE6mF,OACjBlnF,KAAK4N,MAAQvN,EAAE6mF,OACf7mF,EAAE6mF,OACFlnF,KAAKg7G,cAAgB36G,EAAE6mF,OACvBlnF,KAAKi7G,SAAW,IAAK,IAAIniH,MAAOkH,KAAKg7G,gBAAkB5mH,KACpD8H,GAAO,IAAI0+G,GAAS56G,KAAK20F,WAAYt0F,IAEzC,KA2BGkuF,GAASn4F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAMg7G,KAX/C,cAAmBtyB,GAClB,WAAAroF,CAAaqmF,EAAM5b,GAClB6d,MAAOjC,EAAM5b,GACb2S,QAAQiO,KACP,iFAEDjO,QAAQiO,KACP,4EAEF,KAoBD,MAAMuvB,GACL,WAAA56G,CAAaF,GACZL,KAAKo7G,SAAW/6G,EAAEkhB,MAClBvhB,KAAKq7G,OAASh7G,EAAEkhB,MAChBvhB,KAAKs7G,YAAcj7G,EAAEkhB,MACrBvhB,KAAKu7G,UAAYl7G,EAAEkhB,KACpB,EAED,MAAMi6F,GACL,WAAAj7G,CAAaF,GACZL,KAAKy7G,KAAOp7G,EAAEgnF,OACdrnF,KAAK07G,QAAUr7G,EAAEkhB,MACjBvhB,KAAK27G,MAAQt7G,EAAEkhB,MACfvhB,KAAKy/C,QAAU,IAAK,IAAI3mD,MAAOkH,KAAKy7G,OAASrnH,KAC1C8H,GAAO,IAAI0/G,GAAQv7G,IAEvB,EAED,MAAMu7G,GACL,WAAAr7G,CAAaF,GACZL,KAAK67G,WAAax7G,EAAEgnF,OACpBrnF,KAAKi4F,KAAO53F,EAAE+mF,MACdpnF,KAAK+3F,KAAO13F,EAAE+mF,KACf,EAED,IAAIoH,GAASp4F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAM47G,KA1C/C,cAAmBlzB,GAClB,WAAAroF,CAAaqmF,EAAM5b,GAClB,MAAQ3qE,EAAGA,GAAMwoF,MAAOjC,EAAM5b,GAC9BhrE,KAAKggC,QAAU3/B,EAAEgnF,OACjBrnF,KAAK+7G,QAAU17G,EAAEgnF,OACjBrnF,KAAKg8G,UAAY37G,EAAEgnF,OACnBrnF,KAAKi8G,UAAY,IAAK,IAAInjH,MAAOkH,KAAKg8G,YAAc5nH,KACjD8H,GAAO,IAAIi/G,GAAY96G,KAE1BL,KAAK4zG,QAAU,IAAK,IAAI96G,MAAOkH,KAAKg8G,YAAc5nH,KAC/C8H,GAAOmE,EAAE2nF,WAEZhoF,KAAKk8G,WAAa,IAAK,IAAIpjH,MAAOkH,KAAK+7G,UAAY3nH,KAChD8H,GAAO,IAAIs/G,GAAWn7G,IAE1B,KAmDGouF,GAASr4F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAMi8G,KAvB/C,cAAmBvzB,GAClB,WAAAroF,CAAaqmF,EAAM5b,GAClB,MAAQ3qE,EAAGA,GAAMwoF,MAAOjC,EAAM5b,GAC9BhrE,KAAKggC,QAAU3/B,EAAE8mF,MACjBnnF,KAAKo8G,OAASp8G,KAAKq8G,iBAAmBh8G,EAAE+mF,MACxCpnF,KAAKs8G,QAAUt8G,KAAKu8G,kBAAoBl8G,EAAE+mF,MAC1CpnF,KAAKw4F,QAAUx4F,KAAKw8G,gBAAkBn8G,EAAE+mF,MACxCpnF,KAAKy8G,iBAAmBp8G,EAAE+mF,MAC1BpnF,KAAK08G,kBAAoBr8G,EAAE+mF,MAC3BpnF,KAAK28G,qBAAuBt8G,EAAE+mF,MAC9BpnF,KAAK48G,WAAav8G,EAAE+mF,MACpBpnF,KAAK64F,eAAiBx4F,EAAE+mF,MACxBpnF,KAAK84F,cAAgBz4F,EAAE+mF,MACvBpnF,KAAK+4F,YAAc14F,EAAE+mF,MACrBpnF,KAAK68G,SAAWx8G,EAAE+mF,MAClBpnF,KAAK68G,SAAWx8G,EAAE+mF,MAClBpnF,KAAK68G,SAAWx8G,EAAE+mF,MAClBpnF,KAAK68G,SAAWx8G,EAAE+mF,MAClBpnF,KAAKg5F,iBAAmB34F,EAAE+mF,MAC1BpnF,KAAK88G,oBAAsBz8G,EAAEgnF,OAC7BhnF,EAAE8nF,cACH,KA0BD,MAAM40B,GACL,WAAAx8G,CAAakyB,EAAGryB,GACfJ,KAAKg9G,cAAgBvqF,EACrBzyB,KAAKi9G,eAAiB78G,CACvB,EAED,IAAIsuF,GAASt4F,OAAO8gG,OAAQ,CAAEh3F,UAAW,KAAMg9G,KA7B/C,cAAmBt0B,GAClB,WAAAroF,CAAaqmF,EAAM5b,EAAU9yD,GAC5B2wE,MAAOjC,EAAM5b,GACb,MAAM8xC,EAAsB5kG,EAAOikG,KAAKW,oBAClCxjB,EAAYphF,EAAOqhF,KAAKD,UACxBE,EAAen5F,EAAE0mF,gBAOvB,GANAo2B,KAAMn9G,KAAM,YAAY,KACvBK,EAAE0mF,gBAAkByS,EACb,IAAK,IAAI1gG,MAAOgkH,IAAwB1oH,KAC5C8H,GAAO,IAAI6gH,GAAgB18G,EAAEgnF,OAAQhnF,EAAE+mF,YAGtC01B,EAAsBxjB,EAAY,CACtC,MAAM8jB,EAAW5jB,EAAqC,EAAtBsjB,EAChCK,KAAMn9G,KAAM,mBAAmB,KAC9BK,EAAE0mF,gBAAkBq2B,EACb,IAAK,IAAItkH,MAAOwgG,EAAYwjB,IAAwB1oH,KACxD8H,GAAOmE,EAAE+mF,UAGd,CACD,KChtHD,MAAQlF,YAAWA,IAAKntD,GAAQ6b,EAAAA,aAwMhC,OAtMA,WACC,MAAM,YAAEgrC,IAAgB7jD,EAAAA,EAAAA,YAAYohD,KAC5BsJ,EAAQC,IAAcxzD,EAAAA,EAAAA,UAAU,OAChCmuF,EAAaC,IAAmBpuF,EAAAA,EAAAA,WAAU,GAC5CquF,EACLzmC,GAAwBryE,MAAO,GAAI,GACjCrQ,KAAOopH,GAAgB,IAAIA,MAC3BxjH,KAAM,MACP,KAAIsG,EAAAA,EAAAA,IAAI,WAAcw2E,GAAwBryE,OAAQ,MAUxD0mB,EAAAA,EAAAA,YAAW,KACV,GAAKs3D,EAAS,CACb,MAAMK,EAAU7gF,YAAY,KAC3BygF,EAAW,KAAM,GACf,KACH,MAAO,IAAMK,aAAcD,EAC5B,IACE,CAAEL,IAQL,MAAMg7B,EAAsB9mD,IAC3B+rB,EAAW,MACX46B,GAAgB,GAChB,MAAMI,EAAkB,IAAIj2D,IAEtBk2D,EADgB,IAAKhnD,GACQh7D,QAAU+6D,IAC5C,GAAKgnD,EAAgBppH,IAAKoiE,EAAKzhE,MAC9B,OAAO,EAGR,MAAM2oH,EAAgBlnD,EAAKzhE,KAAK0kD,MAAO,KAAMkkE,MAAMpjE,cACnD,QAAKq8B,GAAwB3tD,SAAUy0F,KACtCF,EAAgB/1D,IAAK+O,EAAKzhE,OACnB,EAEI,IAER0oH,EAAa1kH,OAAS,GAC1B6kH,EAAWH,EACZ,EASKG,EAAY97G,UACjB,MAAM+7G,QAAwBxlE,QAAQ77C,IACrCi6D,EAAMviE,KAAK4N,UACV,MAAMg8G,QAAqBC,EAAqBC,GAMhD,aALMvmC,GACLqmC,EACAA,EAAatnD,KACb,OAEMsnD,CAAY,WAGfj6B,EAAeg6B,EAAiB,EAajCE,EAAsBj8G,UAC3B,MAAM2Z,QAVP3Z,eAAsC00D,GACrC,OAAO,IAAIne,SAAS,CAAEwzC,EAASC,KAC9B,MAAMmyB,EAAS,IAAIjoH,OAAOkoH,WAC1BD,EAAOE,kBAAmB3nD,GAC1BynD,EAAOltB,OAAS,IAAMlF,EAASoyB,EAAOv4G,QACtCu4G,EAAOxzB,QAAUqB,CAAM,GAEzB,CAGsBsyB,CAAuBJ,GACtCK,EAAU,IAAItvB,GAAM,iBAC1BsvB,EAAQ9tB,eAAgB90E,EAAQuiG,EAASjpH,MAEzC,MAGMmiF,SAHoB,IAAI7+B,SAC3BwzC,GAAewyB,EAAQttB,OAASlF,KAEVhG,OAAO3O,MAC1B,KAAEniF,GAASmiF,EAAK8Z,SAASh5E,OACzBsmG,EAAWvpH,EAAKR,IAAK,KAAQQ,EAAKR,IAAK,GACvCgqH,EAAWxpH,EAAKR,IAAK,GAAIgmD,cAActxB,SAAU,UACjDsiB,EACL2rC,EAAK8Z,SAASh5E,OAAQ,QAASkjF,eAAiB,SAE3CsjB,IADgBtnC,EAAK8Z,SAASh5E,OAAOm6F,MAG1Cj7B,EAAK8Z,SAASh5E,OAAOm6F,KAAKS,KAAKr8D,MAC9B,EAAI4M,SAAmB,SAARA,IAKjB,MAAO,CACNqT,KAAMwnD,EACNhkF,WAAYskF,EACZ5nC,UAAW6nC,EAAW,SAAW,SACjChzE,YAPmBizE,EAChB,GAAGA,EAAW7M,YAAc6M,EAAW3M,WACxC,OAKyBtmE,EAC3B,EASIs4C,EAAgB/hF,UACrB,MAAMs3E,EC1JO,SAAgCkG,GAC9C,MAAMm/B,EAAqBn/B,EAAU3iF,QAAQ,CAAEs6B,EAAK5S,KAC5C4S,EAAK5S,EAAK2V,cAChB/C,EAAK5S,EAAK2V,YAAe,CACxBjlC,KAAMsvB,EAAK2V,WACXA,WAAY3V,EAAK2V,WACjBiE,KAAM5Z,EAAK2V,WAAW//B,QAAS,OAAQ,KAAMsgD,cAC7Cm9B,SAAU,KAGZzgD,EAAK5S,EAAK2V,YAAa09C,SAAShjF,KAAM2vB,GAC/B4S,IACL,CAAC,GACJ,OAAO/gC,OAAOjC,OAAQwqH,EACvB,CD4IuBC,CAAuBp/B,GAE5C,GAAKlG,EAAargF,OAAS,EAO1B,YANAypF,EAAW,CACVpxE,KAAM,QACN6vB,SAAS7gC,EAAAA,EAAAA,IACR,mEAMH,MACMilF,EAAgBtD,SADCrG,EAAatC,EAAc,KAElDoJ,EAAW6C,GACX+3B,GAAgB,EAAO,EAGxB,OACC//G,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAAC2yE,EAAAA,qBAAM,CAACqO,OAAS,MACjBhhF,EAAAA,EAAAA,eAACshH,EAAAA,SAAQ,CAACC,YAvIanoD,IACxB8mD,EAAmB9mD,EAAO,KAuIzBp5D,EAAAA,EAAAA,eAACgrC,EAAAA,qBAAM,CAAC5gB,UAAU,oCACb01F,IACH9/G,EAAAA,EAAAA,eAACwhH,EAAAA,eAAc,CACdtoD,OAASqgB,GAAwB1iF,KAC9Bo7F,GAAU,IAAIA,MACfx1F,KAAM,KACRglH,UAAW,EACXt9G,SA5ImB66B,IACvBkhF,EAAmBlhF,EAAMlhC,OAAOs7D,MAAO,EA4InCx0D,OAASA,EAAI88G,qBACZ1hH,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNU,UAAU,kCACVH,QAAUy3F,IAEV1hH,EAAAA,EAAAA,eAAA,aAAQ+C,EAAAA,EAAAA,IAAI,mBAKd+8G,IACD9/G,EAAAA,EAAAA,eAACuzB,EAAAA,SAAQ,MACRvzB,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,oCACdpqB,EAAAA,EAAAA,eAAC2kF,GAAW,SAIf3kF,EAAAA,EAAAA,eAAC2yE,EAAAA,qBAAM,CAACqO,OAAS,KACjBhhF,EAAAA,EAAAA,eAACi0B,EAAAA,mBAAI,CAAC7J,UAAU,0CACbyS,EAAAA,EAAAA;CAED95B,EAAAA,EAAAA,IACC,+FAEDi9G,KAGEF,GAAe56B,IAClBllF,EAAAA,EAAAA,eAACuzB,EAAAA,SAAQ,MACRvzB,EAAAA,EAAAA,eAAC2yE,EAAAA,qBAAM,CAACqO,OAAS,KACjBhhF,EAAAA,EAAAA,eAAC87C,EAAAA,OAAM,CACNgJ,eAAgB,EAChBlvC,OAASsvE,EAAOnxE,KAChBqW,UAAU,2CAER86D,EAAOthD,WAOhB,EE/MA,GATA,WACC,OACC5jC,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAAC2yE,EAAAA,qBAAM,CAACqO,OAAS,KACjBhhF,EAAAA,EAAAA,eAAC2hH,GAAU,MAGd,ECEA,MAAQ3sE,KAAIA,IAAKxd,GAAQ6b,EAAAA,aAEnBuuE,GAAe,CACpB,CACCv1F,GAAI,kBACJO,OAAO7pB,EAAAA,EAAAA,IAAI,YAEZ,CACCspB,GAAI,eACJO,OAAO7pB,EAAAA,EAAAA,IAAI,YAIP8+G,GAAwBlkC,GAC7BA,EAAY9mF,KAAK,EAAIw1B,KAAI30B,WAAM,CAC9B20B,KACAO,MACwB,IAAvB+wD,EAAYjiF,QAAuB,4BAAP2wB,GACzBtpB,EAAAA,EAAAA,IAAI,iBACJrL,MA0DN,OAvDA,UAA2B,eAC1Bw5B,EAAc,aACd4wF,EAAe,oBAEf,MAAM,YAAEnkC,IAAgBnjD,EAAAA,EAAAA,YAAYohD,IAE9BhqD,EAAO,IACTgwF,MACAC,GAAqBlkC,GAAe,KAGxC,OACC39E,EAAAA,EAAAA,eAACixB,EAAAA,MAAK,CACLrE,OAAQ7pB,EAAAA,EAAAA,IAAI,SACZmuB,eAAiBA,EACjB2zB,cAAY,EACZz6B,UAAU,uBAEVpqB,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,6BACdpqB,EAAAA,EAAAA,eAACg1C,GAAI,CAAC8sE,aAAeA,IACpB9hH,EAAAA,EAAAA,eAACg1C,GAAKgC,QAAO,KACVplB,EAAK/6B,KAAK,EAAIw1B,KAAIO,YACnB5sB,EAAAA,EAAAA,eAACg1C,GAAKiC,IAAG,CAACjgD,IAAMq1B,EAAK6qB,MAAQ7qB,GAC1BO,MAIHgF,EAAK/6B,KAAK,EAAIw1B,SACf,IAAI01F,EACJ,OAAS11F,GACR,IAAK,eACJ01F,GAAW/hH,EAAAA,EAAAA,eAACgiH,GAAW,MACvB,MACD,IAAK,kBACJD,GAAW/hH,EAAAA,EAAAA,eAACiiH,GAAc,MAC1B,MACD,QACCF,GAAW/hH,EAAAA,EAAAA,eAACkiH,GAAc,CAAC71F,GAAKA,IAElC,OACCrsB,EAAAA,EAAAA,eAACg1C,GAAK1iB,SAAQ,CACbt7B,IAAMq1B,EACN6qB,MAAQ7qB,EACR8qB,WAAY,GAEV4qE,EACa,MAOvB,ECnDA,GA1BA,UAAyB,KAAEloC,IAC1B,MAAM,6BAAEoE,EAA4B,YAAEuC,IACrChmD,EAAAA,EAAAA,YAAYohD,IAEPqI,EAAgBpK,GAAMQ,UAAU3+E,QAAU,EAO1CymH,EAAetgC,GAAuBhI,GAE5C,OACC75E,EAAAA,EAAAA,eAACmzB,EAAAA,mBAAI,CAAClJ,QARam4F,KACnBnkC,EAA8BpE,GAC9B2G,EAAa,kBAAmB,IAO/BxgF,EAAAA,EAAAA,eAACqzB,EAAAA,qBAAM,CAACC,QAAQ,kBACftzB,EAAAA,EAAAA,eAACuzB,EAAAA,SAAQ,CAAC76B,MAAQypH,GAAiBtoC,EAAKniF,OACxCsI,EAAAA,EAAAA,eAACuzB,EAAAA,SAAQ,CAAC76B,MAAQ,CAAE4/B,MAAO,YACxB2rD,EAAiB,KACjB7f,EAAAA,EAAAA,IAAI,UAAW,WAAY6f,KAKlC,ECjBA,SAASo+B,KACR,MAAM,aAAEzlC,EAAY,YAAE4D,EAAW,WAAEvD,EAAU,YAAEC,IAC9C1iD,EAAAA,EAAAA,YAAYohD,IAEb,OACC57E,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,OACMmyD,IACJ58E,EAAAA,EAAAA,eAACsiH,GAAgB,CAChBpxF,eAAiBA,IAAMsvD,IACvBjuD,eAAiBqqD,KAInB58E,EAAAA,EAAAA,eAACgrC,EAAAA,qBAAM,CAACC,QAAU,IACjBjrC,EAAAA,EAAAA,eAACqzB,EAAAA,qBAAM,CAACC,QAAQ,kBACftzB,EAAAA,EAAAA,eAACm4E,GAAQ,CAACx/C,MAAQ,IAAM51B,EAAAA,EAAAA,IAAI,WAC5B/C,EAAAA,EAAAA,eAACqzB,EAAAA,qBAAM,CAACC,QAAQ,aACftzB,EAAAA,EAAAA,eAACuiH,EAAAA,QAAO,CAACh2G,MAAOxJ,EAAAA,EAAAA,IAAI,kBACnB/C,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNO,QAAUA,IACTu2D,EAAa,mBAEd,cAAaz9E,EAAAA,EAAAA,IAAI,gBACjBwmB,KAAO6oD,GACP7qE,KAAO,cAKXvH,EAAAA,EAAAA,eAACizB,EAAAA,wBAAS,CAACigD,YAAU,EAACC,aAAW,GAC9B+J,EAAYrmF,KAAOgjF,IACpB75E,EAAAA,EAAAA,eAACwiH,GAAc,CAACxrH,IAAM6iF,EAAKj5C,KAAOi5C,KAAOA,MAExCoD,EAAWpmF,KAAOgjF,IACnB75E,EAAAA,EAAAA,eAACwiH,GAAc,CAACxrH,IAAM6iF,EAAKj5C,KAAOi5C,KAAOA,QAM/C,CAEA,YAAsB94E,MACrBf,EAAAA,EAAAA,eAACyiH,GAAmB,MACnBziH,EAAAA,EAAAA,eAACqiH,GAAY,IAAMthH,KClCrB,GArBA,WACC,OACCf,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAACs1E,GAAY,CACZ1oD,OAAQ7pB,EAAAA,EAAAA,IAAI,cACZoxB,aAAcpxB,EAAAA,EAAAA,IACb,6DAGF/C,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,8CACdpqB,EAAAA,EAAAA,eAACgrC,EAAAA,qBAAM,CAACC,QAAU,IACbtyC,OAAO+pH,mCACV1iH,EAAAA,EAAAA,eAACqiH,GAAY,OAEdriH,EAAAA,EAAAA,eAAC2iH,GAAkB,QAKxB,ECtBA,MACChrF,eAAc,GACdD,iBAAgB,GAChBq6C,2BAA0B,GAC1B0E,gBAAiBC,IACdl/C,GAAQI,GAAAA,aAEG,SAAS6+C,IAAiB,QAAEx4E,EAAO,aAAE2kH,IACnD,IAAIxrC,EAAc,GACD,YAAZn5E,EACJm5E,EAAcA,EAAYp5E,OAAQ,CAAE,WAAY4kH,IACrC3kH,GAAuB,SAAZA,IACtBm5E,EAAcA,EAAYp5E,OAAQ,CAAE,WAAYC,KAEjD,MAAMymB,EAAS0yD,EAAY36E,KAAM,MAEzB/D,GAAUi/B,GAAgBjT,OAAQe,EAAW,OAAQ,CAC5D4xD,oBAAoB,KAEbC,EAAgBC,GAAa5/C,GACpCjT,OACAe,EACA,MACA,CACC4xD,oBAAoB,KAGdrF,GAAgBt6C,GAAkB,IAEpCkK,EAAWmwC,GAChBC,OACAvsD,EAH+B,YAAZxnB,EAAwB2kH,EAAe3kH,GAO3D,OACC+B,EAAAA,EAAAA,eAAC02E,GAAqB,CACrB0B,eAAiBd,EACjBlgF,MAAQsB,EACRyL,SAAWozE,EACX31C,SAAWA,GAGd,CC3CA,MAAQjK,eAAcA,IAAKH,GAAQI,GAAAA,aAEpB,SAASirF,IAAmB,KAAEnrH,EAAI,QAAEuG,EAAO,aAAE2kH,IAC3D,IAAIl+F,EAAS,GACI,YAAZzmB,EACJymB,EAAU,YAAYk+F,KACX3kH,GAAuB,SAAZA,IACtBymB,EAAU,YAAYzmB,MAGvB,MAAQ0+B,GAAehF,GACtBjT,EAAS,wBACThtB,IAEO22C,GAAkB1W,GAAgBjT,EAAS,iBAAkBhtB,IAC7DqgC,GAAoBJ,GAC3BjT,EAAS,mBACThtB,IAEO4gC,GAAUX,GAAgBjT,EAAS,aAAchtB,IACjD0I,GAAau3B,GAAgBjT,EAAS,sBAAuBhtB,IAC7D2hF,GAAc1hD,GACrBjT,EAAS,uBACThtB,IAEOw2C,GAAevW,GACtBjT,EAAS,wBACThtB,IAEO4hF,GAAkB3hD,GACzBjT,EAAS,2BACThtB,GAEKyhF,EACO,SAAZl7E,EACG,CACAm7E,eAAgB,aAEhB,CAAC,EAEL,OACCp5E,EAAAA,EAAAA,eAAA,OACCoqB,UAAU,+BACV1xB,MAAQ,CACPikC,WAAYA,QAAAA,EAAc,QAC1BoT,WAAY1B,QAAAA,EAAiBtW,EAC7BO,QACAl4B,WACAi5E,YACAnrC,aACAorC,mBACGH,IAEJ,KAIH,CCjDA,MAAM9O,GAAW,CAChB99D,KAAM,CACL4nB,aAAapxB,EAAAA,EAAAA,IAAI,sCACjB6pB,OAAO7pB,EAAAA,EAAAA,IAAI,SAEZ4+C,KAAM,CACLxtB,aAAapxB,EAAAA,EAAAA,IAAI,sDACjB6pB,OAAO7pB,EAAAA,EAAAA,IAAI,UAEZ+/G,QAAS,CACR3uF,aAAapxB,EAAAA,EAAAA,IAAI,qDACjB6pB,OAAO7pB,EAAAA,EAAAA,IAAI,aAEZggH,QAAS,CACR5uF,aAAapxB,EAAAA,EAAAA,IAAI,qDACjB6pB,OAAO7pB,EAAAA,EAAAA,IAAI,aAEZigH,OAAQ,CACP7uF,aAAapxB,EAAAA,EAAAA,IAAI,oDACjB6pB,OAAO7pB,EAAAA,EAAAA,IAAI,aAuEb,OAnEA,UAAkC,QAAE9E,IACnC,MAAQ2kH,EAAcK,IAAoBtxF,EAAAA,EAAAA,UAAU,WAEpD,OACC3xB,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAACs1E,GAAY,CACZ1oD,MAAQy9C,GAAUpsE,GAAU2uB,MAC5BuH,YAAck2C,GAAUpsE,GAAUk2B,eAEnCn0B,EAAAA,EAAAA,eAAC2yE,EAAAA,qBAAM,CAACiD,QAAU,IACjB51E,EAAAA,EAAAA,eAAC6iH,GAAiB,CACjB5kH,QAAUA,EACV2kH,aAAeA,KAGH,YAAZ3kH,IACD+B,EAAAA,EAAAA,eAAC2yE,EAAAA,qBAAM,CAACiD,QAAU,EAAI/C,aAAa,QAClC7yE,EAAAA,EAAAA,eAACkjH,EAAAA,iCAAkB,CAClBn1F,OAAQhrB,EAAAA,EAAAA,IAAI,wBACZogH,qBAAmB,EACnB/rH,MAAQwrH,EACRz+G,SAAW8+G,EACX3/D,SAAO,EACP/7C,KAAK,mBACLgtB,yBAAuB,IAEvBv0B,EAAAA,EAAAA,eAACojH,EAAAA,uCAAwB,CACxBhsH,MAAM;;6CAGN22B,OAAQhrB,EAAAA,EAAAA,IAAI,UAEb/C,EAAAA,EAAAA,eAACojH,EAAAA,uCAAwB,CACxBhsH,MAAM,KACN22B,OAAQhrB,EAAAA,EAAAA,IAAI,SAEb/C,EAAAA,EAAAA,eAACojH,EAAAA,uCAAwB,CACxBhsH,MAAM,KACN22B,OAAQhrB,EAAAA,EAAAA,IAAI,SAEb/C,EAAAA,EAAAA,eAACojH,EAAAA,uCAAwB,CACxBhsH,MAAM,KACN22B,OAAQhrB,EAAAA,EAAAA,IAAI,SAEb/C,EAAAA,EAAAA,eAACojH,EAAAA,uCAAwB,CACxBhsH,MAAM,KACN22B,OAAQhrB,EAAAA,EAAAA,IAAI,SAEb/C,EAAAA,EAAAA,eAACojH,EAAAA,uCAAwB,CACxBhsH,MAAM,KACN22B,OAAQhrB,EAAAA,EAAAA,IAAI,SAEb/C,EAAAA,EAAAA,eAACojH,EAAAA,uCAAwB,CACxBhsH,MAAM,KACN22B,OAAQhrB,EAAAA,EAAAA,IAAI,WAKhB/C,EAAAA,EAAAA,eAACy2E,GAAe,CACfx4E,QAAUA,EACV2kH,aAAeA,IAInB,EC/FA,IALC5iH,EAAAA,EAAAA,eAACgmB,EAAAA,IAAG,CAACE,QAAQ,YAAYD,MAAM,+BAC9BjmB,EAAAA,EAAAA,eAACmmB,EAAAA,KAAI,CAACvjB,EAAE,iyBCeV,GAZA,UAAgC,UAAEwnB,KAAcrpB,IAC/C,OACCf,EAAAA,EAAAA,eAACojD,EAAAA,KAAI,CACJh5B,UAAYM,IACX,mDACAN,MAEIrpB,GAGR,ECMA,MAAQ22B,iBAAgBA,IAAKF,GAAQI,GAAAA,aAE/ByrF,GAAe,GA+ErB,OA7EA,UAAkB,KAAE3rH,IACnB,MAAQygC,GAAiBT,GAAkB,yBACnCQ,GAAgBR,GAAkB,wBAClC4rF,GAAkB5rF,GAAkB,0BAEpC6rF,GAA0B7rF,GACjC,uBACAhgC,IAGO8rH,GlOjBF,SAA6B9rH,GACnC,MAAQwgC,EAAaurF,GAAmB/rF,GACvC,2BkOegCgsF,GlOSjC,OAAO/qH,OAAOgrH,oCACX,CArBH,WAEC,MAAMC,EAAsB/oH,KAAKs6B,MAAuB,IAAhBt6B,KAAKgpH,UAGvCC,EAAY5rF,EAAYrhC,KAAOktH,IACpC,MAAM,MAAEzrF,GAAUyrF,EACZC,EAAWC,GAAQ3rF,GACvBpB,OAAQ0sF,GACRvtF,QAEF,MAAO,IACH0tF,EACHzrF,MAAO0rF,EACP,IAGFP,EAAgBK,EACjB,GAIG,EACJ,CkOZkCJ,GAE3BQ,GAASpyF,EAAAA,EAAAA,UACd,IAAM,IACAqG,GAAgBkrF,MAChBnrF,GAAemrF,MACfC,GAAiBC,EACnBD,EACAD,KAEJ,CAAElrF,EAAcD,EAAaorF,EAAeC,IAGvCY,EAAezsH,EAElB,WAAawkE,mBAAoBxkE,GAAS,kBAD1C,kBAEG0sH,EACLF,EAAOxoH,OAAS,GACbmhC,EAAAA,EAAAA;;CAEAunC,EAAAA,EAAAA,IAAI,WAAY,YAAa8/C,EAAOxoH,QACpCwoH,EAAOxoH,SAEPqH,EAAAA,EAAAA,IAAI,qBAER,OACC/C,EAAAA,EAAAA,eAACgrC,EAAAA,qBAAM,CAACC,QAAU,IACjBjrC,EAAAA,EAAAA,eAACm4E,GAAQ,CAACx/C,MAAQ,IAAM51B,EAAAA,EAAAA,IAAI,aAC5B/C,EAAAA,EAAAA,eAACizB,EAAAA,wBAAS,CAACigD,YAAU,EAACC,aAAW,IAChCnzE,EAAAA,EAAAA,eAAC2xE,GAAsB,CACtB9+C,KAAOsxF,EACP,cAAaphH,EAAAA,EAAAA,IAAI,oBAEjB/C,EAAAA,EAAAA,eAACqzB,EAAAA,qBAAM,CACNqe,UACmB,IAAlBwyE,EAAOxoH,OAAe,cAAgB,QAGvCsE,EAAAA,EAAAA,eAACqkH,EAAAA,qBAAM,CAACC,WAAY,EAAQ5zG,QAAU,GACnCwzG,EACAh9G,MAAO,EAAG,GACVrQ,KAAK,EAAIyhC,SAAS/gC,KAClByI,EAAAA,EAAAA,eAACukH,GAAqB,CACrBvtH,IAAO,GAAGshC,KAAW/gC,MAErByI,EAAAA,EAAAA,eAACwkH,EAAAA,eAAc,CAACC,WAAansF,SAIjCt4B,EAAAA,EAAAA,eAACuzB,EAAAA,SAAQ,KAAG6wF,MAIbzrH,OAAOgrH,qCACRzrF,GAAax8B,OAAS,IACrBsE,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNuE,QAAQ,YACR1E,KAAOm7F,GACPz6F,QAAUu5F,IAERzgH,EAAAA,EAAAA,IAAI,qBAKZ,EC3FA,MACC40B,eAAc,GACdD,iBAAgB,GAChBq6C,2BAA0B,GAC1BwE,WAAYC,IACTh/C,GAAQI,GAAAA,aAoCZ,OAlCA,WACC,MAAQl/B,GAAUi/B,GAAgB,QAAIlS,EAAW,OAAQ,CACxD4xD,oBAAoB,KAEbC,EAAgBC,GAAa5/C,GAAgB,QAAIlS,EAAW,MAAO,CAC1E4xD,oBAAoB,KAEbrF,GAAgBt6C,GAAkB,IACpCkK,EAAWmwC,GAA4BC,GAE7C,OACChyE,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAACs1E,GAAY,CACZ1oD,OAAQ7pB,EAAAA,EAAAA,IAAI,UACZoxB,aAAcpxB,EAAAA,EAAAA,IACb,sFAGF/C,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,0CACdpqB,EAAAA,EAAAA,eAACgrC,EAAAA,qBAAM,CAACC,QAAU,KACjBjrC,EAAAA,EAAAA,eAAC2kH,GAAO,OAER3kH,EAAAA,EAAAA,eAACw2E,GAAgB,CAChB4B,eAAiBd,EACjBlgF,MAAQsB,EACRyL,SAAWozE,EACX31C,SAAWA,MAMjB,ECrCA,MAAQlK,iBAAgBA,IAAKF,GAAQI,GAAAA,aAC/BgtF,GAAqB,CAAE9zF,UAAW,eAAgBpgB,OAAQ,GAEjD,SAASm0G,IAAmB,KAAEntH,IAC5C,MAAQwgC,EAAaurF,GAAmB/rF,GACvC,sBACAhgC,IAEOotH,GAAoBptF,GAC3B,sBACAhgC,EACA,SAEO4rH,EAAeyB,GAAqBrtF,GAC3C,wBACAhgC,IAEOstH,GAAsBttF,GAC7B,wBACAhgC,EACA,SAEOygC,EAAc8sF,GAAoBvtF,GACzC,uBACAhgC,IAGO6rH,GAA0B7rF,GACjC,uBACAhgC,GAIKk5B,GADmBY,EAAAA,GAAAA,kBAAkB,QAAS,KACZozF,QAAqBn/F,EAE7D,OACCzlB,EAAAA,EAAAA,eAACgrC,EAAAA,qBAAM,CACN5gB,UAAU,8CACV6gB,QAAU,MAEL/S,KAAkBA,EAAYx8B,SAClCsE,EAAAA,EAAAA,eAACklH,EAAAA,0BAAW,CACXC,SAAWjtF,IAAgB4sF,EAC3BM,qBAAmB,EACnBlB,OAAShsF,EACT/zB,SAAWs/G,EACX4B,cAAetiH,EAAAA,EAAAA,IAAI,SACnBuiH,yBAA2B,EAC3B10F,aAAeA,MAGZ0yF,KACDA,EAAc5nH,UACd6nH,IACFvjH,EAAAA,EAAAA,eAACklH,EAAAA,0BAAW,CACXC,SAAW7B,IAAkB0B,EAC7BI,qBAAmB,EACnBlB,OAASZ,EACTn/G,SAAW4gH,EACXM,cAAetiH,EAAAA,EAAAA,IAAI,WACnBuiH,yBAA2B,EAC3B10F,aAAeA,KAGlB5wB,EAAAA,EAAAA,eAACklH,EAAAA,0BAAW,CACXhB,OAAS/rF,EACTh0B,SAAW8gH,EACXI,cAAetiH,EAAAA,EAAAA,IAAI,UACnBuiH,yBAA2B,EAC3BC,cAAexiH,EAAAA,EAAAA,IACd,8EAEDyiH,WAAW,UACX50F,aAAeA,IAInB,CC1EA,MAAQ8G,iBAAgBA,IAAKF,GAAQI,GAAAA,aAC/BgtF,GAAqB,CAAE9zF,UAAW,eAAgBpgB,OAAQ,GAE1Dka,GAAOA,OAEE,SAAS66F,IAAsB,KAAE/tH,IAC/C,MAAQguH,EAAgBC,GAAsBjuF,GAC7C,wBACAhgC,IAEOkuH,GAAuBluF,GAC9B,wBACAhgC,EACA,SAEOmuH,EAAkBC,GAAwBpuF,GACjD,0BACAhgC,IAEOquH,GAAyBruF,GAChC,0BACAhgC,EACA,SAEOsuH,EAAiBC,GAAuBvuF,GAC/C,yBACAhgC,IAGO6rH,GAA0B7rF,GACjC,yBACAhgC,IAGOwuH,GAAkBxuF,GAAkB,yBAA4B,IAChEyuF,GACPzuF,GAAkB,0BAA6B,IACxC0uF,GAAiB1uF,GAAkB,wBAA2B,IAC9D2uF,GAA0B3uF,GACjC,wBAGK4uF,EAAiB,IACjBJ,GAAiB,MACjBE,GAAgB,MAChBD,GAAkBE,EAAwBF,EAAiB,IAI3Dv1F,GADmBY,EAAAA,GAAAA,kBAAkB,QAAS,KACZozF,QAAqBn/F,EAE7D,OACCzlB,EAAAA,EAAAA,eAACgrC,EAAAA,qBAAM,CACN5gB,UAAU,iDACV6gB,QAAU,MAELy6E,KAAqBA,EAAehqH,SACxCsE,EAAAA,EAAAA,eAACklH,EAAAA,0BAAW,CACXC,SAAWO,IAAmBE,EAC9BR,qBAAmB,EACnBmB,UAAYb,EACZvhH,SAAWwhH,EACXN,cAAetiH,EAAAA,EAAAA,IAAI,SACnBuiH,yBAA2B,EAC3B10F,aAAeA,MAGZi1F,KACDA,EAAiBnqH,UACjB6nH,IACFvjH,EAAAA,EAAAA,eAACklH,EAAAA,0BAAW,CACXC,SAAWU,IAAqBE,EAChCX,qBAAmB,EACnBmB,UAAYV,EACZ1hH,SAAW2hH,EACXT,cAAetiH,EAAAA,EAAAA,IAAI,WACnByjH,kBAAoB,EACpB51F,aAAeA,KAGlB5wB,EAAAA,EAAAA,eAACklH,EAAAA,0BAAW,CACXqB,UAAYP,EACZ7hH,SAAW8hH,EACXZ,cAAetiH,EAAAA,EAAAA,IAAI,UACnByjH,kBAAoB,EACpBjB,cAAexiH,EAAAA,EAAAA,IACd,8EAEDyiH,WAAW,UACX50F,aAAeA,MAEX01F,KAAqBA,EAAe5qH,SACxCsE,EAAAA,EAAAA,eAAA,YACCA,EAAAA,EAAAA,eAACm4E,GAAQ,CAACx/C,MAAQ,IAAM51B,EAAAA,EAAAA,IAAI,aAC5B/C,EAAAA,EAAAA,eAAC2yE,EAAAA,qBAAM,CAACqO,OAAS,KACjBhhF,EAAAA,EAAAA,eAACymH,EAAAA,cAAa,CACbH,eAAiBA,EACjBI,sBAAuB,EACvBC,qBAAsB,EACtBC,WAAY,EACZziH,SAAWymB,MAMjB,CC/GA,MAAQoqB,KAAIA,IAAKxd,GAAQ6b,EAAAA,aA2BzB,OAzBA,UAA6B,KAAE37C,IAC9B,OACCsI,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAACs1E,GAAY,CACZ1oD,OAAQ7pB,EAAAA,EAAAA,IAAI,WACZoxB,aAAcpxB,EAAAA,EAAAA,IACb,8IAGF/C,EAAAA,EAAAA,eAACg1C,GAAI,MACJh1C,EAAAA,EAAAA,eAACg1C,GAAKgC,QAAO,MACZh3C,EAAAA,EAAAA,eAACg1C,GAAKiC,IAAG,CAACC,MAAM,SAAQ,UACxBl3C,EAAAA,EAAAA,eAACg1C,GAAKiC,IAAG,CAACC,MAAM,YAAW,cAE5Bl3C,EAAAA,EAAAA,eAACg1C,GAAK1iB,SAAQ,CAAC4kB,MAAM,QAAQC,WAAY,IACxCn3C,EAAAA,EAAAA,eAAC6kH,GAAiB,CAACntH,KAAOA,MAE3BsI,EAAAA,EAAAA,eAACg1C,GAAK1iB,SAAQ,CAAC4kB,MAAM,WAAWC,WAAY,IAC3Cn3C,EAAAA,EAAAA,eAACylH,GAAoB,CAAC/tH,KAAOA,MAKlC,EC5BA,MACCigC,eAAc,GACdD,iBAAgB,GAChBq6C,2BAA0B,GAC1B4E,gBAAiBC,IACdp/C,GAAQI,GAAAA,aAENivF,GAAmB,CACxBC,aAAa,EACbC,UAAU,EACV1mH,SAAS,EACT2gF,QAAQ,EACRhoD,UAAU,EACV88C,WAAW,EACXkxC,aAAa,GAGC,SAASrwC,KACvB,MAAQj+E,GAAUi/B,GAAgB,QAAIlS,EAAW,OAAQ,CACxD4xD,oBAAoB,KAEbC,EAAgBC,GAAa5/C,GAAgB,QAAIlS,EAAW,MAAO,CAC1E4xD,oBAAoB,KAEbG,GAAiB9/C,GAAkB,QAAIjS,EAAW,SAClDusD,EAAayF,GAAgB//C,GAAkB,IACjDkK,EAAWmwC,GAA4BC,GAIvCiG,GAA2BnmD,EAAAA,EAAAA,UAAS,KAClC,IACHwlD,EACHn7B,OAAQva,EAASua,UAEhB,CAAEm7B,EAAgB11C,EAASua,SAExB+7B,GAAkBpmD,EAAAA,EAAAA,UAAS,KACzB,IACHp5B,EACHyjD,OAAQq7B,EAAar7B,UAEpB,CAAEzjD,EAAO8+E,EAAar7B,SAsBzB,OACCn8C,EAAAA,EAAAA,eAAC42E,GAAqB,CACrBwB,eAAiBH,EACjB7gF,MAAQ8gF,EACR/zE,SAxBiBk0E,IAClB,MAAMC,EAAe,IAAKD,GAI1B,UAHOC,EAAan8B,OACpBo7B,EAAUe,GAELD,EAASl8B,SAAWq7B,EAAar7B,OAAS,CAC9C,MAAM8qE,EAAkB,IACpBzvC,EACHr7B,OAAQk8B,EAASl8B,QAIb8qE,EAAgB9qE,QAAQ+qE,oBACrBD,EAAgB9qE,OAAO+qE,YAG/BzvC,EAAawvC,EACd,GAQCrlF,SAAWA,EACX22C,uBAAqB,EACrB4uC,gBAAkBN,IAGrB,CCxEA,MAAQj1C,sBAAqB,GAAEl6C,iBAAgB,GAAEq6C,2BAA0BA,IAC1Ev6C,GAAQI,GAAAA,aAcT,OAZA,WACC,MAAQo6C,GAAgBt6C,GAAkB,IACpCkK,EAAWmwC,GAA4BC,GACvC6B,EAAqBjC,GAAuBhwC,GAClD,OACC5hC,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAACs1E,GAAY,CAAC1oD,OAAQ7pB,EAAAA,EAAAA,IAAI,YACxB8wE,IAAsB7zE,EAAAA,EAAAA,eAAC22E,GAAe,MAG3C,EC8CA,GAzDA,WACC,MAAM,KAAEznE,IAAS4a,EAAAA,EAAAA,YAAalD,IACtB,CACN1X,KAAM0X,EAAQsV,GAAAA,OAAmBkrF,6BAEhC,IAEGC,GAA0B35F,EAAAA,EAAAA,QAAQ,OACxCE,EAAAA,EAAAA,YAAW,KAEI,aAAT1e,IACJm4G,EAAwBniH,SAAU,EACnC,GACE,CAAEgK,KAKL0e,EAAAA,EAAAA,YAAW,KACV,GAAc,aAAT1e,EAGJ,OAFAu3B,EAAyB,YACzB4gF,EAAwBniH,SAAU,EAC3B,KAEDmiH,EAAwBniH,SAC5BuhC,EAAyBv3B,EAC1B,CAEF,GAEE,IAEH,MAAM,wBAAEu3B,IAA4Bzc,EAAAA,EAAAA,aAAakS,GAAAA,OAEjD,OACCl8B,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAACs1E,GAAY,CACZnkE,KAAK,IACLyb,OAAQ7pB,EAAAA,EAAAA,IAAI,iBACZoxB,aAAcpxB,EAAAA,EAAAA,IACb,yDAIF/C,EAAAA,EAAAA,eAAC8yB,EAAAA,KAAI,CACJvrB,KAAK,QACLwrB,cAAY,EACZ3I,UAAU,oDAEVpqB,EAAAA,EAAAA,eAACgzB,EAAAA,SAAQ,MACRhzB,EAAAA,EAAAA,eAACixC,GAAwB,QAK9B,ECzDA,MAAQtZ,eAAc,GAAEu/C,cAAeC,IAAwB3/C,GAC9DI,GAAAA,aAyCD,OAtCA,WACC,MAAMzD,GAAcpxB,EAAAA,EAAAA,IACnB,0EAEOrK,GAAUi/B,GAAgB,QAAIlS,EAAW,OAAQ,CACxD4xD,oBAAoB,KAEbC,EAAgBC,GAAa5/C,GAAgB,QAAIlS,EAAW,MAAO,CAC1E4xD,oBAAoB,IAGrB,OACCr3E,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAACs1E,GAAY,CACZ1oD,OAAQ7pB,EAAAA,EAAAA,IAAI,OACZoxB,aACCn0B,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,KACG0J,GACFn0B,EAAAA,EAAAA,eAACuwE,EAAAA,aAAY,CACZryC,KAAK,mDACL9T,UAAU,iDAERrnB,EAAAA,EAAAA,IAAI,6BAKV/C,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,uCACdpqB,EAAAA,EAAAA,eAACm3E,GAAmB,CACnB//E,MAAQsB,EACRyL,SAAWozE,EACXa,eAAiBd,KAKtB,EC9BA,MACC9iC,gCAA+B,GAC/B3b,oBAAmB,GACnB4b,gCAA+BA,IAC5Bjd,GAAQI,GAAAA,aAEZ,SAASqd,GAAex2C,GACvB,OAASA,GAA2C,IAAjC5F,OAAOlC,KAAM8H,GAAS/C,MAC1C,CAiEA,OA/DA,UAAoB,WAAE4+B,EAAU,OAAEW,IACjC,MAAQpmB,KAAMm4B,IAAexS,EAAAA,EAAAA,YAAY3B,IAEnCsU,GAAerb,EAAAA,EAAAA,UAAS,IACtBmjB,GAAe3a,IAAkB2a,GAAejI,GAGhD,CAAC,EAFAhB,GAAyBgB,EAAY1S,IAG3C,CAAE0S,EAAY1S,IAEXgtF,GAAsBx1F,EAAAA,EAAAA,UAC3B,IAAQv2B,MAAMc,QAAS4+B,GAAWA,EAAS,CAAEA,IAC7C,CAAEA,IAGGob,GAAmBvsB,EAAAA,EAAAA,YACtBlD,GAAYA,EAAQsV,GAAAA,OAAmBoM,eACzC,IAEK1G,GAAW9P,EAAAA,EAAAA,UAChB,KAAM,IAAOukB,EAAkBC,yBAAyB,KACxD,CAAED,KAGKU,GAAiBtC,GAAiCtH,GAEpDoC,EACH0F,GAAe8B,IAAoB9B,GAAe3a,GAEjDsH,EAAS5G,OADT+b,EAGJ,OACC/2C,EAAAA,EAAAA,eAACyzC,GAAqB,CACrB7mB,OAAQ7pB,EAAAA,EAAAA,IAAI,aACZ2wC,kBAAmB3wC,EAAAA,EAAAA,IAAI,mBACvBovC,gBAAiB,IAEjBnyC,EAAAA,EAAAA,eAAC2vC,GAAAA,iBAAM,CACNvlB,UAAU,8BACV1yB,KAAK,YACLizB,SAAW,IAEX3qB,EAAAA,EAAAA,eAAC8vC,GAAAA,uBAAY,CAAC9U,OAASuU,KACvBvvC,EAAAA,EAAAA,eAAA,aAIG,2FAGHA,EAAAA,EAAAA,eAACw2C,EAAAA,SAAQ,CAACpsB,UAAU,kDACnBpqB,EAAAA,EAAAA,eAACw0C,GAA+B,CAC/Bp9C,MAAQkwH,EACR1lF,SAAWA,IAEX5hC,EAAAA,EAAAA,eAACy2C,GAAAA,UAAS,CAACC,gBAAiB,OAMlC,EC1EA,MACM,uBAAE6wE,IAA2B/vF,GAAQI,GAAAA,aAE3C,SAAS4vF,IAAgB,SAAExuE,EAAQ,iBAAEyuE,IACpC,MAAMhtF,EAAU8sF,GAAwBvuE,EAAUyuE,EAAkB,CACnEC,WAAY,IAIb,OAFsBjtF,EAAQ/+B,QAO7BsE,EAAAA,EAAAA,eAAA,QACC,cAAY,iCACZoqB,UAAU,qDAERqQ,EAAQh+B,KAAM,OARV,IAWT,CAoMA,OA3IA,UAA2B,cAC1BkrH,EAAa,mBACbC,EAAkB,SAClBzjH,EAAQ,iBACR0jH,EAAgB,gBAChBC,IAEA,MAAM,iBAAEC,EAAgB,YAAElwE,IAAgB/tB,EAAAA,EAAAA,YAAalD,IACtD,MAAM,gBAAE6W,EAAe,eAAE2a,GAAmBxxB,EAAQ4W,GAAAA,OAC9CgyB,EAAe/xB,IACrB,MAAO,CACNsqF,iBACCv4D,GAAc93D,MAAM8rC,UAAYgsB,GAAczuB,WAC/C8W,YAAaO,IACb,GACC,IACG4vE,GAAcv5C,EAAAA,GAAAA,WAAU0a,WACxB,oBAAE8+B,IAAwB3/E,EAAAA,GAAAA,eAAc4/E,QAE9C,OACCloH,EAAAA,EAAAA,eAAA,MACCoqB,UAAU,2DACV,cAAarnB,EAAAA,EAAAA,IAAI,gCACjBmpB,KAAK,SAEHy7F,EAAc9wH,KAAK,CAAEmiD,EAAUzhD,KAChC,MAAM,GAAE80B,EAAE,OAAE4sB,EAAM,SAAEK,GAAaN,EAC3BmvE,EAAY,YAAc97F,EAE1B+7F,EAAiBD,EAAYtwE,EAAcoB,EAC3CovE,EAAoBD,GAAgB1wH,OAAQqL,EAAAA,EAAAA,IAAI,QAChDulH,EAAeF,GAAgB/uE,cAAe,IAE9CxvB,EAAa+9F,EAChBA,IAAuBv7F,EAFI,IAAV90B,EAIdgxH,GAAmBV,GAAoBh+F,EACvC2+F,EAAU,WAAan8F,EACvBo8F,GAAeh6C,EAAAA,GAAAA,SAASn1B,GACxBovE,EACLpvE,GACA0uE,EAAcS,EAAat/B,UAvHJ,OAwHpB3a,EAAAA,GAAAA,UAAUy5C,EAAqBQ,IAC/BvuE,EAAAA,GAAAA,eAAeZ,GACbqvE,EA1FV,SACCt8F,EACAg8F,EACAO,EACAL,GAEA,MAAK,WAAal8F,GACVtpB,EAAAA,EAAAA,IAAI,0CAGP,YAAcspB,GACXwQ,EAAAA,EAAAA;CAEN95B,EAAAA,EAAAA,IAAI,yBACJslH,GAIKE,GACJ1rF,EAAAA,EAAAA;;CAEA95B,EAAAA,EAAAA,IACC,+EAEDslH,EACAO,IAEA/rF,EAAAA,EAAAA;;CAEA95B,EAAAA,EAAAA,IAAI,iCACJslH,EACAO,EAEJ,CAyD0BC,CACrBx8F,EACAg8F,GACA75C,EAAAA,GAAAA,UAAUy5C,EAAqBQ,GAC/BF,GAGD,OACCvoH,EAAAA,EAAAA,eAAA,MACCoqB,UAAYM,IACX,0DACA,CACC,cAAeb,EACf,YAAa0+F,EACb,WAAYC,IAGdxxH,IAAMq1B,EACN,eAAexC,IAEf7pB,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNU,UAAU,4DACV6S,SAAWpT,EACXI,QAAUA,KACT9lB,EAAU60C,EAAU,EAErB,aAAa2vE,GAEXH,GACDxoH,EAAAA,EAAAA,eAAA,QAAMoqB,UAAU,0DACbrnB,EAAAA,EAAAA,IAAI,mBACN/C,EAAAA,EAAAA,eAAA,QAAMoqB,UAAU,kDACb29F,KAIJ/nH,EAAAA,EAAAA,eAAA,QAAMoqB,UAAU,yDACb+9F,GACDnoH,EAAAA,EAAAA,eAAA,QAAMoqB,UAAU,mDACbrnB,EAAAA,EAAAA,IAAI,eAGP/C,EAAAA,EAAAA,eAAA,QACCoqB,UAAU,iDACV+vB,SAAWb,GAETovE,IAGJ1oH,EAAAA,EAAAA,eAAA,QAAMoqB,UAAU,mDACfpqB,EAAAA,EAAAA,eAAA,OACCqsD,IAAMg8D,EACNzgH,IAAM0gH,IAELD,GAEDx+F,IACD7pB,EAAAA,EAAAA,eAACwnH,GAAc,CACdxuE,SAAWA,EACXyuE,iBACClwH,EAAQowH,EAAcjsH,OACnBisH,EAAepwH,EAAQ,GACvB,CAAC,MAORsyB,IACC0+F,GACDvoH,EAAAA,EAAAA,eAAA,KAAGoqB,UAAU,2DACVrnB,EAAAA,EAAAA,IACD,oDAIF/C,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNuT,SAAWsrF,EACXt6F,QAAQ,UACR7D,UAAU,yDACVH,QAAU69F,GAERU,GACCzlH,EAAAA,EAAAA,IAAI,sBACJA,EAAAA,EAAAA,IAAI,WAGN,IAKV,EC5Ne,SAAS+lH,IAAY,YACnCC,EAAW,SACXC,EAAQ,WACRC,EAAU,WACVC,EAAU,UACV9+F,EAAS,SACT6S,GAAW,EAAK,cAChBksF,EAAgB,WAAU,MAC1Bp7F,GAAQhrB,EAAAA,EAAAA,IAAI,2BAEZ,OACC/C,EAAAA,EAAAA,eAACqzB,EAAAA,qBAAM,CACN+1F,UAAW,EACX3/F,GAAG,MACH,aAAasE,EACbkd,QAAU,EACV3X,QAAQ,aACRlJ,UAAYM,IAAY,uBAAwBN,KAEhDpqB,EAAAA,EAAAA,eAACi0B,EAAAA,mBAAI,CAAChG,QAAQ,QAAQ7D,UAAU;;CAG9ByS,EAAAA,EAAAA;;CAECunC,EAAAA,EAAAA,IAAI,UAAW,WAAY8kD,GAC3BA,KAIHlpH,EAAAA,EAAAA,eAACqzB,EAAAA,qBAAM,CAAC+1F,UAAW,EAAQn+E,QAAU,IACpCjrC,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNuE,QAAUk7F,EACVl/F,QAAUA,IAAMg/F,EAAY,GAC5BhsF,SAAWA,GAA4B,IAAhB8rF,EACvB,cAAahmH,EAAAA,EAAAA,IAAI,eACjB,MAGD/C,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNuE,QAAUk7F,EACVl/F,QAAUA,IAAMg/F,EAAYF,EAAc,GAC1C9rF,SAAWA,GAA4B,IAAhB8rF,EACvB,cAAahmH,EAAAA,EAAAA,IAAI,kBACjB,OAIF/C,EAAAA,EAAAA,eAACi0B,EAAAA,mBAAI,CAAChG,QAAQ,UACX4O,EAAAA,EAAAA;;CAED1a,EAAAA,EAAAA,IAAI,eAAgB,UACpB4mG,EACAC,KAGFhpH,EAAAA,EAAAA,eAACqzB,EAAAA,qBAAM,CAAC+1F,UAAW,EAAQn+E,QAAU,IACpCjrC,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNuE,QAAUk7F,EACVl/F,QAAUA,IAAMg/F,EAAYF,EAAc,GAC1C9rF,SAAWA,GAAY8rF,IAAgBC,EACvC,cAAajmH,EAAAA,EAAAA,IAAI,cACjB,MAGD/C,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNuE,QAAUk7F,EACVl/F,QAAUA,IAAMg/F,EAAYD,GAC5B/rF,SAAWA,GAAY8rF,IAAgBC,EACvC,cAAajmH,EAAAA,EAAAA,IAAI,cACjB,MAML,CC9DA,MAAQ81B,oBAAmB,GAAEwX,2BAA0BA,IAAK7Y,GAC3DI,GAAAA,aAiMD,OA5LA,WACC,MAAM,KAAEuT,IAASJ,EAAAA,EAAAA,+BACT1Q,KAAMgvF,EAAyB,cAAE9uF,IACxCC,EAAAA,EAAAA,YAAY3B,KACP,OAAEoC,EAAM,0BAAEgH,IAA8BnY,EAAAA,EAAAA,YAC3ClD,IAAM,CACPqb,0BAA2BzK,GAC1B5Q,EAAQ8jB,KACPd,+BACF3O,OAAQrU,EAAQsV,GAAAA,OAAmBotF,eAEpC,KAEOP,EAAaQ,IAAmB53F,EAAAA,EAAAA,UAAU,IAC1C63F,EAAkBC,IAAwB93F,EAAAA,EAAAA,UAAU,KACtD,UAAEomB,EAAS,UAAEhrB,EAAS,kBAAE+rB,EAAiB,eAAEb,GAChDR,GAA0B,CACzBC,MAAO,CACNrP,SApBc,GAqBdmP,KAAMuxE,KAIHC,EAAWnuH,KAAK2+C,KAAMvB,EAzBX,KA2BTyxE,EAA2BC,IAClCh4F,EAAAA,EAAAA,UAAU03F,IAEVO,EACAC,IACGl4F,EAAAA,EAAAA,WAAU,IACR,6BAAE+U,GAAiClP,IACxCxN,EAAAA,EAAAA,aAAa0gB,KAERo/E,EAAsCz5E,GAC3Cq5E,EACAL,GAGKU,EAAmBA,KACxB5+E,EAAM,KACNzE,OAA8BjhB,EAAW,EAGpCukG,EAAoBhxE,IACzBze,GAAe,KAAM,CACpBS,OAAQge,GAAUhe,OAClB4G,SAAUoX,GAAUpX,aAErBioF,GAAwC,GACxCE,GAAkB,GAWnBn8F,EAAAA,EAAAA,YAAW,KAEPqU,GACAA,EAA0Bwb,WAAY,6BAExCtS,EAAM,KACNzE,EAA8BzE,GAC/B,GACE,CAAEA,KAELrU,EAAAA,EAAAA,YAAW,MACHb,GAAagrB,EAAUr8C,QAC7B+tH,EAAqB1xE,EACtB,GACE,CAAEA,EAAWhrB,IAEhB,MAAMk9F,EAAgBlyE,EAAW,GAC3BmyE,EAA8BR,GAA2Br9F,GACzD89F,IACFF,GAAe59F,KAChBy9F,IACAI,GAEHt8F,EAAAA,EAAAA,YAAW,KAQLu8F,GACJR,EAA8B,CAC7B3uF,OAAQivF,GAAejvF,QAAU,CAAC,EAClC4G,SAAUqoF,GAAeroF,UAAY,CAAC,EACtCvV,GAAI49F,GAAe59F,IAErB,GACE,CAAE89F,EAAuBF,IAI5B,MAAMG,IACFF,GAC6B,YAAhCA,IACEJ,EACG3uE,IAAkBquE,EAAiB9tH,OAEzC,OACCsE,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAACs1E,GAAY,CACZ1oD,MACCqrB;;CAEApb,EAAAA,EAAAA,UAAS95B,EAAAA,EAAAA,IAAI,kBAAoBk1C,GAElC9jB,aAAcpxB,EAAAA,EAAAA,IACb,6KAEDswE,OAAS02C,KAEN5uE,IACHn7C,EAAAA,EAAAA,eAACklD,EAAAA,QAAO,CAAC96B,UAAU,sDAElB+wB,IAED,uCADElZ,GAEDjiC,EAAAA,EAAAA,eAACw7C,GAAS,CACTlhB,WAAaovF,EACb7/F,WAAaA,OACbqE,QAAUA,KACTwY,EACC,0BACA,KAIH1mC,EAAAA,EAAAA,eAACqqH,GAAS,CACTpvF,OAASA,EACTX,WAAaovF,EACbh2E,kBAAmB3wC,EAAAA,EAAAA,IAAI,uBAG1B/C,EAAAA,EAAAA,eAACsqH,GAAgB,CAChBnmH,SA5FsB60C,IACxB2wE,EAA8B,CAC7B3uF,OAAQge,GAAUhe,QAAU,CAAC,EAC7B4G,SAAUoX,GAAUpX,UAAY,CAAC,EACjCvV,GAAI2sB,GAAU3sB,IACZ,EAwFDu7F,mBAAqBsC,EACrBvC,cAAgB6B,EAChB3B,iBAAmBuC,EACnBtC,gBAAkBA,IACjBhvE,EACG+wE,GAAwC,GACxCG,EAAiBN,KAGpBV,EAAW,IACZhpH,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,qDACdpqB,EAAAA,EAAAA,eAAC8oH,GAAU,CACV1+F,UAAU,uDACV2+F,YAAcA,EACdC,SAAWA,EACXC,WAAaM,EACbL,WAAajxE,EACbhb,SAAWlQ,EACXgB,OAAQhrB,EAAAA,EAAAA,IAAI,0CAIb6mH,IACD5pH,EAAAA,EAAAA,eAAC4tD,EAAAA,4BAAa,CACb7rB,OAAS6nF,EACT77D,mBAAoBhrD,EAAAA,EAAAA,IAAI,SACxB8qD,UAAYA,IACXm8D,EAAiBN,GAElB57D,SAAWA,IACV+7D,GAAwC,KAGvC9mH,EAAAA,EAAAA,IACD,mEAMN,EC/KA,MACM,qBAAEwnH,IAAyB/yF,GAAQI,GAAAA,cACjC3M,KAAMu/F,GAAsB1/F,KAAM2/F,KACzCC,EAAAA,EAAAA,gBAHsB,oBAKvB,SAASC,KACR,MAAQxF,EAAUyF,GAAYL,MACxB,OAAE/iG,IAAWwC,EAAAA,EAAAA,aAAanD,EAAAA,QAC1B,WAAE0rD,IAAezoD,EAAAA,EAAAA,YAAalD,IACnC,MAAM,gBAAEka,EAAe,uCAAEyL,GACxB3lB,EAAQ4W,GAAAA,OAEH2O,EAAiBI,IACjBwK,EAAe5K,EAClBrL,EAAiB,OAAQ,eAAgBqL,QACzC1mB,EAEH,MAAO,CACN8sD,aAAex7B,GAAc6B,SAAU,sBACvC,GACC,KACG,6BAAElS,GAAiClP,IACxCxN,EAAAA,EAAAA,aAAa0gB,MAER,KAAES,IAASJ,EAAAA,EAAAA,8BACX8/E,EAAgBA,KACrBnkF,EAA8B,qBAC9ByE,EAAM,OAAQ,EAGf,OACCnrC,EAAAA,EAAAA,eAACyqH,GAAoB,MACpBzqH,EAAAA,EAAAA,eAAC2wB,EAAAA,aAAY,CAACpH,KAAOsH,GAAe9C,OAAQhrB,EAAAA,EAAAA,IAAI,UAC7C,EAAImrB,cACLluB,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAACutD,EAAAA,UAAS,KACPglB,IACDvyE,EAAAA,EAAAA,eAAC+rB,EAAAA,SAAQ,CAAC9B,QAAU4gG,IACjB9nH,EAAAA,EAAAA,IAAI,oBAGR/C,EAAAA,EAAAA,eAAC+rB,EAAAA,SAAQ,CACR9B,QAAUA,KACTzC,EACC,iBACA,sBAED0G,GAAS,IAGRnrB,EAAAA,EAAAA,IAAI,oBAGR/C,EAAAA,EAAAA,eAACutD,EAAAA,UAAS,MACTvtD,EAAAA,EAAAA,eAAC+rB,EAAAA,SAAQ,CACR9B,QAAUA,KACT2gG,IACA18F,GAAS,EAEV+O,UAAakoF,IAEXpiH,EAAAA,EAAAA,IAAI,qBAQd,CAEA,SAAS+nH,IAA8B,UAAE1gG,KAAcrpB,IACtD,OACCf,EAAAA,EAAAA,eAAC4yB,EAAAA,8BAAe,CACfxI,UAAY,CACX,oDACAA,GAEChsB,OAAQ20D,SACRt2D,KAAM,QACHsE,GAGR,CAEA,SAASgqH,IAA8B,WACtC7xC,EAAU,YACV58C,EAAW,UACXq3C,IAEA,OAAOr3C,EAAYzlC,KAAK,CAAE6B,EAAOnB,KAChCyI,EAAAA,EAAAA,eAAC8qH,GAA4B,CAC5B9zH,IAAMO,EACNs7B,KAAOqmD,EAAa,eAAiBxgF,EAAMhB,OAE3CsI,EAAAA,EAAAA,eAACgrH,GAAW,CAACtzH,KAAOi8E,EAAYpjC,UAAY73C,EAAMhB,SAGrD,CAEA,SAASuzH,IAAgB,KAAEvzH,EAAI,WAAEwhF,EAAa,KAC7C,MAAMgyC,GAAuBphG,EAAAA,EAAAA,YAC1BlD,IACD,MAAM,eAAEmsD,GAAmBnsD,EAAQgU,EAAAA,OACnC,OAAOm4C,EAAgBr7E,EAAM,GAE9B,CAAEA,IAGH,OACCsI,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAAC8qH,GAA4B,CAC5Bj4F,KAAOqmD,EAAa,oBAEpBl5E,EAAAA,EAAAA,eAACmrH,GAAkB,CAACzzH,KAAOA,OAGvBwzH,GAAsBxvH,SAC1BsE,EAAAA,EAAAA,eAAC+qH,GAA4B,CAC5B7xC,WAAaA,EACb58C,YAAc4uF,EACdv3C,UAAYj8E,IAKjB,CAEA,SAAS0zH,KACR,MAAMtgF,GAAYC,EAAAA,EAAAA,+BACZ,KAAElY,GAASiY,EAAU5pC,SAC3B,OACClB,EAAAA,EAAAA,eAACw7C,GAAS,CACT3xB,WAAe8pD,GAId9gD,IAAU,WAAWqpC,mBAAoByX,MACzC9gD,EAAK4qB,WACH,WAAWye,mBAAoByX,OAGlCnhD,SAAamhD,IAEZ7oC,EAAUK,KAAM,WAAa+wB,mBAAoByX,GAAa,GAIlE,CAEA,SAAS03C,KACR,MAAMvgF,GAAYC,EAAAA,EAAAA,+BACZ,kBAAEugF,EAAiB,sBAAEC,IAA0BzhG,EAAAA,EAAAA,YAClDlD,IACD,MAAM,yBAAE4kG,EAAwB,aAAE9tD,GACjC92C,EAAQsV,GAAAA,OACHmuB,EAAWmhE,IACjB,MAAO,CACNF,kBAAmB5tD,EAAcrT,GACjCkhE,sBAAuBlhE,EACvB,GAEF,IAEKohE,EAAuB/3C,GAAyB43C,IAEtD19F,EAAAA,EAAAA,YAAW,KACV,IAAO29F,IAA2BE,EACjC,OAED,MAAMhwF,EAAcqP,EAAU5pC,SAAS2xB,KACvC,GACiB,YAAhB4I,IACEA,EAAYgiB,WAAY,YAE1B,OAED,MAAMiuE,EAAU,WAAaxvD,mBAAoBovD,GAG5CI,IAAYjwF,GAChBqP,EAAUK,KAAMugF,EAAS,CAAEC,WAAW,GACvC,GACE,CAAEJ,EAAuBD,EAAmBG,GAChD,CAEA,SAASG,KACR,MAAM,KAAEzgF,IAASJ,EAAAA,EAAAA,8BACX9I,GAA4BnY,EAAAA,EAAAA,YAC/BlD,GACD4Q,GAAQ5Q,EAAQ8jB,KAAkBd,gCACnC,KAMDhc,EAAAA,EAAAA,YAAW,KACV,OAASqU,GACR,IAAK,0BACL,IAAK,qCACJkJ,EAAM,cACN,MACD,IAAK,oBACJA,EAAM,QACN,MACD,QACCA,EAAM,KAER,GACE,CAAElJ,EAA2BkJ,GACjC,CAgGA,OA9FA,WACC,MAAMlQ,GAASoa,EAAAA,EAAAA,iBACTpT,GAA4BnY,EAAAA,EAAAA,YAC/BlD,GACD4Q,GAAQ5Q,EAAQ8jB,KAAkBd,gCACnC,IAED,OACC5pC,EAAAA,EAAAA,eAAC0yB,EAAAA,gCAAiB,CACjBtI,UAAU,sDACVuI,YAAY,MAEZ3yB,EAAAA,EAAAA,eAAC8qH,GAA4B,CAACj4F,KAAK,MAClC7yB,EAAAA,EAAAA,eAAC6rH,GAAU,QAGZ7rH,EAAAA,EAAAA,eAAC8qH,GAA4B,CAACj4F,KAAK,gBAClC7yB,EAAAA,EAAAA,eAAC8rH,GAAqB,QAGvB9rH,EAAAA,EAAAA,eAAC8qH,GAA4B,CAACj4F,KAAK,YAClC7yB,EAAAA,EAAAA,eAAC+rH,GAAe,QAGjB/rH,EAAAA,EAAAA,eAAC8qH,GAA4B,CAACj4F,KAAK,gBAClC7yB,EAAAA,EAAAA,eAACgsH,GAAgB,QAGlBhsH,EAAAA,EAAAA,eAAC8qH,GAA4B,CAACj4F,KAAK,qBAClC7yB,EAAAA,EAAAA,eAACisH,GAAuB,CAAChuH,QAAQ,WAGlC+B,EAAAA,EAAAA,eAAC8qH,GAA4B,CAACj4F,KAAK,qBAClC7yB,EAAAA,EAAAA,eAACisH,GAAuB,CAAChuH,QAAQ,WAGlC+B,EAAAA,EAAAA,eAAC8qH,GAA4B,CAACj4F,KAAK,wBAClC7yB,EAAAA,EAAAA,eAACisH,GAAuB,CAAChuH,QAAQ,cAGlC+B,EAAAA,EAAAA,eAAC8qH,GAA4B,CAACj4F,KAAK,wBAClC7yB,EAAAA,EAAAA,eAACisH,GAAuB,CAAChuH,QAAQ,cAGlC+B,EAAAA,EAAAA,eAAC8qH,GAA4B,CAACj4F,KAAK,uBAClC7yB,EAAAA,EAAAA,eAACisH,GAAuB,CAAChuH,QAAQ,aAGlC+B,EAAAA,EAAAA,eAAC8qH,GAA4B,CAACj4F,KAAK,YAClC7yB,EAAAA,EAAAA,eAACksH,GAAY,QAGdlsH,EAAAA,EAAAA,eAAC8qH,GAA4B,CAACj4F,KAAK,YAClC7yB,EAAAA,EAAAA,eAACmsH,GAAY,QAGdnsH,EAAAA,EAAAA,eAAC8qH,GAA4B,CAACj4F,KAAK,SAClC7yB,EAAAA,EAAAA,eAACosH,GAAS,QAGXpsH,EAAAA,EAAAA,eAAC8qH,GAA4B,CAACj4F,KAAO,eACpC7yB,EAAAA,EAAAA,eAACqsH,GAAe,OAGfpxF,EAAOpkC,KAAO4wC,IACfznC,EAAAA,EAAAA,eAAC8qH,GAA4B,CAC5B9zH,IAAM,cAAgBywC,EAAM/vC,KAC5Bm7B,KAAO,WAAaqpC,mBAAoBz0B,EAAM/vC,QAE9CsI,EAAAA,EAAAA,eAACgrH,GAAW,CAACtzH,KAAO+vC,EAAM/vC,WAI5BsI,EAAAA,EAAAA,eAACirH,GAAc,MAEbhwF,EAAOpkC,KAAO4wC,IACfznC,EAAAA,EAAAA,eAACirH,GAAc,CACdj0H,IAAM,iBAAmBywC,EAAM/vC,KAC/BA,KAAO+vC,EAAM/vC,KACbwhF,WAAa,WAAahd,mBAAoBz0B,EAAM/vC,UAIpD,eAAiBuqC,IAClBjiC,EAAAA,EAAAA,eAACorH,GAAqB,OAGvBprH,EAAAA,EAAAA,eAAC2qH,GAAsB,OACvB3qH,EAAAA,EAAAA,eAACqrH,GAAqB,OACtBrrH,EAAAA,EAAAA,eAAC4rH,GAAqC,MAGzC,EClUe,SAASU,KACvB,MAAM,+BACLC,EAA8B,kBAC9BzxE,EAAiB,sBACjBnH,EAAqB,aACrBwH,EAAY,kBACZqxE,EAAiB,2BACjBC,IACG3iG,EAAAA,EAAAA,YAAalD,IAChB,MAAM,2BAAEmB,GAA+BnB,EAAQmD,IACzC,6BAAE6f,EAA4B,cAAED,GAAkBnS,GACvD5Q,EAAQ8jB,KAEHgiF,EAAsB9iF,IACtB+iF,EACL,WAAa/lG,EAAQ8jB,IAAgBpB,gBAChCsjF,EAAoB,SAAWjjF,IAC/BkjF,EAAyBjmG,EAAQC,EAAAA,OAAmB3vB,IACzD,OACA,0BAEK,gBAAE4pC,EAAe,uCAAEyL,GACxB3lB,EAAQ4W,GAAAA,OAEH2O,EAAiBI,IACjBwK,EAAe5K,EAClBrL,EAAiB,OAAQ,eAAgBqL,QACzC1mB,EAEH,MAAO,CACNq1B,kBAAmB,eAAiB4xE,EACpCH,+BACC,4BACCxkG,EAA4B,oBAC3B4kG,IACAC,EACHj5E,sBAAuBk5E,EACvB1xE,eACIpE,GAAc6B,SAAU,qBAAuB,IAAK7jC,MACxD03G,2BACC,uCAAyCC,EAC1CF,kBACC,4BAA8BE,EAC/B,GACC,KACG,6BAAEhmF,GAAiClP,IACxCxN,EAAAA,EAAAA,aAAa0gB,MAGd9c,EAAAA,EAAAA,YAAW,KACL2+F,GACJ7lF,OAA8BjhB,EAC/B,GACE,CAAE8mG,IAEL,MAAM,oBAAE7nF,IAAwB1a,EAAAA,EAAAA,aAAa2Y,EAAAA,QACvC,KAAEwI,IAASJ,EAAAA,EAAAA,8BAyCjB,OACC/qC,EAAAA,EAAAA,eAACuxE,GAAc,CACdnnD,UAAU,kCACV/B,WAAW,0BACXuE,OAAQ7pB,EAAAA,EAAAA,IAAI,UACZwmB,KAAOyR,GACPxO,YAAazpB,EAAAA,EAAAA,IAAI,gBACjB4pB,eAAe,yCACf9W,QACC7V,EAAAA,EAAAA,eAACojD,EAAAA,KAAI,CACJh5B,UAAU,0CACV8B,KAAK,UACL,cAAanpB,EAAAA,EAAAA,IAAI,oBAEjB/C,EAAAA,EAAAA,eAACyrC,EAAAA,UAAS,CAAC/yC,MAAQ,CAAEi6C,SAAU,iBAC9B3yC,EAAAA,EAAAA,eAAA,eAAU+C,EAAAA,EAAAA,IAAI,aAEf/C,EAAAA,EAAAA,eAACuzB,EAAAA,SAAQ,MACRvzB,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNH,KAAO+xB,GACPvtB,OAAQhrB,EAAAA,EAAAA,IAAI,cACZ+qB,UACCgtB,GAAqB2xE,EAEtBxvF,SAAWsvF,EACXtiG,QA1CkB6iG,KAClBN,EACJ9lF,EACC,sCAIG+lF,EACJ/lF,EAA8B,4BAG/BhC,EAAqBoW,GAAqBnH,GAC1CjN,EACCoU,OAAoBr1B,EAAY,cAChC,MA+BEzlB,EAAAA,EAAAA,eAACuzB,EAAAA,SAAQ,MACRvzB,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNqE,OAAQhrB,EAAAA,EAAAA,IAAI,aACZwmB,KAAO6wB,GACPnwB,QAvEkB8iG,KACvBroF,GAAqB,GAChB+nF,GACJthF,EAAM,UACNzE,EAA8B,eAG1B8lF,GACJrhF,EAAM,UACNzE,OAA8BjhB,KAG/B0lB,EAAM,mBAGLzE,EADIoU,EAEH,qCAG6B,6BAqD1B7d,UAAake,EACbrtB,UACC0+F,GAAqBC,MAIxBzsH,EAAAA,EAAAA,eAACwqH,GAAoB,SAIvBxqH,EAAAA,EAAAA,eAACgtH,GAAc,MAGlB,CC3KO,MAAMC,GAAmB,qBACnBC,GAAgB,4BCsG7B,OAjFuBC,EAAIC,kBAC1B,MAAM,cAAEC,EAAa,WAAEC,IAAexjG,EAAAA,EAAAA,YAAalD,IAClD,MAAM,kBAAE4hB,EAAiB,OAAEkB,GAAW9iB,EAAQ8jB,KACxC,iBAAE6iF,GAAqB3mG,EAAQ+b,EAAAA,OAErC,MAAO,CACN0qF,cAAe3jF,KAAmC,kBAAvB6jF,IAC3BD,WAAY9kF,IACZ,IAGIglF,EACLrtF,GAAkBmtF,IAClBntF,GAAkBd,KAEb,wBAAE5Y,IAA4BuD,EAAAA,EAAAA,aAAaD,GAMjD,IAAI0jG,EAkBJ,OAhBCA,EADIJ,EAEHD,IAAgBH;;CAEblqH,EAAAA,EAAAA,IAAI;;CAEJA,EAAAA,EAAAA,IAAI,QAGPqqH,IAAgBH;;CAEbpwF,EAAAA,EAAAA,UAAS95B,EAAAA,EAAAA,IAAI,iBAAmByqH;;AAEhCA,GAKJxtH,EAAAA,EAAAA,eAAA,WACCA,EAAAA,EAAAA,eAAA,WACCA,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNO,QA3ByByjG,IAC5BjnG,EAAyB0b,GAAY8qF,IA2BlC7iG,UAAYM,IACX,yCACA,CACC,YAAa0iG,IAAgBH,KAG/B,aAAaQ,EACb,aAAaJ,GAAgBtqH,EAAAA,EAAAA,IAAI,QAAWyqH,GAE1CH,GAAgBtqH,EAAAA,EAAAA,IAAI,QAAWyqH,KAGnCxtH,EAAAA,EAAAA,eAAA,WACCA,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNO,QAxCsB0jG,IACzBlnG,EAAyB0b,GAAY+qF,IAwClC9iG,UAAYM,IACX,yCACA,CACC,YAAa0iG,IAAgBF,KAG/B,aACCE,IAAgBF;;CAEbnqH,EAAAA,EAAAA,IAAI;;CAEJA,EAAAA,EAAAA,IAAI,SAER,cAAaA,EAAAA,EAAAA,IAAI,WAEfA,EAAAA,EAAAA,IAAI,WAGJ,ECzFQ,SAAS6qH,IAAa,UACpCxjG,EAAS,MACTwC,EAAK,KACLrD,EAAI,YACJ4K,EAAW,QACXlL,EAAO,SACPnkB,IAEA,OACC9E,EAAAA,EAAAA,eAAA,OAAKoqB,UAAYM,IAAY,yBAA0BN,KACtDpqB,EAAAA,EAAAA,eAACyzB,EAAAA,KAAI,CAACrJ,UAAU,+BAA+Bb,KAAOA,KACtDvpB,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,oCACdpqB,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,mCACdpqB,EAAAA,EAAAA,eAAA,MAAIoqB,UAAU,iCAAkCwC,GAC9C3D,IAEHjpB,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,uCACZ+J,GAEDrvB,GAIN,CClBA,MAAM,qBAAE+oH,IAAyBr2F,GAAQI,GAAAA,aAE1B,SAASk2F,KACvB,MAAMC,GAAgBjkG,EAAAA,EAAAA,YACnBlD,GACD4Q,GAAQ5Q,EAAQsV,GAAAA,QAAqB8xF,2BACtC,IAEK9kF,GAAYpX,EAAAA,EAAAA,UACjB,IAAMi8F,EAAcl3H,KAAK,EAAIwzD,cAAgBA,KAC7C,CAAE0jE,IAEH,OAAO/tH,EAAAA,EAAAA,eAAC6tH,GAAoB,CAAC3kF,UAAYA,GAC1C,CCAA,MAAM,aAAE+kF,IAAiBz2F,GAAQ02F,EAAAA,aAE3BC,GAAiB,CACtB,CACCpgG,OACC/tB,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACG1nB,EAAAA,EAAAA,IAAI,UACN/C,EAAAA,EAAAA,eAACi0B,EAAAA,mBAAI,CAAChG,QAAQ,UAAUlrB,EAAAA,EAAAA,IAAI,2BAG9B3L,MAAO,SAER,CACC22B,OACC/tB,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACG1nB,EAAAA,EAAAA,IAAI,YACN/C,EAAAA,EAAAA,eAACi0B,EAAAA,mBAAI,CAAChG,QAAQ,UACXlrB,EAAAA,EAAAA,IAAI,2CAIT3L,MAAO,WAER,CACC22B,OACC/tB,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACG1nB,EAAAA,EAAAA,IAAI,YACN/C,EAAAA,EAAAA,eAACi0B,EAAAA,mBAAI,CAAChG,QAAQ,UACXlrB,EAAAA,EAAAA,IAAI,8CAIT3L,MAAO,WAER,CACC22B,OACC/tB,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACG1nB,EAAAA,EAAAA,IAAI,cACN/C,EAAAA,EAAAA,eAACi0B,EAAAA,mBAAI,CAAChG,QAAQ,UACXlrB,EAAAA,EAAAA,IAAI,6CAIT3L,MAAO,UAER,CACC22B,OACC/tB,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACG1nB,EAAAA,EAAAA,IAAI,cACN/C,EAAAA,EAAAA,eAACi0B,EAAAA,mBAAI,CAAChG,QAAQ,UAAUlrB,EAAAA,EAAAA,IAAI,0BAG9B3L,MAAO,YAIM,SAASg3H,IAAY,SACnCltF,EAAQ,OACRD,EAAM,OACNrrB,EAAM,SACNq5D,EAAQ,KACRrpB,IAEA,MAAQyoE,EAAcC,IAAoB38F,EAAAA,EAAAA,YAAas9C,GACjDre,GAAaC,EAAAA,GAAAA,eAAeu9D,KAE5B,iBAAEnrF,IAAqBjZ,EAAAA,EAAAA,aAAawT,GAAAA,QACpC,kBAAEqG,IAAsB7Z,EAAAA,EAAAA,aAAaoS,GAAAA,QAEnCmyF,EAAeC,IAAqB78F,EAAAA,EAAAA,UAAU,MAEhDf,GAAekB,EAAAA,EAAAA,UACpB,KAAM,CAGL28F,OAAQF,EACR,cAAcxrH,EAAAA,EAAAA,IAAI,iBAClB+tB,UAAW,gBAEZ,CAAEy9F,IAGGG,EAAajqH,OAClBmR,OAAQ+4G,EAAY/4G,EACpBq5D,SAAU2/C,EAAc3/C,EACxBrpB,KAAMipE,EAAUjpE,MAEhB,UACO3iB,EAAkB,WAAY/B,EAAUD,EAAQ,CACrDrrB,OAAQ+4G,EACR/oE,KAAMipE,EACN5/C,SAAU2/C,GAEZ,CAAE,MAAQlrF,GACT,MAAMC,EACLD,EAAME,SAA0B,kBAAfF,EAAMj9B,KACpBi9B,EAAME,SACN7gC,EAAAA,EAAAA,IAAI,+CAER8gC,EAAmBF,EAAc,CAChC5vB,KAAM,YAER,GAGK+6G,EAAyB13H,IAC9Bk3H,EAAiBl3H,GACVA,GACNs3H,EAAY,CAAEz/C,SAAU,IACzB,EAGK8/C,EAAiB33H,IACtB,IAAIy3H,EAAUjpE,EACVgpE,EAAc3/C,EACH,YAAV73E,EACC,IAAImiD,KAAMqM,GAAS,IAAIrM,OAC3Bs1E,EAAU,MAEU,WAAVz3H,IACJwuD,GAAQ,IAAIrM,KAAMqM,GAAS,IAAIrM,QACrCs1E,EAAU,IAAIt1E,KACds1E,EAAQG,QAASH,EAAQpgD,UAAY,IAEjB,YAAVr3E,GAAuB63E,IAClCq/C,GAAiB,GACjBM,EAAc,IAEfF,EAAY,CACX94G,OAAQxe,EACRwuD,KAAMipE,EACN5/C,SAAU2/C,GACR,EAGJ,OACC5uH,EAAAA,EAAAA,eAACiuH,GAAY,CAAClgG,OAAQhrB,EAAAA,EAAAA,IAAI,YACzB/C,EAAAA,EAAAA,eAACivH,EAAAA,SAAQ,CACRC,iBAAiB,mCACjBt+F,aAAeA,EACfu+F,cAAY,EACZlqH,IAAMupH,EACNY,aAAeA,EAAIC,eAClBrvH,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNU,UAAU,mCACV6D,QAAQ,WACRhE,QAAUolG,IAEVrvH,EAAAA,EAAAA,eAACmuE,GAAW,CACXv4D,OAASq5D,EAAW,YAAcr5D,KAIrC05G,cAAgBA,EAAIphG,cACnBluB,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAACuvH,GAAAA,qCAAsB,CACtB3iG,OAAQ7pB,EAAAA,EAAAA,IAAI,UACZmrB,QAAUA,KAEXluB,EAAAA,EAAAA,eAAA,aACCA,EAAAA,EAAAA,eAACgrC,EAAAA,qBAAM,CAACC,QAAU,IACjBjrC,EAAAA,EAAAA,eAACwvH,EAAAA,aAAY,CACZplG,UAAU,mCACV+4F,qBAAmB,EACnBp1F,OAAQhrB,EAAAA,EAAAA,IAAI,UACZzH,QAAU6yH,GACVhqH,SAAW4qH,EACXhpC,SAAWnwE,IAEC,YAAXA,IACD5V,EAAAA,EAAAA,eAAA,YAAUoqB,UAAU,+CACnBpqB,EAAAA,EAAAA,eAACi0B,EAAAA,mBAAI,CACJxK,GAAG,SACHW,UAAU,2CACV7iB,KAAK,KACLzH,WAAa,IACb0hD,OAAS,IACTgd,WAAY,IAEVz7D,EAAAA,EAAAA,IAAI,cAEP/C,EAAAA,EAAAA,eAACs0B,EAAAA,cAAa,CACbvG,OAAQhrB,EAAAA,EAAAA,IACP,oCAEDyxB,QAAU65F,EACVlqH,SAAW2qH,IAEVT,IACDruH,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,4CACdpqB,EAAAA,EAAAA,eAAC8xC,EAAAA,eAAc,CACdroB,GAAG,QACH45D,QAAW,2CAA2CzyB,MAEpD7tD,EAAAA,EAAAA,IAAI,qBAEP/C,EAAAA,EAAAA,eAAC2kD,EAAAA,YAAW,CACXxgD,SAAa/M,GACZs3H,EAAY,CACXz/C,SAAU73E,IAGZA,MAAQ63E,EACRjsB,aAAcjgD,EAAAA,EAAAA,IACb,yBAEDgR,KAAK,OACLsY,GAAM,2CAA2CukC,aAa9D,CCxOe,SAAS6+D,IAAa,OACpC75G,EAAM,KACNgwC,EAAI,SACJqpB,EAAQ,OACRhuC,EAAM,SACNC,IAEA,OACClhC,EAAAA,EAAAA,eAACgrC,EAAAA,qBAAM,CAACC,QAAU,IACjBjrC,EAAAA,EAAAA,eAACouH,GAAU,CACVx4G,OAASA,EACTgwC,KAAOA,EACPqpB,SAAWA,EACXhuC,OAASA,EACTC,SAAWA,KAEZlhC,EAAAA,EAAAA,eAAC0vH,EAAAA,kBAAiB,OAClB1vH,EAAAA,EAAAA,eAAC2vH,EAAAA,kBAAiB,OAClB3vH,EAAAA,EAAAA,eAAC4vH,EAAAA,aAAY,OACb5vH,EAAAA,EAAAA,eAAC6vH,EAAAA,gBAAe,MAGnB,CCNe,SAASC,KACvB,MAAM,GACLzjG,EAAE,KACFtY,EAAI,YACJ04B,EAAW,OACX72B,EAAM,KACNgwC,EAAI,SACJqpB,EAAQ,MACRriD,EAAK,SACL0sB,EAAQ,cACRy2E,IACGjmG,EAAAA,EAAAA,YAAalD,IAChB,MAAM,qBAAE8hB,GAAyB9hB,EAAQ8jB,KACnC,sBAAE/E,EAAqB,sBAAE0G,GAC9BzlB,EAAQ4W,GAAAA,QACH,iBAAE+vF,GAAqB3mG,EAAQ+b,EAAAA,OAC/BtZ,EAAUqf,IACVqW,EAAY,CAAE,WAAY11B,EAAQ6X,SAAU7X,EAAQ4X,QACpDuW,EAAO7R,KAA0BoZ,GACvC,MAAO,CACNtS,YAAaJ,EACZ,wBACA0S,GAEDnyB,MAAO4qB,GAAM5qB,MACbP,GAAImrB,GAAMnrB,GACVtY,KAAMyjC,GAAMzjC,KACZ6B,OAAQ4hC,GAAM5hC,OACdgwC,KAAMpO,GAAMoO,KACZqpB,SAAUz3B,GAAMy3B,SAChB31B,SAAU9B,GAAM8B,SAChBy2E,cAAexC,IACf,GACC,IAEH,OAAO9gF,GAKNzsC,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAAC+4E,EAAAA,UAAS,MACT/4E,EAAAA,EAAAA,eAAC4tH,GAAW,CACXhhG,OAAQ6W,EAAAA,GAAAA,gBAAgB7W,GACxBrD,KAAOymG,GACP77F,aACCn0B,EAAAA,EAAAA,eAACgrC,EAAAA,qBAAM,MACNhrC,EAAAA,EAAAA,eAACi0B,EAAAA,mBAAI,MACF4I,EAAAA,EAAAA;;CAED95B,EAAAA,EAAAA,IAAI,mBACJm3C,EAAAA,GAAAA,eAAeZ,UAOrBt5C,EAAAA,EAAAA,eAAC+4E,EAAAA,UAAS,CAACnsD,OAAQ7pB,EAAAA,EAAAA,IAAI,aACtB/C,EAAAA,EAAAA,eAACyvH,GAAW,CACX75G,OAASA,EACTgwC,KAAOA,EACPqpB,SAAWA,EACXhuC,OAAS5U,EACT6U,SAAWntB,KAGO,cAAlBg8G,IACD/vH,EAAAA,EAAAA,eAAC+4E,EAAAA,UAAS,CAACnsD,OAAQ7pB,EAAAA,EAAAA,IAAI,aACtB/C,EAAAA,EAAAA,eAAC8tH,GAAW,QAGd9tH,EAAAA,EAAAA,eAACiwH,EAAAA,sBAAqB,OACtBjwH,EAAAA,EAAAA,eAACkwH,EAAAA,oBAAmB,OACpBlwH,EAAAA,EAAAA,eAACmwH,EAAAA,uBAAsB,OACvBnwH,EAAAA,EAAAA,eAACowH,EAAAA,iBAAgB,OACjBpwH,EAAAA,EAAAA,eAACqwH,EAAAA,oBAAmB,OACpBrwH,EAAAA,EAAAA,eAACswH,EAAAA,oBAAmB,OAzCd,IA4CT,CC/Fe,SAASC,IAAuB,QAC9CtmG,EAAO,mBACPumG,IAEA,MAAM,iBAAEvtF,IAAqBjZ,EAAAA,EAAAA,aAAawT,GAAAA,QAClCgpB,EAAWC,IAAiB90B,EAAAA,EAAAA,WAAU,GACxCzD,EAAUA,KACfu4B,GAAc,EAAO,GAGhB,OAAExlB,EAAM,SAAEC,IAAapX,EAAAA,EAAAA,YAAalD,IAClC,CACNqa,OAAQra,EAAQ8jB,IAAgBjC,kBAChCvH,SAAUta,EAAQ8jB,IAAgBlC,uBAEjC,IAWH,OAAOgoF,EAAmB90H,QAAU80H,EAAmB90H,OAAS,EACxD,MAIPsE,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAAC+rB,EAAAA,SAAQ,CACR0hC,MAAO1qD,EAAAA,EAAAA,IACN,uDAEDknB,QAAUA,IAAMw8B,GAAc,KAE5B1jD,EAAAA,EAAAA,IAAI,qBAGLyjD,IACDxmD,EAAAA,EAAAA,eAACixB,EAAAA,MAAK,CACLrE,OAAQ7pB,EAAAA,EAAAA,IAAI,qBACZmuB,eAAiBhD,EACjBq6B,iBAAiB,mDACjB1D,cAAY,IAEZ7kD,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,8DACdpqB,EAAAA,EAAAA,eAACywH,GAAa,CACbD,mBAAqBA,EACrBh+F,SAlCmB/tB,UACxBypB,IACAjE,UACMgZ,EAAkB,WAAY/B,EAAUD,EAAQ,CACrDhG,OAAQy1F,EAAiBz1F,OACzBzL,SAASwhC,EAAAA,EAAAA,WAAW0/D,EAAiBz1F,SACnC,MAmCL,CAEA,SAASw1F,IAAe,mBAAED,EAAkB,SAAEh+F,IAC7C,MAAMm+F,GAAiBrlD,EAAAA,GAAAA,cAAcklD,GAErC,OACCxwH,EAAAA,EAAAA,eAAC4wH,GAAAA,gCAAiB,CACjB7iG,OAAQhrB,EAAAA,EAAAA,IAAI,aACZw0D,cAAgBi5D,EAChBK,cAAgBF,EAChBG,eAAiBt+F,GAGpB,CCtEA,SAASu+F,GACRtpF,EACAupF,GAeA,OAbAvpF,EAAMD,YAAcC,EAAMD,YAAY3wC,KAAOo6H,GACrCF,GACNE,EACAD,KAKc,uBAAfvpF,EAAM/vC,WACqB+tB,IAA3BgiB,EAAMtN,WAAWsF,QAEjBgI,EAAMtN,WAAWsF,MAAQuxF,GAEnBvpF,CACR,CAEA,SAASypF,GAAiB97D,EAAU/yB,EAAU2uF,GAa7C,OAAO57D,EACLh3D,QACA,CAAEu3D,EAASp+D,EAAO+5D,IATsBqE,KACvC51B,GAAyBnU,SAAU+pC,EAAQ53D,QAS3CozH,CAAiCx7D,IAdFvE,EAAEC,EAAa95D,EAAO+5D,IACvD/5D,IAAU+5D,EAAMzJ,WAAa7gC,GAAUqqC,EAAY35D,OAASsvB,EAAKtvB,OAc/D05D,CAA2BuE,EAASp+D,EAAO+5D,IAPXqE,IAClCA,EAAQy7D,eAAexlG,SAAUyW,EAASzB,MAOxCywF,CAA0B17D,KAE3B9+D,KAAO8+D,IAAO,IACXA,EACH/C,SAAU+C,EAAQ/C,UAAY,GAC9B7+C,KAAM6rB,GAAcH,MACpBxE,QAAQjB,EAAAA,EAAAA,OAAO27B,EAAQnmC,QAAS,CAC/BwlC,6BAA6B,IAC1Bn+D,KAAO4wC,GACVspF,GACCtpF,EACAupF,QAIL,CCvDe,SAASM,IAAS,SAAEjvF,IAClC,MAAMkvF,EDwDA,SAA+BlvF,GACrC,MAAM,cAAEk1B,EAAa,kBAAEE,EAAiB,uBAAEu5D,IACzClnG,EAAAA,EAAAA,YAAalD,IAAY,IAAA2uC,EACxB,MAAM,YAAEjtB,GAAgB9Q,GAAQ5Q,EAAQ8jB,KAClC9I,EAAW0G,IAEjB,MAAO,CACNivB,cAC+C,QADlChC,EACZ3zB,EAAS4zB,6CAAqC,IAAAD,EAAAA,EAC9C3zB,EAAS6zB,4BACVgC,kBAAmB7wC,EAAQ4W,GAAAA,OAAYk4B,mBACvCs7D,uBACCpqG,EAAQ4W,GAAAA,OAAYC,kBAAkBsD,WACvC,GACC,IAEJ,OAAOjP,EAAAA,EAAAA,UAAS,IAKRo/F,GAJgB,IACjB35D,GAAiB,MACjBE,GAAqB,IAI1Bp1B,EACA2uF,IAEC,CAAEz5D,EAAeE,EAAmBp1B,EAAU2uF,GAClD,CCnF2BQ,CAAsBnvF,IAC1C,eAAEwC,IAAmB7a,EAAAA,EAAAA,aAAa0gB,IAClC4iB,EAAelrB,GAAsBC,GAE3C,OACGirB,GACEikE,EAAkB71H,UAAU61H,EAAkB71H,OAAS,IAM3DsE,EAAAA,EAAAA,eAAC2wB,EAAAA,aAAY,CACZpH,KAAOsH,GACP9C,OAAQhrB,EAAAA,EAAAA,IAAI,WACZqnB,UAAU,mCACV6B,YAAc,CAAEkB,SAAS,KAEvB,EAAIe,cACLluB,EAAAA,EAAAA,eAACutD,EAAAA,UAAS,KACPD,IACDttD,EAAAA,EAAAA,eAAC+rB,EAAAA,SAAQ,CACR0hC,MAAO1qD,EAAAA,EAAAA,IACN,8CAEDknB,QAAUA,KACT4a,EAAgBxC,GAChBnU,GAAS,IAGRnrB,EAAAA,EAAAA,IAAI,0BAGR/C,EAAAA,EAAAA,eAACuwH,GAAqB,CACrBC,mBAAqBe,EACrBlvF,SAAWA,EACXpY,QAAUiE,OA5BP,IAkCT,CC1CA,SAASujG,IAAkB,KAAEjrG,EAAI,SAAE6jC,IAClC,MAAM,YAAEqnE,EAAW,qBAAEC,IACpB3nG,EAAAA,EAAAA,aAAakS,GAAAA,OACRotB,GAAmBx/B,EAAAA,EAAAA,YACtBlD,GAEAA,EACC+b,EAAAA,OACC4mB,4CAEiBrQ,MACjBsQ,GAAiBA,EAAYhjC,OAASA,KAG1C,CAAEA,IAGGorG,EAAiBA,IAAMD,EAAsBtnE,GAAU,GACvDwnE,EAAuBA,IAAMF,EAAsBtnE,GAAU,GAEnE,OACCrqD,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNU,UAAU,+CACVb,KAAO+/B,GAAkB//B,KACzBuoG,YAAcF,EACd/hF,aAAegiF,EACf9gF,QAAU6gF,EACV5gF,OAAS6gF,EACT5nG,QAAUA,KACTynG,EAAarnE,EAAU,GAGtBf,GAAkBv7B,MAGvB,CAEe,SAAS67B,KACvB,MAAMziB,GAAgBrd,EAAAA,EAAAA,YACnBlD,GAAYA,EAAQ8jB,IAAgBzB,mCACtC,IAGD,OAAO9B,EAAczrC,QAKpBsE,EAAAA,EAAAA,eAAA,WAASoqB,UAAU,4CAClBpqB,EAAAA,EAAAA,eAACsrC,EAAAA,sBAAO,CACP3S,MAAQ,EACRvO,UAAU,kDAERrnB,EAAAA,EAAAA,IAAI,WAGP/C,EAAAA,EAAAA,eAAA,MAAIoqB,UAAU,gDACX+c,EAActwC,KAAK,EAAIgqC,eAAc4G,YACtCznC,EAAAA,EAAAA,eAAA,MAAIhJ,IAAMywC,EAAM4iB,WACfrqD,EAAAA,EAAAA,eAACyxH,GAAgB,CAChBjrG,KAAOqa,EAAara,KACpB6jC,SAAW5iB,EAAM4iB,gBAjBf,IAwBT,CC3DA,MAAM0nE,GAAa,CAClBC,SAAU3zH,GACV4zH,cAAe/1E,IAGD,SAASg2E,KAAgB,IAAAC,EACvC,MAAM,MAAEvlG,EAAK,YAAEuH,EAAW,KAAE5K,EAAI,OAAEijB,IAAW1iB,EAAAA,EAAAA,YAAalD,IACzD,MAAM,kBAAE4hB,EAAiB,gBAAEC,GAAoB7hB,EAAQ8jB,KACjD,sBAAE/E,GAA0B/e,EAAQ4W,GAAAA,QAClCgtB,8BAA+BC,GACtC7jC,EAAQ+b,EAAAA,OAIHioB,EAAUjlB,EAAuB,WAF1B6C,IACEC,KAETglB,EAAOhD,EAAiBG,GAE9B,MAAO,CACNh+B,MAAO6gC,EAAK7gC,MACZuH,YAAas5B,EAAKt5B,YAClB5K,KAAMkkC,EAAKlkC,KACXijB,OAAQoe,EACR,GACC,IAEH,OAAOh+B,GAAWuH,GAKjBn0B,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAAC+4E,EAAAA,UAAS,MACT/4E,EAAAA,EAAAA,eAAC4tH,GAAW,CACXxjG,UAAU,0BACVwC,OAAQ6W,EAAAA,GAAAA,gBAAgB7W,GACxBrD,KAAiC,QAA7B4oG,EAAGJ,GAAYvlF,GAAQz4B,aAAM,IAAAo+G,EAAAA,EAAI5oG,EACrC4K,aAAcsP,EAAAA,GAAAA,gBAAgBtP,GAC9BlL,SAAUjpB,EAAAA,EAAAA,eAACmtD,GAAe,CAAC9qB,SAAWmK,MAEtCxsC,EAAAA,EAAAA,eAAC4pD,GAAa,SAGhB5pD,EAAAA,EAAAA,eAACiwH,EAAAA,sBAAqB,OACtBjwH,EAAAA,EAAAA,eAACkwH,EAAAA,oBAAmB,OACpBlwH,EAAAA,EAAAA,eAACmwH,EAAAA,uBAAsB,OACvBnwH,EAAAA,EAAAA,eAACowH,EAAAA,iBAAgB,OACjBpwH,EAAAA,EAAAA,eAACqwH,EAAAA,oBAAmB,OACpBrwH,EAAAA,EAAAA,eAACswH,EAAAA,oBAAmB,OArBd,IAwBT,CCnEA,MAAM,KAAExlG,GAAI,KAAEG,KAASy/F,EAAAA,EAAAA,gBAAgB,8BAEjC0H,GAA6BtnG,GACnCsnG,GAA2BnnG,KAAOA,GAoBlC,UCPA,MAAQA,KAAMonG,GAAevnG,KAAMwnG,KAAkB5H,EAAAA,EAAAA,gBACpD,4BAEY6H,GAAuBD,GAE7B,SAASE,KACf,MAAM,QACLnjG,EAAO,sBACPojG,EAAqB,kBACrBC,EAAiB,qBACjBC,EAAoB,cACpBtF,IACGvjG,EAAAA,EAAAA,YAAalD,IAChB,MAAMgsG,EACLhsG,EAAQmD,GAAiBhC,2BAA4Boa,IAChD0wF,EAAyB,CAC9B3F,GACAD,IACCrhG,SAAUgnG,GACNhxF,EAAWhb,EAAQ8jB,IAAgBpC,cACzC,MAAO,CACNjZ,QAASujG,EACTH,sBAAuBI,EACvBH,oBACI9rG,EAAQsV,GAAAA,OAAmB42F,yBAC/BH,sBAAwB/wF,GAAUw4B,0BAClCizD,cACCzmG,EAAQ8jB,IAAgBhB,UACqB,kBAA7C9iB,EAAQ+b,EAAAA,OAAc4qF,mBACvB,GACC,KACG,wBAAE9mG,IAA4BuD,EAAAA,EAAAA,aAAaD,IAEjD6D,EAAAA,EAAAA,YAAW,KAGH6kG,IAGFC,EACGrF,GACN5mG,EAAyB0b,GAAY+qF,IAGtCzmG,EAAyB0b,GAAY8qF,IACtC,GACE,CACFyF,EACAD,EACApF,EACA5mG,IAGD,IAAI2mG,EAAc/9F,EAKlB,OAJOojG,IACNrF,EAAcsF,EAAoBxF,GAAgBD,KAIlDjtH,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAACuxE,GAAc,CACdlpD,WAAa+kG,EACbxgG,OAAQ7pB,EAAAA,EAAAA,IAAI,YACZwmB,MAAOmK,EAAAA,EAAAA,SAAUq/F,GAAaC,GAC9BxmG,YAAazpB,EAAAA,EAAAA,IAAI,kBACjB8S,QAAS7V,EAAAA,EAAAA,eAACmtH,GAAc,CAACC,YAAcA,IACvC3gG,gBAAgB,2CAEd2gG,IAAgBH,KACjBjtH,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,KACG4iG,GAAgBrtH,EAAAA,EAAAA,eAAC8vH,GAAU,OAAM9vH,EAAAA,EAAAA,eAACkyH,GAAa,OACjDlyH,EAAAA,EAAAA,eAACoyH,GAA2BnnG,KAAI,OAGhCmiG,IAAgBF,KACjBltH,EAAAA,EAAAA,eAACqyH,GAAa,CAACjnG,kBAAgB,KAG/BunG,IAAwB3yH,EAAAA,EAAAA,eAACssH,GAAmB,MAGjD,C,cCpFe,SAAS2G,KACvB,MAAMriE,GAAaC,EAAAA,GAAAA,eAAeoiE,KAC5B,SAAE9kG,EAAQ,QAAEqB,EAAO,OAAEyL,EAAM,KAAElnB,EAAI,GAAEsY,IAAOvC,EAAAA,EAAAA,YAAalD,IAC5D,MAAM,sBAAE+e,GAA0B/e,EAAQ4W,GAAAA,QACpC,kBAAEgL,EAAiB,gBAAEC,GAAoB7hB,EAAQ8jB,KACjD,0BAAEwoF,GAA8BtsG,EAAQusG,GAAAA,OACxCC,EAAQ5qF,IACR6qF,EAAM5qF,IACN61B,EAAe34B,EAAuB,WAAYytF,EAAOC,GAE/D,MAAO,CACNllG,SAAU+kG,EAA2B,8BACrC1jG,QAAS8uC,GAAc9uC,QACvByL,OAAQqjC,GAAcrjC,OACtBlnB,KAAMq/G,EACN/mG,GAAIgnG,EACJ,GACC,KACG,iBAAEpwF,IAAqBjZ,EAAAA,EAAAA,aAAawT,GAAAA,OAEpC81F,GAAcxhG,EAAAA,EAAAA,UAAS,IACvBtC,aAAmB+jG,SAChB/jG,EAAS,CAAEyL,WACPA,GAIJwK,EAAAA,EAAAA,6BAA6BxK,GAE9BzL,GACL,CAAEA,EAASyL,KAER,iBAAEgL,IAAqBjc,EAAAA,EAAAA,aAAa0gB,IAC1C,OACC1qC,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,0BACdpqB,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,mCACdpqB,EAAAA,EAAAA,eAAA,WAAM+C,EAAAA,EAAAA,IAAI,kBACV/C,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNuE,QAAQ,WACRhE,QAAUA,IAAMgc,EAAkB,UAClC9X,SAAWA,IAETprB,EAAAA,EAAAA,IAAI,uBAGR/C,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,gCACdpqB,EAAAA,EAAAA,eAAC8xC,EAAAA,eAAc,CACdroB,GAAG,QACH45D,QAAW,yBAAyBzyB,MAElC7tD,EAAAA,EAAAA,IAAI,uBAEP/C,EAAAA,EAAAA,eAACwzH,GAAAA,EAAQ,CACRC,aAAa,MACbC,IAAI,OACJt8H,MAAQk8H,EACRnvH,SAAa66B,IACZiE,EAAkB,WAAYlvB,EAAMsY,EAAI,CACvCmD,QAASwP,EAAMlhC,OAAO1G,MACtB6jC,YAAQxV,EACR0mD,eAAW1mD,GACT,EAEJ2E,UAAU,kCACViC,GAAM,yBAAyBukC,IAC/B5N,aAAcjgD,EAAAA,EAAAA,IAAI,sCAKvB,CCMA,OAlFA,WACC,MAAM,cAAEumC,IAAkBxf,EAAAA,EAAAA,WAAW4gB,IAC/BipF,GAAuB7pG,EAAAA,EAAAA,YAC1BlD,GACDA,EAAQmD,GAAiBhC,2BACxB2iB,GAAchzC,QACTw1H,IACP,KAEK,iBAAEjnF,EAAgB,sBAAEH,IACzB9b,EAAAA,EAAAA,aAAa0gB,KACR,wBAAEjkB,EAAuB,yBAAEK,IAChCkD,EAAAA,EAAAA,aAAaD,IACR,cAAE6pG,IAAkB5pG,EAAAA,EAAAA,aAAakS,GAAAA,QACjC,aAAEwhC,EAAY,yBAAE8tD,EAAwB,mBAAEqI,IAC/C/pG,EAAAA,EAAAA,WAAWoS,GAAAA,OAEN43F,EAA0BA,CAAE90F,EAAOrG,KACxCqG,EAAMC,iBACN,MAAM80F,EACK,IAAVp7F,EAAc,iBAAmB,eAC5Bq7F,EAAkBxI,IACxB,GAAyB,OAApBwI,EACJ,OAED,MAAMrgD,EAAYjW,EAAcs2D,GAChC,GAAmB,mBAAdrgD,GAAgD,iBAAdA,EACtC,OAED,MAAMx5C,EAAa05F,EAAoBG,GACjC5jF,EACS,mBAAdujC,EAAiC,QAAU,YACtCsgD,EACoB,mBAAzBF,EAA4C,QAAU,YAEvDH,EACCI,GACA5+E,EAAAA,EAAAA,aAAa2+E,EAAsB,CAClCp7F,QACAnJ,QAAS2K,EAAW3K,QACf,CAAEykG,GAAwB95F,EAAYiW,KAE5C,EAqCF,OAlCA8jF,EAAAA,GAAAA,aAAa,gDAAkDl1F,IAG9DA,EAAMC,iBAED00F,EACJ7sG,EAA0Bqb,IAE1B1b,EAAyB0b,GAAY+qF,GACtC,KAGDgH,EAAAA,GAAAA,aAAa,8BAA8B,KAC1CjuF,EAAsC,WAApBqD,IAA+B,OAAS,SAAU,KAGrE4qF,EAAAA,GAAAA,aAAa,iDAAmDl1F,GAC/D80F,EAAyB90F,EAAO,KAGjC,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIlmC,SAAW6/B,KAI/Bu7F,EAAAA,GAAAA,aACE,iDAAiDv7F,KAChDqG,GAAW80F,EAAyB90F,EAAOrG,IAC7C,KAGFu7F,EAAAA,GAAAA,aAAa,0CAA0C,KACtDpuF,GAAuB,IAGjB,IACR,EChGe,SAASquF,IAAmB,eAAEC,EAAc,YAAEC,IAC5D,OACCr0H,EAAAA,EAAAA,eAAA,WAASoqB,UAAU,mCAClBpqB,EAAAA,EAAAA,eAAA,UACCs0H,OAASF,EACTpuE,MAAM,sCAEPhmD,EAAAA,EAAAA,eAAA,OAAK4H,IAAMysH,EAAct6H,MAAM,MAAMf,OAAO,MAAMqzD,IAAI,KAGzD,CCIe,SAASkoE,KACvB,MAAM,OAAE/sG,IAAWwC,EAAAA,EAAAA,aAAanD,EAAAA,OAWhC,OATiBiD,EAAAA,EAAAA,YACdlD,KACEA,EAAQC,EAAAA,OAAmB3vB,IAC7B,iBACA,iBAEF,KAQA8I,EAAAA,EAAAA,eAACw0H,EAAAA,MAAK,CACLpqG,UAAU,uCACVqqG,cAAe1xH,EAAAA,EAAAA,IAAI,8BACnB2xH,kBAAmB3xH,EAAAA,EAAAA,IAAI,eACvB4xH,SAAWA,IAAMntG,EAAQ,iBAAkB,gBAC3Co9C,MAAQ,CACP,CACCgwD,OACC50H,EAAAA,EAAAA,eAACm0H,GAAiB,CACjBC,eAAe,2DACfC,YAAY,6DAGd7kG,SACCxvB,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAAA,MAAIoqB,UAAU,qCACXrnB,EAAAA,EAAAA,IAAI,oBAEP/C,EAAAA,EAAAA,eAAA,KAAGoqB,UAAU,kCACVrnB,EAAAA,EAAAA,IACD,+FAGF/C,EAAAA,EAAAA,eAAA,KAAGoqB,UAAU,kCACV6vB,EAAAA,EAAAA,2BACDl3C,EAAAA,EAAAA,IACC,6GAED,CACC8xH,iBACC70H,EAAAA,EAAAA,eAAA,OACCqsD,KAAMtpD,EAAAA,EAAAA,IAAI,UACV6E,IAAI,kSApCP,IAgDT,CC5De,SAASktH,KACvB,MAAM,OAAEttG,IAAWwC,EAAAA,EAAAA,aAAanD,EAAAA,QAE1B,SAAEmG,EAAQ,aAAE+nG,IAAiBjrG,EAAAA,EAAAA,YAAalD,IAC/C,MAAMyI,EAAUzI,EAAQmD,GAAiBhC,2BACxC2iB,GAAchzC,MAGf,MAAO,CACNs1B,WAAapG,EAAQC,EAAAA,OAAmB3vB,IACvC,iBACA,sBAED69H,aAA0B,4BAAZ1lG,EACd,GACC,IAEH,IAAOrC,IAAc+nG,EACpB,OAAO,KAGR,MAAMC,GAAejyH,EAAAA,EAAAA,IAAI,qBAEzB,OACC/C,EAAAA,EAAAA,eAACw0H,EAAAA,MAAK,CACLpqG,UAAU,uCACVqqG,aAAeO,EACfN,kBAAmB3xH,EAAAA,EAAAA,IAAI,eACvB4xH,SAAWA,IAAMntG,EAAQ,iBAAkB,sBAC3Co9C,MAAQ,CACP,CACCgwD,OACC50H,EAAAA,EAAAA,eAACm0H,GAAiB,CACjBC,eAAe,8DACfC,YAAY,gEAGd7kG,SACCxvB,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAAA,MAAIoqB,UAAU,oCACX4qG,IAEHh1H,EAAAA,EAAAA,eAAA,KAAGoqB,UAAU,kCACVrnB,EAAAA,EAAAA,IACD,gLAML,CACC6xH,OACC50H,EAAAA,EAAAA,eAACm0H,GAAiB,CACjBC,eAAe,2DACfC,YAAY,6DAGd7kG,SACCxvB,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAAA,MAAIoqB,UAAU,qCACXrnB,EAAAA,EAAAA,IAAI,oBAEP/C,EAAAA,EAAAA,eAAA,KAAGoqB,UAAU,kCACVrnB,EAAAA,EAAAA,IACD,kKAML,CACC6xH,OACC50H,EAAAA,EAAAA,eAACm0H,GAAiB,CACjBC,eAAe,+DACfC,YAAY,iEAGd7kG,SACCxvB,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAAA,MAAIoqB,UAAU,qCACXrnB,EAAAA,EAAAA,IAAI,wBAEP/C,EAAAA,EAAAA,eAAA,KAAGoqB,UAAU,kCACVrnB,EAAAA,EAAAA,IACD,0LAML,CACC6xH,OACC50H,EAAAA,EAAAA,eAACm0H,GAAiB,CACjBC,eAAe,gEACfC,YAAY,kEAGd7kG,SACCxvB,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAAA,MAAIoqB,UAAU,qCACXrnB,EAAAA,EAAAA,IAAI,gBAEP/C,EAAAA,EAAAA,eAAA,KAAGoqB,UAAU,kCACVrnB,EAAAA,EAAAA,IACD,8CACI,KACL/C,EAAAA,EAAAA,eAACuwE,EAAAA,aAAY,CACZryC,MAAOn7B,EAAAA,EAAAA,IACN,kEAGCA,EAAAA,EAAAA,IACD,sEAUV,CC5He,SAASkyH,KACvB,MAAM,OAAEztG,IAAWwC,EAAAA,EAAAA,aAAanD,EAAAA,OAE1BuB,GAAY0B,EAAAA,EAAAA,YAAalD,IAC9B,MAAMsuG,IAAkBtuG,EAAQC,EAAAA,OAAmB3vB,IAClD,iBACA,oBAEKi+H,IAAoBvuG,EAAQC,EAAAA,OAAmB3vB,IACpD,iBACA,iBAEK,OAAEwyC,GAAW9iB,EAAQ8jB,IAC3B,OAAOwqF,IAAkBC,GAAkBzrF,GAAQ,GACjD,IAEH,IAAOthB,EACN,OAAO,KAGR,MAAM06F,GAAU//G,EAAAA,EAAAA,IAAI,kBAEpB,OACC/C,EAAAA,EAAAA,eAACw0H,EAAAA,MAAK,CACLpqG,UAAU,qCACVqqG,aAAe3R,EACf4R,kBAAmB3xH,EAAAA,EAAAA,IAAI,YACvB4xH,SAAWA,IAAMntG,EAAQ,iBAAkB,oBAC3Co9C,MAAQ,CACP,CACCgwD,OACC50H,EAAAA,EAAAA,eAAA,SACCoqB,UAAU,iCACVgrG,UAAQ,EACRC,MAAI,EACJC,OAAK,EACLv7H,MAAM,MACNf,OAAO,QAEPgH,EAAAA,EAAAA,eAAA,UACC4H,IAAI,4DACJmM,KAAK,eAIRyb,SACCxvB,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAAA,MAAIoqB,UAAU,oCACX04F,IAEH9iH,EAAAA,EAAAA,eAAA,KAAGoqB,UAAU,kCACVrnB,EAAAA,EAAAA,IACD,8LAST,CC5De,SAASwyH,KACvB,MAAM,OAAE/tG,IAAWwC,EAAAA,EAAAA,aAAanD,EAAAA,OAE1BuB,GAAY0B,EAAAA,EAAAA,YAAalD,IAC9B,MAAM4uG,IAAsB5uG,EAAQC,EAAAA,OAAmB3vB,IACtD,iBACA,wBAEKi+H,IAAoBvuG,EAAQC,EAAAA,OAAmB3vB,IACpD,iBACA,iBAEK,OAAEwyC,GAAW9iB,EAAQ8jB,KACrB,iBAAE6iF,GAAqB3mG,EAAQ+b,EAAAA,OACrC,OACC6yF,IACEL,GACFzrF,KACuB,kBAAvB6jF,GAAsC,GAErC,IAEH,IAAOnlG,EACN,OAAO,KAGR,MAAM06F,GAAU//G,EAAAA,EAAAA,IAAI,sBAEpB,OACC/C,EAAAA,EAAAA,eAACw0H,EAAAA,MAAK,CACLpqG,UAAU,yCACVqqG,aAAe3R,EACf4R,kBAAmB3xH,EAAAA,EAAAA,IAAI,YACvB4xH,SAAWA,IACVntG,EAAQ,iBAAkB,wBAE3Bo9C,MAAQ,CACP,CACCgwD,OACC50H,EAAAA,EAAAA,eAAA,SACCoqB,UAAU,iCACVgrG,UAAQ,EACRC,MAAI,EACJC,OAAK,EACLv7H,MAAM,MACNf,OAAO,QAEPgH,EAAAA,EAAAA,eAAA,UACC4H,IAAI,gEACJmM,KAAK,eAIRyb,SACCxvB,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAAA,MAAIoqB,UAAU,oCACX04F,IAEH9iH,EAAAA,EAAAA,eAAA,KAAGoqB,UAAU,kCACVrnB,EAAAA,EAAAA,IACD,mNAST,CC3Ee,SAAS0yH,KACvB,OACCz1H,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAACu0H,GAAkB,OACnBv0H,EAAAA,EAAAA,eAAC80H,GAAkB,OACnB90H,EAAAA,EAAAA,eAACi1H,GAAgB,OACjBj1H,EAAAA,EAAAA,eAACu1H,GAAoB,MAGxB,CCkGA,SAASG,IAAkB,gBAAEC,EAAe,gBAAEC,EAAe,SAAE10F,IAC9D,MAAO,CAAD,CAAM/8B,IAAa0xH,EAAAA,GAAAA,sBAAsB,WAAY30F,GACrDq2B,EA5EP,SAA2Bo+D,GAC1B,MAAM,KAAE/0F,EAAI,SAAEw0B,IAAatrC,EAAAA,EAAAA,YAAalD,IACvC,MAAM,kBAAE4hB,EAAiB,gBAAEC,GAAoB7hB,EAAQ8jB,KACjD,gBAAE5J,GAAoBla,EAAQ4W,GAAAA,OAC9ByD,EAASwH,IAET+D,EAAS1L,EAAiB,WADf0H,IACqCvH,IAChD,YAAEqH,GAAgB1hB,EAAQsV,GAAAA,OAChC,MAAO,CACN0E,KAAM4L,EAAO5L,KACbw0B,SAAU9sB,IAAcmtB,4BACxB,GACC,IAEGu7D,GAAyBlnG,EAAAA,EAAAA,YAC5BlD,GAAYA,EAAQ4W,GAAAA,OAAYC,kBAAkBsD,aA8BrD,OAAOjP,EAAAA,EAAAA,UAAS,IAER,CACN,CACCp6B,KAAM,WACNujC,QAAQjB,EAAAA,EAAAA,OAAO27F,GACf/oG,OAAO7pB,EAAAA,EAAAA,IAAI,wBAETqyD,EACDh3D,QAAUu3D,GAETp6D,MAAMc,QAASs5D,EAAQy7D,gBACvBz7D,EAAQy7D,cAAcxzF,MAAQ+qB,GAC7B/nB,EAAK6c,WAAYkL,OAInB9xD,KAAO8+D,IACA,IACHA,EACH16B,QAAQjB,EAAAA,EAAAA,OAAO27B,EAAQnmC,SAAU34B,KAAO4wC,GA9C7C,SAAqDA,GAuBpD,OArBCA,EAAMD,YAAY0R,MACf+3E,GAAoC,uBAApBA,EAAWv5H,SAG9B+vC,EAAMD,YAAcC,EAAMD,YAAY3wC,KAAOo6H,IAEvB,uBAApBA,EAAWv5H,WACqB+tB,IAAhCwrG,EAAW92F,WAAWsF,QAEtBwxF,EAAW92F,WAAWsF,MAAQuxF,GAExBC,MAKO,uBAAfxpF,EAAM/vC,WACqB+tB,IAA3BgiB,EAAMtN,WAAWsF,QAEjBgI,EAAMtN,WAAWsF,MAAQuxF,GAEnBvpF,CACR,CAuBMspF,CAA4CtpF,WAK/C,CAAEkuF,EAAiB/0F,EAAMw0B,GAC7B,CAIuB0gE,CAAkBH,GAClCI,GAAqBzqD,EAAAA,GAAAA,cAAc/T,GACzC,OACCv3D,EAAAA,EAAAA,eAAC4wH,GAAAA,gCAAiB,CACjBr5D,cAAgBA,EAChBs5D,cAAgBkF,EAChBjF,eAAiBA,CAAEn7D,EAAS16B,KAC3B92B,EAAU82B,EAAQ,CAAEkxC,eAAW1mD,IAC/BmwG,GAAiB,GAIrB,CAEA,SAASI,IAAY,KAAEp1F,EAAI,SAAEs0B,EAAQ,QAAEhnC,EAAO,SAAEgT,IAC/C,MAAMy0F,EA9GP,SAAqC/0F,EAAMs0B,GAAW,GACrD,OAAOprC,EAAAA,EAAAA,YACJlD,IACD,MAAM,gBAAEka,EAAe,qBAAEq6B,GACxBv0C,EAAQ4W,GAAAA,OACHy4F,EAAa96D,EAAsB,CACxCv6B,OACAmsB,UAAWmI,EACXghE,cAAc,IAEf,OAAOD,EACJn1F,EAAiB,WAAYzB,GAAoB42F,IAC/CzmG,SAAS9Z,SACX+P,CAAS,GAEb,CAAEmb,EAAMs0B,GAEV,CA6FyBihE,CAA4Bv1F,EAAMs0B,GAC1D,OAAOygE,GAIN31H,EAAAA,EAAAA,eAACixB,EAAAA,MAAK,CACL7G,UAAU,0CACVwC,OAAQ7pB,EAAAA,EAAAA,IAAI,oBACZypB,YAAazpB,EAAAA,EAAAA,IAAI,UACjBosH,aAAa,eACbj+F,eAAiBhD,EACjB22B,cAAe,IAEf7kD,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,oDACdpqB,EAAAA,EAAAA,eAAC01H,GAAgB,CAChBC,gBAAkBA,EAClB/0F,KAAOA,EACPs0B,SAAWA,EACXh0B,SAAWA,EACX00F,gBAAkBA,KACjB1nG,GAAS,MAIZluB,EAAAA,EAAAA,eAACojD,EAAAA,KAAI,CACJh5B,UAAU,mDACVkJ,QAAQ,WACR81F,UAAW,IAEXppH,EAAAA,EAAAA,eAACuzB,EAAAA,SAAQ,MACRvzB,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CAACuE,QAAQ,WAAWhE,QAAUiE,IAClCnrB,EAAAA,EAAAA,IAAI,YA7BH,IAmCT,CAEA,MAAMqzH,GAA8B,CACnCC,QAAS,UACTC,OAAQ,UAGM,SAASC,KACvB,MAAQC,EAAYC,IAAkB9kG,EAAAA,EAAAA,UACrCykG,GAA4BC,UAEvB,gBAAEK,EAAe,KAAE91F,EAAI,SAAEs0B,EAAQ,SAAEh0B,IAAapX,EAAAA,EAAAA,YACnDlD,IACD,MAAM,kBAAE4hB,EAAiB,gBAAEC,GAC1B7hB,EAAQ8jB,IACHisF,EAAYnuF,IACZvH,EAASwH,KACT,sBAAE9C,EAAqB,wBAAEixF,GAC9BhwG,EAAQ4W,GAAAA,OACHq5F,EAAiBlxF,EACtB,WACAgxF,EACA11F,GAQD,MAAO,CACNy1F,iBAPgBE,EAChB,WACAD,EACA11F,IAMC,KAAO41F,EAAernG,SACtB6P,KAAuBs3F,IACrB/vG,EAAQC,EAAAA,OAAmB3vB,IAC5B,iBACA,gBAEF0pC,KAAMi2F,EAAej2F,KACrBs0B,SAAU2hE,EAAe9pE,UACzB7rB,SAAUy1F,EACV,GAEF,IAGD,OACGH,IAAeJ,GAA4BC,UAC1CK,GACHF,IAAeJ,GAA4BE,OAEpC,MAIPt2H,EAAAA,EAAAA,eAACg2H,GAAU,CACVp1F,KAAOA,EACPs0B,SAAWA,EACXh0B,SAAWA,EACXhT,QAAUA,IACTuoG,EAAeL,GAA4BE,SAI/C,CC7NA,MAAQ/oF,sBAAqBA,IAAK/V,GAAQI,GAAAA,aAwBnC,SAASk/F,KAGf,OAzBD,WACC,MAAQ97F,EAAQ4G,GAAa2L,MACvB,YAAEjF,IAAgBxe,EAAAA,EAAAA,WAAW4gB,KAC7B,eAAE/F,IAAmB3a,EAAAA,EAAAA,aAAa0gB,KAExC9c,EAAAA,EAAAA,YAAW,KAAM,IAAAmpG,EAChB,IAAO/7F,IAAY4G,EAClB,OAGD,MAAMo1F,EAAuB1uF,IACvB2uF,EAAkBp+H,OAAOjC,OACH,QADSmgI,EACpCC,EAAqBh8F,cAAM,IAAA+7F,EAAAA,EAAI,IAC9B34H,QAAU1F,IAAaA,EAAM+2C,iBAC/B9K,EAAgB,IACZqyF,EACHh8F,OAAQ,IAAKi8F,KAAoBj8F,GACjCk8F,uBAAwBt1F,GACtB,GACD,CAAE5G,EAAQ4G,EAAU+C,EAAgB2D,GACxC,CAGC6uF,GAEO,IACR,CCzBA,MAAQz2F,YAAWA,IAAKlJ,GAAQ6G,GAAAA,cCFxBsmD,YAAW,SAAEyyC,IAAU5/F,GAAQ6b,EAAAA,cAC/B1b,eAAcA,IAAKH,GAAQI,GAAAA,aAEpB,SAASy/F,IAAc,GAAEhrG,IAAO,IAAAirG,EAC9C,MAAQC,GAA2B5/F,GAAgB,eAC3CI,GAAoBJ,GAAgB,qBACtC,kBAAEU,GAAsBR,KACxB2/F,EACwB,QADVF,EACnBj/F,EAAmB,IAAKC,aAAK,IAAAg/F,EAAAA,EAAIC,GAC5B,QAAEE,EAAO,MAAElnH,IAAUuZ,EAAAA,EAAAA,YAAalD,IAAY,IAAA8wG,EAAAC,EACnD,MAAMC,EAAoBhxG,EAAQ4W,GAAAA,OAAYq6F,yBACxCC,EAAuC,QAA9BJ,EAAGE,EAAkBE,iBAAS,IAAAJ,EAAAA,EAAI,EAC3CK,EAAqC,QAA7BJ,EAAGC,EAAkBG,gBAAQ,IAAAJ,EAAAA,EAAI,EAC/C,MAAO,CACNF,QAASM,EACTxnH,MAAOwnH,EAAWD,EAClB,GACC,IAEH,OACC93H,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,4BACdpqB,EAAAA,EAAAA,eAACo3H,GAAK,CAACY,OAASR,EAAiBznF,WAAahY,IAC7C/3B,EAAAA,EAAAA,eAAC2kF,GAAW,CAACt4D,GAAKA,EAAKviB,IAAMyG,EAAQnZ,MAAQqgI,KAIjD,CC1BA,MAAM,mBAAEQ,IAAuBzgG,GAAQ0gG,GAAAA,aAExB,SAASC,KACvB,MAAQ3rF,OAAQmpB,GAAYrL,MACtB,WAAExiC,IAAekC,EAAAA,EAAAA,aAAaD,GAKpC,OAJiBD,EAAAA,EAAAA,YAAalD,GAC7BA,EAAQmD,GAAiBtB,cAAe2vG,GAAeC,WAOjDr4H,EAAAA,EAAAA,eAACi4H,GAAkB,CAAC/pG,QAAUpG,EAAa6tC,QAAUA,IAHpD,IAIT,CCXA,MAAM,sBAAE2iE,IAA0B9gG,GAAQ0gG,GAAAA,cAClC95F,WAAUA,IAAK5G,GAAQ6G,GAAAA,aAEhB,SAASk6F,KACvB,MAAM,OAAE/rF,GAAW8d,MACb,aAAEyM,EAAY,WAAEzD,IAAe30B,EAAAA,GAAAA,cAAchmC,OAAOuI,SAASg9B,OAC7D,WAAEpW,IAAekC,EAAAA,EAAAA,aAAaD,GAC9BwU,EAAUH,KAMhB,OAJiBtU,EAAAA,EAAAA,YAAalD,GAC7BA,EAAQmD,GAAiBtB,cAAe2vG,GAAeI,cAmBvDx4H,EAAAA,EAAAA,eAACs4H,GAAqB,CACrBpqG,QAAUpG,EACVmxC,UAdF,UAAsBtD,QAAS8iE,IAC9Bl6F,EAAQlnC,KAAM,CACb0/D,eACAzD,aACApyB,SAAUtB,GAAcvF,KACxB4G,OAAQw3F,EAAWpsG,KAGpBvE,GACD,EAME6tC,QAAUnpB,IAlBJ,IAqBT,CC9CO,MAAM4rF,GAAiB,CAC7BC,OAAQ,2BACRG,UAAW,+BAGG,SAASE,KACvB,OACC14H,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAACu4H,GAAqB,OACtBv4H,EAAAA,EAAAA,eAACm4H,GAAkB,MAGtB,CCPA,QALCn4H,EAAAA,EAAAA,eAACgmB,EAAAA,IAAG,CAACC,MAAM,6BAA6BC,QAAQ,cAC/ClmB,EAAAA,EAAAA,eAACmmB,EAAAA,KAAI,CAACvjB,EAAE,6DCWV,MAAQ89B,YAAW,GAAEtC,WAAUA,IAAK5G,GAAQ6G,GAAAA,aA6B5C,OA3BA,WACC,MAAMn9B,EAAWw/B,KACXnC,EAAUH,KACVuJ,EAAiBzmC,EAASs9B,OAAO0C,WAAa5B,GAC9Cq5F,EAAmBz3H,EAASs9B,OAAO0C,WAAa9B,GAChDw5F,EAAY13H,EAASs9B,OAAO0C,WAAatB,GAAcvF,KACvDw+F,EAAqB33H,EAAS4C,OAAOs9B,eAI3C,OAFoBuG,GAAkBgxF,GAAoBC,KAEhCC,GAAwBD,IAKjD54H,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNU,UAAU,uCACVb,KAAOuvG,GACP7uG,QAAUA,KACTsU,EAAQptB,MAAM,IAGbpO,EAAAA,EAAAA,IAAI,SAXA,IAcT,ECpBA,MAAQg2H,aAAcC,IAAqBxhG,GAAQ02F,EAAAA,aAsGnD,OApGA,UAAuB,eAAE/7E,EAAc,SAAEvQ,EAAQ,SAAE98B,KAAa/D,IAC/D,MAAM,UAAEk4H,EAAS,YAAEC,EAAW,aAAEvwE,EAAY,WAAE3mB,EAAU,cAAEm3F,IACzDrvG,EAAAA,EAAAA,YAAalD,IACZ,MAAM,cAAE+2C,EAAa,wBAAEypD,GACtBxgG,EAAQsV,GAAAA,QACH,kBAAEsM,EAAiB,cAAEmB,GAAkBnS,GAC5C5Q,EAAQ8jB,KAEH0uF,EAAgB5wF,IAEtB,MAAO,CACNmgB,aAAcywE,EACdF,YAAah5F,GAAmBtU,SAAUwtG,GAC1CD,cAA6C,aAA9B/R,IACfplF,WAAY2H,IACZsvF,YAAct7D,IACd,GACC,KACE,cAAEn3B,GAAkBhP,IAAQxN,EAAAA,EAAAA,aAAa0gB,MACvCsD,EAAWwC,IAAiB7e,EAAAA,EAAAA,WAAU,IAE9C/D,EAAAA,EAAAA,YAAW,KACU,SAAfoU,GACJwO,GAAc,EACf,GACE,CAAExO,IAEL,MAAMq3F,EAAgB,CACrB,cAAct2H,EAAAA,EAAAA,IAAI,iBAClBmpB,KAAM,SACNvB,SAAU,EACVomB,QAASA,IAAMP,GAAc,GAC7BQ,OAAQA,IAAMR,GAAc,GAC5BI,UAAa5R,IACZ,MAAM,QAAE6R,GAAY7R,EACf6R,IAAYC,GAAAA,OAASD,IAAYiF,GAAAA,QACrC9W,EAAMC,iBACNuH,EAAe,QAChB,EAEDvc,QAASA,IAAMuc,EAAe,QAC9BuP,UAAU,GAELujF,EAA2B3wE,IAAiBvpB,GAK5Cm6F,IAJwBD,GAA4BJ,GAK9BD,GAA8B,SAAfj3F,SAEvCvc,EAEEuV,GAASlJ,EAAAA,EAAAA,UACd,IAAM,IACF8P,EAAS5G,OACZ,CAICwU,IAAM,wCAGL2C,EAAiB,0BAA4B,8BAE9B,SAAfnQ,EACG,sCACA,UAIN,CAAEJ,EAAS5G,OAAQmX,EAAgBnQ,IAGpC,OACChiC,EAAAA,EAAAA,eAACg5H,GAAgB,CAChB5uG,UAAYM,IAAY,sCAAuC,CAC9D,sBAAuB4uG,IAExB5iF,eAAiB6iF,EACjBv+F,OAASA,EACTw+F,YAAc,CACbC,OAAQN,EACR1rF,MAAO0rF,EAAgB,SAAO1zG,EAC9Bi0G,UAAWP,EAAgB,SAAM1zG,EACjC2E,UAAWM,IACV,yCACA,CACC,aAAcsjB,GAA4B,SAAfhM,OAG1BjhC,KACiB,SAAfihC,EAAwBq3F,EAAgB,CAAC,IAG7Cv0H,EAGL,EClHA,MAAQs5B,WAAUA,IAAK5G,GAAQ6G,GAAAA,aAExB,SAASs7F,KACf,MAAMp7F,EAAUH,KAEhB,MAAO,CAAEI,EAAQ16B,IACTw6B,GAAkBC,EAASC,EAAQ16B,EAE5C,CCJA,MAAM,uBAAE81H,IAA2BpiG,GAAQ02F,EAAAA,aA0EpC,SAAS2L,KACf,MAAMv7F,EAAmBq7F,MACnB,aAAEr6E,EAAY,WAAEtd,EAAU,SAAEJ,EAAQ,iBAAEk4F,IAAqBhwG,EAAAA,EAAAA,YAC9DlD,IACD,MAAM,kBACL4hB,EAAiB,gBACjBC,EAAe,qBACfC,EAAoB,cACpBiB,EAAa,YACbrB,GACG9Q,GAAQ5Q,EAAQ8jB,MACd,sBAAE/E,GAA0B/e,EAAQ4W,GAAAA,OAGpCotB,EAAUjlB,EACf,WAHoB6C,IACFC,KAMbsxF,EAAWrxF,IACjB,MAAO,CACN4W,aAAcsL,EAAQhqB,KACtBoB,WAAY2H,IACZ/H,SAAU0G,IACVwxF,iBAAkBC,GAAU94F,OAC5B,GAEF,IAEK+4F,EArGP,SAA0B16E,GACzB,MAAM26E,EAAkB36E,GAAcr5C,MACrC,gFAED,IAAIi6C,EACAqU,EAEA2lE,EADAC,GAAW,EAEf,GAAKF,EAECA,EAAiB,GACrB/5E,EAAW+5E,EAAiB,GACzBA,EAAiB,GACjBA,EAAiB,GAGXA,EAAiB,KAC1B/5E,EAAW+5E,EAAiB,GACzBA,EAAiB,GACjBA,EAAiB,GACpB1lE,EAAO0lE,EAAiB,IAEzB/5E,EAAwB,QAAbA,EAAqB,WAAaA,MAIvC,CACN,MAAMk6E,EAAgB96E,GAAcr5C,MAAO,4BACtCm0H,IACJD,GAAW,EACNC,EAAe,KACnBF,EAAaE,EAAe,IAG/B,CACA,OAAOtwG,EAAAA,EAAAA,YACJlD,IACD,MAAM,iBAAEwhB,EAAgB,YAAEiyF,EAAW,WAAEC,GACtC1zG,EAAQ4W,GAAAA,OACT,IAAI+8F,EACAC,EAKJ,GAJKt6E,IACJq6E,EACCF,EAAan6E,IAAYzwB,QAAQwtB,eAE9BsX,EAAO,CACX,MAAMrS,EAAU9Z,EAAkB,WAAY8X,EAAU,CACvDtf,KAAM2zB,EACNlsB,SAAU,IAEN6Z,GAAWA,EAAS,KACxBs4E,EAAmBt4E,EAAS,GAAIxqD,KAElC,CACA,GAAKyiI,IACJI,EAAmB,SACdL,GAAa,CACjB,MAAMO,EAAgBH,EAAY,CAAE15F,KAAMs5F,IACrCO,GAAiBA,EAAe,KACpCD,EAAmBC,EAAe,GAAI/iI,KAExC,CAED,MAAO,CACN6iI,mBACAC,mBACA,GAEF,CAAEN,EAAYC,EAAUj6E,EAAUqU,GAEpC,CA+BuBmmE,CAAiBp7E,GACjCq7E,EAAuBb,EAAmB,kBAAoB,MAuBpE,OAtB8BhoG,EAAAA,EAAAA,UAAS,KAC/B,IACH8P,EAEHg5F,oBAAoB,EACpBC,sBAAsB,EACtBC,UAA0B,SAAf94F,EACX24F,uBACAr8F,mBAEAy8F,oCAAqCf,EAAcO,iBACnDS,oCAAqChB,EAAcQ,oBAElD,CACF54F,EACAI,EACA24F,EACAr8F,EACA07F,EAAcO,iBACdP,EAAcQ,kBAIhB,CCtHe,SAASS,KACvB,MAAM,aAAEtyE,EAAY,YAAEuwE,EAAW,WAAEr+E,IAAe/wB,EAAAA,EAAAA,YAAalD,IAC9D,MAAM,kBAAE4hB,EAAiB,cAAEmB,GAAkBnS,GAC5C5Q,EAAQ8jB,KAGH0uF,EAAgB5wF,IAEtB,MAAO,CACNmgB,aAAcywE,EACdF,YAAah5F,GAAmBtU,SAAUwtG,GAC1Cv+E,WAAgC,SAApBlR,IACZ,GACC,KAEKkN,EAAgBjB,IAAUjH,EAAAA,GAAAA,qBAE5B/M,EDuGQ,WACd,MAAMs5F,EAAwBrB,MACxB,SAAE34F,EAAQ,OAAED,IAAWnX,EAAAA,EAAAA,YAAalD,IACzC,MAAM,kBAAE4hB,EAAiB,gBAAEC,GAAoBjR,GAC9C5Q,EAAQ8jB,KAIT,MAAO,CACNxJ,SAHoBsH,IAIpBvH,OAHkBwH,IAIlB,GACC,IACH,OAAOmxF,GAAwBsB,EAAuBh6F,EAAUD,EACjE,CCrHkBk6F,GAEXvgF,GAAmBppB,EAAAA,GAAAA,kBAAkB,QAAS,KAC9C2gB,EACL+mF,IACEr+E,IAEAD,EAIGwgF,EAF2BzyE,IAAiBvpB,IACQ85F,EAG1D,OACCl5H,EAAAA,EAAAA,eAACyzC,GAAsBxoB,KAAI,MACxB,EAAIowG,KACLA,GACCr7H,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,yCACZixG,IAGHr7H,EAAAA,EAAAA,eAAA,OACCoqB,UAAYM,IAAY,0BAA2B,CAClD,gBAAiBwuG,KAAkBmC,EACnC,eAAgBxgF,MAGjB76C,EAAAA,EAAAA,eAACs7H,GAAU,OACXt7H,EAAAA,EAAAA,eAACq0C,GAAe,CACflC,eAAiBA,EACjBn5C,OACC48C,EAAM58C,SAAYoiI,EACfxlF,EAAM58C,OACN,SAGJgH,EAAAA,EAAAA,eAAC+4H,GAAY,CACZ5mF,eAAiBA,EACjBvQ,SAAWA,GAETiV,MAQV,CClFe,SAAS0kF,IAAwB,SAAElxE,EAAQ,QAAEn8B,IAC3D,MAAM,UAAEo7F,IAAcx/F,EAAAA,EAAAA,WAAWoS,GAAAA,QAC3B,cAAE03F,IAAkB5pG,EAAAA,EAAAA,aAAakS,GAAAA,OAOvC,OALkBpS,EAAAA,EAAAA,YACflD,GAAYA,EAAQsV,GAAAA,OAAmBs/F,eAAgBnxE,IACzD,CAAEA,KAQFrqD,EAAAA,EAAAA,eAAC+rB,EAAAA,SAAQ,CACR9B,QAAUA,KACT2pG,EAAevpE,EAAUi/D,EAAWj/D,IACpCn8B,GAAS,IAGRnrB,EAAAA,EAAAA,IAAI,WAVA,IAaT,CCbe,SAAS04H,IAAuB,UAAEvyF,EAAS,OAAEjO,IAC3D,MAAQ0xB,EAAaC,IAAmBj7B,EAAAA,EAAAA,WAAU,IAC5C,cAAEiiG,IAAkB5pG,EAAAA,EAAAA,aAAakS,GAAAA,QACjC,oBAAEC,IAAwBnS,EAAAA,EAAAA,aAAaoS,GAAAA,QAEvC,UAAEgtB,IAAct/B,EAAAA,EAAAA,YAAalD,IAClC,MAAM,0BAAEwzC,GACPxzC,EAAQ8jB,IAAgBpC,cACzB,MAAO,CACN8gB,WAAagR,EACb,GACC,IAEH,OAAOhR,GAqBNppD,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAAC+rB,EAAAA,SAAQ,CACRxC,KAAOuvC,GACP7uC,QAAUA,KACT2iC,GAAgB,EAAM,EAEvB,gBAAgBD,EAChB,gBAAc,WAEZ5pD,EAAAA,EAAAA,IAAI,yBAEL4pD,IACD3sD,EAAAA,EAAAA,eAACmwD,GAAuB,CACvBroC,WAAaA,KACZ8kC,GAAgB,EAAO,EAExB3xB,OAASA,EACTq1B,SAlCc7rD,UACjBmvH,EACC1qF,GACAkM,EAAAA,EAAAA,aAAa,qBAAsB,CAClCxU,KAAMC,EAAaD,KACnBnB,MAAOoB,EAAapB,SAGtBtD,GAAqBp5B,EAAAA,EAAAA,IAAI,0BAA4B,CACpDgR,KAAM,YACJ,KAbI,IA0CT,CC3De,SAAS2nH,KACvB,OACC17H,EAAAA,EAAAA,eAAC27H,GAAAA,0BAAyB,MACvB,EAAIC,oBAAmB1tG,cACxBluB,EAAAA,EAAAA,eAAC67H,GAA6B,CAC7B3yF,UAAY0yF,EACZ1tG,QAAUA,KAKf,CAEA,SAAS2tG,IAA+B,UAAE3yF,EAAS,QAAEhb,IACpD,MAAM+M,GAASnR,EAAAA,EAAAA,YACZlD,GACDA,EAAQsV,GAAAA,OAAmBkN,oBAAqBF,IACjD,CAAEA,IAIH,OAAuB,IAAlBjO,EAAOv/B,QAAsC,uBAAtBu/B,EAAQ,IAAKvjC,MAEvCsI,EAAAA,EAAAA,eAACu7H,GAAsB,CACtBlxE,SAAWnhB,EAAW,GACtBhb,QAAUA,KAINluB,EAAAA,EAAAA,eAACy7H,GAAqB,CAACvyF,UAAYA,EAAYjO,OAASA,GAChE,CCaA,MAAM,yBAAE6gG,IAA6BtkG,GAAQI,GAAAA,cAE5CmkG,2BAA4BC,GAAc,gBAC1CC,GAAe,gBACfC,IACG1kG,GAAQ02F,EAAAA,aAENiO,GAAkB;;AAEvB57H,MAAMwC,EAAAA,EAAAA,IAAI;;AAEVssB,SAAStsB,EAAAA,EAAAA,IAAI;;AAEbkmB,SAASlmB,EAAAA,EAAAA,IAAI;;AAEbosB,QAAQpsB,EAAAA,EAAAA,IAAI,kBAKPq5H,GAAoB,CACzB,cAAcr5H,EAAAA,EAAAA,IAAI,iDAClB,qBAAqBA,EAAAA,EAAAA,IACpB,wDAED,sBAAsBA,EAAAA,EAAAA,IACrB,8DAIa,SAASs5H,IAAQ,UAAEtvG,IACjC,MACCyf,OAAQ3K,EAAU,SAClBkpB,EACAR,SAAU+xE,GACPhyE,MAEIv2C,KAAMwoH,GAAmB16F,EAE3BtQ,GAAkBC,EAAAA,GAAAA,kBAAkB,WAEpC,QACLnI,EAAO,YACPmzG,EAAW,WACXC,EAAU,WACVz6F,EAAU,cACV+tF,EAAa,gBACb2M,EAAe,mBACfC,EAAkB,eAClBC,EAAc,eACdC,EAAc,eACdxvG,EAAc,qBACdyvG,IACGhzG,EAAAA,EAAAA,YAAalD,IAChB,MAAM,IAAE1vB,GAAQ0vB,EAAQC,EAAAA,QAClB,qBAAE6hB,EAAoB,cAAEY,EAAa,cAAEK,GAAkBnS,GAC9D5Q,EAAQ8jB,MAEH,wBAAE08E,GAA4BxgG,EAAQsV,GAAAA,QACtC,2BAAEnU,GAA+BnB,EAAQmD,IACzC,gBAAE+W,GAAoBla,EAAQmhB,GAAAA,QAC9B,iBAAEwlF,EAAgB,iBAAE3kF,EAAgB,iBAAEG,GAC3CniB,EAAQ+b,EAAAA,OACHo3F,EAAWrxF,IAIjB,MAAO,CACNrf,QAAS0wG,EACTyC,YAAazC,GAAU94F,OACpBH,EACA,WACAi5F,EAAS74F,SACT64F,EAAS94F,aAETxb,EACHg3G,WAAYnzF,IACZtH,WAAY2H,IACZomF,cAAexC,IACfmP,gBAAiBtV,IACjBwV,eAAgBh0F,IAChBi0F,eAAgB9zF,IAChB4zF,mBAAoB50G,EACnB2iB,GAAchzC,MAEfolI,qBAAsB5lI,EAAK,OAAQ,wBACnCm2B,eAAgBn2B,EAAK,OAAQ,kBAC7B,GACC,IAGG6lI,EAA4B,SAAf/6F,EACbg7F,EAF4B,SAAfh7F,GAEmC,WAAfy6F,EACjCQ,EACLH,GACAC,GACAC,GACoB,aAApBN,EACKQ,EAAqBH,GAAcC,GAAoBJ,EACvDO,EAAqBJ,GAAcC,GAAoBH,EACvDO,EAAwBP,GAC3B95H,EAAAA,EAAAA,IAAI,cACJA,EAAAA,EAAAA,IAAI,iBACD+2H,IAAsBzwG,GAAS4X,OAErC,IAAIrU,EACiB,IAAAywG,EAAhBf,IACJ1vG,GAAQiQ,EAAAA,EAAAA;;CAEP95B,EAAAA,EAAAA,IAAI,eACJgoD,IACkC,QADxBsyE,EACVl9F,GAAkBo8F,UAAgB,IAAAc,EAAAA,EACjCl9F,GAAkBd,MdxJP,SAAmBzS,GACjC,MAAM1rB,EAAWw/B,KACX48F,GAAYxzG,EAAAA,EAAAA,YACflD,GACDA,EAAQ4W,GAAAA,OAAYsD,gBAAiB,OAAQ,SAAUlU,OACxD,IAEK2wG,GAAuB7vG,EAAAA,EAAAA,SAAQ,IAErCE,EAAAA,EAAAA,YAAW,KACV2vG,EAAqBr4H,SAAU,CAAK,GAClC,CAAEhE,KAEL0sB,EAAAA,EAAAA,YAAW,KAEV,IAAK2vG,EAAqBr4H,SAIrB0nB,GAAS0wG,EAAY,CAEzB,MAAME,GAAiB3gG,EAAAA,EAAAA;CAEtB95B,EAAAA,EAAAA,IAAI,qCACJ0gC,EAAAA,GAAAA,gBAAgB7W,IAChB6W,EAAAA,GAAAA,gBAAgB65F,IAGjBvlI,SAAS60B,MAAQ4wG,GAGjBr3F,EAAAA,GAAAA,OAAOvZ,EAAO,YACf,IACE,CAAEA,EAAO0wG,EAAWp8H,GACxB,Cc4HCu8H,CAAUnB,GAAiB1vG,GAE3B,MAAM8wG,GAAoB7sE,EAAAA,GAAAA,eACzBwmE,GACA,sCAGKz1F,EAAWi4F,KACXztF,GACHrf,IACE+sG,KAAuB0C,KAAkB36F,IACxCi4F,KAAuBj4F,GAE7B,OACC7hC,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,KACK2hB,EAAsD,MAA5CpsC,EAAAA,EAAAA,eAACq3H,GAAY,CAAChrG,GAAKqxG,IAC/BX,IAAc/8H,EAAAA,EAAAA,eAACy1H,GAAY,MAC3B6G,IAAmBz6F,IACpB7hC,EAAAA,EAAAA,eAAC87C,EAAAA,OAAM,CAAClmC,OAAO,UAAUkvC,eAAgB,IACtC/hD,EAAAA,EAAAA,IACD,8EAIDqpC,IACDpsC,EAAAA,EAAAA,eAACg8H,GAAc,CACdr9E,KAAOm7E,EAAmB0C,EAAc36F,EACxC87F,mBACC7D,EAAmBj4F,OAAapc,EAEjCmc,SAAWA,EACXg8F,gBAAiB,IAEjB59H,EAAAA,EAAAA,eAACwyH,GAA6B,MAC5BuK,IAAc/8H,EAAAA,EAAAA,eAACu2H,GAAoB,OACrCv2H,EAAAA,EAAAA,eAAC69H,GAAiB,CACjB3uG,mBAAoB,EACpBQ,wBAAyB,EACzBtF,UAAYM,IACX,uCACA,CACC,mBAAoB2C,IAGtBkC,SAAUvvB,EAAAA,EAAAA,eAAC89H,EAAAA,gBAAe,MAC1BtuG,SACCxvB,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAAC82H,GAAoB,MACnBiG,IAAc/8H,EAAAA,EAAAA,eAAC+9H,EAAAA,cAAa,MAC5Bf,IACDh9H,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAAC07H,GAAqB,OACtB17H,EAAAA,EAAAA,eAACuyH,GAAoB,MACpBvyH,EAAAA,EAAAA,eAACg+H,GAAAA,eAAc,QAEZzsG,IACHvxB,EAAAA,EAAAA,eAACi+H,GAAAA,aAAY,CAACC,gBAAc,KAE7Bl+H,EAAAA,EAAAA,eAACi7H,GAAgB,OACjBj7H,EAAAA,EAAAA,eAAC87H,GAAwB,CACxBrpC,MAAQ2pC,MAETp8H,EAAAA,EAAAA,eAAC04H,GAAY,OAGE,SAAf+D,GAAyBM,IAC1B/8H,EAAAA,EAAAA,eAACizH,GAAU,MAEV8J,IACD/8H,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAACm+H,GAAyB,OAC1Bn+H,EAAAA,EAAAA,eAACo+H,EAAAA,gCAA+B,OAChCp+H,EAAAA,EAAAA,eAACq+H,EAAAA,wBAAuB,QAK5B/uG,iBACCytG,IACIG,IAAsBl9H,EAAAA,EAAAA,eAACi8H,GAAe,OACvCkB,IAAsBn9H,EAAAA,EAAAA,eAACk8H,GAAe,OAE1C7sG,QACC0tG,GACAJ,IACC38H,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAACwxE,GAAkBvmD,KAAI,CAAC1E,MAAM,oBAIjC4I,OACC8tG,IACCj9H,EAAAA,EAAAA,eAACs+H,GAAAA,gBAAe,CACfC,cACCzE,GACkB,kBAAlB/J,GACGhtH,EAAAA,EAAAA,IAAI,SACJA,EAAAA,EAAAA,IAAI,cAKX0sB,OAAS,IACL0sG,GACH7sG,iBAAkB8tG,MAOzB,CCvRA,SAASoB,IAAY,KAAEjyH,EAAI,SAAEzH,IAC5B,MAAMG,GAAMw5H,EAAAA,GAAAA,oBAAoBlyH,GAChC,OACCvM,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CAACuE,QAAQ,YAAYhpB,IAAMA,GAC/BH,EAGL,CAEe,SAAS45H,IAAsB,QAAE96F,EAAO,MAAEF,IACxD,MAAMza,EAAU,EACfjpB,EAAAA,EAAAA,eAACw+H,GAAU,CAACxnI,IAAI,aAAauV,KAAOm3B,EAAM6D,QACvCxkC,EAAAA,EAAAA,IAAI,gBAIR,OACC/C,EAAAA,EAAAA,eAAC2+H,GAAAA,QAAO,CAACv0G,UAAU,wBAAwBnB,QAAUA,GAClD2a,EAGL,CCjBe,MAAMg7F,WAAsBr5H,EAAAA,UAC1CvC,WAAAA,GACCsoF,SAAUpvF,WAEVuG,KAAKqB,MAAQ,CACZ4/B,MAAO,KAET,CAEAm7F,iBAAAA,CAAmBn7F,IAClBo7F,EAAAA,GAAAA,UAAU,mCAAoCp7F,EAC/C,CAEA,+BAAOq7F,CAA0Br7F,GAChC,MAAO,CAAEA,QACV,CAEA9+B,MAAAA,GACC,OAAOnC,KAAKqB,MAAM4/B,OAKjB1jC,EAAAA,EAAAA,eAAC0+H,GAAoB,CACpB96F,SAAU7gC,EAAAA,EAAAA,IACT,mDAED2gC,MAAQjhC,KAAKqB,MAAM4/B,QARbjhC,KAAK1B,MAAM+D,QAWpB,EC/Bc,SAASk6H,IACvB,KAAEnsG,EAAI,aAAEkkC,EAAY,WAAEzD,GACtB1Y,GAEA,MACC,CAAE,mBAAoB,yBAA0BhvB,SAAUiH,IAC/C,UAATA,GAAoBl6B,QAAQqtE,0BACnB,cAATnzC,KAGG+nB,KAAyBmc,KAAmBzD,EAEnD,CCZA,QALCtzD,EAAAA,EAAAA,eAACgmB,EAAAA,IAAG,CAACC,MAAM,6BAA6BC,QAAQ,cAC/ClmB,EAAAA,EAAAA,eAACmmB,EAAAA,KAAI,CAACvjB,EAAE,2FCIV,IALC5C,EAAAA,EAAAA,eAACgmB,EAAAA,IAAG,CAACC,MAAM,6BAA6BC,QAAQ,cAC/ClmB,EAAAA,EAAAA,eAACmmB,EAAAA,KAAI,CAACvjB,EAAE,2FCIV,IALC5C,EAAAA,EAAAA,eAACgmB,EAAAA,IAAG,CAACC,MAAM,6BAA6BC,QAAQ,cAC/ClmB,EAAAA,EAAAA,eAACmmB,EAAAA,KAAI,CAACvjB,EAAE,qMCFH,MAAMq8H,GAA0B,CACtC,CACCC,eAAgB,CAAEC,SAAU,UAAW51B,UAAW,KAClDp1E,aAAapxB,EAAAA,EAAAA,IAAI,iCAElB,CACCm8H,eAAgB,CAAEC,SAAU,UAAW51B,UAAW,KAClDp1E,aAAapxB,EAAAA,EAAAA,IAAI,mCAElB,CACCm8H,eAAgB,CAAEC,SAAU,UAAW51B,UAAW,KAClDp1E,aAAapxB,EAAAA,EAAAA,IAAI,2CAElB,CACCm8H,eAAgB,CAAEC,SAAU,eAAgB51B,UAAW,KACvDp1E,aAAapxB,EAAAA,EAAAA,IAAI,mBAElB,CACCm8H,eAAgB,CAAE31B,UAAW,MAC7Bp1E,aAAapxB,EAAAA,EAAAA,IAAI,qCAElB,CACCm8H,eAAgB,CAAEC,SAAU,UAAW51B,UAAW,KAClDp1E,aAAapxB,EAAAA,EAAAA,IAAI,iCAElB,CACCm8H,eAAgB,CAAEC,SAAU,SAAU51B,UAAW,KACjDp1E,aAAapxB,EAAAA,EAAAA,IAAI,qCAElB,CACCm8H,eAAgB,CAAEC,SAAU,SAAU51B,UAAW,KACjDp1E,aAAapxB,EAAAA,EAAAA,IAAI,wCAElB,CACCm8H,eAAgB,CAAEC,SAAU,SAAU51B,UAAW,KACjDp1E,aAAapxB,EAAAA,EAAAA,IAAI,gDAElB,CACCm8H,eAAgB,CAAEC,SAAU,SAAU51B,UAAW,OACjDp1E,aAAapxB,EAAAA,EAAAA,IACZ,4ECvCH,SAASq8H,IAAgB,eAAEF,EAAc,eAAEG,IAC1C,MAAMlxG,EAAW+wG,EAAeC,SAC7BG,GAAAA,oBAAqBJ,EAAeC,UACpCD,EAAe31B,WAEf21B,EAAe31B,UACZ/6E,EAAY0wG,EAAeC,SAC9BI,GAAAA,kBAAmBL,EAAeC,UAClCD,EAAe31B,WAEf21B,EAAe31B,UAElB,OACCvpG,EAAAA,EAAAA,eAAA,OACCoqB,UAAU,mEACV,aAAai1G,GAAkB7wG,IAE3BjzB,MAAMc,QAAS8xB,GAAaA,EAAW,CAAEA,IAAat3B,KACzD,CAAE0yG,EAAWhyG,IACO,MAAdgyG,GACGvpG,EAAAA,EAAAA,eAACyqB,EAAAA,SAAQ,CAACzzB,IAAMO,GAAUgyG,IAIjCvpG,EAAAA,EAAAA,eAAA,OACChJ,IAAMO,EACN6yB,UAAU,wDAERm/E,KAOT,CAEe,SAASi2B,IAAU,YACjCrrG,EAAW,eACX+qG,EAAc,QACdO,EAAU,GAAE,UACZjxG,IAEA,OACCxuB,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,gEACZ+J,IAEHn0B,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,0DACdpqB,EAAAA,EAAAA,eAACo/H,GAAc,CACdF,eAAiBA,EACjBG,eAAiB7wG,IAEhBixG,EAAQ5oI,KAAK,CAAE6oI,EAAOnoI,KACvByI,EAAAA,EAAAA,eAACo/H,GAAc,CACdF,eAAiBQ,EACjBL,eAAiB7wG,EACjBx3B,IAAMO,OAMZ,CC1De,SAASooI,IAAiB,KAAEjoI,IAC1C,MAAM,eAAEwnI,EAAc,YAAE/qG,EAAW,QAAEsrG,IAAY31G,EAAAA,EAAAA,YAC9ClD,IACD,MAAM,0BACLg5G,EAAyB,uBACzBC,EAAsB,mBACtBC,GACGl5G,EAAQusG,GAAAA,OAEZ,MAAO,CACN+L,eAAgBU,EAA2BloI,GAC3C+nI,QAASK,EAAoBpoI,GAC7By8B,YAAa0rG,EAAwBnoI,GACrC,GAEF,CAAEA,IAGH,OAAOwnI,GAKNl/H,EAAAA,EAAAA,eAACw/H,GAAQ,CACRN,eAAiBA,EACjB/qG,YAAcA,EACdsrG,QAAUA,IAPJ,IAUT,CChBO,MAAMM,GACZ,mCAEKC,GAAeA,EAAIrwG,gBAMxB3vB,EAAAA,EAAAA,eAAA,MACCoqB,UAAU,wDACV8B,KAAK,QAEHyD,EAAU94B,KAAK,CAAEs3B,EAAU52B,KAC5ByI,EAAAA,EAAAA,eAAA,MACCoqB,UAAU,mDACVpzB,IAAMO,GAEgB,iBAAb42B,GACRnuB,EAAAA,EAAAA,eAAC2/H,GAAe,CAACjoI,KAAOy2B,KAExBnuB,EAAAA,EAAAA,eAACw/H,GAAQ,IAAMrxG,QAQd8xG,GAAkBA,EAAIrzG,QAAO+C,YAAWvF,gBAC7CpqB,EAAAA,EAAAA,eAAA,WACCoqB,UAAYM,IACX,kDACAN,MAGIwC,IACJ5sB,EAAAA,EAAAA,eAAA,MAAIoqB,UAAU,yDACXwC,IAGJ5sB,EAAAA,EAAAA,eAACggI,GAAY,CAACrwG,UAAYA,KAItBuwG,GAA0BA,EAC/BtzG,QACAuzG,eACAC,sBAAsB,OAEtB,MAAMC,GAAoBv2G,EAAAA,EAAAA,YACvBlD,GACMA,EAAQusG,GAAAA,OAAyBmN,qBACvCH,IAGF,CAAEA,IAGH,OACCngI,EAAAA,EAAAA,eAACigI,GAAe,CACfrzG,MAAQA,EACR+C,UAAY0wG,EAAkBriI,OAAQoiI,IACrC,EAIW,SAASG,KACvB,MAAM93G,GAAgBqB,EAAAA,EAAAA,YAAalD,GAClCA,EAAQmD,GAAiBtB,cACxBs3G,OAGI,WAAEj4G,EAAU,UAAED,IAAcmC,EAAAA,EAAAA,aAAaD,GACzCy2D,EAAcA,IACnB/3D,EACGX,IACAD,EAAWk4G,IAEf,OADA7L,EAAAA,GAAAA,aAAa,oCAAqC1zC,GAC3C/3D,GAINzoB,EAAAA,EAAAA,eAACixB,EAAAA,MAAK,CACL7G,UAAU,yCACVwC,OAAQ7pB,EAAAA,EAAAA,IAAI,sBACZmuB,eAAiBsvD,IAEjBxgF,EAAAA,EAAAA,eAACigI,GAAe,CACf71G,UAAU,yDACVuF,UAAY,CAAE,wCAEf3vB,EAAAA,EAAAA,eAACkgI,GAAuB,CACvBtzG,OAAQ7pB,EAAAA,EAAAA,IAAI,oBACZo9H,aAAa,YAGdngI,EAAAA,EAAAA,eAACkgI,GAAuB,CACvBtzG,OAAQ7pB,EAAAA,EAAAA,IAAI,uBACZo9H,aAAa,eAGdngI,EAAAA,EAAAA,eAACkgI,GAAuB,CACvBtzG,OAAQ7pB,EAAAA,EAAAA,IAAI,mBACZo9H,aAAa,QACbC,oBAAsB,CACrB,CACClB,eAAgB,CAAE31B,UAAW,KAC7Bp1E,aAAapxB,EAAAA,EAAAA,IACZ;;AAGDyrB,WAAWzrB,EAAAA,EAAAA,IAAI,sBAIlB/C,EAAAA,EAAAA,eAACigI,GAAe,CACfrzG,OAAQ7pB,EAAAA,EAAAA,IAAI,mBACZ4sB,UAAYsvG,MAtCP,IA0CT,CC3Ie,SAASuB,GAAez/H,GACtC,MAAM,MACLwlB,EAAQ,iBAAgB,YACxBa,EAAW,SACXioG,EAAWA,YACRoR,GACA1/H,EACEszB,GAAYvK,EAAAA,EAAAA,YACflD,KAAeA,EAAQC,EAAAA,OAAmB3vB,IAAKqvB,EAAOa,IACxD,CAAEb,EAAOa,KAEJ,OAAEI,IAAWwC,EAAAA,EAAAA,aAAanD,EAAAA,OAKhC,OACC7mB,EAAAA,EAAAA,eAAC0gI,GAAU,CACVv8H,SANeA,KAChBkrH,IACA7nG,EAAQjB,EAAOa,EAAa,EAK3BiN,UAAYA,KACPosG,GAGR,CCtBA,QAAeE,EAAAA,GAAAA,UACdC,EAAAA,EAAAA,aAAY,CAAEh6G,GAAUi6G,gBACvB,MAAM,qBAAEC,EAAoB,qBAAEC,GAC7Bn6G,EAAQ+b,EAAAA,OACT,MAAO,CACNq+F,UAAWD,EAAsBF,GACjCxsG,UAAWysG,EAAsBD,GACjC,KAEFI,EAAAA,GAAAA,cAAa,EAAID,gBAAmBA,KACpCE,EAAAA,EAAAA,eAAc,CAAEv6G,GAAYk6G,gBAAW,CACtC18H,SAAUA,IACTwiB,EAAUgc,EAAAA,OAAcw+F,yBAA0BN,OAZrD,CAcGH,ICMI,MAAMU,GAAyB,wBAEvB,SAASC,KACvB,MAAM54G,GAAgBqB,EAAAA,EAAAA,YAAalD,GAClCA,EAAQmD,GAAiBtB,cAAe24G,OAEnC,WAAEt5G,EAAU,UAAED,IAAcmC,EAAAA,EAAAA,aAAaD,GAGzCrD,GAAW46G,EAAAA,EAAAA,gBACX,oBAAEt7F,IAAwBhc,EAAAA,EAAAA,aAAa0gB,KACvC,oBAAEhG,EAAmB,oBAAED,IAC5Bza,EAAAA,EAAAA,aAAa2Y,EAAAA,QAENxrC,IAAK0kD,IAAkB7xB,EAAAA,EAAAA,aAAanD,EAAAA,OActCyK,EAAW,CAChB,CACC55B,KAAM,UACNu6B,UAAUlvB,EAAAA,EAAAA,IAAI,WACdysB,SACCxvB,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAACuhI,GAAuB,CAAC30G,OAAQ7pB,EAAAA,EAAAA,IAAI,eACpC/C,EAAAA,EAAAA,eAACwgI,GAAa,CACbj6G,MAAM,OACNa,YAAY,wBACZgN,MAAOrxB,EAAAA,EAAAA,IACN,iDAEDgrB,OAAQhrB,EAAAA,EAAAA,IAAI,4BAEb/C,EAAAA,EAAAA,eAACwgI,GAAa,CACbj6G,MAAM,OACNa,YAAY,uBACZgN,MAAOrxB,EAAAA,EAAAA,IACN,wDAEDgrB,OAAQhrB,EAAAA,EAAAA,IAAI,gCAEb/C,EAAAA,EAAAA,eAACwgI,GAAa,CACbj6G,MAAM,OACNa,YAAY,2BACZgN,MAAOrxB,EAAAA,EAAAA,IACN,mFAEDgrB,OAAQhrB,EAAAA,EAAAA,IAAI,0CAGd/C,EAAAA,EAAAA,eAACuhI,GAAuB,CACvB30G,OAAQ7pB,EAAAA,EAAAA,IAAI,qBACZoxB,aAAcpxB,EAAAA,EAAAA,IACb,2DAGD/C,EAAAA,EAAAA,eAACwhI,EAAAA,eAAc,CACdC,gBAAkBA,CAAEjyG,EAAS0wB,KAC5BlgD,EAAAA,EAAAA,eAAC0hI,GAAiB,CACjB3zG,MAAQmyB,EAASzwB,OAAOkyG,UACxBd,UAAa,kBAAkB3gF,EAAStf,YAI3C5gC,EAAAA,EAAAA,eAAC4hI,EAAAA,uBAAsB,MACtB5hI,EAAAA,EAAAA,eAAC0hI,GAAiB,CACjB3zG,OAAQhrB,EAAAA,EAAAA,IAAI,kBACZ89H,UAAU,qBAGZ7gI,EAAAA,EAAAA,eAAC6hI,EAAAA,iBAAgB,MAChB7hI,EAAAA,EAAAA,eAAC0hI,GAAiB,CACjB3zG,OAAQhrB,EAAAA,EAAAA,IAAI,WACZ89H,UAAU,mBAGZ7gI,EAAAA,EAAAA,eAAC8hI,EAAAA,qBAAoB,CACpBC,YAAc,CAAE,WAAY,gBAE5B/hI,EAAAA,EAAAA,eAAC0hI,GAAiB,CACjB3zG,OAAQhrB,EAAAA,EAAAA,IAAI,cACZ89H,UAAU,uBAGZ7gI,EAAAA,EAAAA,eAACgiI,EAAAA,oBAAmB,MACnBhiI,EAAAA,EAAAA,eAAC0hI,GAAiB,CACjB3zG,OAAQhrB,EAAAA,EAAAA,IAAI,mBACZ89H,UAAU,wBAOhB,CACCnpI,KAAM,aACNu6B,UAAUlvB,EAAAA,EAAAA,IAAI,cACdysB,SACCxvB,EAAAA,EAAAA,eAACuhI,GAAuB,CACvB30G,OAAQ7pB,EAAAA,EAAAA,IAAI,cACZoxB,aAAcpxB,EAAAA,EAAAA,IACb,wDAGD/C,EAAAA,EAAAA,eAACwgI,GAAa,CACbj6G,MAAM,OACNa,YAAY,eACZioG,SA7F0B4S,KAC9BpmF,EAAe,OAAQ,mBAAmB,EAAO,EA6F7CznB,MAAOrxB,EAAAA,EAAAA,IACN,0DAEDgrB,OAAQhrB,EAAAA,EAAAA,IAAI,kBAEb/C,EAAAA,EAAAA,eAACwgI,GAAa,CACbj6G,MAAM,OACNa,YAAY,kBACZioG,SA/GyBvpF,KAC7Bpf,EAAS4f,OAAO,KACfuV,EAAe,OAAQ,gBAAgB,GACvCpX,GAAqB,GACrBC,GAAqB,GACrBsB,GAAqB,GACnB,EA0GC5R,MAAOrxB,EAAAA,EAAAA,IACN,4FAEDgrB,OAAQhrB,EAAAA,EAAAA,IAAI,uBAEb/C,EAAAA,EAAAA,eAACwgI,GAAa,CACbj6G,MAAM,OACNa,YAAY,YACZgN,MAAOrxB,EAAAA,EAAAA,IACN,yDAEDgrB,OAAQhrB,EAAAA,EAAAA,IAAI,sBAKhB,CACCrL,KAAM,gBACNu6B,UAAUlvB,EAAAA,EAAAA,IAAI,iBACdysB,SACCxvB,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAACuhI,GAAuB,CACvB30G,OAAQ7pB,EAAAA,EAAAA,IAAI,cACZoxB,aAAcpxB,EAAAA,EAAAA,IACb,2DAGD/C,EAAAA,EAAAA,eAACwgI,GAAa,CACbj6G,MAAM,OACNa,YAAY,uBACZgN,MAAOrxB,EAAAA,EAAAA,IACN,sJAEDgrB,OAAQhrB,EAAAA,EAAAA,IAAI,wCAGd/C,EAAAA,EAAAA,eAACuhI,GAAuB,CAAC30G,OAAQ7pB,EAAAA,EAAAA,IAAI,eACpC/C,EAAAA,EAAAA,eAACwgI,GAAa,CACbj6G,MAAM,OACNa,YAAY,iBACZ2G,OAAQhrB,EAAAA,EAAAA,IAAI,2BACZqxB,MAAOrxB,EAAAA,EAAAA,IACN,oEAON,CACCrL,KAAM,SACNu6B,UAAUlvB,EAAAA,EAAAA,IAAI,UACdysB,SACCxvB,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAACuhI,GAAuB,CAAC30G,OAAQ7pB,EAAAA,EAAAA,IAAI,cACpC/C,EAAAA,EAAAA,eAACwgI,GAAa,CACbj6G,MAAM,OACNa,YAAY,iBACZgN,MAAOrxB,EAAAA,EAAAA,IACN,yEAEDgrB,OAAQhrB,EAAAA,EAAAA,IAAI,+BAOlB,OAAO0lB,GAINzoB,EAAAA,EAAAA,eAACgxB,GAAgB,CAAClJ,WAhMC04D,IACnB/3D,EAAgBX,IAAeD,EAAWu5G,MAgMzCphI,EAAAA,EAAAA,eAACqxB,GAAoB,CAACC,SAAWA,KAJ3B,IAOT,CClOA,MAAQxG,KAAMo3G,GAAoBj3G,KAAIA,KAAKy/F,EAAAA,EAAAA,gBAC1C,8BAGDwX,GAAmBj3G,KAAO,EAAIE,gBAC7BnrB,EAAAA,EAAAA,eAACirB,GAAI,CAACE,UAAYA,IACbE,GAAWA,GAASA,EAAM3vB,OAAS,IAIzC,UCJA,IALCsE,EAAAA,EAAAA,eAACgmB,EAAAA,IAAG,CAACC,MAAM,6BAA6BC,QAAQ,cAC/ClmB,EAAAA,EAAAA,eAACmmB,EAAAA,KAAI,CAACvjB,EAAE,sGCPN,GAA+BjK,OAAW,GAAQ,KCWvC,SAASwpI,KACvB,MAAM,kBAAEt+F,IAAsB7Z,EAAAA,EAAAA,aAAaoS,GAAAA,OAoC3C,OACCp8B,EAAAA,EAAAA,eAAC+rB,EAAAA,SAAQ,CACRG,KAAK,WACL3C,KAAO64G,GACPn4G,QAtCFxlB,iBACC,IACC,MAAMo5E,QAAiBv4C,KAAU,CAChCzS,KAAM,6BACNmH,OAAO,EACPqoG,QAAS,CACRC,OAAQ,qBAGJC,QAAa1kD,EAAS0kD,OAItBC,EAHqB3kD,EAASwkD,QAAQnrI,IAC3C,uBAGmB+O,MAAO,cACrBw8H,EAAWD,EAA2B,GACzCA,EAA2B,GAC3B,oBAEHE,EAAAA,GAAAA,cAAcD,EAAW,OAAQF,EAAM,kBACxC,CAAE,MAAQI,GACT,IAAIj/F,EAAQ,CAAC,EACb,IACCA,QAAci/F,EAAcC,MAC7B,CAAE,MAAQ/qI,GAAK,CACf,MAAM8rC,EACLD,EAAME,SAA0B,kBAAfF,EAAMj9B,KACpBi9B,EAAME,SACN7gC,EAAAA,EAAAA,IAAI,qDAER8gC,EAAmBF,EAAc,CAAE5vB,KAAM,YAC1C,CACD,EAOE05C,MAAO1qD,EAAAA,EAAAA,IACN,4DAGCof,EAAAA,EAAAA,IAAI,SAAU,2BAGnB,CCpDe,SAAS0gH,KACvB,MAAM,OAAEr7G,IAAWwC,EAAAA,EAAAA,aAAanD,EAAAA,OAEhC,OACC7mB,EAAAA,EAAAA,eAAC+rB,EAAAA,SAAQ,CAAC9B,QAAUA,IAAMzC,EAAQ,iBAAkB,kBACjDzkB,EAAAA,EAAAA,IAAI,iBAGT,CCAe,SAAS+/H,KACvB,MAAM,aAAEC,IAAiB/4G,EAAAA,EAAAA,aAAaoS,GAAAA,QAChC,gBAAEqM,EAAe,kBAAED,IAAsB1e,EAAAA,EAAAA,WAAW4gB,KACpD,sBAAE/E,IAA0B7b,EAAAA,EAAAA,WAAW0T,GAAAA,OA4BvCv4B,GAAMw5H,EAAAA,GAAAA,qBA1BZ,WACC,MAAMjyF,EAAS7G,EACd,WACA6C,IACAC,KAED,OAAO+D,EAIwB,mBAAnBA,EAAOhd,QACXgd,EAAOhd,QAASgd,GACZA,EAAOvR,QACXwK,EAAAA,EAAAA,6BAA6B+G,EAAOvR,QAChCuR,EAAOhd,QACXgd,EAAOhd,aADR,EAPC,EAUT,IAEA,WACCuzG,EAAc,QAAQhgI,EAAAA,EAAAA,IAAI,uBAAyB,CAClD+hD,eAAe,EACf/wC,KAAM,YAER,IAIA,OAAO/T,EAAAA,EAAAA,eAAC+rB,EAAAA,SAAQ,CAAC9mB,IAAMA,IAAQlC,EAAAA,EAAAA,IAAI,mBACpC,CChCA,MAAMigI,GAAQ,CACb,CACC5rI,MAAO,SACP22B,OAAOhrB,EAAAA,EAAAA,IAAI,kBAEZ,CACC3L,MAAO,OACP22B,OAAOhrB,EAAAA,EAAAA,IAAI,iBAkCb,OA9BA,WACC,MAAM,SAAEorB,EAAQ,KAAEjf,IAAS4a,EAAAA,EAAAA,YACxBlD,IAAM,CACPuH,SAAUvH,EACTusG,GAAAA,OACCD,0BAA2B,8BAC7BhkH,KAAM0X,EAAQ8jB,IAAgBpB,mBAE/B,KAEK,iBAAErD,IAAqBjc,EAAAA,EAAAA,aAAa0gB,IAEpCu4F,EAAUD,GAAMnsI,KAAOqsI,GACvBA,EAAO9rI,QAAU8X,EACd,IAAKg0H,EAAQ/0G,YAEd+0G,IAGR,OACCljI,EAAAA,EAAAA,eAACutD,EAAAA,UAAS,CAACx/B,OAAQhrB,EAAAA,EAAAA,IAAI,YACtB/C,EAAAA,EAAAA,eAACmjI,EAAAA,gBAAe,CACfF,QAAUA,EACV7rI,MAAQ8X,EACRsjB,SAAWyT,IAIf,ECpBe,SAASm9F,IAAU,eAAE/1G,IACnC,MAAM3G,GAAW46G,EAAAA,EAAAA,gBAEX,oBAAEt7F,IAAwBhc,EAAAA,EAAAA,aAAaq5G,KACvC,oBAAE5+F,EAAmB,oBAAEC,IAC5B1a,EAAAA,EAAAA,aAAa2Y,EAAAA,QACR,UAAE9a,IAAcmC,EAAAA,EAAAA,aAAaD,IAC3B5yB,IAAK0kD,IAAkB7xB,EAAAA,EAAAA,aAAanD,EAAAA,OAEtCif,EAAwBA,KAC7Bpf,EAAS4f,OAAO,KACfuV,EAAe,OAAQ,gBAAgB,GACvCpX,GAAqB,GACrBC,GAAqB,GACrBsB,GAAqB,GACnB,EAGEi8F,EAAyBA,KAC9BpmF,EAAe,OAAQ,mBAAmB,EAAO,EAGlD,OACC77C,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAACywB,GAAgB,CAChBxE,YAAc,CACb+B,aAAeX,KACVA,GAAkB,CAAEY,QAAS,eAGjC,EAAIC,cACLluB,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAACutD,EAAAA,UAAS,CAACx/B,OAAQ5L,EAAAA,EAAAA,IAAI,OAAQ,UAC9BniB,EAAAA,EAAAA,eAACsjI,EAAAA,yBAAwB,CACxB/8G,MAAM,OACN7uB,KAAK,eACL23H,SAAW4S,EACXl0G,OAAQhrB,EAAAA,EAAAA,IAAI,eACZ0qD,MAAO1qD,EAAAA,EAAAA,IACN,yDAEDwgI,kBAAmBxgI,EAAAA,EAAAA,IAClB,yBAEDygI,oBAAqBzgI,EAAAA,EAAAA,IACpB,8BAGF/C,EAAAA,EAAAA,eAACsjI,EAAAA,yBAAwB,CACxB/8G,MAAM,OACN7uB,KAAK,kBACL23H,SAAWvpF,EACX/X,OAAQhrB,EAAAA,EAAAA,IAAI,oBACZ0qD,MAAO1qD,EAAAA,EAAAA,IAAI,uBACXwgI,kBAAmBxgI,EAAAA,EAAAA,IAClB,mCAEDygI,oBAAqBzgI,EAAAA,EAAAA,IACpB,qCAEDorB,SAAWw1C,GAAAA,gBAAgB8/D,aAC1B,SAGFzjI,EAAAA,EAAAA,eAACsjI,EAAAA,yBAAwB,CACxB/8G,MAAM,OACN7uB,KAAK,YACLq2B,OAAQhrB,EAAAA,EAAAA,IAAI,kBACZ0qD,MAAO1qD,EAAAA,EAAAA,IAAI,gCACXwgI,kBAAmBxgI,EAAAA,EAAAA,IAClB,4BAEDygI,oBAAqBzgI,EAAAA,EAAAA,IACpB,kCAIH/C,EAAAA,EAAAA,eAAC0jI,GAAY,OACb1jI,EAAAA,EAAAA,eAAC6qB,EAAWI,KAAI,CACfvzB,KAAK,kCACLq2B,OAAQhrB,EAAAA,EAAAA,IAAI,WACZ0mB,GAAK8jC,EAAAA,UACLpiC,UAAY,CAAElB,QAASiE,MAExBluB,EAAAA,EAAAA,eAACutD,EAAAA,UAAS,CAACx/B,OAAQhrB,EAAAA,EAAAA,IAAI,WACtB/C,EAAAA,EAAAA,eAACmiI,GAAU,OACXniI,EAAAA,EAAAA,eAAC+rB,EAAAA,SAAQ,CACR9B,QAAUA,IACTpC,EACCk4G,IAGF5xG,SAAWw1C,GAAAA,gBAAgBggE,OAAQ,OAEjC5gI,EAAAA,EAAAA,IAAI,wBAEP/C,EAAAA,EAAAA,eAAC6iI,GAAoB,OACrB7iI,EAAAA,EAAAA,eAAC8iI,GAAmB,OACpB9iI,EAAAA,EAAAA,eAAC+rB,EAAAA,SAAQ,CACRxC,KAAOq6G,GACP13G,KAAK,WACLgS,MAAOn7B,EAAAA,EAAAA,IACN,4DAEDjF,OAAO,SACP+lI,IAAI,wBAEF9gI,EAAAA,EAAAA,IAAI,SACN/C,EAAAA,EAAAA,eAAC8xC,EAAAA,eAAc,CAACroB,GAAG;CAGjB1mB,EAAAA,EAAAA,IAAI,2BAIP/C,EAAAA,EAAAA,eAACkiI,GAAmBj3G,KAAI,CACvBE,UAAY,CAAE+C,eAGhBluB,EAAAA,EAAAA,eAACutD,EAAAA,UAAS,MACTvtD,EAAAA,EAAAA,eAAC+rB,EAAAA,SAAQ,CACR9B,QAAUA,IACTpC,EAAWu5G,MAGVr+H,EAAAA,EAAAA,IAAI,qBAMX/C,EAAAA,EAAAA,eAACugI,GAAyB,OAC1BvgI,EAAAA,EAAAA,eAACqhI,GAAwB,MAG5B,CCjKA,QALCrhI,EAAAA,EAAAA,eAACgmB,EAAAA,IAAG,CAACC,MAAM,6BAA6BC,QAAQ,cAC/ClmB,EAAAA,EAAAA,eAACmmB,EAAAA,KAAI,CAACvjB,EAAE,oGCaV,MAAQkhI,cAAeC,IAAwBvsG,GAAQ02F,EAAAA,aAExC,SAAS4V,IAAe,gBACtCpH,EAAe,gBACfsH,EAAe,kBACf90G,IAEA,MAAM,aAAE+0G,IAAiBn6G,EAAAA,EAAAA,YAAalD,IACrC,MAAM,cAAE0iB,GAAkB1iB,EAAQ8jB,IAElC,MAAO,CACNu5F,aAAkC,WAApB36F,IACd,GACC,KACG,wBAAE7C,IAA4Bzc,EAAAA,EAAAA,aAAakS,GAAAA,QAC3C,cAAE0G,IAAkB5Y,EAAAA,EAAAA,aAAa2Y,EAAAA,OACjCpR,GAAkBC,EAAAA,GAAAA,kBAAkB,UACpC0yG,EACLvrI,QAAQwrI,mCAAqCF,EACxCG,EAAsC,aAApB1H,EAExB,OACC18H,EAAAA,EAAAA,eAAC+jI,GAAmB,CACnBM,mBAAsBJ,EACtBK,eAAgBvhI,EAAAA,EAAAA,IAAI,cAElBmhI,GACD3yG,IACErC,IACA80G,IACDhkI,EAAAA,EAAAA,eAACukI,EAAAA,YAAW,CACX96G,GAAKC,EAAAA,OACLU,UAAU,mDACVb,KAAOi7G,GACP12G,UAAYs2G;kFAEZr2G,OAAQhrB,EAAAA,EAAAA,IAAI,iBACZknB,QAAUA,KACT2Y,EAAe,WACf6D,EACC29F,EAAkB,OAAS,WAC3B,EAEF78H,KAAK,YAKX,CCxBA,MAAM,aAAEk9H,GAAY,gBAAEC,IAAoBltG,GAAQ02F,EAAAA,aAEnC,SAASyW,KACvB,MAAM,aACLh8E,EAAY,kBACZz5B,EAAiB,gBACjBwtG,EAAe,oBACfkI,EAAmB,eACnBv3G,EAAc,iBACdguG,EAAgB,gBAChB2I,EAAe,cACf7K,IACGrvG,EAAAA,EAAAA,YAAalD,IAChB,MAAM,kBAAE4hB,GAAsB5hB,EAAQ8jB,KAChC,uBAAEooF,EAAsB,wBAAE1L,GAC/BxgG,EAAQsV,GAAAA,QACDhlC,IAAK2tI,GAAkBj+G,EAAQC,EAAAA,QACjC,cAAEghB,GAAkBjhB,EAAQ+b,EAAAA,OAElC,MAAO,CACNH,WAAYqF,IACZ8gB,aAAcngB,IACdk0F,gBAAiBtV,IACjBwd,oBAAqB9R,IACrBzlG,eAAgBw3G,EAAe,OAAQ,kBACvCxJ,iBAAkB7jG,GACjB5Q,EAAQ8jB,KACPd,+BACFo6F,gBAAiBa,EAAe,OAAQ,gBACxC31G,kBAAmB21G,EAAe,OAAQ,mBAC1C1L,cAA6C,aAA9B/R,IACf,GACC,IAEG71F,GAAkBC,EAAAA,GAAAA,kBAAkB,UACpCszG,GAAiB3L,GAAiB6K,GAAmBzyG,EACrDwzG,GAAkBr3G,EAAAA,EAAAA,UAClB4gB,GAAgBC,EAAAA,GAAAA,oBAEhBy2F,GjQiEP,WACC,MAAM35G,GAAQ45G,EAAAA,EAAAA,4BAAc3xF,IAC5B,QAAUjoB,GAAO3vB,MAClB,CiQpEsCwpI,GAE/BhM,EAAch5F,GAAmBtU,SAAU+8B,GAE3Cy7E,EAAsC,aAApB1H,GAEhByI,EAAuBC,IAC9BzzG,EAAAA,EAAAA,WAAU,GAEL0zG,IAAsBT,GAE5Bh3G,EAAAA,EAAAA,YAAW,KAELg3G,GACJQ,GAA0B,EAC3B,GACE,CAAER,IAEL,MAAMU,EAAkB,CACvBp2G,kBAAmB,CAAEmG,EAAG,SACxBkwG,0BAA2B,CAAElwG,EAAG,GAChC6M,KAAM,CAAE7M,EAAG,GACXkmB,KAAM,CAAElmB,EAAG,IAGNmwG,EAAoB,CACzBzxH,KAAM,QACNwzE,SAAUj5C,EAAgB,EAAI,GAC9Bm3F,KAAM,WAGP,OACCzlI,EAAAA,EAAAA,eAAA,OACCoqB,UAAYM,IAAY,6BAA8B,CACrD,mBAAoB2C,KAGnB23G,IACDhlI,EAAAA,EAAAA,eAACmwB,EAAAA,iBAAOC,IAAG,CACVhG,UAAU,oCACVoG,SAAW80G,EACXx2G,WAAa02G,IAEbxlI,EAAAA,EAAAA,eAAC8jI,GAAa,CACbpH,gBAAkBA,EAClBxtG,kBAAoBA,IAEnB41G,IACD9kI,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAAA,OACCoqB,UAAYM,IACX,+BACA,CACC,eAAgBy6G,MAIlBnlI,EAAAA,EAAAA,eAACi+H,GAAAA,aAAY,CAACC,gBAAc,MAE7Bl+H,EAAAA,EAAAA,eAAC0lI,EAAAA,QAAQz6G,KAAI,CACZhmB,IAAM8/H,EACNrtI,KAAK,kBAEJ2tI,IACDrlI,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNU,UAAU,iDACVb,KACC47G,EAAwB3lI,GAAOmmI,GAEhC17G,QAAUA,KACTm7G,GACGQ,IAAiBA,GACnB,EAEF73G,MACCo3G,GACGpiI,EAAAA,EAAAA,IAAI,qBACJA,EAAAA,EAAAA,IAAI,yBASVmsB,IACHlvB,EAAAA,EAAAA,eAAA,OACCoqB,UAAYM,IACX,qCACA,CACC,gBACGy6G,GAAyB5zG,KAI1ByzG,GAGHhlI,EAAAA,EAAAA,eAAC6lI,EAAAA,YAAW,MAFZ1yF,GAA+BkoF,KAOlCr7H,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,oCACdpqB,EAAAA,EAAAA,eAACmwB,EAAAA,iBAAOC,IAAG,CACVhG,UAAU,sCACVoG,SAAW80G,EACXx2G,WAAa02G,GAEXj0G,IACDvxB,EAAAA,EAAAA,eAAA,OACCoqB,UAAYM,IACX,8CACA,CAAE,gBAAiB05G,MAGpBpkI,EAAAA,EAAAA,eAAC0kI,GAAe,CACfznG,SACCi8F,IAAiB8L,MAKrBhlI,EAAAA,EAAAA,eAACykI,GAAY,OACbzkI,EAAAA,EAAAA,eAACojE,GAAU,OACPl0C,IACHlvB,EAAAA,EAAAA,eAACmsB,GAAYlB,KAAI,CAAC1E,MAAM,oBAEzBvmB,EAAAA,EAAAA,eAACojI,GAAQ,CAAC/1G,eAAiBA,MAKhC,CC9MA,QALCrtB,EAAAA,EAAAA,eAACgmB,EAAAA,IAAG,CAACC,MAAM,6BAA6BC,QAAQ,gBAC/ClmB,EAAAA,EAAAA,eAACmmB,EAAAA,KAAI,CAACvjB,EAAE,sxBC2CV,GApCA,UAAmB,UAAEwnB,IACpB,MAAM,iBAAE07G,EAAgB,YAAEC,IAAgBj8G,EAAAA,EAAAA,YAAalD,IACtD,MAAM,gBAAEka,GAAoBla,EAAQmhB,GAAAA,OAC9B4jB,EAAW7qB,EAAiB,OAAQ,sBAAkBrb,GAE5D,MAAO,CACNqgH,kBAAoBn6E,EACpBo6E,YAAap6E,GAAUq6E,cACvB,GACC,IAEH,GAAKF,IAAsBC,EAC1B,OAAO/lI,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,+BAGvB,MAAMb,EAAOw8G,GACZ/lI,EAAAA,EAAAA,eAAA,OACCoqB,UAAU,6BACViiC,KAAMtpD,EAAAA,EAAAA,IAAI,aACV6E,IAAMm+H,KAGP/lI,EAAAA,EAAAA,eAACyzB,EAAAA,KAAI,CACJrJ,UAAU,4BACV7iB,KAAK,OACLgiB,KAAO08G,KAIT,OACCjmI,EAAAA,EAAAA,eAAA,OAAKoqB,UAAYM,IAAYN,EAAW,wBACrCb,EAGL,ECfA,MAEM28G,IAAUhwF,EAAAA,EAAAA,OAAM,EAAIiwF,gBAAe/7G,gBACxC,MAAM,WAAE4X,EAAU,cAAEwI,EAAa,QAAEsc,EAAO,UAAEw2E,IAAcxzG,EAAAA,EAAAA,YACvDlD,IACD,MAAM,cAAE+iB,EAAa,YAAErB,GAAgB9Q,GACtC5Q,EAAQ8jB,MAGH,QACLmwB,EAAO,gBACP9T,GACGngC,EAAQ4W,GAAAA,OAEZ,MAAO,CACNwE,WAAY2H,IACZa,cACClC,IAAcqC,6BAA+B,YAC9Cmc,QAASC,KAAmB1B,KAC5Bi4E,UAAWziE,KAAWjuC,MACtB,GAEF,KAEOw5G,KAAMC,IAAsBr8G,EAAAA,EAAAA,aAAas8G,GAAAA,OAE3Ch4F,GAAgBC,EAAAA,GAAAA,qBAChB,cAAE/H,GAAkBhP,IAAQxN,EAAAA,EAAAA,aAAa0gB,MACzC,mBAAExE,IAAuBlc,EAAAA,EAAAA,aAAakS,GAAAA,QACtC,cAAE0G,IAAkB5Y,EAAAA,EAAAA,aAAa2Y,EAAAA,OAEjC4jG,EADyC,SAAfvkG,EAE7B,CACA9D,KAAMsM,EACNzc,OAAOhrB,EAAAA,EAAAA,IAAI,wBAEX,CACAm7B,KAAMsM,EACNte,KAAM,SACN6B,OAAOhrB,EAAAA,EAAAA,IAAI,mBACXknB,QAAW+U,IACVA,EAAMC,iBACc,SAAf+C,IACJkE,IACAtD,EAAe,WACf4D,EAAe,QAChB,GAIJ,OACCxmC,EAAAA,EAAAA,eAACmwB,EAAAA,iBAAOC,IAAG,CACVhG,UAAYM,IAAY,qBAAsBN,GAC9CoG,SAAW,CACVtB,kBAAmB,CAAEvzB,EAAG,SACxB4pI,0BAA2B,CAAE5pI,EAAG,GAChCumC,KAAM,CAAEvmC,EAAG,GACX4/C,KAAM,CAAE5/C,EAAG,IAEZ00B,SAAU,EACVvB,WAAa,CACZ/a,KAAM,QACNwzE,SAAUj5C,EAAgB,EA9DC,GA+D3Bm3F,KAAM,aAGPzlI,EAAAA,EAAAA,eAACqzB,EAAAA,qBAAM,CACNC,QAAQ,gBACR4X,UAAU,SACV9gB,UAAU,kCAEVpqB,EAAAA,EAAAA,eAACqzB,EAAAA,qBAAM,CACNC,QAAQ,aACRlJ,UAAU,mCACV6gB,QAAQ,MAERjrC,EAAAA,EAAAA,eAACmwB,EAAAA,iBAAOC,IAAG,CACVhG,UAAYM,IACX,iDACA,CACC,6BAA8By7G,IAGhChqF,QAAM,EACNrtB,WAAa,CACZ/a,KAAM,QACNwzE,SAAUj5C,EACP,EAvFqB,GAyFxBm3F,KAAM,aAGPzlI,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,IACD68G,EACLn8G,UAAU,uCAEVpqB,EAAAA,EAAAA,eAACmwB,EAAAA,iBAAOC,IAAG,CACVC,SAAU,EACVE,QAAU,CACTkd,MAAsB,SAAfzL,EAAwB,GAAM,GAEtC1R,WAAa,CACZmd,MAAsB,SAAfzL,EAAwB,GAAM,KAEtClT,WAAa,CACZ/a,KAAM,QACNwzE,SAAUj5C,EACP,EA3GmB,GA6GtBm3F,KAAM,aAGPzlI,EAAAA,EAAAA,eAACwmI,GAAQ,CAACp8G,UAAU,gDAKvBpqB,EAAAA,EAAAA,eAACymI,EAAAA,0BAAe,MACfzmI,EAAAA,EAAAA,eAACmwB,EAAAA,iBAAOC,IAAG,CACV+rB,OAAwB,SAAfna,EACTzR,QAAU,CACT3B,QAAwB,SAAfoT,EAAwB,EAAI,GAEtC0kG,KAAO,CACN93G,QAAS,GAEVxE,UAAYM,IACX,iCACA,CAAE,iBAAkBy7G,IAErBr3G,WAAa,CACZ/a,KAAM,QACNwzE,SAAUj5C,EAAgB,EAAI,GAC9Bm3F,KAAM,UACN12G,MAAsB,SAAfiT,EAAwB,GAAM,KAGpCyB,EAAAA,GAAAA,gBAAgB65F,KAGH,SAAft7F,IACDhiC,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNwU,KAAO4oB,EACPhpD,OAAO,SACPiwB,OAAQhrB,EAAAA,EAAAA,IAAI,kCACZ,cAAaA,EAAAA,EAAAA,IACZ,kCAEDwmB,KAAOq6G,GACPx5G,UAAU,wCAII,SAAf4X,IACDhiC,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNU,UAAYM,IACX,2CACA,CAAE,iBAAkBy7G,IAErB58G,KAAOy1B,GACP/0B,QAAUA,IAAMo8G,IAChBt4G,OAAQhrB,EAAAA,EAAAA,IAAI,wBACZorB,SAAWw1C,GAAAA,gBAAgBC,QAAS,QAI3B,IAIf,UClLA,MAAM7xB,GAAyB,CAC9BrC,cAAUjqB,EACVusB,gBAAYvsB,EACZuqB,YAAQvqB,EACR1rB,WAAO0rB,EACPzsB,YAAQysB,EACRzW,SAAKyW,EACLwsB,WAAOxsB,EACPysB,YAAQzsB,EACRjT,UAAMiT,GAIDkhH,GAAkB,IAUlBC,GAAqB,CAAE7sI,MAAO,OAAQf,OAAQ,QAEpD,SAAS6tI,GAAoB9sI,EAAO+sI,GACnC,MAkBMC,EAlBOC,EAAExgI,EAAG3D,EAAGokI,IACbzgI,GAmBP0gI,mBAnBiB1gI,GAAMygI,EAiBQD,CAC/BF,EA5BgC,EAehC,EACAjsI,KAAKiP,IACJ,EACAjP,KAAK0Z,IACJ,GACExa,EAAQ4sI,IAAe,OAa5B,OAAO5sI,EAAQgtI,CAChB,CAiPA,OA/OA,SAASI,GAAgB,YACxBC,EAAW,YACXC,EAAW,eACXC,EAAc,QACdl7F,EAAO,SACPtnC,EAAQ,YAERyiI,EAAW,kBACXC,IAEA,MAAQ9N,EAAW+N,IAAiB91G,EAAAA,EAAAA,UAAUi1G,KAEtCc,EAAeC,IAAqBh2G,EAAAA,EAAAA,aACpCi2G,EAAYC,IAAkBl2G,EAAAA,EAAAA,WAAU,IACxCm2G,EAAkBC,IAAwBp2G,EAAAA,EAAAA,WAAU,IACpDohB,EAAai1F,IAAmBr2G,EAAAA,EAAAA,UAAU,GAC5CqQ,GAAalY,EAAAA,EAAAA,YAChBlD,GAAY4Q,GAAQ5Q,EAAQ8jB,KAAkBf,iBAChD,KAEK,cAAEnD,GAAkBhP,IAAQxN,EAAAA,EAAAA,aAAa0gB,KACzCu9F,EAAmB,CAAEl0H,KAAM,QAASwzE,SAAUqgD,EAAa,EAAI,IAC/DM,GAAWx6G,EAAAA,EAAAA,QAAQ,MACnBy6G,GAAwBt3E,EAAAA,GAAAA,eAC7Bs2E,EACA,yCAEKiB,EAAqBb,EAAYxtI,MAAQwtI,EAAYvuI,OAkFrDqvI,EAAyB,CAC9BzsI,QAAS,CACRu0C,SAAU,EACVn3C,OAAQ0gI,EAAU1gI,QAEnBsvI,UAAW,CACVn4F,SAAU,EACVn3C,OAAQ0gI,EAAU1gI,SAmBduvI,EACAX,EACG,SAEDE,EAAmB,UAAY,SAGvC,OACC9nI,EAAAA,EAAAA,eAACuyC,EAAAA,aAAY,CACZ9oB,GAAK0G,EAAAA,iBAAOC,IACZnrB,IAAMijI,EACN73G,SAAU,EACVG,SAAW63G,EACX93G,QAAU62G,EAAc,YAAc,UACtCoB,oBAAwB5iH,IACH,cAAfA,GACJ6hH,EAAc,CAAE1tI,MAAO,OAAQf,OAAQ,QAAU,EAEnD81B,WAAam5G,EACb1gI,KAAOmyH,EACP7mF,OAAS,CACR7jC,KAAK,EACLijC,OAAO,EACPC,QAAQ,EAER1/B,KAAM45B,EACNq8F,UAAU,EACVC,aAAa,EACbC,YAAY,EACZC,SAAS,GAEV71F,YAAcA,EACdE,mBAAgBxtB,EAChBytB,aAAe,CACd1gC,KAAMu/B,GACNE,MAAOF,IAERY,SAAWg0F,GACX/zF,SAAWw0F,EAAc,OAAS,OAClCpiI,UAAY,OACZ+rC,QAAUA,IAAMg3F,GAAqB,GACrC/2F,OAASA,IAAM+2F,GAAqB,GACpCjW,YAAcA,IAAMiW,GAAqB,GACzCc,WAAaA,IAAMd,GAAqB,GACxC/0F,gBAAkB,CACjBxgC,KAAqB,SAAfwvB,IACLhiC,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAACuiH,EAAAA,QAAO,CAACh2G,MAAOxJ,EAAAA,EAAAA,IAAI,oBAGnB/C,EAAAA,EAAAA,eAACmwB,EAAAA,iBAAO6yF,OAAM,CACbhsH,IAAI,SACJk1B,KAAK,YACL,mBAAiB,WACjB9B,UAAYM,IACX,oCACA,CAAE,cAAek9G,IAElBp3G,SAzEsB,CAC5B7B,OAAQ,CACPC,QAAS,EACTpc,KAAM,GAEPs2H,QAAS,CACRl6G,QAAS,EACTpc,MAAO,IAERu2H,OAAQ,CACPn6G,QAAS,EACTpc,MAAO,GACPw2H,OAAQ,MA8DHz4G,QAAUg4G,EACV,cAAaxlI,EAAAA,EAAAA,IAAI,kBACjB,mBAAmBolI,EACnB,gBACCD,EAAShjI,SAASutC,WAAWz4C,kBAC7ByrB,EAED,gBAAgBkhH,GAChB,gBAAgBY,EAAYxtI,MAC5B62C,UArHgC5R,IACtC,IAAO,CAAE,YAAa,cAAepT,SAAUoT,EAAMhoC,KACpD,OAGDgoC,EAAMC,iBAEN,MACMgqG,EADO,IAAOjqG,EAAMkqG,SAAW,EAAI,IACJ,cAAdlqG,EAAMhoC,IAAsB,GAAK,GAClDmyI,EAAWtuI,KAAK0Z,IACrB1Z,KAAKiP,IACJ68H,GACAuB,EAAShjI,QAAQutC,UAAUz4C,YAAcivI,GAE1C1B,EAAYxtI,OAGb0tI,EAAc,CACb1tI,MAAOovI,EACPnwI,OAAQ6tI,GAAoBsC,EAAUf,IACpC,EAkGG/3G,QAAQ,SACRq2G,KAAK,SACL0C,WAAW,SACX94G,WAAW,aAGbtwB,EAAAA,EAAAA,eAAA,OAAK2uB,QAAM,EAACtC,GAAK87G,IACdplI,EAAAA,EAAAA,IACD,qGAMLsmI,cA7LwBC,CAAEC,EAAQC,EAAYvkI,KAG/C0iI,EAAkB1iI,EAAIjL,aACtB6tI,GAAe,EAAM,EA0LpB7jI,SAtLmBylI,CAAEF,EAAQC,EAAYE,EAAMT,KAChD,MAAMU,EAAkBV,EAAMlvI,MAAQg5C,EAChC62F,EAAW/uI,KAAKw0C,IAAKs6F,GACrBE,EACLZ,EAAMlvI,MAAQ,EACX6vI,GACErC,EAAYxtI,MAAQ2tI,GAAkB,EACtCoC,EAAgBjvI,KAAK0Z,IAAKq1H,EAAUC,GACpCE,EAA6B,IAAbH,EAAiB,EAAIE,EAAgBF,EAG3D5B,EAFsB,EAAI+B,EAEsB,EAAhBA,GAEhC,MAAMC,EAAetC,EAAgBuB,EAAMlvI,MAE3CutI,EAAgB0C,EAAezC,EAAYxtI,OAI3C0tI,EAAc,CACbzuI,OAAQquI,EACL,OACAR,GAAoBmD,EAAc5B,IACnC,EAgKF11F,aA7JuBu3F,CAAEV,EAAQC,EAAYvkI,KAC9C4iI,GAAe,GAERR,IAIPC,GAAgB,GAGfriI,EAAIilI,cAAcvvI,gBAAgBX,YAAciL,EAAIjL,YAzGZ,IA8GxCytI,EAAcb,IAGdpgG,EAAe,QAChB,EA2ICpc,UAAYM,IAAY,mCAAoC,CAC3D,cAAek9G,MAGhB5nI,EAAAA,EAAAA,eAACmwB,EAAAA,iBAAOC,IAAG,CACVhG,UAAU,2CACVmG,QAAU,CACT2f,aAAck3F,EAAc,EAAI,GAEjCt4G,WAAam5G,EACbvvI,MAAQ8uI,GAEN1iI,GAIN,EC9SA,MAAQ47B,YAAW,GAAEtC,WAAUA,IAAK5G,GAAQ6G,GAAAA,cCGpCD,WAAU,GAAEsC,YAAWA,IAAKlJ,GAAQ6G,GAAAA,cCctC,8BAAE8rG,IAAkC3yG,GAAQ4yG,EAAAA,aAE5CC,GAAgCA,EAAIn8G,cACzC,MAAMo8G,GAAeC,EAAAA,EAAAA,iCACrB,IAAIC,EAEHA,EADIF,EAAaxyF,SACG/0C,EAAAA,EAAAA,IAAI,oBAEJA,EAAAA,EAAAA,IAAI,YAGzB,MAAM0nI,GAAY3gH,EAAAA,EAAAA,YAAalD,IAC9B,MAAM6Y,EAAQ7Y,EAAQ4W,GAAAA,OAAYqN,SACjC1M,MAGD,OAAOsB,GAAO/nC,MAAM8rC,QAAQ,GAC1B,IAEGknG,GACL1qI,EAAAA,EAAAA,eAAA,UACG68B,EAAAA,EAAAA,SACD,2DACA4tG,IAKGE,EDnCA,WACN,MAAMpsG,EAAUH,KACVl9B,EAAWw/B,MACX,gBAAEkqG,EAAe,iBAAEC,IAAqB7gH,EAAAA,EAAAA,aAAawT,GAAAA,OAE3D,OAAO/4B,UACN,GAAKu5B,KAAsB,CAC1B,MAAM8sG,EACL,yCACA3sG,KACA,aACAxlC,OAAOoyI,8BACRH,EAAiB,uBACXjyI,OAAO4vF,MAAOuiD,GACpBD,EAAkB,iBAClB,MAAQ/rG,iBAAkBksG,KAAiBxsG,GAC1Ct9B,EAASs9B,OACVD,EAAQ3hC,QAAS4hC,EAClB,EAEF,CCeuBysG,GAMtB,OACCjrI,EAAAA,EAAAA,eAACmqI,GAA6B,IAEzBG,EACHI,mBACAQ,MAAOh9G,EACPiyC,OAXY17D,gBACRkmI,IACC/zI,GAULu0I,aAAa,EACbC,UAAWZ,GAEX,EAIEa,GAAuBA,EAAIn9G,aAC3B8P,MACGh+B,EAAAA,EAAAA,eAACqqI,GAA6B,CAACn8G,QAAUA,KAE1CluB,EAAAA,EAAAA,eAACsrI,EAAAA,oBAAmB,CAACJ,MAAQh9G,IAGtB,SAASq9G,KACvB,MAAM,eAAEjoE,EAAc,WAAEthC,IAAelY,EAAAA,EAAAA,YAAalD,IACnD,MAAM,iBAAEoiB,EAAgB,cAAEW,GAAkBnS,GAC3C5Q,EAAQ8jB,KAKT,MAAO,CACN44B,eAAgBt6B,IAChBhH,WAAY2H,IACZ,GACC,KACG,oBAAE/E,IAAwB5a,EAAAA,EAAAA,aAAa0gB,IACvCxc,EAAUA,IAAM0W,GAAqB,GAE3C,MAAoB,SAAf5C,EACGshC,GACNtjE,EAAAA,EAAAA,eAACixB,EAAAA,MAAK,CACL7G,UAAU,8BACV8G,eAAiBhD,EACjB+2B,0BAAwB,EACxBwvE,cAAe1xH,EAAAA,EAAAA,IACd,8CAGD/C,EAAAA,EAAAA,eAACqrI,GAAoB,CAACn9G,QAAUA,KAE9B,MAIJluB,EAAAA,EAAAA,eAACuuB,GAAe,CACfnE,UAAYM,IAAY,4BAA6B,CACpD,2BAA4B44C,IAE7B90C,WAAYzrB,EAAAA,EAAAA,IAAI,eAEdugE,GACDtjE,EAAAA,EAAAA,eAACqrI,GAAoB,CAACn9G,QAAUA,KAEhCluB,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,wCACdpqB,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNuE,QAAQ,YACR7D,UAAU,6CACVH,QAAUA,IAAM2a,GAAqB,GACrC,iBAAgB,IAEd7hC,EAAAA,EAAAA,IAAI,qBAMZ,CChBA,OAnHA,WAEC,MAAM,iBAAEyoI,IAAqBxhH,EAAAA,EAAAA,aAAampG,GAAAA,OA8G1C,OA7GAvlG,EAAAA,EAAAA,YAAW,KACV49G,EAAkB,CACjB9zI,KAAM,sBACNy9C,SAAU,SACVhhB,aAAapxB,EAAAA,EAAAA,IAAI,sBACjBm8H,eAAgB,CACfC,SAAU,UACV51B,UAAW,OAIbiiC,EAAkB,CACjB9zI,KAAM,+CACNy9C,SAAU,SACVhhB,aAAapxB,EAAAA,EAAAA,IAAI,sCACjBm8H,eAAgB,CACfC,SAAU,eACV51B,UAAW,OAIbiiC,EAAkB,CACjB9zI,KAAM,oCACNy9C,SAAU,OACVhhB,aAAapxB,EAAAA,EAAAA,IAAI,qCACjBm8H,eAAgB,CACfC,SAAU,SACV51B,UAAW,OAIbiiC,EAAkB,CACjB9zI,KAAM,6BACNy9C,SAAU,SACVhhB,aAAapxB,EAAAA,EAAAA,IAAI,4CACjBm8H,eAAgB,CACfC,SAAU,OACV51B,UAAW,KAEZk2B,QAAS,CACR,CACCN,SAAU,SACV51B,UAAW,QAKdiiC,EAAkB,CACjB9zI,KAAM,iCACNy9C,SAAU,SACVhhB,aAAapxB,EAAAA,EAAAA,IAAI,gDACjBm8H,eAAgB,CACfC,SAAU,YACV51B,UAAW,KAEZk2B,QAAS,CACR,CACCN,SAAU,SACV51B,UAAW,KAEZ,CACC41B,SAAU,YACV51B,UAAW,QAIdiiC,EAAkB,CACjB9zI,KAAM,6BACNy9C,SAAU,SACVhhB,aAAapxB,EAAAA,EAAAA,IAAI,iDACjBm8H,eAAgB,CACfC,SAAU,YACV51B,UAAW,OAIbiiC,EAAkB,CACjB9zI,KAAM,gDACNy9C,SAAU,gBACVhhB,aAAapxB,EAAAA,EAAAA,IAAI,mCACjBm8H,eAAgB,CACfC,SAAU,SACV51B,UAAY,OAId,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIzwG,SAAW6/B,IAC/B6yG,EAAkB,CACjB9zI,KAAO,iDAAiDihC,IACxDwc,SAAU,gBACVhhB,aAAapxB,EAAAA,EAAAA,IAAI,mCACjBm8H,eAAgB,CACfC,SAAU,SACV51B,UAAY,GAAG5wE,MAEd,IAGJ6yG,EAAkB,CACjB9zI,KAAM,yCACNy9C,SAAU,SACVhhB,aAAapxB,EAAAA,EAAAA,IAAI,iCACjBm8H,eAAgB,CACfC,SAAU,eACV51B,UAAW,OAEV,GACD,CAAEiiC,IAEE,IACR,ECvFA,GAtBA,WACC,MAAM,oCAAErzF,EAAmC,qBAAEwpB,IAC5C73C,EAAAA,EAAAA,WAAW0T,GAAAA,QACN,oBAAEoH,IAAwB5a,EAAAA,EAAAA,aAAa0gB,IAgB7C,OAdAwpF,EAAAA,GAAAA,aAAa,uBAAyBl1F,IACrCA,EAAMC,iBAEN,MAAMuZ,EAAqBL,IACrBL,IAAaU,EAAmB98C,QACrB88C,EAAmB5a,MAAQ4O,GAC3Cm1B,EAAsBn1B,EAAOwwB,KAAMxwB,EAAO90C,KAAM80C,EAAOx1C,QAGrC8gD,GAClBlT,GAAqB,EACtB,IAGM,IACR,ECrBA,IALC5kC,EAAAA,EAAAA,eAACgmB,EAAAA,IAAG,CAACC,MAAM,6BAA6BC,QAAQ,cAC/ClmB,EAAAA,EAAAA,eAACmmB,EAAAA,KAAI,CAACvjB,EAAE,uPCIV,IALC5C,EAAAA,EAAAA,eAACgmB,EAAAA,IAAG,CAACC,MAAM,6BAA6BC,QAAQ,cAC/ClmB,EAAAA,EAAAA,eAACmmB,EAAAA,KAAI,CAACvjB,EAAE,8XCIV,IALC5C,EAAAA,EAAAA,eAACgmB,EAAAA,IAAG,CAACC,MAAM,6BAA6BC,QAAQ,cAC/ClmB,EAAAA,EAAAA,eAACmmB,EAAAA,KAAI,CAACvjB,EAAE,+XCIV,IALC5C,EAAAA,EAAAA,eAACgmB,EAAAA,IAAG,CAACC,MAAM,6BAA6BC,QAAQ,cAC/ClmB,EAAAA,EAAAA,eAACmmB,EAAAA,KAAI,CAACvjB,EAAE,gVCsBV,MAAQ2nH,qBAAoBA,IAAK/yF,GAAQI,GAAAA,cACjCwG,WAAU,GAAEsC,YAAWA,IAAKlJ,GAAQ6G,GAAAA,aAE5C,SAASotG,KACR,MAAM,mBAAE5lG,EAAkB,cAAEW,GAAkBhP,IAC7CxN,EAAAA,EAAAA,aAAa0gB,MAER,OAAElM,GAAWkC,KAEbgrG,GAAiB1M,GAAexgG,GADbhN,EAAAA,GAAAA,kBAAkB,SAAU,OAE/C,cAAEmY,GAAkBnS,IAAQ1N,EAAAA,EAAAA,WAAW4gB,KACvCnM,EAAUH,KAEVb,GAAoBzT,EAAAA,EAAAA,YAAalD,GAC/BA,EAAQ4W,GAAAA,OAAYC,kBAAkBC,gBAC3C,IAoCH,MAAO,CACN3Q,WAAW,EACX4+G,UApCgB75G,EAAAA,EAAAA,UAAS,IAClByL,EAIA,CACN,CACC7lC,KAAM,6BACNq2B,OAAOhrB,EAAAA,EAAAA,IAAI,eACX2pC,SAAUA,EAAIw+F,YACbA,IACOQ,GACNntG,EAAQlnC,KAAM,CACbw7B,KAAM,oBACNsO,OAAQ,SAGLuqG,GAAoC,SAApB/hG,KACpBnD,EAAe,QAEhBX,EAAoB,0BAA2B,EAEhDtc,KAAMyR,KApBA,IAuBN,CACFuD,EACAsH,EACAW,EACAklG,EACA/hG,EACApM,IAOF,CAEA,SAASquG,KACR,MAAM,mBAAE/lG,EAAkB,cAAEW,GAAkBhP,IAC7CxN,EAAAA,EAAAA,aAAa0gB,MAER,OAAElM,GAAWkC,KAEbgrG,GAAiB1M,GAAexgG,GADbhN,EAAAA,GAAAA,kBAAkB,SAAU,OAE/C,cAAEmY,GAAkBnS,IAAQ1N,EAAAA,EAAAA,WAAW4gB,MACvC,IAAEvzC,IAAQ6yB,EAAAA,EAAAA,aAAanD,EAAAA,OAEvB0X,EAAUH,KACVb,GAAoBzT,EAAAA,EAAAA,YAAalD,GAC/BA,EAAQ4W,GAAAA,OAAYC,kBAAkBC,gBAC3C,IA2CH,MAAO,CACN3Q,WAAW,EACX4+G,UA3CgB75G,EAAAA,EAAAA,UAAS,IAClByL,EAIA,CACN,CACC7lC,KAAM,6CACNq2B,OAAOhrB,EAAAA,EAAAA,IAAI,sBACX2pC,SAAUA,EAAIw+F,YACbA,IACOQ,GACNntG,EAAQlnC,KAAM,CACbw7B,KAAM,oBACNsO,OAAQ,SAGLuqG,GAAoC,SAApB/hG,KACpBnD,EAAe,QAEhBX,EAAoB,2BACpB1uC,EAAK,iBAAkB,sBAAsB,GAG7CuN,YAAY,KACXvN,EAAK,iBAAkB,sBAAsB,EAAM,GACjD,IAAK,EAEToyB,KAAM6K,KA1BA,IA6BN,CACFmK,EACAsH,EACAW,EACAklG,EACA/hG,EACApM,EACApmC,IAOF,CAEA,SAAS00I,KACR,MAAQ1mB,EAAUyF,GAAYL,KAmB9B,MAAO,CACNx9F,WAAW,EACX4+G,UApBgB75G,EAAAA,EAAAA,UAAS,IAClBqzF,EAIA,CACN,CACCztH,KAAM,qCACNq2B,OAAOhrB,EAAAA,EAAAA,IAAI,gBACXwmB,MAAMmK,EAAAA,EAAAA,SAAUo4G,GAAcC,GAC9Br/F,SAAUA,EAAIw+F,YACbA,IACAtgB,GAAS,IAVJ,IAcN,CAAEzF,EAAUyF,IAMhB,CAEA,SAASohB,KACR,MAAM,mBAAEnmG,EAAkB,6BAAEa,EAA4B,cAAEF,GACzDhP,IAAQxN,EAAAA,EAAAA,aAAa0gB,MAChB,OAAElM,GAAWkC,KAGbgrG,GADa1M,GAAexgG,GADThN,EAAAA,GAAAA,kBAAkB,SAAU,MAG/C+M,EAAUH,MACV,WAAEm0C,IAAezoD,EAAAA,EAAAA,YAAalD,IACnC,MAAM,gBAAEka,EAAe,uCAAEyL,GACxB3lB,EAAQ4W,GAAAA,OAEH2O,EAAiBI,IACjBwK,EAAe5K,EAClBrL,EAAiB,OAAQ,eAAgBqL,QACzC1mB,EAEH,MAAO,CACN8sD,aAAex7B,GAAc6B,SAAU,sBACvC,GACC,KACG,cAAEjP,GAAkBnS,IAAQ1N,EAAAA,EAAAA,WAAW4gB,KAqC7C,MAAO,CACN3d,WAAW,EACX4+G,UArCgB75G,EAAAA,EAAAA,UAAS,IAClBygD,EAIA,CACN,CACC76E,KAAM,iCACNq2B,OAAOhrB,EAAAA,EAAAA,IAAI,iBACXwmB,KAAM0iH,GACNv/F,SAAUA,EAAIw+F,YACbA,IACOQ,GACNntG,EAAQlnC,KAAM,CACbw7B,KAAM,oBACNsO,OAAQ,SAGLuqG,GAAoC,SAApB/hG,KACpBnD,EAAe,QAEhBX,EAAoB,2BACpBa,EAA8B,oBAAqB,IApB9C,IAwBN,CACFnI,EACAsH,EACAa,EACA6rC,EACAm5D,EACA/hG,EACAnD,IAMF,CAEA,SAAS0lG,KACR,MAAM,mBAAErmG,EAAkB,6BAAEa,EAA4B,cAAEF,GACzDhP,IAAQxN,EAAAA,EAAAA,aAAa0gB,MAChB,cAAEf,GAAkBnS,IAAQ1N,EAAAA,EAAAA,WAAW4gB,MACvC,OAAElM,GAAWkC,KAEbgrG,GAAiB1M,GAAexgG,GADbhN,EAAAA,GAAAA,kBAAkB,SAAU,MAE/C+M,EAAUH,KACV+c,GAAerxB,EAAAA,EAAAA,YAAalD,IACjC,MAAM,gBAAEka,EAAe,uCAAEyL,GACxB3lB,EAAQ4W,GAAAA,OACH2O,EAAiBI,IACjBwK,EAAe5K,EAClBrL,EAAiB,OAAQ,eAAgBqL,QACzC1mB,EACH,QAAUsxB,GAAc6B,SAAU,qBAAuB,IAAK7jC,KAAK,GACjE,IAsCH,MAAO,CACNgY,WAAW,EACX4+G,UAtCgB75G,EAAAA,EAAAA,UAAS,IAClBqpB,EAIA,CACN,CACCzjD,KAAM,8CACNq2B,OAAOhrB,EAAAA,EAAAA,IAAI,mBACXwmB,KAAM6wB,GACN1N,SAAUA,EAAIw+F,YACbA,IACOQ,GACNntG,EAAQlnC,KAAM,CACbw7B,KAAM,oBACNsO,OAAQ,SAGLuqG,GAAoC,SAApB/hG,KACpBnD,EAAe,QAEhBX,EAAoB,2BACpBa,EAA8B,0BAA2B,IApBpD,IAwBN,CACFyU,EACA5c,EACAsH,EACAa,EACAglG,EACA/hG,EACAnD,IAOF,CC7RA,QALCxmC,EAAAA,EAAAA,eAACgmB,EAAAA,IAAG,CAACE,QAAQ,YAAYD,MAAM,+BAC9BjmB,EAAAA,EAAAA,eAACmmB,EAAAA,KAAI,CAACvjB,EAAE,+LCIV,IALC5C,EAAAA,EAAAA,eAACgmB,EAAAA,IAAG,CAACC,MAAM,6BAA6BC,QAAQ,cAC/ClmB,EAAAA,EAAAA,eAACmmB,EAAAA,KAAI,CAACvjB,EAAE,oLCKV,IANC5C,EAAAA,EAAAA,eAACgmB,EAAAA,IAAG,CAACC,MAAM,6BAA6BC,QAAQ,cAC/ClmB,EAAAA,EAAAA,eAACmmB,EAAAA,KAAI,CAACvjB,EAAE,uIACR5C,EAAAA,EAAAA,eAACmmB,EAAAA,KAAI,CAACvjB,EAAE,uLCGV,IALC5C,EAAAA,EAAAA,eAACgmB,EAAAA,IAAG,CAACE,QAAQ,YAAYD,MAAM,+BAC9BjmB,EAAAA,EAAAA,eAACmmB,EAAAA,KAAI,CAACvjB,EAAE,kECkCV,MAAQw7B,WAAUA,IAAK5G,GAAQ6G,GAAAA,aAE/B,SAAS8tG,KACR,MAAQ3/F,OAAQnK,GAAaioB,MACvB,OAAE5gB,EAAM,WAAE1H,EAAU,cAAE+tF,IAAkBjmG,EAAAA,EAAAA,YAAalD,IAC1D,MAAQ8iB,OAAQ0iG,EAAO,cAAEziG,GAAkBnS,GAC1C5Q,EAAQ8jB,MAEH,iBAAE6iF,GAAqB3mG,EAAQ+b,EAAAA,OACrC,MAAO,CACN+G,OAAQ0iG,IACRpqG,WAAY2H,IACZomF,cAAexC,IACf,GACC,KACG,iBAAE8e,IAAqBriH,EAAAA,EAAAA,aAAa2Y,EAAAA,OAE1C,IAAO+G,GAAyB,SAAf1H,EAChB,MAAO,CAAEjV,WAAW,EAAO4+G,SAAU,IAGtC,MAAMA,EAAW,GA4BjB,MA1BuB,kBAAlB5b,EACJ4b,EAASt0I,KAAM,CACdK,KAAM;;AAENq2B,OAAO8O,EAAAA,EAAAA,SACN,qBACA4G,EAAAA,GAAAA,gBAAgBpB,EAASzV,QAE1BrD,KAAM4yB,GACNzP,SAAUA,EAAIw+F,YACbmB,EAAkB,iBAClBnB,GAAO,IAITS,EAASt0I,KAAM,CACdK,KAAM,4BACNq2B,OAAOhrB,EAAAA,EAAAA,IAAI,gBACXwmB,KAAMiuB,GACN9K,SAAUA,EAAIw+F,YACbmB,EAAkB,mBAClBnB,GAAO,IAKH,CAAEn+G,WAAW,EAAO4+G,WAC5B,CAEA,SAASW,KACR,MAAM,iBAAErmG,IAAqBjc,EAAAA,EAAAA,aAAa0gB,KACpC,WAAE1I,EAAU,WAAEy6F,IAAe3yG,EAAAA,EAAAA,YAChClD,IAAM,CACPob,WAAYxK,GAAQ5Q,EAAQ8jB,KAAkBf,gBAC9C8yF,WAAY71G,EAAQ8jB,IAAgBpB,mBAErC,IAGD,GAAoB,SAAftH,GAAwC,SAAfy6F,EAC7B,MAAO,CAAE1vG,WAAW,EAAO4+G,SAAU,IAGtC,MAAMA,EAAW,GAcjB,MAZoB,SAAflP,GACJkP,EAASt0I,KAAM,CACdK,KAAM,wBACNq2B,OAAOhrB,EAAAA,EAAAA,IAAI,oBACXwmB,KAAM9iB,GACNimC,SAAUA,EAAIw+F,YACbjlG,EAAkB,UAClBilG,GAAO,IAKH,CAAEn+G,WAAW,EAAO4+G,WAC5B,CAEA,SAASY,KACR,MAAM,SAAEhiF,EAAU/d,OAAQnK,GAAaioB,MACjC,eAAEpnB,EAAc,eAAE2B,IAAmB7a,EAAAA,EAAAA,aAAa0gB,IAClDnM,EAAUH,KACVivF,GAAgBvjG,EAAAA,EAAAA,YACnBlD,GACDA,EAAQ8jB,IAAgBhB,UACqB,kBAA7C9iB,EAAQ+b,EAAAA,OAAc4qF,oBACvB,IAGD,IAAOhjE,EACN,MAAO,CAAEx9B,WAAW,EAAM4+G,SAAU,IAGrC,MAAMA,EAAW,GAEjB,GAAKvpG,GAAsBC,KAAgBgrF,EAAgB,CAC1D,MAAMt/F,EACLsU,EAAStuB,OAASsrB;CAEfxC,EAAAA,EAAAA,SACA,sBACA4G,EAAAA,GAAAA,gBAAgBpB,EAASzV;CAGzBiQ,EAAAA,EAAAA,SACA,2BACA4G,EAAAA,GAAAA,gBAAgBpB,EAASzV,QAE7B++G,EAASt0I,KAAM,CACdK,KAAM,sBACNq2B,QACAxE,MAAMmK,EAAAA,EAAAA,SAAUo4G,GAAcC,GAC9Br/F,SAAUA,EAAIw+F,YACbrmG,EAAgBxC,GAChB6oG,GAAO,GAGV,CAEA,GAAK3+E,GAAqBlqB,KAAgBgrF,EAAgB,CACzD,MAAMt/F,EACLsU,EAAStuB,OAASsrB;CAEfxC,EAAAA,EAAAA,SACA,uBACA4G,EAAAA,GAAAA,gBAAgBpB,EAASzV;CAGzBiQ,EAAAA,EAAAA,SACA,4BACA4G,EAAAA,GAAAA,gBAAgBpB,EAASzV,QAEvBiG,EACLwP,EAAStuB,OAASsrB,GACf,eACA,wBACJssG,EAASt0I,KAAM,CACdK,KAAM,uBACNq2B,QACAxE,KAAMq9C,GACNl6B,SAAUA,EAAIw+F,YACbhoG,EAAgBb,GAEhB9D,EAAQlnC,KAAM,CACbw7B,SAEDq4G,GAAO,GAGV,CAEA,MAAO,CACNn+G,WAAaw9B,EACbohF,WAEF,CAEA,SAASa,KACR,MAAM,mBACL3mG,EAAkB,oBAClBG,EAAmB,sBACnBF,EAAqB,oBACrBpB,EAAmB,iBACnBuB,IACGjc,EAAAA,EAAAA,aAAa0gB,KACX,WACL1I,EAAU,WACVy6F,EAAU,cACVgQ,EAAa,qBACb3P,EAAoB,eACpBD,EAAc,kBACd3tG,IACGpF,EAAAA,EAAAA,YAAalD,IAChB,MAAM,IAAE1vB,GAAQ0vB,EAAQC,EAAAA,QAClB,cAAEyiB,GAAkB1iB,EAAQ8jB,KAC5B,iBAAE3B,GAAqBniB,EAAQ+b,EAAAA,OACrC,MAAO,CACNX,WAAYxK,GAAQ5Q,EAAQ8jB,KAAkBf,gBAC9C8yF,WAAYnzF,IACZmjG,cAAe7lH,EAAQmD,GAAiBhC,2BACvC2iB,GAAchzC,MAEfolI,qBAAsB5lI,EAAK,OAAQ,wBACnC2lI,eAAgB9zF,IAChB7Z,kBAAmBh4B,EAAK,OAAQ,mBAChC,GACC,KACG,UAAE2wB,IAAcmC,EAAAA,EAAAA,aAAaD,IAC7B,OAAEvC,IAAWwC,EAAAA,EAAAA,aAAanD,EAAAA,QAC1B,iBAAE0f,IAAqBvc,EAAAA,EAAAA,aAAaoS,GAAAA,OAE1C,GAAoB,SAAf4F,EACJ,MAAO,CAAEjV,WAAW,EAAO4+G,SAAU,IAGtC,MAAMA,EAAW,GAuHjB,OArHAA,EAASt0I,KAAM,CACdK,KAAM,6BACNq2B,OAAOhrB,EAAAA,EAAAA,IAAI,2BACXwmB,MAAMmK,EAAAA,EAAAA,SAAUq/F,GAAaC,GAC7BtmF,SAAUA,EAAIw+F,YACbA,IACuB,uBAAlBuB,EACJzmG,IAEAH,EAAoB,qBACrB,IAIF8lG,EAASt0I,KAAM,CACdK,KAAM,4BACNq2B,OAAOhrB,EAAAA,EAAAA,IAAI,0BACXwmB,KAAMmjH,GACNhgG,SAAUA,EAAIw+F,YACbA,IACuB,8BAAlBuB,EACJzmG,IAEAH,EAAoB,4BACrB,IAIF8lG,EAASt0I,KAAM,CACdK,KAAM,6BACNq2B,OAAOhrB,EAAAA,EAAAA,IAAI,yBACX2pC,SAAUA,EAAIw+F,YACb1jH,EAAQ,OAAQ,aAChB0jH,GAAO,IAITS,EAASt0I,KAAM,CACdK,KAAM,+BACNq2B,OAAOhrB,EAAAA,EAAAA,IAAI,2BACX2pC,SAAUA,EAAIw+F,YACbplG,IACAolG,GAAO,IAITS,EAASt0I,KAAM,CACdK,KAAM,0BACNq2B,OAAOhrB,EAAAA,EAAAA,IAAI,sBACX2pC,SAAUA,EAAIw+F,YACb1jH,EAAQ,OAAQ,gBACX0H,GACJ4W,IAEDolG,GAAO,IAIW,WAAfzO,GACJkP,EAASt0I,KAAM,CACdK,KAAM,0BACNq2B,OAAOhrB,EAAAA,EAAAA,IAAI,oBACXwmB,KAAM9iB,GACNimC,SAAUA,EAAIw+F,YACbjlG,EAAkB,QAClBilG,GAAO,IAKVS,EAASt0I,KAAM,CACdK,KAAM,wBACNq2B,OAAOhrB,EAAAA,EAAAA,IAAI,sBACX2pC,SAAUA,KACT7kB,EAAWu5G,GAAwB,IAIrCuK,EAASt0I,KAAM,CACdK,KAAM,0BACNq2B,OAAOhrB,EAAAA,EAAAA,IAAI,sBACXwmB,KAAMojH,GACNjgG,SAAUA,KACT7kB,EAAWk4G,GAAmC,IAIhD4L,EAASt0I,KAAM,CACdK,KAAM,0BACNq2B,MAAO+uG,GACJ/5H,EAAAA,EAAAA,IAAI,2BACJA,EAAAA,EAAAA,IAAI,0BACP2pC,SAAUA,EAAIw+F,YACb1jH,EAAQ,OAAQ,wBAChB0jH,IACA3kG,EACCu2F,GACG/5H,EAAAA,EAAAA,IAAI,wBACJA,EAAAA,EAAAA,IAAI,wBACP,CACCspB,GAAI,2CACJtY,KAAM,YAEP,IAIH43H,EAASt0I,KAAM,CACdK,KAAM,wBACNq2B,OAAOhrB,EAAAA,EAAAA,IAAI,oBACXwmB,KAAMqjH,GACNlgG,SAAUA,EAAIw+F,YACbxmG,GAAuBm4F,GACvBqO,GAAO,IAIF,CACNn+G,WAAW,EACX4+G,WAEF,CAEA,SAASkB,KACR,MAAM,SAAEtiF,EAAU/d,OAAQmpB,GAAYrL,MAChC,UAAEziC,IAAcmC,EAAAA,EAAAA,aAAaD,GAEnC,IAAOwgC,EACN,MAAO,CAAEx9B,WAAW,EAAM4+G,SAAU,IAGrC,MAAMA,EAAW,GAuBjB,MArBuB,aAAlBh2E,GAAS5hD,OACb43H,EAASt0I,KAAM,CACdK,KAAM,sBACNq2B,OAAOhrB,EAAAA,EAAAA,IAAI,kBACXwmB,KAAMgyB,GACN7O,SAAUA,EAAIw+F,YACbrjH,EAAWuwG,GAAeC,QAC1B6S,GAAO,IAGTS,EAASt0I,KAAM,CACdK,KAAM,yBACNq2B,OAAOhrB,EAAAA,EAAAA,IAAI,qBACXwmB,KAAMlrB,GACNquC,SAAUA,EAAIw+F,YACbrjH,EAAWuwG,GAAeI,WAC1B0S,GAAO,KAKH,CAAEn+G,WAAW,EAAO4+G,WAC5B,CC/Xe,SAASmB,IAAQ,MAAElgH,EAAK,SAAEmgH,EAAQ,QAAE9jH,IAClD,OACCjpB,EAAAA,EAAAA,eAACqzB,EAAAA,qBAAM,CAAC5J,GAAG,SAASyhB,UAAU,OAAO9gB,UAAU,0BAC9CpqB,EAAAA,EAAAA,eAACyrC,EAAAA,UAAS,CAACrhB,UAAU,sCACpBpqB,EAAAA,EAAAA,eAACsrC,EAAAA,sBAAO,CACP7hB,GAAG,KACHkP,MAAQ,EACR6oB,OAAS,IACTp3B,UAAU,gCAERwC,GAEDmgH,IACD/sI,EAAAA,EAAAA,eAACi0B,EAAAA,mBAAI,CAACxK,GAAG,IAAIW,UAAU,oCACpB2iH,KAIL/sI,EAAAA,EAAAA,eAACuzB,EAAAA,SAAQ,CAACnJ,UAAU,kCACjBnB,GAIN,CCtBe,SAAS+jH,IAAM,MAC7BpgH,EAAK,SACLmgH,EAAQ,QACR9jH,EAAO,SACPnkB,EAAQ,UACRslB,EAAS,gBACT6iH,GAAkB,IAElB,MAAMjxI,EAAU0uB,IAAY,iBAAkBN,GAE9C,OACCpqB,EAAAA,EAAAA,eAACuuB,GAAe,CAACnE,UAAYpuB,EAAUwyB,UAAY5B,IAClD5sB,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,2BACV6iH,GAAmBrgH,IACtB5sB,EAAAA,EAAAA,eAAC8sI,GAAM,CACNlgH,MAAQA,EACRmgH,SAAWA,EACX9jH,QAAUA,IAGVnkB,IAEH9E,EAAAA,EAAAA,eAAC89H,EAAAA,gBAAe,MAGnB,CCxBA,MAAM,2BAAEoP,IAA+B11G,GAAQ0gG,GAAAA,aAEhC,SAASiV,IAAwB,SAAEh4F,EAAQ,QAAEjnB,IAC3D,MAAQy+B,EAAaC,IAAmBj7B,EAAAA,EAAAA,WAAU,GAElD,OACC3xB,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAAC+rB,EAAAA,SAAQ,CAAC9B,QAAUA,IAAM2iC,GAAgB,KACvC7pD,EAAAA,EAAAA,IAAI,WAEL4pD,IACD3sD,EAAAA,EAAAA,eAACigE,GAAW,CACX9qB,SAAWA,EACXjnB,QAAUA,KACT0+B,GAAgB,GAChB1+B,GAAS,IAMf,CAEA,SAAS+xC,IAAa,SAAE9qB,EAAQ,QAAEjnB,IAIjC,MAAMk/G,EAAqB,CAC1B/gH,GAAI8oB,EAAS9oB,GACbuU,KAAMuU,EAASvU,KACflpC,KAAMy9C,EAASpnB,OAIVs/G,EAAqBr2E,KAE3B,OACCh3D,EAAAA,EAAAA,eAACktI,GAA0B,CAC1B/3F,SAAWi4F,EACXC,mBAAqBA,EACrBn/G,QAAUA,EACVq6B,iBAAiB,gCAGpB,CCxCA,MAAQnqB,WAAUA,IAAK5G,GAAQ6G,GAAAA,aAEhB,SAASivG,IAAwB,SAAEn4F,EAAQ,QAAEjnB,IAC3D,MAAQy+B,EAAaC,IAAmBj7B,EAAAA,EAAAA,WAAU,GAC5C4M,EAAUH,MAEV,oBAAEjC,EAAmB,kBAAE0H,IAC5B7Z,EAAAA,EAAAA,aAAaoS,GAAAA,QACR,mBAAE+G,EAAkB,qBAAEoqG,IAC3BvjH,EAAAA,EAAAA,aAAawT,GAAAA,OAmDd,OACCx9B,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAAC+rB,EAAAA,SAAQ,CAAC4hC,eAAa,EAAC1jC,QAAUA,IAAM2iC,GAAgB,KACrD7pD,EAAAA,EAAAA,IAAI,YAEP/C,EAAAA,EAAAA,eAAC4tD,EAAAA,4BAAa,CACb7rB,OAAS4qB,EACTkB,UAxDcppD,UAChB,UACO0+B,EACL,WACA,sBACAgS,EAAS9oB,GACT,CAAE+W,OAAO,GACT,CAAEgkB,cAAc,IAKjBmmF,EAAsB,4BACtBA,EAAsB,mBAAoB,CACzC,WACA3tG,GAAcvF,KACd,CAAEgO,UAAW,KAGdlM,GACCU,EAAAA,EAAAA;CAEC95B,EAAAA,EAAAA,IAAI,iBACJoyC,EAASpnB,OAEV,CAAEha,KAAM,WAAYsY,GAAI,4BAGzB6B,MACAqQ,EAAQlnC,KAAM,CACbw7B,KAAO,YACPkkC,aAAcn3B,GAAcH,MAC5B6zB,WAAYzzB,IAEd,CAAE,MAAQ6D,GACT,MAAMC,EACLD,EAAME,SAA0B,kBAAfF,EAAMj9B,KACpBi9B,EAAME,SACN7gC,EAAAA,EAAAA,IACA,0DAGJ8gC,EAAmBF,EAAc,CAChC5vB,KAAM,WACNsY,GAAI,2BAEN,GAWEyhC,SAAWA,IAAMlB,GAAgB,GACjCmB,mBAAoBhrD,EAAAA,EAAAA,IAAI,UACxBqnB,UAAU,qCAERyS,EAAAA,EAAAA;;CAED95B,EAAAA,EAAAA,IACC,yFAED0gC,EAAAA,GAAAA,gBAAgB0R,EAASpnB,SAK9B,CC/Ee,SAASy/G,IAAgB,WACvCl6E,EAAU,KACVv/C,EAAI,QACJ05H,EAAO,cACPC,IAEA,MAAM,kBAAE/1E,GAAsBX,KACxBnN,GAAoB//B,EAAAA,EAAAA,YACvBlD,GACDA,EAAQ+b,EAAAA,OAAc4mB,6CACvB,IAGD,IAAI38B,EAAOuH,EAAaw5G,EACxB,GAAK55H,IAASurB,GAA0B,CACvC,MAAMgqB,EAAmBO,EAAkB3Q,MACxC1yB,GAAUA,EAAKA,OAAS8sC,IAE3B1mC,EAAQ08B,GAAkBv7B,MAC1BoG,EAAcm1B,GAAkBn1B,WACjC,MAAYpgB,IAAS6rB,GAAcH,QAClCkuG,EAAkBh2E,EAAkBze,MACjC/D,GAAcA,EAASz9C,OAAS47D,IAEnC1mC,EAAQ+gH,GAAiB5/G,MACzBoG,EAAcw5G,GAAiBx5G,aAGhC,OAAOvH,GAGN5sB,EAAAA,EAAAA,eAACgrC,EAAAA,qBAAM,CAAC5gB,UAAU,uCACjBpqB,EAAAA,EAAAA,eAACqzB,EAAAA,qBAAM,CAACC,QAAQ,kBACftzB,EAAAA,EAAAA,eAACsrC,EAAAA,sBAAO,CAAC7hB,GAAG,KAAKkP,MAAQ,EAAItM,GAAKohH,GAC/B7gH,KAEE+gH,GAAiBthH,KACrBrsB,EAAAA,EAAAA,eAAC2wB,EAAAA,aAAY,CACZpH,KAAOsH,GACP9C,OAAQhrB,EAAAA,EAAAA,IAAI,WACZkpB,YAAc,CACb7B,UAAW,6BACXwjH,aAAa/wG,EAAAA,EAAAA;CAEZ95B,EAAAA,EAAAA,IAAI,uCACJ6pB,MAIA,EAAIsB,cACLluB,EAAAA,EAAAA,eAACutD,EAAAA,UAAS,MACTvtD,EAAAA,EAAAA,eAACmtI,GAAsB,CACtBh4F,SAAWw4F,EACXz/G,QAAUA,KAEXluB,EAAAA,EAAAA,eAACstI,GAAsB,CACtBn4F,SAAWw4F,EACXz/G,QAAUA,QAOdiG,GACDn0B,EAAAA,EAAAA,eAACi0B,EAAAA,mBAAI,CAAChG,QAAQ,QAAQxE,GAAG,IAAI4C,GAAKqhH,GAC/Bv5G,GAEA,MAxCgB,IA2CvB,CCpFA,QALCn0B,EAAAA,EAAAA,eAACgmB,EAAAA,IAAG,CAACC,MAAM,6BAA6BC,QAAQ,cAC/ClmB,EAAAA,EAAAA,eAACmmB,EAAAA,KAAI,CAACvjB,EAAE,+ICOV,IARC5C,EAAAA,EAAAA,eAACgmB,EAAAA,IAAG,CAACC,MAAM,6BAA6BC,QAAQ,cAC/ClmB,EAAAA,EAAAA,eAACmmB,EAAAA,KAAI,CACJC,SAAS,UACTxjB,EAAE,4ICML,IATC5C,EAAAA,EAAAA,eAACgmB,EAAAA,IAAG,CAACE,QAAQ,YAAYD,MAAM,+BAC9BjmB,EAAAA,EAAAA,eAACmmB,EAAAA,KAAI,CACJC,SAAS,UACTC,SAAS,UACTzjB,EAAE,4KCVD,GAA+BjK,OAAW,GAAkB,eCsBjD,SAAS6zD,IAAgB,KAAExlC,EAAI,QAAEkH,IAC/C,MAAQtB,EAAOy3B,IAAa1yB,EAAAA,EAAAA,WAAU,IAAM3K,EAAK4F,SACzC+/B,EAAaC,IAAmBj7B,EAAAA,EAAAA,WAAU,IAE5C,iBAAEsR,EAAgB,uBAAEmqB,IACzBpjC,EAAAA,EAAAA,aAAawT,GAAAA,QACR,oBAAErB,EAAmB,kBAAE0H,IAC5B7Z,EAAAA,EAAAA,aAAaoS,GAAAA,OAEd,OAAKpV,EAAKjT,OAASurB,IAA6BtY,EAAKkuC,UA6CpDl1D,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAAC+rB,EAAAA,SAAQ,CACR9B,QAAUA,KACT2iC,GAAgB,GAChBvI,EAAUr9B,EAAK4F,MAAO,IAGrB7pB,EAAAA,EAAAA,IAAI,WAEL4pD,IACD3sD,EAAAA,EAAAA,eAACixB,EAAAA,MAAK,CACLrE,OAAQ7pB,EAAAA,EAAAA,IAAI,UACZmuB,eAAiBA,KAChB07B,GAAgB,GAChB1+B,GAAS,EAEVq6B,iBAAiB,iCAEjBvoD,EAAAA,EAAAA,eAAA,QAAMykD,SA3DVhgD,eAAyBu6B,GACxBA,EAAMC,iBAEN,UACOgE,EAAkB,WAAYjc,EAAKjT,KAAMiT,EAAKqF,GAAI,CAAEO,UAG1Dy3B,EAAU,IACVuI,GAAgB,GAChB1+B,UAGMk/B,EAAwB,WAAYpmC,EAAKjT,KAAMiT,EAAKqF,GAAI,CAC7D+6B,cAAc,IAGfjrB,EACCnV,EAAKjT,OAASurB,IACXv8B,EAAAA,EAAAA,IAAI,2BACJA,EAAAA,EAAAA,IAAI,oBACP,CACCgR,KAAM,YAGT,CAAE,MAAQ2vB,GACT,MAAMspB,EACLhmC,EAAKjT,OAASurB,IACXv8B,EAAAA,EAAAA,IACA,wDAEAA,EAAAA,EAAAA,IAAI,iDACF4gC,EACLD,EAAME,SAA0B,kBAAfF,EAAMj9B,KACpBi9B,EAAME,QACNopB,EAEJnpB,EAAmBF,EAAc,CAAE5vB,KAAM,YAC1C,CACD,IAsBK/T,EAAAA,EAAAA,eAACgrC,EAAAA,qBAAM,CAACC,QAAQ,MACfjrC,EAAAA,EAAAA,eAAC2kD,EAAAA,YAAW,CACXpwB,yBAAuB,EACvB04B,uBAAqB,EACrBl/B,OAAQhrB,EAAAA,EAAAA,IAAI,QACZ3L,MAAQw1B,EACRzoB,SAAWkgD,EACX6I,UAAQ,KAGTltD,EAAAA,EAAAA,eAACqzB,EAAAA,qBAAM,CAACC,QAAQ,UACftzB,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNujC,uBAAqB,EACrBh/B,QAAQ,WACRhE,QAAUA,KACT2iC,GAAgB,GAChB1+B,GAAS,IAGRnrB,EAAAA,EAAAA,IAAI,YAGP/C,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNujC,uBAAqB,EACrBh/B,QAAQ,UACRla,KAAK,WAEHhR,EAAAA,EAAAA,IAAI,cA1FN,IAmGT,CCjHA,MAAQu1H,sBAAqBA,IAAK9gG,GAAQ0gG,GAAAA,cAClC95F,WAAUA,IAAK5G,GAAQ6G,GAAAA,aAEhB,SAASwvG,IAAmB,WAC1Cv6E,EAAU,KACVtsC,EAAI,MACJ+G,GAAQhrB,EAAAA,EAAAA,IAAI,aAAa,QACzBmrB,IAEA,MAAM,oBAAEiO,IAAwBnS,EAAAA,EAAAA,aAAaoS,GAAAA,QACrCuwB,EAAaC,IAAmBj7B,EAAAA,EAAAA,WAAU,GAC5C4M,EAAUH,KAEVtW,EAAaA,IAAM8kC,GAAgB,GAEnCjlB,EAAiB3gB,EAAKjT,OAASurB,GAC/BwuG,EAAiB9mH,EAAKjT,OAAS6rB,GAAcH,MAoCnD,OACCz/B,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAAC+rB,EAAAA,SAAQ,CACR9B,QAAUA,IAAM2iC,GAAgB,GAChC,gBAAgBD,EAChB,gBAAc,UAEZ5+B,GAED4+B,IAAiBhlB,IAClB3nC,EAAAA,EAAAA,eAACs4H,GAAqB,CACrBpqG,QAAUpG,EACVmxC,UAvBJ,UAA2B,QAAEtD,IAC5Bp3B,EAAQlnC,KAAM,CACb0/D,aAAcn3B,GAAcH,MAC5B6zB,aACApyB,SAAUtB,GAAcvF,KACxB4G,OAAQ00B,EAAQtpC,KAGjB6B,GACD,EAeIynC,QAAUm4E,EAAiB9mH,EAAOA,EAAKwvC,cAGvC7J,GAAehlB,IAChB3nC,EAAAA,EAAAA,eAACmwD,GAAuB,CACvBl1B,OAASjU,EAAKiU,OACdnT,WAAaA,EACbuoC,cAAettD,EAAAA,EAAAA,IAAI,aACnBymD,YAAcxiC,EAAK6Z,aAAara,KAChC89B,cAAeznB,EAAAA,EAAAA;CAEd95B,EAAAA,EAAAA,IAAI,aACJikB,EAAK4F,OAENw7B,YAAarlD,EAAAA,EAAAA,IAAI,2BACjButD,SA9DJ7rD,eAAsCo8B,GACrC1E,GACCU,EAAAA,EAAAA;;CAEC95B,EAAAA,EAAAA,IAAI,oBACJikB,EAAK4F,OAEN,CACC7Y,KAAM,WACNsY,GAAI,+BAINkS,EAAQlnC,KAAM,CACb6pC,SAAU5B,GACV2B,OAAQJ,GAAcxU,GACtB0qC,aAAcz3B,GACdg0B,eAGDplC,GACD,EA0CIqiC,QAAUzoC,IAKf,CClDA,MAAQ6P,eAAcA,IAAKH,GAAQI,GAAAA,aAE7Bm2G,GAAoB,CAAEl4H,OAAM,GAAEsZ,OAAM,GAAE2oC,cAAaA,IAoRzD,QAAe5hB,EAAAA,EAAAA,OAlRf,UAAmB,WAAEod,EAAU,KAAEtsC,KAASjmB,IACzC,MAAM2sI,GAAgBliE,EAAAA,EAAAA,UACdwiE,EAAoBC,IAA0Bt8G,EAAAA,EAAAA,WAAU,IACxDoG,GAAoBJ,GAAgB,qBAEtC,eAAEuL,IAAmBlZ,EAAAA,EAAAA,aAAa0gB,KAClC,kCAAEwjG,IACPlkH,EAAAA,EAAAA,aAAamkH,GAAAA,QACR,kBAAEtqG,EAAiB,oBAAE1H,IAC1BnS,EAAAA,EAAAA,aAAaoS,GAAAA,OAERgyG,EAAgBpnH,EAAKjT,OAAS6rB,GAAcvF,KAC5Cg0G,EAAmBrnH,EAAKjT,OAAS6rB,GAAcH,MAC/CkI,EAAiB3gB,EAAKjT,OAASurB,IAE/B,QAAErV,GAAYiV,GAAS,CAC5BgC,SAAUla,EAAKjT,KACfktB,OAAQmtG,EAAgBpnH,EAAKqF,GAAKrF,EAAKtvB,KACvC47D,aACAyD,aAAcpvB,EAAiB3gB,EAAKjT,KAAO6rB,GAAcH,QAGpD6uG,GAAYtnH,EAAKiU,QAAQv/B,OACzB6yI,EAAoB7jH,IAAY,8BAA+B,CACpE,iBAAkB4jH,IAEbE,EAAoB9jH,IAAY,8BAA+B,CACpE,cAAe2jH,IA2CVI,EACLL,GAAmBzmG,GAAkB3gB,EAAKkuC,SACrCw5E,EAAe/mG,GAAkB3gB,EAAK6Z,aAAayB,eACnDqsG,EAAmB,GAiBzB,IAAI/oE,EAfC6oE,EAEJE,EAAiBt3I,MAChB0L,EAAAA,EAAAA,IAAI,0DAEMikB,EAAKmN,aAChBw6G,EAAiBt3I,KAAM2vB,EAAKmN,aAGxBk6G,GACJM,EAAiBt3I,MAChB0L,EAAAA,EAAAA,IAAI,8CAML6iE,GADMwoE,GAAiBL,GAAmBz6E,GAC/By6E,GAAmBz6E,GAG7BtsC,EAAK6uC,aAAe71B,GAAmB62B,KAAOx4D,QAASonB,EAGzD,MAAMsoC,EAAoB2gF,GAAe3rI,EAAAA,EAAAA,IAAI,UAAYA,EAAAA,EAAAA,IAAI,UACvD6rI,EAAgBF,GACnB3rI,EAAAA,EAAAA,IAAI,yDACJ85B,EAAAA,EAAAA;;CAEA95B,EAAAA,EAAAA,IAAI,yCACJikB,EAAK4F,OAAS5F,EAAKtvB,MAGhBq+E,EAAqBh+C,OAExBtS,EADA,CAAE,CAAE+pB,IAAK,+BAGZ,OACCxvC,EAAAA,EAAAA,eAAA,MAAIoqB,UAAYmkH,IACfvuI,EAAAA,EAAAA,eAAA,UACCoqB,UAAYokH,EAGZniH,GAAM,sBAAsBrF,EAAKtvB,OACjCqc,KAAK,YACAhT,EACLkpB,QACCjD,EAAKjT,OAAS6rB,GAAcH,MAAQxV,OAAUxE,EAE/C,gBACCuB,EAAKjT,OAAS6rB,GAAcH,MAAQ,QAAU,OAE/C,aAAazY,EAAK4F,MAClB,mBACC+hH,EAAiBjzI,OACdizI,EACC93I,KACA,CAAE8H,EAAGpH,IACH,GAAGm2I,KAAmBn2I,MAExBkF,KAAM,UACPgpB,GAGF6oH,GAAW3mG,IAAkB5kC,EAAAA,EAAAA,IAAI,uBACjCurI,IAAa3mG,IAAkB5kC,EAAAA,EAAAA,IAAI,kBACjCurI,IACHtuI,EAAAA,EAAAA,eAAC61E,GAAAA,aAAY,CACZ56C,OAASjU,EAAKiU,OACd86C,iBAAmBA,EACnBL,cAAgB1uD,EAAK0uD,iBAItBi5D,EAAiB93I,KAAK,CAAEg4I,EAAiBt3I,KAC1CyI,EAAAA,EAAAA,eAAA,OACChJ,IAAMO,EACNo3B,QAAM,EACNtC,GAAM,GAAGqhH,KAAmBn2I,KAE1Bs3I,MAGJ7uI,EAAAA,EAAAA,eAACqzB,EAAAA,qBAAM,CACNjJ,UAAU,6BACVkJ,QAAQ,kBAERtzB,EAAAA,EAAAA,eAACqzB,EAAAA,qBAAM,CACN6X,UAAU,SACV5X,QAAQ,OACR2X,QAAU,EACV7gB,UAAU,qCAERw7C,IAAcyoE,IACfruI,EAAAA,EAAAA,eAACuiH,EAAAA,QAAO,CACPzxF,UAAU,MACVvkB,MAAOxJ,EAAAA,EAAAA,IACN,+DAGD/C,EAAAA,EAAAA,eAACyzB,GAAI,CACJrJ,UAAU,mCACVb,KAAOq8C,MAIV5lE,EAAAA,EAAAA,eAACojD,EAAAA,KAAI,CAAC35B,GAAG,OAAOsK,IAAM,EAAIT,QAAQ,QAC/BtM,EAAKjT,OAAS6rB,GAAcH,MAC7BzY,EAAK4F,OAEL5sB,EAAAA,EAAAA,eAACsrC,EAAAA,sBAAO,CAAC3S,MAAQ,IAChB34B,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNuE,QAAQ,OACRhE,QAAUA,EAGVU,SAAS,MAEP3D,EAAK4F,OAAS5F,EAAKtvB,OAItBsvB,EAAKjT,OAAS6rB,GAAcH,QAC7Bz/B,EAAAA,EAAAA,eAACuiH,EAAAA,QAAO,CACPzxF,UAAU,MACVvkB,MAAOxJ,EAAAA,EAAAA,IAAI,oCAEX/C,EAAAA,EAAAA,eAACyzB,GAAI,CACJrJ,UAAU,wCACVb,KAAOulH,GACPvnI,KAAO,SAMZvH,EAAAA,EAAAA,eAAC2wB,EAAAA,aAAY,CACZpH,KAAOsH,GACP9C,OAAQhrB,EAAAA,EAAAA,IAAI,WACZqnB,UAAU,+BACVwG,aAAe,CAAEE,UAAW,cAC5B7E,YAAc,CACb7B,UAAW,6BACXwjH,aAAa/wG,EAAAA,EAAAA;CAEZ95B,EAAAA,EAAAA,IAAI,8BACJikB,EAAK4F,UAIL,EAAIsB,cACLluB,EAAAA,EAAAA,eAACutD,EAAAA,UAAS,KACPkhF,IAAqBC,IACtB1uI,EAAAA,EAAAA,eAACwsD,GAAc,CACdxlC,KAAOA,EACPkH,QAAUA,KAGZluB,EAAAA,EAAAA,eAAC6tI,GAAiB,CACjBv6E,WAAaA,EACbtsC,KAAOA,EACPkH,QAAUA,EACVH,OAAQhrB,EAAAA,EAAAA,IAAI,eAEXikB,EAAKjT,OAAS6rB,GAAcvF,OAC7Br6B,EAAAA,EAAAA,eAAC+rB,EAAAA,SAAQ,CAAC9B,QAAUA,IAzLN8kH,MACpB,MAAMnM,EAAO,CACZoM,OAAQhoH,EAAKjT,KACb6Y,MAAO5F,EAAK4F,OAAS5F,EAAKtvB,KAC1B83B,QAASxI,EAAKwvC,YAAYhnC,QAAQ9Z,IAClCmgD,WAAY7uC,EAAKwvC,YAAYI,wBAG9B,OAAO8rE,EAAAA,GAAAA,cACL,GAAGh+E,GAAW19B,EAAK4F,OAAS5F,EAAKtvB,aAClCqiC,KAAKE,UAAW2oG,EAAM,KAAM,GAC5B,mBACA,EA6K+BmM,KACvBhsI,EAAAA,EAAAA,IAAI,mBAIN0rI,IACDzuI,EAAAA,EAAAA,eAAC+rB,EAAAA,SAAQ,CACR4hC,eAAkB+gF,EAClBzkH,QAAUA,IACTgkH,GAAuB,IAGtBS,GACC3rI,EAAAA,EAAAA,IAAI,yBACJA,EAAAA,EAAAA,IAAI,eAQXirI,IACDhuI,EAAAA,EAAAA,eAAC4tD,EAAAA,4BAAa,CACbG,kBAAoBA,EACpBF,UApNeohF,IAClBtnG,EAAiBzE,EAAgBlc,GAvBZviB,WACrB,UACOypI,EAAmClnH,EAAKqF,IAC9C8P,GACCU,EAAAA,EAAAA;;CAEC95B,EAAAA,EAAAA,IAAI,iBACJikB,EAAK4F,OAEN,CAAE7Y,KAAM,WAAYsY,GAAI,8BAE1B,CAAE,MAAQqX,GACT,MAAMC,EACLD,EAAME,SAA0B,kBAAfF,EAAMj9B,KACpBi9B,EAAME,SACN7gC,EAAAA,EAAAA,IAAI,iDACR8gC,EAAmBF,EAAc,CAChC5vB,KAAM,WACNsY,GAAI,4BAEN,GAG0C6iH,GAoNvCphF,SAAWA,IAAMmgF,GAAuB,IAEtCW,GAKP,ICrUe,SAASr9F,IAAM,WAAE+hB,EAAU,MAAEhC,KAAUvwD,IACrD,OAAOuwD,GAAO51D,QAKbsE,EAAAA,EAAAA,eAAA,MAAIoqB,UAAU,8BAAgCrpB,GAC3CuwD,EAAMz6D,KAAOmwB,IACdhnB,EAAAA,EAAAA,eAACmvI,GAAQ,CACRn4I,IAAMgwB,EAAKtvB,KACXsvB,KAAOA,EACPssC,WAAaA,OATT,IAcT,CChBe,SAAS87E,KACvB,OACCpvI,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,mCACZrnB,EAAAA,EAAAA,IAAI,sBAGT,CCwBA,MAAQ29B,YAAW,GAAEtC,WAAUA,IAAK5G,GAAQ6G,GAAAA,aAEtCgxG,GAAe,CACpBlwI,KAAKgjB,EAAAA,EAAAA,IAAI,MAAO,kCAChB,CAAE6d,GAAmB62B,OAAQ10C,EAAAA,EAAAA,IAC5B,SACA,+CAED,CAAE6d,GAAmBi2B,WAAY9zC,EAAAA,EAAAA,IAChC,aACA,6DAIImtH,GAAoB,CACzBnwI,IAAK,GACL,CAAE6gC,GAAmB62B,OAAQ9zD,EAAAA,EAAAA,IAC5B,mDAED,CAAEi9B,GAAmBi2B,WAAYlzD,EAAAA,EAAAA,IAChC,oEAIIwsI,GAAY,GAEH,SAASC,IAAc,WAAEl8E,EAAU,KAAEv/C,IACnD,MAAM7S,EAAWw/B,KACXnC,EAAUH,KACVwc,GAAmBppB,EAAAA,GAAAA,kBAAkB,SAAU,MAC7C2iD,EAAagB,EAAgBs6D,IACpCztF,EAAAA,GAAAA,mBAAmB,IACdozB,GAAsBC,EAAAA,EAAAA,kBAAkBo6D,IAEtCC,EAAYC,IAAkBh+G,EAAAA,EAAAA,UAAU,QACxCo3F,EAAaQ,IAAmB53F,EAAAA,EAAAA,UAAU,GAE5Ci+G,GAAuBv6D,EAAAA,EAAAA,kBAAkBq6D,GAEzCG,EACL97H,IAAS6rB,GAAcH,OAAwB,kBAAf6zB,GAE3B,SAAE8B,EAAQ,YAAE7c,GAAgBue,GACjC/iD,EACA87H,EAA+B,GAAKv8E,EACpC,CACCtU,OAAQo2B,EACRvf,WAC0B,QAAzB+5E,OACGnqH,EACAmqH,IAcAvjH,GAAKm/C,EAAAA,EAAAA,SACLiiE,EAAW,GAAGphH,UACdqhH,EAAiB,GAAGrhH,gBAEpB4rC,EAAc7C,EAAS15D,OACvBkxB,EAAQyiH,GAAcK,GACtBv7G,EAAcm7G,GAAmBI,GAEjCxmB,EAAa9zD,EAAS15D,OACtBo0I,EAAY/mB,EAAc,EAC1BC,EAAWnuH,KAAK2+C,KAAM4b,EAAS15D,OAAS6zI,IAExC7pF,GAAO5zB,EAAAA,EAAAA,UAAS,IACdsjC,EAASluD,MACf4oI,EAAYP,GACZO,EAAYP,GAAYA,KAEvB,CAAEO,EAAW16E,IAEV26E,GAAYzkE,EAAAA,GAAAA,cAAc5lB,EAAM,CAAE9iC,KAAM,KAS9C,OACC5iB,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAACgrC,EAAAA,qBAAM,CAAC5gB,UAAU,6BAA6B6gB,QAAU,IACxDjrC,EAAAA,EAAAA,eAACwtI,GAAc,CACdl6E,WAAaA,EACbv/C,KAAOA,EACP05H,QAAUA,EACVC,cAAgBA,KAEjB1tI,EAAAA,EAAAA,eAACojD,EAAAA,KAAI,CAAClY,UAAU,UAAU/6B,MAAI,GAC3ByqC,IACD56C,EAAAA,EAAAA,eAACkqC,GAAa,CACb3gB,MAAOmK,EAAAA,EAAAA,SAAUE,GAAeD,GAChC5F,OAAQhrB,EAAAA,EAAAA,IAAI,QACZknB,QAAUA,KAIqB,cAA7B/oB,EAAS4C,OAAOwmC,SAEhB/L,EAAQptB,OAERotB,EAAQlnC,KAAM,CAAEw7B,KAAM,aACvB,KAIH7yB,EAAAA,EAAAA,eAACyrC,EAAAA,UAAS,CAACrhB,UAAU,qCACpBpqB,EAAAA,EAAAA,eAAC8iD,EAAAA,cAAa,CACb14B,UAAU,6BACVjmB,SAAa/M,GApEUA,KAC5BmyH,EAAgB,GAChBp0C,EAAgB/9E,EAAO,EAmEjB44I,CAAoB54I,GAErB4rD,aAAcjgD,EAAAA,EAAAA,IAAI,mBAClBgrB,OAAQhrB,EAAAA,EAAAA,IAAI,mBACZ3L,MAAQ+8E,EACR5/C,yBAAuB,KAGvBxgB,IAAS6rB,GAAcH,QACxBz/B,EAAAA,EAAAA,eAACkjH,EAAAA,iCAAkB,CAClB94F,UAAU,yCACV+4F,qBAAmB,EACnBp1F,OAAQhrB,EAAAA,EAAAA,IAAI,yBACZ3L,MAAQs4I,EACRpsF,SAAO,EACPn/C,SAAa/M,GA/EQA,KAC1BmyH,EAAgB,GAChBomB,EAAev4I,EAAO,EA6EO64I,CAAkB74I,GAC1Cm9B,yBAAuB,GAErB17B,OAAOioD,QAASuuF,IAAex4I,KAChC,EAAIG,EAAK+2B,MACR/tB,EAAAA,EAAAA,eAACojH,EAAAA,uCAAwB,CACxBh5F,UAAU,gDACVpzB,IAAMA,EACNI,MAAQJ,EACR+2B,MAAQA,UAQf/tB,EAAAA,EAAAA,eAACgrC,EAAAA,qBAAM,CACN5gB,UAAU,8BACVkJ,QAAQ,aACR2X,QAAU,GAEO,QAAfykG,IACD1vI,EAAAA,EAAAA,eAACgrC,EAAAA,qBAAM,CAAC5gB,UAAU,uCACjBpqB,EAAAA,EAAAA,eAACsrC,EAAAA,sBAAO,CAAC7hB,GAAG,KAAKkP,MAAQ,EAAItM,GAAKohH,GAC/B7gH,GAEDuH,GACDn0B,EAAAA,EAAAA,eAACi0B,EAAAA,mBAAI,CAAChG,QAAQ,QAAQxE,GAAG,IAAI4C,GAAKqhH,GAC/Bv5G,GAEA,MAGJ8jC,IACDj4D,EAAAA,EAAAA,eAACuxC,GAAI,CACJ+hB,WAAaA,EACbhC,MAAQy+E,EACR,kBAAkBtC,EAClB,mBAAmBC,KAGjBn1F,IAAiB0f,IAAej4D,EAAAA,EAAAA,eAACovI,GAAU,OAE9CpmB,EAAW,IACZhpH,EAAAA,EAAAA,eAAC8oH,GAAU,CACV1+F,UAAU,iCACV2+F,YAAcA,EACdC,SAAWA,EACXC,WAtGiBzxE,IACpB,MAAM04F,EAAkBn4I,SAAS+3B,cAAe,uBAChDogH,GAAiBC,SAAU,EAAG,GAE9B5mB,EAAgB/xE,EAAM,EAmGnB0xE,WAAaA,IAKlB,CCtNe,SAASknB,KAAqB,IAAAC,EAC5C,MAAM91F,GAAiBzwB,EAAAA,EAAAA,YAAalD,IACnC,MAAM,YAAE0hB,GAAgB9Q,GAAQ5Q,EAAQ8jB,KACxC,OAAOpC,GAAa,GAClB,IAEGgoG,EAC+C,QAD1BD,EAC1B91F,EAAeib,6CAAqC,IAAA66E,EAAAA,EACpD91F,EAAekb,4BAEVgC,GAAoB3tC,EAAAA,EAAAA,YACvBlD,GAAYA,EAAQ4W,GAAAA,OAAYk4B,oBAClC,IAGK6B,GAAgBzlC,EAAAA,EAAAA,UACrB,IACC,IACMw+G,GAAyB,MACzB74E,GAAqB,IACzBr5D,OAAQgzD,KACX,CAAEk/E,EAAuB74E,IAc1B,OAXiB3lC,EAAAA,EAAAA,UAAS,KACzB,MAAM,sCAAE0jC,KAA0C+6E,GACjDh2F,EAED,MAAO,IACHg2F,EACH96E,4BAA6B8B,EAC7BjhB,yBAAyB,EACzB,GACC,CAAEiE,EAAgBgd,GAGtB,CClCA,MAAQ/iB,gCAA+BA,IAAKhd,GAAQI,GAAAA,aAErC,SAAS44G,KACvB,MAAM,aAAEz5E,EAAY,WAAEzD,IAAe30B,EAAAA,GAAAA,cAAchmC,OAAOuI,SAASg9B,MAC7DnqB,EAAOgjD,GAAgBn3B,GAAcH,MACrC0V,EAAWme,GAAczzB,GACzB+B,EAAWwuG,KAKjB,OACCpwI,EAAAA,EAAAA,eAACw0C,GAA+B,CAAC5S,SAAWA,IAC3C5hC,EAAAA,EAAAA,eAACgtI,GAAI,CACJ5iH,UAAU,qBACVwC,OAAQ7pB,EAAAA,EAAAA,IAAI,oBACZkqI,iBAAe,IAEfjtI,EAAAA,EAAAA,eAACwvI,GACA,CACAx4I,IAAO,GAAG+c,KAAUohC,IACpBphC,KAAOA,EACPu/C,WAAane,KAKlB,CChCO,MAAMs7F,GAAmBA,EAAI16H,OAAMmsB,OAAM2oC,SAAQ6lE,iBACvD,MAAMC,EAAa,IAAK56H,GAClB66H,EAAU1uG,EAAK4lB,KAAK0e,MAC1B,GAAKkqE,EAAW9kH,SAAUglH,GAAY,CACrC,MAAMC,EAAchmE,EAAO3xB,MAAQstB,GAC3BA,EAAMn6C,KAAOukH,IAErBD,EAAW7oF,MAAM,CAAEthD,EAAG3D,KAAO,IAAAiuI,EAAAC,EAC5B,MAAMC,EAA4C,QAAtCF,EAAGD,EAAYtnD,SAAU,CAAEviE,KAAMxgB,WAAK,IAAAsqI,EAAAA,EAAI,GAChDG,EAA4C,QAAtCF,EAAGF,EAAYtnD,SAAU,CAAEviE,KAAMnkB,WAAK,IAAAkuI,EAAAA,EAAI,GACtD,MAA+B,QAAxB7uG,EAAK4lB,KAAKpW,UACds/F,EAAO9nF,cAAe+nF,GACtBA,EAAO/nF,cAAe8nF,EAAQ,GAEnC,CACA,OAAOL,CAAU,EAaX,SAASO,IAAsB,KAAEn7H,EAAI,KAAEmsB,IAC7C,MAAMj1B,GAAUi1B,EAAKsV,KAAO,GAAMtV,EAAKqkC,QACjC2iD,EAAanzG,GAAMra,QAAU,EAEnC,OADAqa,EAAOA,GAAM7O,MAAO+F,EAAOA,EAAQi1B,EAAKqkC,SACjC,CACNxwD,OACAo7H,eAAgB,CACfjoB,aACAkoB,WAAYv2I,KAAK2+C,KAAM0vE,EAAahnF,EAAKqkC,UAG5C,CCtCA,MAAMuiD,IAAa5yE,EAAAA,EAAAA,OAAM,UAAqB,KAC7ChU,EAAI,aACJonC,EACA6nE,gBAAgB,WAAEjoB,EAAa,EAAC,WAAEkoB,KAElC,OAAOloB,GAAgBkoB,IAInBloB,GACY,IAAfkoB,IACCpxI,EAAAA,EAAAA,eAACqzB,EAAAA,qBAAM,CACN+1F,UAAW,EACXn+E,QAAU,EACV3X,QAAQ,MACRlJ,UAAU,yBAEVpqB,EAAAA,EAAAA,eAACqzB,EAAAA,qBAAM,CAACC,QAAQ,aAAa81F,UAAW,EAAQn+E,QAAU,IACvDgP,EAAAA,EAAAA,2BACDpd,EAAAA,EAAAA;;CAEC1a,EAAAA,EAAAA,IACC,qCACA,UAED+f,EAAKsV,KACL45F,GAED,CACCC,mBACCrxI,EAAAA,EAAAA,eAACmoF,EAAAA,cAAa,CACb,cAAaplF,EAAAA,EAAAA,IAAI,gBACjB3L,MAAQ8qC,EAAKsV,KACbl8C,QAAUC,MAAM6S,KACf7S,MAAO61I,IACNv6I,KAAK,CAAE8H,EAAG1C,KACX,MAAMu7C,EAAOv7C,EAAI,EACjB,MAAO,CAAE7E,MAAOogD,EAAMzpB,MAAOypB,EAAM,IAEpCrzC,SAAagrD,IACZma,EAAc,IACVpnC,EACHsV,MAAO2X,GACL,EAEJ5nD,KAAO,UACPgtB,yBAAuB,QAM5Bv0B,EAAAA,EAAAA,eAACqzB,EAAAA,qBAAM,CAAC+1F,UAAW,EAAQn+E,QAAU,IACpCjrC,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNO,QAAUA,IACTq/C,EAAc,IAAKpnC,EAAMsV,KAAMtV,EAAKsV,KAAO,IAE5Cva,SAAyB,IAAdiF,EAAKsV,KAChB85F,2BAAyB,EACzBvjH,OAAQhrB,EAAAA,EAAAA,IAAI,iBACZwmB,KAAOoK,GACP3F,aAAW,EACXzmB,KAAK,UACLwpB,gBAAgB,SAEjB/wB,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNO,QAAUA,IACTq/C,EAAc,IAAKpnC,EAAMsV,KAAMtV,EAAKsV,KAAO,IAE5Cva,SAAWiF,EAAKsV,MAAQ45F,EACxBE,2BAAyB,EACzBvjH,OAAQhrB,EAAAA,EAAAA,IAAI,aACZwmB,KAAOqK,GACP5F,aAAW,EACXzmB,KAAK,UACLwpB,gBAAgB,UArEb,IA2ET,IAEA,UC/EA,MACC81C,eAAgBl2C,GAChBm2C,oBAAqBC,GACrBC,mBAAoBC,GACpB2B,wBAAyBC,GACzB0oE,2BAA4BC,GAC5BtqE,wBAAyBC,IACtB3vC,GAAQ6b,EAAAA,aAEZ,SAASo+F,IAAc,KAAEvvG,EAAI,aAAEonC,EAAY,iBAAEooE,IAC5C,IAAIC,EAAkBhnE,GAMtB,GALK+mE,IACJC,EAAkBA,EAAgBvzI,QAAUwzI,GAC3CF,EAAiB9lH,SAAUgmH,EAAM79H,SAGH,IAA3B49H,EAAgBj2I,OACpB,OAAO,KAER,MAAMgxE,EAAailE,EAAgBz4F,MAAQ59B,GAAO4mB,EAAKnuB,OAASuH,EAAEvH,OAClE,OACC/T,EAAAA,EAAAA,eAAC2wB,GAAY,CACZ23C,SACCtoE,EAAAA,EAAAA,eAACinE,GAAgB,CAChBriD,QACC5kB,EAAAA,EAAAA,eAAA,QAAM,cAAY,QAAS0sE,EAAW3+C,SAGvC/tB,EAAAA,EAAAA,eAACmnE,GAAqB,MACnBpkE,EAAAA,EAAAA,IAAI,aAKP4uI,EAAgB96I,KAAOg7I,IAEvB7xI,EAAAA,EAAAA,eAAC6oE,GAAqB,CACrB7xE,IAAM66I,EAAc99H,KACpB3c,MAAQy6I,EAAc99H,KACtBrc,KAAK,8BACL88B,QAAUq9G,EAAc99H,OAASmuB,EAAKnuB,KACtCuzD,aAAc,EACdnjE,SAAatM,IACZyxE,EAAc,IACVpnC,EACHnuB,KAAMlc,EAAEiG,OAAO1G,OACb,IAGJ4I,EAAAA,EAAAA,eAACmnE,GAAqB,KACnB0qE,EAAc9jH,UAOvB,CAEA,MAAM+jH,GAAmB,CAAE,GAAI,GAAI,GAAI,KACvC,SAASC,IAAc,KAAE7vG,EAAI,aAAEonC,IAC9B,OACCtpE,EAAAA,EAAAA,eAAC2wB,GAAY,CACZ23C,SACCtoE,EAAAA,EAAAA,eAACinE,GAAgB,CAChBriD,QAAS5kB,EAAAA,EAAAA,eAAA,QAAM,cAAY,QAASkiC,EAAKqkC,WAEzCvmE,EAAAA,EAAAA,eAACmnE,GAAqB,MAEnBpkE,EAAAA,EAAAA,IAAI,oBAKP+uI,GAAiBj7I,KAAO0Q,IAExBvH,EAAAA,EAAAA,eAAC6oE,GAAqB,CACrB7xE,IAAMuQ,EACNnQ,MAAQmQ,EACR7P,KAAK,yBACL88B,QAAU0N,EAAKqkC,UAAYh/D,EAC3BpD,SAAWA,KACVmlE,EAAc,IACVpnC,EAGHqkC,QAASh/D,EACTiwC,KAAM,GACJ,IAGJx3C,EAAAA,EAAAA,eAACmnE,GAAqB,KAAG5/D,MAM/B,CAEA,SAASyqI,IAAsB,KAAE9vG,EAAI,aAAEonC,EAAY,OAAEuB,IACpD,MAAMonE,EAAgBpnE,EAAOzsE,QAC1BooE,IACsB,IAAvBA,EAAMiD,cAA0BjD,EAAMn6C,KAAO6V,EAAKia,OAAOgqB,aAE3D,OAAO8rE,GAAev2I,QAIrBsE,EAAAA,EAAAA,eAAC2wB,GAAY,CACZ23C,SACCtoE,EAAAA,EAAAA,eAACinE,GAAgB,MAChBjnE,EAAAA,EAAAA,eAACmnE,GAAqB,MACnBpkE,EAAAA,EAAAA,IAAI,aAKPkvI,GAAep7I,KAAO2vE,IAEtBxmE,EAAAA,EAAAA,eAACwxI,GAAwB,CACxBx6I,IAAMwvE,EAAMn6C,GACZj1B,MAAQovE,EAAMn6C,GACdmI,SAAY0N,EAAKukC,cAAc76C,SAAU46C,EAAMn6C,IAC/CloB,SAAWA,KACVmlE,EAAc,IACVpnC,EACHukC,aAAcvkC,EAAKukC,cAAc76C,SAChC46C,EAAMn6C,IAEJ6V,EAAKukC,aAAaroE,QAChBiuB,GAAQA,IAAOm6C,EAAMn6C,KAEvB,IACK6V,EAAKukC,cAAgB,GAC1BD,EAAMn6C,KAEP,IAGJrsB,EAAAA,EAAAA,eAACmnE,GAAqB,KACnBX,EAAM3wD,YAnCN,IA0CT,CAEA,SAASq8H,IAAU,OAAErnE,EAAM,KAAE3oC,EAAI,aAAEonC,IAClC,MAAM6oE,EAAiBtnE,EAAOzsE,QAC3BooE,IAAmC,IAAxBA,EAAMmD,gBAEpB,IAAOwoE,GAAgBz2I,OACtB,OAAO,KAER,MAAM02I,EAAqBvnE,EAAO3xB,MAC/BstB,GAAWA,EAAMn6C,KAAO6V,EAAK4lB,MAAM0e,QAEtC,OACCxmE,EAAAA,EAAAA,eAAC2wB,GAAY,CACZ23C,SACCtoE,EAAAA,EAAAA,eAACinE,GAAgB,CAChBriD,QACC5kB,EAAAA,EAAAA,eAAA,QAAM,cAAY,QACfoyI,GAAoBv8H,UAIxB7V,EAAAA,EAAAA,eAACmnE,GAAqB,MACnBpkE,EAAAA,EAAAA,IAAI,cAKPovI,GAAgBt7I,KAAO2vE,IACxB,MAAM6rE,EAAkBnwG,EAAK4lB,MAAMpW,UACnC,OACC1xC,EAAAA,EAAAA,eAAC2wB,GAAY,CACZ35B,IAAMwvE,EAAMn6C,GACZi8C,SACCtoE,EAAAA,EAAAA,eAACinE,GAAgB,MAChBjnE,EAAAA,EAAAA,eAACmnE,GAAqB,KACnBX,EAAM3wD,SAIXnd,MAAQ,CACPi6C,SAAU,UAGT95C,OAAOioD,QAAS0pB,IAAqB3zE,KACtC,EAAI66C,EAAW+b,MACd,MAAMp5B,OACkB5O,IAAvB2sH,GACAC,IAAoB3gG,GACpB80B,EAAMn6C,KAAO+lH,EAAmB/lH,GAE3Bj1B,EAAS,GAAGovE,EAAMn6C,MAAQqlB,IAEhC,OACC1xC,EAAAA,EAAAA,eAAC6oE,GAAqB,CACrB7xE,IAAMI,EAMNM,KAAK,uBACLN,MAAQA,EACRo9B,QAAUH,EACVlwB,SAAWA,KACVmlE,EAAc,IACVpnC,EACH4lB,KAAM,CACL0e,MAAOA,EAAMn6C,GACbqlB,cAEC,IAGJ1xC,EAAAA,EAAAA,eAACmnE,GAAqB,KACnB1Z,EAAK1/B,OAEe,IAIb,IAKpB,CAEA,MAAMukH,IAAcp8F,EAAAA,EAAAA,OAAM,UAAsB,OAC/C20B,EAAM,KACN3oC,EAAI,aACJonC,EAAY,iBACZooE,IAEA,OACC1xI,EAAAA,EAAAA,eAAC2wB,GAAY,CACZ23C,SACCtoE,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNniB,KAAK,UACLgiB,KACCohD,GAAazxB,MAAQ59B,GAAOA,EAAEvH,OAASmuB,EAAKnuB,QACzCwV,MACHohD,GAAazxB,MAAQ59B,GAAOA,EAAEvH,OAASssB,KACrC9W,KAEHwE,OAAQhrB,EAAAA,EAAAA,IAAI,oBAId/C,EAAAA,EAAAA,eAAC+mE,GAAiB,KACfpuE,QAAQqtE,2BACThmE,EAAAA,EAAAA,eAACyxI,GAAY,CACZvvG,KAAOA,EACPonC,aAAeA,EACfooE,iBAAmBA,KAGrB1xI,EAAAA,EAAAA,eAACkyI,GAAQ,CACRrnE,OAASA,EACT3oC,KAAOA,EACPonC,aAAeA,KAEhBtpE,EAAAA,EAAAA,eAACgyI,GAAoB,CACpBnnE,OAASA,EACT3oC,KAAOA,EACPonC,aAAeA,KAEhBtpE,EAAAA,EAAAA,eAAC+xI,GAAY,CAAC7vG,KAAOA,EAAOonC,aAAeA,KAI/C,IAEA,UCrRA,MACCzC,eAAgBl2C,GAChBm2C,oBAAqBC,GACrBC,mBAAoBC,GACpB6B,wBAAyBC,GACzB7B,wBAAyBC,GACzB6B,2BAA4BC,IACzBzxC,GAAQ6b,EAAAA,aAENk/F,GAAaA,EAAIzoE,gBAAeD,eAAczrE,iBAC5BqnB,IAAlBqkD,EACG1rE,EAAO1G,UAII+tB,IAAlBqkD,GACAD,GAAclD,WAAanmC,IAEpB3D,EAAAA,EAAAA;CAEN95B,EAAAA,EAAAA,IAAI,gBACJ3E,EAAO1G,KACPoyE,EAAc/7C,YAKGtI,IAAlBqkD,GACAD,GAAclD,WAAalmC,IAEpB5D,EAAAA,EAAAA;CAEN95B,EAAAA,EAAAA,IAAI,oBACJ3E,EAAO1G,KACPoyE,EAAc/7C,QAIT8O,EAAAA,EAAAA;CAEN95B,EAAAA,EAAAA,IAAI,2BACJ3E,EAAO1G,MAIT,SAAS6yE,IAAgB,SAAEzlE,IAC1B,OAAOwmB,EAAAA,SAASC,QAASzmB,GACvB1G,OAAQ20D,SACRl8D,KAAK,CAAE80B,EAAO1vB,KACd+D,EAAAA,EAAAA,eAACyqB,EAAAA,SAAQ,CAACzzB,IAAMiF,GACbA,EAAI,IAAK+D,EAAAA,EAAAA,eAAC+oE,GAAqB,MAC/Bp9C,IAGN,CAEe,SAAS6mH,IAAe,OAAEp0I,EAAM,KAAE8jC,EAAI,aAAEonC,IACtD,MAAMO,EAAe3nC,EAAKokC,QAAQptB,MAAQ5yC,GAAOA,EAAEkgE,QAAUpoE,EAAOooE,QAC9DwD,EAAe9nC,EAAKokC,QAAQloE,QAC/BkI,GAAOA,EAAEkgE,QAAUpoE,EAAOooE,QAEvBsD,EAAgB1rE,EAAOisE,SAASnxB,MACnCj7C,GAAaA,EAAQ7G,QAAUyyE,GAAczyE,QAE1C2yE,EAAiBF,GAAclD,UAAYvoE,EAAO6rE,UAAW,GAEnE,OACCjqE,EAAAA,EAAAA,eAAC2wB,GAAY,CACZ35B,IAAMoH,EAAOooE,MACb8B,SACCtoE,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CAACuE,QAAQ,WAAW1mB,KAAK,UAAUwmB,MAAQ3vB,EAAO1G,OACxDsI,EAAAA,EAAAA,eAACuyI,GAAU,CACVzoE,cAAgBA,EAChBD,aAAeA,EACfzrE,OAASA,KAEV4B,EAAAA,EAAAA,eAACyzB,EAAAA,KAAI,CAAClK,KAAO4zC,GAAczkE,MAAQ,CAAE2vE,WAAY,QAInDroE,EAAAA,EAAAA,eAACuqE,GAAc,MACdvqE,EAAAA,EAAAA,eAAC+mE,GAAiB,KACf3oE,EAAOisE,SAASxzE,KAAOoH,IACxB,MAAM+uB,EAAW88C,GAAe1yE,QAAU6G,EAAQ7G,MAClD,OACC4I,EAAAA,EAAAA,eAAC2oE,GAA2B,CAC3B3xE,IAAMiH,EAAQ7G,MACdM,KAAQ,kBAAkB0G,EAAOooE,QACjCpvE,MAAQ6G,EAAQ7G,MAChBo9B,QAAUxH,EACV/C,QAAUA,IACTq/C,EAAc,IACVpnC,EACHsV,KAAM,EACN8uB,QAAS,IACL0D,EACH,CACCxD,MAAOpoE,EAAOooE,MACdG,SAAUoD,EACV3yE,MAAO41B,OACJvH,EACAxnB,EAAQ7G,YAMf4I,EAAAA,EAAAA,eAACmnE,GAAqB,KACnBlpE,EAAQ8vB,SAEN9vB,EAAQk2B,cACZn0B,EAAAA,EAAAA,eAACipE,GAAwB,KACtBhrE,EAAQk2B,aAGiB,KAI/B/1B,EAAO6rE,UAAUvuE,OAAS,IAC3BsE,EAAAA,EAAAA,eAAC2wB,GAAY,CACZ23C,SACCtoE,EAAAA,EAAAA,eAACinE,GAAgB,CAChBriD,QACC5kB,EAAAA,EAAAA,eAAA,QAAM,cAAY,QACfmqE,GAAWJ,IAAkBh8C,SAIjC/tB,EAAAA,EAAAA,eAACmnE,GAAqB,MACnBpkE,EAAAA,EAAAA,IAAI,iBAKPlK,OAAOioD,QAASqpB,IAAYtzE,KAC7B,EAAI8vE,GAAY54C,QAAO/2B,WACtBgJ,EAAAA,EAAAA,eAAC2oE,GAA2B,CAC3B3xE,IAAMA,EACNU,KAAQ,kBAAkB0G,EAAOooE,mBACjCpvE,MAAQuvE,EACRnyC,QAAUu1C,IAAmBpD,EAC7BxiE,SAAatM,IACZyxE,EAAc,IACVpnC,EACHsV,KAAM,EACN8uB,QAAS,IACL0D,EACH,CACCxD,MAAOpoE,EAAOooE,MACdG,SAAU9uE,EAAEiG,OAAO1G,MACnBA,MAAOyyE,GAAczyE,SAGrB,IAGJ4I,EAAAA,EAAAA,eAACmnE,GAAqB,KACnBp5C,QAUZ,CCzKA,MACC84C,eAAgBl2C,GAChBm2C,oBAAqBC,GACrBC,mBAAoBC,GACpB2B,wBAAyBC,GACzBC,wBAAyBC,GACzB7B,wBAAyBC,GACzB6B,2BAA4BC,IACzBzxC,GAAQ6b,EAAAA,aAEZ,SAASk3B,IAAgB,SAAEzlE,IAC1B,OAAOwmB,EAAAA,SAASC,QAASzmB,GACvB1G,OAAQ20D,SACRl8D,KAAK,CAAE80B,EAAO1vB,KACd+D,EAAAA,EAAAA,eAACyqB,EAAAA,SAAQ,CAACzzB,IAAMiF,GACbA,EAAI,IAAK+D,EAAAA,EAAAA,eAAC+oE,GAAqB,MAC/Bp9C,IAGN,CAEe,SAAS8mH,IAAW,QAAEnsE,EAAO,KAAEpkC,EAAI,aAAEonC,IACnD,GAAwB,IAAnBhD,EAAQ5qE,OACZ,OAAO,KAGR,MAAMg3I,EAAcxwG,EAAKokC,QAAQhnE,QAAQ,CAAEs6B,EAAKx7B,SACzBqnB,IAAjBrnB,EAAOhH,MACJwiC,EAAM,EAEPA,GACL,GAEH,OACC55B,EAAAA,EAAAA,eAAC2wB,GAAY,CACZ23C,SACCtoE,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACN4nH,2BAAyB,EACzBvjH,OAAQhrB,EAAAA,EAAAA,IAAI,WACZwE,KAAK,UACLgiB,KAAOmhD,GACPtgD,UAAU,4BAER8X,EAAKnuB,OAASusB,IAAeoyG,EAAc,GAC5C1yI,EAAAA,EAAAA,eAAA,QAAMoqB,UAAU,2BACbsoH,GAEA,MAGNh6I,MAAQ,CACPi6C,SAAU,WAGX3yC,EAAAA,EAAAA,eAACuqE,GAAc,MACdvqE,EAAAA,EAAAA,eAAC+mE,GAAiB,KACfT,EAAQzvE,KAAOuH,IAChB,MAAMyrE,EAAe3nC,EAAKokC,QAAQptB,MAC/B5yC,GAAOA,EAAEkgE,QAAUpoE,EAAOooE,QAEvBwD,EAAe9nC,EAAKokC,QAAQloE,QAC/BkI,GAAOA,EAAEkgE,QAAUpoE,EAAOooE,QAEvBsD,EAAgB1rE,EAAOisE,SAASnxB,MACnCj7C,GAAaA,EAAQ7G,QAAUyyE,GAAczyE,QAE1C2yE,EACLF,GAAclD,UAAYvoE,EAAO6rE,UAAW,GAC7C,OACCjqE,EAAAA,EAAAA,eAAC2wB,GAAY,CACZ35B,IAAMoH,EAAOooE,MACb8B,SACCtoE,EAAAA,EAAAA,eAACinE,GAAgB,CAChBriD,OACCklD,IACC9pE,EAAAA,EAAAA,eAAA,QAAM,cAAY,QACf+pE,KACDI,IACC,GAAGA,GAAWJ,GAAiBh8C,SAC/B+7C,EAAc/7C,SAKnB/tB,EAAAA,EAAAA,eAACmnE,GAAqB,KACnB/oE,EAAO1G,OAIZgB,MAAQ,CACPi6C,SAAU,WAGX3yC,EAAAA,EAAAA,eAACuqE,GAAc,MACdvqE,EAAAA,EAAAA,eAAC+mE,GAAiB,KACf3oE,EAAOisE,SAASxzE,KAAOoH,IACxB,MAAM+uB,EACL88C,GAAe1yE,QACf6G,EAAQ7G,MACT,OACC4I,EAAAA,EAAAA,eAAC2oE,GAA2B,CAC3B3xE,IAAMiH,EAAQ7G,MACdM,KAAQ,cAAc0G,EAAOooE,QAC7BpvE,MAAQ6G,EAAQ7G,MAChBo9B,QAAUxH,EACV7oB,SAAatM,IACZyxE,EAAc,IACVpnC,EACHsV,KAAM,EACN8uB,QAAS,IACL0D,EACH,CACCxD,MAAOpoE,EAAOooE,MACdG,SACCoD,EACD3yE,MAAO41B,OACJvH,EACA5tB,EACCiG,OACA1G,SAGJ,IAGJ4I,EAAAA,EAAAA,eAACmnE,GAAqB,KACnBlpE,EAAQ8vB,SAEN9vB,EAAQk2B,cACZn0B,EAAAA,EAAAA,eAACipE,GAAwB,KAEvBhrE,EAAQk2B,aAIkB,KAI/B/1B,EAAO6rE,UAAUvuE,OAAS,IAC3BsE,EAAAA,EAAAA,eAAC2wB,GAAY,CACZ23C,SACCtoE,EAAAA,EAAAA,eAACinE,GAAgB,CAChBriD,QACC5kB,EAAAA,EAAAA,eAAA,QAAM,cAAY,QAEhBmqE,GACCJ,IACEh8C,SAKN/tB,EAAAA,EAAAA,eAACmnE,GAAqB,MACnBpkE,EAAAA,EAAAA,IAAI,iBAKPlK,OAAOioD,QAASqpB,IAAYtzE,KAC7B,EACC8vE,GACE54C,QAAO/2B,WAETgJ,EAAAA,EAAAA,eAAC6oE,GAAqB,CACrB7xE,IAAMA,EACNU,KAAQ,cAAc0G,EAAOooE,mBAC7BpvE,MAAQuvE,EACRnyC,QACCu1C,IACApD,EAEDxiE,SAAatM,IACZyxE,EAAc,IACVpnC,EACHsV,KAAM,EACN8uB,QAAS,IACL0D,EACH,CACCxD,MAAOpoE,EAAOooE,MACdG,SACC9uE,EACEiG,OACA1G,MACHA,MAAOyyE,GAAczyE,SAGrB,IAGJ4I,EAAAA,EAAAA,eAACmnE,GAAqB,KACnBp5C,QAOR/tB,EAAAA,EAAAA,eAACinE,GAAgB,CAChBjwE,IAAM,gBAAkBoH,EAAO1G,KAC/BulC,UAAa6sC,EACbxC,aAAc,EACdr9C,QAAUA,KACTq/C,EAAc,IACVpnC,EACHsV,KAAM,EACN8uB,QAASpkC,EAAKokC,QAAQloE,QACnBkI,GACDA,EAAEkgE,QAAUpoE,EAAOooE,SAEnB,IAGJxmE,EAAAA,EAAAA,eAACmnE,GAAqB,MACnBtqC,EAAAA,EAAAA;CAED95B,EAAAA,EAAAA,IAAI,cACJ3E,EAAO1G,KAAKwlD,kBAKF,MAIlBl9C,EAAAA,EAAAA,eAACinE,GAAgB,CAChBhqC,SACiB,KAAhBiF,EAAK8c,QAA0C,IAAzB9c,EAAKokC,SAAS5qE,OAErC4rE,aAAc,EACdr9C,QAAUA,KACTq/C,EAAc,IACVpnC,EACHsV,KAAM,EACN8uB,QAAS,IACP,IAGJtmE,EAAAA,EAAAA,eAACmnE,GAAqB,MACnBpkE,EAAAA,EAAAA,IAAI,oBAMZ,CClQe,SAAS4vI,IAAa,KAAEzwG,EAAI,aAAEonC,IAC5C,OACCtpE,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNuT,SAA2B,KAAhBiF,EAAK8c,QAA0C,IAAzB9c,EAAKokC,SAAS5qE,OAC/C41I,2BAAyB,EACzB/pI,KAAK,UACL0mB,QAAQ,WACRhE,QAAUA,KACTq/C,EAAc,IACVpnC,EACHsV,KAAM,EACNwH,OAAQ,GACRsnB,QAAS,IACP,IAGFvjE,EAAAA,EAAAA,IAAI,iBAGT,CCPA,MAUM6vI,IAAU18F,EAAAA,EAAAA,OAAM,UAAkB,OAAE20B,EAAM,KAAE3oC,EAAI,aAAEonC,IACvD,MAAMhD,EAAU,GAChBuE,EAAO/xE,SAAW0tE,IACjB,IAAOA,EAAMzyD,KACZ,OAGD,MAAMk2D,EAjBoBzD,KAC3B,IAAIyD,EAAYzD,EAAM0D,UAAUD,UAIhC,OAHOA,GAAe1uE,MAAMc,QAAS4tE,KACpCA,EAAY,CAAEzpC,GAAaC,KAErBwpC,EAAU7rE,QAAUuoE,GAC1B,CAAEnmC,GAAaC,IAAkB7U,SAAU+6C,IAC3C,EAUkByD,CAAmB5D,GACrC,GAA0B,IAArByD,EAAUvuE,QAIN8qE,EAAMzyD,OACTwsB,GAAL,CACC,IAAOimC,EAAM6D,UAAU3uE,OACtB,OAED4qE,EAAQjvE,KAAM,CACbmvE,MAAOA,EAAMn6C,GACb30B,KAAM8uE,EAAM3wD,OACZw0D,SAAU7D,EAAM6D,SAChBJ,YACA7hD,UAAW8Z,EAAKokC,QAAQ1oC,MACrBt3B,GACDA,EAAEkgE,QAAUA,EAAMn6C,IAClB,CAAEmU,GAAaC,IAAkB7U,SAChCtlB,EAAEqgE,aAGH,CACL,IAGD,MAQMksE,EAAmB,EAPxB7yI,EAAAA,EAAAA,eAACyyI,GAAS,CACTz7I,IAAI,aACJsvE,QAAUA,EACVpkC,KAAOA,EACPonC,aAAeA,OAKbhD,EAAQzvE,KAAOuH,GACVA,EAAOgqB,WAAa8Z,EAAKnuB,OAASusB,IAKxCtgC,EAAAA,EAAAA,eAACwyI,GAAa,CACbx7I,IAAMoH,EAAOooE,MACbpoE,OAASA,EACT8jC,KAAOA,EACPonC,aAAeA,IART,QAwBV,OAVKupE,EAAiBn3I,OAAS,GAAKwmC,EAAKnuB,OAASusB,IACjDuyG,EAAiBx7I,MAChB2I,EAAAA,EAAAA,eAAC8yI,GAAY,CACZ97I,IAAI,gBACJkrC,KAAOA,EACPonC,aAAeA,KAKXupE,CACR,IAEA,UC7DA,QA/Be38F,EAAAA,EAAAA,OAAM,UAAiB,MAAEnoB,EAAK,KAAEmU,EAAI,aAAEonC,IACpD,MAAQtqB,EAAQ8C,EAAWC,IAAoBC,EAAAA,GAAAA,mBAC9C9f,EAAK8c,SAENpxB,EAAAA,EAAAA,YAAW,KACVk0B,EAAW5f,EAAK8c,OAAQ,GACtB,CAAE9c,IACL,MAAM6wG,GAAkBrlH,EAAAA,EAAAA,QAAQ47C,IAChC17C,EAAAA,EAAAA,YAAW,KACVmlH,EAAgB7tI,QAAUokE,CAAY,GACpC,CAAEA,KACL17C,EAAAA,EAAAA,YAAW,KACVmlH,EAAgB7tI,QAAS,IACrBg9B,EACHsV,KAAM,EACNwH,OAAQ+C,GACN,GACD,CAAEA,IACL,MAAMixF,EAAcjlH,IAAShrB,EAAAA,EAAAA,IAAI,eACjC,OACC/C,EAAAA,EAAAA,eAAC8iD,EAAAA,cAAa,CACbvuB,yBAAuB,EACvBpwB,SAAW29C,EACX1qD,MAAQ4nD,EACRjxB,MAAQilH,EACRhwF,YAAcgwF,EACdzrI,KAAK,WAGR,ICnBA,MAAM0rI,GAAqBjsH,GAAUA,EAAKqF,GACpC6mH,GAA2BA,OAElB,SAASC,IAAW,KAClCjxG,EAAI,aACJonC,EAAY,OACZuB,EAAM,OACN7rB,GAAS,EAAI,YACbg0F,EAAuB,QACvB/pH,EAAO,KACPlT,EAAI,UACJ+0D,EAAYmoE,GAAgB,UAC5BlmH,GAAY,EAAK,eACjBokH,EAAc,iBACdO,EAAgB,kBAChBzlE,EAAoBinE,GAAwB,gBAC5ChnE,EAAkB,KAAI,kBACtBnB,GAAoB,IAEpB,MAAQoB,EAAWinE,IAAiBzhH,EAAAA,EAAAA,UAAU,IAExC0hH,GAAiBlhH,EAAAA,EAAAA,cACpBm/B,IACD8hF,EAAc9hF,EAAMz6D,KAAOmwB,GAAUA,EAAKqF,MAC1C4/C,EAAmB3a,EAAO,GAE3B,CAAE8hF,EAAcnnE,IAGXqnE,EAAgB3oE,GAAazxB,MAChC59B,GAAOA,EAAEvH,OAASmuB,EAAKnuB,OACxB62D,UACIvzB,GAAUvlB,EAAAA,EAAAA,UAAS,IACjB+4C,EAAOh0E,KAAO2vE,IAAK,IACtBA,EACH5hE,OAAQ4hE,EAAM5hE,QAAU4hE,EAAM+iB,cAE7B,CAAE1e,IACL,OACC7qE,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,sBACdpqB,EAAAA,EAAAA,eAACgrC,EAAAA,qBAAM,CAACC,QAAU,EAAI3X,QAAQ,eAC7BtzB,EAAAA,EAAAA,eAACqzB,EAAAA,qBAAM,CACN6X,UAAU,aACV9gB,UAAU,oCAEVpqB,EAAAA,EAAAA,eAACqzB,EAAAA,qBAAM,CAACC,QAAQ,QAAQnjB,MAAI,GACzB6uC,IACDh/C,EAAAA,EAAAA,eAACuzI,GAAM,CACNxlH,MAAQilH,EACR9wG,KAAOA,EACPonC,aAAeA,KAGjBtpE,EAAAA,EAAAA,eAAC4yI,GAAO,CACP/nE,OAASxzB,EACTnV,KAAOA,EACPonC,aAAeA,MAGjBtpE,EAAAA,EAAAA,eAACsyI,GAAW,CACXznE,OAASxzB,EACTnV,KAAOA,EACPonC,aAAeA,EACfooE,iBAAmBA,MAGrB1xI,EAAAA,EAAAA,eAACszI,EAAa,CACbzoE,OAASxzB,EACTnV,KAAOA,EACPonC,aAAeA,EACfrgD,QAAUA,EACVlT,KAAOA,EACP+0D,UAAYA,EACZ/9C,UAAYA,EACZk/C,kBAAoBonE,EACpBnnE,gBAAkBA,EAClBC,UAAYA,EACZpB,kBAAoBA,KAErB/qE,EAAAA,EAAAA,eAAC8oH,GAAU,CACV5mF,KAAOA,EACPonC,aAAeA,EACf6nE,eAAiBA,KAKtB,CClEA,MAAQ/yG,WAAUA,IAAK5G,GAAQ6G,GAAAA,cACzB,2BAAEm1G,GAA0B,yBAAEC,IACnCj8G,GAAQ0gG,GAAAA,aAEIwb,GAAmB,CAC/BrnH,GAAI,iBACJ0B,OAAOhrB,EAAAA,EAAAA,IAAI,kBACXmlE,WAAclhD,GAAUA,EAAKjT,OAAS6rB,GAAcvF,KACpDqS,SAAY1lB,IACX,MAAM47G,EAAO,CACZoM,OAAQhoH,EAAKjT,KACb6Y,MAAO5F,EAAK4F,OAAS5F,EAAKtvB,KAC1B83B,QAASxI,EAAKwvC,YAAYhnC,QAAQ9Z,IAClCmgD,WAAY7uC,EAAKwvC,YAAYI,wBAE9B,OAAO8rE,EAAAA,GAAAA,cACL,GAAGh+E,GAAW19B,EAAK4F,OAAS5F,EAAKtvB,aAClCqiC,KAAKE,UAAW2oG,EAAM,KAAM,GAC5B,mBACA,GAIU+Q,GAAe,CAC3BtnH,GAAI,iBACJ0B,OAAOhrB,EAAAA,EAAAA,IAAI,UACXmlE,WAAclhD,IACb,MAAM2gB,EAAiB3gB,EAAKjT,OAASurB,GAE/BmvG,EADgBznH,EAAKjT,OAAS6rB,GAAcvF,MAE9BsN,GAAkB3gB,EAAKkuC,SACrCw5E,EAAe/mG,GAAkB3gB,EAAK6Z,aAAayB,eACzD,OAAOmsG,IAAqBC,CAAY,EAEzCnnE,YAAaA,EAAIvgD,OAAMc,iBACtB,MAAQ8E,EAAOy3B,IAAa1yB,EAAAA,EAAAA,WAAU,IAAM3K,EAAK4F,SAC3C,iBAAEqW,EAAgB,uBAAEmqB,IACzBpjC,EAAAA,EAAAA,aAAawT,GAAAA,QACR,oBAAErB,EAAmB,kBAAE0H,IAC5B7Z,EAAAA,EAAAA,aAAaoS,GAAAA,OAkCd,OACCp8B,EAAAA,EAAAA,eAAA,QAAMykD,SAlCPhgD,eAAyBu6B,GACxBA,EAAMC,iBACN,UACOgE,EAAkB,WAAYjc,EAAKjT,KAAMiT,EAAKqF,GAAI,CACvDO,UAGDy3B,EAAU,IACVv8B,UAEMslC,EAAwB,WAAYpmC,EAAKjT,KAAMiT,EAAKqF,GAAI,CAC7D+6B,cAAc,IAEfjrB,EACCnV,EAAKjT,OAASurB,IACXv8B,EAAAA,EAAAA,IAAI,2BACJA,EAAAA,EAAAA,IAAI,oBACP,CAAEgR,KAAM,YAEV,CAAE,MAAQ2vB,GACT,MAAMspB,EACLhmC,EAAKjT,OAASurB,IACXv8B,EAAAA,EAAAA,IACA,wDAEAA,EAAAA,EAAAA,IAAI,iDACF4gC,EACLD,EAAME,SAA0B,kBAAfF,EAAMj9B,KACpBi9B,EAAME,QACNopB,EACJnpB,EAAmBF,EAAc,CAAE5vB,KAAM,YAC1C,CACD,IAGE/T,EAAAA,EAAAA,eAACgrC,EAAAA,qBAAM,CAACC,QAAQ,MACfjrC,EAAAA,EAAAA,eAAC2kD,EAAAA,YAAW,CACXpwB,yBAAuB,EACvB04B,uBAAqB,EACrBl/B,OAAQhrB,EAAAA,EAAAA,IAAI,QACZ3L,MAAQw1B,EACRzoB,SAAWkgD,EACX6I,UAAQ,KAETltD,EAAAA,EAAAA,eAACqzB,EAAAA,qBAAM,CAACC,QAAQ,UACftzB,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNujC,uBAAqB,EACrBh/B,QAAQ,WACRhE,QAAUA,KACTnC,GAAY,IAGX/kB,EAAAA,EAAAA,IAAI,YAEP/C,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNujC,uBAAqB,EACrBh/B,QAAQ,UACRla,KAAK,WAEHhR,EAAAA,EAAAA,IAAI,WAIH,GAKJ6wI,GAAqB5sH,IAC1B,MAAM2gB,EAAiB3gB,EAAKjT,OAASurB,GAErC,OADsBtY,EAAKjT,OAAS6rB,GAAcvF,MACxBsN,GAAkB3gB,EAAKkuC,QAAU,EAG/C2+E,GAAe,CAC3BxnH,GAAI,iBACJ0B,OAAOhrB,EAAAA,EAAAA,IAAI,UACXmlE,WAAclhD,IACb,MACM0nH,EADiB1nH,EAAKjT,OAASurB,IACEtY,EAAK6Z,aAAayB,eACzD,OAAOsxG,GAAkB5sH,KAAY0nH,CAAY,EAElD/mE,iBAAiB,EACjBJ,YAAaA,EAAIvgD,OAAMc,iBACtB,MAAM,kCAAEomH,IACPlkH,EAAAA,EAAAA,aAAamkH,GAAAA,QACR,kBAAEtqG,EAAiB,oBAAE1H,IAC1BnS,EAAAA,EAAAA,aAAaoS,GAAAA,QACR,eAAE8G,IAAmBlZ,EAAAA,EAAAA,aAAa0gB,IA4BxC,OACC1qC,EAAAA,EAAAA,eAACgrC,EAAAA,qBAAM,CAACC,QAAQ,MACfjrC,EAAAA,EAAAA,eAACi0B,EAAAA,mBAAI,MACF4I,EAAAA,EAAAA;;CAED95B,EAAAA,EAAAA,IAAI,0CACJ0gC,EAAAA,GAAAA,gBAAgBzc,EAAK4F,OAAS5F,EAAKtvB,SAGrCsI,EAAAA,EAAAA,eAACqzB,EAAAA,qBAAM,CAACC,QAAQ,UACftzB,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CAACuE,QAAQ,WAAWhE,QAAUnC,IAClC/kB,EAAAA,EAAAA,IAAI,YAEP/C,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CAACuE,QAAQ,UAAUhE,QAjBVglH,IAClBjoH,EAAKjT,OAASurB,GACX4D,EAAgBlc,GAxBEviB,WACrB,UACOypI,EAAmClnH,EAAKqF,IAC9C8P,GACCU,EAAAA,EAAAA;;CAEC95B,EAAAA,EAAAA,IAAI,iBACJikB,EAAK4F,OAEN,CAAE7Y,KAAM,WAAYsY,GAAI,8BAE1B,CAAE,MAAQqX,GACT,MAAMC,EACLD,EAAME,SAA0B,kBAAfF,EAAMj9B,KACpBi9B,EAAME,SACN7gC,EAAAA,EAAAA,IAAI,iDACR8gC,EAAmBF,EAAc,CAChC5vB,KAAM,WACNsY,GAAI,4BAEN,GAKG6iH,KAeEnsI,EAAAA,EAAAA,IAAI,YAGA,GAKC+wI,GAAc,CAC1BznH,GAAI,eACJ0B,OAAOhrB,EAAAA,EAAAA,IAAI,wBACXmlE,WAAclhD,IACb,MACM0nH,EADiB1nH,EAAKjT,OAASurB,IACEtY,EAAK6Z,aAAayB,eACzD,OAAOsxG,GAAkB5sH,IAAU0nH,CAAY,EAEhD/mE,iBAAiB,EACjBJ,YAAaA,EAAIvgD,OAAMc,iBACtB,MAAM,eAAEob,IAAmBlZ,EAAAA,EAAAA,aAAa0gB,IACxC,OACC1qC,EAAAA,EAAAA,eAACgrC,EAAAA,qBAAM,CAACC,QAAQ,MACfjrC,EAAAA,EAAAA,eAACi0B,EAAAA,mBAAI,MACFlxB,EAAAA,EAAAA,IACD,0DAGF/C,EAAAA,EAAAA,eAACqzB,EAAAA,qBAAM,CAACC,QAAQ,UACftzB,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CAACuE,QAAQ,WAAWhE,QAAUnC,IAClC/kB,EAAAA,EAAAA,IAAI,YAEP/C,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNuE,QAAQ,UACRhE,QAAUA,IAAMiZ,EAAgBlc,KAE9BjkB,EAAAA,EAAAA,IAAI,WAGA,GAKCgxI,GAAyB,CACrC1nH,GAAI,oBACJ0B,OAAO5L,EAAAA,EAAAA,IAAI,YAAa,gBACxB+lD,WAAclhD,GAAUA,EAAKjT,OAASurB,GACtCsoC,aAAazlD,EAAAA,EAAAA,IAAI,oBAAqB,gBACtColD,YAAaA,EAAIvgD,OAAMc,iBACtB,MAAM,WAAEwrC,EAAazzB,KAA6BlB,EAAAA,GAAAA,cACjDhmC,OAAOuI,SAASg9B,MAEX4vG,EAAiB9mH,EAAKjT,OAAS6rB,GAAcH,MAC7ClB,EAAUH,KAUV41G,EAAkBP,GAA0B,CACjD99E,QAASm4E,EAAiB9mH,EAAOA,EAAKwvC,YACtCyC,UAXD,UAA2B,QAAEtD,IAC5Bp3B,EAAQlnC,KAAM,CACb0/D,aAAcn3B,GAAcH,MAC5B6zB,aACApyB,SAAUtB,GAAcvF,KACxB4G,OAAQ00B,EAAQtpC,KAEjBvE,GACD,IAKA,OACC9nB,EAAAA,EAAAA,eAACwzI,GAA0B,CAC1BtlH,QAAUpG,EACVuoC,cAAeluC,EAAAA,EAAAA,IAAI,YAAa,mBAC3B6xH,GACJ,GAKQC,GAA8B,CAC1C5nH,GAAI,0BACJ0B,OAAO5L,EAAAA,EAAAA,IAAI,YAAa,gBACxB+lD,WAAclhD,GAAUA,EAAKjT,OAASurB,GACtCsoC,aAAazlD,EAAAA,EAAAA,IAAI,0BAA2B,gBAC5ColD,YAAaA,EAAIvgD,OAAMc,iBACtB,MAAM,oBAAEqU,IAAwBnS,EAAAA,EAAAA,aAAaoS,GAAAA,QACvC,WAAEk3B,EAAazzB,KAA6BlB,EAAAA,GAAAA,cACjDhmC,OAAOuI,SAASg9B,MAEXK,EAAUH,KAkBhB,OACCp+B,EAAAA,EAAAA,eAACowD,GAA+B,CAC/Bn1B,OAASjU,EAAKiU,OACduuB,YAAcxiC,EAAK6Z,aAAara,KAChC89B,cAAeznB,EAAAA,EAAAA;CAEd95B,EAAAA,EAAAA,IAAI,aACJikB,EAAK4F,OAEN0jC,SA1BF7rD,eAAsCo8B,GACrC1E,GACCU,EAAAA,EAAAA;;CAEC95B,EAAAA,EAAAA,IAAI,oBACJikB,EAAK4F,OAEN,CAAE7Y,KAAM,WAAYsY,GAAI,+BAEzBkS,EAAQlnC,KAAM,CACb6pC,SAAU5B,GACV2B,OAAQJ,GAAcxU,GACtB0qC,aAAcz3B,GACdg0B,eAEDxrC,GACD,EAWEyoC,QAAUzoC,EACVuoC,cAAeluC,EAAAA,EAAAA,IAAI,YAAa,iBAC/B,ICpQGqyB,gCAA+B,GAAE7c,eAAcA,IAAKH,GAC3DI,GAAAA,aAGKm2G,GAAoB,CAAEl4H,OAAM,GAAEsZ,OAAM,GAAE2oC,cAAaA,IACnDnxB,GAAc,GACdutG,GAA2B,CAChC,CAAE9zG,IAAe,CAChB+lC,WAAY,UACZC,aAAc,UAGV+tE,GAAe,CACpBpgI,KAAMqsB,GACN4e,OAAQ,GACRxH,KAAM,EACN+uB,QAAS,GACTE,aAAc,CAAE,eAChBtqB,OAAQ,IACJ+3F,GAA0B9zG,KAE9BkmC,QAAS,IAGJ+oE,GAAe,CACpB,CACCj4I,MAAO4oC,GAAmB62B,KAC1B9oC,OAAO5L,EAAAA,EAAAA,IAAI,SAAU,+CACrBgS,aAAapxB,EAAAA,EAAAA,IAAI,oDAElB,CACC3L,MAAO4oC,GAAmBi2B,SAC1BloC,OAAO5L,EAAAA,EAAAA,IACN,aACA,4DAEDgS,aAAapxB,EAAAA,EAAAA,IACZ,qEAKH,SAASqxI,IAAS,KAAEptH,EAAI,SAAEqtH,IACzB,MAAM3G,GAAgBliE,EAAAA,EAAAA,SAChB4iE,EAAgBpnH,EAAKjT,OAAS6rB,GAAcvF,KAC5Cg0G,EAAmBrnH,EAAKjT,OAAS6rB,GAAcH,MAC/CkI,EAAiB3gB,EAAKjT,OAASurB,GAC/BgvG,GAAYtnH,EAAKiU,QAAQv/B,OAIzBizI,EAAmB,GADxBP,GAAmBzmG,GAAkB3gB,EAAKkuC,SAI1Cy5E,EAAiBt3I,MAChB0L,EAAAA,EAAAA,IAAI,0DAEMikB,EAAKmN,aAChBw6G,EAAiBt3I,KAAM2vB,EAAKmN,aAGxBk6G,GACJM,EAAiBt3I,MAChB0L,EAAAA,EAAAA,IAAI,8CAGN,MAAQg1B,GAAoBJ,GAAgB,oBAC5C,OACC33B,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAAA,OACCoqB,UAAa,2CAA2CiqH,IACxD37I,MAAQ,CAAEq/B,oBAERu2G,GAAW3mG,IAAkB5kC,EAAAA,EAAAA,IAAI,uBACjCurI,IAAa3mG,IAAkB5kC,EAAAA,EAAAA,IAAI,kBACjCurI,IAAWtuI,EAAAA,EAAAA,eAAC61E,GAAAA,aAAY,CAAC56C,OAASjU,EAAKiU,UAE1C0zG,EAAiB93I,KAAK,CAAEg4I,EAAiBt3I,KAC1CyI,EAAAA,EAAAA,eAAA,OACChJ,IAAMO,EACNo3B,QAAM,EACNtC,GAAM,GAAGqhH,KAAmBn2I,KAE1Bs3I,KAKP,CAEA,SAASyF,IAAO,KAAEttH,EAAI,WAAEssC,IACvB,MAAM86E,EAAgBpnH,EAAKjT,OAAS6rB,GAAcvF,KAC5Cg0G,EAAmBrnH,EAAKjT,OAAS6rB,GAAcH,MAC/CkI,EAAiB3gB,EAAKjT,OAASurB,GACrC,IAAIsmC,EACJ,MAAM,QAAE37C,GAAYiV,GAAS,CAC5BgC,SAAUla,EAAKjT,KACfktB,OAAQmtG,EAAgBpnH,EAAKqF,GAAKrF,EAAKtvB,KACvC47D,aACAyD,aAAcpvB,EAAiB3gB,EAAKjT,KAAO6rB,GAAcH,QAQ1D,OALCmmC,GADMwoE,GAAiBL,GAAmBz6E,GAC/By6E,GAAmBz6E,GAG7BtsC,EAAK6uC,aAAe71B,GAAmB62B,KAAOx4D,QAASonB,GAGxDzlB,EAAAA,EAAAA,eAACqzB,EAAAA,qBAAM,CAAC6X,UAAU,SAAS5X,QAAQ,aAAa2X,QAAU,GACvD26B,IAAcyoE,IACfruI,EAAAA,EAAAA,eAACuiH,EAAAA,QAAO,CACPzxF,UAAU,MACVvkB,MAAOxJ,EAAAA,EAAAA,IACN,+DAGD/C,EAAAA,EAAAA,eAACyzB,GAAI,CACJrJ,UAAU,mCACVb,KAAOq8C,KAIR5+C,EAAKjT,OAAS6rB,GAAcH,QAC7Bz/B,EAAAA,EAAAA,eAACuiH,EAAAA,QAAO,CACPzxF,UAAU,MACVvkB,MAAOxJ,EAAAA,EAAAA,IAAI,oCAEX/C,EAAAA,EAAAA,eAACyzB,GAAI,CACJrJ,UAAU,wCACVb,KAAOulH,GACPvnI,KAAO,OAIVvH,EAAAA,EAAAA,eAACojD,EAAAA,KAAI,CAAC35B,GAAG,OAAOsK,IAAM,EAAIT,QAAQ,QAC/BtM,EAAKjT,OAAS6rB,GAAcH,OAC7Bz/B,EAAAA,EAAAA,eAAA,QAAMoqB,UAAU,oCACbpD,EAAK4F,QAGR5sB,EAAAA,EAAAA,eAACsrC,EAAAA,sBAAO,CAAC3S,MAAQ,IAChB34B,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNuE,QAAQ,OACRhE,QAAUA,EAGVU,SAAS,KACTP,UAAU,oCAERpD,EAAK4F,OAAS5F,EAAKtvB,QAO5B,CAEe,SAAS68I,KACvB,MAAM,aAAEx9E,EAAY,WAAEzD,EAAazzB,KAClClB,EAAAA,GAAAA,cAAchmC,OAAOuI,SAASg9B,MACzBnqB,EAAOgjD,GAAgBn3B,GAAcH,OACnCyC,EAAMsyG,IAAY7iH,EAAAA,EAAAA,UAAUwiH,IAC9BtE,EACL97H,IAAS6rB,GAAcH,OAAwB,kBAAf6zB,EAC3BmhF,GAAqBC,EAAAA,GAAAA,aAAaphF,GAClCqhF,EAAiBzyG,EAAKokC,SAASptB,MACpC,EAAIstB,WAAuB,gBAAVA,KACfpvE,OACG,SAAEg+D,EAAQ,YAAE7c,GAAgBue,GACjC/iD,EACA87H,EAA+B,GAAKv8E,EACpC,CACCtU,OAAQ9c,EAAK8c,OACb6W,WAAY8+E,IAGR9pE,GAAS/4C,EAAAA,EAAAA,UAAS,KACvB,MAAMulB,EAAU,CACf,CACCxhC,QAAQ9S,EAAAA,EAAAA,IAAI,WACZspB,GAAI,UACJznB,OAAQA,EAAIoiB,WACXhnB,EAAAA,EAAAA,eAACo0I,GAAO,CAACptH,KAAOA,EAAOqtH,SAAWnyG,EAAKnuB,OAExC41D,eAAe,EACfF,cAAc,GAEf,CACC5zD,QAAQ9S,EAAAA,EAAAA,IAAI,SACZspB,GAAI,QACJk9D,SAAUA,EAAIviE,UAAYA,EAAK4F,MAC/BhoB,OAAQA,EAAIoiB,WACXhnB,EAAAA,EAAAA,eAACs0I,GAAK,CAACttH,KAAOA,EAAOssC,WAAaA,IAEnCmW,cAAc,IA4BhB,OAzBK11D,IAAS6rB,GAAcH,OAC3B4X,EAAQhgD,KAAM,CACbwe,QAAQ9S,EAAAA,EAAAA,IAAI,eACZspB,GAAI,cACJznB,OAAQA,EAAIoiB,UAIVqoH,GAAan2F,MACZ,EAAI9hD,WAAaA,IAAU4vB,EAAK6uC,cAC9B9nC,OACHshH,GAAan2F,MACZ,EAAI9hD,WACHA,IAAU4oC,GAAmBi2B,WAC7BloC,MAGJha,KAAMwsB,GACN8pC,SAAUglE,GACVnlE,SAAU,CACTD,UAAW,CAAEzpC,KAEdmpC,eAAe,IAGVtyB,CAAO,GACZ,CAAEnV,EAAKnuB,KAAMu/C,EAAYv/C,KAE5B6Z,EAAAA,EAAAA,YAAW,KACL6mH,IAAuBnhF,GAC3BkhF,EAASL,GACV,GACE,CAAE7gF,EAAYmhF,IACjB,MAAM,KAAE1+H,EAAI,eAAEo7H,IAAmBr/G,EAAAA,EAAAA,UAAS,KACzC,IAAOsjC,EACN,MAAO,CACNr/C,KAAM4wB,GACNwqG,eAAgB,CAAEjoB,WAAY,EAAGkoB,WAAY,IAG/C,IAAIwD,EAAe,IAAKx/E,GAWxB,OATKlzB,EAAK4lB,OACT8sF,EAAenE,GAAkB,CAChC16H,KAAM6+H,EACN1yG,OACA2oC,SACA6lE,WAAY,CAAE,QAAS,aAIlBQ,GAAsB,CAC5Bn7H,KAAM6+H,EACN1yG,QACE,GACD,CAAEkzB,EAAUlzB,EAAM2oC,IAEf5hD,GAAU6I,EAAAA,EAAAA,UACf,IAAM,CACL6hH,GACAI,GACAE,GACAP,GACAI,GACAD,KAED,IAEKvqE,GAAen3C,EAAAA,EAAAA,cAClB0iH,IACIA,EAAQ9gI,OAASmuB,EAAKnuB,OAC1B8gI,EAAU,IACNA,EACH14F,OAAQ,IACJ+3F,GAA0BW,EAAQ9gI,SAIxCygI,EAASK,EAAS,GAEnB,CAAE3yG,EAAKnuB,KAAMygI,IAERnoH,GAAKm/C,EAAAA,EAAAA,SACL5pC,EAAWwuG,KAKjB,OACCpwI,EAAAA,EAAAA,eAACw0C,GAA+B,CAAC5S,SAAWA,IAC3C5hC,EAAAA,EAAAA,eAACgtI,GAAI,CACJpgH,OAAQ7pB,EAAAA,EAAAA,IAAI,oBACZqnB,UAAU,oCACV6iH,iBAAe,IAEfjtI,EAAAA,EAAAA,eAACwtI,GAAc,CACdl6E,WAAaA,EACbv/C,KAAOA,EACP05H,QAAW,GAAGphH,UACdqhH,cAAiB,GAAGrhH,mBAErBrsB,EAAAA,EAAAA,eAACmzI,GAAS,CACThC,eAAiBA,EACjBtmE,OAASA,EACT5hD,QAAUA,EACVlT,KAAOA,GAAQ4wB,GACfmkC,UAAc9jD,GAAUA,EAAKtvB,KAC7Bq1B,UAAYwrB,EACZrW,KAAOA,EACPonC,aAAeA,EACfyB,mBAAoB,EACpB2mE,iBAAmB,CAAEtxG,OAK1B,CC3Xe,SAAS00G,IAAO,KAAE/+H,EAAI,QAAEy7B,IACtC,OACCxxC,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,4BACdpqB,EAAAA,EAAAA,eAAA,SAAOoqB,UAAU,oBAChBpqB,EAAAA,EAAAA,eAAA,cACCA,EAAAA,EAAAA,eAAA,UACGwxC,EAAQ36C,KAAOk+I,IAChB/0I,EAAAA,EAAAA,eAAA,MAAIhJ,IAAM+9I,EAAOl/H,QAAWk/H,EAAOl/H,aAItC7V,EAAAA,EAAAA,eAAA,aACG+V,EAAKlf,KAAK,CAAEm+I,EAAKC,KAClBj1I,EAAAA,EAAAA,eAAA,MAAIhJ,IAAMi+I,GACPzjG,EAAQ36C,KAAK,CAAEk+I,EAAQG,KACxBl1I,EAAAA,EAAAA,eAAA,MACCtH,MAAQ,CACPk6C,SAAUmiG,EAAOniG,SACdmiG,EAAOniG,cACPntB,GAEJzuB,IAAMk+I,GAEJH,EAAOI,KAAMH,WASxB,CCfA,MAAQ52G,WAAUA,IAAK5G,GAAQ6G,GAAAA,aAEhB,SAAS+2G,KACvB,MAAM,UAAEhsF,EAAS,SAAEloB,IAAapX,EAAAA,EAAAA,YAAalD,IAC5C,MAAM,0BAAEwzC,GACPxzC,EAAQ8jB,IAAgBpC,cACzB,MAAO,CACN8gB,WAAagR,EACbl5B,SAAUta,EAAQ4W,GAAAA,OAAYorB,YAC7BtpB,IAED,GACC,KACKqtB,EAAaC,IAAmBj7B,EAAAA,EAAAA,WAAU,GAC5C4M,EAAUH,KAEhB,OAAOgrB,GAAeloB,GAKrBlhC,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CAACuE,QAAQ,UAAUhE,QAAUA,IAAM2iC,GAAgB,IACvD1rB,EAASzR,OAAO64B,cAEjBqE,IACD3sD,EAAAA,EAAAA,eAACmwD,GAAuB,CACvBroC,WAAaA,IAAM8kC,GAAgB,GACnC3xB,OAAS,GACTq1B,SAAazvB,IACZ+rB,GAAgB,GAChBruB,EAAQlnC,KAAM,CACb4pC,OAAQJ,EAAaxU,GACrB6U,SAAU5B,GACV6B,OAAQ,QACN,EAEJovB,QAAUA,IAAM3D,GAAgB,MApB5B,IAyBT,CClCA,MAAQlsB,YAAWA,IAAKlJ,GAAQ6G,GAAAA,aAEjB,SAASg3G,KACvB,MACC72G,QAAQ,sBAAE87B,IACP55B,MAEIwhB,QAAS/a,IAAkBkb,EAAAA,GAAAA,kBAClC,WACA/iB,GACA,CACC+I,UAAW,IAIPmJ,EAAU,CACf,CACC37B,QAAQ9S,EAAAA,EAAAA,IAAI,iBACZoyI,KAAQt0G,IACP7gC,EAAAA,EAAAA,eAACgrC,EAAAA,qBAAM,MACNhrC,EAAAA,EAAAA,eAACsrC,EAAAA,sBAAO,CAAC7hB,GAAG,KAAKkP,MAAQ,IACxB34B,EAAAA,EAAAA,eAACm/B,GAAI,CACJX,OAAS,CACRyC,OAAQJ,EAAaxU,GACrB6U,SAAUL,EAAa9sB,KACvBumD,sBAA0BA,EACvB,OACA70C,GAEJ3hB,MAAQ,CACPwmC,SAAU,2BAGT7G,EAAAA,GAAAA,gBACD5C,EAAajU,OAAO4W,UACnB3C,EAAaD,SAMnBgS,SAAU,KAEX,CACC/8B,QAAQ9S,EAAAA,EAAAA,IAAI,YACZoyI,KAAQt0G,IACP7gC,EAAAA,EAAAA,eAACssD,GAAO,CACPprB,SAAWL,EAAa9sB,KACxBktB,OAASJ,EAAaxU,MAIzB,CACCxW,QAAQ7V,EAAAA,EAAAA,eAAC8xC,EAAAA,eAAc,MAAG/uC,EAAAA,EAAAA,IAAI,YAC9BoyI,KAAQt0G,IACP7gC,EAAAA,EAAAA,eAACmtD,GAAe,CACfjsB,SAAWL,EAAa9sB,KACxBktB,OAASJ,EAAaxU,OAM1B,OACCrsB,EAAAA,EAAAA,eAACgtI,GAAI,CACJpgH,OAAQ7pB,EAAAA,EAAAA,IAAI,kBACZkmB,SAAUjpB,EAAAA,EAAAA,eAACo1I,GAAkB,OAE3BjuG,IACDnnC,EAAAA,EAAAA,eAAC80I,GAAK,CAAC/+H,KAAOoxB,EAAgBqK,QAAUA,IAI5C,CCbO,MAAM8jG,GAAuB,CACnCjpH,GAAI,kBACJ0B,OAAOhrB,EAAAA,EAAAA,IAAI,mBACXolE,WAAW,EACX5+C,KAAMq9C,GACNsB,WAAY3b,GACZob,iBAAiB,EACjBJ,YAAaA,EAAIvgD,KAAMqb,EAAUva,iBAChC,MAAM,eAAEob,IAAmBlZ,EAAAA,EAAAA,aAAa0gB,IACxC,OACC1qC,EAAAA,EAAAA,eAACgrC,EAAAA,qBAAM,CAACC,QAAQ,MACfjrC,EAAAA,EAAAA,eAACi0B,EAAAA,mBAAI,MACF4I,EAAAA,EAAAA;;CAED95B,EAAAA,EAAAA,IAAI,0CACJ0gC,EAAAA,GAAAA,gBAAgBpB,EAASzV,MAAM4W,aAGjCxjC,EAAAA,EAAAA,eAACqzB,EAAAA,qBAAM,CAACC,QAAQ,UACftzB,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CAACuE,QAAQ,WAAWhE,QAAUnC,IAClC/kB,EAAAA,EAAAA,IAAI,YAEP/C,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNuE,QAAQ,UACRhE,QAAUA,IACTiZ,EAAgBb,EAAU,CACzByC,WAAW,MAIX/hC,EAAAA,EAAAA,IAAI,YAGA,GAKCwyI,GAAuB,CACnClpH,GAAI,kBACJ0B,OAAOhrB,EAAAA,EAAAA,IAAI,UACXmlE,WAAc7lC,GACbkqB,GAAqBlqB,IAAcA,EAAS0qB,UAC7Cwa,YAAaA,EAAIvgD,KAAMqb,EAAUva,iBAChC,MAAM8E,GAAQ6W,EAAAA,GAAAA,gBAAgBpB,EAASzV,MAAM4W,WACrCipB,EAAaC,IAAmB/6B,EAAAA,EAAAA,UAAU/E,IAC5C,iBACLqW,EACA4pB,uCAAwCC,IACrC9iC,EAAAA,EAAAA,aAAawT,GAAAA,QACX,oBAAErB,EAAmB,kBAAE0H,IAC5B7Z,EAAAA,EAAAA,aAAaoS,GAAAA,OAkDd,OACCp8B,EAAAA,EAAAA,eAAA,QAAMykD,SAlDPhgD,eAAiCu6B,GAChCA,EAAMC,iBACN,UACOgE,EACL,WACAZ,EAAStuB,KACTsuB,EAAShW,GACT,CACCO,MAAO6/B,IAITC,EAAgB,IAChB5kC,UAEMglC,EACL,WACAzqB,EAAStuB,KACTsuB,EAAShW,GACT,CAAE,SACF,CACC+6B,cAAc,IAKhBjrB,EACCkG,EAAStuB,OAASsrB,IACft8B,EAAAA,EAAAA,IAAI,sBACJA,EAAAA,EAAAA,IAAI,0BACP,CACCgR,KAAM,YAGT,CAAE,MAAQ2vB,GACT,MAAMspB,EACL3qB,EAAStuB,OAASsrB,IACft8B,EAAAA,EAAAA,IAAI,mDACJA,EAAAA,EAAAA,IACA,uDAEE4gC,EACLD,EAAME,SAA0B,kBAAfF,EAAMj9B,KACpBi9B,EAAME,QACNopB,EAEJnpB,EAAmBF,EAAc,CAAE5vB,KAAM,YAC1C,CACD,IAGE/T,EAAAA,EAAAA,eAACgrC,EAAAA,qBAAM,CAACC,QAAQ,MACfjrC,EAAAA,EAAAA,eAAC2kD,EAAAA,YAAW,CACXpwB,yBAAuB,EACvBxG,OAAQhrB,EAAAA,EAAAA,IAAI,QACZ3L,MAAQq1D,EACRtoD,SAAWuoD,EACXQ,UAAQ,KAETltD,EAAAA,EAAAA,eAACqzB,EAAAA,qBAAM,CAACC,QAAQ,UACftzB,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CAACuE,QAAQ,WAAWhE,QAAUnC,IAClC/kB,EAAAA,EAAAA,IAAI,YAEP/C,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CAACuE,QAAQ,UAAUla,KAAK,WAC5BhR,EAAAA,EAAAA,IAAI,WAIH,ICrLFq7B,WAAUA,IAAK5G,GAAQ6G,GAAAA,aAElBm3G,GAAkB,CAC9BnpH,GAAI,gBACJ0B,OAAOhrB,EAAAA,EAAAA,IAAI,iBACXolE,WAAW,EACX5+C,KAAMq9C,GACNsB,UAAAA,EAAY,OAAEtyD,IACb,MAAkB,UAAXA,CACR,EACA+xD,iBAAiB,EACjBJ,YAAaA,EAAIvgD,KAAM23B,EAAM72B,iBAC5B,MAAM,oBAAEqU,EAAmB,kBAAE0H,IAC5B7Z,EAAAA,EAAAA,aAAaoS,GAAAA,QACR,mBAAE+G,IAAuBnZ,EAAAA,EAAAA,aAAawT,GAAAA,OAC5C,OACCx9B,EAAAA,EAAAA,eAACgrC,EAAAA,qBAAM,CAACC,QAAQ,MACfjrC,EAAAA,EAAAA,eAACi0B,EAAAA,mBAAI,MACF4I,EAAAA,EAAAA;;CAED95B,EAAAA,EAAAA,IAAI,0CACJ0gC,EAAAA,GAAAA,gBAAgBkb,EAAK/xB,MAAM4W,aAG7BxjC,EAAAA,EAAAA,eAACqzB,EAAAA,qBAAM,CAACC,QAAQ,UACftzB,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CAACuE,QAAQ,WAAWhE,QAAUnC,IAClC/kB,EAAAA,EAAAA,IAAI,YAEP/C,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CACNuE,QAAQ,UACRhE,QAAUxlB,UACT,UACO0+B,EACL,WACAwb,EAAK5qC,KACL4qC,EAAKtyB,GACL,CAAC,EACD,CAAE+6B,cAAc,IAEjBjrB,GACCU,EAAAA,EAAAA;CAEC95B,EAAAA,EAAAA,IAAI,6BACJ0gC,EAAAA,GAAAA,gBAAgBkb,EAAK/xB,MAAM4W,WAE5B,CACCzvB,KAAM,WACNsY,GAAI,0BAGP,CAAE,MAAQqX,GACT,MAAMC,EACLD,EAAME,SACS,kBAAfF,EAAMj9B,KACHi9B,EAAME,SACN7gC,EAAAA,EAAAA,IACA,yDAGJ8gC,EAAmBF,EAAc,CAChC5vB,KAAM,YAER,KAGChR,EAAAA,EAAAA,IAAI,YAGA,GAiHC0yI,GAAiB,CAC7BppH,GAAI,YACJ0B,OAAOhrB,EAAAA,EAAAA,IAAI,QACXolE,WAAW,EACX5+C,KAAMq6G,GACN17D,UAAAA,CAAYvpB,GACX,MAAuB,UAAhBA,EAAK/oC,MACb,EACA82B,QAAAA,CAAUiS,GACT5mD,SAASmJ,SAASg9B,KAAOygB,EAAKgD,IAC/B,GAuBY+zF,GAAsB,CAClCrpH,GAAI,sBACJ0B,OAAOhrB,EAAAA,EAAAA,IAAI,kBACXolE,WAAW,EACXD,WAAcvpB,IAAU,IAAAg3F,EAAAC,EACvB,GAAqB,UAAhBj3F,EAAK/oC,OACT,OAAO,EAER,MAAMigI,EAC6C,QAD/BF,EACnBh3F,GAAM/F,SAAU,yBAA2B,IAAKvsB,UAAE,IAAAspH,EAAAA,EAAI,KACjD19F,EAC4C,QAD9B29F,EACnBj3F,GAAM/F,SAAU,qBAAuB,IAAK7jC,aAAK,IAAA6gI,EAAAA,EAAI,EACtD,OAAOC,GAAkB59F,EAAiB,CAAC,EAE5CvL,QAAAA,CAAUiS,GACT,MAAMzgB,GAAOa,EAAAA,GAAAA,cAAc,eAAgB,CAC1Cia,SAAU2F,GAAM/F,SAAU,yBAA2B,IAAKvsB,KAE3Dt0B,SAASmJ,SAASg9B,KAAOA,CAC1B,GCrPK43G,GAAmB,IAElB,SAASC,KACf,MAAQxrF,SAAU+xE,GAAkBhyE,MAC5B0rF,EAAQC,IAActkH,EAAAA,EAAAA,WAAU,GAClCukH,GAAiBpsH,EAAAA,EAAAA,YACpBlD,IACD,MAAMuvH,EACLvvH,EAAQ4W,GAAAA,OAAY24G,wBACrB,OAASH,IAAYG,CAAqB,GAE3C,CAAEH,IA0CH,OAlCApoH,EAAAA,EAAAA,YAAW,KACV,IAAI23D,EAQJ,OANOywD,IACNzwD,EAAU7gF,YAAY,KACrBuxI,GAAW,EAAM,GACfH,KAGG,KACNtwD,aAAcD,EAAS,CACvB,GACC,CAAEywD,KAELpoH,EAAAA,EAAAA,YAAW,KACV,GAAKsoH,EAAiB,CASrB,MAAM3wD,EAAU7gF,YAAY,KAC3BuxI,GAAW,EAAM,GACf,KAEH,MAAO,KACNzwD,aAAcD,EAAS,CAEzB,IACE,CAAE2wD,KAEIF,IAAY1Z,CACtB,CC3De,SAAS8Z,IAAa,SAAEl1G,EAAQ,OAAED,IAChDu5B,GAAqB,CACpBv5B,SACAC,aAED,MAAMm1G,EAAkBN,KAExB,OAAO/1I,EAAAA,EAAAA,eAACq8H,GAAM,CAACtvG,UAAYspH,GAC5B,CC4CA,MAAQ7hG,gCAA+B,GAAE7c,eAAcA,IAAKH,GAC3DI,GAAAA,cAEOwG,WAAUA,IAAK5G,GAAQ6G,GAAAA,aAEzBsI,GAAc,GAEdutG,GAA2B,CAChC,CAAE7zG,IAAgB,CAAC,EACnB,CAAED,IAAe,CAChB+lC,WAAY,UACZC,aAAc,SAEf,CAAE9lC,IAAe,CAChB8lC,aAAc,QACdD,WAAY,YAIRguE,GAAe,CACpBpgI,KAAMssB,GACN2e,OAAQ,GACRxH,KAAM,EACN+uB,QAAS,GAGTE,aAAc,CAAE,WAChBtqB,OAAQ,CAAC,EACTmqB,QAAS,IAGV,SAAStT,GAAsB1kD,EAAQ,IACtC,OAAOpI,KAAeoI,EAAMynB,OAAOmnB,cACpC,CAEA,SAASo5F,IAAe,KAAEtvH,EAAI,SAAEqtH,IAC/B,OAAKA,IAAa/zG,IAEhBtgC,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACGgZ,EAAAA,GAAAA,gBAAgBzc,EAAK4F,OAAO4W,YAAczgC,EAAAA,EAAAA,IAAI,gBAMlD/C,EAAAA,EAAAA,eAACgrC,EAAAA,qBAAM,CAACC,QAAU,IACjBjrC,EAAAA,EAAAA,eAACszE,EAAAA,mBAAI,CAAC7pD,GAAG,OAAOW,UAAU,qCACzBpqB,EAAAA,EAAAA,eAACm/B,GAAI,CACJX,OAAS,CACRyC,OAAQja,EAAKqF,GACb6U,SAAUla,EAAKjT,KACfotB,OAAQ,UAGPsC,EAAAA,GAAAA,gBAAgBzc,EAAK4F,OAAO4W,YAC7BzgC,EAAAA,EAAAA,IAAI,gBAKV,CAEA,SAASwzI,IAAa,KAAEvvH,EAAI,SAAEqtH,IAC7B,MAAM,KAAE9nI,EAAI,KAAEgd,EAAI,SAAEsiC,GAAaZ,GAAYjkC,EAAKjT,KAAMiT,EAAKqF,IACvDmqH,EAAWnC,IAAa/zG,GAE9B,OACCtgC,EAAAA,EAAAA,eAACqzB,EAAAA,qBAAM,CAAC6X,UAAU,OAAOD,QAAU,GAChCurG,GAAY3qF,IAAY7rD,EAAAA,EAAAA,eAACisD,GAAW,CAACJ,SAAWA,IAChD2qF,IAAc3qF,IACf7rD,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,kCACdpqB,EAAAA,EAAAA,eAACyzB,EAAAA,KAAI,CAAClK,KAAOA,MAGfvpB,EAAAA,EAAAA,eAAA,YAAQuM,GAGX,CAEA,SAASkqI,IAAiB,QAAEjnH,EAAO,SAAE6kH,IACpC,MAAMzyG,EAAWwuG,MACTr4G,EAAkB,SAAYJ,GAAgB,oBAChDsD,GAASnJ,EAAAA,EAAAA,UAAS,KAChBkI,EAAAA,EAAAA,OAAOxK,IACZ,CAAEA,IACL,OAAOyL,GAAQv/B,QAWdsE,EAAAA,EAAAA,eAACw0C,GAA+B,CAAC5S,SAAWA,IAC3C5hC,EAAAA,EAAAA,eAAA,OACCoqB,UAAa,4CAA4CiqH,IACzD37I,MAAQ,CAAEq/B,qBAEV/3B,EAAAA,EAAAA,eAAC61E,GAAAA,aAAY,CAAC56C,OAASA,MAflB,IAmBT,CAEe,SAASy7G,KACvB,MAAQzgB,EAAY0gB,IAAkBhlH,EAAAA,EAAAA,UAAU,OACxCuQ,EAAMsyG,IAAY7iH,EAAAA,EAAAA,UAAUwiH,KAC5BjyF,QAAS00F,EAAcr+F,YAAas+F,IAC3Cx0F,EAAAA,GAAAA,kBAAkB,WAAYhjB,GAAoB,CACjDgJ,UAAW,IAEP9J,EAAUH,KAEV6tC,GAAoB95C,EAAAA,EAAAA,cACvBm/B,GACDqlF,EAAiC,IAAlBrlF,GAAO51D,OAAe41D,EAAO,GAAIjlC,GAAK,OACtD,CAAEsqH,IAGG/+F,GAAU9lB,EAAAA,EAAAA,UAAS,KACxB,IAAO8kH,EACN,OAAOjwG,GAER,MAAMmwG,EAAa,IAAI5sF,IAIvB,OAHA0sF,EAAa99I,SAAWupC,IACvBy0G,EAAW1sF,IAAK/nB,EAASkpB,YAAa,IAEhChwD,MAAM6S,KAAM0oI,GAAajgJ,KAAOoiD,IAAM,CAC5C7hD,MAAO6hD,EACPlrB,MAAOkrB,KACH,GACH,CAAE29F,IAEC/rE,GAAS/4C,EAAAA,EAAAA,UACd,IAAM,CACL,CACCjc,QAAQ9S,EAAAA,EAAAA,IAAI,WACZspB,GAAI,UACJznB,OAAQA,EAAIoiB,WAEVhnB,EAAAA,EAAAA,eAACy2I,GAAe,CACfjnH,QAAUxI,EAAKwI,QAAQ9Z,IACvB2+H,SAAWnyG,EAAKnuB,OAInB4+B,SAAU,IACVC,SAAU,IACV+2B,eAAe,GAEhB,CACC9zD,QAAQ9S,EAAAA,EAAAA,IAAI,YACZspB,GAAI,QACJk9D,SAAUA,EAAIviE,UAAYA,EAAK4F,OAAO4W,SACtC5+B,OAAQA,EAAIoiB,WACXhnB,EAAAA,EAAAA,eAACs2I,GAAa,CAACtvH,KAAOA,EAAOqtH,SAAWnyG,EAAKnuB,OAE9C6+B,SAAU,IACV62B,cAAc,GAEf,CACC5zD,QAAQ9S,EAAAA,EAAAA,IAAI,eACZspB,GAAI,cACJk9D,SAAUA,EAAIviE,UAAYA,EAAKmN,YAC/BvvB,OAAQA,EAAIoiB,UACJA,EAAKmN,aACXsP,EAAAA,GAAAA,gBAAgBzc,EAAKmN,cAErBn0B,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAACi0B,EAAAA,mBAAI,CAAChG,QAAQ,QAAQ,cAAY,QAAO,MAGzCjuB,EAAAA,EAAAA,eAAC8xC,EAAAA,eAAc,MACZ/uC,EAAAA,EAAAA,IAAI,qBAKV6vC,SAAU,IACV+2B,eAAe,GAEhB,CACC9zD,QAAQ9S,EAAAA,EAAAA,IAAI,UACZspB,GAAI,SACJk9D,SAAUA,EAAIviE,UAAYA,EAAKukC,YAC/B3mD,OAAQA,EAAIoiB,WACJhnB,EAAAA,EAAAA,eAACu2I,GAAW,CAAClC,SAAWnyG,EAAKnuB,KAAOiT,KAAOA,IAEnDyiD,cAAc,EACd11D,KAAMwsB,GACN8pC,SAAUzyB,KAGZ,CAAEA,EAAS1V,EAAKnuB,QAGX,KAAEgC,EAAI,eAAEo7H,IAAmBr/G,EAAAA,EAAAA,UAAS,KACzC,IAAO8kH,EACN,MAAO,CACN7gI,KAAM4wB,GACNwqG,eAAgB,CAAEjoB,WAAY,EAAGkoB,WAAY,IAG/C,IAAI2F,EAAoB,IAAKH,GAE7B,GAAK10G,EAAK8c,OAAS,CAClB,MAAMg4F,EAAmBhkF,GAAsB9wB,EAAK8c,QACpD+3F,EAAoBA,EAAkB34I,QAAU4oB,GAG9CgsC,GAFahsC,EAAK4F,OAAO4W,UAAYxc,EAAK4Z,MAEZhV,SAC7BorH,IAEDhkF,GAAsBhsC,EAAKmN,aAAcvI,SACxCorH,IAIJ,CAmCA,OAhCK90G,EAAKokC,QAAQ5qE,OAAS,GAC1BwmC,EAAKokC,QAAQxtE,SAAWsF,IAEL,WAAjBA,EAAOooE,OACPpoE,EAAOuoE,WAAanmC,IACjBpiC,EAAOhH,MAEV2/I,EAAoBA,EAAkB34I,QAAU4oB,GACxCA,EAAKukC,cAAgBntD,EAAOhH,QAGnB,WAAjBgH,EAAOooE,OACPpoE,EAAOuoE,WAAalmC,IACjBriC,EAAOhH,QAEV2/I,EAAoBA,EAAkB34I,QAAU4oB,GACxCA,EAAKukC,cAAgBntD,EAAOhH,QAErC,IAKG8qC,EAAK4lB,OACTivF,EAAoBtG,GAAkB,CACrC16H,KAAMghI,EACN70G,OACA2oC,SACA6lE,WAAY,CAAE,YAITQ,GAAsB,CAC5Bn7H,KAAMghI,EACN70G,QACE,GACD,CAAE00G,EAAc10G,EAAM2oC,IAEnBosE,EJvSA,WACN,MAAM,eAAEpyG,IAAmB7a,EAAAA,EAAAA,aAAa0gB,KAClC,uBAAE0iB,IAA2BpjC,EAAAA,EAAAA,aAAawT,GAAAA,QAC1C,oBAAErB,EAAmB,kBAAE0H,IAC5B7Z,EAAAA,EAAAA,aAAaoS,GAAAA,OACd,OAAOtK,EAAAA,EAAAA,UACN,KAAM,CACLzF,GAAI,iBACJ0B,OAAOhrB,EAAAA,EAAAA,IAAI,kBACXolE,WAAW,EACX5+C,KAAM6wB,GACN8tB,WAAY9lC,GACZ,cAAMsK,CAAUrK,GACf,UACOwC,EAAgBxC,EAAU,CAAEyC,WAAW,UACvCsoB,EACL,WACA/qB,EAAStuB,KACTsuB,EAAShW,IAGV8P,GACCU,EAAAA,EAAAA;CAEC95B,EAAAA,EAAAA,IAAI,mBACJ0gC,EAAAA,GAAAA,gBAAgBpB,EAASzV,MAAM4W,WAEhC,CACCzvB,KAAM,WACNsY,GAAI,+BAGP,CAAE,MAAQqX,GACT,MAAMspB,EACL3qB,EAAStuB,OAASsrB,IACft8B,EAAAA,EAAAA,IACA,oDAEAA,EAAAA,EAAAA,IACA,wDAEE4gC,EACLD,EAAME,SAA0B,kBAAfF,EAAMj9B,KACpBi9B,EAAME,QACNopB,EAEJnpB,EAAmBF,EAAc,CAAE5vB,KAAM,YAC1C,CACD,KAED,CACC8vB,EACA1H,EACA0I,EACAuoB,GAGH,CI8O6B8pF,GACtBjuH,GAAU6I,EAAAA,EAAAA,UACf,IAAM,CACLmlH,EACA3B,GACAC,GACAG,KAED,CAAEuB,IAGG3tE,GAAen3C,EAAAA,EAAAA,cAClB0iH,IACIA,EAAQ9gI,OAASmuB,EAAKnuB,OAC1B8gI,EAAU,IACNA,EACH14F,OAAQ,IACJ+3F,GAA0BW,EAAQ9gI,SAKxCygI,EAASK,EAAS,GAEnB,CAAE3yG,EAAKnuB,KAAMygI,IAGd,OACCx0I,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAACgtI,GAAI,CACJ5iH,UACC8X,EAAKnuB,OAASusB,GACX,qCACA,KAEJ1T,OAAQ7pB,EAAAA,EAAAA,IAAI,aACZkmB,SACCjpB,EAAAA,EAAAA,eAAC0oD,GAAc,CACdC,aAAetpB,GACfknB,UAAW,EACXt6B,YAAc,CAAEgC,QAAS,eAI3BjuB,EAAAA,EAAAA,eAACmzI,GAAS,CACThC,eAAiBA,EACjBtmE,OAASA,EACT5hD,QAAUA,EACVlT,KAAOA,EACPgX,UAAY8pH,EACZ30G,KAAOA,EACPonC,aAAeA,EACf2C,kBAAoBA,EACpBlB,mBACG7oC,EAAKukC,cAAc76C,SAAU,cAIhCsW,EAAKnuB,OAASusB,KACftgC,EAAAA,EAAAA,eAACgtI,GAAI,MACJhtI,EAAAA,EAAAA,eAAA,OACCoqB,UAAU,mCACVO,SAAW,EACXuB,KAAK,SACL0kB,UAAc5R,IACb,MAAM,QAAE6R,GAAY7R,EACf6R,IAAYC,GAAAA,OAASD,IAAYiF,GAAAA,OACrCvX,EAAQlnC,KAAM,CACb4pC,OAAQg1F,EACR/0F,SAAU7B,GACV8B,OAAQ,QAEV,EAEDlX,QAAUA,IACTsU,EAAQlnC,KAAM,CACb4pC,OAAQg1F,EACR/0F,SAAU7B,GACV8B,OAAQ,UAIO,OAAf80F,GACDj2H,EAAAA,EAAAA,eAACo2I,GAAW,CACXn1G,OAASg1F,EACT/0F,SAAW7B,MAGZr/B,EAAAA,EAAAA,eAAA,OACCtH,MAAQ,CACPy+I,QAAS,OACTC,cAAe,SACfC,eAAgB,SAChBjnG,UAAW,SACXp3C,OAAQ,UAGTgH,EAAAA,EAAAA,eAAA,UAAK+C,EAAAA,EAAAA,IAAI,oCAQjB,CClZA,OAnBA,UAAgB,GAAEspB,EAAE,KAAE9kB,EAAO,CAAE,QAAS,SAAU,gBAAkBxG,IACnE,MAAQyrC,OAAQwZ,IAAUwb,EAAAA,GAAAA,iBAAiB,OAAQ,QAASn1C,GACtDirH,EAAc/vI,EAAK2xC,MACtB91C,KAAU4iD,GAAOkqB,eAAet6B,MAAOxyC,KAEpCm0I,EAAevxF,GAAOkqB,eAAet6B,MAAO0hG,GAClD,OAAOC,GAKNv3I,EAAAA,EAAAA,eAAA,UACMe,EACL6G,IAAM2vI,EAAaxrF,WACnBM,IAAMrG,EAAMqqB,WAPN,IAUT,EC0BA,MAAQ3vC,YAAW,GAAEtC,WAAUA,IAAK5G,GAAQ6G,GAAAA,aAEtCsI,GAAc,GA+Dd6wG,GAAW,CAChB,CAAEpgJ,MAAO,QAAS22B,OAAOhrB,EAAAA,EAAAA,IAAI,UAC7B,CAAE3L,MAAO,SAAU22B,OAAOhrB,EAAAA,EAAAA,IAAI,cAC9B,CAAE3L,MAAO,UAAW22B,OAAOhrB,EAAAA,EAAAA,IAAI,mBAC/B,CAAE3L,MAAO,UAAW22B,OAAOhrB,EAAAA,EAAAA,IAAI,YAC/B,CAAE3L,MAAO,UAAW22B,OAAOhrB,EAAAA,EAAAA,IAAI,cAC/B,CAAE3L,MAAO,QAAS22B,OAAOhrB,EAAAA,EAAAA,IAAI,WAExB00I,GAAmB,uCAEV,SAASC,KACvB,MAAMx2G,EAAW,QACTgB,EAAMsyG,GAzEf,SAAkBzgI,GACjB,MACCyqB,QAAQ,WAAEkuC,EAAa,MAAK,SAAExX,EAAW,UACtCx0B,KACEi3G,EACQ,UAAbziF,GACAwR,GAAe3yD,GAAOmlC,MAAM,EAAItY,UAAYA,IAAS8rC,KAAcxqC,MAC5DA,EAAMsyG,IAAY7iH,EAAAA,EAAAA,UAAUgmH,IAEpC/pH,EAAAA,EAAAA,YAAW,KACL+pH,GACJnD,EAASmD,EACV,GACE,CAAEA,IACL,MAAMC,GAAmB9tH,EAAAA,EAAAA,YACtBlD,IACD,GAAkB,SAAbsuC,EACJ,OAED,MAAM,sBAAEvvB,GAA0B/e,EAAQ4W,GAAAA,OAM1C,OALuBmI,EACtB,WACA,eACAlQ,OAAQi3C,GAEY,GAEtB,CAAEA,EAAYxX,KAET,iBAAEjyB,IAAqBjZ,EAAAA,EAAAA,aAAawT,GAAAA,OAEpCq6G,GAAa/lH,EAAAA,EAAAA,UAAS,IAE1B8lH,GAAkBpoH,SAAWuK,KAAKC,MAAO49G,GAAkBpoH,UAE1D,CAAEooH,GAAkBpoH,UACjBsoH,GAAgB3lH,EAAAA,EAAAA,cACnB4lH,IACD90G,EACC,WACA,eACA20G,GAAkBvrH,GAClB,CACCmD,QAASuK,KAAKE,UAAW89G,IAE1B,GAEF,CAAE90G,EAAkB20G,GAAkBvrH,KAGvC,MAAkB,UAAb6oC,EACG,CAAEhzB,EAAMsyG,GACS,SAAbt/E,GAAuB2iF,EAC3B,CAAEA,EAAYC,GAGf,CAAEpxE,GAAe3yD,GAAQ,GAAImuB,KAAMsyG,EAC3C,CAgB2BwD,CAAS92G,IAC3B+2G,EAAQC,IAAcvmH,EAAAA,EAAAA,UAAU,MAClC4M,EAAUH,KAEV6tC,GAAoB95C,EAAAA,EAAAA,cACvBm/B,GAAW4mF,EAA6B,IAAlB5mF,GAAO51D,OAAe41D,EAAO,GAAIjlC,GAAK,OAC9D,CAAE6rH,IAGGhsE,GAAkB/5C,EAAAA,EAAAA,cACrBm/B,IACqC,IAAlBA,GAAO51D,QAC1B6iC,EAAQlnC,KAAM,CACb4pC,OAAQqwB,EAAO,GAAIjlC,GACnB6U,YAEF,GAED,CAAE3C,EAAS2C,IAGN6d,GAAYjtB,EAAAA,EAAAA,UAAS,KAC1B,MAAMw0C,EAAU,CAAC,EA0BjB,OAzBApkC,EAAKokC,QAAQxtE,SAAWsF,IAEL,WAAjBA,EAAOooE,OACPpoE,EAAOuoE,WAAanmC,KAEpB8lC,EAAQ1wD,OAASxX,EAAOhH,OAGP,WAAjBgH,EAAOooE,OACPpoE,EAAOuoE,WAAanmC,GAEpB8lC,EAAQrtB,OAAS76C,EAAOhH,MAEP,WAAjBgH,EAAOooE,OACPpoE,EAAOuoE,WAAalmC,KAEpB6lC,EAAQ6xE,eAAiB/5I,EAAOhH,MACjC,IAIMkvE,EAAQ1wD,QAA6B,KAAnB0wD,EAAQ1wD,SAChC0wD,EAAQ1wD,OAAS6hI,IAGX,CACNpvG,SAAUnG,EAAKqkC,QACf/uB,KAAMtV,EAAKsV,KACX4gG,OAAQ,SACRnlI,MAAOivB,EAAK4lB,MAAMpW,UAClB4rB,QAASp7B,EAAK4lB,MAAM0e,MACpBxnB,OAAQ9c,EAAK8c,UACVsnB,EACH,GACC,CAAEpkC,KAEJggB,QAAS0iB,EACTrsB,YAAawlB,EAAc,WAC3BmrD,EAAU,WACVkoB,IACG/uF,EAAAA,GAAAA,kBAAkB,WAAYnhB,EAAU6d,IAEpCmD,QAAStK,EAASW,YAAa8/F,IACtCh2F,EAAAA,GAAAA,kBAAkB,OAAQ,QAErB8uF,GAAiBr/G,EAAAA,EAAAA,UACtB,KAAM,CACLo3F,aACAkoB,gBAED,CAAEloB,EAAYkoB,IAGTvmE,GAAS/4C,EAAAA,EAAAA,UACd,IAAM,CACL,CACCzF,GAAI,iBACJxW,QAAQ9S,EAAAA,EAAAA,IAAI,kBACZwmF,SAAUA,EAAIviE,UAAYA,EAAKipD,eAC/BrrE,OAAQA,EAAIoiB,UACRA,EAAKipD,gBACPjwE,EAAAA,EAAAA,eAACs4I,GAAK,CACLluH,UAAU,uCACViC,GAAKrF,EAAKipD,eACV1oE,KACC26B,EAAKnuB,OAASqsB,GACX,CAAE,QAAS,OAAQ,SAAU,aAC7B,CAAE,YAAa,SAAU,QAAS,UAGpC,KACLupC,eAAe,GAEhB,CACC9zD,QAAQ9S,EAAAA,EAAAA,IAAI,SACZspB,GAAI,QACJk9D,SAAUA,EAAIviE,UAAYA,EAAK4F,OAAO4W,SACtC5+B,OAAQA,EAAIoiB,WAEVhnB,EAAAA,EAAAA,eAACgrC,EAAAA,qBAAM,CAACC,QAAU,IACjBjrC,EAAAA,EAAAA,eAACszE,EAAAA,mBAAI,CACJ7pD,GAAG,OACHW,UAAU,oCAER,CAAEiW,GAAcD,IAAcxU,SAC/BsW,EAAKnuB,OAEL/T,EAAAA,EAAAA,eAACm/B,GAAI,CACJX,OAAS,CACRyC,OAAQja,EAAKqF,GACb6U,SAAUla,EAAKjT,KACfotB,OAAQ,UAGPsC,EAAAA,GAAAA,gBACDzc,EAAK4F,OAAO4W,YACRzgC,EAAAA,EAAAA,IAAI,gBAGV0gC,EAAAA,GAAAA,gBAAgBzc,EAAK4F,OAAO4W,YAC5BzgC,EAAAA,EAAAA,IAAI,gBAMT6vC,SAAU,IACV62B,cAAc,GAEf,CACC5zD,QAAQ9S,EAAAA,EAAAA,IAAI,UACZspB,GAAI,SACJk9D,SAAUA,EAAIviE,UAAYA,EAAKuxH,WAAWt/F,OAAQ,IAAKvhD,KACvDqc,KAAMwsB,GACN8pC,SACCzyB,GAAS/gD,KAAK,EAAIw1B,KAAI30B,WAAM,CAC3BN,MAAOi1B,EACP0B,MAAOr2B,OACC,IAEX,CACCme,QAAQ9S,EAAAA,EAAAA,IAAI,UACZspB,GAAI,SACJk9D,SAAUA,EAAIviE,WAAM,IAAAwxH,EAAA,OAEX,QAFWA,EACnBhB,GAASt+F,MAAM,EAAI9hD,WAAaA,IAAU4vB,EAAKpR,UAC5CmY,aAAK,IAAAyqH,EAAAA,EAAIxxH,EAAKpR,MAAM,EACxB7B,KAAMwsB,GACN8pC,SAAUmtE,GACV7tE,eAAe,EACfO,SAAU,CACTD,UAAW,CAAEzpC,MAGf,CACC3qB,QAAQ9S,EAAAA,EAAAA,IAAI,QACZspB,GAAI,OACJk9D,SAAUA,EAAIviE,UAAYA,EAAK4+B,KAC/BhhD,OAAQA,EAAIoiB,WACX,MAAMunD,GAAgBC,EAAAA,GAAAA,WACrBlmC,EAAAA,GAAAA,eAAc4/E,QAAQD,qBACtBx5C,EAAAA,GAAAA,SAASznD,EAAK4+B,OAEf,OAAO5lD,EAAAA,EAAAA,eAAA,YAAQuuE,EAAsB,KAIxC,CAAE32B,EAAS1V,EAAKnuB,OAGX0kI,ELxMA,WACN,MAAM,oBAAEt8G,EAAmB,kBAAE0H,IAC5B7Z,EAAAA,EAAAA,aAAaoS,GAAAA,QACR,mBAAE+G,IAAuBnZ,EAAAA,EAAAA,aAAawT,GAAAA,OAE5C,OAAO1L,EAAAA,EAAAA,UACN,KAAM,CACLzF,GAAI,qBACJ0B,OAAOhrB,EAAAA,EAAAA,IAAI,sBACXolE,WAAW,EACX5+C,KAAMq9C,GACNsB,UAAAA,EAAY,OAAEtyD,IACb,MAAkB,UAAXA,CACR,EACA,cAAM82B,CAAUiS,GACf,UACOxb,EACL,WACAwb,EAAK5qC,KACL4qC,EAAKtyB,GACL,CAAE+W,OAAO,GACT,CAAEgkB,cAAc,IAEjBjrB,GACCU,EAAAA,EAAAA;CAEC95B,EAAAA,EAAAA,IAAI,8BACJ0gC,EAAAA,GAAAA,gBAAgBkb,EAAK/xB,MAAM4W,WAE5B,CACCzvB,KAAM,WACNsY,GAAI,sCAGP,CAAE,MAAQqX,GACT,MAAMC,EACLD,EAAME,SAA0B,kBAAfF,EAAMj9B,KACpBi9B,EAAME,SACN7gC,EAAAA,EAAAA,IACA,0DAGJ8gC,EAAmBF,EAAc,CAAE5vB,KAAM,YAC1C,CACD,KAED,CAAEooB,EAAqB0H,EAAmBV,GAE5C,CKwJqCu1G,GAC9BC,ELvJA,WACN,MAAM,oBAAEx8G,EAAmB,kBAAE0H,IAC5B7Z,EAAAA,EAAAA,aAAaoS,GAAAA,QACR,iBAAE6G,EAAgB,uBAAEmqB,IACzBpjC,EAAAA,EAAAA,aAAawT,GAAAA,OAEd,OAAO1L,EAAAA,EAAAA,UACN,KAAM,CACLzF,GAAI,UACJ0B,OAAOhrB,EAAAA,EAAAA,IAAI,WACXolE,WAAW,EACX5+C,KAAM6wB,GACN8tB,UAAAA,EAAY,OAAEtyD,IACb,MAAkB,UAAXA,CACR,EACA,cAAM82B,CAAUiS,SACT1b,EAAkB,WAAY0b,EAAK5qC,KAAM4qC,EAAKtyB,GAAI,CACvDzW,OAAQ,UAET,UACOw3C,EACL,WACAzO,EAAK5qC,KACL4qC,EAAKtyB,GACL,CAAE+6B,cAAc,IAEjBjrB,GACCU,EAAAA,EAAAA;CAEC95B,EAAAA,EAAAA,IAAI,4BACJ0gC,EAAAA,GAAAA,gBAAgBkb,EAAK/xB,MAAM4W,WAE5B,CACCzvB,KAAM,WACNsY,GAAI,2BAGP,CAAE,MAAQqX,GACT,MAAMC,EACLD,EAAME,SAA0B,kBAAfF,EAAMj9B,KACpBi9B,EAAME,SACN7gC,EAAAA,EAAAA,IACA,+CAGJ8gC,EAAmBF,EAAc,CAAE5vB,KAAM,YAC1C,CACD,KAED,CACCooB,EACA0H,EACAZ,EACAmqB,GAGH,CK+F2BwrF,GACpBC,ELjFA,WACN,MAAMt6G,EAAUH,KAChB,OAAOtM,EAAAA,EAAAA,UACN,KAAM,CACLzF,GAAI,YACJ0B,OAAOhrB,EAAAA,EAAAA,IAAI,QACXmlE,UAAAA,EAAY,OAAEtyD,IACb,MAAkB,UAAXA,CACR,EACA82B,QAAAA,CAAUiS,GACTpgB,EAAQlnC,KAAM,CACb4pC,OAAQ0d,EAAKtyB,GACb6U,SAAUyd,EAAK5qC,KACfotB,OAAQ,QAEV,KAED,CAAE5C,GAEJ,CK8DwBu6G,GACjB7vH,GAAU6I,EAAAA,EAAAA,UACf,IAAM,CACL2jH,GACAD,GACAmD,EACAF,EACAI,EACAnD,KAED,CAAE+C,EAA6BE,EAAmBE,IAE7CvvE,GAAen3C,EAAAA,EAAAA,cAClB0iH,IACIA,EAAQ9gI,OAASmuB,EAAKnuB,OAC1B8gI,EAAU,IACNA,EACH14F,OAAQ,IACJ+pB,GAA8B2uE,EAAQ9gI,SAK5CygI,EAASK,EAAS,GAEnB,CAAE3yG,EAAKnuB,KAAMygI,KAGNuE,EAAkBC,IAAwBrnH,EAAAA,EAAAA,WAAU,GACtD9J,GAAYsK,EAAAA,EAAAA,cAAa,KACvB4mH,GACNC,GAAqB,EACtB,GACE,CAAED,IACCjxH,GAAaqK,EAAAA,EAAAA,cAAa,KAC1B4mH,GACJC,GAAqB,EACtB,GACE,CAAED,IACC9yE,GAAgB9zC,EAAAA,EAAAA,cACrB,EAAIpe,OAAMsY,SACTkS,EAAQlnC,KAAM,CACb4pC,OAAQ5U,EACR6U,SAAUntB,EACVotB,OAAQ,SAETrZ,GAAY,GAEb,CAAEyW,IAIH,OACCv+B,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAACgtI,GAAI,CACJ5iH,UACC8X,EAAKnuB,OAASusB,GACX,iCACA,KAEJ1T,OAAQ7pB,EAAAA,EAAAA,IAAI,SACZkmB,SACCjpB,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAAC0pB,EAAAA,OAAM,CAACuE,QAAQ,UAAUhE,QAAUpC,IACjC9kB,EAAAA,EAAAA,IAAI,iBAELg2I,IACD/4I,EAAAA,EAAAA,eAACskE,GAAe,CACfnE,OAAS8F,EACT/3C,QAAUpG,OAMd9nB,EAAAA,EAAAA,eAACmzI,GAAS,CACThC,eAAiBA,EACjBtmE,OAASA,EACT5hD,QAAUA,EACVlT,KAAO6uD,GAASj+B,GAChB5Z,UAAYgxC,GAAkBs6E,EAC9Bn2G,KAAOA,EACPonC,aAAeA,EACf2C,kBAAoBA,EACpBC,gBAAkBA,KAGlBhqC,EAAKnuB,OAASusB,KACftgC,EAAAA,EAAAA,eAACgtI,GAAI,MACJhtI,EAAAA,EAAAA,eAAA,OACCoqB,UAAU,+BACVO,SAAW,EACXuB,KAAK,SACL0kB,UAAc5R,IACb,MAAM,QAAE6R,GAAY7R,EACf6R,IAAYC,GAAAA,OAASD,IAAYiF,GAAAA,OACrCvX,EAAQlnC,KAAM,CACb4pC,OAAQg3G,EACR/2G,WACAC,OAAQ,QAEV,EAEDlX,QAAUA,IACTsU,EAAQlnC,KAAM,CACb4pC,OAAQg3G,EACR/2G,WACAC,OAAQ,UAIG,OAAX82G,GACDj4I,EAAAA,EAAAA,eAACo2I,GAAW,CACXn1G,OAASg3G,EACT/2G,SAAWA,KAGZlhC,EAAAA,EAAAA,eAAA,OACCtH,MAAQ,CACPy+I,QAAS,OACTC,cAAe,SACfC,eAAgB,SAChBjnG,UAAW,SACXp3C,OAAQ,UAGTgH,EAAAA,EAAAA,eAAA,UAAK+C,EAAAA,EAAAA,IAAI,gCAQjB,CClaA,MAAQ29B,YAAWA,IAAKlJ,GAAQ6G,GAAAA,aAEjB,SAAS46G,KACvB,MACCz6G,QAAQ,KAAE3L,IACP6N,KAEJ,MAAc,qBAAT7N,GACG7yB,EAAAA,EAAAA,eAACk5I,GAAa,MACD,0BAATrmH,GACJ7yB,EAAAA,EAAAA,eAACq1I,GAAiB,MACL,cAATxiH,EACJl6B,QAAQqtE,0BACdhmE,EAAAA,EAAAA,eAACu0I,GAAiB,OAElBv0I,EAAAA,EAAAA,eAACwwI,GAAY,MAEH73I,QAAQqtE,0BAAqC,UAATnzC,GACxC7yB,EAAAA,EAAAA,eAAC03I,GAAS,MAGX,IACR,CCqBA,MAAM,YAAEyB,IAAgB3hH,GAAQ4hH,GAAAA,cAC1B,kBAAEC,IAAsB7hH,GAAQ8hH,GAAAA,cAC9B54G,YAAWA,IAAKlJ,GAAQ6G,GAAAA,cACxB1G,eAAcA,IAAKH,GAAQI,GAAAA,aAE7B2hH,GAAqB,GAEZ,SAASC,KAEvB59E,KtDpDc,WACd,MAAMr9B,EAAUH,MACV,OAAEI,GAAWkC,KACbsB,GAAalY,EAAAA,EAAAA,YAChBlD,GAAY4Q,GAAQ5Q,EAAQ8jB,KAAkBf,iBAChD,KAEK,cAAEnD,GAAkBhP,IAAQxN,EAAAA,EAAAA,aAAa0gB,KACzC+uG,GAAoB/rH,EAAAA,EAAAA,QAAQsU,IAC1Bb,OAAQu4G,GAAgBl7G,EAC1Bm7G,GAAqBjsH,EAAAA,EAAAA,QAAQgsH,GAC7BE,GAAmBlsH,EAAAA,EAAAA,QAAQ8Q,IACjC5Q,EAAAA,EAAAA,YAAW,KACVgsH,EAAiB10I,QAAUs5B,CAAM,GAC/B,CAAEA,KAEL5Q,EAAAA,EAAAA,YAAW,KACV6rH,EAAkBv0I,QAAU88B,EACR,SAAfA,IAKW,SAAfA,GACA23G,EAAmBz0I,UAAY88B,GAE/BzD,EAAQlnC,KAAM,IACVuiJ,EAAiB10I,QACpBi8B,OAAQ,SAKM,SAAfa,QAC+Bvc,IAA/Bk0H,EAAmBz0I,SAEnBq5B,EAAQlnC,KAAM,IACVuiJ,EAAiB10I,QACpBi8B,YAAQ1b,IAEV,GACE,CAAEuc,EAAYzD,KAEjB3Q,EAAAA,EAAAA,YAAW,KACV+rH,EAAmBz0I,QAAUw0I,EACR,SAAhBA,GAAwD,SAA9BD,EAAkBv0I,QAChDshC,EAAe,QAEC,SAAhBkzG,GAC8B,SAA9BD,EAAkBv0I,SAElBshC,EAAe,OAChB,GACE,CAAEkzG,EAAalzG,GACnB,CsDDCqzG,GACAV,MxC4UAW,EAAAA,GAAAA,kBAAkB,CACjBpiJ,KAAM,wBACNqiJ,KAAMzN,GACNjjH,QAAS,sBAGVywH,EAAAA,GAAAA,kBAAkB,CACjBpiJ,KAAM,oCACNqiJ,KAAM5N,GACN9iH,QAAS,sBAGVywH,EAAAA,GAAAA,kBAAkB,CACjBpiJ,KAAM,qCACNqiJ,KAAMxN,MAGPuN,EAAAA,GAAAA,kBAAkB,CACjBpiJ,KAAM,0BACNqiJ,KAAMlN,GACNxjH,QAAS,sBAGVywH,EAAAA,GAAAA,kBAAkB,CACjBpiJ,KAAM,yBACNqiJ,KAAMvN,KLhID,WACN,MAAM1lF,GAAUh9B,EAAAA,EAAAA,YAAalD,IAC5B,MAAM,gBACLmgC,GACGngC,EAAQ4W,GAAAA,OAEZ,OAAOupB,KAAmB1B,IAAI,GAC5B,KAEH20F,EAAAA,GAAAA,YAAY,CACXtiJ,KAAM,2BACNq2B,OAAOhrB,EAAAA,EAAAA,IAAI,aACX2pC,SAAUA,EAAIw+F,YACbA,IACAvyI,OAAOytI,KAAMt/E,EAAS,SAAU,EAEjCv9B,KAAMq6G,MAGPkW,EAAAA,GAAAA,kBAAkB,CACjBpiJ,KAAM,6BACNqiJ,KAAMtO,MAGPqO,EAAAA,GAAAA,kBAAkB,CACjBpiJ,KAAM,6CACNqiJ,KAAMnO,MAGPkO,EAAAA,GAAAA,kBAAkB,CACjBpiJ,KAAM,qCACNqiJ,KAAMlO,MAGPiO,EAAAA,GAAAA,kBAAkB,CACjBpiJ,KAAM,iCACNqiJ,KAAM/N,MAGP8N,EAAAA,GAAAA,kBAAkB,CACjBpiJ,KAAM,uCACNqiJ,KAAM7N,IAER,C6C9QC+N,IACAC,EAAAA,GAAAA,oBAEA,MAAM,OAAE17G,GAAWkC,KACbka,GAAmBppB,EAAAA,GAAAA,kBAAkB,SAAU,KAC/C2oH,EAAanb,GAAexgG,EAAQoc,GACpC8wF,GAAiByO,GAEjB,kBACLjrH,EAAiB,gBACjB80G,EAAe,iBACfqB,EAAgB,WAChBrjG,EAAU,iBACVo4G,EAAgB,aAChBC,IACGvwH,EAAAA,EAAAA,YAAalD,IAChB,MAAM,8BAAE0zH,GAAkC1zH,EACzCusG,GAAAA,QAEK,cAAExpF,GAAkBnS,GAAQ5Q,EAAQ8jB,KAC1C,MAAO,CACN1I,WAAY2H,IACZywG,iBAAkBE,EACjB,kCAEDD,aAAcC,EACb,8BAEDtW,gBAAiBp9G,EAAQC,EAAAA,OAAmB3vB,IAC3C,OACA,gBAEDg4B,kBAAmBtI,EAAQC,EAAAA,OAAmB3vB,IAC7C,OACA,mBAEDmuI,iBACCz+G,EAAQsV,GAAAA,OAAmB42F,yBAC5B,GACC,IACGynB,EAA2B,SAAfv4G,EACZpS,GAAuBC,EAAAA,EAAAA,8BAAoB,CAChD81G,SAAUyU,EACV56I,KAAM66I,IAED/rG,GAAgBC,EAAAA,GAAAA,oBAChBisG,EACH5/F,GAAmC,SAAf5Y,IAA2Bm4G,IAC7Cv/F,IAAqC,SAAf5Y,IAA2B0pG,GAChD+O,EACH7/F,GAAoB8wF,GAAgB6O,IACpC3/F,IACA8wF,EACGgP,EACH9/F,GAAoBu/F,GAAkBzO,GAAgB6O,GACjDI,EAAeC,IAAejsG,EAAAA,GAAAA,sBAC9BksG,IAAgBlsG,EAAAA,GAAAA,qBAClB0nG,EAAkBN,MAChB+E,EAA2BC,IAClCppH,EAAAA,EAAAA,WAAU,GAWX,IAAIqpH,EAKHA,EAHmB,SAAfh5G,EAGmB,OACZ9S,EACY,oBAEA8S,EAIxB,IAAIi5G,EAAiB,cAED,SAAfj5G,GAAyB0pG,IAC7BuP,EAAiB,oBAEb5V,IACJ4V,EAAiB,wBAElB5B,GAAmB4B,GAEnB,MAAQljH,GAAoBJ,GAAgB,qBACpC0W,GAAkB1W,GAAgB,kBAK1C,MAAoB,SAAfqK,EACG,MAIPhiC,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,MACCzqB,EAAAA,EAAAA,eAACk7I,GAAAA,YAAW,OACZl7I,EAAAA,EAAAA,eAACm7I,GAAyB,OAC1Bn7I,EAAAA,EAAAA,eAACo7I,GAAuB,MACtBP,GACF76I,EAAAA,EAAAA,eAAA,UACM4vB,EACL3qB,IAAM2qB,EAAqB3qB,IAC3BmlB,UAAYM,IACX,mBACAkF,EAAqBxF,UACrB,CACC,sBAAuB8E,GAAqBqrH,EAC5C,iBAAkBG,EAClB,eAAgBH,EAChB,oBAAqBvW,EACrB,2BAA4BqB,MAI9BrlI,EAAAA,EAAAA,eAACmwB,EAAAA,iBAAOC,IAAG,CACVhG,UAAU,qCACVoG,SAAW,CACVtB,kBAAmB,CAClBN,QAAS,EACTE,WAAY,CACX/a,KAAM,QACNgb,MAAO,GACPC,cAAe,KAGjBu2G,0BAA2B,CAC1B32G,QAAS,EACTE,WAAY,CACX/a,KAAM,QACNgb,MAAO,GACPC,cAAe,KAGjBkT,KAAM,CAAEtT,QAAS,GACjB2sB,KAAM,CAAE3sB,QAAS,IAElB0B,WACCpB,EACG,iCACAzJ,EAEJ8K,QAAUyqH,IAEVh7I,EAAAA,EAAAA,eAACkmI,GAAO,CACPC,cAAgB2U,EAChB1wH,UAAU,2BAGXpqB,EAAAA,EAAAA,eAACymI,EAAAA,0BAAe,CAACp2G,SAAU,GACxBq7G,GAAgB6O,IACjBv6I,EAAAA,EAAAA,eAACuuB,GAAe,CACfv3B,IAAI,SACJozB,UAAU,2BACVoE,WAAYzrB,EAAAA,EAAAA,IAAI,kBAChB0mB,GAAK0G,EAAAA,iBAAOC,IACZI,SAAW,CACVtB,kBAAmB,CAAEN,QAAS,EAAGyG,EAAG,GACpCkwG,0BAA2B,CAC1B32G,QAAS,EACTyG,EAAG,GAEJ6M,KAAM,CAAEtT,QAAS,EAAGyG,EAAG,SACvBkmB,KAAM,CAAE3sB,QAAS,EAAGyG,EAAG,IAExBqxG,KAAO,CACNrxG,EAAG,SAEJhF,QAAU,CACTzB,QAASM,EAAoB,EAAI,EACjCmG,EAAGnG,EAAoB,EAAI,SAE5BJ,WAAa,CACZ/a,KAAM,QACNwzE,SAAUj5C,EAAgB,EAAI,GAC9Bm3F,KAAM,aAGPzlI,EAAAA,EAAAA,eAAC8sI,GAAM,UAMX9sI,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,8BAKdpqB,EAAAA,EAAAA,eAACuuB,GAAe,CACfC,WAAYzrB,EAAAA,EAAAA,IAAI,cAChBqnB,UAAU,qCAEVpqB,EAAAA,EAAAA,eAACymI,EAAAA,0BAAe,KACb+T,IACDx6I,EAAAA,EAAAA,eAACmwB,EAAAA,iBAAOC,IAAG,CACVC,QAAU,CAAEzB,QAAS,GACrB2B,QAAU,CAAE3B,QAAS,GACrB83G,KAAO,CAAE93G,QAAS,GAClBE,WAAa,CACZ/a,KAAM,QACNwzE,SAECj5C,GAAiBsM,EACd,EACA2+F,GACJ9T,KAAM,WAEPr7G,UAAU,8BAEVpqB,EAAAA,EAAAA,eAACq7I,GAAO,UAMZr7I,EAAAA,EAAAA,eAACurI,GAAS,MAERkP,IACDz6I,EAAAA,EAAAA,eAAAyqB,EAAAA,SAAA,KACG0vH,IAAcn6I,EAAAA,EAAAA,eAACi5I,GAAQ,MACvBvN,IACD1rI,EAAAA,EAAAA,eAAA,OAAKoqB,UAAU,sCACZuwH,IACGC,EAAW7gJ,QACfiG,EAAAA,EAAAA,eAACmwB,EAAAA,iBAAOC,IAAG,CACVE,WACCo7G,GACe,SAAf1pG,EACG,CACAyL,MAAO,MACP3e,WAAY,CACXy4D,SACCj5C,EACG,EACA,GACJm3F,KAAM,YAGP,CAAC,EAELp1G,SAAU,EACV8rB,OAAO,WACP/xB,UAAYM,IACX,2BACA,CACC,mBACCowH,IAGHhsH,WAAa,CACZ/a,KAAM,QACNwzE,SAAUj5C,EACP,EACAirG,GACH9T,KAAM,aAGPzlI,EAAAA,EAAAA,eAAC4+H,GAAa,MACb5+H,EAAAA,EAAAA,eAACmnI,GAAc,CACd/6F,SACGiqG,EAEHjP,YAAcmT,EACdhT,YAAc,CACbxtI,MACC6gJ,EAAW7gJ,MACX,GACDf,OAAQ4hJ,EAAW5hJ,QAEpBquI,YACCyT,EAEDxT,eACCyT,EAEDvT,kBAAoB,CACnBz3F,WACC1B,QAAAA,EACAtW,KAGF/3B,EAAAA,EAAAA,eAACq8H,GAAM,CACNtvG,UACCspH,WAef,CCzWA,MAAM,eAAEiF,IAAmB9jH,GAAQ6G,GAAAA,aAEpB,SAASk9G,KACvB,MAAM,kBAAE13G,IAAsB7Z,EAAAA,EAAAA,aAAaoS,GAAAA,OAc3C,OACCp8B,EAAAA,EAAAA,eAACw7I,EAAAA,iBAAgB,MAChBx7I,EAAAA,EAAAA,eAACisC,GAAoB,MACpBjsC,EAAAA,EAAAA,eAACy7I,EAAAA,sBAAqB,OACtBz7I,EAAAA,EAAAA,eAACs7I,GAAc,MACdt7I,EAAAA,EAAAA,eAACw5I,GAAM,OACPx5I,EAAAA,EAAAA,eAAC07I,EAAAA,WAAU,CAACnrF,QAlBhB,SAA4B74D,GAC3BmsC,GACChH,EAAAA,EAAAA;CAEC95B,EAAAA,EAAAA,IACC,oEAEDrL,GAGH,MAaD,CCwBe,SAASikJ,IAAuB,UAAEvxH,KAAcrpB,IAC9D,OACCf,EAAAA,EAAAA,eAACwxE,GAAiB,CACjB7kD,eAAiBvC,EACjBA,UAAU,8BACV7D,MAAM,oBACDxlB,GAGR,CC1Be,SAAS66I,GAA2B76I,GAClD,OACCf,EAAAA,EAAAA,eAACgsB,EAEA,CACAP,4BAA0B,EAC1BlF,MAAM,oBACDxlB,GAGR,CCCA,QAAe4/H,EAAAA,GAAAA,UACdv3G,EAAAA,EAAAA,oBAAmB,CAAEC,EAASC,KAAc,IAAAuyH,EAC3C,MAAO,CACNpyH,GAAe,QAAboyH,EAAEvyH,EAASG,UAAE,IAAAoyH,EAAAA,EAAI9vH,EAAAA,SACnBxC,KAAMD,EAASC,MAAQF,EAAQE,KAC/B7xB,KAAM,kCACN,IANH,CAQGmzB,GCvCI,SAASixH,GAAkBzvH,EAAIuV,GACrC,MAAM9jC,EAAS/F,SAASgkJ,eAAgB1vH,GAClC7X,GAAOwnI,EAAAA,EAAAA,YAAYl+I,IAEzB6oB,EAAAA,EAAAA,UAAUiU,EAAAA,OAAcqhH,0BACxB,MAAMC,GAAaC,EAAAA,EAAAA,+BAA8B/9I,QAChD,EAAI1G,UAAqB,kBAATA,IAwDjB,OAtDA0kJ,EAAAA,EAAAA,oBAAoBF,IACpBv1H,EAAAA,EAAAA,UAAUiU,EAAAA,OAAcyhH,6BAA8B,cACtDC,EAAAA,GAAAA,2BAA2B,CAAE9mG,UAAU,KACvC+mG,EAAAA,GAAAA,0BAA0B,CAAE/mG,UAAU,KAErCgnG,EAAAA,EAAAA,8CAA8C,CAC7CC,iBAAiB,KAMnB91H,EAAAA,EAAAA,UAAUE,EAAAA,OAAmBe,YAAa,iBAAkB,CAC3D60G,WAAY,SACZigB,cAAc,EACdC,oBAAoB,EACpBC,kBAAkB,EAClBC,sBAAsB,KAGvBl2H,EAAAA,EAAAA,UAAUE,EAAAA,OAAmBe,YAAa,OAAQ,CACjDk1H,0BAA0B,EAC1BC,iBAAiB,EACjBC,cAAc,EACdliB,WAAW,EACXmiB,eAAgB,GAChBC,sBAAsB,EACtBC,WAAY,CAAE,eACdrgB,sBAAsB,EACtBnpF,uBAAuB,KAGxBhtB,EAAAA,EAAAA,UAAUoD,GAAiBzD,4BAC1B,iBACA,uBAGDK,EAAAA,EAAAA,UAAU+jB,IAAgB/F,eAAgB/C,IAM1Cjb,EAAAA,EAAAA,UAAUgc,EAAAA,OAAcy6G,qBAAsB,CAC7Ct/F,qBAAsBlc,EAASkc,qBAC/BiM,yBAA0BnoB,EAASmoB,2BAIpCpxD,OAAOU,iBAAkB,YAAcxB,GAAOA,EAAEonC,mBAAkB,GAClEtmC,OAAOU,iBAAkB,QAAUxB,GAAOA,EAAEonC,mBAAkB,GAE9DzqB,EAAK5P,QAAQ5E,EAAAA,EAAAA,eAACu7I,GAAG,OAEV/mI,CACR,CAEO,SAAS6oI,KACfh2H,IAAY,iCAAkC,CAC7CC,MAAO,MACPmb,QAAS,OAEX,C","sources":["webpack://wp/./node_modules/autosize/dist/autosize.js","webpack://wp/./node_modules/classnames/index.js","webpack://wp/./node_modules/computed-style/dist/computedStyle.commonjs.js","webpack://wp/./node_modules/deepmerge/dist/cjs.js","webpack://wp/./node_modules/line-height/lib/line-height.js","webpack://wp/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://wp/./node_modules/prop-types/index.js","webpack://wp/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://wp/./node_modules/react-autosize-textarea/lib/TextareaAutosize.js","webpack://wp/./node_modules/react-autosize-textarea/lib/index.js","webpack://wp/./node_modules/remove-accents/index.js","webpack://wp/./packages/edit-site/lib/inflate.js","webpack://wp/./packages/edit-site/lib/unbrotli.js","webpack://wp/external window \"React\"","webpack://wp/webpack/bootstrap","webpack://wp/webpack/runtime/compat get default export","webpack://wp/webpack/runtime/define property getters","webpack://wp/webpack/runtime/hasOwnProperty shorthand","webpack://wp/webpack/runtime/make namespace object","webpack://wp/external window [\"wp\",\"blocks\"]","webpack://wp/external window [\"wp\",\"blockLibrary\"]","webpack://wp/external window [\"wp\",\"data\"]","webpack://wp/external window [\"wp\",\"deprecated\"]","webpack://wp/external window [\"wp\",\"element\"]","webpack://wp/external window [\"wp\",\"editor\"]","webpack://wp/external window [\"wp\",\"components\"]","webpack://wp/external window [\"wp\",\"i18n\"]","webpack://wp/external window [\"wp\",\"primitives\"]","../../packages/icons/src/library/check.js","../../packages/icons/src/library/star-filled.js","../../packages/icons/src/library/star-empty.js","webpack://wp/external window [\"wp\",\"viewport\"]","webpack://wp/external window [\"wp\",\"preferences\"]","../../packages/icons/src/library/close-small.js","../../packages/interface/src/store/actions.js","../../packages/interface/src/store/selectors.js","../../packages/interface/src/store/reducer.js","../../packages/interface/src/store/constants.js","../../packages/interface/src/store/index.js","webpack://wp/external window [\"wp\",\"plugins\"]","../../packages/interface/src/components/complementary-area-context/index.js","../../packages/interface/src/components/complementary-area-toggle/index.js","../../packages/interface/src/components/complementary-area-header/index.js","../../packages/interface/src/components/action-item/index.js","../../packages/interface/src/components/complementary-area-more-menu-item/index.js","../../packages/interface/src/components/pinned-items/index.js","../../packages/interface/src/components/complementary-area/index.js","webpack://wp/external window [\"wp\",\"compose\"]","../../packages/interface/src/components/navigable-region/index.js","../../packages/interface/src/components/interface-skeleton/index.js","../../packages/icons/src/library/more-vertical.js","../../packages/interface/src/components/more-menu-dropdown/index.js","../../packages/interface/src/components/preferences-modal/index.js","../../packages/icons/src/icon/index.js","../../packages/icons/src/library/chevron-left.js","../../packages/icons/src/library/chevron-right.js","../../packages/interface/src/components/preferences-modal-tabs/index.js","../../packages/interface/src/components/preferences-modal-section/index.js","../../packages/interface/src/components/preferences-modal-base-option/index.js","webpack://wp/external window [\"wp\",\"widgets\"]","webpack://wp/external window [\"wp\",\"hooks\"]","webpack://wp/external window [\"wp\",\"mediaUtils\"]","../../packages/edit-site/src/hooks/components.js","webpack://wp/external window [\"wp\",\"blockEditor\"]","webpack://wp/external window [\"wp\",\"notices\"]","webpack://wp/external window [\"wp\",\"coreData\"]","webpack://wp/./node_modules/colord/index.mjs","webpack://wp/./node_modules/colord/plugins/a11y.mjs","webpack://wp/external window [\"wp\",\"privateApis\"]","../../packages/edit-site/src/lock-unlock.js","../../packages/edit-site/src/components/global-styles/hooks.js","../../packages/edit-site/src/hooks/push-changes-to-global-styles/index.js","webpack://wp/external window [\"wp\",\"router\"]","webpack://wp/external window [\"wp\",\"url\"]","../../packages/edit-site/src/utils/is-previewing-theme.js","../../packages/edit-site/src/components/routes/link.js","webpack://wp/external window [\"wp\",\"patterns\"]","../../packages/edit-site/src/utils/constants.js","../../packages/edit-site/src/hooks/template-part-edit.js","../../packages/edit-site/src/hooks/navigation-menu-edit.js","../../packages/edit-site/src/store/reducer.js","webpack://wp/external window [\"wp\",\"apiFetch\"]","webpack://wp/external window [\"wp\",\"a11y\"]","webpack://wp/external window [\"wp\",\"htmlEntities\"]","../../packages/edit-site/src/store/constants.js","../../packages/edit-site/src/utils/is-template-revertable.js","../../packages/edit-site/src/store/actions.js","../../packages/edit-site/src/store/private-actions.js","../../packages/edit-site/src/store/utils.js","webpack://wp/./node_modules/memize/dist/index.js","../../packages/edit-site/src/store/selectors.js","../../packages/edit-site/src/store/private-selectors.js","../../packages/edit-site/src/store/index.js","webpack://wp/external window [\"wp\",\"keyboardShortcuts\"]","webpack://wp/external window [\"wp\",\"commands\"]","webpack://wp/external window [\"wp\",\"coreCommands\"]","../../packages/icons/src/library/navigation.js","../../packages/icons/src/library/styles.js","../../packages/icons/src/library/page.js","../../packages/icons/src/library/layout.js","../../packages/icons/src/library/symbol.js","../../packages/edit-site/src/components/sidebar-button/index.js","../../packages/edit-site/src/components/sidebar-navigation-screen/index.js","../../packages/icons/src/library/chevron-left-small.js","../../packages/icons/src/library/chevron-right-small.js","../../packages/edit-site/src/components/sidebar-navigation-item/index.js","../../packages/icons/src/library/seen.js","../../packages/icons/src/library/pencil.js","../../packages/icons/src/library/edit.js","webpack://wp/external window [\"wp\",\"keycodes\"]","webpack://wp/./node_modules/is-plain-object/dist/is-plain-object.mjs","../../packages/edit-site/src/components/global-styles/global-styles-provider.js","../../packages/edit-site/src/components/global-styles/preview.js","../../packages/edit-site/src/components/global-styles/style-variations-container.js","../../packages/edit-site/src/components/block-editor/resize-handle.js","../../packages/edit-site/src/components/block-editor/resizable-editor.js","../../packages/edit-site/src/components/editor-canvas-container/index.js","../../packages/edit-site/src/components/style-book/index.js","../../packages/edit-site/src/components/global-styles/screen-revisions/use-global-styles-revisions.js","webpack://wp/external window [\"wp\",\"date\"]","../../packages/icons/src/library/backup.js","../../packages/edit-site/src/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-label.js","../../packages/edit-site/src/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js","../../packages/edit-site/src/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-value.js","../../packages/edit-site/src/components/sidebar-navigation-screen-details-panel/index.js","../../packages/edit-site/src/components/sidebar-navigation-screen-details-footer/index.js","../../packages/edit-site/src/components/sidebar-navigation-screen-global-styles/index.js","../../packages/edit-site/src/components/sidebar-navigation-screen-main/template-part-hint.js","../../packages/edit-site/src/components/sidebar-navigation-screen-main/index.js","../../packages/icons/src/library/home.js","../../packages/icons/src/library/verse.js","../../packages/icons/src/library/pin.js","../../packages/icons/src/library/archive.js","../../packages/icons/src/library/search.js","../../packages/icons/src/library/not-found.js","../../packages/icons/src/library/list.js","../../packages/icons/src/library/category.js","../../packages/icons/src/library/comment-author-avatar.js","../../packages/icons/src/library/block-meta.js","../../packages/icons/src/library/calendar.js","../../packages/icons/src/library/tag.js","../../packages/icons/src/library/media.js","../../packages/icons/src/library/plus.js","../../packages/icons/src/library/post.js","../../packages/edit-site/src/components/add-new-template/utils.js","../../packages/edit-site/src/components/add-new-template/add-custom-template-modal-content.js","webpack://wp/./node_modules/tslib/tslib.es6.mjs","webpack://wp/./node_modules/lower-case/src/index.ts","webpack://wp/./node_modules/no-case/src/index.ts","webpack://wp/./node_modules/param-case/src/index.ts","webpack://wp/./node_modules/dot-case/src/index.ts","../../packages/edit-site/src/components/add-new-template/add-custom-generic-template-modal-content.js","../../packages/edit-site/src/components/add-new-template/template-actions-loading-screen.js","../../packages/edit-site/src/components/add-new-template/new-template.js","../../packages/edit-site/src/components/add-new-template/index.js","../../packages/edit-site/src/components/sidebar-navigation-screen-templates/index.js","../../packages/edit-site/src/components/sidebar-navigation-screen-template/template-areas.js","../../packages/edit-site/src/components/use-edited-entity-record/index.js","../../packages/icons/src/library/plugins.js","../../packages/icons/src/library/globe.js","../../packages/edit-site/src/components/list/added-by.js","../../packages/edit-site/src/utils/is-template-removable.js","../../packages/edit-site/src/components/template-actions/rename-menu-item.js","../../packages/edit-site/src/components/template-actions/index.js","../../packages/edit-site/src/components/sidebar-navigation-screen-template/home-template-details.js","../../packages/edit-site/src/components/sidebar-navigation-screen-template/index.js","../../packages/icons/src/library/file.js","../../packages/icons/src/library/symbol-filled.js","../../packages/icons/src/library/upload.js","../../packages/edit-site/src/utils/template-part-create.js","../../packages/edit-site/src/components/create-template-part-modal/index.js","../../packages/edit-site/src/components/page-patterns/utils.js","webpack://wp/./node_modules/rememo/rememo.js","../../packages/edit-site/src/components/page-patterns/search-items.js","../../packages/edit-site/src/components/page-patterns/use-patterns.js","../../packages/edit-site/src/components/sidebar-navigation-screen-patterns/use-pattern-categories.js","../../packages/edit-site/src/components/sidebar-navigation-screen-patterns/use-default-pattern-categories.js","../../packages/edit-site/src/components/sidebar-navigation-screen-patterns/use-theme-patterns.js","../../packages/edit-site/src/components/add-new-pattern/index.js","../../packages/edit-site/src/components/sidebar-navigation-screen-patterns/category-item.js","../../packages/edit-site/src/components/sidebar-navigation-screen-patterns/use-template-part-areas.js","../../packages/edit-site/src/components/sidebar-navigation-screen-patterns/index.js","../../packages/edit-site/src/components/sync-state-with-url/use-init-edited-entity-from-url.js","webpack://wp/./node_modules/sentence-case/src/index.ts","webpack://wp/./node_modules/upper-case-first/src/index.ts","../../packages/icons/src/library/chevron-up.js","../../packages/icons/src/library/chevron-down.js","../../packages/edit-site/src/components/sync-state-with-url/use-sync-path-with-url.js","../../packages/edit-site/src/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js","../../packages/edit-site/src/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js","../../packages/edit-site/src/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js","../../packages/edit-site/src/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js","../../packages/edit-site/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js","../../packages/edit-site/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js","../../packages/edit-site/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list.js","../../packages/edit-site/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js","../../packages/edit-site/src/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js","../../packages/edit-site/src/components/sidebar-navigation-screen-pattern/index.js","../../packages/edit-site/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js","../../packages/edit-site/src/components/sidebar-navigation-screen-navigation-menus/constants.js","../../packages/edit-site/src/components/sidebar-navigation-screen-navigation-menu/rename-modal.js","../../packages/edit-site/src/components/sidebar-navigation-screen-navigation-menu/delete-modal.js","../../packages/edit-site/src/components/sidebar-navigation-screen-navigation-menu/more-menu.js","../../packages/edit-site/src/components/sidebar-navigation-screen-navigation-menus/build-navigation-label.js","../../packages/edit-site/src/components/sidebar-navigation-screen-navigation-menu/edit-button.js","../../packages/edit-site/src/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js","../../packages/edit-site/src/components/sidebar-navigation-screen-navigation-menu/index.js","../../packages/edit-site/src/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js","../../packages/edit-site/src/components/sidebar-navigation-screen-navigation-menus/index.js","../../packages/edit-site/src/components/sidebar-navigation-screen-templates-browse/index.js","../../packages/edit-site/src/components/save-button/index.js","../../packages/edit-site/src/components/save-hub/index.js","../../packages/edit-site/src/components/add-new-page/index.js","../../packages/edit-site/src/components/sidebar-navigation-screen-pages/index.js","../../packages/icons/src/library/trash.js","../../packages/edit-site/src/components/sidebar-dataviews/default-views.js","../../packages/icons/src/library/block-table.js","../../packages/icons/src/library/format-list-bullets-rtl.js","../../packages/icons/src/library/format-list-bullets.js","../../packages/icons/src/library/unseen.js","../../packages/icons/src/library/funnel.js","../../packages/dataviews/src/lock-unlock.js","../../packages/dataviews/src/item-actions.js","../../packages/dataviews/src/dropdown-menu-helper.js","../../packages/dataviews/src/view-table.js","../../packages/icons/src/library/info.js","../../packages/dataviews/src/constants.js","../../packages/dataviews/src/view-grid.js","../../packages/dataviews/src/view-list.js","../../packages/edit-site/src/components/sidebar-dataviews/dataview-item.js","../../packages/edit-site/src/components/sidebar-dataviews/add-new-view.js","../../packages/edit-site/src/components/sidebar-dataviews/custom-dataviews-list.js","../../packages/edit-site/src/components/sidebar-dataviews/index.js","../../packages/edit-site/src/components/sidebar-navigation-screen-pages-dataviews/index.js","webpack://wp/external window [\"wp\",\"dom\"]","webpack://wp/external window [\"wp\",\"escapeHtml\"]","webpack://wp/external window [\"wp\",\"wordcount\"]","../../packages/edit-site/src/components/sidebar-navigation-screen-page/status-label.js","../../packages/edit-site/src/components/sidebar-navigation-screen-page/page-details.js","../../packages/edit-site/src/components/page-actions/trash-page-menu-item.js","../../packages/edit-site/src/components/page-actions/index.js","../../packages/edit-site/src/components/sidebar-navigation-screen-page/index.js","../../packages/edit-site/src/components/sidebar/index.js","../../packages/icons/src/library/drawer-left.js","../../packages/icons/src/library/drawer-right.js","../../packages/edit-site/src/components/sidebar-edit-mode/default-sidebar.js","../../packages/edit-site/src/components/global-styles/icon-with-current-color.js","../../packages/edit-site/src/components/global-styles/navigation-button.js","../../packages/icons/src/library/typography.js","../../packages/icons/src/library/color.js","../../packages/edit-site/src/components/global-styles/root-menu.js","../../packages/edit-site/src/components/global-styles/screen-root.js","../../packages/edit-site/src/components/global-styles/variations-panel.js","../../packages/edit-site/src/components/global-styles/header.js","../../packages/edit-site/src/components/global-styles/screen-block-list.js","../../packages/edit-site/src/components/global-styles/block-preview-panel.js","../../packages/edit-site/src/components/global-styles/subtitle.js","../../packages/edit-site/src/components/global-styles/screen-block.js","../../packages/edit-site/src/components/global-styles/typogrphy-elements.js","../../packages/edit-site/src/components/global-styles/font-library-modal/utils/constants.js","../../packages/edit-site/src/components/global-styles/font-library-modal/utils/index.js","../../packages/edit-site/src/components/global-styles/font-library-modal/utils/toggleFont.js","../../packages/edit-site/src/components/global-styles/font-library-modal/context.js","../../packages/edit-site/src/components/global-styles/font-library-modal/resolvers.js","../../packages/edit-site/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js","../../packages/edit-site/src/components/global-styles/font-library-modal/tab-panel-layout.js","../../packages/edit-site/src/components/global-styles/font-library-modal/fonts-grid.js","../../packages/edit-site/src/components/global-styles/font-library-modal/utils/preview-styles.js","../../packages/edit-site/src/components/global-styles/font-library-modal/font-demo.js","../../packages/edit-site/src/components/global-styles/font-library-modal/library-font-variant.js","../../packages/edit-site/src/components/global-styles/font-library-modal/utils/sort-font-faces.js","../../packages/edit-site/src/components/global-styles/font-library-modal/library-font-details.js","../../packages/edit-site/src/components/global-styles/font-library-modal/font-card.js","../../packages/edit-site/src/components/global-styles/font-library-modal/library-font-card.js","../../packages/edit-site/src/components/global-styles/font-library-modal/confirm-delete-dialog.js","../../packages/edit-site/src/components/global-styles/font-library-modal/utils/get-notice-from-response.js","../../packages/edit-site/src/components/global-styles/font-library-modal/installed-fonts.js","../../packages/edit-site/src/components/global-styles/font-library-modal/collection-font-variant.js","../../packages/edit-site/src/components/global-styles/font-library-modal/utils/fonts-outline.js","../../packages/edit-site/src/components/global-styles/font-library-modal/collection-font-details.js","../../packages/edit-site/src/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js","../../packages/edit-site/src/components/global-styles/font-library-modal/font-collection.js","../../packages/edit-site/src/components/global-styles/font-library-modal/utils/filter-fonts.js","webpack://wp/./packages/edit-site/lib/lib-font.browser.js","../../packages/edit-site/src/components/global-styles/font-library-modal/local-fonts.js","../../packages/edit-site/src/components/global-styles/font-library-modal/utils/make-families-from-faces.js","../../packages/edit-site/src/components/global-styles/font-library-modal/upload-fonts.js","../../packages/edit-site/src/components/global-styles/font-library-modal/index.js","../../packages/edit-site/src/components/global-styles/font-family-item.js","../../packages/edit-site/src/components/global-styles/font-families.js","../../packages/edit-site/src/components/global-styles/screen-typography.js","../../packages/edit-site/src/components/global-styles/typography-panel.js","../../packages/edit-site/src/components/global-styles/typography-preview.js","../../packages/edit-site/src/components/global-styles/screen-typography-element.js","../../packages/icons/src/library/shuffle.js","../../packages/edit-site/src/components/global-styles/color-indicator-wrapper.js","../../packages/edit-site/src/components/global-styles/palette.js","../../packages/edit-site/src/components/global-styles/screen-colors.js","../../packages/edit-site/src/components/global-styles/color-palette-panel.js","../../packages/edit-site/src/components/global-styles/gradients-palette-panel.js","../../packages/edit-site/src/components/global-styles/screen-color-palette.js","../../packages/edit-site/src/components/global-styles/dimensions-panel.js","../../packages/edit-site/src/components/global-styles/screen-layout.js","../../packages/edit-site/src/components/global-styles/screen-style-variations.js","../../packages/edit-site/src/components/global-styles/screen-css.js","../../packages/edit-site/src/components/revisions/index.js","../../packages/edit-site/src/components/global-styles/screen-revisions/revisions-buttons.js","../../packages/edit-site/src/components/pagination/index.js","../../packages/edit-site/src/components/global-styles/screen-revisions/index.js","../../packages/edit-site/src/components/global-styles/ui.js","../../packages/edit-site/src/components/sidebar-edit-mode/global-styles-sidebar.js","../../packages/edit-site/src/components/sidebar-edit-mode/constants.js","../../packages/edit-site/src/components/sidebar-edit-mode/settings-header/index.js","../../packages/edit-site/src/components/sidebar-edit-mode/sidebar-card/index.js","../../packages/edit-site/src/components/sidebar-edit-mode/page-panels/page-content.js","../../packages/edit-site/src/components/sidebar-edit-mode/page-panels/page-status.js","../../packages/edit-site/src/components/sidebar-edit-mode/page-panels/page-summary.js","../../packages/edit-site/src/components/sidebar-edit-mode/page-panels/index.js","../../packages/edit-site/src/components/sidebar-edit-mode/template-panel/replace-template-button.js","../../packages/edit-site/src/components/sidebar-edit-mode/template-panel/hooks.js","../../packages/edit-site/src/components/sidebar-edit-mode/template-panel/template-actions.js","../../packages/edit-site/src/components/sidebar-edit-mode/template-panel/template-areas.js","../../packages/edit-site/src/components/sidebar-edit-mode/template-panel/index.js","../../packages/edit-site/src/components/plugin-template-setting-panel/index.js","../../packages/edit-site/src/components/sidebar-edit-mode/index.js","../../packages/edit-site/src/components/code-editor/index.js","../../packages/edit-site/src/components/keyboard-shortcuts/edit-mode.js","../../packages/edit-site/src/components/welcome-guide/image.js","../../packages/edit-site/src/components/welcome-guide/editor.js","../../packages/edit-site/src/components/welcome-guide/styles.js","../../packages/edit-site/src/components/welcome-guide/page.js","../../packages/edit-site/src/components/welcome-guide/template.js","../../packages/edit-site/src/components/welcome-guide/index.js","../../packages/edit-site/src/components/start-template-options/index.js","../../packages/edit-site/src/components/global-styles-renderer/index.js","../../packages/edit-site/src/components/routes/use-title.js","../../packages/edit-site/src/components/canvas-loader/index.js","../../packages/edit-site/src/components/pattern-modal/rename.js","../../packages/edit-site/src/components/pattern-modal/duplicate.js","../../packages/edit-site/src/components/pattern-modal/index.js","../../packages/icons/src/library/arrow-left.js","../../packages/edit-site/src/components/block-editor/back-button.js","../../packages/edit-site/src/components/block-editor/editor-canvas.js","../../packages/edit-site/src/components/block-editor/use-post-link-props.js","../../packages/edit-site/src/components/block-editor/use-site-editor-settings.js","../../packages/edit-site/src/components/block-editor/site-editor-canvas.js","../../packages/edit-site/src/components/template-part-converter/convert-to-regular.js","../../packages/edit-site/src/components/template-part-converter/convert-to-template-part.js","../../packages/edit-site/src/components/template-part-converter/index.js","../../packages/edit-site/src/components/editor/index.js","../../packages/edit-site/src/components/error-boundary/warning.js","../../packages/edit-site/src/components/error-boundary/index.js","../../packages/edit-site/src/utils/get-is-list-page.js","../../packages/icons/src/library/next.js","../../packages/icons/src/library/previous.js","../../packages/icons/src/library/external.js","../../packages/edit-site/src/components/keyboard-shortcut-help-modal/config.js","../../packages/edit-site/src/components/keyboard-shortcut-help-modal/shortcut.js","../../packages/edit-site/src/components/keyboard-shortcut-help-modal/dynamic-shortcut.js","../../packages/edit-site/src/components/keyboard-shortcut-help-modal/index.js","../../packages/edit-site/src/components/preferences-modal/enable-feature.js","../../packages/edit-site/src/components/preferences-modal/enable-panel-option.js","../../packages/edit-site/src/components/preferences-modal/index.js","../../packages/edit-site/src/components/header-edit-mode/tools-more-menu-group/index.js","../../packages/icons/src/library/download.js","webpack://wp/external window [\"wp\",\"blob\"]","../../packages/edit-site/src/components/header-edit-mode/more-menu/site-export.js","../../packages/edit-site/src/components/header-edit-mode/more-menu/welcome-guide-menu-item.js","../../packages/edit-site/src/components/header-edit-mode/more-menu/copy-content-menu-item.js","../../packages/edit-site/src/components/header-edit-mode/mode-switcher/index.js","../../packages/edit-site/src/components/header-edit-mode/more-menu/index.js","../../packages/icons/src/library/chevron-up-down.js","../../packages/edit-site/src/components/header-edit-mode/document-tools/index.js","../../packages/edit-site/src/components/header-edit-mode/index.js","../../packages/icons/src/library/wordpress.js","../../packages/edit-site/src/components/site-icon/index.js","../../packages/edit-site/src/components/site-hub/index.js","../../packages/edit-site/src/components/resizable-frame/index.js","../../packages/edit-site/src/components/sync-state-with-url/use-sync-canvas-mode-with-url.js","../../packages/edit-site/src/utils/use-activate-theme.js","../../packages/edit-site/src/components/save-panel/index.js","../../packages/edit-site/src/components/keyboard-shortcuts/register.js","../../packages/edit-site/src/components/keyboard-shortcuts/global.js","../../packages/icons/src/library/help.js","../../packages/icons/src/library/rotate-right.js","../../packages/icons/src/library/rotate-left.js","../../packages/icons/src/library/brush.js","../../packages/edit-site/src/hooks/commands/use-common-commands.js","../../packages/icons/src/library/code.js","../../packages/icons/src/library/block-default.js","../../packages/icons/src/library/keyboard.js","../../packages/icons/src/library/list-view.js","../../packages/edit-site/src/hooks/commands/use-edit-mode-commands.js","../../packages/edit-site/src/components/page/header.js","../../packages/edit-site/src/components/page/index.js","../../packages/edit-site/src/components/page-patterns/rename-category-menu-item.js","../../packages/edit-site/src/components/page-patterns/delete-category-menu-item.js","../../packages/edit-site/src/components/page-patterns/header.js","../../packages/icons/src/library/header.js","../../packages/icons/src/library/footer.js","../../packages/icons/src/library/lock-small.js","webpack://wp/external window [\"wp\",\"reusableBlocks\"]","../../packages/edit-site/src/components/page-patterns/rename-menu-item.js","../../packages/edit-site/src/components/page-patterns/duplicate-menu-item.js","../../packages/edit-site/src/components/page-patterns/grid-item.js","../../packages/edit-site/src/components/page-patterns/grid.js","../../packages/edit-site/src/components/page-patterns/no-patterns.js","../../packages/edit-site/src/components/page-patterns/patterns-list.js","../../packages/edit-site/src/components/page-patterns/use-pattern-settings.js","../../packages/edit-site/src/components/page-patterns/index.js","../../packages/dataviews/src/utils.js","../../packages/dataviews/src/pagination.js","../../packages/dataviews/src/view-actions.js","../../packages/dataviews/src/filter-summary.js","../../packages/dataviews/src/add-filter.js","../../packages/dataviews/src/reset-filters.js","../../packages/dataviews/src/filters.js","../../packages/dataviews/src/search.js","../../packages/dataviews/src/dataviews.js","../../packages/edit-site/src/components/page-patterns/dataviews-pattern-actions.js","../../packages/edit-site/src/components/page-patterns/dataviews-patterns.js","../../packages/edit-site/src/components/table/index.js","../../packages/edit-site/src/components/page-template-parts/add-new-template-part.js","../../packages/edit-site/src/components/page-template-parts/index.js","../../packages/edit-site/src/components/page-templates/template-actions.js","../../packages/edit-site/src/components/actions/index.js","../../packages/edit-site/src/components/layout/hooks.js","../../packages/edit-site/src/components/post-preview/index.js","../../packages/edit-site/src/components/page-templates/index.js","../../packages/edit-site/src/components/media/index.js","../../packages/edit-site/src/components/page-pages/index.js","../../packages/edit-site/src/components/page-main/index.js","../../packages/edit-site/src/components/layout/index.js","../../packages/edit-site/src/components/app/index.js","../../packages/edit-site/src/components/sidebar-edit-mode/plugin-sidebar/index.js","../../packages/edit-site/src/components/header-edit-mode/plugin-sidebar-more-menu-item/index.js","../../packages/edit-site/src/components/header-edit-mode/plugin-more-menu-item/index.js","../../packages/edit-site/src/index.js"],"sourcesContent":["/*!\n\tautosize 4.0.2\n\tlicense: MIT\n\thttp://www.jacklmoore.com/autosize\n*/\n(function (global, factory) {\n\tif (typeof define === \"function\" && define.amd) {\n\t\tdefine(['module', 'exports'], factory);\n\t} else if (typeof exports !== \"undefined\") {\n\t\tfactory(module, exports);\n\t} else {\n\t\tvar mod = {\n\t\t\texports: {}\n\t\t};\n\t\tfactory(mod, mod.exports);\n\t\tglobal.autosize = mod.exports;\n\t}\n})(this, function (module, exports) {\n\t'use strict';\n\n\tvar map = typeof Map === \"function\" ? new Map() : function () {\n\t\tvar keys = [];\n\t\tvar values = [];\n\n\t\treturn {\n\t\t\thas: function has(key) {\n\t\t\t\treturn keys.indexOf(key) > -1;\n\t\t\t},\n\t\t\tget: function get(key) {\n\t\t\t\treturn values[keys.indexOf(key)];\n\t\t\t},\n\t\t\tset: function set(key, value) {\n\t\t\t\tif (keys.indexOf(key) === -1) {\n\t\t\t\t\tkeys.push(key);\n\t\t\t\t\tvalues.push(value);\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelete: function _delete(key) {\n\t\t\t\tvar index = keys.indexOf(key);\n\t\t\t\tif (index > -1) {\n\t\t\t\t\tkeys.splice(index, 1);\n\t\t\t\t\tvalues.splice(index, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}();\n\n\tvar createEvent = function createEvent(name) {\n\t\treturn new Event(name, { bubbles: true });\n\t};\n\ttry {\n\t\tnew Event('test');\n\t} catch (e) {\n\t\t// IE does not support `new Event()`\n\t\tcreateEvent = function createEvent(name) {\n\t\t\tvar evt = document.createEvent('Event');\n\t\t\tevt.initEvent(name, true, false);\n\t\t\treturn evt;\n\t\t};\n\t}\n\n\tfunction assign(ta) {\n\t\tif (!ta || !ta.nodeName || ta.nodeName !== 'TEXTAREA' || map.has(ta)) return;\n\n\t\tvar heightOffset = null;\n\t\tvar clientWidth = null;\n\t\tvar cachedHeight = null;\n\n\t\tfunction init() {\n\t\t\tvar style = window.getComputedStyle(ta, null);\n\n\t\t\tif (style.resize === 'vertical') {\n\t\t\t\tta.style.resize = 'none';\n\t\t\t} else if (style.resize === 'both') {\n\t\t\t\tta.style.resize = 'horizontal';\n\t\t\t}\n\n\t\t\tif (style.boxSizing === 'content-box') {\n\t\t\t\theightOffset = -(parseFloat(style.paddingTop) + parseFloat(style.paddingBottom));\n\t\t\t} else {\n\t\t\t\theightOffset = parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);\n\t\t\t}\n\t\t\t// Fix when a textarea is not on document body and heightOffset is Not a Number\n\t\t\tif (isNaN(heightOffset)) {\n\t\t\t\theightOffset = 0;\n\t\t\t}\n\n\t\t\tupdate();\n\t\t}\n\n\t\tfunction changeOverflow(value) {\n\t\t\t{\n\t\t\t\t// Chrome/Safari-specific fix:\n\t\t\t\t// When the textarea y-overflow is hidden, Chrome/Safari do not reflow the text to account for the space\n\t\t\t\t// made available by removing the scrollbar. The following forces the necessary text reflow.\n\t\t\t\tvar width = ta.style.width;\n\t\t\t\tta.style.width = '0px';\n\t\t\t\t// Force reflow:\n\t\t\t\t/* jshint ignore:start */\n\t\t\t\tta.offsetWidth;\n\t\t\t\t/* jshint ignore:end */\n\t\t\t\tta.style.width = width;\n\t\t\t}\n\n\t\t\tta.style.overflowY = value;\n\t\t}\n\n\t\tfunction getParentOverflows(el) {\n\t\t\tvar arr = [];\n\n\t\t\twhile (el && el.parentNode && el.parentNode instanceof Element) {\n\t\t\t\tif (el.parentNode.scrollTop) {\n\t\t\t\t\tarr.push({\n\t\t\t\t\t\tnode: el.parentNode,\n\t\t\t\t\t\tscrollTop: el.parentNode.scrollTop\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tel = el.parentNode;\n\t\t\t}\n\n\t\t\treturn arr;\n\t\t}\n\n\t\tfunction resize() {\n\t\t\tif (ta.scrollHeight === 0) {\n\t\t\t\t// If the scrollHeight is 0, then the element probably has display:none or is detached from the DOM.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar overflows = getParentOverflows(ta);\n\t\t\tvar docTop = document.documentElement && document.documentElement.scrollTop; // Needed for Mobile IE (ticket #240)\n\n\t\t\tta.style.height = '';\n\t\t\tta.style.height = ta.scrollHeight + heightOffset + 'px';\n\n\t\t\t// used to check if an update is actually necessary on window.resize\n\t\t\tclientWidth = ta.clientWidth;\n\n\t\t\t// prevents scroll-position jumping\n\t\t\toverflows.forEach(function (el) {\n\t\t\t\tel.node.scrollTop = el.scrollTop;\n\t\t\t});\n\n\t\t\tif (docTop) {\n\t\t\t\tdocument.documentElement.scrollTop = docTop;\n\t\t\t}\n\t\t}\n\n\t\tfunction update() {\n\t\t\tresize();\n\n\t\t\tvar styleHeight = Math.round(parseFloat(ta.style.height));\n\t\t\tvar computed = window.getComputedStyle(ta, null);\n\n\t\t\t// Using offsetHeight as a replacement for computed.height in IE, because IE does not account use of border-box\n\t\t\tvar actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(computed.height)) : ta.offsetHeight;\n\n\t\t\t// The actual height not matching the style height (set via the resize method) indicates that \n\t\t\t// the max-height has been exceeded, in which case the overflow should be allowed.\n\t\t\tif (actualHeight < styleHeight) {\n\t\t\t\tif (computed.overflowY === 'hidden') {\n\t\t\t\t\tchangeOverflow('scroll');\n\t\t\t\t\tresize();\n\t\t\t\t\tactualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Normally keep overflow set to hidden, to avoid flash of scrollbar as the textarea expands.\n\t\t\t\tif (computed.overflowY !== 'hidden') {\n\t\t\t\t\tchangeOverflow('hidden');\n\t\t\t\t\tresize();\n\t\t\t\t\tactualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (cachedHeight !== actualHeight) {\n\t\t\t\tcachedHeight = actualHeight;\n\t\t\t\tvar evt = createEvent('autosize:resized');\n\t\t\t\ttry {\n\t\t\t\t\tta.dispatchEvent(evt);\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// Firefox will throw an error on dispatchEvent for a detached element\n\t\t\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=889376\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar pageResize = function pageResize() {\n\t\t\tif (ta.clientWidth !== clientWidth) {\n\t\t\t\tupdate();\n\t\t\t}\n\t\t};\n\n\t\tvar destroy = function (style) {\n\t\t\twindow.removeEventListener('resize', pageResize, false);\n\t\t\tta.removeEventListener('input', update, false);\n\t\t\tta.removeEventListener('keyup', update, false);\n\t\t\tta.removeEventListener('autosize:destroy', destroy, false);\n\t\t\tta.removeEventListener('autosize:update', update, false);\n\n\t\t\tObject.keys(style).forEach(function (key) {\n\t\t\t\tta.style[key] = style[key];\n\t\t\t});\n\n\t\t\tmap.delete(ta);\n\t\t}.bind(ta, {\n\t\t\theight: ta.style.height,\n\t\t\tresize: ta.style.resize,\n\t\t\toverflowY: ta.style.overflowY,\n\t\t\toverflowX: ta.style.overflowX,\n\t\t\twordWrap: ta.style.wordWrap\n\t\t});\n\n\t\tta.addEventListener('autosize:destroy', destroy, false);\n\n\t\t// IE9 does not fire onpropertychange or oninput for deletions,\n\t\t// so binding to onkeyup to catch most of those events.\n\t\t// There is no way that I know of to detect something like 'cut' in IE9.\n\t\tif ('onpropertychange' in ta && 'oninput' in ta) {\n\t\t\tta.addEventListener('keyup', update, false);\n\t\t}\n\n\t\twindow.addEventListener('resize', pageResize, false);\n\t\tta.addEventListener('input', update, false);\n\t\tta.addEventListener('autosize:update', update, false);\n\t\tta.style.overflowX = 'hidden';\n\t\tta.style.wordWrap = 'break-word';\n\n\t\tmap.set(ta, {\n\t\t\tdestroy: destroy,\n\t\t\tupdate: update\n\t\t});\n\n\t\tinit();\n\t}\n\n\tfunction destroy(ta) {\n\t\tvar methods = map.get(ta);\n\t\tif (methods) {\n\t\t\tmethods.destroy();\n\t\t}\n\t}\n\n\tfunction update(ta) {\n\t\tvar methods = map.get(ta);\n\t\tif (methods) {\n\t\t\tmethods.update();\n\t\t}\n\t}\n\n\tvar autosize = null;\n\n\t// Do nothing in Node.js environment and IE8 (or lower)\n\tif (typeof window === 'undefined' || typeof window.getComputedStyle !== 'function') {\n\t\tautosize = function autosize(el) {\n\t\t\treturn el;\n\t\t};\n\t\tautosize.destroy = function (el) {\n\t\t\treturn el;\n\t\t};\n\t\tautosize.update = function (el) {\n\t\t\treturn el;\n\t\t};\n\t} else {\n\t\tautosize = function autosize(el, options) {\n\t\t\tif (el) {\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], function (x) {\n\t\t\t\t\treturn assign(x, options);\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn el;\n\t\t};\n\t\tautosize.destroy = function (el) {\n\t\t\tif (el) {\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], destroy);\n\t\t\t}\n\t\t\treturn el;\n\t\t};\n\t\tautosize.update = function (el) {\n\t\t\tif (el) {\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], update);\n\t\t\t}\n\t\t\treturn el;\n\t\t};\n\t}\n\n\texports.default = autosize;\n\tmodule.exports = exports['default'];\n});","/*!\n  Copyright (c) 2018 Jed Watson.\n  Licensed under the MIT License (MIT), see\n  http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// This code has been refactored for 140 bytes\n// You can see the original here: https://github.com/twolfson/computedStyle/blob/04cd1da2e30fa45844f95f5cb1ac898e9b9ef050/lib/computedStyle.js\nvar computedStyle = function (el, prop, getComputedStyle) {\n  getComputedStyle = window.getComputedStyle;\n\n  // In one fell swoop\n  return (\n    // If we have getComputedStyle\n    getComputedStyle ?\n      // Query it\n      // TODO: From CSS-Query notes, we might need (node, null) for FF\n      getComputedStyle(el) :\n\n    // Otherwise, we are in IE and use currentStyle\n      el.currentStyle\n  )[\n    // Switch to camelCase for CSSOM\n    // DEV: Grabbed from jQuery\n    // https://github.com/jquery/jquery/blob/1.9-stable/src/css.js#L191-L194\n    // https://github.com/jquery/jquery/blob/1.9-stable/src/core.js#L593-L597\n    prop.replace(/-(\\w)/gi, function (word, letter) {\n      return letter.toUpperCase();\n    })\n  ];\n};\n\nmodule.exports = computedStyle;\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","// Load in dependencies\nvar computedStyle = require('computed-style');\n\n/**\n * Calculate the `line-height` of a given node\n * @param {HTMLElement} node Element to calculate line height of. Must be in the DOM.\n * @returns {Number} `line-height` of the element in pixels\n */\nfunction lineHeight(node) {\n  // Grab the line-height via style\n  var lnHeightStr = computedStyle(node, 'line-height');\n  var lnHeight = parseFloat(lnHeightStr, 10);\n\n  // If the lineHeight did not contain a unit (i.e. it was numeric), convert it to ems (e.g. '2.3' === '2.3em')\n  if (lnHeightStr === lnHeight + '') {\n    // Save the old lineHeight style and update the em unit to the element\n    var _lnHeightStyle = node.style.lineHeight;\n    node.style.lineHeight = lnHeightStr + 'em';\n\n    // Calculate the em based height\n    lnHeightStr = computedStyle(node, 'line-height');\n    lnHeight = parseFloat(lnHeightStr, 10);\n\n    // Revert the lineHeight style\n    if (_lnHeightStyle) {\n      node.style.lineHeight = _lnHeightStyle;\n    } else {\n      delete node.style.lineHeight;\n    }\n  }\n\n  // If the lineHeight is in `pt`, convert it to pixels (4px for 3pt)\n  // DEV: `em` units are converted to `pt` in IE6\n  // Conversion ratio from https://developer.mozilla.org/en-US/docs/Web/CSS/length\n  if (lnHeightStr.indexOf('pt') !== -1) {\n    lnHeight *= 4;\n    lnHeight /= 3;\n  // Otherwise, if the lineHeight is in `mm`, convert it to pixels (96px for 25.4mm)\n  } else if (lnHeightStr.indexOf('mm') !== -1) {\n    lnHeight *= 96;\n    lnHeight /= 25.4;\n  // Otherwise, if the lineHeight is in `cm`, convert it to pixels (96px for 2.54cm)\n  } else if (lnHeightStr.indexOf('cm') !== -1) {\n    lnHeight *= 96;\n    lnHeight /= 2.54;\n  // Otherwise, if the lineHeight is in `in`, convert it to pixels (96px for 1in)\n  } else if (lnHeightStr.indexOf('in') !== -1) {\n    lnHeight *= 96;\n  // Otherwise, if the lineHeight is in `pc`, convert it to pixels (12pt for 1pc)\n  } else if (lnHeightStr.indexOf('pc') !== -1) {\n    lnHeight *= 16;\n  }\n\n  // Continue our computation\n  lnHeight = Math.round(lnHeight);\n\n  // If the line-height is \"normal\", calculate by font-size\n  if (lnHeightStr === 'normal') {\n    // Create a temporary node\n    var nodeName = node.nodeName;\n    var _node = document.createElement(nodeName);\n    _node.innerHTML = '&nbsp;';\n\n    // If we have a text area, reset it to only 1 row\n    // https://github.com/twolfson/line-height/issues/4\n    if (nodeName.toUpperCase() === 'TEXTAREA') {\n      _node.setAttribute('rows', '1');\n    }\n\n    // Set the font-size of the element\n    var fontSizeStr = computedStyle(node, 'font-size');\n    _node.style.fontSize = fontSizeStr;\n\n    // Remove default padding/border which can affect offset height\n    // https://github.com/twolfson/line-height/issues/4\n    // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetHeight\n    _node.style.padding = '0px';\n    _node.style.border = '0px';\n\n    // Append it to the body\n    var body = document.body;\n    body.appendChild(_node);\n\n    // Assume the line height of the element is the height\n    var height = _node.offsetHeight;\n    lnHeight = height;\n\n    // Remove our child from the DOM\n    body.removeChild(_node);\n  }\n\n  // Return the calculated height\n  return lnHeight;\n}\n\n// Export lineHeight\nmodule.exports = lineHeight;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    var err = new Error(\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n    err.name = 'Invariant Violation';\n    throw err;\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    elementType: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim,\n\n    checkPropTypes: emptyFunctionWithReset,\n    resetWarningCache: emptyFunction\n  };\n\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n  var ReactIs = require('react-is');\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n        s = arguments[i];\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n            t[p] = s[p];\n    }\n    return t;\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n            t[p[i]] = s[p[i]];\n    return t;\n};\nexports.__esModule = true;\nvar React = require(\"react\");\nvar PropTypes = require(\"prop-types\");\nvar autosize = require(\"autosize\");\nvar _getLineHeight = require(\"line-height\");\nvar getLineHeight = _getLineHeight;\nvar RESIZED = \"autosize:resized\";\n/**\n * A light replacement for built-in textarea component\n * which automaticaly adjusts its height to match the content\n */\nvar TextareaAutosizeClass = /** @class */ (function (_super) {\n    __extends(TextareaAutosizeClass, _super);\n    function TextareaAutosizeClass() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.state = {\n            lineHeight: null\n        };\n        _this.textarea = null;\n        _this.onResize = function (e) {\n            if (_this.props.onResize) {\n                _this.props.onResize(e);\n            }\n        };\n        _this.updateLineHeight = function () {\n            if (_this.textarea) {\n                _this.setState({\n                    lineHeight: getLineHeight(_this.textarea)\n                });\n            }\n        };\n        _this.onChange = function (e) {\n            var onChange = _this.props.onChange;\n            _this.currentValue = e.currentTarget.value;\n            onChange && onChange(e);\n        };\n        return _this;\n    }\n    TextareaAutosizeClass.prototype.componentDidMount = function () {\n        var _this = this;\n        var _a = this.props, maxRows = _a.maxRows, async = _a.async;\n        if (typeof maxRows === \"number\") {\n            this.updateLineHeight();\n        }\n        if (typeof maxRows === \"number\" || async) {\n            /*\n              the defer is needed to:\n                - force \"autosize\" to activate the scrollbar when this.props.maxRows is passed\n                - support StyledComponents (see #71)\n            */\n            setTimeout(function () { return _this.textarea && autosize(_this.textarea); });\n        }\n        else {\n            this.textarea && autosize(this.textarea);\n        }\n        if (this.textarea) {\n            this.textarea.addEventListener(RESIZED, this.onResize);\n        }\n    };\n    TextareaAutosizeClass.prototype.componentWillUnmount = function () {\n        if (this.textarea) {\n            this.textarea.removeEventListener(RESIZED, this.onResize);\n            autosize.destroy(this.textarea);\n        }\n    };\n    TextareaAutosizeClass.prototype.render = function () {\n        var _this = this;\n        var _a = this, _b = _a.props, onResize = _b.onResize, maxRows = _b.maxRows, onChange = _b.onChange, style = _b.style, innerRef = _b.innerRef, children = _b.children, props = __rest(_b, [\"onResize\", \"maxRows\", \"onChange\", \"style\", \"innerRef\", \"children\"]), lineHeight = _a.state.lineHeight;\n        var maxHeight = maxRows && lineHeight ? lineHeight * maxRows : null;\n        return (React.createElement(\"textarea\", __assign({}, props, { onChange: this.onChange, style: maxHeight ? __assign({}, style, { maxHeight: maxHeight }) : style, ref: function (element) {\n                _this.textarea = element;\n                if (typeof _this.props.innerRef === 'function') {\n                    _this.props.innerRef(element);\n                }\n                else if (_this.props.innerRef) {\n                    _this.props.innerRef.current = element;\n                }\n            } }), children));\n    };\n    TextareaAutosizeClass.prototype.componentDidUpdate = function () {\n        this.textarea && autosize.update(this.textarea);\n    };\n    TextareaAutosizeClass.defaultProps = {\n        rows: 1,\n        async: false\n    };\n    TextareaAutosizeClass.propTypes = {\n        rows: PropTypes.number,\n        maxRows: PropTypes.number,\n        onResize: PropTypes.func,\n        innerRef: PropTypes.any,\n        async: PropTypes.bool\n    };\n    return TextareaAutosizeClass;\n}(React.Component));\nexports.TextareaAutosize = React.forwardRef(function (props, ref) {\n    return React.createElement(TextareaAutosizeClass, __assign({}, props, { innerRef: ref }));\n});\n","\"use strict\";\nexports.__esModule = true;\nvar TextareaAutosize_1 = require(\"./TextareaAutosize\");\nexports[\"default\"] = TextareaAutosize_1.TextareaAutosize;\n","var characterMap = {\n\t\"À\": \"A\",\n\t\"Á\": \"A\",\n\t\"Â\": \"A\",\n\t\"Ã\": \"A\",\n\t\"Ä\": \"A\",\n\t\"Å\": \"A\",\n\t\"Ấ\": \"A\",\n\t\"Ắ\": \"A\",\n\t\"Ẳ\": \"A\",\n\t\"Ẵ\": \"A\",\n\t\"Ặ\": \"A\",\n\t\"Æ\": \"AE\",\n\t\"Ầ\": \"A\",\n\t\"Ằ\": \"A\",\n\t\"Ȃ\": \"A\",\n\t\"Ả\": \"A\",\n\t\"Ạ\": \"A\",\n\t\"Ẩ\": \"A\",\n\t\"Ẫ\": \"A\",\n\t\"Ậ\": \"A\",\n\t\"Ç\": \"C\",\n\t\"Ḉ\": \"C\",\n\t\"È\": \"E\",\n\t\"É\": \"E\",\n\t\"Ê\": \"E\",\n\t\"Ë\": \"E\",\n\t\"Ế\": \"E\",\n\t\"Ḗ\": \"E\",\n\t\"Ề\": \"E\",\n\t\"Ḕ\": \"E\",\n\t\"Ḝ\": \"E\",\n\t\"Ȇ\": \"E\",\n\t\"Ẻ\": \"E\",\n\t\"Ẽ\": \"E\",\n\t\"Ẹ\": \"E\",\n\t\"Ể\": \"E\",\n\t\"Ễ\": \"E\",\n\t\"Ệ\": \"E\",\n\t\"Ì\": \"I\",\n\t\"Í\": \"I\",\n\t\"Î\": \"I\",\n\t\"Ï\": \"I\",\n\t\"Ḯ\": \"I\",\n\t\"Ȋ\": \"I\",\n\t\"Ỉ\": \"I\",\n\t\"Ị\": \"I\",\n\t\"Ð\": \"D\",\n\t\"Ñ\": \"N\",\n\t\"Ò\": \"O\",\n\t\"Ó\": \"O\",\n\t\"Ô\": \"O\",\n\t\"Õ\": \"O\",\n\t\"Ö\": \"O\",\n\t\"Ø\": \"O\",\n\t\"Ố\": \"O\",\n\t\"Ṍ\": \"O\",\n\t\"Ṓ\": \"O\",\n\t\"Ȏ\": \"O\",\n\t\"Ỏ\": \"O\",\n\t\"Ọ\": \"O\",\n\t\"Ổ\": \"O\",\n\t\"Ỗ\": \"O\",\n\t\"Ộ\": \"O\",\n\t\"Ờ\": \"O\",\n\t\"Ở\": \"O\",\n\t\"Ỡ\": \"O\",\n\t\"Ớ\": \"O\",\n\t\"Ợ\": \"O\",\n\t\"Ù\": \"U\",\n\t\"Ú\": \"U\",\n\t\"Û\": \"U\",\n\t\"Ü\": \"U\",\n\t\"Ủ\": \"U\",\n\t\"Ụ\": \"U\",\n\t\"Ử\": \"U\",\n\t\"Ữ\": \"U\",\n\t\"Ự\": \"U\",\n\t\"Ý\": \"Y\",\n\t\"à\": \"a\",\n\t\"á\": \"a\",\n\t\"â\": \"a\",\n\t\"ã\": \"a\",\n\t\"ä\": \"a\",\n\t\"å\": \"a\",\n\t\"ấ\": \"a\",\n\t\"ắ\": \"a\",\n\t\"ẳ\": \"a\",\n\t\"ẵ\": \"a\",\n\t\"ặ\": \"a\",\n\t\"æ\": \"ae\",\n\t\"ầ\": \"a\",\n\t\"ằ\": \"a\",\n\t\"ȃ\": \"a\",\n\t\"ả\": \"a\",\n\t\"ạ\": \"a\",\n\t\"ẩ\": \"a\",\n\t\"ẫ\": \"a\",\n\t\"ậ\": \"a\",\n\t\"ç\": \"c\",\n\t\"ḉ\": \"c\",\n\t\"è\": \"e\",\n\t\"é\": \"e\",\n\t\"ê\": \"e\",\n\t\"ë\": \"e\",\n\t\"ế\": \"e\",\n\t\"ḗ\": \"e\",\n\t\"ề\": \"e\",\n\t\"ḕ\": \"e\",\n\t\"ḝ\": \"e\",\n\t\"ȇ\": \"e\",\n\t\"ẻ\": \"e\",\n\t\"ẽ\": \"e\",\n\t\"ẹ\": \"e\",\n\t\"ể\": \"e\",\n\t\"ễ\": \"e\",\n\t\"ệ\": \"e\",\n\t\"ì\": \"i\",\n\t\"í\": \"i\",\n\t\"î\": \"i\",\n\t\"ï\": \"i\",\n\t\"ḯ\": \"i\",\n\t\"ȋ\": \"i\",\n\t\"ỉ\": \"i\",\n\t\"ị\": \"i\",\n\t\"ð\": \"d\",\n\t\"ñ\": \"n\",\n\t\"ò\": \"o\",\n\t\"ó\": \"o\",\n\t\"ô\": \"o\",\n\t\"õ\": \"o\",\n\t\"ö\": \"o\",\n\t\"ø\": \"o\",\n\t\"ố\": \"o\",\n\t\"ṍ\": \"o\",\n\t\"ṓ\": \"o\",\n\t\"ȏ\": \"o\",\n\t\"ỏ\": \"o\",\n\t\"ọ\": \"o\",\n\t\"ổ\": \"o\",\n\t\"ỗ\": \"o\",\n\t\"ộ\": \"o\",\n\t\"ờ\": \"o\",\n\t\"ở\": \"o\",\n\t\"ỡ\": \"o\",\n\t\"ớ\": \"o\",\n\t\"ợ\": \"o\",\n\t\"ù\": \"u\",\n\t\"ú\": \"u\",\n\t\"û\": \"u\",\n\t\"ü\": \"u\",\n\t\"ủ\": \"u\",\n\t\"ụ\": \"u\",\n\t\"ử\": \"u\",\n\t\"ữ\": \"u\",\n\t\"ự\": \"u\",\n\t\"ý\": \"y\",\n\t\"ÿ\": \"y\",\n\t\"Ā\": \"A\",\n\t\"ā\": \"a\",\n\t\"Ă\": \"A\",\n\t\"ă\": \"a\",\n\t\"Ą\": \"A\",\n\t\"ą\": \"a\",\n\t\"Ć\": \"C\",\n\t\"ć\": \"c\",\n\t\"Ĉ\": \"C\",\n\t\"ĉ\": \"c\",\n\t\"Ċ\": \"C\",\n\t\"ċ\": \"c\",\n\t\"Č\": \"C\",\n\t\"č\": \"c\",\n\t\"C̆\": \"C\",\n\t\"c̆\": \"c\",\n\t\"Ď\": \"D\",\n\t\"ď\": \"d\",\n\t\"Đ\": \"D\",\n\t\"đ\": \"d\",\n\t\"Ē\": \"E\",\n\t\"ē\": \"e\",\n\t\"Ĕ\": \"E\",\n\t\"ĕ\": \"e\",\n\t\"Ė\": \"E\",\n\t\"ė\": \"e\",\n\t\"Ę\": \"E\",\n\t\"ę\": \"e\",\n\t\"Ě\": \"E\",\n\t\"ě\": \"e\",\n\t\"Ĝ\": \"G\",\n\t\"Ǵ\": \"G\",\n\t\"ĝ\": \"g\",\n\t\"ǵ\": \"g\",\n\t\"Ğ\": \"G\",\n\t\"ğ\": \"g\",\n\t\"Ġ\": \"G\",\n\t\"ġ\": \"g\",\n\t\"Ģ\": \"G\",\n\t\"ģ\": \"g\",\n\t\"Ĥ\": \"H\",\n\t\"ĥ\": \"h\",\n\t\"Ħ\": \"H\",\n\t\"ħ\": \"h\",\n\t\"Ḫ\": \"H\",\n\t\"ḫ\": \"h\",\n\t\"Ĩ\": \"I\",\n\t\"ĩ\": \"i\",\n\t\"Ī\": \"I\",\n\t\"ī\": \"i\",\n\t\"Ĭ\": \"I\",\n\t\"ĭ\": \"i\",\n\t\"Į\": \"I\",\n\t\"į\": \"i\",\n\t\"İ\": \"I\",\n\t\"ı\": \"i\",\n\t\"IJ\": \"IJ\",\n\t\"ij\": \"ij\",\n\t\"Ĵ\": \"J\",\n\t\"ĵ\": \"j\",\n\t\"Ķ\": \"K\",\n\t\"ķ\": \"k\",\n\t\"Ḱ\": \"K\",\n\t\"ḱ\": \"k\",\n\t\"K̆\": \"K\",\n\t\"k̆\": \"k\",\n\t\"Ĺ\": \"L\",\n\t\"ĺ\": \"l\",\n\t\"Ļ\": \"L\",\n\t\"ļ\": \"l\",\n\t\"Ľ\": \"L\",\n\t\"ľ\": \"l\",\n\t\"Ŀ\": \"L\",\n\t\"ŀ\": \"l\",\n\t\"Ł\": \"l\",\n\t\"ł\": \"l\",\n\t\"Ḿ\": \"M\",\n\t\"ḿ\": \"m\",\n\t\"M̆\": \"M\",\n\t\"m̆\": \"m\",\n\t\"Ń\": \"N\",\n\t\"ń\": \"n\",\n\t\"Ņ\": \"N\",\n\t\"ņ\": \"n\",\n\t\"Ň\": \"N\",\n\t\"ň\": \"n\",\n\t\"ʼn\": \"n\",\n\t\"N̆\": \"N\",\n\t\"n̆\": \"n\",\n\t\"Ō\": \"O\",\n\t\"ō\": \"o\",\n\t\"Ŏ\": \"O\",\n\t\"ŏ\": \"o\",\n\t\"Ő\": \"O\",\n\t\"ő\": \"o\",\n\t\"Œ\": \"OE\",\n\t\"œ\": \"oe\",\n\t\"P̆\": \"P\",\n\t\"p̆\": \"p\",\n\t\"Ŕ\": \"R\",\n\t\"ŕ\": \"r\",\n\t\"Ŗ\": \"R\",\n\t\"ŗ\": \"r\",\n\t\"Ř\": \"R\",\n\t\"ř\": \"r\",\n\t\"R̆\": \"R\",\n\t\"r̆\": \"r\",\n\t\"Ȓ\": \"R\",\n\t\"ȓ\": \"r\",\n\t\"Ś\": \"S\",\n\t\"ś\": \"s\",\n\t\"Ŝ\": \"S\",\n\t\"ŝ\": \"s\",\n\t\"Ş\": \"S\",\n\t\"Ș\": \"S\",\n\t\"ș\": \"s\",\n\t\"ş\": \"s\",\n\t\"Š\": \"S\",\n\t\"š\": \"s\",\n\t\"Ţ\": \"T\",\n\t\"ţ\": \"t\",\n\t\"ț\": \"t\",\n\t\"Ț\": \"T\",\n\t\"Ť\": \"T\",\n\t\"ť\": \"t\",\n\t\"Ŧ\": \"T\",\n\t\"ŧ\": \"t\",\n\t\"T̆\": \"T\",\n\t\"t̆\": \"t\",\n\t\"Ũ\": \"U\",\n\t\"ũ\": \"u\",\n\t\"Ū\": \"U\",\n\t\"ū\": \"u\",\n\t\"Ŭ\": \"U\",\n\t\"ŭ\": \"u\",\n\t\"Ů\": \"U\",\n\t\"ů\": \"u\",\n\t\"Ű\": \"U\",\n\t\"ű\": \"u\",\n\t\"Ų\": \"U\",\n\t\"ų\": \"u\",\n\t\"Ȗ\": \"U\",\n\t\"ȗ\": \"u\",\n\t\"V̆\": \"V\",\n\t\"v̆\": \"v\",\n\t\"Ŵ\": \"W\",\n\t\"ŵ\": \"w\",\n\t\"Ẃ\": \"W\",\n\t\"ẃ\": \"w\",\n\t\"X̆\": \"X\",\n\t\"x̆\": \"x\",\n\t\"Ŷ\": \"Y\",\n\t\"ŷ\": \"y\",\n\t\"Ÿ\": \"Y\",\n\t\"Y̆\": \"Y\",\n\t\"y̆\": \"y\",\n\t\"Ź\": \"Z\",\n\t\"ź\": \"z\",\n\t\"Ż\": \"Z\",\n\t\"ż\": \"z\",\n\t\"Ž\": \"Z\",\n\t\"ž\": \"z\",\n\t\"ſ\": \"s\",\n\t\"ƒ\": \"f\",\n\t\"Ơ\": \"O\",\n\t\"ơ\": \"o\",\n\t\"Ư\": \"U\",\n\t\"ư\": \"u\",\n\t\"Ǎ\": \"A\",\n\t\"ǎ\": \"a\",\n\t\"Ǐ\": \"I\",\n\t\"ǐ\": \"i\",\n\t\"Ǒ\": \"O\",\n\t\"ǒ\": \"o\",\n\t\"Ǔ\": \"U\",\n\t\"ǔ\": \"u\",\n\t\"Ǖ\": \"U\",\n\t\"ǖ\": \"u\",\n\t\"Ǘ\": \"U\",\n\t\"ǘ\": \"u\",\n\t\"Ǚ\": \"U\",\n\t\"ǚ\": \"u\",\n\t\"Ǜ\": \"U\",\n\t\"ǜ\": \"u\",\n\t\"Ứ\": \"U\",\n\t\"ứ\": \"u\",\n\t\"Ṹ\": \"U\",\n\t\"ṹ\": \"u\",\n\t\"Ǻ\": \"A\",\n\t\"ǻ\": \"a\",\n\t\"Ǽ\": \"AE\",\n\t\"ǽ\": \"ae\",\n\t\"Ǿ\": \"O\",\n\t\"ǿ\": \"o\",\n\t\"Þ\": \"TH\",\n\t\"þ\": \"th\",\n\t\"Ṕ\": \"P\",\n\t\"ṕ\": \"p\",\n\t\"Ṥ\": \"S\",\n\t\"ṥ\": \"s\",\n\t\"X́\": \"X\",\n\t\"x́\": \"x\",\n\t\"Ѓ\": \"Г\",\n\t\"ѓ\": \"г\",\n\t\"Ќ\": \"К\",\n\t\"ќ\": \"к\",\n\t\"A̋\": \"A\",\n\t\"a̋\": \"a\",\n\t\"E̋\": \"E\",\n\t\"e̋\": \"e\",\n\t\"I̋\": \"I\",\n\t\"i̋\": \"i\",\n\t\"Ǹ\": \"N\",\n\t\"ǹ\": \"n\",\n\t\"Ồ\": \"O\",\n\t\"ồ\": \"o\",\n\t\"Ṑ\": \"O\",\n\t\"ṑ\": \"o\",\n\t\"Ừ\": \"U\",\n\t\"ừ\": \"u\",\n\t\"Ẁ\": \"W\",\n\t\"ẁ\": \"w\",\n\t\"Ỳ\": \"Y\",\n\t\"ỳ\": \"y\",\n\t\"Ȁ\": \"A\",\n\t\"ȁ\": \"a\",\n\t\"Ȅ\": \"E\",\n\t\"ȅ\": \"e\",\n\t\"Ȉ\": \"I\",\n\t\"ȉ\": \"i\",\n\t\"Ȍ\": \"O\",\n\t\"ȍ\": \"o\",\n\t\"Ȑ\": \"R\",\n\t\"ȑ\": \"r\",\n\t\"Ȕ\": \"U\",\n\t\"ȕ\": \"u\",\n\t\"B̌\": \"B\",\n\t\"b̌\": \"b\",\n\t\"Č̣\": \"C\",\n\t\"č̣\": \"c\",\n\t\"Ê̌\": \"E\",\n\t\"ê̌\": \"e\",\n\t\"F̌\": \"F\",\n\t\"f̌\": \"f\",\n\t\"Ǧ\": \"G\",\n\t\"ǧ\": \"g\",\n\t\"Ȟ\": \"H\",\n\t\"ȟ\": \"h\",\n\t\"J̌\": \"J\",\n\t\"ǰ\": \"j\",\n\t\"Ǩ\": \"K\",\n\t\"ǩ\": \"k\",\n\t\"M̌\": \"M\",\n\t\"m̌\": \"m\",\n\t\"P̌\": \"P\",\n\t\"p̌\": \"p\",\n\t\"Q̌\": \"Q\",\n\t\"q̌\": \"q\",\n\t\"Ř̩\": \"R\",\n\t\"ř̩\": \"r\",\n\t\"Ṧ\": \"S\",\n\t\"ṧ\": \"s\",\n\t\"V̌\": \"V\",\n\t\"v̌\": \"v\",\n\t\"W̌\": \"W\",\n\t\"w̌\": \"w\",\n\t\"X̌\": \"X\",\n\t\"x̌\": \"x\",\n\t\"Y̌\": \"Y\",\n\t\"y̌\": \"y\",\n\t\"A̧\": \"A\",\n\t\"a̧\": \"a\",\n\t\"B̧\": \"B\",\n\t\"b̧\": \"b\",\n\t\"Ḑ\": \"D\",\n\t\"ḑ\": \"d\",\n\t\"Ȩ\": \"E\",\n\t\"ȩ\": \"e\",\n\t\"Ɛ̧\": \"E\",\n\t\"ɛ̧\": \"e\",\n\t\"Ḩ\": \"H\",\n\t\"ḩ\": \"h\",\n\t\"I̧\": \"I\",\n\t\"i̧\": \"i\",\n\t\"Ɨ̧\": \"I\",\n\t\"ɨ̧\": \"i\",\n\t\"M̧\": \"M\",\n\t\"m̧\": \"m\",\n\t\"O̧\": \"O\",\n\t\"o̧\": \"o\",\n\t\"Q̧\": \"Q\",\n\t\"q̧\": \"q\",\n\t\"U̧\": \"U\",\n\t\"u̧\": \"u\",\n\t\"X̧\": \"X\",\n\t\"x̧\": \"x\",\n\t\"Z̧\": \"Z\",\n\t\"z̧\": \"z\",\n\t\"й\":\"и\",\n\t\"Й\":\"И\",\n\t\"ё\":\"е\",\n\t\"Ё\":\"Е\",\n};\n\nvar chars = Object.keys(characterMap).join('|');\nvar allAccents = new RegExp(chars, 'g');\nvar firstAccent = new RegExp(chars, '');\n\nfunction matcher(match) {\n\treturn characterMap[match];\n}\n\nvar removeAccents = function(string) {\n\treturn string.replace(allAccents, matcher);\n};\n\nvar hasAccents = function(string) {\n\treturn !!string.match(firstAccent);\n};\n\nmodule.exports = removeAccents;\nmodule.exports.has = hasAccents;\nmodule.exports.remove = removeAccents;\n","/* eslint eslint-comments/no-unlimited-disable: 0 */\n/* eslint-disable */\n/* pako 1.0.10 nodeca/pako */ ( function ( f ) {\n\tif ( typeof exports === 'object' && typeof module !== 'undefined' ) {\n\t\tmodule.exports = f();\n\t} else if ( typeof define === 'function' && define.amd ) {\n\t\tdefine( [], f );\n\t} else {\n\t\tvar g;\n\t\tif ( typeof window !== 'undefined' ) {\n\t\t\tg = window;\n\t\t} else if ( typeof global !== 'undefined' ) {\n\t\t\tg = global;\n\t\t} else if ( typeof self !== 'undefined' ) {\n\t\t\tg = self;\n\t\t} else {\n\t\t\tg = this;\n\t\t}\n\t\tg.pako = f();\n\t}\n} )( function () {\n\tvar define, module, exports;\n\treturn ( function () {\n\t\tfunction r( e, n, t ) {\n\t\t\tfunction o( i, f ) {\n\t\t\t\tif ( ! n[ i ] ) {\n\t\t\t\t\tif ( ! e[ i ] ) {\n\t\t\t\t\t\tvar c = 'function' == typeof require && require;\n\t\t\t\t\t\tif ( ! f && c ) return c( i, ! 0 );\n\t\t\t\t\t\tif ( u ) return u( i, ! 0 );\n\t\t\t\t\t\tvar a = new Error( \"Cannot find module '\" + i + \"'\" );\n\t\t\t\t\t\tthrow ( ( a.code = 'MODULE_NOT_FOUND' ), a );\n\t\t\t\t\t}\n\t\t\t\t\tvar p = ( n[ i ] = { exports: {} } );\n\t\t\t\t\te[ i ][ 0 ].call(\n\t\t\t\t\t\tp.exports,\n\t\t\t\t\t\tfunction ( r ) {\n\t\t\t\t\t\t\tvar n = e[ i ][ 1 ][ r ];\n\t\t\t\t\t\t\treturn o( n || r );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tp,\n\t\t\t\t\t\tp.exports,\n\t\t\t\t\t\tr,\n\t\t\t\t\t\te,\n\t\t\t\t\t\tn,\n\t\t\t\t\t\tt\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn n[ i ].exports;\n\t\t\t}\n\t\t\tfor (\n\t\t\t\tvar u = 'function' == typeof require && require, i = 0;\n\t\t\t\ti < t.length;\n\t\t\t\ti++\n\t\t\t)\n\t\t\t\to( t[ i ] );\n\t\t\treturn o;\n\t\t}\n\t\treturn r;\n\t} )()(\n\t\t{\n\t\t\t1: [\n\t\t\t\tfunction ( require, module, exports ) {\n\t\t\t\t\t'use strict';\n\n\t\t\t\t\tvar TYPED_OK =\n\t\t\t\t\t\ttypeof Uint8Array !== 'undefined' &&\n\t\t\t\t\t\ttypeof Uint16Array !== 'undefined' &&\n\t\t\t\t\t\ttypeof Int32Array !== 'undefined';\n\n\t\t\t\t\tfunction _has( obj, key ) {\n\t\t\t\t\t\treturn Object.prototype.hasOwnProperty.call( obj, key );\n\t\t\t\t\t}\n\n\t\t\t\t\texports.assign = function (\n\t\t\t\t\t\tobj /*from1, from2, from3, ...*/\n\t\t\t\t\t) {\n\t\t\t\t\t\tvar sources = Array.prototype.slice.call(\n\t\t\t\t\t\t\targuments,\n\t\t\t\t\t\t\t1\n\t\t\t\t\t\t);\n\t\t\t\t\t\twhile ( sources.length ) {\n\t\t\t\t\t\t\tvar source = sources.shift();\n\t\t\t\t\t\t\tif ( ! source ) {\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( typeof source !== 'object' ) {\n\t\t\t\t\t\t\t\tthrow new TypeError(\n\t\t\t\t\t\t\t\t\tsource + 'must be non-object'\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor ( var p in source ) {\n\t\t\t\t\t\t\t\tif ( _has( source, p ) ) {\n\t\t\t\t\t\t\t\t\tobj[ p ] = source[ p ];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn obj;\n\t\t\t\t\t};\n\n\t\t\t\t\t// reduce buffer size, avoiding mem copy\n\t\t\t\t\texports.shrinkBuf = function ( buf, size ) {\n\t\t\t\t\t\tif ( buf.length === size ) {\n\t\t\t\t\t\t\treturn buf;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( buf.subarray ) {\n\t\t\t\t\t\t\treturn buf.subarray( 0, size );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbuf.length = size;\n\t\t\t\t\t\treturn buf;\n\t\t\t\t\t};\n\n\t\t\t\t\tvar fnTyped = {\n\t\t\t\t\t\tarraySet: function (\n\t\t\t\t\t\t\tdest,\n\t\t\t\t\t\t\tsrc,\n\t\t\t\t\t\t\tsrc_offs,\n\t\t\t\t\t\t\tlen,\n\t\t\t\t\t\t\tdest_offs\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tif ( src.subarray && dest.subarray ) {\n\t\t\t\t\t\t\t\tdest.set(\n\t\t\t\t\t\t\t\t\tsrc.subarray( src_offs, src_offs + len ),\n\t\t\t\t\t\t\t\t\tdest_offs\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Fallback to ordinary array\n\t\t\t\t\t\t\tfor ( var i = 0; i < len; i++ ) {\n\t\t\t\t\t\t\t\tdest[ dest_offs + i ] = src[ src_offs + i ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t// Join array of chunks to single array.\n\t\t\t\t\t\tflattenChunks: function ( chunks ) {\n\t\t\t\t\t\t\tvar i, l, len, pos, chunk, result;\n\n\t\t\t\t\t\t\t// calculate data length\n\t\t\t\t\t\t\tlen = 0;\n\t\t\t\t\t\t\tfor ( i = 0, l = chunks.length; i < l; i++ ) {\n\t\t\t\t\t\t\t\tlen += chunks[ i ].length;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// join chunks\n\t\t\t\t\t\t\tresult = new Uint8Array( len );\n\t\t\t\t\t\t\tpos = 0;\n\t\t\t\t\t\t\tfor ( i = 0, l = chunks.length; i < l; i++ ) {\n\t\t\t\t\t\t\t\tchunk = chunks[ i ];\n\t\t\t\t\t\t\t\tresult.set( chunk, pos );\n\t\t\t\t\t\t\t\tpos += chunk.length;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn result;\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\tvar fnUntyped = {\n\t\t\t\t\t\tarraySet: function (\n\t\t\t\t\t\t\tdest,\n\t\t\t\t\t\t\tsrc,\n\t\t\t\t\t\t\tsrc_offs,\n\t\t\t\t\t\t\tlen,\n\t\t\t\t\t\t\tdest_offs\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tfor ( var i = 0; i < len; i++ ) {\n\t\t\t\t\t\t\t\tdest[ dest_offs + i ] = src[ src_offs + i ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t// Join array of chunks to single array.\n\t\t\t\t\t\tflattenChunks: function ( chunks ) {\n\t\t\t\t\t\t\treturn [].concat.apply( [], chunks );\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\t// Enable/Disable typed arrays use, for testing\n\t\t\t\t\t//\n\t\t\t\t\texports.setTyped = function ( on ) {\n\t\t\t\t\t\tif ( on ) {\n\t\t\t\t\t\t\texports.Buf8 = Uint8Array;\n\t\t\t\t\t\t\texports.Buf16 = Uint16Array;\n\t\t\t\t\t\t\texports.Buf32 = Int32Array;\n\t\t\t\t\t\t\texports.assign( exports, fnTyped );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\texports.Buf8 = Array;\n\t\t\t\t\t\t\texports.Buf16 = Array;\n\t\t\t\t\t\t\texports.Buf32 = Array;\n\t\t\t\t\t\t\texports.assign( exports, fnUntyped );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\texports.setTyped( TYPED_OK );\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t],\n\t\t\t2: [\n\t\t\t\tfunction ( require, module, exports ) {\n\t\t\t\t\t// String encode/decode helpers\n\t\t\t\t\t'use strict';\n\n\t\t\t\t\tvar utils = require( './common' );\n\n\t\t\t\t\t// Quick check if we can use fast array to bin string conversion\n\t\t\t\t\t//\n\t\t\t\t\t// - apply(Array) can fail on Android 2.2\n\t\t\t\t\t// - apply(Uint8Array) can fail on iOS 5.1 Safari\n\t\t\t\t\t//\n\t\t\t\t\tvar STR_APPLY_OK = true;\n\t\t\t\t\tvar STR_APPLY_UIA_OK = true;\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tString.fromCharCode.apply( null, [ 0 ] );\n\t\t\t\t\t} catch ( __ ) {\n\t\t\t\t\t\tSTR_APPLY_OK = false;\n\t\t\t\t\t}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tString.fromCharCode.apply( null, new Uint8Array( 1 ) );\n\t\t\t\t\t} catch ( __ ) {\n\t\t\t\t\t\tSTR_APPLY_UIA_OK = false;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Table with utf8 lengths (calculated by first byte of sequence)\n\t\t\t\t\t// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n\t\t\t\t\t// because max possible codepoint is 0x10ffff\n\t\t\t\t\tvar _utf8len = new utils.Buf8( 256 );\n\t\t\t\t\tfor ( var q = 0; q < 256; q++ ) {\n\t\t\t\t\t\t_utf8len[ q ] =\n\t\t\t\t\t\t\tq >= 252\n\t\t\t\t\t\t\t\t? 6\n\t\t\t\t\t\t\t\t: q >= 248\n\t\t\t\t\t\t\t\t? 5\n\t\t\t\t\t\t\t\t: q >= 240\n\t\t\t\t\t\t\t\t? 4\n\t\t\t\t\t\t\t\t: q >= 224\n\t\t\t\t\t\t\t\t? 3\n\t\t\t\t\t\t\t\t: q >= 192\n\t\t\t\t\t\t\t\t? 2\n\t\t\t\t\t\t\t\t: 1;\n\t\t\t\t\t}\n\t\t\t\t\t_utf8len[ 254 ] = _utf8len[ 254 ] = 1; // Invalid sequence start\n\n\t\t\t\t\t// convert string to array (typed, when possible)\n\t\t\t\t\texports.string2buf = function ( str ) {\n\t\t\t\t\t\tvar buf,\n\t\t\t\t\t\t\tc,\n\t\t\t\t\t\t\tc2,\n\t\t\t\t\t\t\tm_pos,\n\t\t\t\t\t\t\ti,\n\t\t\t\t\t\t\tstr_len = str.length,\n\t\t\t\t\t\t\tbuf_len = 0;\n\n\t\t\t\t\t\t// count binary size\n\t\t\t\t\t\tfor ( m_pos = 0; m_pos < str_len; m_pos++ ) {\n\t\t\t\t\t\t\tc = str.charCodeAt( m_pos );\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t( c & 0xfc00 ) === 0xd800 &&\n\t\t\t\t\t\t\t\tm_pos + 1 < str_len\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tc2 = str.charCodeAt( m_pos + 1 );\n\t\t\t\t\t\t\t\tif ( ( c2 & 0xfc00 ) === 0xdc00 ) {\n\t\t\t\t\t\t\t\t\tc =\n\t\t\t\t\t\t\t\t\t\t0x10000 +\n\t\t\t\t\t\t\t\t\t\t( ( c - 0xd800 ) << 10 ) +\n\t\t\t\t\t\t\t\t\t\t( c2 - 0xdc00 );\n\t\t\t\t\t\t\t\t\tm_pos++;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbuf_len +=\n\t\t\t\t\t\t\t\tc < 0x80\n\t\t\t\t\t\t\t\t\t? 1\n\t\t\t\t\t\t\t\t\t: c < 0x800\n\t\t\t\t\t\t\t\t\t? 2\n\t\t\t\t\t\t\t\t\t: c < 0x10000\n\t\t\t\t\t\t\t\t\t? 3\n\t\t\t\t\t\t\t\t\t: 4;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// allocate buffer\n\t\t\t\t\t\tbuf = new utils.Buf8( buf_len );\n\n\t\t\t\t\t\t// convert\n\t\t\t\t\t\tfor ( i = 0, m_pos = 0; i < buf_len; m_pos++ ) {\n\t\t\t\t\t\t\tc = str.charCodeAt( m_pos );\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t( c & 0xfc00 ) === 0xd800 &&\n\t\t\t\t\t\t\t\tm_pos + 1 < str_len\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tc2 = str.charCodeAt( m_pos + 1 );\n\t\t\t\t\t\t\t\tif ( ( c2 & 0xfc00 ) === 0xdc00 ) {\n\t\t\t\t\t\t\t\t\tc =\n\t\t\t\t\t\t\t\t\t\t0x10000 +\n\t\t\t\t\t\t\t\t\t\t( ( c - 0xd800 ) << 10 ) +\n\t\t\t\t\t\t\t\t\t\t( c2 - 0xdc00 );\n\t\t\t\t\t\t\t\t\tm_pos++;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( c < 0x80 ) {\n\t\t\t\t\t\t\t\t/* one byte */\n\t\t\t\t\t\t\t\tbuf[ i++ ] = c;\n\t\t\t\t\t\t\t} else if ( c < 0x800 ) {\n\t\t\t\t\t\t\t\t/* two bytes */\n\t\t\t\t\t\t\t\tbuf[ i++ ] = 0xc0 | ( c >>> 6 );\n\t\t\t\t\t\t\t\tbuf[ i++ ] = 0x80 | ( c & 0x3f );\n\t\t\t\t\t\t\t} else if ( c < 0x10000 ) {\n\t\t\t\t\t\t\t\t/* three bytes */\n\t\t\t\t\t\t\t\tbuf[ i++ ] = 0xe0 | ( c >>> 12 );\n\t\t\t\t\t\t\t\tbuf[ i++ ] = 0x80 | ( ( c >>> 6 ) & 0x3f );\n\t\t\t\t\t\t\t\tbuf[ i++ ] = 0x80 | ( c & 0x3f );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t/* four bytes */\n\t\t\t\t\t\t\t\tbuf[ i++ ] = 0xf0 | ( c >>> 18 );\n\t\t\t\t\t\t\t\tbuf[ i++ ] = 0x80 | ( ( c >>> 12 ) & 0x3f );\n\t\t\t\t\t\t\t\tbuf[ i++ ] = 0x80 | ( ( c >>> 6 ) & 0x3f );\n\t\t\t\t\t\t\t\tbuf[ i++ ] = 0x80 | ( c & 0x3f );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn buf;\n\t\t\t\t\t};\n\n\t\t\t\t\t// Helper (used in 2 places)\n\t\t\t\t\tfunction buf2binstring( buf, len ) {\n\t\t\t\t\t\t// On Chrome, the arguments in a function call that are allowed is `65534`.\n\t\t\t\t\t\t// If the length of the buffer is smaller than that, we can use this optimization,\n\t\t\t\t\t\t// otherwise we will take a slower path.\n\t\t\t\t\t\tif ( len < 65534 ) {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t( buf.subarray && STR_APPLY_UIA_OK ) ||\n\t\t\t\t\t\t\t\t( ! buf.subarray && STR_APPLY_OK )\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\treturn String.fromCharCode.apply(\n\t\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t\tutils.shrinkBuf( buf, len )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar result = '';\n\t\t\t\t\t\tfor ( var i = 0; i < len; i++ ) {\n\t\t\t\t\t\t\tresult += String.fromCharCode( buf[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Convert byte array to binary string\n\t\t\t\t\texports.buf2binstring = function ( buf ) {\n\t\t\t\t\t\treturn buf2binstring( buf, buf.length );\n\t\t\t\t\t};\n\n\t\t\t\t\t// Convert binary string (typed, when possible)\n\t\t\t\t\texports.binstring2buf = function ( str ) {\n\t\t\t\t\t\tvar buf = new utils.Buf8( str.length );\n\t\t\t\t\t\tfor ( var i = 0, len = buf.length; i < len; i++ ) {\n\t\t\t\t\t\t\tbuf[ i ] = str.charCodeAt( i );\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn buf;\n\t\t\t\t\t};\n\n\t\t\t\t\t// convert array to string\n\t\t\t\t\texports.buf2string = function ( buf, max ) {\n\t\t\t\t\t\tvar i, out, c, c_len;\n\t\t\t\t\t\tvar len = max || buf.length;\n\n\t\t\t\t\t\t// Reserve max possible length (2 words per char)\n\t\t\t\t\t\t// NB: by unknown reasons, Array is significantly faster for\n\t\t\t\t\t\t//     String.fromCharCode.apply than Uint16Array.\n\t\t\t\t\t\tvar utf16buf = new Array( len * 2 );\n\n\t\t\t\t\t\tfor ( out = 0, i = 0; i < len;  ) {\n\t\t\t\t\t\t\tc = buf[ i++ ];\n\t\t\t\t\t\t\t// quick process ascii\n\t\t\t\t\t\t\tif ( c < 0x80 ) {\n\t\t\t\t\t\t\t\tutf16buf[ out++ ] = c;\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tc_len = _utf8len[ c ];\n\t\t\t\t\t\t\t// skip 5 & 6 byte codes\n\t\t\t\t\t\t\tif ( c_len > 4 ) {\n\t\t\t\t\t\t\t\tutf16buf[ out++ ] = 0xfffd;\n\t\t\t\t\t\t\t\ti += c_len - 1;\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// apply mask on first byte\n\t\t\t\t\t\t\tc &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n\t\t\t\t\t\t\t// join the rest\n\t\t\t\t\t\t\twhile ( c_len > 1 && i < len ) {\n\t\t\t\t\t\t\t\tc = ( c << 6 ) | ( buf[ i++ ] & 0x3f );\n\t\t\t\t\t\t\t\tc_len--;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// terminated by end of string?\n\t\t\t\t\t\t\tif ( c_len > 1 ) {\n\t\t\t\t\t\t\t\tutf16buf[ out++ ] = 0xfffd;\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( c < 0x10000 ) {\n\t\t\t\t\t\t\t\tutf16buf[ out++ ] = c;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tc -= 0x10000;\n\t\t\t\t\t\t\t\tutf16buf[ out++ ] =\n\t\t\t\t\t\t\t\t\t0xd800 | ( ( c >> 10 ) & 0x3ff );\n\t\t\t\t\t\t\t\tutf16buf[ out++ ] = 0xdc00 | ( c & 0x3ff );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn buf2binstring( utf16buf, out );\n\t\t\t\t\t};\n\n\t\t\t\t\t// Calculate max possible position in utf8 buffer,\n\t\t\t\t\t// that will not break sequence. If that's not possible\n\t\t\t\t\t// - (very small limits) return max size as is.\n\t\t\t\t\t//\n\t\t\t\t\t// buf[] - utf8 bytes array\n\t\t\t\t\t// max   - length limit (mandatory);\n\t\t\t\t\texports.utf8border = function ( buf, max ) {\n\t\t\t\t\t\tvar pos;\n\n\t\t\t\t\t\tmax = max || buf.length;\n\t\t\t\t\t\tif ( max > buf.length ) {\n\t\t\t\t\t\t\tmax = buf.length;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// go back from last position, until start of sequence found\n\t\t\t\t\t\tpos = max - 1;\n\t\t\t\t\t\twhile ( pos >= 0 && ( buf[ pos ] & 0xc0 ) === 0x80 ) {\n\t\t\t\t\t\t\tpos--;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Very small and broken sequence,\n\t\t\t\t\t\t// return max, because we should return something anyway.\n\t\t\t\t\t\tif ( pos < 0 ) {\n\t\t\t\t\t\t\treturn max;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// If we came to start of buffer - that means buffer is too small,\n\t\t\t\t\t\t// return max too.\n\t\t\t\t\t\tif ( pos === 0 ) {\n\t\t\t\t\t\t\treturn max;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn pos + _utf8len[ buf[ pos ] ] > max ? pos : max;\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t{ './common': 1 },\n\t\t\t],\n\t\t\t3: [\n\t\t\t\tfunction ( require, module, exports ) {\n\t\t\t\t\t'use strict';\n\n\t\t\t\t\t// Note: adler32 takes 12% for level 0 and 2% for level 6.\n\t\t\t\t\t// It isn't worth it to make additional optimizations as in original.\n\t\t\t\t\t// Small size is preferable.\n\n\t\t\t\t\t// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n\t\t\t\t\t// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n\t\t\t\t\t//\n\t\t\t\t\t// This software is provided 'as-is', without any express or implied\n\t\t\t\t\t// warranty. In no event will the authors be held liable for any damages\n\t\t\t\t\t// arising from the use of this software.\n\t\t\t\t\t//\n\t\t\t\t\t// Permission is granted to anyone to use this software for any purpose,\n\t\t\t\t\t// including commercial applications, and to alter it and redistribute it\n\t\t\t\t\t// freely, subject to the following restrictions:\n\t\t\t\t\t//\n\t\t\t\t\t// 1. The origin of this software must not be misrepresented; you must not\n\t\t\t\t\t//   claim that you wrote the original software. If you use this software\n\t\t\t\t\t//   in a product, an acknowledgment in the product documentation would be\n\t\t\t\t\t//   appreciated but is not required.\n\t\t\t\t\t// 2. Altered source versions must be plainly marked as such, and must not be\n\t\t\t\t\t//   misrepresented as being the original software.\n\t\t\t\t\t// 3. This notice may not be removed or altered from any source distribution.\n\n\t\t\t\t\tfunction adler32( adler, buf, len, pos ) {\n\t\t\t\t\t\tvar s1 = ( adler & 0xffff ) | 0,\n\t\t\t\t\t\t\ts2 = ( ( adler >>> 16 ) & 0xffff ) | 0,\n\t\t\t\t\t\t\tn = 0;\n\n\t\t\t\t\t\twhile ( len !== 0 ) {\n\t\t\t\t\t\t\t// Set limit ~ twice less than 5552, to keep\n\t\t\t\t\t\t\t// s2 in 31-bits, because we force signed ints.\n\t\t\t\t\t\t\t// in other case %= will fail.\n\t\t\t\t\t\t\tn = len > 2000 ? 2000 : len;\n\t\t\t\t\t\t\tlen -= n;\n\n\t\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\t\ts1 = ( s1 + buf[ pos++ ] ) | 0;\n\t\t\t\t\t\t\t\ts2 = ( s2 + s1 ) | 0;\n\t\t\t\t\t\t\t} while ( --n );\n\n\t\t\t\t\t\t\ts1 %= 65521;\n\t\t\t\t\t\t\ts2 %= 65521;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn s1 | ( s2 << 16 ) | 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tmodule.exports = adler32;\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t],\n\t\t\t4: [\n\t\t\t\tfunction ( require, module, exports ) {\n\t\t\t\t\t'use strict';\n\n\t\t\t\t\t// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n\t\t\t\t\t// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n\t\t\t\t\t//\n\t\t\t\t\t// This software is provided 'as-is', without any express or implied\n\t\t\t\t\t// warranty. In no event will the authors be held liable for any damages\n\t\t\t\t\t// arising from the use of this software.\n\t\t\t\t\t//\n\t\t\t\t\t// Permission is granted to anyone to use this software for any purpose,\n\t\t\t\t\t// including commercial applications, and to alter it and redistribute it\n\t\t\t\t\t// freely, subject to the following restrictions:\n\t\t\t\t\t//\n\t\t\t\t\t// 1. The origin of this software must not be misrepresented; you must not\n\t\t\t\t\t//   claim that you wrote the original software. If you use this software\n\t\t\t\t\t//   in a product, an acknowledgment in the product documentation would be\n\t\t\t\t\t//   appreciated but is not required.\n\t\t\t\t\t// 2. Altered source versions must be plainly marked as such, and must not be\n\t\t\t\t\t//   misrepresented as being the original software.\n\t\t\t\t\t// 3. This notice may not be removed or altered from any source distribution.\n\n\t\t\t\t\tmodule.exports = {\n\t\t\t\t\t\t/* Allowed flush values; see deflate() and inflate() below for details */\n\t\t\t\t\t\tZ_NO_FLUSH: 0,\n\t\t\t\t\t\tZ_PARTIAL_FLUSH: 1,\n\t\t\t\t\t\tZ_SYNC_FLUSH: 2,\n\t\t\t\t\t\tZ_FULL_FLUSH: 3,\n\t\t\t\t\t\tZ_FINISH: 4,\n\t\t\t\t\t\tZ_BLOCK: 5,\n\t\t\t\t\t\tZ_TREES: 6,\n\n\t\t\t\t\t\t/* Return codes for the compression/decompression functions. Negative values\n\t\t\t\t\t\t * are errors, positive values are used for special but normal events.\n\t\t\t\t\t\t */\n\t\t\t\t\t\tZ_OK: 0,\n\t\t\t\t\t\tZ_STREAM_END: 1,\n\t\t\t\t\t\tZ_NEED_DICT: 2,\n\t\t\t\t\t\tZ_ERRNO: -1,\n\t\t\t\t\t\tZ_STREAM_ERROR: -2,\n\t\t\t\t\t\tZ_DATA_ERROR: -3,\n\t\t\t\t\t\t//Z_MEM_ERROR:     -4,\n\t\t\t\t\t\tZ_BUF_ERROR: -5,\n\t\t\t\t\t\t//Z_VERSION_ERROR: -6,\n\n\t\t\t\t\t\t/* compression levels */\n\t\t\t\t\t\tZ_NO_COMPRESSION: 0,\n\t\t\t\t\t\tZ_BEST_SPEED: 1,\n\t\t\t\t\t\tZ_BEST_COMPRESSION: 9,\n\t\t\t\t\t\tZ_DEFAULT_COMPRESSION: -1,\n\n\t\t\t\t\t\tZ_FILTERED: 1,\n\t\t\t\t\t\tZ_HUFFMAN_ONLY: 2,\n\t\t\t\t\t\tZ_RLE: 3,\n\t\t\t\t\t\tZ_FIXED: 4,\n\t\t\t\t\t\tZ_DEFAULT_STRATEGY: 0,\n\n\t\t\t\t\t\t/* Possible values of the data_type field (though see inflate()) */\n\t\t\t\t\t\tZ_BINARY: 0,\n\t\t\t\t\t\tZ_TEXT: 1,\n\t\t\t\t\t\t//Z_ASCII:                1, // = Z_TEXT (deprecated)\n\t\t\t\t\t\tZ_UNKNOWN: 2,\n\n\t\t\t\t\t\t/* The deflate compression method */\n\t\t\t\t\t\tZ_DEFLATED: 8,\n\t\t\t\t\t\t//Z_NULL:                 null // Use -1 or null inline, depending on var type\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t],\n\t\t\t5: [\n\t\t\t\tfunction ( require, module, exports ) {\n\t\t\t\t\t'use strict';\n\n\t\t\t\t\t// Note: we can't get significant speed boost here.\n\t\t\t\t\t// So write code to minimize size - no pregenerated tables\n\t\t\t\t\t// and array tools dependencies.\n\n\t\t\t\t\t// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n\t\t\t\t\t// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n\t\t\t\t\t//\n\t\t\t\t\t// This software is provided 'as-is', without any express or implied\n\t\t\t\t\t// warranty. In no event will the authors be held liable for any damages\n\t\t\t\t\t// arising from the use of this software.\n\t\t\t\t\t//\n\t\t\t\t\t// Permission is granted to anyone to use this software for any purpose,\n\t\t\t\t\t// including commercial applications, and to alter it and redistribute it\n\t\t\t\t\t// freely, subject to the following restrictions:\n\t\t\t\t\t//\n\t\t\t\t\t// 1. The origin of this software must not be misrepresented; you must not\n\t\t\t\t\t//   claim that you wrote the original software. If you use this software\n\t\t\t\t\t//   in a product, an acknowledgment in the product documentation would be\n\t\t\t\t\t//   appreciated but is not required.\n\t\t\t\t\t// 2. Altered source versions must be plainly marked as such, and must not be\n\t\t\t\t\t//   misrepresented as being the original software.\n\t\t\t\t\t// 3. This notice may not be removed or altered from any source distribution.\n\n\t\t\t\t\t// Use ordinary array, since untyped makes no boost here\n\t\t\t\t\tfunction makeTable() {\n\t\t\t\t\t\tvar c,\n\t\t\t\t\t\t\ttable = [];\n\n\t\t\t\t\t\tfor ( var n = 0; n < 256; n++ ) {\n\t\t\t\t\t\t\tc = n;\n\t\t\t\t\t\t\tfor ( var k = 0; k < 8; k++ ) {\n\t\t\t\t\t\t\t\tc = c & 1 ? 0xedb88320 ^ ( c >>> 1 ) : c >>> 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttable[ n ] = c;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn table;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Create table on load. Just 255 signed longs. Not a problem.\n\t\t\t\t\tvar crcTable = makeTable();\n\n\t\t\t\t\tfunction crc32( crc, buf, len, pos ) {\n\t\t\t\t\t\tvar t = crcTable,\n\t\t\t\t\t\t\tend = pos + len;\n\n\t\t\t\t\t\tcrc ^= -1;\n\n\t\t\t\t\t\tfor ( var i = pos; i < end; i++ ) {\n\t\t\t\t\t\t\tcrc =\n\t\t\t\t\t\t\t\t( crc >>> 8 ) ^ t[ ( crc ^ buf[ i ] ) & 0xff ];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn crc ^ -1; // >>> 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tmodule.exports = crc32;\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t],\n\t\t\t6: [\n\t\t\t\tfunction ( require, module, exports ) {\n\t\t\t\t\t'use strict';\n\n\t\t\t\t\t// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n\t\t\t\t\t// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n\t\t\t\t\t//\n\t\t\t\t\t// This software is provided 'as-is', without any express or implied\n\t\t\t\t\t// warranty. In no event will the authors be held liable for any damages\n\t\t\t\t\t// arising from the use of this software.\n\t\t\t\t\t//\n\t\t\t\t\t// Permission is granted to anyone to use this software for any purpose,\n\t\t\t\t\t// including commercial applications, and to alter it and redistribute it\n\t\t\t\t\t// freely, subject to the following restrictions:\n\t\t\t\t\t//\n\t\t\t\t\t// 1. The origin of this software must not be misrepresented; you must not\n\t\t\t\t\t//   claim that you wrote the original software. If you use this software\n\t\t\t\t\t//   in a product, an acknowledgment in the product documentation would be\n\t\t\t\t\t//   appreciated but is not required.\n\t\t\t\t\t// 2. Altered source versions must be plainly marked as such, and must not be\n\t\t\t\t\t//   misrepresented as being the original software.\n\t\t\t\t\t// 3. This notice may not be removed or altered from any source distribution.\n\n\t\t\t\t\tfunction GZheader() {\n\t\t\t\t\t\t/* true if compressed data believed to be text */\n\t\t\t\t\t\tthis.text = 0;\n\t\t\t\t\t\t/* modification time */\n\t\t\t\t\t\tthis.time = 0;\n\t\t\t\t\t\t/* extra flags (not used when writing a gzip file) */\n\t\t\t\t\t\tthis.xflags = 0;\n\t\t\t\t\t\t/* operating system */\n\t\t\t\t\t\tthis.os = 0;\n\t\t\t\t\t\t/* pointer to extra field or Z_NULL if none */\n\t\t\t\t\t\tthis.extra = null;\n\t\t\t\t\t\t/* extra field length (valid if extra != Z_NULL) */\n\t\t\t\t\t\tthis.extra_len = 0; // Actually, we don't need it in JS,\n\t\t\t\t\t\t// but leave for few code modifications\n\n\t\t\t\t\t\t//\n\t\t\t\t\t\t// Setup limits is not necessary because in js we should not preallocate memory\n\t\t\t\t\t\t// for inflate use constant limit in 65536 bytes\n\t\t\t\t\t\t//\n\n\t\t\t\t\t\t/* space at extra (only when reading header) */\n\t\t\t\t\t\t// this.extra_max  = 0;\n\t\t\t\t\t\t/* pointer to zero-terminated file name or Z_NULL */\n\t\t\t\t\t\tthis.name = '';\n\t\t\t\t\t\t/* space at name (only when reading header) */\n\t\t\t\t\t\t// this.name_max   = 0;\n\t\t\t\t\t\t/* pointer to zero-terminated comment or Z_NULL */\n\t\t\t\t\t\tthis.comment = '';\n\t\t\t\t\t\t/* space at comment (only when reading header) */\n\t\t\t\t\t\t// this.comm_max   = 0;\n\t\t\t\t\t\t/* true if there was or will be a header crc */\n\t\t\t\t\t\tthis.hcrc = 0;\n\t\t\t\t\t\t/* true when done reading gzip header (not used when writing a gzip file) */\n\t\t\t\t\t\tthis.done = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tmodule.exports = GZheader;\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t],\n\t\t\t7: [\n\t\t\t\tfunction ( require, module, exports ) {\n\t\t\t\t\t'use strict';\n\n\t\t\t\t\t// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n\t\t\t\t\t// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n\t\t\t\t\t//\n\t\t\t\t\t// This software is provided 'as-is', without any express or implied\n\t\t\t\t\t// warranty. In no event will the authors be held liable for any damages\n\t\t\t\t\t// arising from the use of this software.\n\t\t\t\t\t//\n\t\t\t\t\t// Permission is granted to anyone to use this software for any purpose,\n\t\t\t\t\t// including commercial applications, and to alter it and redistribute it\n\t\t\t\t\t// freely, subject to the following restrictions:\n\t\t\t\t\t//\n\t\t\t\t\t// 1. The origin of this software must not be misrepresented; you must not\n\t\t\t\t\t//   claim that you wrote the original software. If you use this software\n\t\t\t\t\t//   in a product, an acknowledgment in the product documentation would be\n\t\t\t\t\t//   appreciated but is not required.\n\t\t\t\t\t// 2. Altered source versions must be plainly marked as such, and must not be\n\t\t\t\t\t//   misrepresented as being the original software.\n\t\t\t\t\t// 3. This notice may not be removed or altered from any source distribution.\n\n\t\t\t\t\t// See state defs from inflate.js\n\t\t\t\t\tvar BAD = 30; /* got a data error -- remain here until reset */\n\t\t\t\t\tvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\n\n\t\t\t\t\t/*\n     Decode literal, length, and distance codes and write out the resulting\n     literal and match bytes until either not enough input or output is\n     available, an end-of-block is encountered, or a data error is encountered.\n     When large enough input and output buffers are supplied to inflate(), for\n     example, a 16K input buffer and a 64K output buffer, more than 95% of the\n     inflate execution time is spent in this routine.\n\n     Entry assumptions:\n\n          state.mode === LEN\n          strm.avail_in >= 6\n          strm.avail_out >= 258\n          start >= strm.avail_out\n          state.bits < 8\n\n     On return, state.mode is one of:\n\n          LEN -- ran out of enough output space or enough available input\n          TYPE -- reached end of block code, inflate() to interpret next block\n          BAD -- error in block data\n\n     Notes:\n\n      - The maximum input bits used by a length/distance pair is 15 bits for the\n        length code, 5 bits for the length extra, 15 bits for the distance code,\n        and 13 bits for the distance extra.  This totals 48 bits, or six bytes.\n        Therefore if strm.avail_in >= 6, then there is enough input to avoid\n        checking for available input while decoding.\n\n      - The maximum bytes that a single length/distance pair can output is 258\n        bytes, which is the maximum length that can be coded.  inflate_fast()\n        requires strm.avail_out >= 258 for each loop to avoid checking for\n        output space.\n   */\n\t\t\t\t\tmodule.exports = function inflate_fast( strm, start ) {\n\t\t\t\t\t\tvar state;\n\t\t\t\t\t\tvar _in; /* local strm.input */\n\t\t\t\t\t\tvar last; /* have enough input while in < last */\n\t\t\t\t\t\tvar _out; /* local strm.output */\n\t\t\t\t\t\tvar beg; /* inflate()'s initial strm.output */\n\t\t\t\t\t\tvar end; /* while out < end, enough space available */\n\t\t\t\t\t\t//#ifdef INFLATE_STRICT\n\t\t\t\t\t\tvar dmax; /* maximum distance from zlib header */\n\t\t\t\t\t\t//#endif\n\t\t\t\t\t\tvar wsize; /* window size or zero if not using window */\n\t\t\t\t\t\tvar whave; /* valid bytes in the window */\n\t\t\t\t\t\tvar wnext; /* window write index */\n\t\t\t\t\t\t// Use `s_window` instead `window`, avoid conflict with instrumentation tools\n\t\t\t\t\t\tvar s_window; /* allocated sliding window, if wsize != 0 */\n\t\t\t\t\t\tvar hold; /* local strm.hold */\n\t\t\t\t\t\tvar bits; /* local strm.bits */\n\t\t\t\t\t\tvar lcode; /* local strm.lencode */\n\t\t\t\t\t\tvar dcode; /* local strm.distcode */\n\t\t\t\t\t\tvar lmask; /* mask for first level of length codes */\n\t\t\t\t\t\tvar dmask; /* mask for first level of distance codes */\n\t\t\t\t\t\tvar here; /* retrieved table entry */\n\t\t\t\t\t\tvar op; /* code bits, operation, extra bits, or */\n\t\t\t\t\t\t/*  window position, window bytes to copy */\n\t\t\t\t\t\tvar len; /* match length, unused bytes */\n\t\t\t\t\t\tvar dist; /* match distance */\n\t\t\t\t\t\tvar from; /* where to copy match from */\n\t\t\t\t\t\tvar from_source;\n\n\t\t\t\t\t\tvar input, output; // JS specific, because we have no pointers\n\n\t\t\t\t\t\t/* copy state to local variables */\n\t\t\t\t\t\tstate = strm.state;\n\t\t\t\t\t\t//here = state.here;\n\t\t\t\t\t\t_in = strm.next_in;\n\t\t\t\t\t\tinput = strm.input;\n\t\t\t\t\t\tlast = _in + ( strm.avail_in - 5 );\n\t\t\t\t\t\t_out = strm.next_out;\n\t\t\t\t\t\toutput = strm.output;\n\t\t\t\t\t\tbeg = _out - ( start - strm.avail_out );\n\t\t\t\t\t\tend = _out + ( strm.avail_out - 257 );\n\t\t\t\t\t\t//#ifdef INFLATE_STRICT\n\t\t\t\t\t\tdmax = state.dmax;\n\t\t\t\t\t\t//#endif\n\t\t\t\t\t\twsize = state.wsize;\n\t\t\t\t\t\twhave = state.whave;\n\t\t\t\t\t\twnext = state.wnext;\n\t\t\t\t\t\ts_window = state.window;\n\t\t\t\t\t\thold = state.hold;\n\t\t\t\t\t\tbits = state.bits;\n\t\t\t\t\t\tlcode = state.lencode;\n\t\t\t\t\t\tdcode = state.distcode;\n\t\t\t\t\t\tlmask = ( 1 << state.lenbits ) - 1;\n\t\t\t\t\t\tdmask = ( 1 << state.distbits ) - 1;\n\n\t\t\t\t\t\t/* decode literals and length/distances until end-of-block or not enough\n       input data or output space */\n\n\t\t\t\t\t\ttop: do {\n\t\t\t\t\t\t\tif ( bits < 15 ) {\n\t\t\t\t\t\t\t\thold += input[ _in++ ] << bits;\n\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\thold += input[ _in++ ] << bits;\n\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\there = lcode[ hold & lmask ];\n\n\t\t\t\t\t\t\tdolen: for (;;) {\n\t\t\t\t\t\t\t\t// Goto emulation\n\t\t\t\t\t\t\t\top = here >>> 24 /*here.bits*/;\n\t\t\t\t\t\t\t\thold >>>= op;\n\t\t\t\t\t\t\t\tbits -= op;\n\t\t\t\t\t\t\t\top = ( here >>> 16 ) & 0xff /*here.op*/;\n\t\t\t\t\t\t\t\tif ( op === 0 ) {\n\t\t\t\t\t\t\t\t\t/* literal */\n\t\t\t\t\t\t\t\t\t//Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n\t\t\t\t\t\t\t\t\t//        \"inflate:         literal '%c'\\n\" :\n\t\t\t\t\t\t\t\t\t//        \"inflate:         literal 0x%02x\\n\", here.val));\n\t\t\t\t\t\t\t\t\toutput[ _out++ ] =\n\t\t\t\t\t\t\t\t\t\there & 0xffff /*here.val*/;\n\t\t\t\t\t\t\t\t} else if ( op & 16 ) {\n\t\t\t\t\t\t\t\t\t/* length base */\n\t\t\t\t\t\t\t\t\tlen = here & 0xffff /*here.val*/;\n\t\t\t\t\t\t\t\t\top &= 15; /* number of extra bits */\n\t\t\t\t\t\t\t\t\tif ( op ) {\n\t\t\t\t\t\t\t\t\t\tif ( bits < op ) {\n\t\t\t\t\t\t\t\t\t\t\thold += input[ _in++ ] << bits;\n\t\t\t\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tlen += hold & ( ( 1 << op ) - 1 );\n\t\t\t\t\t\t\t\t\t\thold >>>= op;\n\t\t\t\t\t\t\t\t\t\tbits -= op;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//Tracevv((stderr, \"inflate:         length %u\\n\", len));\n\t\t\t\t\t\t\t\t\tif ( bits < 15 ) {\n\t\t\t\t\t\t\t\t\t\thold += input[ _in++ ] << bits;\n\t\t\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\t\t\thold += input[ _in++ ] << bits;\n\t\t\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\there = dcode[ hold & dmask ];\n\n\t\t\t\t\t\t\t\t\tdodist: for (;;) {\n\t\t\t\t\t\t\t\t\t\t// goto emulation\n\t\t\t\t\t\t\t\t\t\top = here >>> 24 /*here.bits*/;\n\t\t\t\t\t\t\t\t\t\thold >>>= op;\n\t\t\t\t\t\t\t\t\t\tbits -= op;\n\t\t\t\t\t\t\t\t\t\top = ( here >>> 16 ) & 0xff /*here.op*/;\n\n\t\t\t\t\t\t\t\t\t\tif ( op & 16 ) {\n\t\t\t\t\t\t\t\t\t\t\t/* distance base */\n\t\t\t\t\t\t\t\t\t\t\tdist = here & 0xffff /*here.val*/;\n\t\t\t\t\t\t\t\t\t\t\top &= 15; /* number of extra bits */\n\t\t\t\t\t\t\t\t\t\t\tif ( bits < op ) {\n\t\t\t\t\t\t\t\t\t\t\t\thold += input[ _in++ ] << bits;\n\t\t\t\t\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\t\t\t\t\tif ( bits < op ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\thold +=\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinput[ _in++ ] << bits;\n\t\t\t\t\t\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tdist += hold & ( ( 1 << op ) - 1 );\n\t\t\t\t\t\t\t\t\t\t\t//#ifdef INFLATE_STRICT\n\t\t\t\t\t\t\t\t\t\t\tif ( dist > dmax ) {\n\t\t\t\t\t\t\t\t\t\t\t\tstrm.msg =\n\t\t\t\t\t\t\t\t\t\t\t\t\t'invalid distance too far back';\n\t\t\t\t\t\t\t\t\t\t\t\tstate.mode = BAD;\n\t\t\t\t\t\t\t\t\t\t\t\tbreak top;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t//#endif\n\t\t\t\t\t\t\t\t\t\t\thold >>>= op;\n\t\t\t\t\t\t\t\t\t\t\tbits -= op;\n\t\t\t\t\t\t\t\t\t\t\t//Tracevv((stderr, \"inflate:         distance %u\\n\", dist));\n\t\t\t\t\t\t\t\t\t\t\top =\n\t\t\t\t\t\t\t\t\t\t\t\t_out -\n\t\t\t\t\t\t\t\t\t\t\t\tbeg; /* max distance in output */\n\t\t\t\t\t\t\t\t\t\t\tif ( dist > op ) {\n\t\t\t\t\t\t\t\t\t\t\t\t/* see if copy from window */\n\t\t\t\t\t\t\t\t\t\t\t\top =\n\t\t\t\t\t\t\t\t\t\t\t\t\tdist -\n\t\t\t\t\t\t\t\t\t\t\t\t\top; /* distance back in window */\n\t\t\t\t\t\t\t\t\t\t\t\tif ( op > whave ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( state.sane ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstrm.msg =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'invalid distance too far back';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.mode = BAD;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak top;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t// (!) This block is disabled in zlib defaults,\n\t\t\t\t\t\t\t\t\t\t\t\t\t// don't enable it for binary compatibility\n\t\t\t\t\t\t\t\t\t\t\t\t\t//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n\t\t\t\t\t\t\t\t\t\t\t\t\t//                if (len <= op - whave) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t//                  do {\n\t\t\t\t\t\t\t\t\t\t\t\t\t//                    output[_out++] = 0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t//                  } while (--len);\n\t\t\t\t\t\t\t\t\t\t\t\t\t//                  continue top;\n\t\t\t\t\t\t\t\t\t\t\t\t\t//                }\n\t\t\t\t\t\t\t\t\t\t\t\t\t//                len -= op - whave;\n\t\t\t\t\t\t\t\t\t\t\t\t\t//                do {\n\t\t\t\t\t\t\t\t\t\t\t\t\t//                  output[_out++] = 0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t//                } while (--op > whave);\n\t\t\t\t\t\t\t\t\t\t\t\t\t//                if (op === 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t//                  from = _out - dist;\n\t\t\t\t\t\t\t\t\t\t\t\t\t//                  do {\n\t\t\t\t\t\t\t\t\t\t\t\t\t//                    output[_out++] = output[from++];\n\t\t\t\t\t\t\t\t\t\t\t\t\t//                  } while (--len);\n\t\t\t\t\t\t\t\t\t\t\t\t\t//                  continue top;\n\t\t\t\t\t\t\t\t\t\t\t\t\t//                }\n\t\t\t\t\t\t\t\t\t\t\t\t\t//#endif\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tfrom = 0; // window index\n\t\t\t\t\t\t\t\t\t\t\t\tfrom_source = s_window;\n\t\t\t\t\t\t\t\t\t\t\t\tif ( wnext === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t/* very common case */\n\t\t\t\t\t\t\t\t\t\t\t\t\tfrom += wsize - op;\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( op < len ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/* some from window */\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlen -= op;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toutput[ _out++ ] =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ts_window[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfrom++\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} while ( --op );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfrom =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_out -\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdist; /* rest from output */\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfrom_source = output;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t} else if ( wnext < op ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t/* wrap around window */\n\t\t\t\t\t\t\t\t\t\t\t\t\tfrom += wsize + wnext - op;\n\t\t\t\t\t\t\t\t\t\t\t\t\top -= wnext;\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( op < len ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/* some from end of window */\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlen -= op;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toutput[ _out++ ] =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ts_window[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfrom++\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} while ( --op );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfrom = 0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif ( wnext < len ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/* some from start of window */\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\top = wnext;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlen -= op;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toutput[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_out++\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t] =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ts_window[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfrom++\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} while ( --op );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfrom =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_out -\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdist; /* rest from output */\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfrom_source =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toutput;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t/* contiguous in window */\n\t\t\t\t\t\t\t\t\t\t\t\t\tfrom += wnext - op;\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( op < len ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/* some from window */\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlen -= op;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toutput[ _out++ ] =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ts_window[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfrom++\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} while ( --op );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfrom =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_out -\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdist; /* rest from output */\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfrom_source = output;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\twhile ( len > 2 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\toutput[ _out++ ] =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfrom_source[ from++ ];\n\t\t\t\t\t\t\t\t\t\t\t\t\toutput[ _out++ ] =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfrom_source[ from++ ];\n\t\t\t\t\t\t\t\t\t\t\t\t\toutput[ _out++ ] =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfrom_source[ from++ ];\n\t\t\t\t\t\t\t\t\t\t\t\t\tlen -= 3;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tif ( len ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\toutput[ _out++ ] =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfrom_source[ from++ ];\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( len > 1 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\toutput[ _out++ ] =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfrom_source[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfrom++\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tfrom =\n\t\t\t\t\t\t\t\t\t\t\t\t\t_out -\n\t\t\t\t\t\t\t\t\t\t\t\t\tdist; /* copy direct from output */\n\t\t\t\t\t\t\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\t\t\t\t\t\t\t/* minimum length is three */\n\t\t\t\t\t\t\t\t\t\t\t\t\toutput[ _out++ ] =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\toutput[ from++ ];\n\t\t\t\t\t\t\t\t\t\t\t\t\toutput[ _out++ ] =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\toutput[ from++ ];\n\t\t\t\t\t\t\t\t\t\t\t\t\toutput[ _out++ ] =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\toutput[ from++ ];\n\t\t\t\t\t\t\t\t\t\t\t\t\tlen -= 3;\n\t\t\t\t\t\t\t\t\t\t\t\t} while ( len > 2 );\n\t\t\t\t\t\t\t\t\t\t\t\tif ( len ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\toutput[ _out++ ] =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\toutput[ from++ ];\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( len > 1 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\toutput[ _out++ ] =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toutput[ from++ ];\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} else if ( ( op & 64 ) === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t/* 2nd level distance code */\n\t\t\t\t\t\t\t\t\t\t\there =\n\t\t\t\t\t\t\t\t\t\t\t\tdcode[\n\t\t\t\t\t\t\t\t\t\t\t\t\t( here &\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t0xffff ) /*here.val*/ +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t( hold &\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t( ( 1 << op ) -\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t1 ) )\n\t\t\t\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\t\t\tcontinue dodist;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tstrm.msg = 'invalid distance code';\n\t\t\t\t\t\t\t\t\t\t\tstate.mode = BAD;\n\t\t\t\t\t\t\t\t\t\t\tbreak top;\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tbreak; // need to emulate goto via \"continue\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if ( ( op & 64 ) === 0 ) {\n\t\t\t\t\t\t\t\t\t/* 2nd level length code */\n\t\t\t\t\t\t\t\t\there =\n\t\t\t\t\t\t\t\t\t\tlcode[\n\t\t\t\t\t\t\t\t\t\t\t( here & 0xffff ) /*here.val*/ +\n\t\t\t\t\t\t\t\t\t\t\t\t( hold & ( ( 1 << op ) - 1 ) )\n\t\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\tcontinue dolen;\n\t\t\t\t\t\t\t\t} else if ( op & 32 ) {\n\t\t\t\t\t\t\t\t\t/* end-of-block */\n\t\t\t\t\t\t\t\t\t//Tracevv((stderr, \"inflate:         end of block\\n\"));\n\t\t\t\t\t\t\t\t\tstate.mode = TYPE;\n\t\t\t\t\t\t\t\t\tbreak top;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tstrm.msg = 'invalid literal/length code';\n\t\t\t\t\t\t\t\t\tstate.mode = BAD;\n\t\t\t\t\t\t\t\t\tbreak top;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tbreak; // need to emulate goto via \"continue\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} while ( _in < last && _out < end );\n\n\t\t\t\t\t\t/* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n\t\t\t\t\t\tlen = bits >> 3;\n\t\t\t\t\t\t_in -= len;\n\t\t\t\t\t\tbits -= len << 3;\n\t\t\t\t\t\thold &= ( 1 << bits ) - 1;\n\n\t\t\t\t\t\t/* update state and return */\n\t\t\t\t\t\tstrm.next_in = _in;\n\t\t\t\t\t\tstrm.next_out = _out;\n\t\t\t\t\t\tstrm.avail_in =\n\t\t\t\t\t\t\t_in < last\n\t\t\t\t\t\t\t\t? 5 + ( last - _in )\n\t\t\t\t\t\t\t\t: 5 - ( _in - last );\n\t\t\t\t\t\tstrm.avail_out =\n\t\t\t\t\t\t\t_out < end\n\t\t\t\t\t\t\t\t? 257 + ( end - _out )\n\t\t\t\t\t\t\t\t: 257 - ( _out - end );\n\t\t\t\t\t\tstate.hold = hold;\n\t\t\t\t\t\tstate.bits = bits;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t],\n\t\t\t8: [\n\t\t\t\tfunction ( require, module, exports ) {\n\t\t\t\t\t'use strict';\n\n\t\t\t\t\t// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n\t\t\t\t\t// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n\t\t\t\t\t//\n\t\t\t\t\t// This software is provided 'as-is', without any express or implied\n\t\t\t\t\t// warranty. In no event will the authors be held liable for any damages\n\t\t\t\t\t// arising from the use of this software.\n\t\t\t\t\t//\n\t\t\t\t\t// Permission is granted to anyone to use this software for any purpose,\n\t\t\t\t\t// including commercial applications, and to alter it and redistribute it\n\t\t\t\t\t// freely, subject to the following restrictions:\n\t\t\t\t\t//\n\t\t\t\t\t// 1. The origin of this software must not be misrepresented; you must not\n\t\t\t\t\t//   claim that you wrote the original software. If you use this software\n\t\t\t\t\t//   in a product, an acknowledgment in the product documentation would be\n\t\t\t\t\t//   appreciated but is not required.\n\t\t\t\t\t// 2. Altered source versions must be plainly marked as such, and must not be\n\t\t\t\t\t//   misrepresented as being the original software.\n\t\t\t\t\t// 3. This notice may not be removed or altered from any source distribution.\n\n\t\t\t\t\tvar utils = require( '../utils/common' );\n\t\t\t\t\tvar adler32 = require( './adler32' );\n\t\t\t\t\tvar crc32 = require( './crc32' );\n\t\t\t\t\tvar inflate_fast = require( './inffast' );\n\t\t\t\t\tvar inflate_table = require( './inftrees' );\n\n\t\t\t\t\tvar CODES = 0;\n\t\t\t\t\tvar LENS = 1;\n\t\t\t\t\tvar DISTS = 2;\n\n\t\t\t\t\t/* Public constants ==========================================================*/\n\t\t\t\t\t/* ===========================================================================*/\n\n\t\t\t\t\t/* Allowed flush values; see deflate() and inflate() below for details */\n\t\t\t\t\t//var Z_NO_FLUSH      = 0;\n\t\t\t\t\t//var Z_PARTIAL_FLUSH = 1;\n\t\t\t\t\t//var Z_SYNC_FLUSH    = 2;\n\t\t\t\t\t//var Z_FULL_FLUSH    = 3;\n\t\t\t\t\tvar Z_FINISH = 4;\n\t\t\t\t\tvar Z_BLOCK = 5;\n\t\t\t\t\tvar Z_TREES = 6;\n\n\t\t\t\t\t/* Return codes for the compression/decompression functions. Negative values\n\t\t\t\t\t * are errors, positive values are used for special but normal events.\n\t\t\t\t\t */\n\t\t\t\t\tvar Z_OK = 0;\n\t\t\t\t\tvar Z_STREAM_END = 1;\n\t\t\t\t\tvar Z_NEED_DICT = 2;\n\t\t\t\t\t//var Z_ERRNO         = -1;\n\t\t\t\t\tvar Z_STREAM_ERROR = -2;\n\t\t\t\t\tvar Z_DATA_ERROR = -3;\n\t\t\t\t\tvar Z_MEM_ERROR = -4;\n\t\t\t\t\tvar Z_BUF_ERROR = -5;\n\t\t\t\t\t//var Z_VERSION_ERROR = -6;\n\n\t\t\t\t\t/* The deflate compression method */\n\t\t\t\t\tvar Z_DEFLATED = 8;\n\n\t\t\t\t\t/* STATES ====================================================================*/\n\t\t\t\t\t/* ===========================================================================*/\n\n\t\t\t\t\tvar HEAD = 1; /* i: waiting for magic header */\n\t\t\t\t\tvar FLAGS = 2; /* i: waiting for method and flags (gzip) */\n\t\t\t\t\tvar TIME = 3; /* i: waiting for modification time (gzip) */\n\t\t\t\t\tvar OS = 4; /* i: waiting for extra flags and operating system (gzip) */\n\t\t\t\t\tvar EXLEN = 5; /* i: waiting for extra length (gzip) */\n\t\t\t\t\tvar EXTRA = 6; /* i: waiting for extra bytes (gzip) */\n\t\t\t\t\tvar NAME = 7; /* i: waiting for end of file name (gzip) */\n\t\t\t\t\tvar COMMENT = 8; /* i: waiting for end of comment (gzip) */\n\t\t\t\t\tvar HCRC = 9; /* i: waiting for header crc (gzip) */\n\t\t\t\t\tvar DICTID = 10; /* i: waiting for dictionary check value */\n\t\t\t\t\tvar DICT = 11; /* waiting for inflateSetDictionary() call */\n\t\t\t\t\tvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\n\t\t\t\t\tvar TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\n\t\t\t\t\tvar STORED = 14; /* i: waiting for stored size (length and complement) */\n\t\t\t\t\tvar COPY_ = 15; /* i/o: same as COPY below, but only first time in */\n\t\t\t\t\tvar COPY = 16; /* i/o: waiting for input or output to copy stored block */\n\t\t\t\t\tvar TABLE = 17; /* i: waiting for dynamic block table lengths */\n\t\t\t\t\tvar LENLENS = 18; /* i: waiting for code length code lengths */\n\t\t\t\t\tvar CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\n\t\t\t\t\tvar LEN_ = 20; /* i: same as LEN below, but only first time in */\n\t\t\t\t\tvar LEN = 21; /* i: waiting for length/lit/eob code */\n\t\t\t\t\tvar LENEXT = 22; /* i: waiting for length extra bits */\n\t\t\t\t\tvar DIST = 23; /* i: waiting for distance code */\n\t\t\t\t\tvar DISTEXT = 24; /* i: waiting for distance extra bits */\n\t\t\t\t\tvar MATCH = 25; /* o: waiting for output space to copy string */\n\t\t\t\t\tvar LIT = 26; /* o: waiting for output space to write literal */\n\t\t\t\t\tvar CHECK = 27; /* i: waiting for 32-bit check value */\n\t\t\t\t\tvar LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\n\t\t\t\t\tvar DONE = 29; /* finished check, done -- remain here until reset */\n\t\t\t\t\tvar BAD = 30; /* got a data error -- remain here until reset */\n\t\t\t\t\tvar MEM = 31; /* got an inflate() memory error -- remain here until reset */\n\t\t\t\t\tvar SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n\t\t\t\t\t/* ===========================================================================*/\n\n\t\t\t\t\tvar ENOUGH_LENS = 852;\n\t\t\t\t\tvar ENOUGH_DISTS = 592;\n\t\t\t\t\t//var ENOUGH =  (ENOUGH_LENS+ENOUGH_DISTS);\n\n\t\t\t\t\tvar MAX_WBITS = 15;\n\t\t\t\t\t/* 32K LZ77 window */\n\t\t\t\t\tvar DEF_WBITS = MAX_WBITS;\n\n\t\t\t\t\tfunction zswap32( q ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t( ( q >>> 24 ) & 0xff ) +\n\t\t\t\t\t\t\t( ( q >>> 8 ) & 0xff00 ) +\n\t\t\t\t\t\t\t( ( q & 0xff00 ) << 8 ) +\n\t\t\t\t\t\t\t( ( q & 0xff ) << 24 )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction InflateState() {\n\t\t\t\t\t\tthis.mode = 0; /* current inflate mode */\n\t\t\t\t\t\tthis.last = false; /* true if processing last block */\n\t\t\t\t\t\tthis.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n\t\t\t\t\t\tthis.havedict = false; /* true if dictionary provided */\n\t\t\t\t\t\tthis.flags = 0; /* gzip header method and flags (0 if zlib) */\n\t\t\t\t\t\tthis.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n\t\t\t\t\t\tthis.check = 0; /* protected copy of check value */\n\t\t\t\t\t\tthis.total = 0; /* protected copy of output count */\n\t\t\t\t\t\t// TODO: may be {}\n\t\t\t\t\t\tthis.head =\n\t\t\t\t\t\t\tnull; /* where to save gzip header information */\n\n\t\t\t\t\t\t/* sliding window */\n\t\t\t\t\t\tthis.wbits = 0; /* log base 2 of requested window size */\n\t\t\t\t\t\tthis.wsize = 0; /* window size or zero if not using window */\n\t\t\t\t\t\tthis.whave = 0; /* valid bytes in the window */\n\t\t\t\t\t\tthis.wnext = 0; /* window write index */\n\t\t\t\t\t\tthis.window =\n\t\t\t\t\t\t\tnull; /* allocated sliding window, if needed */\n\n\t\t\t\t\t\t/* bit accumulator */\n\t\t\t\t\t\tthis.hold = 0; /* input bit accumulator */\n\t\t\t\t\t\tthis.bits = 0; /* number of bits in \"in\" */\n\n\t\t\t\t\t\t/* for string and stored block copying */\n\t\t\t\t\t\tthis.length = 0; /* literal or length of data to copy */\n\t\t\t\t\t\tthis.offset = 0; /* distance back to copy string from */\n\n\t\t\t\t\t\t/* for table and code decoding */\n\t\t\t\t\t\tthis.extra = 0; /* extra bits needed */\n\n\t\t\t\t\t\t/* fixed and dynamic code tables */\n\t\t\t\t\t\tthis.lencode =\n\t\t\t\t\t\t\tnull; /* starting table for length/literal codes */\n\t\t\t\t\t\tthis.distcode =\n\t\t\t\t\t\t\tnull; /* starting table for distance codes */\n\t\t\t\t\t\tthis.lenbits = 0; /* index bits for lencode */\n\t\t\t\t\t\tthis.distbits = 0; /* index bits for distcode */\n\n\t\t\t\t\t\t/* dynamic table building */\n\t\t\t\t\t\tthis.ncode = 0; /* number of code length code lengths */\n\t\t\t\t\t\tthis.nlen = 0; /* number of length code lengths */\n\t\t\t\t\t\tthis.ndist = 0; /* number of distance code lengths */\n\t\t\t\t\t\tthis.have = 0; /* number of code lengths in lens[] */\n\t\t\t\t\t\tthis.next = null; /* next available space in codes[] */\n\n\t\t\t\t\t\tthis.lens = new utils.Buf16(\n\t\t\t\t\t\t\t320\n\t\t\t\t\t\t); /* temporary storage for code lengths */\n\t\t\t\t\t\tthis.work = new utils.Buf16(\n\t\t\t\t\t\t\t288\n\t\t\t\t\t\t); /* work area for code table building */\n\n\t\t\t\t\t\t/*\n     because we don't have pointers in js, we use lencode and distcode directly\n     as buffers so we don't need codes\n    */\n\t\t\t\t\t\t//this.codes = new utils.Buf32(ENOUGH);       /* space for code tables */\n\t\t\t\t\t\tthis.lendyn =\n\t\t\t\t\t\t\tnull; /* dynamic table for length/literal codes (JS specific) */\n\t\t\t\t\t\tthis.distdyn =\n\t\t\t\t\t\t\tnull; /* dynamic table for distance codes (JS specific) */\n\t\t\t\t\t\tthis.sane = 0; /* if false, allow invalid distance too far */\n\t\t\t\t\t\tthis.back = 0; /* bits back of last unprocessed length/lit */\n\t\t\t\t\t\tthis.was = 0; /* initial length of match */\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction inflateResetKeep( strm ) {\n\t\t\t\t\t\tvar state;\n\n\t\t\t\t\t\tif ( ! strm || ! strm.state ) {\n\t\t\t\t\t\t\treturn Z_STREAM_ERROR;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstate = strm.state;\n\t\t\t\t\t\tstrm.total_in = strm.total_out = state.total = 0;\n\t\t\t\t\t\tstrm.msg = ''; /*Z_NULL*/\n\t\t\t\t\t\tif ( state.wrap ) {\n\t\t\t\t\t\t\t/* to support ill-conceived Java test suite */\n\t\t\t\t\t\t\tstrm.adler = state.wrap & 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstate.mode = HEAD;\n\t\t\t\t\t\tstate.last = 0;\n\t\t\t\t\t\tstate.havedict = 0;\n\t\t\t\t\t\tstate.dmax = 32768;\n\t\t\t\t\t\tstate.head = null /*Z_NULL*/;\n\t\t\t\t\t\tstate.hold = 0;\n\t\t\t\t\t\tstate.bits = 0;\n\t\t\t\t\t\t//state.lencode = state.distcode = state.next = state.codes;\n\t\t\t\t\t\tstate.lencode = state.lendyn = new utils.Buf32(\n\t\t\t\t\t\t\tENOUGH_LENS\n\t\t\t\t\t\t);\n\t\t\t\t\t\tstate.distcode = state.distdyn = new utils.Buf32(\n\t\t\t\t\t\t\tENOUGH_DISTS\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tstate.sane = 1;\n\t\t\t\t\t\tstate.back = -1;\n\t\t\t\t\t\t//Tracev((stderr, \"inflate: reset\\n\"));\n\t\t\t\t\t\treturn Z_OK;\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction inflateReset( strm ) {\n\t\t\t\t\t\tvar state;\n\n\t\t\t\t\t\tif ( ! strm || ! strm.state ) {\n\t\t\t\t\t\t\treturn Z_STREAM_ERROR;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstate = strm.state;\n\t\t\t\t\t\tstate.wsize = 0;\n\t\t\t\t\t\tstate.whave = 0;\n\t\t\t\t\t\tstate.wnext = 0;\n\t\t\t\t\t\treturn inflateResetKeep( strm );\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction inflateReset2( strm, windowBits ) {\n\t\t\t\t\t\tvar wrap;\n\t\t\t\t\t\tvar state;\n\n\t\t\t\t\t\t/* get the state */\n\t\t\t\t\t\tif ( ! strm || ! strm.state ) {\n\t\t\t\t\t\t\treturn Z_STREAM_ERROR;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstate = strm.state;\n\n\t\t\t\t\t\t/* extract wrap request from windowBits parameter */\n\t\t\t\t\t\tif ( windowBits < 0 ) {\n\t\t\t\t\t\t\twrap = 0;\n\t\t\t\t\t\t\twindowBits = -windowBits;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\twrap = ( windowBits >> 4 ) + 1;\n\t\t\t\t\t\t\tif ( windowBits < 48 ) {\n\t\t\t\t\t\t\t\twindowBits &= 15;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* set number of window bits, free window if different */\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\twindowBits &&\n\t\t\t\t\t\t\t( windowBits < 8 || windowBits > 15 )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn Z_STREAM_ERROR;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tstate.window !== null &&\n\t\t\t\t\t\t\tstate.wbits !== windowBits\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tstate.window = null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* update state and reset the rest of it */\n\t\t\t\t\t\tstate.wrap = wrap;\n\t\t\t\t\t\tstate.wbits = windowBits;\n\t\t\t\t\t\treturn inflateReset( strm );\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction inflateInit2( strm, windowBits ) {\n\t\t\t\t\t\tvar ret;\n\t\t\t\t\t\tvar state;\n\n\t\t\t\t\t\tif ( ! strm ) {\n\t\t\t\t\t\t\treturn Z_STREAM_ERROR;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t//strm.msg = Z_NULL;                 /* in case we return an error */\n\n\t\t\t\t\t\tstate = new InflateState();\n\n\t\t\t\t\t\t//if (state === Z_NULL) return Z_MEM_ERROR;\n\t\t\t\t\t\t//Tracev((stderr, \"inflate: allocated\\n\"));\n\t\t\t\t\t\tstrm.state = state;\n\t\t\t\t\t\tstate.window = null /*Z_NULL*/;\n\t\t\t\t\t\tret = inflateReset2( strm, windowBits );\n\t\t\t\t\t\tif ( ret !== Z_OK ) {\n\t\t\t\t\t\t\tstrm.state = null /*Z_NULL*/;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn ret;\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction inflateInit( strm ) {\n\t\t\t\t\t\treturn inflateInit2( strm, DEF_WBITS );\n\t\t\t\t\t}\n\n\t\t\t\t\t/*\n   Return state with length and distance decoding tables and index sizes set to\n   fixed code decoding.  Normally this returns fixed tables from inffixed.h.\n   If BUILDFIXED is defined, then instead this routine builds the tables the\n   first time it's called, and returns those tables the first time and\n   thereafter.  This reduces the size of the code by about 2K bytes, in\n   exchange for a little execution time.  However, BUILDFIXED should not be\n   used for threaded applications, since the rewriting of the tables and virgin\n   may not be thread-safe.\n   */\n\t\t\t\t\tvar virgin = true;\n\n\t\t\t\t\tvar lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\n\t\t\t\t\tfunction fixedtables( state ) {\n\t\t\t\t\t\t/* build fixed huffman tables if first call (may not be thread safe) */\n\t\t\t\t\t\tif ( virgin ) {\n\t\t\t\t\t\t\tvar sym;\n\n\t\t\t\t\t\t\tlenfix = new utils.Buf32( 512 );\n\t\t\t\t\t\t\tdistfix = new utils.Buf32( 32 );\n\n\t\t\t\t\t\t\t/* literal/length table */\n\t\t\t\t\t\t\tsym = 0;\n\t\t\t\t\t\t\twhile ( sym < 144 ) {\n\t\t\t\t\t\t\t\tstate.lens[ sym++ ] = 8;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twhile ( sym < 256 ) {\n\t\t\t\t\t\t\t\tstate.lens[ sym++ ] = 9;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twhile ( sym < 280 ) {\n\t\t\t\t\t\t\t\tstate.lens[ sym++ ] = 7;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twhile ( sym < 288 ) {\n\t\t\t\t\t\t\t\tstate.lens[ sym++ ] = 8;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tinflate_table(\n\t\t\t\t\t\t\t\tLENS,\n\t\t\t\t\t\t\t\tstate.lens,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t288,\n\t\t\t\t\t\t\t\tlenfix,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tstate.work,\n\t\t\t\t\t\t\t\t{ bits: 9 }\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t/* distance table */\n\t\t\t\t\t\t\tsym = 0;\n\t\t\t\t\t\t\twhile ( sym < 32 ) {\n\t\t\t\t\t\t\t\tstate.lens[ sym++ ] = 5;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tinflate_table(\n\t\t\t\t\t\t\t\tDISTS,\n\t\t\t\t\t\t\t\tstate.lens,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t32,\n\t\t\t\t\t\t\t\tdistfix,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tstate.work,\n\t\t\t\t\t\t\t\t{ bits: 5 }\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t/* do this just once */\n\t\t\t\t\t\t\tvirgin = false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstate.lencode = lenfix;\n\t\t\t\t\t\tstate.lenbits = 9;\n\t\t\t\t\t\tstate.distcode = distfix;\n\t\t\t\t\t\tstate.distbits = 5;\n\t\t\t\t\t}\n\n\t\t\t\t\t/*\n   Update the window with the last wsize (normally 32K) bytes written before\n   returning.  If window does not exist yet, create it.  This is only called\n   when a window is already in use, or when output has been written during this\n   inflate call, but the end of the deflate stream has not been reached yet.\n   It is also called to create a window for dictionary data when a dictionary\n   is loaded.\n\n   Providing output buffers larger than 32K to inflate() should provide a speed\n   advantage, since only the last 32K of output is copied to the sliding window\n   upon return from inflate(), and since all distances after the first 32K of\n   output will fall in the output data, making match copies simpler and faster.\n   The advantage may be dependent on the size of the processor's data caches.\n   */\n\t\t\t\t\tfunction updatewindow( strm, src, end, copy ) {\n\t\t\t\t\t\tvar dist;\n\t\t\t\t\t\tvar state = strm.state;\n\n\t\t\t\t\t\t/* if it hasn't been done already, allocate space for the window */\n\t\t\t\t\t\tif ( state.window === null ) {\n\t\t\t\t\t\t\tstate.wsize = 1 << state.wbits;\n\t\t\t\t\t\t\tstate.wnext = 0;\n\t\t\t\t\t\t\tstate.whave = 0;\n\n\t\t\t\t\t\t\tstate.window = new utils.Buf8( state.wsize );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* copy state->wsize or less output bytes into the circular window */\n\t\t\t\t\t\tif ( copy >= state.wsize ) {\n\t\t\t\t\t\t\tutils.arraySet(\n\t\t\t\t\t\t\t\tstate.window,\n\t\t\t\t\t\t\t\tsrc,\n\t\t\t\t\t\t\t\tend - state.wsize,\n\t\t\t\t\t\t\t\tstate.wsize,\n\t\t\t\t\t\t\t\t0\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tstate.wnext = 0;\n\t\t\t\t\t\t\tstate.whave = state.wsize;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdist = state.wsize - state.wnext;\n\t\t\t\t\t\t\tif ( dist > copy ) {\n\t\t\t\t\t\t\t\tdist = copy;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t//zmemcpy(state->window + state->wnext, end - copy, dist);\n\t\t\t\t\t\t\tutils.arraySet(\n\t\t\t\t\t\t\t\tstate.window,\n\t\t\t\t\t\t\t\tsrc,\n\t\t\t\t\t\t\t\tend - copy,\n\t\t\t\t\t\t\t\tdist,\n\t\t\t\t\t\t\t\tstate.wnext\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tcopy -= dist;\n\t\t\t\t\t\t\tif ( copy ) {\n\t\t\t\t\t\t\t\t//zmemcpy(state->window, end - copy, copy);\n\t\t\t\t\t\t\t\tutils.arraySet(\n\t\t\t\t\t\t\t\t\tstate.window,\n\t\t\t\t\t\t\t\t\tsrc,\n\t\t\t\t\t\t\t\t\tend - copy,\n\t\t\t\t\t\t\t\t\tcopy,\n\t\t\t\t\t\t\t\t\t0\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tstate.wnext = copy;\n\t\t\t\t\t\t\t\tstate.whave = state.wsize;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tstate.wnext += dist;\n\t\t\t\t\t\t\t\tif ( state.wnext === state.wsize ) {\n\t\t\t\t\t\t\t\t\tstate.wnext = 0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( state.whave < state.wsize ) {\n\t\t\t\t\t\t\t\t\tstate.whave += dist;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction inflate( strm, flush ) {\n\t\t\t\t\t\tvar state;\n\t\t\t\t\t\tvar input, output; // input/output buffers\n\t\t\t\t\t\tvar next; /* next input INDEX */\n\t\t\t\t\t\tvar put; /* next output INDEX */\n\t\t\t\t\t\tvar have, left; /* available input and output */\n\t\t\t\t\t\tvar hold; /* bit buffer */\n\t\t\t\t\t\tvar bits; /* bits in bit buffer */\n\t\t\t\t\t\tvar _in,\n\t\t\t\t\t\t\t_out; /* save starting available input and output */\n\t\t\t\t\t\tvar copy; /* number of stored or match bytes to copy */\n\t\t\t\t\t\tvar from; /* where to copy match bytes from */\n\t\t\t\t\t\tvar from_source;\n\t\t\t\t\t\tvar here = 0; /* current decoding table entry */\n\t\t\t\t\t\tvar here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n\t\t\t\t\t\t//var last;                   /* parent table entry */\n\t\t\t\t\t\tvar last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n\t\t\t\t\t\tvar len; /* length to copy for repeats, bits to drop */\n\t\t\t\t\t\tvar ret; /* return code */\n\t\t\t\t\t\tvar hbuf = new utils.Buf8(\n\t\t\t\t\t\t\t4\n\t\t\t\t\t\t); /* buffer for gzip header crc calculation */\n\t\t\t\t\t\tvar opts;\n\n\t\t\t\t\t\tvar n; // temporary var for NEED_BITS\n\n\t\t\t\t\t\tvar order =\n\t\t\t\t\t\t\t/* permutation of code lengths */\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3,\n\t\t\t\t\t\t\t\t13, 2, 14, 1, 15,\n\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! strm ||\n\t\t\t\t\t\t\t! strm.state ||\n\t\t\t\t\t\t\t! strm.output ||\n\t\t\t\t\t\t\t( ! strm.input && strm.avail_in !== 0 )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn Z_STREAM_ERROR;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstate = strm.state;\n\t\t\t\t\t\tif ( state.mode === TYPE ) {\n\t\t\t\t\t\t\tstate.mode = TYPEDO;\n\t\t\t\t\t\t} /* skip check */\n\n\t\t\t\t\t\t//--- LOAD() ---\n\t\t\t\t\t\tput = strm.next_out;\n\t\t\t\t\t\toutput = strm.output;\n\t\t\t\t\t\tleft = strm.avail_out;\n\t\t\t\t\t\tnext = strm.next_in;\n\t\t\t\t\t\tinput = strm.input;\n\t\t\t\t\t\thave = strm.avail_in;\n\t\t\t\t\t\thold = state.hold;\n\t\t\t\t\t\tbits = state.bits;\n\t\t\t\t\t\t//---\n\n\t\t\t\t\t\t_in = have;\n\t\t\t\t\t\t_out = left;\n\t\t\t\t\t\tret = Z_OK;\n\n\t\t\t\t\t\t// goto emulation\n\t\t\t\t\t\tinf_leave: for (;;) {\n\t\t\t\t\t\t\tswitch ( state.mode ) {\n\t\t\t\t\t\t\t\tcase HEAD:\n\t\t\t\t\t\t\t\t\tif ( state.wrap === 0 ) {\n\t\t\t\t\t\t\t\t\t\tstate.mode = TYPEDO;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//=== NEEDBITS(16);\n\t\t\t\t\t\t\t\t\twhile ( bits < 16 ) {\n\t\t\t\t\t\t\t\t\t\tif ( have === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\thave--;\n\t\t\t\t\t\t\t\t\t\thold += input[ next++ ] << bits;\n\t\t\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\tif ( state.wrap & 2 && hold === 0x8b1f ) {\n\t\t\t\t\t\t\t\t\t\t/* gzip header */\n\t\t\t\t\t\t\t\t\t\tstate.check = 0 /*crc32(0L, Z_NULL, 0)*/;\n\t\t\t\t\t\t\t\t\t\t//=== CRC2(state.check, hold);\n\t\t\t\t\t\t\t\t\t\thbuf[ 0 ] = hold & 0xff;\n\t\t\t\t\t\t\t\t\t\thbuf[ 1 ] = ( hold >>> 8 ) & 0xff;\n\t\t\t\t\t\t\t\t\t\tstate.check = crc32(\n\t\t\t\t\t\t\t\t\t\t\tstate.check,\n\t\t\t\t\t\t\t\t\t\t\thbuf,\n\t\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\t\t0\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t//===//\n\n\t\t\t\t\t\t\t\t\t\t//=== INITBITS();\n\t\t\t\t\t\t\t\t\t\thold = 0;\n\t\t\t\t\t\t\t\t\t\tbits = 0;\n\t\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\t\tstate.mode = FLAGS;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tstate.flags = 0; /* expect zlib header */\n\t\t\t\t\t\t\t\t\tif ( state.head ) {\n\t\t\t\t\t\t\t\t\t\tstate.head.done = false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t! (\n\t\t\t\t\t\t\t\t\t\t\tstate.wrap & 1\n\t\t\t\t\t\t\t\t\t\t) /* check if zlib header allowed */ ||\n\t\t\t\t\t\t\t\t\t\t( ( ( hold & 0xff ) /*BITS(8)*/ << 8 ) +\n\t\t\t\t\t\t\t\t\t\t\t( hold >> 8 ) ) %\n\t\t\t\t\t\t\t\t\t\t\t31\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tstrm.msg = 'incorrect header check';\n\t\t\t\t\t\t\t\t\t\tstate.mode = BAD;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t( hold & 0x0f ) /*BITS(4)*/ !==\n\t\t\t\t\t\t\t\t\t\tZ_DEFLATED\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tstrm.msg = 'unknown compression method';\n\t\t\t\t\t\t\t\t\t\tstate.mode = BAD;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//--- DROPBITS(4) ---//\n\t\t\t\t\t\t\t\t\thold >>>= 4;\n\t\t\t\t\t\t\t\t\tbits -= 4;\n\t\t\t\t\t\t\t\t\t//---//\n\t\t\t\t\t\t\t\t\tlen = ( hold & 0x0f ) /*BITS(4)*/ + 8;\n\t\t\t\t\t\t\t\t\tif ( state.wbits === 0 ) {\n\t\t\t\t\t\t\t\t\t\tstate.wbits = len;\n\t\t\t\t\t\t\t\t\t} else if ( len > state.wbits ) {\n\t\t\t\t\t\t\t\t\t\tstrm.msg = 'invalid window size';\n\t\t\t\t\t\t\t\t\t\tstate.mode = BAD;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tstate.dmax = 1 << len;\n\t\t\t\t\t\t\t\t\t//Tracev((stderr, \"inflate:   zlib header ok\\n\"));\n\t\t\t\t\t\t\t\t\tstrm.adler =\n\t\t\t\t\t\t\t\t\t\tstate.check = 1 /*adler32(0L, Z_NULL, 0)*/;\n\t\t\t\t\t\t\t\t\tstate.mode = hold & 0x200 ? DICTID : TYPE;\n\t\t\t\t\t\t\t\t\t//=== INITBITS();\n\t\t\t\t\t\t\t\t\thold = 0;\n\t\t\t\t\t\t\t\t\tbits = 0;\n\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase FLAGS:\n\t\t\t\t\t\t\t\t\t//=== NEEDBITS(16); */\n\t\t\t\t\t\t\t\t\twhile ( bits < 16 ) {\n\t\t\t\t\t\t\t\t\t\tif ( have === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\thave--;\n\t\t\t\t\t\t\t\t\t\thold += input[ next++ ] << bits;\n\t\t\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\tstate.flags = hold;\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t( state.flags & 0xff ) !==\n\t\t\t\t\t\t\t\t\t\tZ_DEFLATED\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tstrm.msg = 'unknown compression method';\n\t\t\t\t\t\t\t\t\t\tstate.mode = BAD;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( state.flags & 0xe000 ) {\n\t\t\t\t\t\t\t\t\t\tstrm.msg = 'unknown header flags set';\n\t\t\t\t\t\t\t\t\t\tstate.mode = BAD;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( state.head ) {\n\t\t\t\t\t\t\t\t\t\tstate.head.text = ( hold >> 8 ) & 1;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( state.flags & 0x0200 ) {\n\t\t\t\t\t\t\t\t\t\t//=== CRC2(state.check, hold);\n\t\t\t\t\t\t\t\t\t\thbuf[ 0 ] = hold & 0xff;\n\t\t\t\t\t\t\t\t\t\thbuf[ 1 ] = ( hold >>> 8 ) & 0xff;\n\t\t\t\t\t\t\t\t\t\tstate.check = crc32(\n\t\t\t\t\t\t\t\t\t\t\tstate.check,\n\t\t\t\t\t\t\t\t\t\t\thbuf,\n\t\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\t\t0\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//=== INITBITS();\n\t\t\t\t\t\t\t\t\thold = 0;\n\t\t\t\t\t\t\t\t\tbits = 0;\n\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\tstate.mode = TIME;\n\t\t\t\t\t\t\t\t/* falls through */\n\t\t\t\t\t\t\t\tcase TIME:\n\t\t\t\t\t\t\t\t\t//=== NEEDBITS(32); */\n\t\t\t\t\t\t\t\t\twhile ( bits < 32 ) {\n\t\t\t\t\t\t\t\t\t\tif ( have === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\thave--;\n\t\t\t\t\t\t\t\t\t\thold += input[ next++ ] << bits;\n\t\t\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\tif ( state.head ) {\n\t\t\t\t\t\t\t\t\t\tstate.head.time = hold;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( state.flags & 0x0200 ) {\n\t\t\t\t\t\t\t\t\t\t//=== CRC4(state.check, hold)\n\t\t\t\t\t\t\t\t\t\thbuf[ 0 ] = hold & 0xff;\n\t\t\t\t\t\t\t\t\t\thbuf[ 1 ] = ( hold >>> 8 ) & 0xff;\n\t\t\t\t\t\t\t\t\t\thbuf[ 2 ] = ( hold >>> 16 ) & 0xff;\n\t\t\t\t\t\t\t\t\t\thbuf[ 3 ] = ( hold >>> 24 ) & 0xff;\n\t\t\t\t\t\t\t\t\t\tstate.check = crc32(\n\t\t\t\t\t\t\t\t\t\t\tstate.check,\n\t\t\t\t\t\t\t\t\t\t\thbuf,\n\t\t\t\t\t\t\t\t\t\t\t4,\n\t\t\t\t\t\t\t\t\t\t\t0\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t//===\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//=== INITBITS();\n\t\t\t\t\t\t\t\t\thold = 0;\n\t\t\t\t\t\t\t\t\tbits = 0;\n\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\tstate.mode = OS;\n\t\t\t\t\t\t\t\t/* falls through */\n\t\t\t\t\t\t\t\tcase OS:\n\t\t\t\t\t\t\t\t\t//=== NEEDBITS(16); */\n\t\t\t\t\t\t\t\t\twhile ( bits < 16 ) {\n\t\t\t\t\t\t\t\t\t\tif ( have === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\thave--;\n\t\t\t\t\t\t\t\t\t\thold += input[ next++ ] << bits;\n\t\t\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\tif ( state.head ) {\n\t\t\t\t\t\t\t\t\t\tstate.head.xflags = hold & 0xff;\n\t\t\t\t\t\t\t\t\t\tstate.head.os = hold >> 8;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( state.flags & 0x0200 ) {\n\t\t\t\t\t\t\t\t\t\t//=== CRC2(state.check, hold);\n\t\t\t\t\t\t\t\t\t\thbuf[ 0 ] = hold & 0xff;\n\t\t\t\t\t\t\t\t\t\thbuf[ 1 ] = ( hold >>> 8 ) & 0xff;\n\t\t\t\t\t\t\t\t\t\tstate.check = crc32(\n\t\t\t\t\t\t\t\t\t\t\tstate.check,\n\t\t\t\t\t\t\t\t\t\t\thbuf,\n\t\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\t\t0\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//=== INITBITS();\n\t\t\t\t\t\t\t\t\thold = 0;\n\t\t\t\t\t\t\t\t\tbits = 0;\n\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\tstate.mode = EXLEN;\n\t\t\t\t\t\t\t\t/* falls through */\n\t\t\t\t\t\t\t\tcase EXLEN:\n\t\t\t\t\t\t\t\t\tif ( state.flags & 0x0400 ) {\n\t\t\t\t\t\t\t\t\t\t//=== NEEDBITS(16); */\n\t\t\t\t\t\t\t\t\t\twhile ( bits < 16 ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( have === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\thave--;\n\t\t\t\t\t\t\t\t\t\t\thold += input[ next++ ] << bits;\n\t\t\t\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\t\tstate.length = hold;\n\t\t\t\t\t\t\t\t\t\tif ( state.head ) {\n\t\t\t\t\t\t\t\t\t\t\tstate.head.extra_len = hold;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif ( state.flags & 0x0200 ) {\n\t\t\t\t\t\t\t\t\t\t\t//=== CRC2(state.check, hold);\n\t\t\t\t\t\t\t\t\t\t\thbuf[ 0 ] = hold & 0xff;\n\t\t\t\t\t\t\t\t\t\t\thbuf[ 1 ] = ( hold >>> 8 ) & 0xff;\n\t\t\t\t\t\t\t\t\t\t\tstate.check = crc32(\n\t\t\t\t\t\t\t\t\t\t\t\tstate.check,\n\t\t\t\t\t\t\t\t\t\t\t\thbuf,\n\t\t\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\t\t\t0\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t//=== INITBITS();\n\t\t\t\t\t\t\t\t\t\thold = 0;\n\t\t\t\t\t\t\t\t\t\tbits = 0;\n\t\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\t} else if ( state.head ) {\n\t\t\t\t\t\t\t\t\t\tstate.head.extra = null /*Z_NULL*/;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tstate.mode = EXTRA;\n\t\t\t\t\t\t\t\t/* falls through */\n\t\t\t\t\t\t\t\tcase EXTRA:\n\t\t\t\t\t\t\t\t\tif ( state.flags & 0x0400 ) {\n\t\t\t\t\t\t\t\t\t\tcopy = state.length;\n\t\t\t\t\t\t\t\t\t\tif ( copy > have ) {\n\t\t\t\t\t\t\t\t\t\t\tcopy = have;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif ( copy ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( state.head ) {\n\t\t\t\t\t\t\t\t\t\t\t\tlen =\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.head.extra_len -\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.length;\n\t\t\t\t\t\t\t\t\t\t\t\tif ( ! state.head.extra ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t// Use untyped array for more convenient processing later\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.head.extra =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnew Array(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.head.extra_len\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tutils.arraySet(\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.head.extra,\n\t\t\t\t\t\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\t\t\t\t\t\tnext,\n\t\t\t\t\t\t\t\t\t\t\t\t\t// extra field is limited to 65536 bytes\n\t\t\t\t\t\t\t\t\t\t\t\t\t// - no need for additional size check\n\t\t\t\t\t\t\t\t\t\t\t\t\tcopy,\n\t\t\t\t\t\t\t\t\t\t\t\t\t/*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n\t\t\t\t\t\t\t\t\t\t\t\t\tlen\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t//zmemcpy(state.head.extra + len, next,\n\t\t\t\t\t\t\t\t\t\t\t\t//        len + copy > state.head.extra_max ?\n\t\t\t\t\t\t\t\t\t\t\t\t//        state.head.extra_max - len : copy);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tif ( state.flags & 0x0200 ) {\n\t\t\t\t\t\t\t\t\t\t\t\tstate.check = crc32(\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.check,\n\t\t\t\t\t\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\t\t\t\t\t\tcopy,\n\t\t\t\t\t\t\t\t\t\t\t\t\tnext\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\thave -= copy;\n\t\t\t\t\t\t\t\t\t\t\tnext += copy;\n\t\t\t\t\t\t\t\t\t\t\tstate.length -= copy;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif ( state.length ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tstate.length = 0;\n\t\t\t\t\t\t\t\t\tstate.mode = NAME;\n\t\t\t\t\t\t\t\t/* falls through */\n\t\t\t\t\t\t\t\tcase NAME:\n\t\t\t\t\t\t\t\t\tif ( state.flags & 0x0800 ) {\n\t\t\t\t\t\t\t\t\t\tif ( have === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcopy = 0;\n\t\t\t\t\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\t\t\t\t\t// TODO: 2 or 1 bytes?\n\t\t\t\t\t\t\t\t\t\t\tlen = input[ next + copy++ ];\n\t\t\t\t\t\t\t\t\t\t\t/* use constant limit because in js we should not preallocate memory */\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\tstate.head &&\n\t\t\t\t\t\t\t\t\t\t\t\tlen &&\n\t\t\t\t\t\t\t\t\t\t\t\tstate.length <\n\t\t\t\t\t\t\t\t\t\t\t\t\t65536 /*state.head.name_max*/\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\tstate.head.name +=\n\t\t\t\t\t\t\t\t\t\t\t\t\tString.fromCharCode( len );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} while ( len && copy < have );\n\n\t\t\t\t\t\t\t\t\t\tif ( state.flags & 0x0200 ) {\n\t\t\t\t\t\t\t\t\t\t\tstate.check = crc32(\n\t\t\t\t\t\t\t\t\t\t\t\tstate.check,\n\t\t\t\t\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\t\t\t\t\tcopy,\n\t\t\t\t\t\t\t\t\t\t\t\tnext\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\thave -= copy;\n\t\t\t\t\t\t\t\t\t\tnext += copy;\n\t\t\t\t\t\t\t\t\t\tif ( len ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else if ( state.head ) {\n\t\t\t\t\t\t\t\t\t\tstate.head.name = null;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tstate.length = 0;\n\t\t\t\t\t\t\t\t\tstate.mode = COMMENT;\n\t\t\t\t\t\t\t\t/* falls through */\n\t\t\t\t\t\t\t\tcase COMMENT:\n\t\t\t\t\t\t\t\t\tif ( state.flags & 0x1000 ) {\n\t\t\t\t\t\t\t\t\t\tif ( have === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcopy = 0;\n\t\t\t\t\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\t\t\t\t\tlen = input[ next + copy++ ];\n\t\t\t\t\t\t\t\t\t\t\t/* use constant limit because in js we should not preallocate memory */\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\tstate.head &&\n\t\t\t\t\t\t\t\t\t\t\t\tlen &&\n\t\t\t\t\t\t\t\t\t\t\t\tstate.length <\n\t\t\t\t\t\t\t\t\t\t\t\t\t65536 /*state.head.comm_max*/\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\tstate.head.comment +=\n\t\t\t\t\t\t\t\t\t\t\t\t\tString.fromCharCode( len );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} while ( len && copy < have );\n\t\t\t\t\t\t\t\t\t\tif ( state.flags & 0x0200 ) {\n\t\t\t\t\t\t\t\t\t\t\tstate.check = crc32(\n\t\t\t\t\t\t\t\t\t\t\t\tstate.check,\n\t\t\t\t\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\t\t\t\t\tcopy,\n\t\t\t\t\t\t\t\t\t\t\t\tnext\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\thave -= copy;\n\t\t\t\t\t\t\t\t\t\tnext += copy;\n\t\t\t\t\t\t\t\t\t\tif ( len ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else if ( state.head ) {\n\t\t\t\t\t\t\t\t\t\tstate.head.comment = null;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tstate.mode = HCRC;\n\t\t\t\t\t\t\t\t/* falls through */\n\t\t\t\t\t\t\t\tcase HCRC:\n\t\t\t\t\t\t\t\t\tif ( state.flags & 0x0200 ) {\n\t\t\t\t\t\t\t\t\t\t//=== NEEDBITS(16); */\n\t\t\t\t\t\t\t\t\t\twhile ( bits < 16 ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( have === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\thave--;\n\t\t\t\t\t\t\t\t\t\t\thold += input[ next++ ] << bits;\n\t\t\t\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\thold !==\n\t\t\t\t\t\t\t\t\t\t\t( state.check & 0xffff )\n\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\tstrm.msg = 'header crc mismatch';\n\t\t\t\t\t\t\t\t\t\t\tstate.mode = BAD;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t//=== INITBITS();\n\t\t\t\t\t\t\t\t\t\thold = 0;\n\t\t\t\t\t\t\t\t\t\tbits = 0;\n\t\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( state.head ) {\n\t\t\t\t\t\t\t\t\t\tstate.head.hcrc =\n\t\t\t\t\t\t\t\t\t\t\t( state.flags >> 9 ) & 1;\n\t\t\t\t\t\t\t\t\t\tstate.head.done = true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tstrm.adler = state.check = 0;\n\t\t\t\t\t\t\t\t\tstate.mode = TYPE;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase DICTID:\n\t\t\t\t\t\t\t\t\t//=== NEEDBITS(32); */\n\t\t\t\t\t\t\t\t\twhile ( bits < 32 ) {\n\t\t\t\t\t\t\t\t\t\tif ( have === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\thave--;\n\t\t\t\t\t\t\t\t\t\thold += input[ next++ ] << bits;\n\t\t\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\tstrm.adler = state.check = zswap32( hold );\n\t\t\t\t\t\t\t\t\t//=== INITBITS();\n\t\t\t\t\t\t\t\t\thold = 0;\n\t\t\t\t\t\t\t\t\tbits = 0;\n\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\tstate.mode = DICT;\n\t\t\t\t\t\t\t\t/* falls through */\n\t\t\t\t\t\t\t\tcase DICT:\n\t\t\t\t\t\t\t\t\tif ( state.havedict === 0 ) {\n\t\t\t\t\t\t\t\t\t\t//--- RESTORE() ---\n\t\t\t\t\t\t\t\t\t\tstrm.next_out = put;\n\t\t\t\t\t\t\t\t\t\tstrm.avail_out = left;\n\t\t\t\t\t\t\t\t\t\tstrm.next_in = next;\n\t\t\t\t\t\t\t\t\t\tstrm.avail_in = have;\n\t\t\t\t\t\t\t\t\t\tstate.hold = hold;\n\t\t\t\t\t\t\t\t\t\tstate.bits = bits;\n\t\t\t\t\t\t\t\t\t\t//---\n\t\t\t\t\t\t\t\t\t\treturn Z_NEED_DICT;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tstrm.adler =\n\t\t\t\t\t\t\t\t\t\tstate.check = 1 /*adler32(0L, Z_NULL, 0)*/;\n\t\t\t\t\t\t\t\t\tstate.mode = TYPE;\n\t\t\t\t\t\t\t\t/* falls through */\n\t\t\t\t\t\t\t\tcase TYPE:\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\tflush === Z_BLOCK ||\n\t\t\t\t\t\t\t\t\t\tflush === Z_TREES\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/* falls through */\n\t\t\t\t\t\t\t\tcase TYPEDO:\n\t\t\t\t\t\t\t\t\tif ( state.last ) {\n\t\t\t\t\t\t\t\t\t\t//--- BYTEBITS() ---//\n\t\t\t\t\t\t\t\t\t\thold >>>= bits & 7;\n\t\t\t\t\t\t\t\t\t\tbits -= bits & 7;\n\t\t\t\t\t\t\t\t\t\t//---//\n\t\t\t\t\t\t\t\t\t\tstate.mode = CHECK;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//=== NEEDBITS(3); */\n\t\t\t\t\t\t\t\t\twhile ( bits < 3 ) {\n\t\t\t\t\t\t\t\t\t\tif ( have === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\thave--;\n\t\t\t\t\t\t\t\t\t\thold += input[ next++ ] << bits;\n\t\t\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\tstate.last = hold & 0x01 /*BITS(1)*/;\n\t\t\t\t\t\t\t\t\t//--- DROPBITS(1) ---//\n\t\t\t\t\t\t\t\t\thold >>>= 1;\n\t\t\t\t\t\t\t\t\tbits -= 1;\n\t\t\t\t\t\t\t\t\t//---//\n\n\t\t\t\t\t\t\t\t\tswitch ( hold & 0x03 /*BITS(2)*/ ) {\n\t\t\t\t\t\t\t\t\t\tcase 0 /* stored block */:\n\t\t\t\t\t\t\t\t\t\t\t//Tracev((stderr, \"inflate:     stored block%s\\n\",\n\t\t\t\t\t\t\t\t\t\t\t//        state.last ? \" (last)\" : \"\"));\n\t\t\t\t\t\t\t\t\t\t\tstate.mode = STORED;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\tcase 1 /* fixed block */:\n\t\t\t\t\t\t\t\t\t\t\tfixedtables( state );\n\t\t\t\t\t\t\t\t\t\t\t//Tracev((stderr, \"inflate:     fixed codes block%s\\n\",\n\t\t\t\t\t\t\t\t\t\t\t//        state.last ? \" (last)\" : \"\"));\n\t\t\t\t\t\t\t\t\t\t\tstate.mode =\n\t\t\t\t\t\t\t\t\t\t\t\tLEN_; /* decode codes */\n\t\t\t\t\t\t\t\t\t\t\tif ( flush === Z_TREES ) {\n\t\t\t\t\t\t\t\t\t\t\t\t//--- DROPBITS(2) ---//\n\t\t\t\t\t\t\t\t\t\t\t\thold >>>= 2;\n\t\t\t\t\t\t\t\t\t\t\t\tbits -= 2;\n\t\t\t\t\t\t\t\t\t\t\t\t//---//\n\t\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\tcase 2 /* dynamic block */:\n\t\t\t\t\t\t\t\t\t\t\t//Tracev((stderr, \"inflate:     dynamic codes block%s\\n\",\n\t\t\t\t\t\t\t\t\t\t\t//        state.last ? \" (last)\" : \"\"));\n\t\t\t\t\t\t\t\t\t\t\tstate.mode = TABLE;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\tcase 3:\n\t\t\t\t\t\t\t\t\t\t\tstrm.msg = 'invalid block type';\n\t\t\t\t\t\t\t\t\t\t\tstate.mode = BAD;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//--- DROPBITS(2) ---//\n\t\t\t\t\t\t\t\t\thold >>>= 2;\n\t\t\t\t\t\t\t\t\tbits -= 2;\n\t\t\t\t\t\t\t\t\t//---//\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase STORED:\n\t\t\t\t\t\t\t\t\t//--- BYTEBITS() ---// /* go to byte boundary */\n\t\t\t\t\t\t\t\t\thold >>>= bits & 7;\n\t\t\t\t\t\t\t\t\tbits -= bits & 7;\n\t\t\t\t\t\t\t\t\t//---//\n\t\t\t\t\t\t\t\t\t//=== NEEDBITS(32); */\n\t\t\t\t\t\t\t\t\twhile ( bits < 32 ) {\n\t\t\t\t\t\t\t\t\t\tif ( have === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\thave--;\n\t\t\t\t\t\t\t\t\t\thold += input[ next++ ] << bits;\n\t\t\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t( hold & 0xffff ) !==\n\t\t\t\t\t\t\t\t\t\t( ( hold >>> 16 ) ^ 0xffff )\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tstrm.msg =\n\t\t\t\t\t\t\t\t\t\t\t'invalid stored block lengths';\n\t\t\t\t\t\t\t\t\t\tstate.mode = BAD;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tstate.length = hold & 0xffff;\n\t\t\t\t\t\t\t\t\t//Tracev((stderr, \"inflate:       stored length %u\\n\",\n\t\t\t\t\t\t\t\t\t//        state.length));\n\t\t\t\t\t\t\t\t\t//=== INITBITS();\n\t\t\t\t\t\t\t\t\thold = 0;\n\t\t\t\t\t\t\t\t\tbits = 0;\n\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\tstate.mode = COPY_;\n\t\t\t\t\t\t\t\t\tif ( flush === Z_TREES ) {\n\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/* falls through */\n\t\t\t\t\t\t\t\tcase COPY_:\n\t\t\t\t\t\t\t\t\tstate.mode = COPY;\n\t\t\t\t\t\t\t\t/* falls through */\n\t\t\t\t\t\t\t\tcase COPY:\n\t\t\t\t\t\t\t\t\tcopy = state.length;\n\t\t\t\t\t\t\t\t\tif ( copy ) {\n\t\t\t\t\t\t\t\t\t\tif ( copy > have ) {\n\t\t\t\t\t\t\t\t\t\t\tcopy = have;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif ( copy > left ) {\n\t\t\t\t\t\t\t\t\t\t\tcopy = left;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif ( copy === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t//--- zmemcpy(put, next, copy); ---\n\t\t\t\t\t\t\t\t\t\tutils.arraySet(\n\t\t\t\t\t\t\t\t\t\t\toutput,\n\t\t\t\t\t\t\t\t\t\t\tinput,\n\t\t\t\t\t\t\t\t\t\t\tnext,\n\t\t\t\t\t\t\t\t\t\t\tcopy,\n\t\t\t\t\t\t\t\t\t\t\tput\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t//---//\n\t\t\t\t\t\t\t\t\t\thave -= copy;\n\t\t\t\t\t\t\t\t\t\tnext += copy;\n\t\t\t\t\t\t\t\t\t\tleft -= copy;\n\t\t\t\t\t\t\t\t\t\tput += copy;\n\t\t\t\t\t\t\t\t\t\tstate.length -= copy;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//Tracev((stderr, \"inflate:       stored end\\n\"));\n\t\t\t\t\t\t\t\t\tstate.mode = TYPE;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase TABLE:\n\t\t\t\t\t\t\t\t\t//=== NEEDBITS(14); */\n\t\t\t\t\t\t\t\t\twhile ( bits < 14 ) {\n\t\t\t\t\t\t\t\t\t\tif ( have === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\thave--;\n\t\t\t\t\t\t\t\t\t\thold += input[ next++ ] << bits;\n\t\t\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\tstate.nlen =\n\t\t\t\t\t\t\t\t\t\t( hold & 0x1f ) /*BITS(5)*/ + 257;\n\t\t\t\t\t\t\t\t\t//--- DROPBITS(5) ---//\n\t\t\t\t\t\t\t\t\thold >>>= 5;\n\t\t\t\t\t\t\t\t\tbits -= 5;\n\t\t\t\t\t\t\t\t\t//---//\n\t\t\t\t\t\t\t\t\tstate.ndist =\n\t\t\t\t\t\t\t\t\t\t( hold & 0x1f ) /*BITS(5)*/ + 1;\n\t\t\t\t\t\t\t\t\t//--- DROPBITS(5) ---//\n\t\t\t\t\t\t\t\t\thold >>>= 5;\n\t\t\t\t\t\t\t\t\tbits -= 5;\n\t\t\t\t\t\t\t\t\t//---//\n\t\t\t\t\t\t\t\t\tstate.ncode =\n\t\t\t\t\t\t\t\t\t\t( hold & 0x0f ) /*BITS(4)*/ + 4;\n\t\t\t\t\t\t\t\t\t//--- DROPBITS(4) ---//\n\t\t\t\t\t\t\t\t\thold >>>= 4;\n\t\t\t\t\t\t\t\t\tbits -= 4;\n\t\t\t\t\t\t\t\t\t//---//\n\t\t\t\t\t\t\t\t\t//#ifndef PKZIP_BUG_WORKAROUND\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\tstate.nlen > 286 ||\n\t\t\t\t\t\t\t\t\t\tstate.ndist > 30\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tstrm.msg =\n\t\t\t\t\t\t\t\t\t\t\t'too many length or distance symbols';\n\t\t\t\t\t\t\t\t\t\tstate.mode = BAD;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//#endif\n\t\t\t\t\t\t\t\t\t//Tracev((stderr, \"inflate:       table sizes ok\\n\"));\n\t\t\t\t\t\t\t\t\tstate.have = 0;\n\t\t\t\t\t\t\t\t\tstate.mode = LENLENS;\n\t\t\t\t\t\t\t\t/* falls through */\n\t\t\t\t\t\t\t\tcase LENLENS:\n\t\t\t\t\t\t\t\t\twhile ( state.have < state.ncode ) {\n\t\t\t\t\t\t\t\t\t\t//=== NEEDBITS(3);\n\t\t\t\t\t\t\t\t\t\twhile ( bits < 3 ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( have === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\thave--;\n\t\t\t\t\t\t\t\t\t\t\thold += input[ next++ ] << bits;\n\t\t\t\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\t\tstate.lens[ order[ state.have++ ] ] =\n\t\t\t\t\t\t\t\t\t\t\thold & 0x07; //BITS(3);\n\t\t\t\t\t\t\t\t\t\t//--- DROPBITS(3) ---//\n\t\t\t\t\t\t\t\t\t\thold >>>= 3;\n\t\t\t\t\t\t\t\t\t\tbits -= 3;\n\t\t\t\t\t\t\t\t\t\t//---//\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\twhile ( state.have < 19 ) {\n\t\t\t\t\t\t\t\t\t\tstate.lens[ order[ state.have++ ] ] = 0;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// We have separate tables & no pointers. 2 commented lines below not needed.\n\t\t\t\t\t\t\t\t\t//state.next = state.codes;\n\t\t\t\t\t\t\t\t\t//state.lencode = state.next;\n\t\t\t\t\t\t\t\t\t// Switch to use dynamic table\n\t\t\t\t\t\t\t\t\tstate.lencode = state.lendyn;\n\t\t\t\t\t\t\t\t\tstate.lenbits = 7;\n\n\t\t\t\t\t\t\t\t\topts = { bits: state.lenbits };\n\t\t\t\t\t\t\t\t\tret = inflate_table(\n\t\t\t\t\t\t\t\t\t\tCODES,\n\t\t\t\t\t\t\t\t\t\tstate.lens,\n\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\t19,\n\t\t\t\t\t\t\t\t\t\tstate.lencode,\n\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\tstate.work,\n\t\t\t\t\t\t\t\t\t\topts\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tstate.lenbits = opts.bits;\n\n\t\t\t\t\t\t\t\t\tif ( ret ) {\n\t\t\t\t\t\t\t\t\t\tstrm.msg = 'invalid code lengths set';\n\t\t\t\t\t\t\t\t\t\tstate.mode = BAD;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//Tracev((stderr, \"inflate:       code lengths ok\\n\"));\n\t\t\t\t\t\t\t\t\tstate.have = 0;\n\t\t\t\t\t\t\t\t\tstate.mode = CODELENS;\n\t\t\t\t\t\t\t\t/* falls through */\n\t\t\t\t\t\t\t\tcase CODELENS:\n\t\t\t\t\t\t\t\t\twhile (\n\t\t\t\t\t\t\t\t\t\tstate.have <\n\t\t\t\t\t\t\t\t\t\tstate.nlen + state.ndist\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tfor (;;) {\n\t\t\t\t\t\t\t\t\t\t\there =\n\t\t\t\t\t\t\t\t\t\t\t\tstate.lencode[\n\t\t\t\t\t\t\t\t\t\t\t\t\thold &\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t( ( 1 <<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.lenbits ) -\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t1 )\n\t\t\t\t\t\t\t\t\t\t\t\t]; /*BITS(state.lenbits)*/\n\t\t\t\t\t\t\t\t\t\t\there_bits = here >>> 24;\n\t\t\t\t\t\t\t\t\t\t\there_op = ( here >>> 16 ) & 0xff;\n\t\t\t\t\t\t\t\t\t\t\there_val = here & 0xffff;\n\n\t\t\t\t\t\t\t\t\t\t\tif ( here_bits <= bits ) {\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t//--- PULLBYTE() ---//\n\t\t\t\t\t\t\t\t\t\t\tif ( have === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\thave--;\n\t\t\t\t\t\t\t\t\t\t\thold += input[ next++ ] << bits;\n\t\t\t\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\t\t\t\t//---//\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif ( here_val < 16 ) {\n\t\t\t\t\t\t\t\t\t\t\t//--- DROPBITS(here.bits) ---//\n\t\t\t\t\t\t\t\t\t\t\thold >>>= here_bits;\n\t\t\t\t\t\t\t\t\t\t\tbits -= here_bits;\n\t\t\t\t\t\t\t\t\t\t\t//---//\n\t\t\t\t\t\t\t\t\t\t\tstate.lens[ state.have++ ] =\n\t\t\t\t\t\t\t\t\t\t\t\there_val;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tif ( here_val === 16 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t//=== NEEDBITS(here.bits + 2);\n\t\t\t\t\t\t\t\t\t\t\t\tn = here_bits + 2;\n\t\t\t\t\t\t\t\t\t\t\t\twhile ( bits < n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( have === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\thave--;\n\t\t\t\t\t\t\t\t\t\t\t\t\thold +=\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinput[ next++ ] << bits;\n\t\t\t\t\t\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\t\t\t\t//--- DROPBITS(here.bits) ---//\n\t\t\t\t\t\t\t\t\t\t\t\thold >>>= here_bits;\n\t\t\t\t\t\t\t\t\t\t\t\tbits -= here_bits;\n\t\t\t\t\t\t\t\t\t\t\t\t//---//\n\t\t\t\t\t\t\t\t\t\t\t\tif ( state.have === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tstrm.msg =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'invalid bit length repeat';\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.mode = BAD;\n\t\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tlen =\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate.lens[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.have - 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\t\t\t\tcopy = 3 + ( hold & 0x03 ); //BITS(2);\n\t\t\t\t\t\t\t\t\t\t\t\t//--- DROPBITS(2) ---//\n\t\t\t\t\t\t\t\t\t\t\t\thold >>>= 2;\n\t\t\t\t\t\t\t\t\t\t\t\tbits -= 2;\n\t\t\t\t\t\t\t\t\t\t\t\t//---//\n\t\t\t\t\t\t\t\t\t\t\t} else if ( here_val === 17 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t//=== NEEDBITS(here.bits + 3);\n\t\t\t\t\t\t\t\t\t\t\t\tn = here_bits + 3;\n\t\t\t\t\t\t\t\t\t\t\t\twhile ( bits < n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( have === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\thave--;\n\t\t\t\t\t\t\t\t\t\t\t\t\thold +=\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinput[ next++ ] << bits;\n\t\t\t\t\t\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\t\t\t\t//--- DROPBITS(here.bits) ---//\n\t\t\t\t\t\t\t\t\t\t\t\thold >>>= here_bits;\n\t\t\t\t\t\t\t\t\t\t\t\tbits -= here_bits;\n\t\t\t\t\t\t\t\t\t\t\t\t//---//\n\t\t\t\t\t\t\t\t\t\t\t\tlen = 0;\n\t\t\t\t\t\t\t\t\t\t\t\tcopy = 3 + ( hold & 0x07 ); //BITS(3);\n\t\t\t\t\t\t\t\t\t\t\t\t//--- DROPBITS(3) ---//\n\t\t\t\t\t\t\t\t\t\t\t\thold >>>= 3;\n\t\t\t\t\t\t\t\t\t\t\t\tbits -= 3;\n\t\t\t\t\t\t\t\t\t\t\t\t//---//\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t//=== NEEDBITS(here.bits + 7);\n\t\t\t\t\t\t\t\t\t\t\t\tn = here_bits + 7;\n\t\t\t\t\t\t\t\t\t\t\t\twhile ( bits < n ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( have === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\thave--;\n\t\t\t\t\t\t\t\t\t\t\t\t\thold +=\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tinput[ next++ ] << bits;\n\t\t\t\t\t\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\t\t\t\t//--- DROPBITS(here.bits) ---//\n\t\t\t\t\t\t\t\t\t\t\t\thold >>>= here_bits;\n\t\t\t\t\t\t\t\t\t\t\t\tbits -= here_bits;\n\t\t\t\t\t\t\t\t\t\t\t\t//---//\n\t\t\t\t\t\t\t\t\t\t\t\tlen = 0;\n\t\t\t\t\t\t\t\t\t\t\t\tcopy = 11 + ( hold & 0x7f ); //BITS(7);\n\t\t\t\t\t\t\t\t\t\t\t\t//--- DROPBITS(7) ---//\n\t\t\t\t\t\t\t\t\t\t\t\thold >>>= 7;\n\t\t\t\t\t\t\t\t\t\t\t\tbits -= 7;\n\t\t\t\t\t\t\t\t\t\t\t\t//---//\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\tstate.have + copy >\n\t\t\t\t\t\t\t\t\t\t\t\tstate.nlen + state.ndist\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\tstrm.msg =\n\t\t\t\t\t\t\t\t\t\t\t\t\t'invalid bit length repeat';\n\t\t\t\t\t\t\t\t\t\t\t\tstate.mode = BAD;\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\twhile ( copy-- ) {\n\t\t\t\t\t\t\t\t\t\t\t\tstate.lens[ state.have++ ] =\n\t\t\t\t\t\t\t\t\t\t\t\t\tlen;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t/* handle error breaks in while */\n\t\t\t\t\t\t\t\t\tif ( state.mode === BAD ) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t/* check for end-of-block code (better have one) */\n\t\t\t\t\t\t\t\t\tif ( state.lens[ 256 ] === 0 ) {\n\t\t\t\t\t\t\t\t\t\tstrm.msg =\n\t\t\t\t\t\t\t\t\t\t\t'invalid code -- missing end-of-block';\n\t\t\t\t\t\t\t\t\t\tstate.mode = BAD;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t/* build code tables -- note: do not change the lenbits or distbits\n             values here (9 and 6) without reading the comments in inftrees.h\n             concerning the ENOUGH constants, which depend on those values */\n\t\t\t\t\t\t\t\t\tstate.lenbits = 9;\n\n\t\t\t\t\t\t\t\t\topts = { bits: state.lenbits };\n\t\t\t\t\t\t\t\t\tret = inflate_table(\n\t\t\t\t\t\t\t\t\t\tLENS,\n\t\t\t\t\t\t\t\t\t\tstate.lens,\n\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\tstate.nlen,\n\t\t\t\t\t\t\t\t\t\tstate.lencode,\n\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\tstate.work,\n\t\t\t\t\t\t\t\t\t\topts\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t// We have separate tables & no pointers. 2 commented lines below not needed.\n\t\t\t\t\t\t\t\t\t// state.next_index = opts.table_index;\n\t\t\t\t\t\t\t\t\tstate.lenbits = opts.bits;\n\t\t\t\t\t\t\t\t\t// state.lencode = state.next;\n\n\t\t\t\t\t\t\t\t\tif ( ret ) {\n\t\t\t\t\t\t\t\t\t\tstrm.msg =\n\t\t\t\t\t\t\t\t\t\t\t'invalid literal/lengths set';\n\t\t\t\t\t\t\t\t\t\tstate.mode = BAD;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tstate.distbits = 6;\n\t\t\t\t\t\t\t\t\t//state.distcode.copy(state.codes);\n\t\t\t\t\t\t\t\t\t// Switch to use dynamic table\n\t\t\t\t\t\t\t\t\tstate.distcode = state.distdyn;\n\t\t\t\t\t\t\t\t\topts = { bits: state.distbits };\n\t\t\t\t\t\t\t\t\tret = inflate_table(\n\t\t\t\t\t\t\t\t\t\tDISTS,\n\t\t\t\t\t\t\t\t\t\tstate.lens,\n\t\t\t\t\t\t\t\t\t\tstate.nlen,\n\t\t\t\t\t\t\t\t\t\tstate.ndist,\n\t\t\t\t\t\t\t\t\t\tstate.distcode,\n\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\tstate.work,\n\t\t\t\t\t\t\t\t\t\topts\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t// We have separate tables & no pointers. 2 commented lines below not needed.\n\t\t\t\t\t\t\t\t\t// state.next_index = opts.table_index;\n\t\t\t\t\t\t\t\t\tstate.distbits = opts.bits;\n\t\t\t\t\t\t\t\t\t// state.distcode = state.next;\n\n\t\t\t\t\t\t\t\t\tif ( ret ) {\n\t\t\t\t\t\t\t\t\t\tstrm.msg = 'invalid distances set';\n\t\t\t\t\t\t\t\t\t\tstate.mode = BAD;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//Tracev((stderr, 'inflate:       codes ok\\n'));\n\t\t\t\t\t\t\t\t\tstate.mode = LEN_;\n\t\t\t\t\t\t\t\t\tif ( flush === Z_TREES ) {\n\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/* falls through */\n\t\t\t\t\t\t\t\tcase LEN_:\n\t\t\t\t\t\t\t\t\tstate.mode = LEN;\n\t\t\t\t\t\t\t\t/* falls through */\n\t\t\t\t\t\t\t\tcase LEN:\n\t\t\t\t\t\t\t\t\tif ( have >= 6 && left >= 258 ) {\n\t\t\t\t\t\t\t\t\t\t//--- RESTORE() ---\n\t\t\t\t\t\t\t\t\t\tstrm.next_out = put;\n\t\t\t\t\t\t\t\t\t\tstrm.avail_out = left;\n\t\t\t\t\t\t\t\t\t\tstrm.next_in = next;\n\t\t\t\t\t\t\t\t\t\tstrm.avail_in = have;\n\t\t\t\t\t\t\t\t\t\tstate.hold = hold;\n\t\t\t\t\t\t\t\t\t\tstate.bits = bits;\n\t\t\t\t\t\t\t\t\t\t//---\n\t\t\t\t\t\t\t\t\t\tinflate_fast( strm, _out );\n\t\t\t\t\t\t\t\t\t\t//--- LOAD() ---\n\t\t\t\t\t\t\t\t\t\tput = strm.next_out;\n\t\t\t\t\t\t\t\t\t\toutput = strm.output;\n\t\t\t\t\t\t\t\t\t\tleft = strm.avail_out;\n\t\t\t\t\t\t\t\t\t\tnext = strm.next_in;\n\t\t\t\t\t\t\t\t\t\tinput = strm.input;\n\t\t\t\t\t\t\t\t\t\thave = strm.avail_in;\n\t\t\t\t\t\t\t\t\t\thold = state.hold;\n\t\t\t\t\t\t\t\t\t\tbits = state.bits;\n\t\t\t\t\t\t\t\t\t\t//---\n\n\t\t\t\t\t\t\t\t\t\tif ( state.mode === TYPE ) {\n\t\t\t\t\t\t\t\t\t\t\tstate.back = -1;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tstate.back = 0;\n\t\t\t\t\t\t\t\t\tfor (;;) {\n\t\t\t\t\t\t\t\t\t\there =\n\t\t\t\t\t\t\t\t\t\t\tstate.lencode[\n\t\t\t\t\t\t\t\t\t\t\t\thold &\n\t\t\t\t\t\t\t\t\t\t\t\t\t( ( 1 << state.lenbits ) -\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t1 )\n\t\t\t\t\t\t\t\t\t\t\t]; /*BITS(state.lenbits)*/\n\t\t\t\t\t\t\t\t\t\there_bits = here >>> 24;\n\t\t\t\t\t\t\t\t\t\there_op = ( here >>> 16 ) & 0xff;\n\t\t\t\t\t\t\t\t\t\there_val = here & 0xffff;\n\n\t\t\t\t\t\t\t\t\t\tif ( here_bits <= bits ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t//--- PULLBYTE() ---//\n\t\t\t\t\t\t\t\t\t\tif ( have === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\thave--;\n\t\t\t\t\t\t\t\t\t\thold += input[ next++ ] << bits;\n\t\t\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\t\t\t//---//\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( here_op && ( here_op & 0xf0 ) === 0 ) {\n\t\t\t\t\t\t\t\t\t\tlast_bits = here_bits;\n\t\t\t\t\t\t\t\t\t\tlast_op = here_op;\n\t\t\t\t\t\t\t\t\t\tlast_val = here_val;\n\t\t\t\t\t\t\t\t\t\tfor (;;) {\n\t\t\t\t\t\t\t\t\t\t\there =\n\t\t\t\t\t\t\t\t\t\t\t\tstate.lencode[\n\t\t\t\t\t\t\t\t\t\t\t\t\tlast_val +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t( ( hold &\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t( ( 1 <<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t( last_bits +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlast_op ) ) -\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t1 ) ) /*BITS(last.bits + last.op)*/ >>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlast_bits )\n\t\t\t\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\t\t\there_bits = here >>> 24;\n\t\t\t\t\t\t\t\t\t\t\there_op = ( here >>> 16 ) & 0xff;\n\t\t\t\t\t\t\t\t\t\t\there_val = here & 0xffff;\n\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\tlast_bits + here_bits <=\n\t\t\t\t\t\t\t\t\t\t\t\tbits\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t//--- PULLBYTE() ---//\n\t\t\t\t\t\t\t\t\t\t\tif ( have === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\thave--;\n\t\t\t\t\t\t\t\t\t\t\thold += input[ next++ ] << bits;\n\t\t\t\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\t\t\t\t//---//\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t//--- DROPBITS(last.bits) ---//\n\t\t\t\t\t\t\t\t\t\thold >>>= last_bits;\n\t\t\t\t\t\t\t\t\t\tbits -= last_bits;\n\t\t\t\t\t\t\t\t\t\t//---//\n\t\t\t\t\t\t\t\t\t\tstate.back += last_bits;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//--- DROPBITS(here.bits) ---//\n\t\t\t\t\t\t\t\t\thold >>>= here_bits;\n\t\t\t\t\t\t\t\t\tbits -= here_bits;\n\t\t\t\t\t\t\t\t\t//---//\n\t\t\t\t\t\t\t\t\tstate.back += here_bits;\n\t\t\t\t\t\t\t\t\tstate.length = here_val;\n\t\t\t\t\t\t\t\t\tif ( here_op === 0 ) {\n\t\t\t\t\t\t\t\t\t\t//Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n\t\t\t\t\t\t\t\t\t\t//        \"inflate:         literal '%c'\\n\" :\n\t\t\t\t\t\t\t\t\t\t//        \"inflate:         literal 0x%02x\\n\", here.val));\n\t\t\t\t\t\t\t\t\t\tstate.mode = LIT;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( here_op & 32 ) {\n\t\t\t\t\t\t\t\t\t\t//Tracevv((stderr, \"inflate:         end of block\\n\"));\n\t\t\t\t\t\t\t\t\t\tstate.back = -1;\n\t\t\t\t\t\t\t\t\t\tstate.mode = TYPE;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( here_op & 64 ) {\n\t\t\t\t\t\t\t\t\t\tstrm.msg =\n\t\t\t\t\t\t\t\t\t\t\t'invalid literal/length code';\n\t\t\t\t\t\t\t\t\t\tstate.mode = BAD;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tstate.extra = here_op & 15;\n\t\t\t\t\t\t\t\t\tstate.mode = LENEXT;\n\t\t\t\t\t\t\t\t/* falls through */\n\t\t\t\t\t\t\t\tcase LENEXT:\n\t\t\t\t\t\t\t\t\tif ( state.extra ) {\n\t\t\t\t\t\t\t\t\t\t//=== NEEDBITS(state.extra);\n\t\t\t\t\t\t\t\t\t\tn = state.extra;\n\t\t\t\t\t\t\t\t\t\twhile ( bits < n ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( have === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\thave--;\n\t\t\t\t\t\t\t\t\t\t\thold += input[ next++ ] << bits;\n\t\t\t\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\t\tstate.length +=\n\t\t\t\t\t\t\t\t\t\t\thold &\n\t\t\t\t\t\t\t\t\t\t\t( ( 1 << state.extra ) -\n\t\t\t\t\t\t\t\t\t\t\t\t1 ) /*BITS(state.extra)*/;\n\t\t\t\t\t\t\t\t\t\t//--- DROPBITS(state.extra) ---//\n\t\t\t\t\t\t\t\t\t\thold >>>= state.extra;\n\t\t\t\t\t\t\t\t\t\tbits -= state.extra;\n\t\t\t\t\t\t\t\t\t\t//---//\n\t\t\t\t\t\t\t\t\t\tstate.back += state.extra;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//Tracevv((stderr, \"inflate:         length %u\\n\", state.length));\n\t\t\t\t\t\t\t\t\tstate.was = state.length;\n\t\t\t\t\t\t\t\t\tstate.mode = DIST;\n\t\t\t\t\t\t\t\t/* falls through */\n\t\t\t\t\t\t\t\tcase DIST:\n\t\t\t\t\t\t\t\t\tfor (;;) {\n\t\t\t\t\t\t\t\t\t\there =\n\t\t\t\t\t\t\t\t\t\t\tstate.distcode[\n\t\t\t\t\t\t\t\t\t\t\t\thold &\n\t\t\t\t\t\t\t\t\t\t\t\t\t( ( 1 << state.distbits ) -\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t1 )\n\t\t\t\t\t\t\t\t\t\t\t]; /*BITS(state.distbits)*/\n\t\t\t\t\t\t\t\t\t\there_bits = here >>> 24;\n\t\t\t\t\t\t\t\t\t\there_op = ( here >>> 16 ) & 0xff;\n\t\t\t\t\t\t\t\t\t\there_val = here & 0xffff;\n\n\t\t\t\t\t\t\t\t\t\tif ( here_bits <= bits ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t//--- PULLBYTE() ---//\n\t\t\t\t\t\t\t\t\t\tif ( have === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\thave--;\n\t\t\t\t\t\t\t\t\t\thold += input[ next++ ] << bits;\n\t\t\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\t\t\t//---//\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( ( here_op & 0xf0 ) === 0 ) {\n\t\t\t\t\t\t\t\t\t\tlast_bits = here_bits;\n\t\t\t\t\t\t\t\t\t\tlast_op = here_op;\n\t\t\t\t\t\t\t\t\t\tlast_val = here_val;\n\t\t\t\t\t\t\t\t\t\tfor (;;) {\n\t\t\t\t\t\t\t\t\t\t\there =\n\t\t\t\t\t\t\t\t\t\t\t\tstate.distcode[\n\t\t\t\t\t\t\t\t\t\t\t\t\tlast_val +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t( ( hold &\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t( ( 1 <<\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t( last_bits +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlast_op ) ) -\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t1 ) ) /*BITS(last.bits + last.op)*/ >>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlast_bits )\n\t\t\t\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\t\t\there_bits = here >>> 24;\n\t\t\t\t\t\t\t\t\t\t\there_op = ( here >>> 16 ) & 0xff;\n\t\t\t\t\t\t\t\t\t\t\there_val = here & 0xffff;\n\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\tlast_bits + here_bits <=\n\t\t\t\t\t\t\t\t\t\t\t\tbits\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t//--- PULLBYTE() ---//\n\t\t\t\t\t\t\t\t\t\t\tif ( have === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\thave--;\n\t\t\t\t\t\t\t\t\t\t\thold += input[ next++ ] << bits;\n\t\t\t\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\t\t\t\t//---//\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t//--- DROPBITS(last.bits) ---//\n\t\t\t\t\t\t\t\t\t\thold >>>= last_bits;\n\t\t\t\t\t\t\t\t\t\tbits -= last_bits;\n\t\t\t\t\t\t\t\t\t\t//---//\n\t\t\t\t\t\t\t\t\t\tstate.back += last_bits;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//--- DROPBITS(here.bits) ---//\n\t\t\t\t\t\t\t\t\thold >>>= here_bits;\n\t\t\t\t\t\t\t\t\tbits -= here_bits;\n\t\t\t\t\t\t\t\t\t//---//\n\t\t\t\t\t\t\t\t\tstate.back += here_bits;\n\t\t\t\t\t\t\t\t\tif ( here_op & 64 ) {\n\t\t\t\t\t\t\t\t\t\tstrm.msg = 'invalid distance code';\n\t\t\t\t\t\t\t\t\t\tstate.mode = BAD;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tstate.offset = here_val;\n\t\t\t\t\t\t\t\t\tstate.extra = here_op & 15;\n\t\t\t\t\t\t\t\t\tstate.mode = DISTEXT;\n\t\t\t\t\t\t\t\t/* falls through */\n\t\t\t\t\t\t\t\tcase DISTEXT:\n\t\t\t\t\t\t\t\t\tif ( state.extra ) {\n\t\t\t\t\t\t\t\t\t\t//=== NEEDBITS(state.extra);\n\t\t\t\t\t\t\t\t\t\tn = state.extra;\n\t\t\t\t\t\t\t\t\t\twhile ( bits < n ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( have === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\thave--;\n\t\t\t\t\t\t\t\t\t\t\thold += input[ next++ ] << bits;\n\t\t\t\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\t\tstate.offset +=\n\t\t\t\t\t\t\t\t\t\t\thold &\n\t\t\t\t\t\t\t\t\t\t\t( ( 1 << state.extra ) -\n\t\t\t\t\t\t\t\t\t\t\t\t1 ) /*BITS(state.extra)*/;\n\t\t\t\t\t\t\t\t\t\t//--- DROPBITS(state.extra) ---//\n\t\t\t\t\t\t\t\t\t\thold >>>= state.extra;\n\t\t\t\t\t\t\t\t\t\tbits -= state.extra;\n\t\t\t\t\t\t\t\t\t\t//---//\n\t\t\t\t\t\t\t\t\t\tstate.back += state.extra;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//#ifdef INFLATE_STRICT\n\t\t\t\t\t\t\t\t\tif ( state.offset > state.dmax ) {\n\t\t\t\t\t\t\t\t\t\tstrm.msg =\n\t\t\t\t\t\t\t\t\t\t\t'invalid distance too far back';\n\t\t\t\t\t\t\t\t\t\tstate.mode = BAD;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t//#endif\n\t\t\t\t\t\t\t\t\t//Tracevv((stderr, \"inflate:         distance %u\\n\", state.offset));\n\t\t\t\t\t\t\t\t\tstate.mode = MATCH;\n\t\t\t\t\t\t\t\t/* falls through */\n\t\t\t\t\t\t\t\tcase MATCH:\n\t\t\t\t\t\t\t\t\tif ( left === 0 ) {\n\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcopy = _out - left;\n\t\t\t\t\t\t\t\t\tif ( state.offset > copy ) {\n\t\t\t\t\t\t\t\t\t\t/* copy from window */\n\t\t\t\t\t\t\t\t\t\tcopy = state.offset - copy;\n\t\t\t\t\t\t\t\t\t\tif ( copy > state.whave ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( state.sane ) {\n\t\t\t\t\t\t\t\t\t\t\t\tstrm.msg =\n\t\t\t\t\t\t\t\t\t\t\t\t\t'invalid distance too far back';\n\t\t\t\t\t\t\t\t\t\t\t\tstate.mode = BAD;\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t// (!) This block is disabled in zlib defaults,\n\t\t\t\t\t\t\t\t\t\t\t// don't enable it for binary compatibility\n\t\t\t\t\t\t\t\t\t\t\t//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n\t\t\t\t\t\t\t\t\t\t\t//          Trace((stderr, \"inflate.c too far\\n\"));\n\t\t\t\t\t\t\t\t\t\t\t//          copy -= state.whave;\n\t\t\t\t\t\t\t\t\t\t\t//          if (copy > state.length) { copy = state.length; }\n\t\t\t\t\t\t\t\t\t\t\t//          if (copy > left) { copy = left; }\n\t\t\t\t\t\t\t\t\t\t\t//          left -= copy;\n\t\t\t\t\t\t\t\t\t\t\t//          state.length -= copy;\n\t\t\t\t\t\t\t\t\t\t\t//          do {\n\t\t\t\t\t\t\t\t\t\t\t//            output[put++] = 0;\n\t\t\t\t\t\t\t\t\t\t\t//          } while (--copy);\n\t\t\t\t\t\t\t\t\t\t\t//          if (state.length === 0) { state.mode = LEN; }\n\t\t\t\t\t\t\t\t\t\t\t//          break;\n\t\t\t\t\t\t\t\t\t\t\t//#endif\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif ( copy > state.wnext ) {\n\t\t\t\t\t\t\t\t\t\t\tcopy -= state.wnext;\n\t\t\t\t\t\t\t\t\t\t\tfrom = state.wsize - copy;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tfrom = state.wnext - copy;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif ( copy > state.length ) {\n\t\t\t\t\t\t\t\t\t\t\tcopy = state.length;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tfrom_source = state.window;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t/* copy from output */\n\t\t\t\t\t\t\t\t\t\tfrom_source = output;\n\t\t\t\t\t\t\t\t\t\tfrom = put - state.offset;\n\t\t\t\t\t\t\t\t\t\tcopy = state.length;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif ( copy > left ) {\n\t\t\t\t\t\t\t\t\t\tcopy = left;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tleft -= copy;\n\t\t\t\t\t\t\t\t\tstate.length -= copy;\n\t\t\t\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\t\t\t\toutput[ put++ ] = from_source[ from++ ];\n\t\t\t\t\t\t\t\t\t} while ( --copy );\n\t\t\t\t\t\t\t\t\tif ( state.length === 0 ) {\n\t\t\t\t\t\t\t\t\t\tstate.mode = LEN;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase LIT:\n\t\t\t\t\t\t\t\t\tif ( left === 0 ) {\n\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\toutput[ put++ ] = state.length;\n\t\t\t\t\t\t\t\t\tleft--;\n\t\t\t\t\t\t\t\t\tstate.mode = LEN;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase CHECK:\n\t\t\t\t\t\t\t\t\tif ( state.wrap ) {\n\t\t\t\t\t\t\t\t\t\t//=== NEEDBITS(32);\n\t\t\t\t\t\t\t\t\t\twhile ( bits < 32 ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( have === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\thave--;\n\t\t\t\t\t\t\t\t\t\t\t// Use '|' instead of '+' to make sure that result is signed\n\t\t\t\t\t\t\t\t\t\t\thold |= input[ next++ ] << bits;\n\t\t\t\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\t\t_out -= left;\n\t\t\t\t\t\t\t\t\t\tstrm.total_out += _out;\n\t\t\t\t\t\t\t\t\t\tstate.total += _out;\n\t\t\t\t\t\t\t\t\t\tif ( _out ) {\n\t\t\t\t\t\t\t\t\t\t\tstrm.adler = state.check =\n\t\t\t\t\t\t\t\t\t\t\t\t/*UPDATE(state.check, put - _out, _out);*/\n\t\t\t\t\t\t\t\t\t\t\t\tstate.flags\n\t\t\t\t\t\t\t\t\t\t\t\t\t? crc32(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.check,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toutput,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_out,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tput - _out\n\t\t\t\t\t\t\t\t\t\t\t\t\t  )\n\t\t\t\t\t\t\t\t\t\t\t\t\t: adler32(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate.check,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toutput,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_out,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tput - _out\n\t\t\t\t\t\t\t\t\t\t\t\t\t  );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t_out = left;\n\t\t\t\t\t\t\t\t\t\t// NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t( state.flags\n\t\t\t\t\t\t\t\t\t\t\t\t? hold\n\t\t\t\t\t\t\t\t\t\t\t\t: zswap32( hold ) ) !==\n\t\t\t\t\t\t\t\t\t\t\tstate.check\n\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\tstrm.msg = 'incorrect data check';\n\t\t\t\t\t\t\t\t\t\t\tstate.mode = BAD;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t//=== INITBITS();\n\t\t\t\t\t\t\t\t\t\thold = 0;\n\t\t\t\t\t\t\t\t\t\tbits = 0;\n\t\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\t\t//Tracev((stderr, \"inflate:   check matches trailer\\n\"));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tstate.mode = LENGTH;\n\t\t\t\t\t\t\t\t/* falls through */\n\t\t\t\t\t\t\t\tcase LENGTH:\n\t\t\t\t\t\t\t\t\tif ( state.wrap && state.flags ) {\n\t\t\t\t\t\t\t\t\t\t//=== NEEDBITS(32);\n\t\t\t\t\t\t\t\t\t\twhile ( bits < 32 ) {\n\t\t\t\t\t\t\t\t\t\t\tif ( have === 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\thave--;\n\t\t\t\t\t\t\t\t\t\t\thold += input[ next++ ] << bits;\n\t\t\t\t\t\t\t\t\t\t\tbits += 8;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\thold !==\n\t\t\t\t\t\t\t\t\t\t\t( state.total & 0xffffffff )\n\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\tstrm.msg = 'incorrect length check';\n\t\t\t\t\t\t\t\t\t\t\tstate.mode = BAD;\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t//=== INITBITS();\n\t\t\t\t\t\t\t\t\t\thold = 0;\n\t\t\t\t\t\t\t\t\t\tbits = 0;\n\t\t\t\t\t\t\t\t\t\t//===//\n\t\t\t\t\t\t\t\t\t\t//Tracev((stderr, \"inflate:   length matches trailer\\n\"));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tstate.mode = DONE;\n\t\t\t\t\t\t\t\t/* falls through */\n\t\t\t\t\t\t\t\tcase DONE:\n\t\t\t\t\t\t\t\t\tret = Z_STREAM_END;\n\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\tcase BAD:\n\t\t\t\t\t\t\t\t\tret = Z_DATA_ERROR;\n\t\t\t\t\t\t\t\t\tbreak inf_leave;\n\t\t\t\t\t\t\t\tcase MEM:\n\t\t\t\t\t\t\t\t\treturn Z_MEM_ERROR;\n\t\t\t\t\t\t\t\tcase SYNC:\n\t\t\t\t\t\t\t\t/* falls through */\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn Z_STREAM_ERROR;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n\t\t\t\t\t\t/*\n       Return from inflate(), updating the total counts and the check value.\n       If there was no progress during the inflate() call, return a buffer\n       error.  Call updatewindow() to create and/or update the window state.\n       Note: a memory error from inflate() is non-recoverable.\n     */\n\n\t\t\t\t\t\t//--- RESTORE() ---\n\t\t\t\t\t\tstrm.next_out = put;\n\t\t\t\t\t\tstrm.avail_out = left;\n\t\t\t\t\t\tstrm.next_in = next;\n\t\t\t\t\t\tstrm.avail_in = have;\n\t\t\t\t\t\tstate.hold = hold;\n\t\t\t\t\t\tstate.bits = bits;\n\t\t\t\t\t\t//---\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tstate.wsize ||\n\t\t\t\t\t\t\t( _out !== strm.avail_out &&\n\t\t\t\t\t\t\t\tstate.mode < BAD &&\n\t\t\t\t\t\t\t\t( state.mode < CHECK || flush !== Z_FINISH ) )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tupdatewindow(\n\t\t\t\t\t\t\t\t\tstrm,\n\t\t\t\t\t\t\t\t\tstrm.output,\n\t\t\t\t\t\t\t\t\tstrm.next_out,\n\t\t\t\t\t\t\t\t\t_out - strm.avail_out\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tstate.mode = MEM;\n\t\t\t\t\t\t\t\treturn Z_MEM_ERROR;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t_in -= strm.avail_in;\n\t\t\t\t\t\t_out -= strm.avail_out;\n\t\t\t\t\t\tstrm.total_in += _in;\n\t\t\t\t\t\tstrm.total_out += _out;\n\t\t\t\t\t\tstate.total += _out;\n\t\t\t\t\t\tif ( state.wrap && _out ) {\n\t\t\t\t\t\t\tstrm.adler = state.check =\n\t\t\t\t\t\t\t\t/*UPDATE(state.check, strm.next_out - _out, _out);*/\n\t\t\t\t\t\t\t\tstate.flags\n\t\t\t\t\t\t\t\t\t? crc32(\n\t\t\t\t\t\t\t\t\t\t\tstate.check,\n\t\t\t\t\t\t\t\t\t\t\toutput,\n\t\t\t\t\t\t\t\t\t\t\t_out,\n\t\t\t\t\t\t\t\t\t\t\tstrm.next_out - _out\n\t\t\t\t\t\t\t\t\t  )\n\t\t\t\t\t\t\t\t\t: adler32(\n\t\t\t\t\t\t\t\t\t\t\tstate.check,\n\t\t\t\t\t\t\t\t\t\t\toutput,\n\t\t\t\t\t\t\t\t\t\t\t_out,\n\t\t\t\t\t\t\t\t\t\t\tstrm.next_out - _out\n\t\t\t\t\t\t\t\t\t  );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstrm.data_type =\n\t\t\t\t\t\t\tstate.bits +\n\t\t\t\t\t\t\t( state.last ? 64 : 0 ) +\n\t\t\t\t\t\t\t( state.mode === TYPE ? 128 : 0 ) +\n\t\t\t\t\t\t\t( state.mode === LEN_ || state.mode === COPY_\n\t\t\t\t\t\t\t\t? 256\n\t\t\t\t\t\t\t\t: 0 );\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t( ( _in === 0 && _out === 0 ) ||\n\t\t\t\t\t\t\t\tflush === Z_FINISH ) &&\n\t\t\t\t\t\t\tret === Z_OK\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tret = Z_BUF_ERROR;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn ret;\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction inflateEnd( strm ) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! strm ||\n\t\t\t\t\t\t\t! strm.state /*|| strm->zfree == (free_func)0*/\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn Z_STREAM_ERROR;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar state = strm.state;\n\t\t\t\t\t\tif ( state.window ) {\n\t\t\t\t\t\t\tstate.window = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstrm.state = null;\n\t\t\t\t\t\treturn Z_OK;\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction inflateGetHeader( strm, head ) {\n\t\t\t\t\t\tvar state;\n\n\t\t\t\t\t\t/* check state */\n\t\t\t\t\t\tif ( ! strm || ! strm.state ) {\n\t\t\t\t\t\t\treturn Z_STREAM_ERROR;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstate = strm.state;\n\t\t\t\t\t\tif ( ( state.wrap & 2 ) === 0 ) {\n\t\t\t\t\t\t\treturn Z_STREAM_ERROR;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* save header structure */\n\t\t\t\t\t\tstate.head = head;\n\t\t\t\t\t\thead.done = false;\n\t\t\t\t\t\treturn Z_OK;\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction inflateSetDictionary( strm, dictionary ) {\n\t\t\t\t\t\tvar dictLength = dictionary.length;\n\n\t\t\t\t\t\tvar state;\n\t\t\t\t\t\tvar dictid;\n\t\t\t\t\t\tvar ret;\n\n\t\t\t\t\t\t/* check state */\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! strm /* == Z_NULL */ ||\n\t\t\t\t\t\t\t! strm.state /* == Z_NULL */\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn Z_STREAM_ERROR;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstate = strm.state;\n\n\t\t\t\t\t\tif ( state.wrap !== 0 && state.mode !== DICT ) {\n\t\t\t\t\t\t\treturn Z_STREAM_ERROR;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* check for correct dictionary identifier */\n\t\t\t\t\t\tif ( state.mode === DICT ) {\n\t\t\t\t\t\t\tdictid = 1; /* adler32(0, null, 0)*/\n\t\t\t\t\t\t\t/* dictid = adler32(dictid, dictionary, dictLength); */\n\t\t\t\t\t\t\tdictid = adler32(\n\t\t\t\t\t\t\t\tdictid,\n\t\t\t\t\t\t\t\tdictionary,\n\t\t\t\t\t\t\t\tdictLength,\n\t\t\t\t\t\t\t\t0\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif ( dictid !== state.check ) {\n\t\t\t\t\t\t\t\treturn Z_DATA_ERROR;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t/* copy dictionary to window using updatewindow(), which will amend the\n     existing dictionary if appropriate */\n\t\t\t\t\t\tret = updatewindow(\n\t\t\t\t\t\t\tstrm,\n\t\t\t\t\t\t\tdictionary,\n\t\t\t\t\t\t\tdictLength,\n\t\t\t\t\t\t\tdictLength\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( ret ) {\n\t\t\t\t\t\t\tstate.mode = MEM;\n\t\t\t\t\t\t\treturn Z_MEM_ERROR;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstate.havedict = 1;\n\t\t\t\t\t\t// Tracev((stderr, \"inflate:   dictionary set\\n\"));\n\t\t\t\t\t\treturn Z_OK;\n\t\t\t\t\t}\n\n\t\t\t\t\texports.inflateReset = inflateReset;\n\t\t\t\t\texports.inflateReset2 = inflateReset2;\n\t\t\t\t\texports.inflateResetKeep = inflateResetKeep;\n\t\t\t\t\texports.inflateInit = inflateInit;\n\t\t\t\t\texports.inflateInit2 = inflateInit2;\n\t\t\t\t\texports.inflate = inflate;\n\t\t\t\t\texports.inflateEnd = inflateEnd;\n\t\t\t\t\texports.inflateGetHeader = inflateGetHeader;\n\t\t\t\t\texports.inflateSetDictionary = inflateSetDictionary;\n\t\t\t\t\texports.inflateInfo = 'pako inflate (from Nodeca project)';\n\n\t\t\t\t\t/* Not implemented\n  exports.inflateCopy = inflateCopy;\n  exports.inflateGetDictionary = inflateGetDictionary;\n  exports.inflateMark = inflateMark;\n  exports.inflatePrime = inflatePrime;\n  exports.inflateSync = inflateSync;\n  exports.inflateSyncPoint = inflateSyncPoint;\n  exports.inflateUndermine = inflateUndermine;\n  */\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t'../utils/common': 1,\n\t\t\t\t\t'./adler32': 3,\n\t\t\t\t\t'./crc32': 5,\n\t\t\t\t\t'./inffast': 7,\n\t\t\t\t\t'./inftrees': 9,\n\t\t\t\t},\n\t\t\t],\n\t\t\t9: [\n\t\t\t\tfunction ( require, module, exports ) {\n\t\t\t\t\t'use strict';\n\n\t\t\t\t\t// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n\t\t\t\t\t// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n\t\t\t\t\t//\n\t\t\t\t\t// This software is provided 'as-is', without any express or implied\n\t\t\t\t\t// warranty. In no event will the authors be held liable for any damages\n\t\t\t\t\t// arising from the use of this software.\n\t\t\t\t\t//\n\t\t\t\t\t// Permission is granted to anyone to use this software for any purpose,\n\t\t\t\t\t// including commercial applications, and to alter it and redistribute it\n\t\t\t\t\t// freely, subject to the following restrictions:\n\t\t\t\t\t//\n\t\t\t\t\t// 1. The origin of this software must not be misrepresented; you must not\n\t\t\t\t\t//   claim that you wrote the original software. If you use this software\n\t\t\t\t\t//   in a product, an acknowledgment in the product documentation would be\n\t\t\t\t\t//   appreciated but is not required.\n\t\t\t\t\t// 2. Altered source versions must be plainly marked as such, and must not be\n\t\t\t\t\t//   misrepresented as being the original software.\n\t\t\t\t\t// 3. This notice may not be removed or altered from any source distribution.\n\n\t\t\t\t\tvar utils = require( '../utils/common' );\n\n\t\t\t\t\tvar MAXBITS = 15;\n\t\t\t\t\tvar ENOUGH_LENS = 852;\n\t\t\t\t\tvar ENOUGH_DISTS = 592;\n\t\t\t\t\t//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\n\t\t\t\t\tvar CODES = 0;\n\t\t\t\t\tvar LENS = 1;\n\t\t\t\t\tvar DISTS = 2;\n\n\t\t\t\t\tvar lbase = [\n\t\t\t\t\t\t/* Length codes 257..285 base */ 3, 4, 5, 6, 7, 8, 9,\n\t\t\t\t\t\t10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67,\n\t\t\t\t\t\t83, 99, 115, 131, 163, 195, 227, 258, 0, 0,\n\t\t\t\t\t];\n\n\t\t\t\t\tvar lext = [\n\t\t\t\t\t\t/* Length codes 257..285 extra */ 16, 16, 16, 16, 16,\n\t\t\t\t\t\t16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19,\n\t\t\t\t\t\t19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78,\n\t\t\t\t\t];\n\n\t\t\t\t\tvar dbase = [\n\t\t\t\t\t\t/* Distance codes 0..29 base */ 1, 2, 3, 4, 5, 7, 9, 13,\n\t\t\t\t\t\t17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769,\n\t\t\t\t\t\t1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385,\n\t\t\t\t\t\t24577, 0, 0,\n\t\t\t\t\t];\n\n\t\t\t\t\tvar dext = [\n\t\t\t\t\t\t/* Distance codes 0..29 extra */ 16, 16, 16, 16, 17, 17,\n\t\t\t\t\t\t18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24,\n\t\t\t\t\t\t25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 64, 64,\n\t\t\t\t\t];\n\n\t\t\t\t\tmodule.exports = function inflate_table(\n\t\t\t\t\t\ttype,\n\t\t\t\t\t\tlens,\n\t\t\t\t\t\tlens_index,\n\t\t\t\t\t\tcodes,\n\t\t\t\t\t\ttable,\n\t\t\t\t\t\ttable_index,\n\t\t\t\t\t\twork,\n\t\t\t\t\t\topts\n\t\t\t\t\t) {\n\t\t\t\t\t\tvar bits = opts.bits;\n\t\t\t\t\t\t//here = opts.here; /* table entry for duplication */\n\n\t\t\t\t\t\tvar len = 0; /* a code's length in bits */\n\t\t\t\t\t\tvar sym = 0; /* index of code symbols */\n\t\t\t\t\t\tvar min = 0,\n\t\t\t\t\t\t\tmax = 0; /* minimum and maximum code lengths */\n\t\t\t\t\t\tvar root = 0; /* number of index bits for root table */\n\t\t\t\t\t\tvar curr = 0; /* number of index bits for current table */\n\t\t\t\t\t\tvar drop = 0; /* code bits to drop for sub-table */\n\t\t\t\t\t\tvar left = 0; /* number of prefix codes available */\n\t\t\t\t\t\tvar used = 0; /* code entries in table used */\n\t\t\t\t\t\tvar huff = 0; /* Huffman code */\n\t\t\t\t\t\tvar incr; /* for incrementing code, index */\n\t\t\t\t\t\tvar fill; /* index for replicating entries */\n\t\t\t\t\t\tvar low; /* low bits for current root entry */\n\t\t\t\t\t\tvar mask; /* mask for low root bits */\n\t\t\t\t\t\tvar next; /* next available space in table */\n\t\t\t\t\t\tvar base = null; /* base value table to use */\n\t\t\t\t\t\tvar base_index = 0;\n\t\t\t\t\t\t//  var shoextra;    /* extra bits table to use */\n\t\t\t\t\t\tvar end; /* use base and extra for symbol > end */\n\t\t\t\t\t\tvar count = new utils.Buf16( MAXBITS + 1 ); //[MAXBITS+1];    /* number of codes of each length */\n\t\t\t\t\t\tvar offs = new utils.Buf16( MAXBITS + 1 ); //[MAXBITS+1];     /* offsets in table for each length */\n\t\t\t\t\t\tvar extra = null;\n\t\t\t\t\t\tvar extra_index = 0;\n\n\t\t\t\t\t\tvar here_bits, here_op, here_val;\n\n\t\t\t\t\t\t/*\n     Process a set of code lengths to create a canonical Huffman code.  The\n     code lengths are lens[0..codes-1].  Each length corresponds to the\n     symbols 0..codes-1.  The Huffman code is generated by first sorting the\n     symbols by length from short to long, and retaining the symbol order\n     for codes with equal lengths.  Then the code starts with all zero bits\n     for the first code of the shortest length, and the codes are integer\n     increments for the same length, and zeros are appended as the length\n     increases.  For the deflate format, these bits are stored backwards\n     from their more natural integer increment ordering, and so when the\n     decoding tables are built in the large loop below, the integer codes\n     are incremented backwards.\n\n     This routine assumes, but does not check, that all of the entries in\n     lens[] are in the range 0..MAXBITS.  The caller must assure this.\n     1..MAXBITS is interpreted as that code length.  zero means that that\n     symbol does not occur in this code.\n\n     The codes are sorted by computing a count of codes for each length,\n     creating from that a table of starting indices for each length in the\n     sorted table, and then entering the symbols in order in the sorted\n     table.  The sorted table is work[], with that space being provided by\n     the caller.\n\n     The length counts are used for other purposes as well, i.e. finding\n     the minimum and maximum length codes, determining if there are any\n     codes at all, checking for a valid set of lengths, and looking ahead\n     at length counts to determine sub-table sizes when building the\n     decoding tables.\n     */\n\n\t\t\t\t\t\t/* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n\t\t\t\t\t\tfor ( len = 0; len <= MAXBITS; len++ ) {\n\t\t\t\t\t\t\tcount[ len ] = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor ( sym = 0; sym < codes; sym++ ) {\n\t\t\t\t\t\t\tcount[ lens[ lens_index + sym ] ]++;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* bound code lengths, force root to be within code lengths */\n\t\t\t\t\t\troot = bits;\n\t\t\t\t\t\tfor ( max = MAXBITS; max >= 1; max-- ) {\n\t\t\t\t\t\t\tif ( count[ max ] !== 0 ) {\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( root > max ) {\n\t\t\t\t\t\t\troot = max;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( max === 0 ) {\n\t\t\t\t\t\t\t/* no symbols to code at all */\n\t\t\t\t\t\t\t//table.op[opts.table_index] = 64;  //here.op = (var char)64;    /* invalid code marker */\n\t\t\t\t\t\t\t//table.bits[opts.table_index] = 1;   //here.bits = (var char)1;\n\t\t\t\t\t\t\t//table.val[opts.table_index++] = 0;   //here.val = (var short)0;\n\t\t\t\t\t\t\ttable[ table_index++ ] =\n\t\t\t\t\t\t\t\t( 1 << 24 ) | ( 64 << 16 ) | 0;\n\n\t\t\t\t\t\t\t//table.op[opts.table_index] = 64;\n\t\t\t\t\t\t\t//table.bits[opts.table_index] = 1;\n\t\t\t\t\t\t\t//table.val[opts.table_index++] = 0;\n\t\t\t\t\t\t\ttable[ table_index++ ] =\n\t\t\t\t\t\t\t\t( 1 << 24 ) | ( 64 << 16 ) | 0;\n\n\t\t\t\t\t\t\topts.bits = 1;\n\t\t\t\t\t\t\treturn 0; /* no symbols, but wait for decoding to report error */\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor ( min = 1; min < max; min++ ) {\n\t\t\t\t\t\t\tif ( count[ min ] !== 0 ) {\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( root < min ) {\n\t\t\t\t\t\t\troot = min;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* check for an over-subscribed or incomplete set of lengths */\n\t\t\t\t\t\tleft = 1;\n\t\t\t\t\t\tfor ( len = 1; len <= MAXBITS; len++ ) {\n\t\t\t\t\t\t\tleft <<= 1;\n\t\t\t\t\t\t\tleft -= count[ len ];\n\t\t\t\t\t\t\tif ( left < 0 ) {\n\t\t\t\t\t\t\t\treturn -1;\n\t\t\t\t\t\t\t} /* over-subscribed */\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( left > 0 && ( type === CODES || max !== 1 ) ) {\n\t\t\t\t\t\t\treturn -1; /* incomplete set */\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* generate offsets into symbol table for each length for sorting */\n\t\t\t\t\t\toffs[ 1 ] = 0;\n\t\t\t\t\t\tfor ( len = 1; len < MAXBITS; len++ ) {\n\t\t\t\t\t\t\toffs[ len + 1 ] = offs[ len ] + count[ len ];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* sort symbols by length, by symbol order within each length */\n\t\t\t\t\t\tfor ( sym = 0; sym < codes; sym++ ) {\n\t\t\t\t\t\t\tif ( lens[ lens_index + sym ] !== 0 ) {\n\t\t\t\t\t\t\t\twork[ offs[ lens[ lens_index + sym ] ]++ ] =\n\t\t\t\t\t\t\t\t\tsym;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/*\n     Create and fill in decoding tables.  In this loop, the table being\n     filled is at next and has curr index bits.  The code being used is huff\n     with length len.  That code is converted to an index by dropping drop\n     bits off of the bottom.  For codes where len is less than drop + curr,\n     those top drop + curr - len bits are incremented through all values to\n     fill the table with replicated entries.\n\n     root is the number of index bits for the root table.  When len exceeds\n     root, sub-tables are created pointed to by the root entry with an index\n     of the low root bits of huff.  This is saved in low to check for when a\n     new sub-table should be started.  drop is zero when the root table is\n     being filled, and drop is root when sub-tables are being filled.\n\n     When a new sub-table is needed, it is necessary to look ahead in the\n     code lengths to determine what size sub-table is needed.  The length\n     counts are used for this, and so count[] is decremented as codes are\n     entered in the tables.\n\n     used keeps track of how many table entries have been allocated from the\n     provided *table space.  It is checked for LENS and DIST tables against\n     the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n     the initial root table size constants.  See the comments in inftrees.h\n     for more information.\n\n     sym increments through all symbols, and the loop terminates when\n     all codes of length max, i.e. all codes, have been processed.  This\n     routine permits incomplete codes, so another loop after this one fills\n     in the rest of the decoding tables with invalid code markers.\n     */\n\n\t\t\t\t\t\t/* set up for code type */\n\t\t\t\t\t\t// poor man optimization - use if-else instead of switch,\n\t\t\t\t\t\t// to avoid deopts in old v8\n\t\t\t\t\t\tif ( type === CODES ) {\n\t\t\t\t\t\t\tbase = extra = work; /* dummy value--not used */\n\t\t\t\t\t\t\tend = 19;\n\t\t\t\t\t\t} else if ( type === LENS ) {\n\t\t\t\t\t\t\tbase = lbase;\n\t\t\t\t\t\t\tbase_index -= 257;\n\t\t\t\t\t\t\textra = lext;\n\t\t\t\t\t\t\textra_index -= 257;\n\t\t\t\t\t\t\tend = 256;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t/* DISTS */\n\t\t\t\t\t\t\tbase = dbase;\n\t\t\t\t\t\t\textra = dext;\n\t\t\t\t\t\t\tend = -1;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* initialize opts for loop */\n\t\t\t\t\t\thuff = 0; /* starting code */\n\t\t\t\t\t\tsym = 0; /* starting code symbol */\n\t\t\t\t\t\tlen = min; /* starting code length */\n\t\t\t\t\t\tnext = table_index; /* current table to fill in */\n\t\t\t\t\t\tcurr = root; /* current table index bits */\n\t\t\t\t\t\tdrop = 0; /* current bits to drop from code for index */\n\t\t\t\t\t\tlow = -1; /* trigger new sub-table when len > root */\n\t\t\t\t\t\tused = 1 << root; /* use root table entries */\n\t\t\t\t\t\tmask = used - 1; /* mask for comparing low */\n\n\t\t\t\t\t\t/* check available table space */\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t( type === LENS && used > ENOUGH_LENS ) ||\n\t\t\t\t\t\t\t( type === DISTS && used > ENOUGH_DISTS )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn 1;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* process all codes and make table entries */\n\t\t\t\t\t\tfor (;;) {\n\t\t\t\t\t\t\t/* create table entry */\n\t\t\t\t\t\t\there_bits = len - drop;\n\t\t\t\t\t\t\tif ( work[ sym ] < end ) {\n\t\t\t\t\t\t\t\there_op = 0;\n\t\t\t\t\t\t\t\there_val = work[ sym ];\n\t\t\t\t\t\t\t} else if ( work[ sym ] > end ) {\n\t\t\t\t\t\t\t\there_op = extra[ extra_index + work[ sym ] ];\n\t\t\t\t\t\t\t\there_val = base[ base_index + work[ sym ] ];\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\there_op = 32 + 64; /* end of block */\n\t\t\t\t\t\t\t\there_val = 0;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t/* replicate for those indices with low len bits equal to huff */\n\t\t\t\t\t\t\tincr = 1 << ( len - drop );\n\t\t\t\t\t\t\tfill = 1 << curr;\n\t\t\t\t\t\t\tmin = fill; /* save offset to next table */\n\t\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\t\tfill -= incr;\n\t\t\t\t\t\t\t\ttable[ next + ( huff >> drop ) + fill ] =\n\t\t\t\t\t\t\t\t\t( here_bits << 24 ) |\n\t\t\t\t\t\t\t\t\t( here_op << 16 ) |\n\t\t\t\t\t\t\t\t\there_val |\n\t\t\t\t\t\t\t\t\t0;\n\t\t\t\t\t\t\t} while ( fill !== 0 );\n\n\t\t\t\t\t\t\t/* backwards increment the len-bit code huff */\n\t\t\t\t\t\t\tincr = 1 << ( len - 1 );\n\t\t\t\t\t\t\twhile ( huff & incr ) {\n\t\t\t\t\t\t\t\tincr >>= 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( incr !== 0 ) {\n\t\t\t\t\t\t\t\thuff &= incr - 1;\n\t\t\t\t\t\t\t\thuff += incr;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\thuff = 0;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t/* go to next symbol, update count, len */\n\t\t\t\t\t\t\tsym++;\n\t\t\t\t\t\t\tif ( --count[ len ] === 0 ) {\n\t\t\t\t\t\t\t\tif ( len === max ) {\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlen = lens[ lens_index + work[ sym ] ];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t/* create new sub-table if needed */\n\t\t\t\t\t\t\tif ( len > root && ( huff & mask ) !== low ) {\n\t\t\t\t\t\t\t\t/* if first time, transition to sub-tables */\n\t\t\t\t\t\t\t\tif ( drop === 0 ) {\n\t\t\t\t\t\t\t\t\tdrop = root;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t/* increment past last table */\n\t\t\t\t\t\t\t\tnext += min; /* here min is 1 << curr */\n\n\t\t\t\t\t\t\t\t/* determine length of next table */\n\t\t\t\t\t\t\t\tcurr = len - drop;\n\t\t\t\t\t\t\t\tleft = 1 << curr;\n\t\t\t\t\t\t\t\twhile ( curr + drop < max ) {\n\t\t\t\t\t\t\t\t\tleft -= count[ curr + drop ];\n\t\t\t\t\t\t\t\t\tif ( left <= 0 ) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcurr++;\n\t\t\t\t\t\t\t\t\tleft <<= 1;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t/* check for enough space */\n\t\t\t\t\t\t\t\tused += 1 << curr;\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t( type === LENS && used > ENOUGH_LENS ) ||\n\t\t\t\t\t\t\t\t\t( type === DISTS && used > ENOUGH_DISTS )\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\treturn 1;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t/* point entry in root table to sub-table */\n\t\t\t\t\t\t\t\tlow = huff & mask;\n\t\t\t\t\t\t\t\t/*table.op[low] = curr;\n        table.bits[low] = root;\n        table.val[low] = next - opts.table_index;*/\n\t\t\t\t\t\t\t\ttable[ low ] =\n\t\t\t\t\t\t\t\t\t( root << 24 ) |\n\t\t\t\t\t\t\t\t\t( curr << 16 ) |\n\t\t\t\t\t\t\t\t\t( next - table_index ) |\n\t\t\t\t\t\t\t\t\t0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* fill in remaining table entry if code is incomplete (guaranteed to have\n     at most one remaining entry, since if the code is incomplete, the\n     maximum code length that was allowed to get this far is one bit) */\n\t\t\t\t\t\tif ( huff !== 0 ) {\n\t\t\t\t\t\t\t//table.op[next + huff] = 64;            /* invalid code marker */\n\t\t\t\t\t\t\t//table.bits[next + huff] = len - drop;\n\t\t\t\t\t\t\t//table.val[next + huff] = 0;\n\t\t\t\t\t\t\ttable[ next + huff ] =\n\t\t\t\t\t\t\t\t( ( len - drop ) << 24 ) | ( 64 << 16 ) | 0;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* set return parameters */\n\t\t\t\t\t\t//opts.table_index += used;\n\t\t\t\t\t\topts.bits = root;\n\t\t\t\t\t\treturn 0;\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t{ '../utils/common': 1 },\n\t\t\t],\n\t\t\t10: [\n\t\t\t\tfunction ( require, module, exports ) {\n\t\t\t\t\t'use strict';\n\n\t\t\t\t\t// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n\t\t\t\t\t// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n\t\t\t\t\t//\n\t\t\t\t\t// This software is provided 'as-is', without any express or implied\n\t\t\t\t\t// warranty. In no event will the authors be held liable for any damages\n\t\t\t\t\t// arising from the use of this software.\n\t\t\t\t\t//\n\t\t\t\t\t// Permission is granted to anyone to use this software for any purpose,\n\t\t\t\t\t// including commercial applications, and to alter it and redistribute it\n\t\t\t\t\t// freely, subject to the following restrictions:\n\t\t\t\t\t//\n\t\t\t\t\t// 1. The origin of this software must not be misrepresented; you must not\n\t\t\t\t\t//   claim that you wrote the original software. If you use this software\n\t\t\t\t\t//   in a product, an acknowledgment in the product documentation would be\n\t\t\t\t\t//   appreciated but is not required.\n\t\t\t\t\t// 2. Altered source versions must be plainly marked as such, and must not be\n\t\t\t\t\t//   misrepresented as being the original software.\n\t\t\t\t\t// 3. This notice may not be removed or altered from any source distribution.\n\n\t\t\t\t\tmodule.exports = {\n\t\t\t\t\t\t2: 'need dictionary' /* Z_NEED_DICT       2  */,\n\t\t\t\t\t\t1: 'stream end' /* Z_STREAM_END      1  */,\n\t\t\t\t\t\t0: '' /* Z_OK              0  */,\n\t\t\t\t\t\t'-1': 'file error' /* Z_ERRNO         (-1) */,\n\t\t\t\t\t\t'-2': 'stream error' /* Z_STREAM_ERROR  (-2) */,\n\t\t\t\t\t\t'-3': 'data error' /* Z_DATA_ERROR    (-3) */,\n\t\t\t\t\t\t'-4': 'insufficient memory' /* Z_MEM_ERROR     (-4) */,\n\t\t\t\t\t\t'-5': 'buffer error' /* Z_BUF_ERROR     (-5) */,\n\t\t\t\t\t\t'-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t],\n\t\t\t11: [\n\t\t\t\tfunction ( require, module, exports ) {\n\t\t\t\t\t'use strict';\n\n\t\t\t\t\t// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n\t\t\t\t\t// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n\t\t\t\t\t//\n\t\t\t\t\t// This software is provided 'as-is', without any express or implied\n\t\t\t\t\t// warranty. In no event will the authors be held liable for any damages\n\t\t\t\t\t// arising from the use of this software.\n\t\t\t\t\t//\n\t\t\t\t\t// Permission is granted to anyone to use this software for any purpose,\n\t\t\t\t\t// including commercial applications, and to alter it and redistribute it\n\t\t\t\t\t// freely, subject to the following restrictions:\n\t\t\t\t\t//\n\t\t\t\t\t// 1. The origin of this software must not be misrepresented; you must not\n\t\t\t\t\t//   claim that you wrote the original software. If you use this software\n\t\t\t\t\t//   in a product, an acknowledgment in the product documentation would be\n\t\t\t\t\t//   appreciated but is not required.\n\t\t\t\t\t// 2. Altered source versions must be plainly marked as such, and must not be\n\t\t\t\t\t//   misrepresented as being the original software.\n\t\t\t\t\t// 3. This notice may not be removed or altered from any source distribution.\n\n\t\t\t\t\tfunction ZStream() {\n\t\t\t\t\t\t/* next input byte */\n\t\t\t\t\t\tthis.input = null; // JS specific, because we have no pointers\n\t\t\t\t\t\tthis.next_in = 0;\n\t\t\t\t\t\t/* number of bytes available at input */\n\t\t\t\t\t\tthis.avail_in = 0;\n\t\t\t\t\t\t/* total number of input bytes read so far */\n\t\t\t\t\t\tthis.total_in = 0;\n\t\t\t\t\t\t/* next output byte should be put there */\n\t\t\t\t\t\tthis.output = null; // JS specific, because we have no pointers\n\t\t\t\t\t\tthis.next_out = 0;\n\t\t\t\t\t\t/* remaining free space at output */\n\t\t\t\t\t\tthis.avail_out = 0;\n\t\t\t\t\t\t/* total number of bytes output so far */\n\t\t\t\t\t\tthis.total_out = 0;\n\t\t\t\t\t\t/* last error message, NULL if no error */\n\t\t\t\t\t\tthis.msg = '' /*Z_NULL*/;\n\t\t\t\t\t\t/* not visible by applications */\n\t\t\t\t\t\tthis.state = null;\n\t\t\t\t\t\t/* best guess about the data type: binary or text */\n\t\t\t\t\t\tthis.data_type = 2 /*Z_UNKNOWN*/;\n\t\t\t\t\t\t/* adler32 value of the uncompressed data */\n\t\t\t\t\t\tthis.adler = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tmodule.exports = ZStream;\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t],\n\t\t\t'/lib/inflate.js': [\n\t\t\t\tfunction ( require, module, exports ) {\n\t\t\t\t\t'use strict';\n\n\t\t\t\t\tvar zlib_inflate = require( './zlib/inflate' );\n\t\t\t\t\tvar utils = require( './utils/common' );\n\t\t\t\t\tvar strings = require( './utils/strings' );\n\t\t\t\t\tvar c = require( './zlib/constants' );\n\t\t\t\t\tvar msg = require( './zlib/messages' );\n\t\t\t\t\tvar ZStream = require( './zlib/zstream' );\n\t\t\t\t\tvar GZheader = require( './zlib/gzheader' );\n\n\t\t\t\t\tvar toString = Object.prototype.toString;\n\n\t\t\t\t\t/**\n\t\t\t\t\t * class Inflate\n\t\t\t\t\t *\n\t\t\t\t\t * Generic JS-style wrapper for zlib calls. If you don't need\n\t\t\t\t\t * streaming behaviour - use more simple functions: [[inflate]]\n\t\t\t\t\t * and [[inflateRaw]].\n\t\t\t\t\t **/\n\n\t\t\t\t\t/* internal\n\t\t\t\t\t * inflate.chunks -> Array\n\t\t\t\t\t *\n\t\t\t\t\t * Chunks of output data, if [[Inflate#onData]] not overridden.\n\t\t\t\t\t **/\n\n\t\t\t\t\t/**\n\t\t\t\t\t * Inflate.result -> Uint8Array|Array|String\n\t\t\t\t\t *\n\t\t\t\t\t * Uncompressed result, generated by default [[Inflate#onData]]\n\t\t\t\t\t * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n\t\t\t\t\t * (call [[Inflate#push]] with `Z_FINISH` / `true` param) or if you\n\t\t\t\t\t * push a chunk with explicit flush (call [[Inflate#push]] with\n\t\t\t\t\t * `Z_SYNC_FLUSH` param).\n\t\t\t\t\t **/\n\n\t\t\t\t\t/**\n\t\t\t\t\t * Inflate.err -> Number\n\t\t\t\t\t *\n\t\t\t\t\t * Error code after inflate finished. 0 (Z_OK) on success.\n\t\t\t\t\t * Should be checked if broken data possible.\n\t\t\t\t\t **/\n\n\t\t\t\t\t/**\n\t\t\t\t\t * Inflate.msg -> String\n\t\t\t\t\t *\n\t\t\t\t\t * Error message, if [[Inflate.err]] != 0\n\t\t\t\t\t **/\n\n\t\t\t\t\t/**\n\t\t\t\t\t * new Inflate(options)\n\t\t\t\t\t * - options (Object): zlib inflate options.\n\t\t\t\t\t *\n\t\t\t\t\t * Creates new inflator instance with specified params. Throws exception\n\t\t\t\t\t * on bad params. Supported options:\n\t\t\t\t\t *\n\t\t\t\t\t * - `windowBits`\n\t\t\t\t\t * - `dictionary`\n\t\t\t\t\t *\n\t\t\t\t\t * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n\t\t\t\t\t * for more information on these.\n\t\t\t\t\t *\n\t\t\t\t\t * Additional options, for internal needs:\n\t\t\t\t\t *\n\t\t\t\t\t * - `chunkSize` - size of generated data chunks (16K by default)\n\t\t\t\t\t * - `raw` (Boolean) - do raw inflate\n\t\t\t\t\t * - `to` (String) - if equal to 'string', then result will be converted\n\t\t\t\t\t *   from utf8 to utf16 (javascript) string. When string output requested,\n\t\t\t\t\t *   chunk length can differ from `chunkSize`, depending on content.\n\t\t\t\t\t *\n\t\t\t\t\t * By default, when no options set, autodetect deflate/gzip data format via\n\t\t\t\t\t * wrapper header.\n\t\t\t\t\t *\n\t\t\t\t\t * ##### Example:\n\t\t\t\t\t *\n\t\t\t\t\t * ```javascript\n\t\t\t\t\t * var pako = require('pako')\n\t\t\t\t\t *   , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])\n\t\t\t\t\t *   , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n\t\t\t\t\t *\n\t\t\t\t\t * var inflate = new pako.Inflate({ level: 3});\n\t\t\t\t\t *\n\t\t\t\t\t * inflate.push(chunk1, false);\n\t\t\t\t\t * inflate.push(chunk2, true);  // true -> last chunk\n\t\t\t\t\t *\n\t\t\t\t\t * if (inflate.err) { throw new Error(inflate.err); }\n\t\t\t\t\t *\n\t\t\t\t\t * console.log(inflate.result);\n\t\t\t\t\t * ```\n\t\t\t\t\t **/\n\t\t\t\t\tfunction Inflate( options ) {\n\t\t\t\t\t\tif ( ! ( this instanceof Inflate ) )\n\t\t\t\t\t\t\treturn new Inflate( options );\n\n\t\t\t\t\t\tthis.options = utils.assign(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tchunkSize: 16384,\n\t\t\t\t\t\t\t\twindowBits: 0,\n\t\t\t\t\t\t\t\tto: '',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\toptions || {}\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tvar opt = this.options;\n\n\t\t\t\t\t\t// Force window size for `raw` data, if not set directly,\n\t\t\t\t\t\t// because we have no header for autodetect.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\topt.raw &&\n\t\t\t\t\t\t\topt.windowBits >= 0 &&\n\t\t\t\t\t\t\topt.windowBits < 16\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\topt.windowBits = -opt.windowBits;\n\t\t\t\t\t\t\tif ( opt.windowBits === 0 ) {\n\t\t\t\t\t\t\t\topt.windowBits = -15;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\topt.windowBits >= 0 &&\n\t\t\t\t\t\t\topt.windowBits < 16 &&\n\t\t\t\t\t\t\t! ( options && options.windowBits )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\topt.windowBits += 32;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Gzip header has no info about windows size, we can do autodetect only\n\t\t\t\t\t\t// for deflate. So, if window size not set, force it to max when gzip possible\n\t\t\t\t\t\tif ( opt.windowBits > 15 && opt.windowBits < 48 ) {\n\t\t\t\t\t\t\t// bit 3 (16) -> gzipped data\n\t\t\t\t\t\t\t// bit 4 (32) -> autodetect gzip/deflate\n\t\t\t\t\t\t\tif ( ( opt.windowBits & 15 ) === 0 ) {\n\t\t\t\t\t\t\t\topt.windowBits |= 15;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.err = 0; // error code, if happens (0 = Z_OK)\n\t\t\t\t\t\tthis.msg = ''; // error message\n\t\t\t\t\t\tthis.ended = false; // used to avoid multiple onEnd() calls\n\t\t\t\t\t\tthis.chunks = []; // chunks of compressed data\n\n\t\t\t\t\t\tthis.strm = new ZStream();\n\t\t\t\t\t\tthis.strm.avail_out = 0;\n\n\t\t\t\t\t\tvar status = zlib_inflate.inflateInit2(\n\t\t\t\t\t\t\tthis.strm,\n\t\t\t\t\t\t\topt.windowBits\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif ( status !== c.Z_OK ) {\n\t\t\t\t\t\t\tthrow new Error( msg[ status ] );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.header = new GZheader();\n\n\t\t\t\t\t\tzlib_inflate.inflateGetHeader( this.strm, this.header );\n\n\t\t\t\t\t\t// Setup dictionary\n\t\t\t\t\t\tif ( opt.dictionary ) {\n\t\t\t\t\t\t\t// Convert data if needed\n\t\t\t\t\t\t\tif ( typeof opt.dictionary === 'string' ) {\n\t\t\t\t\t\t\t\topt.dictionary = strings.string2buf(\n\t\t\t\t\t\t\t\t\topt.dictionary\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\ttoString.call( opt.dictionary ) ===\n\t\t\t\t\t\t\t\t'[object ArrayBuffer]'\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\topt.dictionary = new Uint8Array(\n\t\t\t\t\t\t\t\t\topt.dictionary\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( opt.raw ) {\n\t\t\t\t\t\t\t\t//In raw mode we need to set the dictionary early\n\t\t\t\t\t\t\t\tstatus = zlib_inflate.inflateSetDictionary(\n\t\t\t\t\t\t\t\t\tthis.strm,\n\t\t\t\t\t\t\t\t\topt.dictionary\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif ( status !== c.Z_OK ) {\n\t\t\t\t\t\t\t\t\tthrow new Error( msg[ status ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t/**\n\t\t\t\t\t * Inflate#push(data[, mode]) -> Boolean\n\t\t\t\t\t * - data (Uint8Array|Array|ArrayBuffer|String): input data\n\t\t\t\t\t * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n\t\t\t\t\t *   See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n\t\t\t\t\t *\n\t\t\t\t\t * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n\t\t\t\t\t * new output chunks. Returns `true` on success. The last data block must have\n\t\t\t\t\t * mode Z_FINISH (or `true`). That will flush internal pending buffers and call\n\t\t\t\t\t * [[Inflate#onEnd]]. For interim explicit flushes (without ending the stream) you\n\t\t\t\t\t * can use mode Z_SYNC_FLUSH, keeping the decompression context.\n\t\t\t\t\t *\n\t\t\t\t\t * On fail call [[Inflate#onEnd]] with error code and return false.\n\t\t\t\t\t *\n\t\t\t\t\t * We strongly recommend to use `Uint8Array` on input for best speed (output\n\t\t\t\t\t * format is detected automatically). Also, don't skip last param and always\n\t\t\t\t\t * use the same type in your code (boolean or number). That will improve JS speed.\n\t\t\t\t\t *\n\t\t\t\t\t * For regular `Array`-s make sure all elements are [0..255].\n\t\t\t\t\t *\n\t\t\t\t\t * ##### Example\n\t\t\t\t\t *\n\t\t\t\t\t * ```javascript\n\t\t\t\t\t * push(chunk, false); // push one of data chunks\n\t\t\t\t\t * ...\n\t\t\t\t\t * push(chunk, true);  // push last chunk\n\t\t\t\t\t * ```\n\t\t\t\t\t **/\n\t\t\t\t\tInflate.prototype.push = function ( data, mode ) {\n\t\t\t\t\t\tvar strm = this.strm;\n\t\t\t\t\t\tvar chunkSize = this.options.chunkSize;\n\t\t\t\t\t\tvar dictionary = this.options.dictionary;\n\t\t\t\t\t\tvar status, _mode;\n\t\t\t\t\t\tvar next_out_utf8, tail, utf8str;\n\n\t\t\t\t\t\t// Flag to properly process Z_BUF_ERROR on testing inflate call\n\t\t\t\t\t\t// when we check that all output data was flushed.\n\t\t\t\t\t\tvar allowBufError = false;\n\n\t\t\t\t\t\tif ( this.ended ) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t_mode =\n\t\t\t\t\t\t\tmode === ~~mode\n\t\t\t\t\t\t\t\t? mode\n\t\t\t\t\t\t\t\t: mode === true\n\t\t\t\t\t\t\t\t? c.Z_FINISH\n\t\t\t\t\t\t\t\t: c.Z_NO_FLUSH;\n\n\t\t\t\t\t\t// Convert data if needed\n\t\t\t\t\t\tif ( typeof data === 'string' ) {\n\t\t\t\t\t\t\t// Only binary strings can be decompressed on practice\n\t\t\t\t\t\t\tstrm.input = strings.binstring2buf( data );\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\ttoString.call( data ) === '[object ArrayBuffer]'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tstrm.input = new Uint8Array( data );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tstrm.input = data;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstrm.next_in = 0;\n\t\t\t\t\t\tstrm.avail_in = strm.input.length;\n\n\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\tif ( strm.avail_out === 0 ) {\n\t\t\t\t\t\t\t\tstrm.output = new utils.Buf8( chunkSize );\n\t\t\t\t\t\t\t\tstrm.next_out = 0;\n\t\t\t\t\t\t\t\tstrm.avail_out = chunkSize;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tstatus = zlib_inflate.inflate(\n\t\t\t\t\t\t\t\tstrm,\n\t\t\t\t\t\t\t\tc.Z_NO_FLUSH\n\t\t\t\t\t\t\t); /* no bad return value */\n\n\t\t\t\t\t\t\tif ( status === c.Z_NEED_DICT && dictionary ) {\n\t\t\t\t\t\t\t\tstatus = zlib_inflate.inflateSetDictionary(\n\t\t\t\t\t\t\t\t\tthis.strm,\n\t\t\t\t\t\t\t\t\tdictionary\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tstatus === c.Z_BUF_ERROR &&\n\t\t\t\t\t\t\t\tallowBufError === true\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tstatus = c.Z_OK;\n\t\t\t\t\t\t\t\tallowBufError = false;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tstatus !== c.Z_STREAM_END &&\n\t\t\t\t\t\t\t\tstatus !== c.Z_OK\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tthis.onEnd( status );\n\t\t\t\t\t\t\t\tthis.ended = true;\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( strm.next_out ) {\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\tstrm.avail_out === 0 ||\n\t\t\t\t\t\t\t\t\tstatus === c.Z_STREAM_END ||\n\t\t\t\t\t\t\t\t\t( strm.avail_in === 0 &&\n\t\t\t\t\t\t\t\t\t\t( _mode === c.Z_FINISH ||\n\t\t\t\t\t\t\t\t\t\t\t_mode === c.Z_SYNC_FLUSH ) )\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\tif ( this.options.to === 'string' ) {\n\t\t\t\t\t\t\t\t\t\tnext_out_utf8 = strings.utf8border(\n\t\t\t\t\t\t\t\t\t\t\tstrm.output,\n\t\t\t\t\t\t\t\t\t\t\tstrm.next_out\n\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\ttail = strm.next_out - next_out_utf8;\n\t\t\t\t\t\t\t\t\t\tutf8str = strings.buf2string(\n\t\t\t\t\t\t\t\t\t\t\tstrm.output,\n\t\t\t\t\t\t\t\t\t\t\tnext_out_utf8\n\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// move tail\n\t\t\t\t\t\t\t\t\t\tstrm.next_out = tail;\n\t\t\t\t\t\t\t\t\t\tstrm.avail_out = chunkSize - tail;\n\t\t\t\t\t\t\t\t\t\tif ( tail ) {\n\t\t\t\t\t\t\t\t\t\t\tutils.arraySet(\n\t\t\t\t\t\t\t\t\t\t\t\tstrm.output,\n\t\t\t\t\t\t\t\t\t\t\t\tstrm.output,\n\t\t\t\t\t\t\t\t\t\t\t\tnext_out_utf8,\n\t\t\t\t\t\t\t\t\t\t\t\ttail,\n\t\t\t\t\t\t\t\t\t\t\t\t0\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tthis.onData( utf8str );\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tthis.onData(\n\t\t\t\t\t\t\t\t\t\t\tutils.shrinkBuf(\n\t\t\t\t\t\t\t\t\t\t\t\tstrm.output,\n\t\t\t\t\t\t\t\t\t\t\t\tstrm.next_out\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// When no more input data, we should check that internal inflate buffers\n\t\t\t\t\t\t\t// are flushed. The only way to do it when avail_out = 0 - run one more\n\t\t\t\t\t\t\t// inflate pass. But if output data not exists, inflate return Z_BUF_ERROR.\n\t\t\t\t\t\t\t// Here we set flag to process this error properly.\n\t\t\t\t\t\t\t//\n\t\t\t\t\t\t\t// NOTE. Deflate does not return error in this case and does not needs such\n\t\t\t\t\t\t\t// logic.\n\t\t\t\t\t\t\tif ( strm.avail_in === 0 && strm.avail_out === 0 ) {\n\t\t\t\t\t\t\t\tallowBufError = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} while (\n\t\t\t\t\t\t\t( strm.avail_in > 0 || strm.avail_out === 0 ) &&\n\t\t\t\t\t\t\tstatus !== c.Z_STREAM_END\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif ( status === c.Z_STREAM_END ) {\n\t\t\t\t\t\t\t_mode = c.Z_FINISH;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Finalize on the last chunk.\n\t\t\t\t\t\tif ( _mode === c.Z_FINISH ) {\n\t\t\t\t\t\t\tstatus = zlib_inflate.inflateEnd( this.strm );\n\t\t\t\t\t\t\tthis.onEnd( status );\n\t\t\t\t\t\t\tthis.ended = true;\n\t\t\t\t\t\t\treturn status === c.Z_OK;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// callback interim results if Z_SYNC_FLUSH.\n\t\t\t\t\t\tif ( _mode === c.Z_SYNC_FLUSH ) {\n\t\t\t\t\t\t\tthis.onEnd( c.Z_OK );\n\t\t\t\t\t\t\tstrm.avail_out = 0;\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t};\n\n\t\t\t\t\t/**\n\t\t\t\t\t * Inflate#onData(chunk) -> Void\n\t\t\t\t\t * - chunk (Uint8Array|Array|String): output data. Type of array depends\n\t\t\t\t\t *   on js engine support. When string output requested, each chunk\n\t\t\t\t\t *   will be string.\n\t\t\t\t\t *\n\t\t\t\t\t * By default, stores data blocks in `chunks[]` property and glue\n\t\t\t\t\t * those in `onEnd`. Override this handler, if you need another behaviour.\n\t\t\t\t\t **/\n\t\t\t\t\tInflate.prototype.onData = function ( chunk ) {\n\t\t\t\t\t\tthis.chunks.push( chunk );\n\t\t\t\t\t};\n\n\t\t\t\t\t/**\n\t\t\t\t\t * Inflate#onEnd(status) -> Void\n\t\t\t\t\t * - status (Number): inflate status. 0 (Z_OK) on success,\n\t\t\t\t\t *   other if not.\n\t\t\t\t\t *\n\t\t\t\t\t * Called either after you tell inflate that the input stream is\n\t\t\t\t\t * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)\n\t\t\t\t\t * or if an error happened. By default - join collected chunks,\n\t\t\t\t\t * free memory and fill `results` / `err` properties.\n\t\t\t\t\t **/\n\t\t\t\t\tInflate.prototype.onEnd = function ( status ) {\n\t\t\t\t\t\t// On success - join\n\t\t\t\t\t\tif ( status === c.Z_OK ) {\n\t\t\t\t\t\t\tif ( this.options.to === 'string' ) {\n\t\t\t\t\t\t\t\t// Glue & convert here, until we teach pako to send\n\t\t\t\t\t\t\t\t// utf8 aligned strings to onData\n\t\t\t\t\t\t\t\tthis.result = this.chunks.join( '' );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.result = utils.flattenChunks(\n\t\t\t\t\t\t\t\t\tthis.chunks\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.chunks = [];\n\t\t\t\t\t\tthis.err = status;\n\t\t\t\t\t\tthis.msg = this.strm.msg;\n\t\t\t\t\t};\n\n\t\t\t\t\t/**\n\t\t\t\t\t * inflate(data[, options]) -> Uint8Array|Array|String\n\t\t\t\t\t * - data (Uint8Array|Array|String): input data to decompress.\n\t\t\t\t\t * - options (Object): zlib inflate options.\n\t\t\t\t\t *\n\t\t\t\t\t * Decompress `data` with inflate/ungzip and `options`. Autodetect\n\t\t\t\t\t * format via wrapper header by default. That's why we don't provide\n\t\t\t\t\t * separate `ungzip` method.\n\t\t\t\t\t *\n\t\t\t\t\t * Supported options are:\n\t\t\t\t\t *\n\t\t\t\t\t * - windowBits\n\t\t\t\t\t *\n\t\t\t\t\t * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n\t\t\t\t\t * for more information.\n\t\t\t\t\t *\n\t\t\t\t\t * Sugar (options):\n\t\t\t\t\t *\n\t\t\t\t\t * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n\t\t\t\t\t *   negative windowBits implicitly.\n\t\t\t\t\t * - `to` (String) - if equal to 'string', then result will be converted\n\t\t\t\t\t *   from utf8 to utf16 (javascript) string. When string output requested,\n\t\t\t\t\t *   chunk length can differ from `chunkSize`, depending on content.\n\t\t\t\t\t *\n\t\t\t\t\t *\n\t\t\t\t\t * ##### Example:\n\t\t\t\t\t *\n\t\t\t\t\t * ```javascript\n\t\t\t\t\t * var pako = require('pako')\n\t\t\t\t\t *   , input = pako.deflate([1,2,3,4,5,6,7,8,9])\n\t\t\t\t\t *   , output;\n\t\t\t\t\t *\n\t\t\t\t\t * try {\n\t\t\t\t\t *   output = pako.inflate(input);\n\t\t\t\t\t * } catch (err)\n\t\t\t\t\t *   console.log(err);\n\t\t\t\t\t * }\n\t\t\t\t\t * ```\n\t\t\t\t\t **/\n\t\t\t\t\tfunction inflate( input, options ) {\n\t\t\t\t\t\tvar inflator = new Inflate( options );\n\n\t\t\t\t\t\tinflator.push( input, true );\n\n\t\t\t\t\t\t// That will never happens, if you don't cheat with options :)\n\t\t\t\t\t\tif ( inflator.err ) {\n\t\t\t\t\t\t\tthrow inflator.msg || msg[ inflator.err ];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn inflator.result;\n\t\t\t\t\t}\n\n\t\t\t\t\t/**\n\t\t\t\t\t * inflateRaw(data[, options]) -> Uint8Array|Array|String\n\t\t\t\t\t * - data (Uint8Array|Array|String): input data to decompress.\n\t\t\t\t\t * - options (Object): zlib inflate options.\n\t\t\t\t\t *\n\t\t\t\t\t * The same as [[inflate]], but creates raw data, without wrapper\n\t\t\t\t\t * (header and adler32 crc).\n\t\t\t\t\t **/\n\t\t\t\t\tfunction inflateRaw( input, options ) {\n\t\t\t\t\t\toptions = options || {};\n\t\t\t\t\t\toptions.raw = true;\n\t\t\t\t\t\treturn inflate( input, options );\n\t\t\t\t\t}\n\n\t\t\t\t\t/**\n\t\t\t\t\t * ungzip(data[, options]) -> Uint8Array|Array|String\n\t\t\t\t\t * - data (Uint8Array|Array|String): input data to decompress.\n\t\t\t\t\t * - options (Object): zlib inflate options.\n\t\t\t\t\t *\n\t\t\t\t\t * Just shortcut to [[inflate]], because it autodetects format\n\t\t\t\t\t * by header.content. Done for convenience.\n\t\t\t\t\t **/\n\n\t\t\t\t\texports.Inflate = Inflate;\n\t\t\t\t\texports.inflate = inflate;\n\t\t\t\t\texports.inflateRaw = inflateRaw;\n\t\t\t\t\texports.ungzip = inflate;\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t'./utils/common': 1,\n\t\t\t\t\t'./utils/strings': 2,\n\t\t\t\t\t'./zlib/constants': 4,\n\t\t\t\t\t'./zlib/gzheader': 6,\n\t\t\t\t\t'./zlib/inflate': 8,\n\t\t\t\t\t'./zlib/messages': 10,\n\t\t\t\t\t'./zlib/zstream': 11,\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t\t{},\n\t\t[]\n\t)( '/lib/inflate.js' );\n} );\n/* eslint-enable */\n","/* eslint eslint-comments/no-unlimited-disable: 0 */\n/* eslint-disable */\n( function ( f ) {\n\tif ( typeof exports === 'object' && typeof module !== 'undefined' ) {\n\t\tmodule.exports = f();\n\t} else if ( typeof define === 'function' && define.amd ) {\n\t\tdefine( [], f );\n\t} else {\n\t\tvar g;\n\t\tif ( typeof window !== 'undefined' ) {\n\t\t\tg = window;\n\t\t} else if ( typeof global !== 'undefined' ) {\n\t\t\tg = global;\n\t\t} else if ( typeof self !== 'undefined' ) {\n\t\t\tg = self;\n\t\t} else {\n\t\t\tg = this;\n\t\t}\n\t\tg.unbrotli = f();\n\t}\n} )( function () {\n\tvar define, module, exports;\n\treturn ( function () {\n\t\tfunction r( e, n, t ) {\n\t\t\tfunction o( i, f ) {\n\t\t\t\tif ( ! n[ i ] ) {\n\t\t\t\t\tif ( ! e[ i ] ) {\n\t\t\t\t\t\tvar c = 'function' == typeof require && require;\n\t\t\t\t\t\tif ( ! f && c ) return c( i, ! 0 );\n\t\t\t\t\t\tif ( u ) return u( i, ! 0 );\n\t\t\t\t\t\tvar a = new Error( \"Cannot find module '\" + i + \"'\" );\n\t\t\t\t\t\tthrow ( ( a.code = 'MODULE_NOT_FOUND' ), a );\n\t\t\t\t\t}\n\t\t\t\t\tvar p = ( n[ i ] = { exports: {} } );\n\t\t\t\t\te[ i ][ 0 ].call(\n\t\t\t\t\t\tp.exports,\n\t\t\t\t\t\tfunction ( r ) {\n\t\t\t\t\t\t\tvar n = e[ i ][ 1 ][ r ];\n\t\t\t\t\t\t\treturn o( n || r );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tp,\n\t\t\t\t\t\tp.exports,\n\t\t\t\t\t\tr,\n\t\t\t\t\t\te,\n\t\t\t\t\t\tn,\n\t\t\t\t\t\tt\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn n[ i ].exports;\n\t\t\t}\n\t\t\tfor (\n\t\t\t\tvar u = 'function' == typeof require && require, i = 0;\n\t\t\t\ti < t.length;\n\t\t\t\ti++\n\t\t\t)\n\t\t\t\to( t[ i ] );\n\t\t\treturn o;\n\t\t}\n\t\treturn r;\n\t} )()(\n\t\t{\n\t\t\t1: [\n\t\t\t\tfunction ( require, module, exports ) {\n\t\t\t\t\t/* Copyright 2013 Google Inc. All Rights Reserved.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n\n   Bit reading helpers\n*/\n\n\t\t\t\t\tvar BROTLI_READ_SIZE = 4096;\n\t\t\t\t\tvar BROTLI_IBUF_SIZE = 2 * BROTLI_READ_SIZE + 32;\n\t\t\t\t\tvar BROTLI_IBUF_MASK = 2 * BROTLI_READ_SIZE - 1;\n\n\t\t\t\t\tvar kBitMask = new Uint32Array( [\n\t\t\t\t\t\t0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095,\n\t\t\t\t\t\t8191, 16383, 32767, 65535, 131071, 262143, 524287,\n\t\t\t\t\t\t1048575, 2097151, 4194303, 8388607, 16777215,\n\t\t\t\t\t] );\n\n\t\t\t\t\t/* Input byte buffer, consist of a ringbuffer and a \"slack\" region where */\n\t\t\t\t\t/* bytes from the start of the ringbuffer are copied. */\n\t\t\t\t\tfunction BrotliBitReader( input ) {\n\t\t\t\t\t\tthis.buf_ = new Uint8Array( BROTLI_IBUF_SIZE );\n\t\t\t\t\t\tthis.input_ = input; /* input callback */\n\n\t\t\t\t\t\tthis.reset();\n\t\t\t\t\t}\n\n\t\t\t\t\tBrotliBitReader.READ_SIZE = BROTLI_READ_SIZE;\n\t\t\t\t\tBrotliBitReader.IBUF_MASK = BROTLI_IBUF_MASK;\n\n\t\t\t\t\tBrotliBitReader.prototype.reset = function () {\n\t\t\t\t\t\tthis.buf_ptr_ = 0; /* next input will write here */\n\t\t\t\t\t\tthis.val_ = 0; /* pre-fetched bits */\n\t\t\t\t\t\tthis.pos_ = 0; /* byte position in stream */\n\t\t\t\t\t\tthis.bit_pos_ = 0; /* current bit-reading position in val_ */\n\t\t\t\t\t\tthis.bit_end_pos_ = 0; /* bit-reading end position from LSB of val_ */\n\t\t\t\t\t\tthis.eos_ = 0; /* input stream is finished */\n\n\t\t\t\t\t\tthis.readMoreInput();\n\t\t\t\t\t\tfor ( var i = 0; i < 4; i++ ) {\n\t\t\t\t\t\t\tthis.val_ |= this.buf_[ this.pos_ ] << ( 8 * i );\n\t\t\t\t\t\t\t++this.pos_;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn this.bit_end_pos_ > 0;\n\t\t\t\t\t};\n\n\t\t\t\t\t/* Fills up the input ringbuffer by calling the input callback.\n\n   Does nothing if there are at least 32 bytes present after current position.\n\n   Returns 0 if either:\n    - the input callback returned an error, or\n    - there is no more input and the position is past the end of the stream.\n\n   After encountering the end of the input stream, 32 additional zero bytes are\n   copied to the ringbuffer, therefore it is safe to call this function after\n   every 32 bytes of input is read.\n*/\n\t\t\t\t\tBrotliBitReader.prototype.readMoreInput = function () {\n\t\t\t\t\t\tif ( this.bit_end_pos_ > 256 ) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t} else if ( this.eos_ ) {\n\t\t\t\t\t\t\tif ( this.bit_pos_ > this.bit_end_pos_ )\n\t\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t\t'Unexpected end of input ' +\n\t\t\t\t\t\t\t\t\t\tthis.bit_pos_ +\n\t\t\t\t\t\t\t\t\t\t' ' +\n\t\t\t\t\t\t\t\t\t\tthis.bit_end_pos_\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar dst = this.buf_ptr_;\n\t\t\t\t\t\t\tvar bytes_read = this.input_.read(\n\t\t\t\t\t\t\t\tthis.buf_,\n\t\t\t\t\t\t\t\tdst,\n\t\t\t\t\t\t\t\tBROTLI_READ_SIZE\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif ( bytes_read < 0 ) {\n\t\t\t\t\t\t\t\tthrow new Error( 'Unexpected end of input' );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( bytes_read < BROTLI_READ_SIZE ) {\n\t\t\t\t\t\t\t\tthis.eos_ = 1;\n\t\t\t\t\t\t\t\t/* Store 32 bytes of zero after the stream end. */\n\t\t\t\t\t\t\t\tfor ( var p = 0; p < 32; p++ )\n\t\t\t\t\t\t\t\t\tthis.buf_[ dst + bytes_read + p ] = 0;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( dst === 0 ) {\n\t\t\t\t\t\t\t\t/* Copy the head of the ringbuffer to the slack region. */\n\t\t\t\t\t\t\t\tfor ( var p = 0; p < 32; p++ )\n\t\t\t\t\t\t\t\t\tthis.buf_[ ( BROTLI_READ_SIZE << 1 ) + p ] =\n\t\t\t\t\t\t\t\t\t\tthis.buf_[ p ];\n\n\t\t\t\t\t\t\t\tthis.buf_ptr_ = BROTLI_READ_SIZE;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.buf_ptr_ = 0;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.bit_end_pos_ += bytes_read << 3;\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\t/* Guarantees that there are at least 24 bits in the buffer. */\n\t\t\t\t\tBrotliBitReader.prototype.fillBitWindow = function () {\n\t\t\t\t\t\twhile ( this.bit_pos_ >= 8 ) {\n\t\t\t\t\t\t\tthis.val_ >>>= 8;\n\t\t\t\t\t\t\tthis.val_ |=\n\t\t\t\t\t\t\t\tthis.buf_[ this.pos_ & BROTLI_IBUF_MASK ] << 24;\n\t\t\t\t\t\t\t++this.pos_;\n\t\t\t\t\t\t\tthis.bit_pos_ = ( this.bit_pos_ - 8 ) >>> 0;\n\t\t\t\t\t\t\tthis.bit_end_pos_ = ( this.bit_end_pos_ - 8 ) >>> 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\t/* Reads the specified number of bits from Read Buffer. */\n\t\t\t\t\tBrotliBitReader.prototype.readBits = function ( n_bits ) {\n\t\t\t\t\t\tif ( 32 - this.bit_pos_ < n_bits ) {\n\t\t\t\t\t\t\tthis.fillBitWindow();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar val =\n\t\t\t\t\t\t\t( this.val_ >>> this.bit_pos_ ) &\n\t\t\t\t\t\t\tkBitMask[ n_bits ];\n\t\t\t\t\t\tthis.bit_pos_ += n_bits;\n\t\t\t\t\t\treturn val;\n\t\t\t\t\t};\n\n\t\t\t\t\tmodule.exports = BrotliBitReader;\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t],\n\t\t\t2: [\n\t\t\t\tfunction ( require, module, exports ) {\n\t\t\t\t\t/* Copyright 2013 Google Inc. All Rights Reserved.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n\n   Lookup table to map the previous two bytes to a context id.\n\n   There are four different context modeling modes defined here:\n     CONTEXT_LSB6: context id is the least significant 6 bits of the last byte,\n     CONTEXT_MSB6: context id is the most significant 6 bits of the last byte,\n     CONTEXT_UTF8: second-order context model tuned for UTF8-encoded text,\n     CONTEXT_SIGNED: second-order context model tuned for signed integers.\n\n   The context id for the UTF8 context model is calculated as follows. If p1\n   and p2 are the previous two bytes, we calcualte the context as\n\n     context = kContextLookup[p1] | kContextLookup[p2 + 256].\n\n   If the previous two bytes are ASCII characters (i.e. < 128), this will be\n   equivalent to\n\n     context = 4 * context1(p1) + context2(p2),\n\n   where context1 is based on the previous byte in the following way:\n\n     0  : non-ASCII control\n     1  : \\t, \\n, \\r\n     2  : space\n     3  : other punctuation\n     4  : \" '\n     5  : %\n     6  : ( < [ {\n     7  : ) > ] }\n     8  : , ; :\n     9  : .\n     10 : =\n     11 : number\n     12 : upper-case vowel\n     13 : upper-case consonant\n     14 : lower-case vowel\n     15 : lower-case consonant\n\n   and context2 is based on the second last byte:\n\n     0 : control, space\n     1 : punctuation\n     2 : upper-case letter, number\n     3 : lower-case letter\n\n   If the last byte is ASCII, and the second last byte is not (in a valid UTF8\n   stream it will be a continuation byte, value between 128 and 191), the\n   context is the same as if the second last byte was an ASCII control or space.\n\n   If the last byte is a UTF8 lead byte (value >= 192), then the next byte will\n   be a continuation byte and the context id is 2 or 3 depending on the LSB of\n   the last byte and to a lesser extent on the second last byte if it is ASCII.\n\n   If the last byte is a UTF8 continuation byte, the second last byte can be:\n     - continuation byte: the next byte is probably ASCII or lead byte (assuming\n       4-byte UTF8 characters are rare) and the context id is 0 or 1.\n     - lead byte (192 - 207): next byte is ASCII or lead byte, context is 0 or 1\n     - lead byte (208 - 255): next byte is continuation byte, context is 2 or 3\n\n   The possible value combinations of the previous two bytes, the range of\n   context ids and the type of the next byte is summarized in the table below:\n\n   |--------\\-----------------------------------------------------------------|\n   |         \\                         Last byte                              |\n   | Second   \\---------------------------------------------------------------|\n   | last byte \\    ASCII            |   cont. byte        |   lead byte      |\n   |            \\   (0-127)          |   (128-191)         |   (192-)         |\n   |=============|===================|=====================|==================|\n   |  ASCII      | next: ASCII/lead  |  not valid          |  next: cont.     |\n   |  (0-127)    | context: 4 - 63   |                     |  context: 2 - 3  |\n   |-------------|-------------------|---------------------|------------------|\n   |  cont. byte | next: ASCII/lead  |  next: ASCII/lead   |  next: cont.     |\n   |  (128-191)  | context: 4 - 63   |  context: 0 - 1     |  context: 2 - 3  |\n   |-------------|-------------------|---------------------|------------------|\n   |  lead byte  | not valid         |  next: ASCII/lead   |  not valid       |\n   |  (192-207)  |                   |  context: 0 - 1     |                  |\n   |-------------|-------------------|---------------------|------------------|\n   |  lead byte  | not valid         |  next: cont.        |  not valid       |\n   |  (208-)     |                   |  context: 2 - 3     |                  |\n   |-------------|-------------------|---------------------|------------------|\n\n   The context id for the signed context mode is calculated as:\n\n     context = (kContextLookup[512 + p1] << 3) | kContextLookup[512 + p2].\n\n   For any context modeling modes, the context ids can be calculated by |-ing\n   together two lookups from one table using context model dependent offsets:\n\n     context = kContextLookup[offset1 + p1] | kContextLookup[offset2 + p2].\n\n   where offset1 and offset2 are dependent on the context mode.\n*/\n\n\t\t\t\t\tvar CONTEXT_LSB6 = 0;\n\t\t\t\t\tvar CONTEXT_MSB6 = 1;\n\t\t\t\t\tvar CONTEXT_UTF8 = 2;\n\t\t\t\t\tvar CONTEXT_SIGNED = 3;\n\n\t\t\t\t\t/* Common context lookup table for all context modes. */\n\t\t\t\t\texports.lookup = new Uint8Array( [\n\t\t\t\t\t\t/* CONTEXT_UTF8, last byte. */\n\t\t\t\t\t\t/* ASCII range. */\n\t\t\t\t\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 4, 0, 0, 0, 0, 0,\n\t\t\t\t\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 12, 16, 12,\n\t\t\t\t\t\t12, 20, 12, 16, 24, 28, 12, 12, 32, 12, 36, 12, 44, 44,\n\t\t\t\t\t\t44, 44, 44, 44, 44, 44, 44, 44, 32, 32, 24, 40, 28, 12,\n\t\t\t\t\t\t12, 48, 52, 52, 52, 48, 52, 52, 52, 48, 52, 52, 52, 52,\n\t\t\t\t\t\t52, 48, 52, 52, 52, 52, 52, 48, 52, 52, 52, 52, 52, 24,\n\t\t\t\t\t\t12, 28, 12, 12, 12, 56, 60, 60, 60, 56, 60, 60, 60, 56,\n\t\t\t\t\t\t60, 60, 60, 60, 60, 56, 60, 60, 60, 60, 60, 56, 60, 60,\n\t\t\t\t\t\t60, 60, 60, 24, 12, 28, 12, 0,\n\t\t\t\t\t\t/* UTF8 continuation byte range. */\n\t\t\t\t\t\t0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,\n\t\t\t\t\t\t1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\n\t\t\t\t\t\t0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,\n\t\t\t\t\t\t1, 0, 1, 0, 1, 0, 1, /* UTF8 lead byte range. */\n\t\t\t\t\t\t2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2,\n\t\t\t\t\t\t3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,\n\t\t\t\t\t\t2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2,\n\t\t\t\t\t\t3, 2, 3, 2, 3, 2, 3,\n\t\t\t\t\t\t/* CONTEXT_UTF8 second last byte. */\n\t\t\t\t\t\t/* ASCII range. */\n\t\t\t\t\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t\t\t\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,\n\t\t\t\t\t\t1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n\t\t\t\t\t\t2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n\t\t\t\t\t\t2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,\n\t\t\t\t\t\t1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n\t\t\t\t\t\t3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 0,\n\t\t\t\t\t\t/* UTF8 continuation byte range. */\n\t\t\t\t\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t\t\t\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t\t\t\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t\t\t\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t\t\t\t\t0, 0, 0, 0, /* UTF8 lead byte range. */\n\t\t\t\t\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2,\n\t\t\t\t\t\t2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n\t\t\t\t\t\t2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n\t\t\t\t\t\t/* CONTEXT_SIGNED, second last byte. */\n\t\t\t\t\t\t0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,\n\t\t\t\t\t\t2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n\t\t\t\t\t\t2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n\t\t\t\t\t\t2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n\t\t\t\t\t\t3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n\t\t\t\t\t\t3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n\t\t\t\t\t\t3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4,\n\t\t\t\t\t\t4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n\t\t\t\t\t\t4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n\t\t\t\t\t\t4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n\t\t\t\t\t\t4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n\t\t\t\t\t\t5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n\t\t\t\t\t\t5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6,\n\t\t\t\t\t\t6, 6, 6, 6, 6, 6, 6, 6, 7,\n\t\t\t\t\t\t/* CONTEXT_SIGNED, last byte, same as the above values shifted by 3 bits. */\n\t\t\t\t\t\t0,\n\t\t\t\t\t\t8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 16, 16, 16,\n\t\t\t\t\t\t16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,\n\t\t\t\t\t\t16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,\n\t\t\t\t\t\t16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,\n\t\t\t\t\t\t16, 16, 16, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n\t\t\t\t\t\t24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n\t\t\t\t\t\t24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n\t\t\t\t\t\t24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n\t\t\t\t\t\t24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 32, 32, 32,\n\t\t\t\t\t\t32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,\n\t\t\t\t\t\t32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,\n\t\t\t\t\t\t32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,\n\t\t\t\t\t\t32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,\n\t\t\t\t\t\t32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 40, 40, 40, 40,\n\t\t\t\t\t\t40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,\n\t\t\t\t\t\t40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,\n\t\t\t\t\t\t40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 48, 48, 48,\n\t\t\t\t\t\t48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 56,\n\t\t\t\t\t\t/* CONTEXT_LSB6, last byte. */\n\t\t\t\t\t\t0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n\t\t\t\t\t\t16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,\n\t\t\t\t\t\t30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,\n\t\t\t\t\t\t44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,\n\t\t\t\t\t\t58, 59, 60, 61, 62, 63, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,\n\t\t\t\t\t\t10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,\n\t\t\t\t\t\t24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,\n\t\t\t\t\t\t38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,\n\t\t\t\t\t\t52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 0, 1, 2,\n\t\t\t\t\t\t3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,\n\t\t\t\t\t\t19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,\n\t\t\t\t\t\t33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,\n\t\t\t\t\t\t47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,\n\t\t\t\t\t\t61, 62, 63, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,\n\t\t\t\t\t\t13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,\n\t\t\t\t\t\t27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,\n\t\t\t\t\t\t41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,\n\t\t\t\t\t\t55, 56, 57, 58, 59, 60, 61, 62, 63,\n\t\t\t\t\t\t/* CONTEXT_MSB6, last byte. */\n\t\t\t\t\t\t0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4,\n\t\t\t\t\t\t4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9,\n\t\t\t\t\t\t9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12,\n\t\t\t\t\t\t13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16,\n\t\t\t\t\t\t16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19,\n\t\t\t\t\t\t20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 23, 23,\n\t\t\t\t\t\t23, 23, 24, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 26,\n\t\t\t\t\t\t27, 27, 27, 27, 28, 28, 28, 28, 29, 29, 29, 29, 30, 30,\n\t\t\t\t\t\t30, 30, 31, 31, 31, 31, 32, 32, 32, 32, 33, 33, 33, 33,\n\t\t\t\t\t\t34, 34, 34, 34, 35, 35, 35, 35, 36, 36, 36, 36, 37, 37,\n\t\t\t\t\t\t37, 37, 38, 38, 38, 38, 39, 39, 39, 39, 40, 40, 40, 40,\n\t\t\t\t\t\t41, 41, 41, 41, 42, 42, 42, 42, 43, 43, 43, 43, 44, 44,\n\t\t\t\t\t\t44, 44, 45, 45, 45, 45, 46, 46, 46, 46, 47, 47, 47, 47,\n\t\t\t\t\t\t48, 48, 48, 48, 49, 49, 49, 49, 50, 50, 50, 50, 51, 51,\n\t\t\t\t\t\t51, 51, 52, 52, 52, 52, 53, 53, 53, 53, 54, 54, 54, 54,\n\t\t\t\t\t\t55, 55, 55, 55, 56, 56, 56, 56, 57, 57, 57, 57, 58, 58,\n\t\t\t\t\t\t58, 58, 59, 59, 59, 59, 60, 60, 60, 60, 61, 61, 61, 61,\n\t\t\t\t\t\t62, 62, 62, 62, 63, 63, 63, 63,\n\t\t\t\t\t\t/* CONTEXT_{M,L}SB6, second last byte, */\n\t\t\t\t\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t\t\t\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t\t\t\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t\t\t\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t\t\t\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t\t\t\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t\t\t\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t\t\t\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t\t\t\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t\t\t\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t\t\t\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t\t\t\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t\t\t\t\t0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t\t\t\t\t0, 0, 0, 0, 0, 0, 0, 0, 0,\n\t\t\t\t\t] );\n\n\t\t\t\t\texports.lookupOffsets = new Uint16Array( [\n\t\t\t\t\t\t/* CONTEXT_LSB6 */\n\t\t\t\t\t\t1024, 1536, /* CONTEXT_MSB6 */\n\t\t\t\t\t\t1280, 1536, /* CONTEXT_UTF8 */\n\t\t\t\t\t\t0, 256, /* CONTEXT_SIGNED */\n\t\t\t\t\t\t768, 512,\n\t\t\t\t\t] );\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t],\n\t\t\t3: [\n\t\t\t\tfunction ( require, module, exports ) {\n\t\t\t\t\t/* Copyright 2013 Google Inc. All Rights Reserved.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n*/\n\n\t\t\t\t\tvar BrotliInput = require( './streams' ).BrotliInput;\n\t\t\t\t\tvar BrotliOutput = require( './streams' ).BrotliOutput;\n\t\t\t\t\tvar BrotliBitReader = require( './bit_reader' );\n\t\t\t\t\tvar BrotliDictionary = require( './dictionary' );\n\t\t\t\t\tvar HuffmanCode = require( './huffman' ).HuffmanCode;\n\t\t\t\t\tvar BrotliBuildHuffmanTable =\n\t\t\t\t\t\trequire( './huffman' ).BrotliBuildHuffmanTable;\n\t\t\t\t\tvar Context = require( './context' );\n\t\t\t\t\tvar Prefix = require( './prefix' );\n\t\t\t\t\tvar Transform = require( './transform' );\n\n\t\t\t\t\tvar kDefaultCodeLength = 8;\n\t\t\t\t\tvar kCodeLengthRepeatCode = 16;\n\t\t\t\t\tvar kNumLiteralCodes = 256;\n\t\t\t\t\tvar kNumInsertAndCopyCodes = 704;\n\t\t\t\t\tvar kNumBlockLengthCodes = 26;\n\t\t\t\t\tvar kLiteralContextBits = 6;\n\t\t\t\t\tvar kDistanceContextBits = 2;\n\n\t\t\t\t\tvar HUFFMAN_TABLE_BITS = 8;\n\t\t\t\t\tvar HUFFMAN_TABLE_MASK = 0xff;\n\t\t\t\t\t/* Maximum possible Huffman table size for an alphabet size of 704, max code\n\t\t\t\t\t * length 15 and root table bits 8. */\n\t\t\t\t\tvar HUFFMAN_MAX_TABLE_SIZE = 1080;\n\n\t\t\t\t\tvar CODE_LENGTH_CODES = 18;\n\t\t\t\t\tvar kCodeLengthCodeOrder = new Uint8Array( [\n\t\t\t\t\t\t1, 2, 3, 4, 0, 5, 17, 6, 16, 7, 8, 9, 10, 11, 12, 13,\n\t\t\t\t\t\t14, 15,\n\t\t\t\t\t] );\n\n\t\t\t\t\tvar NUM_DISTANCE_SHORT_CODES = 16;\n\t\t\t\t\tvar kDistanceShortCodeIndexOffset = new Uint8Array( [\n\t\t\t\t\t\t3, 2, 1, 0, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2,\n\t\t\t\t\t] );\n\n\t\t\t\t\tvar kDistanceShortCodeValueOffset = new Int8Array( [\n\t\t\t\t\t\t0, 0, 0, 0, -1, 1, -2, 2, -3, 3, -1, 1, -2, 2, -3, 3,\n\t\t\t\t\t] );\n\n\t\t\t\t\tvar kMaxHuffmanTableSize = new Uint16Array( [\n\t\t\t\t\t\t256, 402, 436, 468, 500, 534, 566, 598, 630, 662, 694,\n\t\t\t\t\t\t726, 758, 790, 822, 854, 886, 920, 952, 984, 1016, 1048,\n\t\t\t\t\t\t1080,\n\t\t\t\t\t] );\n\n\t\t\t\t\tfunction DecodeWindowBits( br ) {\n\t\t\t\t\t\tvar n;\n\t\t\t\t\t\tif ( br.readBits( 1 ) === 0 ) {\n\t\t\t\t\t\t\treturn 16;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tn = br.readBits( 3 );\n\t\t\t\t\t\tif ( n > 0 ) {\n\t\t\t\t\t\t\treturn 17 + n;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tn = br.readBits( 3 );\n\t\t\t\t\t\tif ( n > 0 ) {\n\t\t\t\t\t\t\treturn 8 + n;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn 17;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* Decodes a number in the range [0..255], by reading 1 - 11 bits. */\n\t\t\t\t\tfunction DecodeVarLenUint8( br ) {\n\t\t\t\t\t\tif ( br.readBits( 1 ) ) {\n\t\t\t\t\t\t\tvar nbits = br.readBits( 3 );\n\t\t\t\t\t\t\tif ( nbits === 0 ) {\n\t\t\t\t\t\t\t\treturn 1;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn br.readBits( nbits ) + ( 1 << nbits );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction MetaBlockLength() {\n\t\t\t\t\t\tthis.meta_block_length = 0;\n\t\t\t\t\t\tthis.input_end = 0;\n\t\t\t\t\t\tthis.is_uncompressed = 0;\n\t\t\t\t\t\tthis.is_metadata = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction DecodeMetaBlockLength( br ) {\n\t\t\t\t\t\tvar out = new MetaBlockLength();\n\t\t\t\t\t\tvar size_nibbles;\n\t\t\t\t\t\tvar size_bytes;\n\t\t\t\t\t\tvar i;\n\n\t\t\t\t\t\tout.input_end = br.readBits( 1 );\n\t\t\t\t\t\tif ( out.input_end && br.readBits( 1 ) ) {\n\t\t\t\t\t\t\treturn out;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tsize_nibbles = br.readBits( 2 ) + 4;\n\t\t\t\t\t\tif ( size_nibbles === 7 ) {\n\t\t\t\t\t\t\tout.is_metadata = true;\n\n\t\t\t\t\t\t\tif ( br.readBits( 1 ) !== 0 )\n\t\t\t\t\t\t\t\tthrow new Error( 'Invalid reserved bit' );\n\n\t\t\t\t\t\t\tsize_bytes = br.readBits( 2 );\n\t\t\t\t\t\t\tif ( size_bytes === 0 ) return out;\n\n\t\t\t\t\t\t\tfor ( i = 0; i < size_bytes; i++ ) {\n\t\t\t\t\t\t\t\tvar next_byte = br.readBits( 8 );\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\ti + 1 === size_bytes &&\n\t\t\t\t\t\t\t\t\tsize_bytes > 1 &&\n\t\t\t\t\t\t\t\t\tnext_byte === 0\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\tthrow new Error( 'Invalid size byte' );\n\n\t\t\t\t\t\t\t\tout.meta_block_length |= next_byte << ( i * 8 );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfor ( i = 0; i < size_nibbles; ++i ) {\n\t\t\t\t\t\t\t\tvar next_nibble = br.readBits( 4 );\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\ti + 1 === size_nibbles &&\n\t\t\t\t\t\t\t\t\tsize_nibbles > 4 &&\n\t\t\t\t\t\t\t\t\tnext_nibble === 0\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\tthrow new Error( 'Invalid size nibble' );\n\n\t\t\t\t\t\t\t\tout.meta_block_length |=\n\t\t\t\t\t\t\t\t\tnext_nibble << ( i * 4 );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t++out.meta_block_length;\n\n\t\t\t\t\t\tif ( ! out.input_end && ! out.is_metadata ) {\n\t\t\t\t\t\t\tout.is_uncompressed = br.readBits( 1 );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn out;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* Decodes the next Huffman code from bit-stream. */\n\t\t\t\t\tfunction ReadSymbol( table, index, br ) {\n\t\t\t\t\t\tvar start_index = index;\n\n\t\t\t\t\t\tvar nbits;\n\t\t\t\t\t\tbr.fillBitWindow();\n\t\t\t\t\t\tindex +=\n\t\t\t\t\t\t\t( br.val_ >>> br.bit_pos_ ) & HUFFMAN_TABLE_MASK;\n\t\t\t\t\t\tnbits = table[ index ].bits - HUFFMAN_TABLE_BITS;\n\t\t\t\t\t\tif ( nbits > 0 ) {\n\t\t\t\t\t\t\tbr.bit_pos_ += HUFFMAN_TABLE_BITS;\n\t\t\t\t\t\t\tindex += table[ index ].value;\n\t\t\t\t\t\t\tindex +=\n\t\t\t\t\t\t\t\t( br.val_ >>> br.bit_pos_ ) &\n\t\t\t\t\t\t\t\t( ( 1 << nbits ) - 1 );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbr.bit_pos_ += table[ index ].bits;\n\t\t\t\t\t\treturn table[ index ].value;\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction ReadHuffmanCodeLengths(\n\t\t\t\t\t\tcode_length_code_lengths,\n\t\t\t\t\t\tnum_symbols,\n\t\t\t\t\t\tcode_lengths,\n\t\t\t\t\t\tbr\n\t\t\t\t\t) {\n\t\t\t\t\t\tvar symbol = 0;\n\t\t\t\t\t\tvar prev_code_len = kDefaultCodeLength;\n\t\t\t\t\t\tvar repeat = 0;\n\t\t\t\t\t\tvar repeat_code_len = 0;\n\t\t\t\t\t\tvar space = 32768;\n\n\t\t\t\t\t\tvar table = [];\n\t\t\t\t\t\tfor ( var i = 0; i < 32; i++ )\n\t\t\t\t\t\t\ttable.push( new HuffmanCode( 0, 0 ) );\n\n\t\t\t\t\t\tBrotliBuildHuffmanTable(\n\t\t\t\t\t\t\ttable,\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t5,\n\t\t\t\t\t\t\tcode_length_code_lengths,\n\t\t\t\t\t\t\tCODE_LENGTH_CODES\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\twhile ( symbol < num_symbols && space > 0 ) {\n\t\t\t\t\t\t\tvar p = 0;\n\t\t\t\t\t\t\tvar code_len;\n\n\t\t\t\t\t\t\tbr.readMoreInput();\n\t\t\t\t\t\t\tbr.fillBitWindow();\n\t\t\t\t\t\t\tp += ( br.val_ >>> br.bit_pos_ ) & 31;\n\t\t\t\t\t\t\tbr.bit_pos_ += table[ p ].bits;\n\t\t\t\t\t\t\tcode_len = table[ p ].value & 0xff;\n\t\t\t\t\t\t\tif ( code_len < kCodeLengthRepeatCode ) {\n\t\t\t\t\t\t\t\trepeat = 0;\n\t\t\t\t\t\t\t\tcode_lengths[ symbol++ ] = code_len;\n\t\t\t\t\t\t\t\tif ( code_len !== 0 ) {\n\t\t\t\t\t\t\t\t\tprev_code_len = code_len;\n\t\t\t\t\t\t\t\t\tspace -= 32768 >> code_len;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvar extra_bits = code_len - 14;\n\t\t\t\t\t\t\t\tvar old_repeat;\n\t\t\t\t\t\t\t\tvar repeat_delta;\n\t\t\t\t\t\t\t\tvar new_len = 0;\n\t\t\t\t\t\t\t\tif ( code_len === kCodeLengthRepeatCode ) {\n\t\t\t\t\t\t\t\t\tnew_len = prev_code_len;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( repeat_code_len !== new_len ) {\n\t\t\t\t\t\t\t\t\trepeat = 0;\n\t\t\t\t\t\t\t\t\trepeat_code_len = new_len;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\told_repeat = repeat;\n\t\t\t\t\t\t\t\tif ( repeat > 0 ) {\n\t\t\t\t\t\t\t\t\trepeat -= 2;\n\t\t\t\t\t\t\t\t\trepeat <<= extra_bits;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\trepeat += br.readBits( extra_bits ) + 3;\n\t\t\t\t\t\t\t\trepeat_delta = repeat - old_repeat;\n\t\t\t\t\t\t\t\tif ( symbol + repeat_delta > num_symbols ) {\n\t\t\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t\t\t'[ReadHuffmanCodeLengths] symbol + repeat_delta > num_symbols'\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tfor ( var x = 0; x < repeat_delta; x++ )\n\t\t\t\t\t\t\t\t\tcode_lengths[ symbol + x ] =\n\t\t\t\t\t\t\t\t\t\trepeat_code_len;\n\n\t\t\t\t\t\t\t\tsymbol += repeat_delta;\n\n\t\t\t\t\t\t\t\tif ( repeat_code_len !== 0 ) {\n\t\t\t\t\t\t\t\t\tspace -=\n\t\t\t\t\t\t\t\t\t\trepeat_delta <<\n\t\t\t\t\t\t\t\t\t\t( 15 - repeat_code_len );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( space !== 0 ) {\n\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t'[ReadHuffmanCodeLengths] space = ' + space\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor ( ; symbol < num_symbols; symbol++ )\n\t\t\t\t\t\t\tcode_lengths[ symbol ] = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction ReadHuffmanCode(\n\t\t\t\t\t\talphabet_size,\n\t\t\t\t\t\ttables,\n\t\t\t\t\t\ttable,\n\t\t\t\t\t\tbr\n\t\t\t\t\t) {\n\t\t\t\t\t\tvar table_size = 0;\n\t\t\t\t\t\tvar simple_code_or_skip;\n\t\t\t\t\t\tvar code_lengths = new Uint8Array( alphabet_size );\n\n\t\t\t\t\t\tbr.readMoreInput();\n\n\t\t\t\t\t\t/* simple_code_or_skip is used as follows:\n     1 for simple code;\n     0 for no skipping, 2 skips 2 code lengths, 3 skips 3 code lengths */\n\t\t\t\t\t\tsimple_code_or_skip = br.readBits( 2 );\n\t\t\t\t\t\tif ( simple_code_or_skip === 1 ) {\n\t\t\t\t\t\t\t/* Read symbols, codes & code lengths directly. */\n\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\tvar max_bits_counter = alphabet_size - 1;\n\t\t\t\t\t\t\tvar max_bits = 0;\n\t\t\t\t\t\t\tvar symbols = new Int32Array( 4 );\n\t\t\t\t\t\t\tvar num_symbols = br.readBits( 2 ) + 1;\n\t\t\t\t\t\t\twhile ( max_bits_counter ) {\n\t\t\t\t\t\t\t\tmax_bits_counter >>= 1;\n\t\t\t\t\t\t\t\t++max_bits;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor ( i = 0; i < num_symbols; ++i ) {\n\t\t\t\t\t\t\t\tsymbols[ i ] =\n\t\t\t\t\t\t\t\t\tbr.readBits( max_bits ) % alphabet_size;\n\t\t\t\t\t\t\t\tcode_lengths[ symbols[ i ] ] = 2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcode_lengths[ symbols[ 0 ] ] = 1;\n\t\t\t\t\t\t\tswitch ( num_symbols ) {\n\t\t\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase 3:\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\tsymbols[ 0 ] === symbols[ 1 ] ||\n\t\t\t\t\t\t\t\t\t\tsymbols[ 0 ] === symbols[ 2 ] ||\n\t\t\t\t\t\t\t\t\t\tsymbols[ 1 ] === symbols[ 2 ]\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t\t\t\t'[ReadHuffmanCode] invalid symbols'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\t\t\tif ( symbols[ 0 ] === symbols[ 1 ] ) {\n\t\t\t\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t\t\t\t'[ReadHuffmanCode] invalid symbols'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tcode_lengths[ symbols[ 1 ] ] = 1;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase 4:\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\tsymbols[ 0 ] === symbols[ 1 ] ||\n\t\t\t\t\t\t\t\t\t\tsymbols[ 0 ] === symbols[ 2 ] ||\n\t\t\t\t\t\t\t\t\t\tsymbols[ 0 ] === symbols[ 3 ] ||\n\t\t\t\t\t\t\t\t\t\tsymbols[ 1 ] === symbols[ 2 ] ||\n\t\t\t\t\t\t\t\t\t\tsymbols[ 1 ] === symbols[ 3 ] ||\n\t\t\t\t\t\t\t\t\t\tsymbols[ 2 ] === symbols[ 3 ]\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t\t\t\t'[ReadHuffmanCode] invalid symbols'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif ( br.readBits( 1 ) ) {\n\t\t\t\t\t\t\t\t\t\tcode_lengths[ symbols[ 2 ] ] = 3;\n\t\t\t\t\t\t\t\t\t\tcode_lengths[ symbols[ 3 ] ] = 3;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tcode_lengths[ symbols[ 0 ] ] = 2;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t/* Decode Huffman-coded code lengths. */\n\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\tvar code_length_code_lengths = new Uint8Array(\n\t\t\t\t\t\t\t\tCODE_LENGTH_CODES\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tvar space = 32;\n\t\t\t\t\t\t\tvar num_codes = 0;\n\t\t\t\t\t\t\t/* Static Huffman code for the code length code lengths */\n\t\t\t\t\t\t\tvar huff = [\n\t\t\t\t\t\t\t\tnew HuffmanCode( 2, 0 ),\n\t\t\t\t\t\t\t\tnew HuffmanCode( 2, 4 ),\n\t\t\t\t\t\t\t\tnew HuffmanCode( 2, 3 ),\n\t\t\t\t\t\t\t\tnew HuffmanCode( 3, 2 ),\n\t\t\t\t\t\t\t\tnew HuffmanCode( 2, 0 ),\n\t\t\t\t\t\t\t\tnew HuffmanCode( 2, 4 ),\n\t\t\t\t\t\t\t\tnew HuffmanCode( 2, 3 ),\n\t\t\t\t\t\t\t\tnew HuffmanCode( 4, 1 ),\n\t\t\t\t\t\t\t\tnew HuffmanCode( 2, 0 ),\n\t\t\t\t\t\t\t\tnew HuffmanCode( 2, 4 ),\n\t\t\t\t\t\t\t\tnew HuffmanCode( 2, 3 ),\n\t\t\t\t\t\t\t\tnew HuffmanCode( 3, 2 ),\n\t\t\t\t\t\t\t\tnew HuffmanCode( 2, 0 ),\n\t\t\t\t\t\t\t\tnew HuffmanCode( 2, 4 ),\n\t\t\t\t\t\t\t\tnew HuffmanCode( 2, 3 ),\n\t\t\t\t\t\t\t\tnew HuffmanCode( 4, 5 ),\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\t\ti = simple_code_or_skip;\n\t\t\t\t\t\t\t\ti < CODE_LENGTH_CODES && space > 0;\n\t\t\t\t\t\t\t\t++i\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tvar code_len_idx = kCodeLengthCodeOrder[ i ];\n\t\t\t\t\t\t\t\tvar p = 0;\n\t\t\t\t\t\t\t\tvar v;\n\t\t\t\t\t\t\t\tbr.fillBitWindow();\n\t\t\t\t\t\t\t\tp += ( br.val_ >>> br.bit_pos_ ) & 15;\n\t\t\t\t\t\t\t\tbr.bit_pos_ += huff[ p ].bits;\n\t\t\t\t\t\t\t\tv = huff[ p ].value;\n\t\t\t\t\t\t\t\tcode_length_code_lengths[ code_len_idx ] = v;\n\t\t\t\t\t\t\t\tif ( v !== 0 ) {\n\t\t\t\t\t\t\t\t\tspace -= 32 >> v;\n\t\t\t\t\t\t\t\t\t++num_codes;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( ! ( num_codes === 1 || space === 0 ) )\n\t\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t\t'[ReadHuffmanCode] invalid num_codes or space'\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tReadHuffmanCodeLengths(\n\t\t\t\t\t\t\t\tcode_length_code_lengths,\n\t\t\t\t\t\t\t\talphabet_size,\n\t\t\t\t\t\t\t\tcode_lengths,\n\t\t\t\t\t\t\t\tbr\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ttable_size = BrotliBuildHuffmanTable(\n\t\t\t\t\t\t\ttables,\n\t\t\t\t\t\t\ttable,\n\t\t\t\t\t\t\tHUFFMAN_TABLE_BITS,\n\t\t\t\t\t\t\tcode_lengths,\n\t\t\t\t\t\t\talphabet_size\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif ( table_size === 0 ) {\n\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t'[ReadHuffmanCode] BuildHuffmanTable failed: '\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn table_size;\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction ReadBlockLength( table, index, br ) {\n\t\t\t\t\t\tvar code;\n\t\t\t\t\t\tvar nbits;\n\t\t\t\t\t\tcode = ReadSymbol( table, index, br );\n\t\t\t\t\t\tnbits = Prefix.kBlockLengthPrefixCode[ code ].nbits;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\tPrefix.kBlockLengthPrefixCode[ code ].offset +\n\t\t\t\t\t\t\tbr.readBits( nbits )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction TranslateShortCodes( code, ringbuffer, index ) {\n\t\t\t\t\t\tvar val;\n\t\t\t\t\t\tif ( code < NUM_DISTANCE_SHORT_CODES ) {\n\t\t\t\t\t\t\tindex += kDistanceShortCodeIndexOffset[ code ];\n\t\t\t\t\t\t\tindex &= 3;\n\t\t\t\t\t\t\tval =\n\t\t\t\t\t\t\t\tringbuffer[ index ] +\n\t\t\t\t\t\t\t\tkDistanceShortCodeValueOffset[ code ];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tval = code - NUM_DISTANCE_SHORT_CODES + 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn val;\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction MoveToFront( v, index ) {\n\t\t\t\t\t\tvar value = v[ index ];\n\t\t\t\t\t\tvar i = index;\n\t\t\t\t\t\tfor ( ; i; --i ) v[ i ] = v[ i - 1 ];\n\t\t\t\t\t\tv[ 0 ] = value;\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction InverseMoveToFrontTransform( v, v_len ) {\n\t\t\t\t\t\tvar mtf = new Uint8Array( 256 );\n\t\t\t\t\t\tvar i;\n\t\t\t\t\t\tfor ( i = 0; i < 256; ++i ) {\n\t\t\t\t\t\t\tmtf[ i ] = i;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor ( i = 0; i < v_len; ++i ) {\n\t\t\t\t\t\t\tvar index = v[ i ];\n\t\t\t\t\t\t\tv[ i ] = mtf[ index ];\n\t\t\t\t\t\t\tif ( index ) MoveToFront( mtf, index );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t/* Contains a collection of huffman trees with the same alphabet size. */\n\t\t\t\t\tfunction HuffmanTreeGroup( alphabet_size, num_htrees ) {\n\t\t\t\t\t\tthis.alphabet_size = alphabet_size;\n\t\t\t\t\t\tthis.num_htrees = num_htrees;\n\t\t\t\t\t\tthis.codes = new Array(\n\t\t\t\t\t\t\tnum_htrees +\n\t\t\t\t\t\t\t\tnum_htrees *\n\t\t\t\t\t\t\t\t\tkMaxHuffmanTableSize[\n\t\t\t\t\t\t\t\t\t\t( alphabet_size + 31 ) >>> 5\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthis.htrees = new Uint32Array( num_htrees );\n\t\t\t\t\t}\n\n\t\t\t\t\tHuffmanTreeGroup.prototype.decode = function ( br ) {\n\t\t\t\t\t\tvar i;\n\t\t\t\t\t\tvar table_size;\n\t\t\t\t\t\tvar next = 0;\n\t\t\t\t\t\tfor ( i = 0; i < this.num_htrees; ++i ) {\n\t\t\t\t\t\t\tthis.htrees[ i ] = next;\n\t\t\t\t\t\t\ttable_size = ReadHuffmanCode(\n\t\t\t\t\t\t\t\tthis.alphabet_size,\n\t\t\t\t\t\t\t\tthis.codes,\n\t\t\t\t\t\t\t\tnext,\n\t\t\t\t\t\t\t\tbr\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tnext += table_size;\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tfunction DecodeContextMap( context_map_size, br ) {\n\t\t\t\t\t\tvar out = { num_htrees: null, context_map: null };\n\t\t\t\t\t\tvar use_rle_for_zeros;\n\t\t\t\t\t\tvar max_run_length_prefix = 0;\n\t\t\t\t\t\tvar table;\n\t\t\t\t\t\tvar i;\n\n\t\t\t\t\t\tbr.readMoreInput();\n\t\t\t\t\t\tvar num_htrees = ( out.num_htrees =\n\t\t\t\t\t\t\tDecodeVarLenUint8( br ) + 1 );\n\n\t\t\t\t\t\tvar context_map = ( out.context_map = new Uint8Array(\n\t\t\t\t\t\t\tcontext_map_size\n\t\t\t\t\t\t) );\n\t\t\t\t\t\tif ( num_htrees <= 1 ) {\n\t\t\t\t\t\t\treturn out;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tuse_rle_for_zeros = br.readBits( 1 );\n\t\t\t\t\t\tif ( use_rle_for_zeros ) {\n\t\t\t\t\t\t\tmax_run_length_prefix = br.readBits( 4 ) + 1;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ttable = [];\n\t\t\t\t\t\tfor ( i = 0; i < HUFFMAN_MAX_TABLE_SIZE; i++ ) {\n\t\t\t\t\t\t\ttable[ i ] = new HuffmanCode( 0, 0 );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tReadHuffmanCode(\n\t\t\t\t\t\t\tnum_htrees + max_run_length_prefix,\n\t\t\t\t\t\t\ttable,\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\tbr\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tfor ( i = 0; i < context_map_size;  ) {\n\t\t\t\t\t\t\tvar code;\n\n\t\t\t\t\t\t\tbr.readMoreInput();\n\t\t\t\t\t\t\tcode = ReadSymbol( table, 0, br );\n\t\t\t\t\t\t\tif ( code === 0 ) {\n\t\t\t\t\t\t\t\tcontext_map[ i ] = 0;\n\t\t\t\t\t\t\t\t++i;\n\t\t\t\t\t\t\t} else if ( code <= max_run_length_prefix ) {\n\t\t\t\t\t\t\t\tvar reps =\n\t\t\t\t\t\t\t\t\t1 + ( 1 << code ) + br.readBits( code );\n\t\t\t\t\t\t\t\twhile ( --reps ) {\n\t\t\t\t\t\t\t\t\tif ( i >= context_map_size ) {\n\t\t\t\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t\t\t\t'[DecodeContextMap] i >= context_map_size'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcontext_map[ i ] = 0;\n\t\t\t\t\t\t\t\t\t++i;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcontext_map[ i ] = code - max_run_length_prefix;\n\t\t\t\t\t\t\t\t++i;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( br.readBits( 1 ) ) {\n\t\t\t\t\t\t\tInverseMoveToFrontTransform(\n\t\t\t\t\t\t\t\tcontext_map,\n\t\t\t\t\t\t\t\tcontext_map_size\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn out;\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction DecodeBlockType(\n\t\t\t\t\t\tmax_block_type,\n\t\t\t\t\t\ttrees,\n\t\t\t\t\t\ttree_type,\n\t\t\t\t\t\tblock_types,\n\t\t\t\t\t\tringbuffers,\n\t\t\t\t\t\tindexes,\n\t\t\t\t\t\tbr\n\t\t\t\t\t) {\n\t\t\t\t\t\tvar ringbuffer = tree_type * 2;\n\t\t\t\t\t\tvar index = tree_type;\n\t\t\t\t\t\tvar type_code = ReadSymbol(\n\t\t\t\t\t\t\ttrees,\n\t\t\t\t\t\t\ttree_type * HUFFMAN_MAX_TABLE_SIZE,\n\t\t\t\t\t\t\tbr\n\t\t\t\t\t\t);\n\t\t\t\t\t\tvar block_type;\n\t\t\t\t\t\tif ( type_code === 0 ) {\n\t\t\t\t\t\t\tblock_type =\n\t\t\t\t\t\t\t\tringbuffers[\n\t\t\t\t\t\t\t\t\tringbuffer + ( indexes[ index ] & 1 )\n\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t} else if ( type_code === 1 ) {\n\t\t\t\t\t\t\tblock_type =\n\t\t\t\t\t\t\t\tringbuffers[\n\t\t\t\t\t\t\t\t\tringbuffer +\n\t\t\t\t\t\t\t\t\t\t( ( indexes[ index ] - 1 ) & 1 )\n\t\t\t\t\t\t\t\t] + 1;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tblock_type = type_code - 2;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( block_type >= max_block_type ) {\n\t\t\t\t\t\t\tblock_type -= max_block_type;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tblock_types[ tree_type ] = block_type;\n\t\t\t\t\t\tringbuffers[ ringbuffer + ( indexes[ index ] & 1 ) ] =\n\t\t\t\t\t\t\tblock_type;\n\t\t\t\t\t\t++indexes[ index ];\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction CopyUncompressedBlockToOutput(\n\t\t\t\t\t\toutput,\n\t\t\t\t\t\tlen,\n\t\t\t\t\t\tpos,\n\t\t\t\t\t\tringbuffer,\n\t\t\t\t\t\tringbuffer_mask,\n\t\t\t\t\t\tbr\n\t\t\t\t\t) {\n\t\t\t\t\t\tvar rb_size = ringbuffer_mask + 1;\n\t\t\t\t\t\tvar rb_pos = pos & ringbuffer_mask;\n\t\t\t\t\t\tvar br_pos = br.pos_ & BrotliBitReader.IBUF_MASK;\n\t\t\t\t\t\tvar nbytes;\n\n\t\t\t\t\t\t/* For short lengths copy byte-by-byte */\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tlen < 8 ||\n\t\t\t\t\t\t\tbr.bit_pos_ + ( len << 3 ) < br.bit_end_pos_\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\twhile ( len-- > 0 ) {\n\t\t\t\t\t\t\t\tbr.readMoreInput();\n\t\t\t\t\t\t\t\tringbuffer[ rb_pos++ ] = br.readBits( 8 );\n\t\t\t\t\t\t\t\tif ( rb_pos === rb_size ) {\n\t\t\t\t\t\t\t\t\toutput.write( ringbuffer, rb_size );\n\t\t\t\t\t\t\t\t\trb_pos = 0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( br.bit_end_pos_ < 32 ) {\n\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t'[CopyUncompressedBlockToOutput] br.bit_end_pos_ < 32'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* Copy remaining 0-4 bytes from br.val_ to ringbuffer. */\n\t\t\t\t\t\twhile ( br.bit_pos_ < 32 ) {\n\t\t\t\t\t\t\tringbuffer[ rb_pos ] = br.val_ >>> br.bit_pos_;\n\t\t\t\t\t\t\tbr.bit_pos_ += 8;\n\t\t\t\t\t\t\t++rb_pos;\n\t\t\t\t\t\t\t--len;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* Copy remaining bytes from br.buf_ to ringbuffer. */\n\t\t\t\t\t\tnbytes = ( br.bit_end_pos_ - br.bit_pos_ ) >> 3;\n\t\t\t\t\t\tif ( br_pos + nbytes > BrotliBitReader.IBUF_MASK ) {\n\t\t\t\t\t\t\tvar tail = BrotliBitReader.IBUF_MASK + 1 - br_pos;\n\t\t\t\t\t\t\tfor ( var x = 0; x < tail; x++ )\n\t\t\t\t\t\t\t\tringbuffer[ rb_pos + x ] =\n\t\t\t\t\t\t\t\t\tbr.buf_[ br_pos + x ];\n\n\t\t\t\t\t\t\tnbytes -= tail;\n\t\t\t\t\t\t\trb_pos += tail;\n\t\t\t\t\t\t\tlen -= tail;\n\t\t\t\t\t\t\tbr_pos = 0;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor ( var x = 0; x < nbytes; x++ )\n\t\t\t\t\t\t\tringbuffer[ rb_pos + x ] = br.buf_[ br_pos + x ];\n\n\t\t\t\t\t\trb_pos += nbytes;\n\t\t\t\t\t\tlen -= nbytes;\n\n\t\t\t\t\t\t/* If we wrote past the logical end of the ringbuffer, copy the tail of the\n     ringbuffer to its beginning and flush the ringbuffer to the output. */\n\t\t\t\t\t\tif ( rb_pos >= rb_size ) {\n\t\t\t\t\t\t\toutput.write( ringbuffer, rb_size );\n\t\t\t\t\t\t\trb_pos -= rb_size;\n\t\t\t\t\t\t\tfor ( var x = 0; x < rb_pos; x++ )\n\t\t\t\t\t\t\t\tringbuffer[ x ] = ringbuffer[ rb_size + x ];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* If we have more to copy than the remaining size of the ringbuffer, then we\n     first fill the ringbuffer from the input and then flush the ringbuffer to\n     the output */\n\t\t\t\t\t\twhile ( rb_pos + len >= rb_size ) {\n\t\t\t\t\t\t\tnbytes = rb_size - rb_pos;\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tbr.input_.read( ringbuffer, rb_pos, nbytes ) <\n\t\t\t\t\t\t\t\tnbytes\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t\t'[CopyUncompressedBlockToOutput] not enough bytes'\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\toutput.write( ringbuffer, rb_size );\n\t\t\t\t\t\t\tlen -= nbytes;\n\t\t\t\t\t\t\trb_pos = 0;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* Copy straight from the input onto the ringbuffer. The ringbuffer will be\n     flushed to the output at a later time. */\n\t\t\t\t\t\tif ( br.input_.read( ringbuffer, rb_pos, len ) < len ) {\n\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t'[CopyUncompressedBlockToOutput] not enough bytes'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* Restore the state of the bit reader. */\n\t\t\t\t\t\tbr.reset();\n\t\t\t\t\t}\n\n\t\t\t\t\t/* Advances the bit reader position to the next byte boundary and verifies\n   that any skipped bits are set to zero. */\n\t\t\t\t\tfunction JumpToByteBoundary( br ) {\n\t\t\t\t\t\tvar new_bit_pos = ( br.bit_pos_ + 7 ) & ~7;\n\t\t\t\t\t\tvar pad_bits = br.readBits( new_bit_pos - br.bit_pos_ );\n\t\t\t\t\t\treturn pad_bits == 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction BrotliDecompressedSize( buffer ) {\n\t\t\t\t\t\tvar input = new BrotliInput( buffer );\n\t\t\t\t\t\tvar br = new BrotliBitReader( input );\n\t\t\t\t\t\tDecodeWindowBits( br );\n\t\t\t\t\t\tvar out = DecodeMetaBlockLength( br );\n\t\t\t\t\t\treturn out.meta_block_length;\n\t\t\t\t\t}\n\n\t\t\t\t\texports.BrotliDecompressedSize = BrotliDecompressedSize;\n\n\t\t\t\t\tfunction BrotliDecompressBuffer( buffer, output_size ) {\n\t\t\t\t\t\tvar input = new BrotliInput( buffer );\n\n\t\t\t\t\t\tif ( output_size == null ) {\n\t\t\t\t\t\t\toutput_size = BrotliDecompressedSize( buffer );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar output_buffer = new Uint8Array( output_size );\n\t\t\t\t\t\tvar output = new BrotliOutput( output_buffer );\n\n\t\t\t\t\t\tBrotliDecompress( input, output );\n\n\t\t\t\t\t\tif ( output.pos < output.buffer.length ) {\n\t\t\t\t\t\t\toutput.buffer = output.buffer.subarray(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\toutput.pos\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn output.buffer;\n\t\t\t\t\t}\n\n\t\t\t\t\texports.BrotliDecompressBuffer = BrotliDecompressBuffer;\n\n\t\t\t\t\tfunction BrotliDecompress( input, output ) {\n\t\t\t\t\t\tvar i;\n\t\t\t\t\t\tvar pos = 0;\n\t\t\t\t\t\tvar input_end = 0;\n\t\t\t\t\t\tvar window_bits = 0;\n\t\t\t\t\t\tvar max_backward_distance;\n\t\t\t\t\t\tvar max_distance = 0;\n\t\t\t\t\t\tvar ringbuffer_size;\n\t\t\t\t\t\tvar ringbuffer_mask;\n\t\t\t\t\t\tvar ringbuffer;\n\t\t\t\t\t\tvar ringbuffer_end;\n\t\t\t\t\t\t/* This ring buffer holds a few past copy distances that will be used by */\n\t\t\t\t\t\t/* some special distance codes. */\n\t\t\t\t\t\tvar dist_rb = [ 16, 15, 11, 4 ];\n\t\t\t\t\t\tvar dist_rb_idx = 0;\n\t\t\t\t\t\t/* The previous 2 bytes used for context. */\n\t\t\t\t\t\tvar prev_byte1 = 0;\n\t\t\t\t\t\tvar prev_byte2 = 0;\n\t\t\t\t\t\tvar hgroup = [\n\t\t\t\t\t\t\tnew HuffmanTreeGroup( 0, 0 ),\n\t\t\t\t\t\t\tnew HuffmanTreeGroup( 0, 0 ),\n\t\t\t\t\t\t\tnew HuffmanTreeGroup( 0, 0 ),\n\t\t\t\t\t\t];\n\t\t\t\t\t\tvar block_type_trees;\n\t\t\t\t\t\tvar block_len_trees;\n\t\t\t\t\t\tvar br;\n\n\t\t\t\t\t\t/* We need the slack region for the following reasons:\n       - always doing two 8-byte copies for fast backward copying\n       - transforms\n       - flushing the input ringbuffer when decoding uncompressed blocks */\n\t\t\t\t\t\tvar kRingBufferWriteAheadSlack =\n\t\t\t\t\t\t\t128 + BrotliBitReader.READ_SIZE;\n\n\t\t\t\t\t\tbr = new BrotliBitReader( input );\n\n\t\t\t\t\t\t/* Decode window size. */\n\t\t\t\t\t\twindow_bits = DecodeWindowBits( br );\n\t\t\t\t\t\tmax_backward_distance = ( 1 << window_bits ) - 16;\n\n\t\t\t\t\t\tringbuffer_size = 1 << window_bits;\n\t\t\t\t\t\tringbuffer_mask = ringbuffer_size - 1;\n\t\t\t\t\t\tringbuffer = new Uint8Array(\n\t\t\t\t\t\t\tringbuffer_size +\n\t\t\t\t\t\t\t\tkRingBufferWriteAheadSlack +\n\t\t\t\t\t\t\t\tBrotliDictionary.maxDictionaryWordLength\n\t\t\t\t\t\t);\n\t\t\t\t\t\tringbuffer_end = ringbuffer_size;\n\n\t\t\t\t\t\tblock_type_trees = [];\n\t\t\t\t\t\tblock_len_trees = [];\n\t\t\t\t\t\tfor ( var x = 0; x < 3 * HUFFMAN_MAX_TABLE_SIZE; x++ ) {\n\t\t\t\t\t\t\tblock_type_trees[ x ] = new HuffmanCode( 0, 0 );\n\t\t\t\t\t\t\tblock_len_trees[ x ] = new HuffmanCode( 0, 0 );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\twhile ( ! input_end ) {\n\t\t\t\t\t\t\tvar meta_block_remaining_len = 0;\n\t\t\t\t\t\t\tvar is_uncompressed;\n\t\t\t\t\t\t\tvar block_length = [ 1 << 28, 1 << 28, 1 << 28 ];\n\t\t\t\t\t\t\tvar block_type = [ 0 ];\n\t\t\t\t\t\t\tvar num_block_types = [ 1, 1, 1 ];\n\t\t\t\t\t\t\tvar block_type_rb = [ 0, 1, 0, 1, 0, 1 ];\n\t\t\t\t\t\t\tvar block_type_rb_index = [ 0 ];\n\t\t\t\t\t\t\tvar distance_postfix_bits;\n\t\t\t\t\t\t\tvar num_direct_distance_codes;\n\t\t\t\t\t\t\tvar distance_postfix_mask;\n\t\t\t\t\t\t\tvar num_distance_codes;\n\t\t\t\t\t\t\tvar context_map = null;\n\t\t\t\t\t\t\tvar context_modes = null;\n\t\t\t\t\t\t\tvar num_literal_htrees;\n\t\t\t\t\t\t\tvar dist_context_map = null;\n\t\t\t\t\t\t\tvar num_dist_htrees;\n\t\t\t\t\t\t\tvar context_offset = 0;\n\t\t\t\t\t\t\tvar context_map_slice = null;\n\t\t\t\t\t\t\tvar literal_htree_index = 0;\n\t\t\t\t\t\t\tvar dist_context_offset = 0;\n\t\t\t\t\t\t\tvar dist_context_map_slice = null;\n\t\t\t\t\t\t\tvar dist_htree_index = 0;\n\t\t\t\t\t\t\tvar context_lookup_offset1 = 0;\n\t\t\t\t\t\t\tvar context_lookup_offset2 = 0;\n\t\t\t\t\t\t\tvar context_mode;\n\t\t\t\t\t\t\tvar htree_command;\n\n\t\t\t\t\t\t\tfor ( i = 0; i < 3; ++i ) {\n\t\t\t\t\t\t\t\thgroup[ i ].codes = null;\n\t\t\t\t\t\t\t\thgroup[ i ].htrees = null;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tbr.readMoreInput();\n\n\t\t\t\t\t\t\tvar _out = DecodeMetaBlockLength( br );\n\t\t\t\t\t\t\tmeta_block_remaining_len = _out.meta_block_length;\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tpos + meta_block_remaining_len >\n\t\t\t\t\t\t\t\toutput.buffer.length\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t/* We need to grow the output buffer to fit the additional data. */\n\t\t\t\t\t\t\t\tvar tmp = new Uint8Array(\n\t\t\t\t\t\t\t\t\tpos + meta_block_remaining_len\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\ttmp.set( output.buffer );\n\t\t\t\t\t\t\t\toutput.buffer = tmp;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tinput_end = _out.input_end;\n\t\t\t\t\t\t\tis_uncompressed = _out.is_uncompressed;\n\n\t\t\t\t\t\t\tif ( _out.is_metadata ) {\n\t\t\t\t\t\t\t\tJumpToByteBoundary( br );\n\n\t\t\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\t\t\t;\n\t\t\t\t\t\t\t\t\tmeta_block_remaining_len > 0;\n\t\t\t\t\t\t\t\t\t--meta_block_remaining_len\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\tbr.readMoreInput();\n\t\t\t\t\t\t\t\t\t/* Read one byte and ignore it. */\n\t\t\t\t\t\t\t\t\tbr.readBits( 8 );\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( meta_block_remaining_len === 0 ) {\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( is_uncompressed ) {\n\t\t\t\t\t\t\t\tbr.bit_pos_ = ( br.bit_pos_ + 7 ) & ~7;\n\t\t\t\t\t\t\t\tCopyUncompressedBlockToOutput(\n\t\t\t\t\t\t\t\t\toutput,\n\t\t\t\t\t\t\t\t\tmeta_block_remaining_len,\n\t\t\t\t\t\t\t\t\tpos,\n\t\t\t\t\t\t\t\t\tringbuffer,\n\t\t\t\t\t\t\t\t\tringbuffer_mask,\n\t\t\t\t\t\t\t\t\tbr\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tpos += meta_block_remaining_len;\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor ( i = 0; i < 3; ++i ) {\n\t\t\t\t\t\t\t\tnum_block_types[ i ] =\n\t\t\t\t\t\t\t\t\tDecodeVarLenUint8( br ) + 1;\n\t\t\t\t\t\t\t\tif ( num_block_types[ i ] >= 2 ) {\n\t\t\t\t\t\t\t\t\tReadHuffmanCode(\n\t\t\t\t\t\t\t\t\t\tnum_block_types[ i ] + 2,\n\t\t\t\t\t\t\t\t\t\tblock_type_trees,\n\t\t\t\t\t\t\t\t\t\ti * HUFFMAN_MAX_TABLE_SIZE,\n\t\t\t\t\t\t\t\t\t\tbr\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tReadHuffmanCode(\n\t\t\t\t\t\t\t\t\t\tkNumBlockLengthCodes,\n\t\t\t\t\t\t\t\t\t\tblock_len_trees,\n\t\t\t\t\t\t\t\t\t\ti * HUFFMAN_MAX_TABLE_SIZE,\n\t\t\t\t\t\t\t\t\t\tbr\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tblock_length[ i ] = ReadBlockLength(\n\t\t\t\t\t\t\t\t\t\tblock_len_trees,\n\t\t\t\t\t\t\t\t\t\ti * HUFFMAN_MAX_TABLE_SIZE,\n\t\t\t\t\t\t\t\t\t\tbr\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tblock_type_rb_index[ i ] = 1;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tbr.readMoreInput();\n\n\t\t\t\t\t\t\tdistance_postfix_bits = br.readBits( 2 );\n\t\t\t\t\t\t\tnum_direct_distance_codes =\n\t\t\t\t\t\t\t\tNUM_DISTANCE_SHORT_CODES +\n\t\t\t\t\t\t\t\t( br.readBits( 4 ) << distance_postfix_bits );\n\t\t\t\t\t\t\tdistance_postfix_mask =\n\t\t\t\t\t\t\t\t( 1 << distance_postfix_bits ) - 1;\n\t\t\t\t\t\t\tnum_distance_codes =\n\t\t\t\t\t\t\t\tnum_direct_distance_codes +\n\t\t\t\t\t\t\t\t( 48 << distance_postfix_bits );\n\t\t\t\t\t\t\tcontext_modes = new Uint8Array(\n\t\t\t\t\t\t\t\tnum_block_types[ 0 ]\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tfor ( i = 0; i < num_block_types[ 0 ]; ++i ) {\n\t\t\t\t\t\t\t\tbr.readMoreInput();\n\t\t\t\t\t\t\t\tcontext_modes[ i ] = br.readBits( 2 ) << 1;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tvar _o1 = DecodeContextMap(\n\t\t\t\t\t\t\t\tnum_block_types[ 0 ] << kLiteralContextBits,\n\t\t\t\t\t\t\t\tbr\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tnum_literal_htrees = _o1.num_htrees;\n\t\t\t\t\t\t\tcontext_map = _o1.context_map;\n\n\t\t\t\t\t\t\tvar _o2 = DecodeContextMap(\n\t\t\t\t\t\t\t\tnum_block_types[ 2 ] << kDistanceContextBits,\n\t\t\t\t\t\t\t\tbr\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tnum_dist_htrees = _o2.num_htrees;\n\t\t\t\t\t\t\tdist_context_map = _o2.context_map;\n\n\t\t\t\t\t\t\thgroup[ 0 ] = new HuffmanTreeGroup(\n\t\t\t\t\t\t\t\tkNumLiteralCodes,\n\t\t\t\t\t\t\t\tnum_literal_htrees\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\thgroup[ 1 ] = new HuffmanTreeGroup(\n\t\t\t\t\t\t\t\tkNumInsertAndCopyCodes,\n\t\t\t\t\t\t\t\tnum_block_types[ 1 ]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\thgroup[ 2 ] = new HuffmanTreeGroup(\n\t\t\t\t\t\t\t\tnum_distance_codes,\n\t\t\t\t\t\t\t\tnum_dist_htrees\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tfor ( i = 0; i < 3; ++i ) {\n\t\t\t\t\t\t\t\thgroup[ i ].decode( br );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tcontext_map_slice = 0;\n\t\t\t\t\t\t\tdist_context_map_slice = 0;\n\t\t\t\t\t\t\tcontext_mode = context_modes[ block_type[ 0 ] ];\n\t\t\t\t\t\t\tcontext_lookup_offset1 =\n\t\t\t\t\t\t\t\tContext.lookupOffsets[ context_mode ];\n\t\t\t\t\t\t\tcontext_lookup_offset2 =\n\t\t\t\t\t\t\t\tContext.lookupOffsets[ context_mode + 1 ];\n\t\t\t\t\t\t\thtree_command = hgroup[ 1 ].htrees[ 0 ];\n\n\t\t\t\t\t\t\twhile ( meta_block_remaining_len > 0 ) {\n\t\t\t\t\t\t\t\tvar cmd_code;\n\t\t\t\t\t\t\t\tvar range_idx;\n\t\t\t\t\t\t\t\tvar insert_code;\n\t\t\t\t\t\t\t\tvar copy_code;\n\t\t\t\t\t\t\t\tvar insert_length;\n\t\t\t\t\t\t\t\tvar copy_length;\n\t\t\t\t\t\t\t\tvar distance_code;\n\t\t\t\t\t\t\t\tvar distance;\n\t\t\t\t\t\t\t\tvar context;\n\t\t\t\t\t\t\t\tvar j;\n\t\t\t\t\t\t\t\tvar copy_dst;\n\n\t\t\t\t\t\t\t\tbr.readMoreInput();\n\n\t\t\t\t\t\t\t\tif ( block_length[ 1 ] === 0 ) {\n\t\t\t\t\t\t\t\t\tDecodeBlockType(\n\t\t\t\t\t\t\t\t\t\tnum_block_types[ 1 ],\n\t\t\t\t\t\t\t\t\t\tblock_type_trees,\n\t\t\t\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t\t\t\tblock_type,\n\t\t\t\t\t\t\t\t\t\tblock_type_rb,\n\t\t\t\t\t\t\t\t\t\tblock_type_rb_index,\n\t\t\t\t\t\t\t\t\t\tbr\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tblock_length[ 1 ] = ReadBlockLength(\n\t\t\t\t\t\t\t\t\t\tblock_len_trees,\n\t\t\t\t\t\t\t\t\t\tHUFFMAN_MAX_TABLE_SIZE,\n\t\t\t\t\t\t\t\t\t\tbr\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\thtree_command =\n\t\t\t\t\t\t\t\t\t\thgroup[ 1 ].htrees[ block_type[ 1 ] ];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t--block_length[ 1 ];\n\t\t\t\t\t\t\t\tcmd_code = ReadSymbol(\n\t\t\t\t\t\t\t\t\thgroup[ 1 ].codes,\n\t\t\t\t\t\t\t\t\thtree_command,\n\t\t\t\t\t\t\t\t\tbr\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\trange_idx = cmd_code >> 6;\n\t\t\t\t\t\t\t\tif ( range_idx >= 2 ) {\n\t\t\t\t\t\t\t\t\trange_idx -= 2;\n\t\t\t\t\t\t\t\t\tdistance_code = -1;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tdistance_code = 0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tinsert_code =\n\t\t\t\t\t\t\t\t\tPrefix.kInsertRangeLut[ range_idx ] +\n\t\t\t\t\t\t\t\t\t( ( cmd_code >> 3 ) & 7 );\n\t\t\t\t\t\t\t\tcopy_code =\n\t\t\t\t\t\t\t\t\tPrefix.kCopyRangeLut[ range_idx ] +\n\t\t\t\t\t\t\t\t\t( cmd_code & 7 );\n\t\t\t\t\t\t\t\tinsert_length =\n\t\t\t\t\t\t\t\t\tPrefix.kInsertLengthPrefixCode[\n\t\t\t\t\t\t\t\t\t\tinsert_code\n\t\t\t\t\t\t\t\t\t].offset +\n\t\t\t\t\t\t\t\t\tbr.readBits(\n\t\t\t\t\t\t\t\t\t\tPrefix.kInsertLengthPrefixCode[\n\t\t\t\t\t\t\t\t\t\t\tinsert_code\n\t\t\t\t\t\t\t\t\t\t].nbits\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tcopy_length =\n\t\t\t\t\t\t\t\t\tPrefix.kCopyLengthPrefixCode[ copy_code ]\n\t\t\t\t\t\t\t\t\t\t.offset +\n\t\t\t\t\t\t\t\t\tbr.readBits(\n\t\t\t\t\t\t\t\t\t\tPrefix.kCopyLengthPrefixCode[\n\t\t\t\t\t\t\t\t\t\t\tcopy_code\n\t\t\t\t\t\t\t\t\t\t].nbits\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tprev_byte1 =\n\t\t\t\t\t\t\t\t\tringbuffer[ ( pos - 1 ) & ringbuffer_mask ];\n\t\t\t\t\t\t\t\tprev_byte2 =\n\t\t\t\t\t\t\t\t\tringbuffer[ ( pos - 2 ) & ringbuffer_mask ];\n\t\t\t\t\t\t\t\tfor ( j = 0; j < insert_length; ++j ) {\n\t\t\t\t\t\t\t\t\tbr.readMoreInput();\n\n\t\t\t\t\t\t\t\t\tif ( block_length[ 0 ] === 0 ) {\n\t\t\t\t\t\t\t\t\t\tDecodeBlockType(\n\t\t\t\t\t\t\t\t\t\t\tnum_block_types[ 0 ],\n\t\t\t\t\t\t\t\t\t\t\tblock_type_trees,\n\t\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\t\tblock_type,\n\t\t\t\t\t\t\t\t\t\t\tblock_type_rb,\n\t\t\t\t\t\t\t\t\t\t\tblock_type_rb_index,\n\t\t\t\t\t\t\t\t\t\t\tbr\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tblock_length[ 0 ] = ReadBlockLength(\n\t\t\t\t\t\t\t\t\t\t\tblock_len_trees,\n\t\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\t\tbr\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tcontext_offset =\n\t\t\t\t\t\t\t\t\t\t\tblock_type[ 0 ] <<\n\t\t\t\t\t\t\t\t\t\t\tkLiteralContextBits;\n\t\t\t\t\t\t\t\t\t\tcontext_map_slice = context_offset;\n\t\t\t\t\t\t\t\t\t\tcontext_mode =\n\t\t\t\t\t\t\t\t\t\t\tcontext_modes[ block_type[ 0 ] ];\n\t\t\t\t\t\t\t\t\t\tcontext_lookup_offset1 =\n\t\t\t\t\t\t\t\t\t\t\tContext.lookupOffsets[\n\t\t\t\t\t\t\t\t\t\t\t\tcontext_mode\n\t\t\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\t\tcontext_lookup_offset2 =\n\t\t\t\t\t\t\t\t\t\t\tContext.lookupOffsets[\n\t\t\t\t\t\t\t\t\t\t\t\tcontext_mode + 1\n\t\t\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcontext =\n\t\t\t\t\t\t\t\t\t\tContext.lookup[\n\t\t\t\t\t\t\t\t\t\t\tcontext_lookup_offset1 + prev_byte1\n\t\t\t\t\t\t\t\t\t\t] |\n\t\t\t\t\t\t\t\t\t\tContext.lookup[\n\t\t\t\t\t\t\t\t\t\t\tcontext_lookup_offset2 + prev_byte2\n\t\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\tliteral_htree_index =\n\t\t\t\t\t\t\t\t\t\tcontext_map[\n\t\t\t\t\t\t\t\t\t\t\tcontext_map_slice + context\n\t\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\t--block_length[ 0 ];\n\t\t\t\t\t\t\t\t\tprev_byte2 = prev_byte1;\n\t\t\t\t\t\t\t\t\tprev_byte1 = ReadSymbol(\n\t\t\t\t\t\t\t\t\t\thgroup[ 0 ].codes,\n\t\t\t\t\t\t\t\t\t\thgroup[ 0 ].htrees[\n\t\t\t\t\t\t\t\t\t\t\tliteral_htree_index\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\tbr\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tringbuffer[ pos & ringbuffer_mask ] =\n\t\t\t\t\t\t\t\t\t\tprev_byte1;\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t( pos & ringbuffer_mask ) ===\n\t\t\t\t\t\t\t\t\t\tringbuffer_mask\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\toutput.write(\n\t\t\t\t\t\t\t\t\t\t\tringbuffer,\n\t\t\t\t\t\t\t\t\t\t\tringbuffer_size\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t++pos;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tmeta_block_remaining_len -= insert_length;\n\t\t\t\t\t\t\t\tif ( meta_block_remaining_len <= 0 ) break;\n\n\t\t\t\t\t\t\t\tif ( distance_code < 0 ) {\n\t\t\t\t\t\t\t\t\tvar context;\n\n\t\t\t\t\t\t\t\t\tbr.readMoreInput();\n\t\t\t\t\t\t\t\t\tif ( block_length[ 2 ] === 0 ) {\n\t\t\t\t\t\t\t\t\t\tDecodeBlockType(\n\t\t\t\t\t\t\t\t\t\t\tnum_block_types[ 2 ],\n\t\t\t\t\t\t\t\t\t\t\tblock_type_trees,\n\t\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\t\tblock_type,\n\t\t\t\t\t\t\t\t\t\t\tblock_type_rb,\n\t\t\t\t\t\t\t\t\t\t\tblock_type_rb_index,\n\t\t\t\t\t\t\t\t\t\t\tbr\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tblock_length[ 2 ] = ReadBlockLength(\n\t\t\t\t\t\t\t\t\t\t\tblock_len_trees,\n\t\t\t\t\t\t\t\t\t\t\t2 * HUFFMAN_MAX_TABLE_SIZE,\n\t\t\t\t\t\t\t\t\t\t\tbr\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tdist_context_offset =\n\t\t\t\t\t\t\t\t\t\t\tblock_type[ 2 ] <<\n\t\t\t\t\t\t\t\t\t\t\tkDistanceContextBits;\n\t\t\t\t\t\t\t\t\t\tdist_context_map_slice =\n\t\t\t\t\t\t\t\t\t\t\tdist_context_offset;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t--block_length[ 2 ];\n\t\t\t\t\t\t\t\t\tcontext =\n\t\t\t\t\t\t\t\t\t\t( copy_length > 4\n\t\t\t\t\t\t\t\t\t\t\t? 3\n\t\t\t\t\t\t\t\t\t\t\t: copy_length - 2 ) & 0xff;\n\t\t\t\t\t\t\t\t\tdist_htree_index =\n\t\t\t\t\t\t\t\t\t\tdist_context_map[\n\t\t\t\t\t\t\t\t\t\t\tdist_context_map_slice + context\n\t\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\tdistance_code = ReadSymbol(\n\t\t\t\t\t\t\t\t\t\thgroup[ 2 ].codes,\n\t\t\t\t\t\t\t\t\t\thgroup[ 2 ].htrees[ dist_htree_index ],\n\t\t\t\t\t\t\t\t\t\tbr\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\tdistance_code >=\n\t\t\t\t\t\t\t\t\t\tnum_direct_distance_codes\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tvar nbits;\n\t\t\t\t\t\t\t\t\t\tvar postfix;\n\t\t\t\t\t\t\t\t\t\tvar offset;\n\t\t\t\t\t\t\t\t\t\tdistance_code -=\n\t\t\t\t\t\t\t\t\t\t\tnum_direct_distance_codes;\n\t\t\t\t\t\t\t\t\t\tpostfix =\n\t\t\t\t\t\t\t\t\t\t\tdistance_code &\n\t\t\t\t\t\t\t\t\t\t\tdistance_postfix_mask;\n\t\t\t\t\t\t\t\t\t\tdistance_code >>= distance_postfix_bits;\n\t\t\t\t\t\t\t\t\t\tnbits = ( distance_code >> 1 ) + 1;\n\t\t\t\t\t\t\t\t\t\toffset =\n\t\t\t\t\t\t\t\t\t\t\t( ( 2 + ( distance_code & 1 ) ) <<\n\t\t\t\t\t\t\t\t\t\t\t\tnbits ) -\n\t\t\t\t\t\t\t\t\t\t\t4;\n\t\t\t\t\t\t\t\t\t\tdistance_code =\n\t\t\t\t\t\t\t\t\t\t\tnum_direct_distance_codes +\n\t\t\t\t\t\t\t\t\t\t\t( ( offset +\n\t\t\t\t\t\t\t\t\t\t\t\tbr.readBits( nbits ) ) <<\n\t\t\t\t\t\t\t\t\t\t\t\tdistance_postfix_bits ) +\n\t\t\t\t\t\t\t\t\t\t\tpostfix;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t/* Convert the distance code to the actual distance by possibly looking */\n\t\t\t\t\t\t\t\t/* up past distnaces from the ringbuffer. */\n\t\t\t\t\t\t\t\tdistance = TranslateShortCodes(\n\t\t\t\t\t\t\t\t\tdistance_code,\n\t\t\t\t\t\t\t\t\tdist_rb,\n\t\t\t\t\t\t\t\t\tdist_rb_idx\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif ( distance < 0 ) {\n\t\t\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t\t\t'[BrotliDecompress] invalid distance'\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\tpos < max_backward_distance &&\n\t\t\t\t\t\t\t\t\tmax_distance !== max_backward_distance\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\tmax_distance = pos;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tmax_distance = max_backward_distance;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tcopy_dst = pos & ringbuffer_mask;\n\n\t\t\t\t\t\t\t\tif ( distance > max_distance ) {\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\tcopy_length >=\n\t\t\t\t\t\t\t\t\t\t\tBrotliDictionary.minDictionaryWordLength &&\n\t\t\t\t\t\t\t\t\t\tcopy_length <=\n\t\t\t\t\t\t\t\t\t\t\tBrotliDictionary.maxDictionaryWordLength\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tvar offset =\n\t\t\t\t\t\t\t\t\t\t\tBrotliDictionary.offsetsByLength[\n\t\t\t\t\t\t\t\t\t\t\t\tcopy_length\n\t\t\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\t\tvar word_id =\n\t\t\t\t\t\t\t\t\t\t\tdistance - max_distance - 1;\n\t\t\t\t\t\t\t\t\t\tvar shift =\n\t\t\t\t\t\t\t\t\t\t\tBrotliDictionary.sizeBitsByLength[\n\t\t\t\t\t\t\t\t\t\t\t\tcopy_length\n\t\t\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\t\tvar mask = ( 1 << shift ) - 1;\n\t\t\t\t\t\t\t\t\t\tvar word_idx = word_id & mask;\n\t\t\t\t\t\t\t\t\t\tvar transform_idx = word_id >> shift;\n\t\t\t\t\t\t\t\t\t\toffset += word_idx * copy_length;\n\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\ttransform_idx <\n\t\t\t\t\t\t\t\t\t\t\tTransform.kNumTransforms\n\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\tvar len =\n\t\t\t\t\t\t\t\t\t\t\t\tTransform.transformDictionaryWord(\n\t\t\t\t\t\t\t\t\t\t\t\t\tringbuffer,\n\t\t\t\t\t\t\t\t\t\t\t\t\tcopy_dst,\n\t\t\t\t\t\t\t\t\t\t\t\t\toffset,\n\t\t\t\t\t\t\t\t\t\t\t\t\tcopy_length,\n\t\t\t\t\t\t\t\t\t\t\t\t\ttransform_idx\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\tcopy_dst += len;\n\t\t\t\t\t\t\t\t\t\t\tpos += len;\n\t\t\t\t\t\t\t\t\t\t\tmeta_block_remaining_len -= len;\n\t\t\t\t\t\t\t\t\t\t\tif ( copy_dst >= ringbuffer_end ) {\n\t\t\t\t\t\t\t\t\t\t\t\toutput.write(\n\t\t\t\t\t\t\t\t\t\t\t\t\tringbuffer,\n\t\t\t\t\t\t\t\t\t\t\t\t\tringbuffer_size\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar _x = 0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t_x <\n\t\t\t\t\t\t\t\t\t\t\t\t\tcopy_dst - ringbuffer_end;\n\t\t\t\t\t\t\t\t\t\t\t\t\t_x++\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\tringbuffer[ _x ] =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tringbuffer[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tringbuffer_end + _x\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t\t\t\t\t'Invalid backward reference. pos: ' +\n\t\t\t\t\t\t\t\t\t\t\t\t\tpos +\n\t\t\t\t\t\t\t\t\t\t\t\t\t' distance: ' +\n\t\t\t\t\t\t\t\t\t\t\t\t\tdistance +\n\t\t\t\t\t\t\t\t\t\t\t\t\t' len: ' +\n\t\t\t\t\t\t\t\t\t\t\t\t\tcopy_length +\n\t\t\t\t\t\t\t\t\t\t\t\t\t' bytes left: ' +\n\t\t\t\t\t\t\t\t\t\t\t\t\tmeta_block_remaining_len\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t\t\t\t'Invalid backward reference. pos: ' +\n\t\t\t\t\t\t\t\t\t\t\t\tpos +\n\t\t\t\t\t\t\t\t\t\t\t\t' distance: ' +\n\t\t\t\t\t\t\t\t\t\t\t\tdistance +\n\t\t\t\t\t\t\t\t\t\t\t\t' len: ' +\n\t\t\t\t\t\t\t\t\t\t\t\tcopy_length +\n\t\t\t\t\t\t\t\t\t\t\t\t' bytes left: ' +\n\t\t\t\t\t\t\t\t\t\t\t\tmeta_block_remaining_len\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tif ( distance_code > 0 ) {\n\t\t\t\t\t\t\t\t\t\tdist_rb[ dist_rb_idx & 3 ] = distance;\n\t\t\t\t\t\t\t\t\t\t++dist_rb_idx;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\tcopy_length > meta_block_remaining_len\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t\t\t\t'Invalid backward reference. pos: ' +\n\t\t\t\t\t\t\t\t\t\t\t\tpos +\n\t\t\t\t\t\t\t\t\t\t\t\t' distance: ' +\n\t\t\t\t\t\t\t\t\t\t\t\tdistance +\n\t\t\t\t\t\t\t\t\t\t\t\t' len: ' +\n\t\t\t\t\t\t\t\t\t\t\t\tcopy_length +\n\t\t\t\t\t\t\t\t\t\t\t\t' bytes left: ' +\n\t\t\t\t\t\t\t\t\t\t\t\tmeta_block_remaining_len\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tfor ( j = 0; j < copy_length; ++j ) {\n\t\t\t\t\t\t\t\t\t\tringbuffer[ pos & ringbuffer_mask ] =\n\t\t\t\t\t\t\t\t\t\t\tringbuffer[\n\t\t\t\t\t\t\t\t\t\t\t\t( pos - distance ) &\n\t\t\t\t\t\t\t\t\t\t\t\t\tringbuffer_mask\n\t\t\t\t\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t( pos & ringbuffer_mask ) ===\n\t\t\t\t\t\t\t\t\t\t\tringbuffer_mask\n\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\toutput.write(\n\t\t\t\t\t\t\t\t\t\t\t\tringbuffer,\n\t\t\t\t\t\t\t\t\t\t\t\tringbuffer_size\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t++pos;\n\t\t\t\t\t\t\t\t\t\t--meta_block_remaining_len;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t/* When we get here, we must have inserted at least one literal and */\n\t\t\t\t\t\t\t\t/* made a copy of at least length two, therefore accessing the last 2 */\n\t\t\t\t\t\t\t\t/* bytes is valid. */\n\t\t\t\t\t\t\t\tprev_byte1 =\n\t\t\t\t\t\t\t\t\tringbuffer[ ( pos - 1 ) & ringbuffer_mask ];\n\t\t\t\t\t\t\t\tprev_byte2 =\n\t\t\t\t\t\t\t\t\tringbuffer[ ( pos - 2 ) & ringbuffer_mask ];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t/* Protect pos from overflow, wrap it around at every GB of input data */\n\t\t\t\t\t\t\tpos &= 0x3fffffff;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\toutput.write( ringbuffer, pos & ringbuffer_mask );\n\t\t\t\t\t}\n\n\t\t\t\t\texports.BrotliDecompress = BrotliDecompress;\n\n\t\t\t\t\tBrotliDictionary.init();\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t'./bit_reader': 1,\n\t\t\t\t\t'./context': 2,\n\t\t\t\t\t'./dictionary': 6,\n\t\t\t\t\t'./huffman': 7,\n\t\t\t\t\t'./prefix': 9,\n\t\t\t\t\t'./streams': 10,\n\t\t\t\t\t'./transform': 11,\n\t\t\t\t},\n\t\t\t],\n\t\t\t4: [\n\t\t\t\tfunction ( require, module, exports ) {\n\t\t\t\t\tvar base64 = require( 'base64-js' );\n\t\t\t\t\t//var fs = require('fs');\n\n\t\t\t\t\t/**\n\t\t\t\t\t * The normal dictionary-data.js is quite large, which makes it\n\t\t\t\t\t * unsuitable for browser usage. In order to make it smaller,\n\t\t\t\t\t * we read dictionary.bin, which is a compressed version of\n\t\t\t\t\t * the dictionary, and on initial load, Brotli decompresses\n\t\t\t\t\t * it's own dictionary. 😜\n\t\t\t\t\t */\n\t\t\t\t\texports.init = function () {\n\t\t\t\t\t\tvar BrotliDecompressBuffer =\n\t\t\t\t\t\t\trequire( './decode' ).BrotliDecompressBuffer;\n\t\t\t\t\t\tvar compressed = base64.toByteArray(\n\t\t\t\t\t\t\trequire( './dictionary.bin.js' )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn BrotliDecompressBuffer( compressed );\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t{ './decode': 3, './dictionary.bin.js': 5, 'base64-js': 8 },\n\t\t\t],\n\t\t\t5: [\n\t\t\t\tfunction ( require, module, exports ) {\n\t\t\t\t\tmodule.exports =\n\t\t\t\t\t\t'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';\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t],\n\t\t\t6: [\n\t\t\t\tfunction ( require, module, exports ) {\n\t\t\t\t\t/* Copyright 2013 Google Inc. All Rights Reserved.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n\n   Collection of static dictionary words.\n*/\n\n\t\t\t\t\tvar data = require( './dictionary-browser' );\n\t\t\t\t\texports.init = function () {\n\t\t\t\t\t\texports.dictionary = data.init();\n\t\t\t\t\t};\n\n\t\t\t\t\texports.offsetsByLength = new Uint32Array( [\n\t\t\t\t\t\t0, 0, 0, 0, 0, 4096, 9216, 21504, 35840, 44032, 53248,\n\t\t\t\t\t\t63488, 74752, 87040, 93696, 100864, 104704, 106752,\n\t\t\t\t\t\t108928, 113536, 115968, 118528, 119872, 121280, 122016,\n\t\t\t\t\t] );\n\n\t\t\t\t\texports.sizeBitsByLength = new Uint8Array( [\n\t\t\t\t\t\t0, 0, 0, 0, 10, 10, 11, 11, 10, 10, 10, 10, 10, 9, 9, 8,\n\t\t\t\t\t\t7, 7, 8, 7, 7, 6, 6, 5, 5,\n\t\t\t\t\t] );\n\n\t\t\t\t\texports.minDictionaryWordLength = 4;\n\t\t\t\t\texports.maxDictionaryWordLength = 24;\n\t\t\t\t},\n\t\t\t\t{ './dictionary-browser': 4 },\n\t\t\t],\n\t\t\t7: [\n\t\t\t\tfunction ( require, module, exports ) {\n\t\t\t\t\tfunction HuffmanCode( bits, value ) {\n\t\t\t\t\t\tthis.bits =\n\t\t\t\t\t\t\tbits; /* number of bits used for this symbol */\n\t\t\t\t\t\tthis.value = value; /* symbol value or table offset */\n\t\t\t\t\t}\n\n\t\t\t\t\texports.HuffmanCode = HuffmanCode;\n\n\t\t\t\t\tvar MAX_LENGTH = 15;\n\n\t\t\t\t\t/* Returns reverse(reverse(key, len) + 1, len), where reverse(key, len) is the\n   bit-wise reversal of the len least significant bits of key. */\n\t\t\t\t\tfunction GetNextKey( key, len ) {\n\t\t\t\t\t\tvar step = 1 << ( len - 1 );\n\t\t\t\t\t\twhile ( key & step ) {\n\t\t\t\t\t\t\tstep >>= 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn ( key & ( step - 1 ) ) + step;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* Stores code in table[0], table[step], table[2*step], ..., table[end] */\n\t\t\t\t\t/* Assumes that end is an integer multiple of step */\n\t\t\t\t\tfunction ReplicateValue( table, i, step, end, code ) {\n\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\tend -= step;\n\t\t\t\t\t\t\ttable[ i + end ] = new HuffmanCode(\n\t\t\t\t\t\t\t\tcode.bits,\n\t\t\t\t\t\t\t\tcode.value\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} while ( end > 0 );\n\t\t\t\t\t}\n\n\t\t\t\t\t/* Returns the table width of the next 2nd level table. count is the histogram\n   of bit lengths for the remaining symbols, len is the code length of the next\n   processed symbol */\n\t\t\t\t\tfunction NextTableBitSize( count, len, root_bits ) {\n\t\t\t\t\t\tvar left = 1 << ( len - root_bits );\n\t\t\t\t\t\twhile ( len < MAX_LENGTH ) {\n\t\t\t\t\t\t\tleft -= count[ len ];\n\t\t\t\t\t\t\tif ( left <= 0 ) break;\n\t\t\t\t\t\t\t++len;\n\t\t\t\t\t\t\tleft <<= 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn len - root_bits;\n\t\t\t\t\t}\n\n\t\t\t\t\texports.BrotliBuildHuffmanTable = function (\n\t\t\t\t\t\troot_table,\n\t\t\t\t\t\ttable,\n\t\t\t\t\t\troot_bits,\n\t\t\t\t\t\tcode_lengths,\n\t\t\t\t\t\tcode_lengths_size\n\t\t\t\t\t) {\n\t\t\t\t\t\tvar start_table = table;\n\t\t\t\t\t\tvar code; /* current table entry */\n\t\t\t\t\t\tvar len; /* current code length */\n\t\t\t\t\t\tvar symbol; /* symbol index in original or sorted table */\n\t\t\t\t\t\tvar key; /* reversed prefix code */\n\t\t\t\t\t\tvar step; /* step size to replicate values in current table */\n\t\t\t\t\t\tvar low; /* low bits for current root entry */\n\t\t\t\t\t\tvar mask; /* mask for low bits */\n\t\t\t\t\t\tvar table_bits; /* key length of current table */\n\t\t\t\t\t\tvar table_size; /* size of current table */\n\t\t\t\t\t\tvar total_size; /* sum of root table size and 2nd level table sizes */\n\t\t\t\t\t\tvar sorted; /* symbols sorted by code length */\n\t\t\t\t\t\tvar count = new Int32Array(\n\t\t\t\t\t\t\tMAX_LENGTH + 1\n\t\t\t\t\t\t); /* number of codes of each length */\n\t\t\t\t\t\tvar offset = new Int32Array(\n\t\t\t\t\t\t\tMAX_LENGTH + 1\n\t\t\t\t\t\t); /* offsets in sorted table for each length */\n\n\t\t\t\t\t\tsorted = new Int32Array( code_lengths_size );\n\n\t\t\t\t\t\t/* build histogram of code lengths */\n\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\tsymbol = 0;\n\t\t\t\t\t\t\tsymbol < code_lengths_size;\n\t\t\t\t\t\t\tsymbol++\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tcount[ code_lengths[ symbol ] ]++;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* generate offsets into sorted symbol table by code length */\n\t\t\t\t\t\toffset[ 1 ] = 0;\n\t\t\t\t\t\tfor ( len = 1; len < MAX_LENGTH; len++ ) {\n\t\t\t\t\t\t\toffset[ len + 1 ] = offset[ len ] + count[ len ];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* sort symbols by length, by symbol order within each length */\n\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\tsymbol = 0;\n\t\t\t\t\t\t\tsymbol < code_lengths_size;\n\t\t\t\t\t\t\tsymbol++\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tif ( code_lengths[ symbol ] !== 0 ) {\n\t\t\t\t\t\t\t\tsorted[ offset[ code_lengths[ symbol ] ]++ ] =\n\t\t\t\t\t\t\t\t\tsymbol;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ttable_bits = root_bits;\n\t\t\t\t\t\ttable_size = 1 << table_bits;\n\t\t\t\t\t\ttotal_size = table_size;\n\n\t\t\t\t\t\t/* special case code with only one value */\n\t\t\t\t\t\tif ( offset[ MAX_LENGTH ] === 1 ) {\n\t\t\t\t\t\t\tfor ( key = 0; key < total_size; ++key ) {\n\t\t\t\t\t\t\t\troot_table[ table + key ] = new HuffmanCode(\n\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\tsorted[ 0 ] & 0xffff\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn total_size;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* fill in root table */\n\t\t\t\t\t\tkey = 0;\n\t\t\t\t\t\tsymbol = 0;\n\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\tlen = 1, step = 2;\n\t\t\t\t\t\t\tlen <= root_bits;\n\t\t\t\t\t\t\t++len, step <<= 1\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tfor ( ; count[ len ] > 0; --count[ len ] ) {\n\t\t\t\t\t\t\t\tcode = new HuffmanCode(\n\t\t\t\t\t\t\t\t\tlen & 0xff,\n\t\t\t\t\t\t\t\t\tsorted[ symbol++ ] & 0xffff\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tReplicateValue(\n\t\t\t\t\t\t\t\t\troot_table,\n\t\t\t\t\t\t\t\t\ttable + key,\n\t\t\t\t\t\t\t\t\tstep,\n\t\t\t\t\t\t\t\t\ttable_size,\n\t\t\t\t\t\t\t\t\tcode\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tkey = GetNextKey( key, len );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* fill in 2nd level tables and add pointers to root table */\n\t\t\t\t\t\tmask = total_size - 1;\n\t\t\t\t\t\tlow = -1;\n\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\tlen = root_bits + 1, step = 2;\n\t\t\t\t\t\t\tlen <= MAX_LENGTH;\n\t\t\t\t\t\t\t++len, step <<= 1\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tfor ( ; count[ len ] > 0; --count[ len ] ) {\n\t\t\t\t\t\t\t\tif ( ( key & mask ) !== low ) {\n\t\t\t\t\t\t\t\t\ttable += table_size;\n\t\t\t\t\t\t\t\t\ttable_bits = NextTableBitSize(\n\t\t\t\t\t\t\t\t\t\tcount,\n\t\t\t\t\t\t\t\t\t\tlen,\n\t\t\t\t\t\t\t\t\t\troot_bits\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\ttable_size = 1 << table_bits;\n\t\t\t\t\t\t\t\t\ttotal_size += table_size;\n\t\t\t\t\t\t\t\t\tlow = key & mask;\n\t\t\t\t\t\t\t\t\troot_table[ start_table + low ] =\n\t\t\t\t\t\t\t\t\t\tnew HuffmanCode(\n\t\t\t\t\t\t\t\t\t\t\t( table_bits + root_bits ) & 0xff,\n\t\t\t\t\t\t\t\t\t\t\t( table - start_table - low ) &\n\t\t\t\t\t\t\t\t\t\t\t\t0xffff\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcode = new HuffmanCode(\n\t\t\t\t\t\t\t\t\t( len - root_bits ) & 0xff,\n\t\t\t\t\t\t\t\t\tsorted[ symbol++ ] & 0xffff\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tReplicateValue(\n\t\t\t\t\t\t\t\t\troot_table,\n\t\t\t\t\t\t\t\t\ttable + ( key >> root_bits ),\n\t\t\t\t\t\t\t\t\tstep,\n\t\t\t\t\t\t\t\t\ttable_size,\n\t\t\t\t\t\t\t\t\tcode\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tkey = GetNextKey( key, len );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn total_size;\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t],\n\t\t\t8: [\n\t\t\t\tfunction ( require, module, exports ) {\n\t\t\t\t\t'use strict';\n\n\t\t\t\t\texports.byteLength = byteLength;\n\t\t\t\t\texports.toByteArray = toByteArray;\n\t\t\t\t\texports.fromByteArray = fromByteArray;\n\n\t\t\t\t\tvar lookup = [];\n\t\t\t\t\tvar revLookup = [];\n\t\t\t\t\tvar Arr =\n\t\t\t\t\t\ttypeof Uint8Array !== 'undefined' ? Uint8Array : Array;\n\n\t\t\t\t\tvar code =\n\t\t\t\t\t\t'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\t\t\t\t\tfor ( var i = 0, len = code.length; i < len; ++i ) {\n\t\t\t\t\t\tlookup[ i ] = code[ i ];\n\t\t\t\t\t\trevLookup[ code.charCodeAt( i ) ] = i;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support decoding URL-safe base64 strings, as Node.js does.\n\t\t\t\t\t// See: https://en.wikipedia.org/wiki/Base64#URL_applications\n\t\t\t\t\trevLookup[ '-'.charCodeAt( 0 ) ] = 62;\n\t\t\t\t\trevLookup[ '_'.charCodeAt( 0 ) ] = 63;\n\n\t\t\t\t\tfunction getLens( b64 ) {\n\t\t\t\t\t\tvar len = b64.length;\n\n\t\t\t\t\t\tif ( len % 4 > 0 ) {\n\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t'Invalid string. Length must be a multiple of 4'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Trim off extra bytes after placeholder bytes are found\n\t\t\t\t\t\t// See: https://github.com/beatgammit/base64-js/issues/42\n\t\t\t\t\t\tvar validLen = b64.indexOf( '=' );\n\t\t\t\t\t\tif ( validLen === -1 ) validLen = len;\n\n\t\t\t\t\t\tvar placeHoldersLen =\n\t\t\t\t\t\t\tvalidLen === len ? 0 : 4 - ( validLen % 4 );\n\n\t\t\t\t\t\treturn [ validLen, placeHoldersLen ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// base64 is 4/3 + up to two characters of the original data\n\t\t\t\t\tfunction byteLength( b64 ) {\n\t\t\t\t\t\tvar lens = getLens( b64 );\n\t\t\t\t\t\tvar validLen = lens[ 0 ];\n\t\t\t\t\t\tvar placeHoldersLen = lens[ 1 ];\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t( ( validLen + placeHoldersLen ) * 3 ) / 4 -\n\t\t\t\t\t\t\tplaceHoldersLen\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction _byteLength( b64, validLen, placeHoldersLen ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t( ( validLen + placeHoldersLen ) * 3 ) / 4 -\n\t\t\t\t\t\t\tplaceHoldersLen\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction toByteArray( b64 ) {\n\t\t\t\t\t\tvar tmp;\n\t\t\t\t\t\tvar lens = getLens( b64 );\n\t\t\t\t\t\tvar validLen = lens[ 0 ];\n\t\t\t\t\t\tvar placeHoldersLen = lens[ 1 ];\n\n\t\t\t\t\t\tvar arr = new Arr(\n\t\t\t\t\t\t\t_byteLength( b64, validLen, placeHoldersLen )\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tvar curByte = 0;\n\n\t\t\t\t\t\t// if there are placeholders, only get up to the last complete 4 chars\n\t\t\t\t\t\tvar len = placeHoldersLen > 0 ? validLen - 4 : validLen;\n\n\t\t\t\t\t\tfor ( var i = 0; i < len; i += 4 ) {\n\t\t\t\t\t\t\ttmp =\n\t\t\t\t\t\t\t\t( revLookup[ b64.charCodeAt( i ) ] << 18 ) |\n\t\t\t\t\t\t\t\t( revLookup[ b64.charCodeAt( i + 1 ) ] << 12 ) |\n\t\t\t\t\t\t\t\t( revLookup[ b64.charCodeAt( i + 2 ) ] << 6 ) |\n\t\t\t\t\t\t\t\trevLookup[ b64.charCodeAt( i + 3 ) ];\n\t\t\t\t\t\t\tarr[ curByte++ ] = ( tmp >> 16 ) & 0xff;\n\t\t\t\t\t\t\tarr[ curByte++ ] = ( tmp >> 8 ) & 0xff;\n\t\t\t\t\t\t\tarr[ curByte++ ] = tmp & 0xff;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( placeHoldersLen === 2 ) {\n\t\t\t\t\t\t\ttmp =\n\t\t\t\t\t\t\t\t( revLookup[ b64.charCodeAt( i ) ] << 2 ) |\n\t\t\t\t\t\t\t\t( revLookup[ b64.charCodeAt( i + 1 ) ] >> 4 );\n\t\t\t\t\t\t\tarr[ curByte++ ] = tmp & 0xff;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( placeHoldersLen === 1 ) {\n\t\t\t\t\t\t\ttmp =\n\t\t\t\t\t\t\t\t( revLookup[ b64.charCodeAt( i ) ] << 10 ) |\n\t\t\t\t\t\t\t\t( revLookup[ b64.charCodeAt( i + 1 ) ] << 4 ) |\n\t\t\t\t\t\t\t\t( revLookup[ b64.charCodeAt( i + 2 ) ] >> 2 );\n\t\t\t\t\t\t\tarr[ curByte++ ] = ( tmp >> 8 ) & 0xff;\n\t\t\t\t\t\t\tarr[ curByte++ ] = tmp & 0xff;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn arr;\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction tripletToBase64( num ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\tlookup[ ( num >> 18 ) & 0x3f ] +\n\t\t\t\t\t\t\tlookup[ ( num >> 12 ) & 0x3f ] +\n\t\t\t\t\t\t\tlookup[ ( num >> 6 ) & 0x3f ] +\n\t\t\t\t\t\t\tlookup[ num & 0x3f ]\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction encodeChunk( uint8, start, end ) {\n\t\t\t\t\t\tvar tmp;\n\t\t\t\t\t\tvar output = [];\n\t\t\t\t\t\tfor ( var i = start; i < end; i += 3 ) {\n\t\t\t\t\t\t\ttmp =\n\t\t\t\t\t\t\t\t( ( uint8[ i ] << 16 ) & 0xff0000 ) +\n\t\t\t\t\t\t\t\t( ( uint8[ i + 1 ] << 8 ) & 0xff00 ) +\n\t\t\t\t\t\t\t\t( uint8[ i + 2 ] & 0xff );\n\t\t\t\t\t\t\toutput.push( tripletToBase64( tmp ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn output.join( '' );\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction fromByteArray( uint8 ) {\n\t\t\t\t\t\tvar tmp;\n\t\t\t\t\t\tvar len = uint8.length;\n\t\t\t\t\t\tvar extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n\t\t\t\t\t\tvar parts = [];\n\t\t\t\t\t\tvar maxChunkLength = 16383; // must be multiple of 3\n\n\t\t\t\t\t\t// go through the array every three bytes, we'll deal with trailing stuff later\n\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\tvar i = 0, len2 = len - extraBytes;\n\t\t\t\t\t\t\ti < len2;\n\t\t\t\t\t\t\ti += maxChunkLength\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tparts.push(\n\t\t\t\t\t\t\t\tencodeChunk(\n\t\t\t\t\t\t\t\t\tuint8,\n\t\t\t\t\t\t\t\t\ti,\n\t\t\t\t\t\t\t\t\ti + maxChunkLength > len2\n\t\t\t\t\t\t\t\t\t\t? len2\n\t\t\t\t\t\t\t\t\t\t: i + maxChunkLength\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// pad the end with zeros, but make sure to not forget the extra bytes\n\t\t\t\t\t\tif ( extraBytes === 1 ) {\n\t\t\t\t\t\t\ttmp = uint8[ len - 1 ];\n\t\t\t\t\t\t\tparts.push(\n\t\t\t\t\t\t\t\tlookup[ tmp >> 2 ] +\n\t\t\t\t\t\t\t\t\tlookup[ ( tmp << 4 ) & 0x3f ] +\n\t\t\t\t\t\t\t\t\t'=='\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( extraBytes === 2 ) {\n\t\t\t\t\t\t\ttmp = ( uint8[ len - 2 ] << 8 ) + uint8[ len - 1 ];\n\t\t\t\t\t\t\tparts.push(\n\t\t\t\t\t\t\t\tlookup[ tmp >> 10 ] +\n\t\t\t\t\t\t\t\t\tlookup[ ( tmp >> 4 ) & 0x3f ] +\n\t\t\t\t\t\t\t\t\tlookup[ ( tmp << 2 ) & 0x3f ] +\n\t\t\t\t\t\t\t\t\t'='\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn parts.join( '' );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t],\n\t\t\t9: [\n\t\t\t\tfunction ( require, module, exports ) {\n\t\t\t\t\t/* Copyright 2013 Google Inc. All Rights Reserved.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n\n   Lookup tables to map prefix codes to value ranges. This is used during\n   decoding of the block lengths, literal insertion lengths and copy lengths.\n*/\n\n\t\t\t\t\t/* Represents the range of values belonging to a prefix code: */\n\t\t\t\t\t/* [offset, offset + 2^nbits) */\n\t\t\t\t\tfunction PrefixCodeRange( offset, nbits ) {\n\t\t\t\t\t\tthis.offset = offset;\n\t\t\t\t\t\tthis.nbits = nbits;\n\t\t\t\t\t}\n\n\t\t\t\t\texports.kBlockLengthPrefixCode = [\n\t\t\t\t\t\tnew PrefixCodeRange( 1, 2 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 5, 2 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 9, 2 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 13, 2 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 17, 3 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 25, 3 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 33, 3 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 41, 3 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 49, 4 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 65, 4 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 81, 4 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 97, 4 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 113, 5 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 145, 5 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 177, 5 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 209, 5 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 241, 6 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 305, 6 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 369, 7 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 497, 8 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 753, 9 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 1265, 10 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 2289, 11 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 4337, 12 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 8433, 13 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 16625, 24 ),\n\t\t\t\t\t];\n\n\t\t\t\t\texports.kInsertLengthPrefixCode = [\n\t\t\t\t\t\tnew PrefixCodeRange( 0, 0 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 1, 0 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 2, 0 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 3, 0 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 4, 0 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 5, 0 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 6, 1 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 8, 1 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 10, 2 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 14, 2 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 18, 3 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 26, 3 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 34, 4 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 50, 4 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 66, 5 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 98, 5 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 130, 6 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 194, 7 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 322, 8 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 578, 9 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 1090, 10 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 2114, 12 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 6210, 14 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 22594, 24 ),\n\t\t\t\t\t];\n\n\t\t\t\t\texports.kCopyLengthPrefixCode = [\n\t\t\t\t\t\tnew PrefixCodeRange( 2, 0 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 3, 0 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 4, 0 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 5, 0 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 6, 0 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 7, 0 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 8, 0 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 9, 0 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 10, 1 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 12, 1 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 14, 2 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 18, 2 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 22, 3 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 30, 3 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 38, 4 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 54, 4 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 70, 5 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 102, 5 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 134, 6 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 198, 7 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 326, 8 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 582, 9 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 1094, 10 ),\n\t\t\t\t\t\tnew PrefixCodeRange( 2118, 24 ),\n\t\t\t\t\t];\n\n\t\t\t\t\texports.kInsertRangeLut = [ 0, 0, 8, 8, 0, 16, 8, 16, 16 ];\n\n\t\t\t\t\texports.kCopyRangeLut = [ 0, 8, 0, 8, 16, 0, 16, 8, 16 ];\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t],\n\t\t\t10: [\n\t\t\t\tfunction ( require, module, exports ) {\n\t\t\t\t\tfunction BrotliInput( buffer ) {\n\t\t\t\t\t\tthis.buffer = buffer;\n\t\t\t\t\t\tthis.pos = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tBrotliInput.prototype.read = function ( buf, i, count ) {\n\t\t\t\t\t\tif ( this.pos + count > this.buffer.length ) {\n\t\t\t\t\t\t\tcount = this.buffer.length - this.pos;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor ( var p = 0; p < count; p++ )\n\t\t\t\t\t\t\tbuf[ i + p ] = this.buffer[ this.pos + p ];\n\n\t\t\t\t\t\tthis.pos += count;\n\t\t\t\t\t\treturn count;\n\t\t\t\t\t};\n\n\t\t\t\t\texports.BrotliInput = BrotliInput;\n\n\t\t\t\t\tfunction BrotliOutput( buf ) {\n\t\t\t\t\t\tthis.buffer = buf;\n\t\t\t\t\t\tthis.pos = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tBrotliOutput.prototype.write = function ( buf, count ) {\n\t\t\t\t\t\tif ( this.pos + count > this.buffer.length )\n\t\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t\t'Output buffer is not large enough'\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\tthis.buffer.set( buf.subarray( 0, count ), this.pos );\n\t\t\t\t\t\tthis.pos += count;\n\t\t\t\t\t\treturn count;\n\t\t\t\t\t};\n\n\t\t\t\t\texports.BrotliOutput = BrotliOutput;\n\t\t\t\t},\n\t\t\t\t{},\n\t\t\t],\n\t\t\t11: [\n\t\t\t\tfunction ( require, module, exports ) {\n\t\t\t\t\t/* Copyright 2013 Google Inc. All Rights Reserved.\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n\n   Transformations on dictionary words.\n*/\n\n\t\t\t\t\tvar BrotliDictionary = require( './dictionary' );\n\n\t\t\t\t\tvar kIdentity = 0;\n\t\t\t\t\tvar kOmitLast1 = 1;\n\t\t\t\t\tvar kOmitLast2 = 2;\n\t\t\t\t\tvar kOmitLast3 = 3;\n\t\t\t\t\tvar kOmitLast4 = 4;\n\t\t\t\t\tvar kOmitLast5 = 5;\n\t\t\t\t\tvar kOmitLast6 = 6;\n\t\t\t\t\tvar kOmitLast7 = 7;\n\t\t\t\t\tvar kOmitLast8 = 8;\n\t\t\t\t\tvar kOmitLast9 = 9;\n\t\t\t\t\tvar kUppercaseFirst = 10;\n\t\t\t\t\tvar kUppercaseAll = 11;\n\t\t\t\t\tvar kOmitFirst1 = 12;\n\t\t\t\t\tvar kOmitFirst2 = 13;\n\t\t\t\t\tvar kOmitFirst3 = 14;\n\t\t\t\t\tvar kOmitFirst4 = 15;\n\t\t\t\t\tvar kOmitFirst5 = 16;\n\t\t\t\t\tvar kOmitFirst6 = 17;\n\t\t\t\t\tvar kOmitFirst7 = 18;\n\t\t\t\t\tvar kOmitFirst8 = 19;\n\t\t\t\t\tvar kOmitFirst9 = 20;\n\n\t\t\t\t\tfunction Transform( prefix, transform, suffix ) {\n\t\t\t\t\t\tthis.prefix = new Uint8Array( prefix.length );\n\t\t\t\t\t\tthis.transform = transform;\n\t\t\t\t\t\tthis.suffix = new Uint8Array( suffix.length );\n\n\t\t\t\t\t\tfor ( var i = 0; i < prefix.length; i++ )\n\t\t\t\t\t\t\tthis.prefix[ i ] = prefix.charCodeAt( i );\n\n\t\t\t\t\t\tfor ( var i = 0; i < suffix.length; i++ )\n\t\t\t\t\t\t\tthis.suffix[ i ] = suffix.charCodeAt( i );\n\t\t\t\t\t}\n\n\t\t\t\t\tvar kTransforms = [\n\t\t\t\t\t\tnew Transform( '', kIdentity, '' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, ' ' ),\n\t\t\t\t\t\tnew Transform( ' ', kIdentity, ' ' ),\n\t\t\t\t\t\tnew Transform( '', kOmitFirst1, '' ),\n\t\t\t\t\t\tnew Transform( '', kUppercaseFirst, ' ' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, ' the ' ),\n\t\t\t\t\t\tnew Transform( ' ', kIdentity, '' ),\n\t\t\t\t\t\tnew Transform( 's ', kIdentity, ' ' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, ' of ' ),\n\t\t\t\t\t\tnew Transform( '', kUppercaseFirst, '' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, ' and ' ),\n\t\t\t\t\t\tnew Transform( '', kOmitFirst2, '' ),\n\t\t\t\t\t\tnew Transform( '', kOmitLast1, '' ),\n\t\t\t\t\t\tnew Transform( ', ', kIdentity, ' ' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, ', ' ),\n\t\t\t\t\t\tnew Transform( ' ', kUppercaseFirst, ' ' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, ' in ' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, ' to ' ),\n\t\t\t\t\t\tnew Transform( 'e ', kIdentity, ' ' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, '\"' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, '.' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, '\">' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, '\\n' ),\n\t\t\t\t\t\tnew Transform( '', kOmitLast3, '' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, ']' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, ' for ' ),\n\t\t\t\t\t\tnew Transform( '', kOmitFirst3, '' ),\n\t\t\t\t\t\tnew Transform( '', kOmitLast2, '' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, ' a ' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, ' that ' ),\n\t\t\t\t\t\tnew Transform( ' ', kUppercaseFirst, '' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, '. ' ),\n\t\t\t\t\t\tnew Transform( '.', kIdentity, '' ),\n\t\t\t\t\t\tnew Transform( ' ', kIdentity, ', ' ),\n\t\t\t\t\t\tnew Transform( '', kOmitFirst4, '' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, ' with ' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, \"'\" ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, ' from ' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, ' by ' ),\n\t\t\t\t\t\tnew Transform( '', kOmitFirst5, '' ),\n\t\t\t\t\t\tnew Transform( '', kOmitFirst6, '' ),\n\t\t\t\t\t\tnew Transform( ' the ', kIdentity, '' ),\n\t\t\t\t\t\tnew Transform( '', kOmitLast4, '' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, '. The ' ),\n\t\t\t\t\t\tnew Transform( '', kUppercaseAll, '' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, ' on ' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, ' as ' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, ' is ' ),\n\t\t\t\t\t\tnew Transform( '', kOmitLast7, '' ),\n\t\t\t\t\t\tnew Transform( '', kOmitLast1, 'ing ' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, '\\n\\t' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, ':' ),\n\t\t\t\t\t\tnew Transform( ' ', kIdentity, '. ' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, 'ed ' ),\n\t\t\t\t\t\tnew Transform( '', kOmitFirst9, '' ),\n\t\t\t\t\t\tnew Transform( '', kOmitFirst7, '' ),\n\t\t\t\t\t\tnew Transform( '', kOmitLast6, '' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, '(' ),\n\t\t\t\t\t\tnew Transform( '', kUppercaseFirst, ', ' ),\n\t\t\t\t\t\tnew Transform( '', kOmitLast8, '' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, ' at ' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, 'ly ' ),\n\t\t\t\t\t\tnew Transform( ' the ', kIdentity, ' of ' ),\n\t\t\t\t\t\tnew Transform( '', kOmitLast5, '' ),\n\t\t\t\t\t\tnew Transform( '', kOmitLast9, '' ),\n\t\t\t\t\t\tnew Transform( ' ', kUppercaseFirst, ', ' ),\n\t\t\t\t\t\tnew Transform( '', kUppercaseFirst, '\"' ),\n\t\t\t\t\t\tnew Transform( '.', kIdentity, '(' ),\n\t\t\t\t\t\tnew Transform( '', kUppercaseAll, ' ' ),\n\t\t\t\t\t\tnew Transform( '', kUppercaseFirst, '\">' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, '=\"' ),\n\t\t\t\t\t\tnew Transform( ' ', kIdentity, '.' ),\n\t\t\t\t\t\tnew Transform( '.com/', kIdentity, '' ),\n\t\t\t\t\t\tnew Transform( ' the ', kIdentity, ' of the ' ),\n\t\t\t\t\t\tnew Transform( '', kUppercaseFirst, \"'\" ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, '. This ' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, ',' ),\n\t\t\t\t\t\tnew Transform( '.', kIdentity, ' ' ),\n\t\t\t\t\t\tnew Transform( '', kUppercaseFirst, '(' ),\n\t\t\t\t\t\tnew Transform( '', kUppercaseFirst, '.' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, ' not ' ),\n\t\t\t\t\t\tnew Transform( ' ', kIdentity, '=\"' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, 'er ' ),\n\t\t\t\t\t\tnew Transform( ' ', kUppercaseAll, ' ' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, 'al ' ),\n\t\t\t\t\t\tnew Transform( ' ', kUppercaseAll, '' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, \"='\" ),\n\t\t\t\t\t\tnew Transform( '', kUppercaseAll, '\"' ),\n\t\t\t\t\t\tnew Transform( '', kUppercaseFirst, '. ' ),\n\t\t\t\t\t\tnew Transform( ' ', kIdentity, '(' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, 'ful ' ),\n\t\t\t\t\t\tnew Transform( ' ', kUppercaseFirst, '. ' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, 'ive ' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, 'less ' ),\n\t\t\t\t\t\tnew Transform( '', kUppercaseAll, \"'\" ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, 'est ' ),\n\t\t\t\t\t\tnew Transform( ' ', kUppercaseFirst, '.' ),\n\t\t\t\t\t\tnew Transform( '', kUppercaseAll, '\">' ),\n\t\t\t\t\t\tnew Transform( ' ', kIdentity, \"='\" ),\n\t\t\t\t\t\tnew Transform( '', kUppercaseFirst, ',' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, 'ize ' ),\n\t\t\t\t\t\tnew Transform( '', kUppercaseAll, '.' ),\n\t\t\t\t\t\tnew Transform( '\\xc2\\xa0', kIdentity, '' ),\n\t\t\t\t\t\tnew Transform( ' ', kIdentity, ',' ),\n\t\t\t\t\t\tnew Transform( '', kUppercaseFirst, '=\"' ),\n\t\t\t\t\t\tnew Transform( '', kUppercaseAll, '=\"' ),\n\t\t\t\t\t\tnew Transform( '', kIdentity, 'ous ' ),\n\t\t\t\t\t\tnew Transform( '', kUppercaseAll, ', ' ),\n\t\t\t\t\t\tnew Transform( '', kUppercaseFirst, \"='\" ),\n\t\t\t\t\t\tnew Transform( ' ', kUppercaseFirst, ',' ),\n\t\t\t\t\t\tnew Transform( ' ', kUppercaseAll, '=\"' ),\n\t\t\t\t\t\tnew Transform( ' ', kUppercaseAll, ', ' ),\n\t\t\t\t\t\tnew Transform( '', kUppercaseAll, ',' ),\n\t\t\t\t\t\tnew Transform( '', kUppercaseAll, '(' ),\n\t\t\t\t\t\tnew Transform( '', kUppercaseAll, '. ' ),\n\t\t\t\t\t\tnew Transform( ' ', kUppercaseAll, '.' ),\n\t\t\t\t\t\tnew Transform( '', kUppercaseAll, \"='\" ),\n\t\t\t\t\t\tnew Transform( ' ', kUppercaseAll, '. ' ),\n\t\t\t\t\t\tnew Transform( ' ', kUppercaseFirst, '=\"' ),\n\t\t\t\t\t\tnew Transform( ' ', kUppercaseAll, \"='\" ),\n\t\t\t\t\t\tnew Transform( ' ', kUppercaseFirst, \"='\" ),\n\t\t\t\t\t];\n\n\t\t\t\t\texports.kTransforms = kTransforms;\n\t\t\t\t\texports.kNumTransforms = kTransforms.length;\n\n\t\t\t\t\tfunction ToUpperCase( p, i ) {\n\t\t\t\t\t\tif ( p[ i ] < 0xc0 ) {\n\t\t\t\t\t\t\tif ( p[ i ] >= 97 && p[ i ] <= 122 ) {\n\t\t\t\t\t\t\t\tp[ i ] ^= 32;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn 1;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* An overly simplified uppercasing model for utf-8. */\n\t\t\t\t\t\tif ( p[ i ] < 0xe0 ) {\n\t\t\t\t\t\t\tp[ i + 1 ] ^= 32;\n\t\t\t\t\t\t\treturn 2;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/* An arbitrary transform for three byte characters. */\n\t\t\t\t\t\tp[ i + 2 ] ^= 5;\n\t\t\t\t\t\treturn 3;\n\t\t\t\t\t}\n\n\t\t\t\t\texports.transformDictionaryWord = function (\n\t\t\t\t\t\tdst,\n\t\t\t\t\t\tidx,\n\t\t\t\t\t\tword,\n\t\t\t\t\t\tlen,\n\t\t\t\t\t\ttransform\n\t\t\t\t\t) {\n\t\t\t\t\t\tvar prefix = kTransforms[ transform ].prefix;\n\t\t\t\t\t\tvar suffix = kTransforms[ transform ].suffix;\n\t\t\t\t\t\tvar t = kTransforms[ transform ].transform;\n\t\t\t\t\t\tvar skip =\n\t\t\t\t\t\t\tt < kOmitFirst1 ? 0 : t - ( kOmitFirst1 - 1 );\n\t\t\t\t\t\tvar i = 0;\n\t\t\t\t\t\tvar start_idx = idx;\n\t\t\t\t\t\tvar uppercase;\n\n\t\t\t\t\t\tif ( skip > len ) {\n\t\t\t\t\t\t\tskip = len;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar prefix_pos = 0;\n\t\t\t\t\t\twhile ( prefix_pos < prefix.length ) {\n\t\t\t\t\t\t\tdst[ idx++ ] = prefix[ prefix_pos++ ];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tword += skip;\n\t\t\t\t\t\tlen -= skip;\n\n\t\t\t\t\t\tif ( t <= kOmitLast9 ) {\n\t\t\t\t\t\t\tlen -= t;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\t\t\tdst[ idx++ ] =\n\t\t\t\t\t\t\t\tBrotliDictionary.dictionary[ word + i ];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tuppercase = idx - len;\n\n\t\t\t\t\t\tif ( t === kUppercaseFirst ) {\n\t\t\t\t\t\t\tToUpperCase( dst, uppercase );\n\t\t\t\t\t\t} else if ( t === kUppercaseAll ) {\n\t\t\t\t\t\t\twhile ( len > 0 ) {\n\t\t\t\t\t\t\t\tvar step = ToUpperCase( dst, uppercase );\n\t\t\t\t\t\t\t\tuppercase += step;\n\t\t\t\t\t\t\t\tlen -= step;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar suffix_pos = 0;\n\t\t\t\t\t\twhile ( suffix_pos < suffix.length ) {\n\t\t\t\t\t\t\tdst[ idx++ ] = suffix[ suffix_pos++ ];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn idx - start_idx;\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t{ './dictionary': 6 },\n\t\t\t],\n\t\t\t12: [\n\t\t\t\tfunction ( require, module, exports ) {\n\t\t\t\t\tmodule.exports =\n\t\t\t\t\t\trequire( './dec/decode' ).BrotliDecompressBuffer;\n\t\t\t\t},\n\t\t\t\t{ './dec/decode': 3 },\n\t\t\t],\n\t\t},\n\t\t{},\n\t\t[ 12 ]\n\t)( 12 );\n} );\n/* eslint-enable */\n","module.exports = window[\"React\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"blocks\"];","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"blockLibrary\"];","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"data\"];","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"deprecated\"];","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"element\"];","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"editor\"];","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"components\"];","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"i18n\"];","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"primitives\"];","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst check = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z\" />\n\t</SVG>\n);\n\nexport default check;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst starFilled = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M11.776 4.454a.25.25 0 01.448 0l2.069 4.192a.25.25 0 00.188.137l4.626.672a.25.25 0 01.139.426l-3.348 3.263a.25.25 0 00-.072.222l.79 4.607a.25.25 0 01-.362.263l-4.138-2.175a.25.25 0 00-.232 0l-4.138 2.175a.25.25 0 01-.363-.263l.79-4.607a.25.25 0 00-.071-.222L4.754 9.881a.25.25 0 01.139-.426l4.626-.672a.25.25 0 00.188-.137l2.069-4.192z\" />\n\t</SVG>\n);\n\nexport default starFilled;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst starEmpty = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path\n\t\t\tfillRule=\"evenodd\"\n\t\t\td=\"M9.706 8.646a.25.25 0 01-.188.137l-4.626.672a.25.25 0 00-.139.427l3.348 3.262a.25.25 0 01.072.222l-.79 4.607a.25.25 0 00.362.264l4.138-2.176a.25.25 0 01.233 0l4.137 2.175a.25.25 0 00.363-.263l-.79-4.607a.25.25 0 01.072-.222l3.347-3.262a.25.25 0 00-.139-.427l-4.626-.672a.25.25 0 01-.188-.137l-2.069-4.192a.25.25 0 00-.448 0L9.706 8.646zM12 7.39l-.948 1.921a1.75 1.75 0 01-1.317.957l-2.12.308 1.534 1.495c.412.402.6.982.503 1.55l-.362 2.11 1.896-.997a1.75 1.75 0 011.629 0l1.895.997-.362-2.11a1.75 1.75 0 01.504-1.55l1.533-1.495-2.12-.308a1.75 1.75 0 01-1.317-.957L12 7.39z\"\n\t\t\tclipRule=\"evenodd\"\n\t\t/>\n\t</SVG>\n);\n\nexport default starEmpty;\n","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"viewport\"];","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"preferences\"];","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst closeSmall = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M12 13.06l3.712 3.713 1.061-1.06L13.061 12l3.712-3.712-1.06-1.06L12 10.938 8.288 7.227l-1.061 1.06L10.939 12l-3.712 3.712 1.06 1.061L12 13.061z\" />\n\t</SVG>\n);\n\nexport default closeSmall;\n","/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Set a default complementary area.\n *\n * @param {string} scope Complementary area scope.\n * @param {string} area  Area identifier.\n *\n * @return {Object} Action object.\n */\nexport const setDefaultComplementaryArea = ( scope, area ) => ( {\n\ttype: 'SET_DEFAULT_COMPLEMENTARY_AREA',\n\tscope,\n\tarea,\n} );\n\n/**\n * Enable the complementary area.\n *\n * @param {string} scope Complementary area scope.\n * @param {string} area  Area identifier.\n */\nexport const enableComplementaryArea =\n\t( scope, area ) =>\n\t( { registry, dispatch } ) => {\n\t\t// Return early if there's no area.\n\t\tif ( ! area ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isComplementaryAreaVisible = registry\n\t\t\t.select( preferencesStore )\n\t\t\t.get( scope, 'isComplementaryAreaVisible' );\n\n\t\tif ( ! isComplementaryAreaVisible ) {\n\t\t\tregistry\n\t\t\t\t.dispatch( preferencesStore )\n\t\t\t\t.set( scope, 'isComplementaryAreaVisible', true );\n\t\t}\n\n\t\tdispatch( {\n\t\t\ttype: 'ENABLE_COMPLEMENTARY_AREA',\n\t\t\tscope,\n\t\t\tarea,\n\t\t} );\n\t};\n\n/**\n * Disable the complementary area.\n *\n * @param {string} scope Complementary area scope.\n */\nexport const disableComplementaryArea =\n\t( scope ) =>\n\t( { registry } ) => {\n\t\tconst isComplementaryAreaVisible = registry\n\t\t\t.select( preferencesStore )\n\t\t\t.get( scope, 'isComplementaryAreaVisible' );\n\n\t\tif ( isComplementaryAreaVisible ) {\n\t\t\tregistry\n\t\t\t\t.dispatch( preferencesStore )\n\t\t\t\t.set( scope, 'isComplementaryAreaVisible', false );\n\t\t}\n\t};\n\n/**\n * Pins an item.\n *\n * @param {string} scope Item scope.\n * @param {string} item  Item identifier.\n *\n * @return {Object} Action object.\n */\nexport const pinItem =\n\t( scope, item ) =>\n\t( { registry } ) => {\n\t\t// Return early if there's no item.\n\t\tif ( ! item ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst pinnedItems = registry\n\t\t\t.select( preferencesStore )\n\t\t\t.get( scope, 'pinnedItems' );\n\n\t\t// The item is already pinned, there's nothing to do.\n\t\tif ( pinnedItems?.[ item ] === true ) {\n\t\t\treturn;\n\t\t}\n\n\t\tregistry.dispatch( preferencesStore ).set( scope, 'pinnedItems', {\n\t\t\t...pinnedItems,\n\t\t\t[ item ]: true,\n\t\t} );\n\t};\n\n/**\n * Unpins an item.\n *\n * @param {string} scope Item scope.\n * @param {string} item  Item identifier.\n */\nexport const unpinItem =\n\t( scope, item ) =>\n\t( { registry } ) => {\n\t\t// Return early if there's no item.\n\t\tif ( ! item ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst pinnedItems = registry\n\t\t\t.select( preferencesStore )\n\t\t\t.get( scope, 'pinnedItems' );\n\n\t\tregistry.dispatch( preferencesStore ).set( scope, 'pinnedItems', {\n\t\t\t...pinnedItems,\n\t\t\t[ item ]: false,\n\t\t} );\n\t};\n\n/**\n * Returns an action object used in signalling that a feature should be toggled.\n *\n * @param {string} scope       The feature scope (e.g. core/edit-post).\n * @param {string} featureName The feature name.\n */\nexport function toggleFeature( scope, featureName ) {\n\treturn function ( { registry } ) {\n\t\tdeprecated( `dispatch( 'core/interface' ).toggleFeature`, {\n\t\t\tsince: '6.0',\n\t\t\talternative: `dispatch( 'core/preferences' ).toggle`,\n\t\t} );\n\n\t\tregistry.dispatch( preferencesStore ).toggle( scope, featureName );\n\t};\n}\n\n/**\n * Returns an action object used in signalling that a feature should be set to\n * a true or false value\n *\n * @param {string}  scope       The feature scope (e.g. core/edit-post).\n * @param {string}  featureName The feature name.\n * @param {boolean} value       The value to set.\n *\n * @return {Object} Action object.\n */\nexport function setFeatureValue( scope, featureName, value ) {\n\treturn function ( { registry } ) {\n\t\tdeprecated( `dispatch( 'core/interface' ).setFeatureValue`, {\n\t\t\tsince: '6.0',\n\t\t\talternative: `dispatch( 'core/preferences' ).set`,\n\t\t} );\n\n\t\tregistry\n\t\t\t.dispatch( preferencesStore )\n\t\t\t.set( scope, featureName, !! value );\n\t};\n}\n\n/**\n * Returns an action object used in signalling that defaults should be set for features.\n *\n * @param {string}                  scope    The feature scope (e.g. core/edit-post).\n * @param {Object<string, boolean>} defaults A key/value map of feature names to values.\n *\n * @return {Object} Action object.\n */\nexport function setFeatureDefaults( scope, defaults ) {\n\treturn function ( { registry } ) {\n\t\tdeprecated( `dispatch( 'core/interface' ).setFeatureDefaults`, {\n\t\t\tsince: '6.0',\n\t\t\talternative: `dispatch( 'core/preferences' ).setDefaults`,\n\t\t} );\n\n\t\tregistry.dispatch( preferencesStore ).setDefaults( scope, defaults );\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the user opened a modal.\n *\n * @param {string} name A string that uniquely identifies the modal.\n *\n * @return {Object} Action object.\n */\nexport function openModal( name ) {\n\treturn {\n\t\ttype: 'OPEN_MODAL',\n\t\tname,\n\t};\n}\n\n/**\n * Returns an action object signalling that the user closed a modal.\n *\n * @return {Object} Action object.\n */\nexport function closeModal() {\n\treturn {\n\t\ttype: 'CLOSE_MODAL',\n\t};\n}\n","/**\n * WordPress dependencies\n */\nimport { createRegistrySelector } from '@wordpress/data';\nimport deprecated from '@wordpress/deprecated';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Returns the complementary area that is active in a given scope.\n *\n * @param {Object} state Global application state.\n * @param {string} scope Item scope.\n *\n * @return {string | null | undefined} The complementary area that is active in the given scope.\n */\nexport const getActiveComplementaryArea = createRegistrySelector(\n\t( select ) => ( state, scope ) => {\n\t\tconst isComplementaryAreaVisible = select( preferencesStore ).get(\n\t\t\tscope,\n\t\t\t'isComplementaryAreaVisible'\n\t\t);\n\n\t\t// Return `undefined` to indicate that the user has never toggled\n\t\t// visibility, this is the vanilla default. Other code relies on this\n\t\t// nuance in the return value.\n\t\tif ( isComplementaryAreaVisible === undefined ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Return `null` to indicate the user hid the complementary area.\n\t\tif ( isComplementaryAreaVisible === false ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn state?.complementaryAreas?.[ scope ];\n\t}\n);\n\nexport const isComplementaryAreaLoading = createRegistrySelector(\n\t( select ) => ( state, scope ) => {\n\t\tconst isVisible = select( preferencesStore ).get(\n\t\t\tscope,\n\t\t\t'isComplementaryAreaVisible'\n\t\t);\n\t\tconst identifier = state?.complementaryAreas?.[ scope ];\n\n\t\treturn isVisible && identifier === undefined;\n\t}\n);\n\n/**\n * Returns a boolean indicating if an item is pinned or not.\n *\n * @param {Object} state Global application state.\n * @param {string} scope Scope.\n * @param {string} item  Item to check.\n *\n * @return {boolean} True if the item is pinned and false otherwise.\n */\nexport const isItemPinned = createRegistrySelector(\n\t( select ) => ( state, scope, item ) => {\n\t\tconst pinnedItems = select( preferencesStore ).get(\n\t\t\tscope,\n\t\t\t'pinnedItems'\n\t\t);\n\t\treturn pinnedItems?.[ item ] ?? true;\n\t}\n);\n\n/**\n * Returns a boolean indicating whether a feature is active for a particular\n * scope.\n *\n * @param {Object} state       The store state.\n * @param {string} scope       The scope of the feature (e.g. core/edit-post).\n * @param {string} featureName The name of the feature.\n *\n * @return {boolean} Is the feature enabled?\n */\nexport const isFeatureActive = createRegistrySelector(\n\t( select ) => ( state, scope, featureName ) => {\n\t\tdeprecated(\n\t\t\t`select( 'core/interface' ).isFeatureActive( scope, featureName )`,\n\t\t\t{\n\t\t\t\tsince: '6.0',\n\t\t\t\talternative: `select( 'core/preferences' ).get( scope, featureName )`,\n\t\t\t}\n\t\t);\n\n\t\treturn !! select( preferencesStore ).get( scope, featureName );\n\t}\n);\n\n/**\n * Returns true if a modal is active, or false otherwise.\n *\n * @param {Object} state     Global application state.\n * @param {string} modalName A string that uniquely identifies the modal.\n *\n * @return {boolean} Whether the modal is active.\n */\nexport function isModalActive( state, modalName ) {\n\treturn state.activeModal === modalName;\n}\n","/**\n * WordPress dependencies\n */\nimport { combineReducers } from '@wordpress/data';\n\nexport function complementaryAreas( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SET_DEFAULT_COMPLEMENTARY_AREA': {\n\t\t\tconst { scope, area } = action;\n\n\t\t\t// If there's already an area, don't overwrite it.\n\t\t\tif ( state[ scope ] ) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ scope ]: area,\n\t\t\t};\n\t\t}\n\t\tcase 'ENABLE_COMPLEMENTARY_AREA': {\n\t\t\tconst { scope, area } = action;\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ scope ]: area,\n\t\t\t};\n\t\t}\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer for storing the name of the open modal, or null if no modal is open.\n *\n * @param {Object} state  Previous state.\n * @param {Object} action Action object containing the `name` of the modal\n *\n * @return {Object} Updated state\n */\nexport function activeModal( state = null, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'OPEN_MODAL':\n\t\t\treturn action.name;\n\t\tcase 'CLOSE_MODAL':\n\t\t\treturn null;\n\t}\n\n\treturn state;\n}\n\nexport default combineReducers( {\n\tcomplementaryAreas,\n\tactiveModal,\n} );\n","/**\n * The identifier for the data store.\n *\n * @type {string}\n */\nexport const STORE_NAME = 'core/interface';\n","/**\n * WordPress dependencies\n */\nimport { createReduxStore, register } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport * as actions from './actions';\nimport * as selectors from './selectors';\nimport reducer from './reducer';\nimport { STORE_NAME } from './constants';\n\n/**\n * Store definition for the interface namespace.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore\n *\n * @type {Object}\n */\nexport const store = createReduxStore( STORE_NAME, {\n\treducer,\n\tactions,\n\tselectors,\n} );\n\n// Once we build a more generic persistence plugin that works across types of stores\n// we'd be able to replace this with a register call.\nregister( store );\n","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"plugins\"];","/**\n * WordPress dependencies\n */\nimport { withPluginContext } from '@wordpress/plugins';\n\nexport default withPluginContext( ( context, ownProps ) => {\n\treturn {\n\t\ticon: ownProps.icon || context.icon,\n\t\tidentifier:\n\t\t\townProps.identifier || `${ context.name }/${ ownProps.name }`,\n\t};\n} );\n","/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as interfaceStore } from '../../store';\nimport complementaryAreaContext from '../complementary-area-context';\n\nfunction ComplementaryAreaToggle( {\n\tas = Button,\n\tscope,\n\tidentifier,\n\ticon,\n\tselectedIcon,\n\tname,\n\t...props\n} ) {\n\tconst ComponentToUse = as;\n\tconst isSelected = useSelect(\n\t\t( select ) =>\n\t\t\tselect( interfaceStore ).getActiveComplementaryArea( scope ) ===\n\t\t\tidentifier,\n\t\t[ identifier, scope ]\n\t);\n\tconst { enableComplementaryArea, disableComplementaryArea } =\n\t\tuseDispatch( interfaceStore );\n\treturn (\n\t\t<ComponentToUse\n\t\t\ticon={ selectedIcon && isSelected ? selectedIcon : icon }\n\t\t\taria-controls={ identifier.replace( '/', ':' ) }\n\t\t\tonClick={ () => {\n\t\t\t\tif ( isSelected ) {\n\t\t\t\t\tdisableComplementaryArea( scope );\n\t\t\t\t} else {\n\t\t\t\t\tenableComplementaryArea( scope, identifier );\n\t\t\t\t}\n\t\t\t} }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n\nexport default complementaryAreaContext( ComplementaryAreaToggle );\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport ComplementaryAreaToggle from '../complementary-area-toggle';\n\nconst ComplementaryAreaHeader = ( {\n\tsmallScreenTitle,\n\tchildren,\n\tclassName,\n\ttoggleButtonProps,\n} ) => {\n\tconst toggleButton = (\n\t\t<ComplementaryAreaToggle icon={ closeSmall } { ...toggleButtonProps } />\n\t);\n\treturn (\n\t\t<>\n\t\t\t<div className=\"components-panel__header interface-complementary-area-header__small\">\n\t\t\t\t{ smallScreenTitle && (\n\t\t\t\t\t<span className=\"interface-complementary-area-header__small-title\">\n\t\t\t\t\t\t{ smallScreenTitle }\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t{ toggleButton }\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'components-panel__header',\n\t\t\t\t\t'interface-complementary-area-header',\n\t\t\t\t\tclassName\n\t\t\t\t) }\n\t\t\t\ttabIndex={ -1 }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t\t{ toggleButton }\n\t\t\t</div>\n\t\t</>\n\t);\n};\n\nexport default ComplementaryAreaHeader;\n","/**\n * WordPress dependencies\n */\nimport { ButtonGroup, Button, Slot, Fill } from '@wordpress/components';\nimport { Children } from '@wordpress/element';\n\nconst noop = () => {};\n\nfunction ActionItemSlot( {\n\tname,\n\tas: Component = ButtonGroup,\n\tfillProps = {},\n\tbubblesVirtually,\n\t...props\n} ) {\n\treturn (\n\t\t<Slot\n\t\t\tname={ name }\n\t\t\tbubblesVirtually={ bubblesVirtually }\n\t\t\tfillProps={ fillProps }\n\t\t>\n\t\t\t{ ( fills ) => {\n\t\t\t\tif ( ! Children.toArray( fills ).length ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\t// Special handling exists for backward compatibility.\n\t\t\t\t// It ensures that menu items created by plugin authors aren't\n\t\t\t\t// duplicated with automatically injected menu items coming\n\t\t\t\t// from pinnable plugin sidebars.\n\t\t\t\t// @see https://github.com/WordPress/gutenberg/issues/14457\n\t\t\t\tconst initializedByPlugins = [];\n\t\t\t\tChildren.forEach(\n\t\t\t\t\tfills,\n\t\t\t\t\t( {\n\t\t\t\t\t\tprops: { __unstableExplicitMenuItem, __unstableTarget },\n\t\t\t\t\t} ) => {\n\t\t\t\t\t\tif ( __unstableTarget && __unstableExplicitMenuItem ) {\n\t\t\t\t\t\t\tinitializedByPlugins.push( __unstableTarget );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\tconst children = Children.map( fills, ( child ) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\t! child.props.__unstableExplicitMenuItem &&\n\t\t\t\t\t\tinitializedByPlugins.includes(\n\t\t\t\t\t\t\tchild.props.__unstableTarget\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t\treturn child;\n\t\t\t\t} );\n\n\t\t\t\treturn <Component { ...props }>{ children }</Component>;\n\t\t\t} }\n\t\t</Slot>\n\t);\n}\n\nfunction ActionItem( { name, as: Component = Button, onClick, ...props } ) {\n\treturn (\n\t\t<Fill name={ name }>\n\t\t\t{ ( { onClick: fpOnClick } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Component\n\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\tonClick || fpOnClick\n\t\t\t\t\t\t\t\t? ( ...args ) => {\n\t\t\t\t\t\t\t\t\t\t( onClick || noop )( ...args );\n\t\t\t\t\t\t\t\t\t\t( fpOnClick || noop )( ...args );\n\t\t\t\t\t\t\t\t  }\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t</Fill>\n\t);\n}\n\nActionItem.Slot = ActionItemSlot;\n\nexport default ActionItem;\n","/**\n * WordPress dependencies\n */\nimport { check } from '@wordpress/icons';\nimport { MenuItem } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport ComplementaryAreaToggle from '../complementary-area-toggle';\nimport ActionItem from '../action-item';\n\nconst PluginsMenuItem = ( {\n\t// Menu item is marked with unstable prop for backward compatibility.\n\t// They are removed so they don't leak to DOM elements.\n\t// @see https://github.com/WordPress/gutenberg/issues/14457\n\t__unstableExplicitMenuItem,\n\t__unstableTarget,\n\t...restProps\n} ) => <MenuItem { ...restProps } />;\n\nexport default function ComplementaryAreaMoreMenuItem( {\n\tscope,\n\ttarget,\n\t__unstableExplicitMenuItem,\n\t...props\n} ) {\n\treturn (\n\t\t<ComplementaryAreaToggle\n\t\t\tas={ ( toggleProps ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<ActionItem\n\t\t\t\t\t\t__unstableExplicitMenuItem={\n\t\t\t\t\t\t\t__unstableExplicitMenuItem\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__unstableTarget={ `${ scope }/${ target }` }\n\t\t\t\t\t\tas={ PluginsMenuItem }\n\t\t\t\t\t\tname={ `${ scope }/plugin-more-menu` }\n\t\t\t\t\t\t{ ...toggleProps }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trole=\"menuitemcheckbox\"\n\t\t\tselectedIcon={ check }\n\t\t\tname={ target }\n\t\t\tscope={ scope }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Slot, Fill } from '@wordpress/components';\n\nfunction PinnedItems( { scope, ...props } ) {\n\treturn <Fill name={ `PinnedItems/${ scope }` } { ...props } />;\n}\n\nfunction PinnedItemsSlot( { scope, className, ...props } ) {\n\treturn (\n\t\t<Slot name={ `PinnedItems/${ scope }` } { ...props }>\n\t\t\t{ ( fills ) =>\n\t\t\t\tfills?.length > 0 && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t'interface-pinned-items'\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ fills }\n\t\t\t\t\t</div>\n\t\t\t\t)\n\t\t\t}\n\t\t</Slot>\n\t);\n}\n\nPinnedItems.Slot = PinnedItemsSlot;\n\nexport default PinnedItems;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Button, Panel, Slot, Fill } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { check, starEmpty, starFilled } from '@wordpress/icons';\nimport { useEffect, useRef } from '@wordpress/element';\nimport { store as viewportStore } from '@wordpress/viewport';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport ComplementaryAreaHeader from '../complementary-area-header';\nimport ComplementaryAreaMoreMenuItem from '../complementary-area-more-menu-item';\nimport ComplementaryAreaToggle from '../complementary-area-toggle';\nimport withComplementaryAreaContext from '../complementary-area-context';\nimport PinnedItems from '../pinned-items';\nimport { store as interfaceStore } from '../../store';\n\nfunction ComplementaryAreaSlot( { scope, ...props } ) {\n\treturn <Slot name={ `ComplementaryArea/${ scope }` } { ...props } />;\n}\n\nfunction ComplementaryAreaFill( { scope, children, className, id } ) {\n\treturn (\n\t\t<Fill name={ `ComplementaryArea/${ scope }` }>\n\t\t\t<div id={ id } className={ className }>\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t</Fill>\n\t);\n}\n\nfunction useAdjustComplementaryListener(\n\tscope,\n\tidentifier,\n\tactiveArea,\n\tisActive,\n\tisSmall\n) {\n\tconst previousIsSmall = useRef( false );\n\tconst shouldOpenWhenNotSmall = useRef( false );\n\tconst { enableComplementaryArea, disableComplementaryArea } =\n\t\tuseDispatch( interfaceStore );\n\tuseEffect( () => {\n\t\t// If the complementary area is active and the editor is switching from\n\t\t// a big to a small window size.\n\t\tif ( isActive && isSmall && ! previousIsSmall.current ) {\n\t\t\tdisableComplementaryArea( scope );\n\t\t\t// Flag the complementary area to be reopened when the window size\n\t\t\t// goes from small to big.\n\t\t\tshouldOpenWhenNotSmall.current = true;\n\t\t} else if (\n\t\t\t// If there is a flag indicating the complementary area should be\n\t\t\t// enabled when we go from small to big window size and we are going\n\t\t\t// from a small to big window size.\n\t\t\tshouldOpenWhenNotSmall.current &&\n\t\t\t! isSmall &&\n\t\t\tpreviousIsSmall.current\n\t\t) {\n\t\t\t// Remove the flag indicating the complementary area should be\n\t\t\t// enabled.\n\t\t\tshouldOpenWhenNotSmall.current = false;\n\t\t\tenableComplementaryArea( scope, identifier );\n\t\t} else if (\n\t\t\t// If the flag is indicating the current complementary should be\n\t\t\t// reopened but another complementary area becomes active, remove\n\t\t\t// the flag.\n\t\t\tshouldOpenWhenNotSmall.current &&\n\t\t\tactiveArea &&\n\t\t\tactiveArea !== identifier\n\t\t) {\n\t\t\tshouldOpenWhenNotSmall.current = false;\n\t\t}\n\t\tif ( isSmall !== previousIsSmall.current ) {\n\t\t\tpreviousIsSmall.current = isSmall;\n\t\t}\n\t}, [\n\t\tisActive,\n\t\tisSmall,\n\t\tscope,\n\t\tidentifier,\n\t\tactiveArea,\n\t\tdisableComplementaryArea,\n\t\tenableComplementaryArea,\n\t] );\n}\n\nfunction ComplementaryArea( {\n\tchildren,\n\tclassName,\n\tcloseLabel = __( 'Close plugin' ),\n\tidentifier,\n\theader,\n\theaderClassName,\n\ticon,\n\tisPinnable = true,\n\tpanelClassName,\n\tscope,\n\tname,\n\tsmallScreenTitle,\n\ttitle,\n\ttoggleShortcut,\n\tisActiveByDefault,\n} ) {\n\tconst {\n\t\tisLoading,\n\t\tisActive,\n\t\tisPinned,\n\t\tactiveArea,\n\t\tisSmall,\n\t\tisLarge,\n\t\tshowIconLabels,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetActiveComplementaryArea,\n\t\t\t\tisComplementaryAreaLoading,\n\t\t\t\tisItemPinned,\n\t\t\t} = select( interfaceStore );\n\t\t\tconst { get } = select( preferencesStore );\n\n\t\t\tconst _activeArea = getActiveComplementaryArea( scope );\n\n\t\t\treturn {\n\t\t\t\tisLoading: isComplementaryAreaLoading( scope ),\n\t\t\t\tisActive: _activeArea === identifier,\n\t\t\t\tisPinned: isItemPinned( scope, identifier ),\n\t\t\t\tactiveArea: _activeArea,\n\t\t\t\tisSmall: select( viewportStore ).isViewportMatch( '< medium' ),\n\t\t\t\tisLarge: select( viewportStore ).isViewportMatch( 'large' ),\n\t\t\t\tshowIconLabels: get( 'core', 'showIconLabels' ),\n\t\t\t};\n\t\t},\n\t\t[ identifier, scope ]\n\t);\n\tuseAdjustComplementaryListener(\n\t\tscope,\n\t\tidentifier,\n\t\tactiveArea,\n\t\tisActive,\n\t\tisSmall\n\t);\n\tconst {\n\t\tenableComplementaryArea,\n\t\tdisableComplementaryArea,\n\t\tpinItem,\n\t\tunpinItem,\n\t} = useDispatch( interfaceStore );\n\n\tuseEffect( () => {\n\t\t// Set initial visibility: For large screens, enable if it's active by\n\t\t// default. For small screens, always initially disable.\n\t\tif ( isActiveByDefault && activeArea === undefined && ! isSmall ) {\n\t\t\tenableComplementaryArea( scope, identifier );\n\t\t} else if ( activeArea === undefined && isSmall ) {\n\t\t\tdisableComplementaryArea( scope, identifier );\n\t\t}\n\t}, [\n\t\tactiveArea,\n\t\tisActiveByDefault,\n\t\tscope,\n\t\tidentifier,\n\t\tisSmall,\n\t\tenableComplementaryArea,\n\t\tdisableComplementaryArea,\n\t] );\n\n\treturn (\n\t\t<>\n\t\t\t{ isPinnable && (\n\t\t\t\t<PinnedItems scope={ scope }>\n\t\t\t\t\t{ isPinned && (\n\t\t\t\t\t\t<ComplementaryAreaToggle\n\t\t\t\t\t\t\tscope={ scope }\n\t\t\t\t\t\t\tidentifier={ identifier }\n\t\t\t\t\t\t\tisPressed={\n\t\t\t\t\t\t\t\tisActive && ( ! showIconLabels || isLarge )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\taria-expanded={ isActive }\n\t\t\t\t\t\t\taria-disabled={ isLoading }\n\t\t\t\t\t\t\tlabel={ title }\n\t\t\t\t\t\t\ticon={ showIconLabels ? check : icon }\n\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\tvariant={ showIconLabels ? 'tertiary' : undefined }\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</PinnedItems>\n\t\t\t) }\n\t\t\t{ name && isPinnable && (\n\t\t\t\t<ComplementaryAreaMoreMenuItem\n\t\t\t\t\ttarget={ name }\n\t\t\t\t\tscope={ scope }\n\t\t\t\t\ticon={ icon }\n\t\t\t\t>\n\t\t\t\t\t{ title }\n\t\t\t\t</ComplementaryAreaMoreMenuItem>\n\t\t\t) }\n\t\t\t{ isActive && (\n\t\t\t\t<ComplementaryAreaFill\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'interface-complementary-area',\n\t\t\t\t\t\tclassName\n\t\t\t\t\t) }\n\t\t\t\t\tscope={ scope }\n\t\t\t\t\tid={ identifier.replace( '/', ':' ) }\n\t\t\t\t>\n\t\t\t\t\t<ComplementaryAreaHeader\n\t\t\t\t\t\tclassName={ headerClassName }\n\t\t\t\t\t\tcloseLabel={ closeLabel }\n\t\t\t\t\t\tonClose={ () => disableComplementaryArea( scope ) }\n\t\t\t\t\t\tsmallScreenTitle={ smallScreenTitle }\n\t\t\t\t\t\ttoggleButtonProps={ {\n\t\t\t\t\t\t\tlabel: closeLabel,\n\t\t\t\t\t\t\tshortcut: toggleShortcut,\n\t\t\t\t\t\t\tscope,\n\t\t\t\t\t\t\tidentifier,\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ header || (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<strong>{ title }</strong>\n\t\t\t\t\t\t\t\t{ isPinnable && (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tclassName=\"interface-complementary-area__pin-unpin-item\"\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\tisPinned ? starFilled : starEmpty\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t\t\tisPinned\n\t\t\t\t\t\t\t\t\t\t\t\t? __( 'Unpin from toolbar' )\n\t\t\t\t\t\t\t\t\t\t\t\t: __( 'Pin to toolbar' )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\t( isPinned ? unpinItem : pinItem )(\n\t\t\t\t\t\t\t\t\t\t\t\tscope,\n\t\t\t\t\t\t\t\t\t\t\t\tidentifier\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tisPressed={ isPinned }\n\t\t\t\t\t\t\t\t\t\taria-expanded={ isPinned }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ComplementaryAreaHeader>\n\t\t\t\t\t<Panel className={ panelClassName }>{ children }</Panel>\n\t\t\t\t</ComplementaryAreaFill>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nconst ComplementaryAreaWrapped =\n\twithComplementaryAreaContext( ComplementaryArea );\n\nComplementaryAreaWrapped.Slot = ComplementaryAreaSlot;\n\nexport default ComplementaryAreaWrapped;\n","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"compose\"];","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\nexport default function NavigableRegion( {\n\tchildren,\n\tclassName,\n\tariaLabel,\n\tas: Tag = 'div',\n\t...props\n} ) {\n\treturn (\n\t\t<Tag\n\t\t\tclassName={ classnames( 'interface-navigable-region', className ) }\n\t\t\taria-label={ ariaLabel }\n\t\t\trole=\"region\"\n\t\t\ttabIndex=\"-1\"\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ children }\n\t\t</Tag>\n\t);\n}\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { forwardRef, useEffect } from '@wordpress/element';\nimport {\n\t__unstableUseNavigateRegions as useNavigateRegions,\n\t__unstableMotion as motion,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMergeRefs } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport NavigableRegion from '../navigable-region';\n\nfunction useHTMLClass( className ) {\n\tuseEffect( () => {\n\t\tconst element =\n\t\t\tdocument && document.querySelector( `html:not(.${ className })` );\n\t\tif ( ! element ) {\n\t\t\treturn;\n\t\t}\n\t\telement.classList.toggle( className );\n\t\treturn () => {\n\t\t\telement.classList.toggle( className );\n\t\t};\n\t}, [ className ] );\n}\n\nconst headerVariants = {\n\thidden: { opacity: 0 },\n\thover: {\n\t\topacity: 1,\n\t\ttransition: { type: 'tween', delay: 0.2, delayChildren: 0.2 },\n\t},\n\tdistractionFreeInactive: { opacity: 1, transition: { delay: 0 } },\n};\n\nfunction InterfaceSkeleton(\n\t{\n\t\tisDistractionFree,\n\t\tfooter,\n\t\theader,\n\t\teditorNotices,\n\t\tsidebar,\n\t\tsecondarySidebar,\n\t\tnotices,\n\t\tcontent,\n\t\tactions,\n\t\tlabels,\n\t\tclassName,\n\t\tenableRegionNavigation = true,\n\t\t// Todo: does this need to be a prop.\n\t\t// Can we use a dependency to keyboard-shortcuts directly?\n\t\tshortcuts,\n\t},\n\tref\n) {\n\tconst navigateRegionsProps = useNavigateRegions( shortcuts );\n\n\tuseHTMLClass( 'interface-interface-skeleton__html-container' );\n\n\tconst defaultLabels = {\n\t\t/* translators: accessibility text for the top bar landmark region. */\n\t\theader: __( 'Header' ),\n\t\t/* translators: accessibility text for the content landmark region. */\n\t\tbody: __( 'Content' ),\n\t\t/* translators: accessibility text for the secondary sidebar landmark region. */\n\t\tsecondarySidebar: __( 'Block Library' ),\n\t\t/* translators: accessibility text for the settings landmark region. */\n\t\tsidebar: __( 'Settings' ),\n\t\t/* translators: accessibility text for the publish landmark region. */\n\t\tactions: __( 'Publish' ),\n\t\t/* translators: accessibility text for the footer landmark region. */\n\t\tfooter: __( 'Footer' ),\n\t};\n\n\tconst mergedLabels = { ...defaultLabels, ...labels };\n\n\treturn (\n\t\t<div\n\t\t\t{ ...( enableRegionNavigation ? navigateRegionsProps : {} ) }\n\t\t\tref={ useMergeRefs( [\n\t\t\t\tref,\n\t\t\t\tenableRegionNavigation ? navigateRegionsProps.ref : undefined,\n\t\t\t] ) }\n\t\t\tclassName={ classnames(\n\t\t\t\tclassName,\n\t\t\t\t'interface-interface-skeleton',\n\t\t\t\tnavigateRegionsProps.className,\n\t\t\t\t!! footer && 'has-footer'\n\t\t\t) }\n\t\t>\n\t\t\t<div className=\"interface-interface-skeleton__editor\">\n\t\t\t\t{ !! header && (\n\t\t\t\t\t<NavigableRegion\n\t\t\t\t\t\tas={ motion.div }\n\t\t\t\t\t\tclassName=\"interface-interface-skeleton__header\"\n\t\t\t\t\t\taria-label={ mergedLabels.header }\n\t\t\t\t\t\tinitial={\n\t\t\t\t\t\t\tisDistractionFree\n\t\t\t\t\t\t\t\t? 'hidden'\n\t\t\t\t\t\t\t\t: 'distractionFreeInactive'\n\t\t\t\t\t\t}\n\t\t\t\t\t\twhileHover={\n\t\t\t\t\t\t\tisDistractionFree\n\t\t\t\t\t\t\t\t? 'hover'\n\t\t\t\t\t\t\t\t: 'distractionFreeInactive'\n\t\t\t\t\t\t}\n\t\t\t\t\t\tanimate={\n\t\t\t\t\t\t\tisDistractionFree\n\t\t\t\t\t\t\t\t? 'hidden'\n\t\t\t\t\t\t\t\t: 'distractionFreeInactive'\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvariants={ headerVariants }\n\t\t\t\t\t\ttransition={\n\t\t\t\t\t\t\tisDistractionFree\n\t\t\t\t\t\t\t\t? { type: 'tween', delay: 0.8 }\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{ header }\n\t\t\t\t\t</NavigableRegion>\n\t\t\t\t) }\n\t\t\t\t{ isDistractionFree && (\n\t\t\t\t\t<div className=\"interface-interface-skeleton__header\">\n\t\t\t\t\t\t{ editorNotices }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t<div className=\"interface-interface-skeleton__body\">\n\t\t\t\t\t{ !! secondarySidebar && (\n\t\t\t\t\t\t<NavigableRegion\n\t\t\t\t\t\t\tclassName=\"interface-interface-skeleton__secondary-sidebar\"\n\t\t\t\t\t\t\tariaLabel={ mergedLabels.secondarySidebar }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ secondarySidebar }\n\t\t\t\t\t\t</NavigableRegion>\n\t\t\t\t\t) }\n\t\t\t\t\t{ !! notices && (\n\t\t\t\t\t\t<div className=\"interface-interface-skeleton__notices\">\n\t\t\t\t\t\t\t{ notices }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t<NavigableRegion\n\t\t\t\t\t\tclassName=\"interface-interface-skeleton__content\"\n\t\t\t\t\t\tariaLabel={ mergedLabels.body }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ content }\n\t\t\t\t\t</NavigableRegion>\n\t\t\t\t\t{ !! sidebar && (\n\t\t\t\t\t\t<NavigableRegion\n\t\t\t\t\t\t\tclassName=\"interface-interface-skeleton__sidebar\"\n\t\t\t\t\t\t\tariaLabel={ mergedLabels.sidebar }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ sidebar }\n\t\t\t\t\t\t</NavigableRegion>\n\t\t\t\t\t) }\n\t\t\t\t\t{ !! actions && (\n\t\t\t\t\t\t<NavigableRegion\n\t\t\t\t\t\t\tclassName=\"interface-interface-skeleton__actions\"\n\t\t\t\t\t\t\tariaLabel={ mergedLabels.actions }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ actions }\n\t\t\t\t\t\t</NavigableRegion>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{ !! footer && (\n\t\t\t\t<NavigableRegion\n\t\t\t\t\tclassName=\"interface-interface-skeleton__footer\"\n\t\t\t\t\tariaLabel={ mergedLabels.footer }\n\t\t\t\t>\n\t\t\t\t\t{ footer }\n\t\t\t\t</NavigableRegion>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default forwardRef( InterfaceSkeleton );\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst moreVertical = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z\" />\n\t</SVG>\n);\n\nexport default moreVertical;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { DropdownMenu } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { moreVertical } from '@wordpress/icons';\n\nexport default function MoreMenuDropdown( {\n\tas: DropdownComponent = DropdownMenu,\n\tclassName,\n\t/* translators: button label text should, if possible, be under 16 characters. */\n\tlabel = __( 'Options' ),\n\tpopoverProps,\n\ttoggleProps,\n\tchildren,\n} ) {\n\treturn (\n\t\t<DropdownComponent\n\t\t\tclassName={ classnames(\n\t\t\t\t'interface-more-menu-dropdown',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\ticon={ moreVertical }\n\t\t\tlabel={ label }\n\t\t\tpopoverProps={ {\n\t\t\t\tplacement: 'bottom-end',\n\t\t\t\t...popoverProps,\n\t\t\t\tclassName: classnames(\n\t\t\t\t\t'interface-more-menu-dropdown__content',\n\t\t\t\t\tpopoverProps?.className\n\t\t\t\t),\n\t\t\t} }\n\t\t\ttoggleProps={ {\n\t\t\t\ttooltipPosition: 'bottom',\n\t\t\t\t...toggleProps,\n\t\t\t\tsize: 'compact',\n\t\t\t} }\n\t\t>\n\t\t\t{ ( onClose ) => children( onClose ) }\n\t\t</DropdownComponent>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { Modal } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nexport default function PreferencesModal( { closeModal, children } ) {\n\treturn (\n\t\t<Modal\n\t\t\tclassName=\"interface-preferences-modal\"\n\t\t\ttitle={ __( 'Preferences' ) }\n\t\t\tonRequestClose={ closeModal }\n\t\t>\n\t\t\t{ children }\n\t\t</Modal>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { cloneElement, forwardRef } from '@wordpress/element';\n\n/** @typedef {{icon: JSX.Element, size?: number} & import('@wordpress/primitives').SVGProps} IconProps */\n\n/**\n * Return an SVG icon.\n *\n * @param {IconProps}                                 props icon is the SVG component to render\n *                                                          size is a number specifiying the icon size in pixels\n *                                                          Other props will be passed to wrapped SVG component\n * @param {import('react').ForwardedRef<HTMLElement>} ref   The forwarded ref to the SVG element.\n *\n * @return {JSX.Element}  Icon component\n */\nfunction Icon( { icon, size = 24, ...props }, ref ) {\n\treturn cloneElement( icon, {\n\t\twidth: size,\n\t\theight: size,\n\t\t...props,\n\t\tref,\n\t} );\n}\n\nexport default forwardRef( Icon );\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst chevronLeft = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M14.6 7l-1.2-1L8 12l5.4 6 1.2-1-4.6-5z\" />\n\t</SVG>\n);\n\nexport default chevronLeft;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst chevronRight = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z\" />\n\t</SVG>\n);\n\nexport default chevronRight;\n","/**\n * WordPress dependencies\n */\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalNavigatorButton as NavigatorButton,\n\t__experimentalNavigatorBackButton as NavigatorBackButton,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalHStack as HStack,\n\t__experimentalText as Text,\n\t__experimentalTruncate as Truncate,\n\tFlexItem,\n\tTabPanel,\n\tCard,\n\tCardHeader,\n\tCardBody,\n} from '@wordpress/components';\nimport { useMemo, useCallback, useState } from '@wordpress/element';\nimport { chevronLeft, chevronRight, Icon } from '@wordpress/icons';\nimport { isRTL, __ } from '@wordpress/i18n';\n\nconst PREFERENCES_MENU = 'preferences-menu';\n\nexport default function PreferencesModalTabs( { sections } ) {\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\n\t// This is also used to sync the two different rendered components\n\t// between small and large viewports.\n\tconst [ activeMenu, setActiveMenu ] = useState( PREFERENCES_MENU );\n\t/**\n\t * Create helper objects from `sections` for easier data handling.\n\t * `tabs` is used for creating the `TabPanel` and `sectionsContentMap`\n\t * is used for easier access to active tab's content.\n\t */\n\tconst { tabs, sectionsContentMap } = useMemo( () => {\n\t\tlet mappedTabs = {\n\t\t\ttabs: [],\n\t\t\tsectionsContentMap: {},\n\t\t};\n\t\tif ( sections.length ) {\n\t\t\tmappedTabs = sections.reduce(\n\t\t\t\t( accumulator, { name, tabLabel: title, content } ) => {\n\t\t\t\t\taccumulator.tabs.push( { name, title } );\n\t\t\t\t\taccumulator.sectionsContentMap[ name ] = content;\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{ tabs: [], sectionsContentMap: {} }\n\t\t\t);\n\t\t}\n\t\treturn mappedTabs;\n\t}, [ sections ] );\n\n\tconst getCurrentTab = useCallback(\n\t\t( tab ) => sectionsContentMap[ tab.name ] || null,\n\t\t[ sectionsContentMap ]\n\t);\n\n\tlet modalContent;\n\t// We render different components based on the viewport size.\n\tif ( isLargeViewport ) {\n\t\tmodalContent = (\n\t\t\t<TabPanel\n\t\t\t\tclassName=\"interface-preferences__tabs\"\n\t\t\t\ttabs={ tabs }\n\t\t\t\tinitialTabName={\n\t\t\t\t\tactiveMenu !== PREFERENCES_MENU ? activeMenu : undefined\n\t\t\t\t}\n\t\t\t\tonSelect={ setActiveMenu }\n\t\t\t\torientation=\"vertical\"\n\t\t\t>\n\t\t\t\t{ getCurrentTab }\n\t\t\t</TabPanel>\n\t\t);\n\t} else {\n\t\tmodalContent = (\n\t\t\t<NavigatorProvider\n\t\t\t\tinitialPath=\"/\"\n\t\t\t\tclassName=\"interface-preferences__provider\"\n\t\t\t>\n\t\t\t\t<NavigatorScreen path=\"/\">\n\t\t\t\t\t<Card isBorderless size=\"small\">\n\t\t\t\t\t\t<CardBody>\n\t\t\t\t\t\t\t<ItemGroup>\n\t\t\t\t\t\t\t\t{ tabs.map( ( tab ) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<NavigatorButton\n\t\t\t\t\t\t\t\t\t\t\tkey={ tab.name }\n\t\t\t\t\t\t\t\t\t\t\tpath={ tab.name }\n\t\t\t\t\t\t\t\t\t\t\tas={ Item }\n\t\t\t\t\t\t\t\t\t\t\tisAction\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t\t\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Truncate>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ tab.title }\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisRTL()\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? chevronLeft\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: chevronRight\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t\t\t\t</NavigatorButton>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t\t</CardBody>\n\t\t\t\t\t</Card>\n\t\t\t\t</NavigatorScreen>\n\t\t\t\t{ sections.length &&\n\t\t\t\t\tsections.map( ( section ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<NavigatorScreen\n\t\t\t\t\t\t\t\tkey={ `${ section.name }-menu` }\n\t\t\t\t\t\t\t\tpath={ section.name }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Card isBorderless size=\"large\">\n\t\t\t\t\t\t\t\t\t<CardHeader\n\t\t\t\t\t\t\t\t\t\tisBorderless={ false }\n\t\t\t\t\t\t\t\t\t\tjustify=\"left\"\n\t\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\tgap=\"6\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<NavigatorBackButton\n\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\tisRTL()\n\t\t\t\t\t\t\t\t\t\t\t\t\t? chevronRight\n\t\t\t\t\t\t\t\t\t\t\t\t\t: chevronLeft\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Navigate to the previous view'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<Text size=\"16\">\n\t\t\t\t\t\t\t\t\t\t\t{ section.tabLabel }\n\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t</CardHeader>\n\t\t\t\t\t\t\t\t\t<CardBody>{ section.content }</CardBody>\n\t\t\t\t\t\t\t\t</Card>\n\t\t\t\t\t\t\t</NavigatorScreen>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t</NavigatorProvider>\n\t\t);\n\t}\n\n\treturn modalContent;\n}\n","const Section = ( { description, title, children } ) => (\n\t<fieldset className=\"interface-preferences-modal__section\">\n\t\t<legend className=\"interface-preferences-modal__section-legend\">\n\t\t\t<h2 className=\"interface-preferences-modal__section-title\">\n\t\t\t\t{ title }\n\t\t\t</h2>\n\t\t\t{ description && (\n\t\t\t\t<p className=\"interface-preferences-modal__section-description\">\n\t\t\t\t\t{ description }\n\t\t\t\t</p>\n\t\t\t) }\n\t\t</legend>\n\t\t<div className=\"interface-preferences-modal__section-content\">\n\t\t\t{ children }\n\t\t</div>\n\t</fieldset>\n);\n\nexport default Section;\n","/**\n * WordPress dependencies\n */\nimport { ToggleControl } from '@wordpress/components';\n\nfunction BaseOption( { help, label, isChecked, onChange, children } ) {\n\treturn (\n\t\t<div className=\"interface-preferences-modal__option\">\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\thelp={ help }\n\t\t\t\tlabel={ label }\n\t\t\t\tchecked={ isChecked }\n\t\t\t\tonChange={ onChange }\n\t\t\t/>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nexport default BaseOption;\n","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"widgets\"];","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"hooks\"];","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"mediaUtils\"];","/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { MediaUpload } from '@wordpress/media-utils';\n\naddFilter(\n\t'editor.MediaUpload',\n\t'core/edit-site/components/media-upload',\n\t() => MediaUpload\n);\n","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"blockEditor\"];","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"notices\"];","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"coreData\"];","var r={grad:.9,turn:360,rad:360/(2*Math.PI)},t=function(r){return\"string\"==typeof r?r.length>0:\"number\"==typeof r},n=function(r,t,n){return void 0===t&&(t=0),void 0===n&&(n=Math.pow(10,t)),Math.round(n*r)/n+0},e=function(r,t,n){return void 0===t&&(t=0),void 0===n&&(n=1),r>n?n:r>t?r:t},u=function(r){return(r=isFinite(r)?r%360:0)>0?r:r+360},a=function(r){return{r:e(r.r,0,255),g:e(r.g,0,255),b:e(r.b,0,255),a:e(r.a)}},o=function(r){return{r:n(r.r),g:n(r.g),b:n(r.b),a:n(r.a,3)}},i=/^#([0-9a-f]{3,8})$/i,s=function(r){var t=r.toString(16);return t.length<2?\"0\"+t:t},h=function(r){var t=r.r,n=r.g,e=r.b,u=r.a,a=Math.max(t,n,e),o=a-Math.min(t,n,e),i=o?a===t?(n-e)/o:a===n?2+(e-t)/o:4+(t-n)/o:0;return{h:60*(i<0?i+6:i),s:a?o/a*100:0,v:a/255*100,a:u}},b=function(r){var t=r.h,n=r.s,e=r.v,u=r.a;t=t/360*6,n/=100,e/=100;var a=Math.floor(t),o=e*(1-n),i=e*(1-(t-a)*n),s=e*(1-(1-t+a)*n),h=a%6;return{r:255*[e,i,o,o,s,e][h],g:255*[s,e,e,i,o,o][h],b:255*[o,o,s,e,e,i][h],a:u}},g=function(r){return{h:u(r.h),s:e(r.s,0,100),l:e(r.l,0,100),a:e(r.a)}},d=function(r){return{h:n(r.h),s:n(r.s),l:n(r.l),a:n(r.a,3)}},f=function(r){return b((n=(t=r).s,{h:t.h,s:(n*=((e=t.l)<50?e:100-e)/100)>0?2*n/(e+n)*100:0,v:e+n,a:t.a}));var t,n,e},c=function(r){return{h:(t=h(r)).h,s:(u=(200-(n=t.s))*(e=t.v)/100)>0&&u<200?n*e/100/(u<=100?u:200-u)*100:0,l:u/2,a:t.a};var t,n,e,u},l=/^hsla?\\(\\s*([+-]?\\d*\\.?\\d+)(deg|rad|grad|turn)?\\s*,\\s*([+-]?\\d*\\.?\\d+)%\\s*,\\s*([+-]?\\d*\\.?\\d+)%\\s*(?:,\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*)?\\)$/i,p=/^hsla?\\(\\s*([+-]?\\d*\\.?\\d+)(deg|rad|grad|turn)?\\s+([+-]?\\d*\\.?\\d+)%\\s+([+-]?\\d*\\.?\\d+)%\\s*(?:\\/\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*)?\\)$/i,v=/^rgba?\\(\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*,\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*,\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*(?:,\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*)?\\)$/i,m=/^rgba?\\(\\s*([+-]?\\d*\\.?\\d+)(%)?\\s+([+-]?\\d*\\.?\\d+)(%)?\\s+([+-]?\\d*\\.?\\d+)(%)?\\s*(?:\\/\\s*([+-]?\\d*\\.?\\d+)(%)?\\s*)?\\)$/i,y={string:[[function(r){var t=i.exec(r);return t?(r=t[1]).length<=4?{r:parseInt(r[0]+r[0],16),g:parseInt(r[1]+r[1],16),b:parseInt(r[2]+r[2],16),a:4===r.length?n(parseInt(r[3]+r[3],16)/255,2):1}:6===r.length||8===r.length?{r:parseInt(r.substr(0,2),16),g:parseInt(r.substr(2,2),16),b:parseInt(r.substr(4,2),16),a:8===r.length?n(parseInt(r.substr(6,2),16)/255,2):1}:null:null},\"hex\"],[function(r){var t=v.exec(r)||m.exec(r);return t?t[2]!==t[4]||t[4]!==t[6]?null:a({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:void 0===t[7]?1:Number(t[7])/(t[8]?100:1)}):null},\"rgb\"],[function(t){var n=l.exec(t)||p.exec(t);if(!n)return null;var e,u,a=g({h:(e=n[1],u=n[2],void 0===u&&(u=\"deg\"),Number(e)*(r[u]||1)),s:Number(n[3]),l:Number(n[4]),a:void 0===n[5]?1:Number(n[5])/(n[6]?100:1)});return f(a)},\"hsl\"]],object:[[function(r){var n=r.r,e=r.g,u=r.b,o=r.a,i=void 0===o?1:o;return t(n)&&t(e)&&t(u)?a({r:Number(n),g:Number(e),b:Number(u),a:Number(i)}):null},\"rgb\"],[function(r){var n=r.h,e=r.s,u=r.l,a=r.a,o=void 0===a?1:a;if(!t(n)||!t(e)||!t(u))return null;var i=g({h:Number(n),s:Number(e),l:Number(u),a:Number(o)});return f(i)},\"hsl\"],[function(r){var n=r.h,a=r.s,o=r.v,i=r.a,s=void 0===i?1:i;if(!t(n)||!t(a)||!t(o))return null;var h=function(r){return{h:u(r.h),s:e(r.s,0,100),v:e(r.v,0,100),a:e(r.a)}}({h:Number(n),s:Number(a),v:Number(o),a:Number(s)});return b(h)},\"hsv\"]]},N=function(r,t){for(var n=0;n<t.length;n++){var e=t[n][0](r);if(e)return[e,t[n][1]]}return[null,void 0]},x=function(r){return\"string\"==typeof r?N(r.trim(),y.string):\"object\"==typeof r&&null!==r?N(r,y.object):[null,void 0]},I=function(r){return x(r)[1]},M=function(r,t){var n=c(r);return{h:n.h,s:e(n.s+100*t,0,100),l:n.l,a:n.a}},H=function(r){return(299*r.r+587*r.g+114*r.b)/1e3/255},$=function(r,t){var n=c(r);return{h:n.h,s:n.s,l:e(n.l+100*t,0,100),a:n.a}},j=function(){function r(r){this.parsed=x(r)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return r.prototype.isValid=function(){return null!==this.parsed},r.prototype.brightness=function(){return n(H(this.rgba),2)},r.prototype.isDark=function(){return H(this.rgba)<.5},r.prototype.isLight=function(){return H(this.rgba)>=.5},r.prototype.toHex=function(){return r=o(this.rgba),t=r.r,e=r.g,u=r.b,i=(a=r.a)<1?s(n(255*a)):\"\",\"#\"+s(t)+s(e)+s(u)+i;var r,t,e,u,a,i},r.prototype.toRgb=function(){return o(this.rgba)},r.prototype.toRgbString=function(){return r=o(this.rgba),t=r.r,n=r.g,e=r.b,(u=r.a)<1?\"rgba(\"+t+\", \"+n+\", \"+e+\", \"+u+\")\":\"rgb(\"+t+\", \"+n+\", \"+e+\")\";var r,t,n,e,u},r.prototype.toHsl=function(){return d(c(this.rgba))},r.prototype.toHslString=function(){return r=d(c(this.rgba)),t=r.h,n=r.s,e=r.l,(u=r.a)<1?\"hsla(\"+t+\", \"+n+\"%, \"+e+\"%, \"+u+\")\":\"hsl(\"+t+\", \"+n+\"%, \"+e+\"%)\";var r,t,n,e,u},r.prototype.toHsv=function(){return r=h(this.rgba),{h:n(r.h),s:n(r.s),v:n(r.v),a:n(r.a,3)};var r},r.prototype.invert=function(){return w({r:255-(r=this.rgba).r,g:255-r.g,b:255-r.b,a:r.a});var r},r.prototype.saturate=function(r){return void 0===r&&(r=.1),w(M(this.rgba,r))},r.prototype.desaturate=function(r){return void 0===r&&(r=.1),w(M(this.rgba,-r))},r.prototype.grayscale=function(){return w(M(this.rgba,-1))},r.prototype.lighten=function(r){return void 0===r&&(r=.1),w($(this.rgba,r))},r.prototype.darken=function(r){return void 0===r&&(r=.1),w($(this.rgba,-r))},r.prototype.rotate=function(r){return void 0===r&&(r=15),this.hue(this.hue()+r)},r.prototype.alpha=function(r){return\"number\"==typeof r?w({r:(t=this.rgba).r,g:t.g,b:t.b,a:r}):n(this.rgba.a,3);var t},r.prototype.hue=function(r){var t=c(this.rgba);return\"number\"==typeof r?w({h:r,s:t.s,l:t.l,a:t.a}):n(t.h)},r.prototype.isEqual=function(r){return this.toHex()===w(r).toHex()},r}(),w=function(r){return r instanceof j?r:new j(r)},S=[],k=function(r){r.forEach(function(r){S.indexOf(r)<0&&(r(j,y),S.push(r))})},E=function(){return new j({r:255*Math.random(),g:255*Math.random(),b:255*Math.random()})};export{j as Colord,w as colord,k as extend,I as getFormat,E as random};\n","var o=function(o){var t=o/255;return t<.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)},t=function(t){return.2126*o(t.r)+.7152*o(t.g)+.0722*o(t.b)};export default function(o){o.prototype.luminance=function(){return o=t(this.rgba),void 0===(r=2)&&(r=0),void 0===n&&(n=Math.pow(10,r)),Math.round(n*o)/n+0;var o,r,n},o.prototype.contrast=function(r){void 0===r&&(r=\"#FFF\");var n,a,i,e,v,u,d,c=r instanceof o?r:new o(r);return e=this.rgba,v=c.toRgb(),u=t(e),d=t(v),n=u>d?(u+.05)/(d+.05):(d+.05)/(u+.05),void 0===(a=2)&&(a=0),void 0===i&&(i=Math.pow(10,a)),Math.floor(i*n)/i+0},o.prototype.isReadable=function(o,t){return void 0===o&&(o=\"#FFF\"),void 0===t&&(t={}),this.contrast(o)>=(e=void 0===(i=(r=t).size)?\"normal\":i,\"AAA\"===(a=void 0===(n=r.level)?\"AA\":n)&&\"normal\"===e?7:\"AA\"===a&&\"large\"===e?3:4.5);var r,n,a,i,e}}\n","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"privateApis\"];","/**\n * WordPress dependencies\n */\nimport { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/private-apis';\n\nexport const { lock, unlock } =\n\t__dangerousOptInToUnstableAPIsOnlyForCoreModules(\n\t\t'I know using unstable features means my theme or plugin will inevitably break in the next version of WordPress.',\n\t\t'@wordpress/edit-site'\n\t);\n","/**\n * External dependencies\n */\nimport { colord, extend } from 'colord';\nimport a11yPlugin from 'colord/plugins/a11y';\n\n/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { useSelect } from '@wordpress/data';\n\nconst { useGlobalSetting, useGlobalStyle } = unlock( blockEditorPrivateApis );\n\n// Enable colord's a11y plugin.\nextend( [ a11yPlugin ] );\n\nexport function useColorRandomizer( name ) {\n\tconst [ themeColors, setThemeColors ] = useGlobalSetting(\n\t\t'color.palette.theme',\n\t\tname\n\t);\n\n\tfunction randomizeColors() {\n\t\t/* eslint-disable no-restricted-syntax */\n\t\tconst randomRotationValue = Math.floor( Math.random() * 225 );\n\t\t/* eslint-enable no-restricted-syntax */\n\n\t\tconst newColors = themeColors.map( ( colorObject ) => {\n\t\t\tconst { color } = colorObject;\n\t\t\tconst newColor = colord( color )\n\t\t\t\t.rotate( randomRotationValue )\n\t\t\t\t.toHex();\n\n\t\t\treturn {\n\t\t\t\t...colorObject,\n\t\t\t\tcolor: newColor,\n\t\t\t};\n\t\t} );\n\n\t\tsetThemeColors( newColors );\n\t}\n\n\treturn window.__experimentalEnableColorRandomizer\n\t\t? [ randomizeColors ]\n\t\t: [];\n}\n\nexport function useStylesPreviewColors() {\n\tconst [ textColor = 'black' ] = useGlobalStyle( 'color.text' );\n\tconst [ backgroundColor = 'white' ] = useGlobalStyle( 'color.background' );\n\tconst [ headingColor = textColor ] = useGlobalStyle(\n\t\t'elements.h1.color.text'\n\t);\n\tconst [ coreColors ] = useGlobalSetting( 'color.palette.core' );\n\tconst [ themeColors ] = useGlobalSetting( 'color.palette.theme' );\n\tconst [ customColors ] = useGlobalSetting( 'color.palette.custom' );\n\n\tconst paletteColors = ( themeColors ?? [] )\n\t\t.concat( customColors ?? [] )\n\t\t.concat( coreColors ?? [] );\n\tconst highlightedColors = paletteColors\n\t\t.filter(\n\t\t\t// we exclude these two colors because they are already visible in the preview.\n\t\t\t( { color } ) => color !== backgroundColor && color !== headingColor\n\t\t)\n\t\t.slice( 0, 2 );\n\n\treturn {\n\t\tpaletteColors,\n\t\thighlightedColors,\n\t};\n}\n\nexport function useSupportedStyles( name, element ) {\n\tconst { supportedPanels } = useSelect(\n\t\t( select ) => {\n\t\t\treturn {\n\t\t\t\tsupportedPanels: unlock(\n\t\t\t\t\tselect( blocksStore )\n\t\t\t\t).getSupportedStyles( name, element ),\n\t\t\t};\n\t\t},\n\t\t[ name, element ]\n\t);\n\n\treturn supportedPanels;\n}\n","/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport {\n\tInspectorAdvancedControls,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { BaseControl, Button } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\t__EXPERIMENTAL_STYLE_PROPERTY,\n\tgetBlockType,\n\thasBlockSupport,\n} from '@wordpress/blocks';\nimport { useContext, useMemo, useCallback } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { useSupportedStyles } from '../../components/global-styles/hooks';\nimport { unlock } from '../../lock-unlock';\n\nconst { cleanEmptyObject, GlobalStylesContext } = unlock(\n\tblockEditorPrivateApis\n);\n\n// Block Gap is a special case and isn't defined within the blocks\n// style properties config. We'll add it here to allow it to be pushed\n// to global styles as well.\nconst STYLE_PROPERTY = {\n\t...__EXPERIMENTAL_STYLE_PROPERTY,\n\tblockGap: { value: [ 'spacing', 'blockGap' ] },\n};\n\n// TODO: Temporary duplication of constant in @wordpress/block-editor. Can be\n// removed by moving PushChangesToGlobalStylesControl to\n// @wordpress/block-editor.\nconst STYLE_PATH_TO_CSS_VAR_INFIX = {\n\t'border.color': 'color',\n\t'color.background': 'color',\n\t'color.text': 'color',\n\t'elements.link.color.text': 'color',\n\t'elements.link.:hover.color.text': 'color',\n\t'elements.link.typography.fontFamily': 'font-family',\n\t'elements.link.typography.fontSize': 'font-size',\n\t'elements.button.color.text': 'color',\n\t'elements.button.color.background': 'color',\n\t'elements.button.typography.fontFamily': 'font-family',\n\t'elements.button.typography.fontSize': 'font-size',\n\t'elements.caption.color.text': 'color',\n\t'elements.heading.color': 'color',\n\t'elements.heading.color.background': 'color',\n\t'elements.heading.typography.fontFamily': 'font-family',\n\t'elements.heading.gradient': 'gradient',\n\t'elements.heading.color.gradient': 'gradient',\n\t'elements.h1.color': 'color',\n\t'elements.h1.color.background': 'color',\n\t'elements.h1.typography.fontFamily': 'font-family',\n\t'elements.h1.color.gradient': 'gradient',\n\t'elements.h2.color': 'color',\n\t'elements.h2.color.background': 'color',\n\t'elements.h2.typography.fontFamily': 'font-family',\n\t'elements.h2.color.gradient': 'gradient',\n\t'elements.h3.color': 'color',\n\t'elements.h3.color.background': 'color',\n\t'elements.h3.typography.fontFamily': 'font-family',\n\t'elements.h3.color.gradient': 'gradient',\n\t'elements.h4.color': 'color',\n\t'elements.h4.color.background': 'color',\n\t'elements.h4.typography.fontFamily': 'font-family',\n\t'elements.h4.color.gradient': 'gradient',\n\t'elements.h5.color': 'color',\n\t'elements.h5.color.background': 'color',\n\t'elements.h5.typography.fontFamily': 'font-family',\n\t'elements.h5.color.gradient': 'gradient',\n\t'elements.h6.color': 'color',\n\t'elements.h6.color.background': 'color',\n\t'elements.h6.typography.fontFamily': 'font-family',\n\t'elements.h6.color.gradient': 'gradient',\n\t'color.gradient': 'gradient',\n\tblockGap: 'spacing',\n\t'typography.fontSize': 'font-size',\n\t'typography.fontFamily': 'font-family',\n};\n\n// TODO: Temporary duplication of constant in @wordpress/block-editor. Can be\n// removed by moving PushChangesToGlobalStylesControl to\n// @wordpress/block-editor.\nconst STYLE_PATH_TO_PRESET_BLOCK_ATTRIBUTE = {\n\t'border.color': 'borderColor',\n\t'color.background': 'backgroundColor',\n\t'color.text': 'textColor',\n\t'color.gradient': 'gradient',\n\t'typography.fontSize': 'fontSize',\n\t'typography.fontFamily': 'fontFamily',\n};\n\nconst SUPPORTED_STYLES = [ 'border', 'color', 'spacing', 'typography' ];\n\nconst getValueFromObjectPath = ( object, path ) => {\n\tlet value = object;\n\tpath.forEach( ( fieldName ) => {\n\t\tvalue = value?.[ fieldName ];\n\t} );\n\treturn value;\n};\n\nconst flatBorderProperties = [ 'borderColor', 'borderWidth', 'borderStyle' ];\nconst sides = [ 'top', 'right', 'bottom', 'left' ];\n\nfunction getBorderStyleChanges( border, presetColor, userStyle ) {\n\tif ( ! border && ! presetColor ) {\n\t\treturn [];\n\t}\n\n\tconst changes = [\n\t\t...getFallbackBorderStyleChange( 'top', border, userStyle ),\n\t\t...getFallbackBorderStyleChange( 'right', border, userStyle ),\n\t\t...getFallbackBorderStyleChange( 'bottom', border, userStyle ),\n\t\t...getFallbackBorderStyleChange( 'left', border, userStyle ),\n\t];\n\n\t// Handle a flat border i.e. all sides the same, CSS shorthand.\n\tconst { color: customColor, style, width } = border || {};\n\tconst hasColorOrWidth = presetColor || customColor || width;\n\n\tif ( hasColorOrWidth && ! style ) {\n\t\t// Global Styles need individual side configurations to overcome\n\t\t// theme.json configurations which are per side as well.\n\t\tsides.forEach( ( side ) => {\n\t\t\t// Only add fallback border-style if global styles don't already\n\t\t\t// have something set.\n\t\t\tif ( ! userStyle?.[ side ]?.style ) {\n\t\t\t\tchanges.push( {\n\t\t\t\t\tpath: [ 'border', side, 'style' ],\n\t\t\t\t\tvalue: 'solid',\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t}\n\n\treturn changes;\n}\n\nfunction getFallbackBorderStyleChange( side, border, globalBorderStyle ) {\n\tif ( ! border?.[ side ] || globalBorderStyle?.[ side ]?.style ) {\n\t\treturn [];\n\t}\n\n\tconst { color, style, width } = border[ side ];\n\tconst hasColorOrWidth = color || width;\n\n\tif ( ! hasColorOrWidth || style ) {\n\t\treturn [];\n\t}\n\n\treturn [ { path: [ 'border', side, 'style' ], value: 'solid' } ];\n}\n\nfunction useChangesToPush( name, attributes, userConfig ) {\n\tconst supports = useSupportedStyles( name );\n\tconst blockUserConfig = userConfig?.styles?.blocks?.[ name ];\n\n\treturn useMemo( () => {\n\t\tconst changes = supports.flatMap( ( key ) => {\n\t\t\tif ( ! STYLE_PROPERTY[ key ] ) {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t\tconst { value: path } = STYLE_PROPERTY[ key ];\n\t\t\tconst presetAttributeKey = path.join( '.' );\n\t\t\tconst presetAttributeValue =\n\t\t\t\tattributes[\n\t\t\t\t\tSTYLE_PATH_TO_PRESET_BLOCK_ATTRIBUTE[ presetAttributeKey ]\n\t\t\t\t];\n\t\t\tconst value = presetAttributeValue\n\t\t\t\t? `var:preset|${ STYLE_PATH_TO_CSS_VAR_INFIX[ presetAttributeKey ] }|${ presetAttributeValue }`\n\t\t\t\t: getValueFromObjectPath( attributes.style, path );\n\n\t\t\t// Links only have a single support entry but have two element\n\t\t\t// style properties, color and hover color. The following check\n\t\t\t// will add the hover color to the changes if required.\n\t\t\tif ( key === 'linkColor' ) {\n\t\t\t\tconst linkChanges = value ? [ { path, value } ] : [];\n\t\t\t\tconst hoverPath = [\n\t\t\t\t\t'elements',\n\t\t\t\t\t'link',\n\t\t\t\t\t':hover',\n\t\t\t\t\t'color',\n\t\t\t\t\t'text',\n\t\t\t\t];\n\t\t\t\tconst hoverValue = getValueFromObjectPath(\n\t\t\t\t\tattributes.style,\n\t\t\t\t\thoverPath\n\t\t\t\t);\n\n\t\t\t\tif ( hoverValue ) {\n\t\t\t\t\tlinkChanges.push( { path: hoverPath, value: hoverValue } );\n\t\t\t\t}\n\n\t\t\t\treturn linkChanges;\n\t\t\t}\n\n\t\t\t// The shorthand border styles can't be mapped directly as global\n\t\t\t// styles requires longhand config.\n\t\t\tif ( flatBorderProperties.includes( key ) && value ) {\n\t\t\t\t// The shorthand config path is included to clear the block attribute.\n\t\t\t\tconst borderChanges = [ { path, value } ];\n\t\t\t\tsides.forEach( ( side ) => {\n\t\t\t\t\tconst currentPath = [ ...path ];\n\t\t\t\t\tcurrentPath.splice( -1, 0, side );\n\t\t\t\t\tborderChanges.push( { path: currentPath, value } );\n\t\t\t\t} );\n\t\t\t\treturn borderChanges;\n\t\t\t}\n\n\t\t\treturn value ? [ { path, value } ] : [];\n\t\t} );\n\n\t\t// To ensure display of a visible border, global styles require a\n\t\t// default border style if a border color or width is present.\n\t\tgetBorderStyleChanges(\n\t\t\tattributes.style?.border,\n\t\t\tattributes.borderColor,\n\t\t\tblockUserConfig?.border\n\t\t).forEach( ( change ) => changes.push( change ) );\n\n\t\treturn changes;\n\t}, [ supports, attributes, blockUserConfig ] );\n}\n\n/**\n * Sets the value at path of object.\n * If a portion of path doesn’t exist, it’s created.\n * Arrays are created for missing index properties while objects are created\n * for all other missing properties.\n *\n * This function intentionally mutates the input object.\n *\n * Inspired by _.set().\n *\n * @see https://lodash.com/docs/4.17.15#set\n *\n * @todo Needs to be deduplicated with its copy in `@wordpress/core-data`.\n *\n * @param {Object} object Object to modify\n * @param {Array}  path   Path of the property to set.\n * @param {*}      value  Value to set.\n */\nfunction setNestedValue( object, path, value ) {\n\tif ( ! object || typeof object !== 'object' ) {\n\t\treturn object;\n\t}\n\n\tpath.reduce( ( acc, key, idx ) => {\n\t\tif ( acc[ key ] === undefined ) {\n\t\t\tif ( Number.isInteger( path[ idx + 1 ] ) ) {\n\t\t\t\tacc[ key ] = [];\n\t\t\t} else {\n\t\t\t\tacc[ key ] = {};\n\t\t\t}\n\t\t}\n\t\tif ( idx === path.length - 1 ) {\n\t\t\tacc[ key ] = value;\n\t\t}\n\t\treturn acc[ key ];\n\t}, object );\n\n\treturn object;\n}\n\nfunction cloneDeep( object ) {\n\treturn ! object ? {} : JSON.parse( JSON.stringify( object ) );\n}\n\nfunction PushChangesToGlobalStylesControl( {\n\tname,\n\tattributes,\n\tsetAttributes,\n} ) {\n\tconst { user: userConfig, setUserConfig } =\n\t\tuseContext( GlobalStylesContext );\n\n\tconst changes = useChangesToPush( name, attributes, userConfig );\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\tconst pushChanges = useCallback( () => {\n\t\tif ( changes.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( changes.length > 0 ) {\n\t\t\tconst { style: blockStyles } = attributes;\n\n\t\t\tconst newBlockStyles = cloneDeep( blockStyles );\n\t\t\tconst newUserConfig = cloneDeep( userConfig );\n\n\t\t\tfor ( const { path, value } of changes ) {\n\t\t\t\tsetNestedValue( newBlockStyles, path, undefined );\n\t\t\t\tsetNestedValue(\n\t\t\t\t\tnewUserConfig,\n\t\t\t\t\t[ 'styles', 'blocks', name, ...path ],\n\t\t\t\t\tvalue\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst newBlockAttributes = {\n\t\t\t\tborderColor: undefined,\n\t\t\t\tbackgroundColor: undefined,\n\t\t\t\ttextColor: undefined,\n\t\t\t\tgradient: undefined,\n\t\t\t\tfontSize: undefined,\n\t\t\t\tfontFamily: undefined,\n\t\t\t\tstyle: cleanEmptyObject( newBlockStyles ),\n\t\t\t};\n\n\t\t\t// @wordpress/core-data doesn't support editing multiple entity types in\n\t\t\t// a single undo level. So for now, we disable @wordpress/core-data undo\n\t\t\t// tracking and implement our own Undo button in the snackbar\n\t\t\t// notification.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( newBlockAttributes );\n\t\t\tsetUserConfig( () => newUserConfig, { undoIgnore: true } );\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: Title of the block e.g. 'Heading'.\n\t\t\t\t\t__( '%s styles applied.' ),\n\t\t\t\t\tgetBlockType( name ).title\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tactions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'Undo' ),\n\t\t\t\t\t\t\tonClick() {\n\t\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\t\tsetAttributes( attributes );\n\t\t\t\t\t\t\t\tsetUserConfig( () => userConfig, {\n\t\t\t\t\t\t\t\t\tundoIgnore: true,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}, [\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tattributes,\n\t\tchanges,\n\t\tcreateSuccessNotice,\n\t\tname,\n\t\tsetAttributes,\n\t\tsetUserConfig,\n\t\tuserConfig,\n\t] );\n\n\treturn (\n\t\t<BaseControl\n\t\t\tclassName=\"edit-site-push-changes-to-global-styles-control\"\n\t\t\thelp={ sprintf(\n\t\t\t\t// translators: %s: Title of the block e.g. 'Heading'.\n\t\t\t\t__(\n\t\t\t\t\t'Apply this block’s typography, spacing, dimensions, and color styles to all %s blocks.'\n\t\t\t\t),\n\t\t\t\tgetBlockType( name ).title\n\t\t\t) }\n\t\t>\n\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t{ __( 'Styles' ) }\n\t\t\t</BaseControl.VisualLabel>\n\t\t\t<Button\n\t\t\t\tvariant=\"primary\"\n\t\t\t\tdisabled={ changes.length === 0 }\n\t\t\t\tonClick={ pushChanges }\n\t\t\t>\n\t\t\t\t{ __( 'Apply globally' ) }\n\t\t\t</Button>\n\t\t</BaseControl>\n\t);\n}\n\nconst withPushChangesToGlobalStyles = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst blockEditingMode = useBlockEditingMode();\n\t\tconst isBlockBasedTheme = useSelect(\n\t\t\t( select ) => select( coreStore ).getCurrentTheme()?.is_block_theme,\n\t\t\t[]\n\t\t);\n\t\tconst supportsStyles = SUPPORTED_STYLES.some( ( feature ) =>\n\t\t\thasBlockSupport( props.name, feature )\n\t\t);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BlockEdit { ...props } />\n\t\t\t\t{ blockEditingMode === 'default' &&\n\t\t\t\t\tsupportsStyles &&\n\t\t\t\t\tisBlockBasedTheme && (\n\t\t\t\t\t\t<InspectorAdvancedControls>\n\t\t\t\t\t\t\t<PushChangesToGlobalStylesControl { ...props } />\n\t\t\t\t\t\t</InspectorAdvancedControls>\n\t\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}\n);\n\naddFilter(\n\t'editor.BlockEdit',\n\t'core/edit-site/push-changes-to-global-styles',\n\twithPushChangesToGlobalStyles\n);\n","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"router\"];","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"url\"];","/**\n * WordPress dependencies\n */\nimport { getQueryArg } from '@wordpress/url';\n\nexport function isPreviewingTheme() {\n\treturn (\n\t\tgetQueryArg( window.location.href, 'wp_theme_preview' ) !== undefined\n\t);\n}\n\nexport function currentlyPreviewingTheme() {\n\tif ( isPreviewingTheme() ) {\n\t\treturn getQueryArg( window.location.href, 'wp_theme_preview' );\n\t}\n\treturn null;\n}\n","/**\n * WordPress dependencies\n */\nimport { addQueryArgs, getQueryArgs, removeQueryArgs } from '@wordpress/url';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport {\n\tisPreviewingTheme,\n\tcurrentlyPreviewingTheme,\n} from '../../utils/is-previewing-theme';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nexport function getPostLinkProps(\n\thistory,\n\tparams = {},\n\tstate,\n\tshouldReplace = false\n) {\n\tfunction onClick( event ) {\n\t\tevent.preventDefault();\n\n\t\tif ( shouldReplace ) {\n\t\t\thistory.replace( params, state );\n\t\t} else {\n\t\t\thistory.push( params, state );\n\t\t}\n\t}\n\n\tconst currentArgs = getQueryArgs( window.location.href );\n\tconst currentUrlWithoutArgs = removeQueryArgs(\n\t\twindow.location.href,\n\t\t...Object.keys( currentArgs )\n\t);\n\n\tif ( isPreviewingTheme() ) {\n\t\tparams = {\n\t\t\t...params,\n\t\t\twp_theme_preview: currentlyPreviewingTheme(),\n\t\t};\n\t}\n\n\tconst newUrl = addQueryArgs( currentUrlWithoutArgs, params );\n\n\treturn {\n\t\thref: newUrl,\n\t\tonClick,\n\t};\n}\n\nexport function useLink( params, state, shouldReplace ) {\n\tconst history = useHistory();\n\treturn getPostLinkProps( history, params, state, shouldReplace );\n}\n\nexport default function Link( {\n\tparams = {},\n\tstate,\n\treplace: shouldReplace = false,\n\tchildren,\n\t...props\n} ) {\n\tconst { href, onClick } = useLink( params, state, shouldReplace );\n\n\treturn (\n\t\t<a href={ href } onClick={ onClick } { ...props }>\n\t\t\t{ children }\n\t\t</a>\n\t);\n}\n","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"patterns\"];","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as patternPrivateApis } from '@wordpress/patterns';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\n// Navigation\nexport const NAVIGATION_POST_TYPE = 'wp_navigation';\n\n// Templates.\nexport const TEMPLATE_POST_TYPE = 'wp_template';\nexport const TEMPLATE_PART_POST_TYPE = 'wp_template_part';\nexport const TEMPLATE_ORIGINS = {\n\tcustom: 'custom',\n\ttheme: 'theme',\n\tplugin: 'plugin',\n};\nexport const TEMPLATE_PART_AREA_DEFAULT_CATEGORY = 'uncategorized';\n\n// Patterns.\nexport const {\n\tPATTERN_TYPES,\n\tPATTERN_DEFAULT_CATEGORY,\n\tPATTERN_USER_CATEGORY,\n\tEXCLUDED_PATTERN_SOURCES,\n\tPATTERN_SYNC_TYPES,\n} = unlock( patternPrivateApis );\n\n// Entities that are editable in focus mode.\nexport const FOCUSABLE_ENTITIES = [\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES.user,\n];\n\nexport const POST_TYPE_LABELS = {\n\t[ TEMPLATE_POST_TYPE ]: __( 'Template' ),\n\t[ TEMPLATE_PART_POST_TYPE ]: __( 'Template part' ),\n\t[ PATTERN_TYPES.user ]: __( 'Pattern' ),\n\t[ NAVIGATION_POST_TYPE ]: __( 'Navigation' ),\n};\n\n// DataViews constants\nexport const LAYOUT_GRID = 'grid';\nexport const LAYOUT_TABLE = 'table';\nexport const LAYOUT_LIST = 'list';\nexport const ENUMERATION_TYPE = 'enumeration';\nexport const OPERATOR_IN = 'in';\nexport const OPERATOR_NOT_IN = 'notIn';\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { BlockControls } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { ToolbarButton } from '@wordpress/components';\nimport { addFilter } from '@wordpress/hooks';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { useLink } from '../components/routes/link';\nimport { unlock } from '../lock-unlock';\nimport { TEMPLATE_PART_POST_TYPE } from '../utils/constants';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nfunction EditTemplatePartMenuItem( { attributes } ) {\n\tconst { theme, slug } = attributes;\n\tconst { params } = useLocation();\n\tconst templatePart = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCurrentTheme, getEntityRecord } = select( coreStore );\n\n\t\t\treturn getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t\t// Ideally this should be an official public API.\n\t\t\t\t`${ theme || getCurrentTheme()?.stylesheet }//${ slug }`\n\t\t\t);\n\t\t},\n\t\t[ theme, slug ]\n\t);\n\n\tconst linkProps = useLink(\n\t\t{\n\t\t\tpostId: templatePart?.id,\n\t\t\tpostType: templatePart?.type,\n\t\t\tcanvas: 'edit',\n\t\t},\n\t\t{\n\t\t\tfromTemplateId: params.postId || templatePart?.id,\n\t\t}\n\t);\n\n\tif ( ! templatePart ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BlockControls group=\"other\">\n\t\t\t<ToolbarButton\n\t\t\t\t{ ...linkProps }\n\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\tlinkProps.onClick( event );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ __( 'Edit' ) }\n\t\t\t</ToolbarButton>\n\t\t</BlockControls>\n\t);\n}\n\nexport const withEditBlockControls = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst { attributes, name } = props;\n\t\tconst isDisplayed = name === 'core/template-part' && attributes.slug;\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BlockEdit { ...props } />\n\t\t\t\t{ isDisplayed && (\n\t\t\t\t\t<EditTemplatePartMenuItem attributes={ attributes } />\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t},\n\t'withEditBlockControls'\n);\n\naddFilter(\n\t'editor.BlockEdit',\n\t'core/edit-site/template-part-edit-button',\n\twithEditBlockControls\n);\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { BlockControls, useBlockEditingMode } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { ToolbarButton } from '@wordpress/components';\nimport { addFilter } from '@wordpress/hooks';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { useLink } from '../components/routes/link';\nimport { unlock } from '../lock-unlock';\nimport { NAVIGATION_POST_TYPE } from '../utils/constants';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nfunction NavigationMenuEdit( { attributes } ) {\n\tconst { ref } = attributes;\n\tconst { params } = useLocation();\n\tconst blockEditingMode = useBlockEditingMode();\n\tconst navigationMenu = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( coreStore ).getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tNAVIGATION_POST_TYPE,\n\t\t\t\t// Ideally this should be an official public API.\n\t\t\t\tref\n\t\t\t);\n\t\t},\n\t\t[ ref ]\n\t);\n\n\tconst linkProps = useLink(\n\t\t{\n\t\t\tpostId: navigationMenu?.id,\n\t\t\tpostType: navigationMenu?.type,\n\t\t\tcanvas: 'edit',\n\t\t},\n\t\t{\n\t\t\t// this applies to Navigation Menus as well.\n\t\t\tfromTemplateId: params.postId || navigationMenu?.id,\n\t\t}\n\t);\n\n\t// A non-default setting for block editing mode indicates that the\n\t// editor should restrict \"editing\" actions. Therefore the `Edit` button\n\t// should not be displayed.\n\tif ( ! navigationMenu || blockEditingMode !== 'default' ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BlockControls group=\"other\">\n\t\t\t<ToolbarButton\n\t\t\t\t{ ...linkProps }\n\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\tlinkProps.onClick( event );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ __( 'Edit' ) }\n\t\t\t</ToolbarButton>\n\t\t</BlockControls>\n\t);\n}\n\nexport const withEditBlockControls = createHigherOrderComponent(\n\t( BlockEdit ) => ( props ) => {\n\t\tconst { attributes, name } = props;\n\t\tconst isDisplayed = name === 'core/navigation' && attributes.ref;\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<BlockEdit { ...props } />\n\t\t\t\t{ isDisplayed && (\n\t\t\t\t\t<NavigationMenuEdit attributes={ attributes } />\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t},\n\t'withEditBlockControls'\n);\n\naddFilter(\n\t'editor.BlockEdit',\n\t'core/edit-site/navigation-edit-button',\n\twithEditBlockControls\n);\n","/**\n * WordPress dependencies\n */\nimport { combineReducers } from '@wordpress/data';\n\n/**\n * Reducer returning the settings.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function settings( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'UPDATE_SETTINGS':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t...action.settings,\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer keeping track of the currently edited Post Type,\n * Post Id and the context provided to fill the content of the block editor.\n *\n * @param {Object} state  Current edited post.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function editedPost( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SET_EDITED_POST':\n\t\t\treturn {\n\t\t\t\tpostType: action.postType,\n\t\t\t\tid: action.id,\n\t\t\t\tcontext: action.context,\n\t\t\t};\n\t\tcase 'SET_EDITED_POST_CONTEXT':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tcontext: action.context,\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer to set the save view panel open or closed.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n */\nexport function saveViewPanel( state = false, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SET_IS_SAVE_VIEW_OPENED':\n\t\t\treturn action.isOpen;\n\t\tcase 'SET_CANVAS_MODE':\n\t\t\treturn false;\n\t}\n\treturn state;\n}\n\n/**\n * Reducer used to track the site editor canvas mode (edit or view).\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n */\nfunction canvasMode( state = 'init', action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SET_CANVAS_MODE':\n\t\t\treturn action.mode;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer used to track the site editor canvas container view.\n * Default is `undefined`, denoting the default, visual block editor.\n * This could be, for example, `'style-book'` (the style book).\n *\n * @param {string|undefined} state  Current state.\n * @param {Object}           action Dispatched action.\n */\nfunction editorCanvasContainerView( state = undefined, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SET_EDITOR_CANVAS_CONTAINER_VIEW':\n\t\t\treturn action.view;\n\t}\n\n\treturn state;\n}\n\nexport default combineReducers( {\n\tsettings,\n\teditedPost,\n\tsaveViewPanel,\n\tcanvasMode,\n\teditorCanvasContainerView,\n} );\n","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"apiFetch\"];","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"a11y\"];","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"htmlEntities\"];","/**\n * The identifier for the data store.\n *\n * @type {string}\n */\nexport const STORE_NAME = 'core/edit-site';\n","/**\n * Internal dependencies\n */\nimport { TEMPLATE_ORIGINS } from './constants';\n\n/**\n * Check if a template is revertable to its original theme-provided template file.\n *\n * @param {Object} template The template entity to check.\n * @return {boolean} Whether the template is revertable.\n */\nexport default function isTemplateRevertable( template ) {\n\tif ( ! template ) {\n\t\treturn false;\n\t}\n\t/* eslint-disable camelcase */\n\treturn (\n\t\ttemplate?.source === TEMPLATE_ORIGINS.custom && template?.has_theme_file\n\t);\n\t/* eslint-enable camelcase */\n}\n","/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\nimport { parse, __unstableSerializeAndClean } from '@wordpress/blocks';\nimport deprecated from '@wordpress/deprecated';\nimport { addQueryArgs } from '@wordpress/url';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as interfaceStore } from '@wordpress/interface';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as editorStore } from '@wordpress/editor';\nimport { speak } from '@wordpress/a11y';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { STORE_NAME as editSiteStoreName } from './constants';\nimport isTemplateRevertable from '../utils/is-template-revertable';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n} from '../utils/constants';\n/**\n * Dispatches an action that toggles a feature flag.\n *\n * @param {string} featureName Feature name.\n */\nexport function toggleFeature( featureName ) {\n\treturn function ( { registry } ) {\n\t\tdeprecated(\n\t\t\t\"dispatch( 'core/edit-site' ).toggleFeature( featureName )\",\n\t\t\t{\n\t\t\t\tsince: '6.0',\n\t\t\t\talternative:\n\t\t\t\t\t\"dispatch( 'core/preferences').toggle( 'core/edit-site', featureName )\",\n\t\t\t}\n\t\t);\n\n\t\tregistry\n\t\t\t.dispatch( preferencesStore )\n\t\t\t.toggle( 'core/edit-site', featureName );\n\t};\n}\n\n/**\n * Action that changes the width of the editing canvas.\n *\n * @deprecated\n *\n * @param {string} deviceType\n *\n * @return {Object} Action object.\n */\nexport const __experimentalSetPreviewDeviceType =\n\t( deviceType ) =>\n\t( { registry } ) => {\n\t\tdeprecated(\n\t\t\t\"dispatch( 'core/edit-site' ).__experimentalSetPreviewDeviceType\",\n\t\t\t{\n\t\t\t\tsince: '6.5',\n\t\t\t\tversion: '6.7',\n\t\t\t\thint: 'registry.dispatch( editorStore ).setDeviceType',\n\t\t\t}\n\t\t);\n\t\tregistry.dispatch( editorStore ).setDeviceType( deviceType );\n\t};\n\n/**\n * Action that sets a template, optionally fetching it from REST API.\n *\n * @return {Object} Action object.\n */\nexport function setTemplate() {\n\tdeprecated( \"dispatch( 'core/edit-site' ).setTemplate\", {\n\t\tsince: '6.5',\n\t\tversion: '6.8',\n\t\thint: 'The setTemplate is not needed anymore, the correct entity is resolved from the URL automatically.',\n\t} );\n\n\treturn {\n\t\ttype: 'NOTHING',\n\t};\n}\n\n/**\n * Action that adds a new template and sets it as the current template.\n *\n * @param {Object} template The template.\n *\n * @deprecated\n *\n * @return {Object} Action object used to set the current template.\n */\nexport const addTemplate =\n\t( template ) =>\n\tasync ( { dispatch, registry } ) => {\n\t\tdeprecated( \"dispatch( 'core/edit-site' ).addTemplate\", {\n\t\t\tsince: '6.5',\n\t\t\tversion: '6.8',\n\t\t\thint: 'use saveEntityRecord directly',\n\t\t} );\n\n\t\tconst newTemplate = await registry\n\t\t\t.dispatch( coreStore )\n\t\t\t.saveEntityRecord( 'postType', TEMPLATE_POST_TYPE, template );\n\n\t\tif ( template.content ) {\n\t\t\tregistry\n\t\t\t\t.dispatch( coreStore )\n\t\t\t\t.editEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t\tnewTemplate.id,\n\t\t\t\t\t{ blocks: parse( template.content ) },\n\t\t\t\t\t{ undoIgnore: true }\n\t\t\t\t);\n\t\t}\n\n\t\tdispatch( {\n\t\t\ttype: 'SET_EDITED_POST',\n\t\t\tpostType: TEMPLATE_POST_TYPE,\n\t\t\tid: newTemplate.id,\n\t\t} );\n\t};\n\n/**\n * Action that removes a template.\n *\n * @param {Object} template The template object.\n */\nexport const removeTemplate =\n\t( template ) =>\n\tasync ( { registry } ) => {\n\t\ttry {\n\t\t\tawait registry\n\t\t\t\t.dispatch( coreStore )\n\t\t\t\t.deleteEntityRecord( 'postType', template.type, template.id, {\n\t\t\t\t\tforce: true,\n\t\t\t\t} );\n\n\t\t\tconst lastError = registry\n\t\t\t\t.select( coreStore )\n\t\t\t\t.getLastEntityDeleteError(\n\t\t\t\t\t'postType',\n\t\t\t\t\ttemplate.type,\n\t\t\t\t\ttemplate.id\n\t\t\t\t);\n\n\t\t\tif ( lastError ) {\n\t\t\t\tthrow lastError;\n\t\t\t}\n\n\t\t\t// Depending on how the entity was retrieved it's title might be\n\t\t\t// an object or simple string.\n\t\t\tconst templateTitle =\n\t\t\t\ttypeof template.title === 'string'\n\t\t\t\t\t? template.title\n\t\t\t\t\t: template.title?.rendered;\n\n\t\t\tregistry.dispatch( noticesStore ).createSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: The template/part's name. */\n\t\t\t\t\t__( '\"%s\" deleted.' ),\n\t\t\t\t\tdecodeEntities( templateTitle )\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar', id: 'site-editor-template-deleted-success' }\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while deleting the template.' );\n\n\t\t\tregistry\n\t\t\t\t.dispatch( noticesStore )\n\t\t\t\t.createErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t}\n\t};\n\n/**\n * Action that sets a template part.\n *\n * @param {string} templatePartId The template part ID.\n *\n * @return {Object} Action object.\n */\nexport function setTemplatePart( templatePartId ) {\n\treturn {\n\t\ttype: 'SET_EDITED_POST',\n\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\tid: templatePartId,\n\t};\n}\n\n/**\n * Action that sets a navigation menu.\n *\n * @param {string} navigationMenuId The Navigation Menu Post ID.\n *\n * @return {Object} Action object.\n */\nexport function setNavigationMenu( navigationMenuId ) {\n\treturn {\n\t\ttype: 'SET_EDITED_POST',\n\t\tpostType: NAVIGATION_POST_TYPE,\n\t\tid: navigationMenuId,\n\t};\n}\n\n/**\n * Action that sets an edited entity.\n *\n * @param {string} postType The entity's post type.\n * @param {string} postId   The entity's ID.\n * @param {Object} context  The entity's context.\n *\n * @return {Object} Action object.\n */\nexport function setEditedEntity( postType, postId, context ) {\n\treturn {\n\t\ttype: 'SET_EDITED_POST',\n\t\tpostType,\n\t\tid: postId,\n\t\tcontext,\n\t};\n}\n\n/**\n * @deprecated\n */\nexport function setHomeTemplateId() {\n\tdeprecated( \"dispatch( 'core/edit-site' ).setHomeTemplateId\", {\n\t\tsince: '6.2',\n\t\tversion: '6.4',\n\t} );\n\n\treturn {\n\t\ttype: 'NOTHING',\n\t};\n}\n\n/**\n * Set's the current block editor context.\n *\n * @param {Object} context The context object.\n *\n * @return {Object} Action object.\n */\nexport function setEditedPostContext( context ) {\n\treturn {\n\t\ttype: 'SET_EDITED_POST_CONTEXT',\n\t\tcontext,\n\t};\n}\n\n/**\n * Resolves the template for a page and displays both. If no path is given, attempts\n * to use the postId to generate a path like `?p=${ postId }`.\n *\n * @deprecated\n *\n * @return {number} The resolved template ID for the page route.\n */\nexport function setPage() {\n\tdeprecated( \"dispatch( 'core/edit-site' ).setPage\", {\n\t\tsince: '6.5',\n\t\tversion: '6.8',\n\t\thint: 'The setPage is not needed anymore, the correct entity is resolved from the URL automatically.',\n\t} );\n\n\treturn { type: 'NOTHING' };\n}\n\n/**\n * Action that sets the active navigation panel menu.\n *\n * @deprecated\n *\n * @return {Object} Action object.\n */\nexport function setNavigationPanelActiveMenu() {\n\tdeprecated( \"dispatch( 'core/edit-site' ).setNavigationPanelActiveMenu\", {\n\t\tsince: '6.2',\n\t\tversion: '6.4',\n\t} );\n\n\treturn { type: 'NOTHING' };\n}\n\n/**\n * Opens the navigation panel and sets its active menu at the same time.\n *\n * @deprecated\n */\nexport function openNavigationPanelToMenu() {\n\tdeprecated( \"dispatch( 'core/edit-site' ).openNavigationPanelToMenu\", {\n\t\tsince: '6.2',\n\t\tversion: '6.4',\n\t} );\n\n\treturn { type: 'NOTHING' };\n}\n\n/**\n * Sets whether the navigation panel should be open.\n *\n * @deprecated\n */\nexport function setIsNavigationPanelOpened() {\n\tdeprecated( \"dispatch( 'core/edit-site' ).setIsNavigationPanelOpened\", {\n\t\tsince: '6.2',\n\t\tversion: '6.4',\n\t} );\n\n\treturn { type: 'NOTHING' };\n}\n\n/**\n * Returns an action object used to open/close the inserter.\n *\n * @deprecated\n *\n * @param {boolean|Object} value Whether the inserter should be opened (true) or closed (false).\n */\nexport const setIsInserterOpened =\n\t( value ) =>\n\t( { registry } ) => {\n\t\tdeprecated( \"dispatch( 'core/edit-site' ).setIsInserterOpened\", {\n\t\t\tsince: '6.5',\n\t\t\talternative: \"dispatch( 'core/editor').setIsInserterOpened\",\n\t\t} );\n\t\tregistry.dispatch( editorStore ).setIsInserterOpened( value );\n\t};\n\n/**\n * Returns an action object used to open/close the list view.\n *\n * @deprecated\n *\n * @param {boolean} isOpen A boolean representing whether the list view should be opened or closed.\n */\nexport const setIsListViewOpened =\n\t( isOpen ) =>\n\t( { registry } ) => {\n\t\tdeprecated( \"dispatch( 'core/edit-site' ).setIsListViewOpened\", {\n\t\t\tsince: '6.5',\n\t\t\talternative: \"dispatch( 'core/editor').setIsListViewOpened\",\n\t\t} );\n\t\tregistry.dispatch( editorStore ).setIsListViewOpened( isOpen );\n\t};\n\n/**\n * Returns an action object used to update the settings.\n *\n * @param {Object} settings New settings.\n *\n * @return {Object} Action object.\n */\nexport function updateSettings( settings ) {\n\treturn {\n\t\ttype: 'UPDATE_SETTINGS',\n\t\tsettings,\n\t};\n}\n\n/**\n * Sets whether the save view panel should be open.\n *\n * @param {boolean} isOpen If true, opens the save view. If false, closes it.\n *                         It does not toggle the state, but sets it directly.\n */\nexport function setIsSaveViewOpened( isOpen ) {\n\treturn {\n\t\ttype: 'SET_IS_SAVE_VIEW_OPENED',\n\t\tisOpen,\n\t};\n}\n\n/**\n * Reverts a template to its original theme-provided file.\n *\n * @param {Object}  template            The template to revert.\n * @param {Object}  [options]\n * @param {boolean} [options.allowUndo] Whether to allow the user to undo\n *                                      reverting the template. Default true.\n */\nexport const revertTemplate =\n\t( template, { allowUndo = true } = {} ) =>\n\tasync ( { registry } ) => {\n\t\tconst noticeId = 'edit-site-template-reverted';\n\t\tregistry.dispatch( noticesStore ).removeNotice( noticeId );\n\t\tif ( ! isTemplateRevertable( template ) ) {\n\t\t\tregistry\n\t\t\t\t.dispatch( noticesStore )\n\t\t\t\t.createErrorNotice( __( 'This template is not revertable.' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tconst templateEntityConfig = registry\n\t\t\t\t.select( coreStore )\n\t\t\t\t.getEntityConfig( 'postType', template.type );\n\n\t\t\tif ( ! templateEntityConfig ) {\n\t\t\t\tregistry\n\t\t\t\t\t.dispatch( noticesStore )\n\t\t\t\t\t.createErrorNotice(\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'The editor has encountered an unexpected error. Please reload.'\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{ type: 'snackbar' }\n\t\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst fileTemplatePath = addQueryArgs(\n\t\t\t\t`${ templateEntityConfig.baseURL }/${ template.id }`,\n\t\t\t\t{ context: 'edit', source: 'theme' }\n\t\t\t);\n\n\t\t\tconst fileTemplate = await apiFetch( { path: fileTemplatePath } );\n\t\t\tif ( ! fileTemplate ) {\n\t\t\t\tregistry\n\t\t\t\t\t.dispatch( noticesStore )\n\t\t\t\t\t.createErrorNotice(\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'The editor has encountered an unexpected error. Please reload.'\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{ type: 'snackbar' }\n\t\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst serializeBlocks = ( {\n\t\t\t\tblocks: blocksForSerialization = [],\n\t\t\t} ) => __unstableSerializeAndClean( blocksForSerialization );\n\n\t\t\tconst edited = registry\n\t\t\t\t.select( coreStore )\n\t\t\t\t.getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\ttemplate.type,\n\t\t\t\t\ttemplate.id\n\t\t\t\t);\n\n\t\t\t// We are fixing up the undo level here to make sure we can undo\n\t\t\t// the revert in the header toolbar correctly.\n\t\t\tregistry.dispatch( coreStore ).editEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\ttemplate.type,\n\t\t\t\ttemplate.id,\n\t\t\t\t{\n\t\t\t\t\tcontent: serializeBlocks, // Required to make the `undo` behave correctly.\n\t\t\t\t\tblocks: edited.blocks, // Required to revert the blocks in the editor.\n\t\t\t\t\tsource: 'custom', // required to avoid turning the editor into a dirty state\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tundoIgnore: true, // Required to merge this edit with the last undo level.\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tconst blocks = parse( fileTemplate?.content?.raw );\n\t\t\tregistry\n\t\t\t\t.dispatch( coreStore )\n\t\t\t\t.editEntityRecord( 'postType', template.type, fileTemplate.id, {\n\t\t\t\t\tcontent: serializeBlocks,\n\t\t\t\t\tblocks,\n\t\t\t\t\tsource: 'theme',\n\t\t\t\t} );\n\n\t\t\tif ( allowUndo ) {\n\t\t\t\tconst undoRevert = () => {\n\t\t\t\t\tregistry\n\t\t\t\t\t\t.dispatch( coreStore )\n\t\t\t\t\t\t.editEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\ttemplate.type,\n\t\t\t\t\t\t\tedited.id,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcontent: serializeBlocks,\n\t\t\t\t\t\t\t\tblocks: edited.blocks,\n\t\t\t\t\t\t\t\tsource: 'custom',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t};\n\n\t\t\t\tregistry\n\t\t\t\t\t.dispatch( noticesStore )\n\t\t\t\t\t.createSuccessNotice( __( 'Template reverted.' ), {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: noticeId,\n\t\t\t\t\t\tactions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Undo' ),\n\t\t\t\t\t\t\t\tonClick: undoRevert,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t} );\n\t\t\t}\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'Template revert failed. Please reload.' );\n\t\t\tregistry\n\t\t\t\t.dispatch( noticesStore )\n\t\t\t\t.createErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t}\n\t};\n/**\n * Action that opens an editor sidebar.\n *\n * @param {?string} name Sidebar name to be opened.\n */\nexport const openGeneralSidebar =\n\t( name ) =>\n\t( { dispatch, registry } ) => {\n\t\tconst isDistractionFree = registry\n\t\t\t.select( preferencesStore )\n\t\t\t.get( 'core', 'distractionFree' );\n\t\tif ( isDistractionFree ) {\n\t\t\tdispatch.toggleDistractionFree();\n\t\t}\n\t\tregistry\n\t\t\t.dispatch( interfaceStore )\n\t\t\t.enableComplementaryArea( editSiteStoreName, name );\n\t};\n\n/**\n * Action that closes the sidebar.\n */\nexport const closeGeneralSidebar =\n\t() =>\n\t( { registry } ) => {\n\t\tregistry\n\t\t\t.dispatch( interfaceStore )\n\t\t\t.disableComplementaryArea( editSiteStoreName );\n\t};\n\nexport const switchEditorMode =\n\t( mode ) =>\n\t( { dispatch, registry } ) => {\n\t\tregistry\n\t\t\t.dispatch( 'core/preferences' )\n\t\t\t.set( 'core/edit-site', 'editorMode', mode );\n\n\t\t// Unselect blocks when we switch to a non visual mode.\n\t\tif ( mode !== 'visual' ) {\n\t\t\tregistry.dispatch( blockEditorStore ).clearSelectedBlock();\n\t\t}\n\n\t\tif ( mode === 'visual' ) {\n\t\t\tspeak( __( 'Visual editor selected' ), 'assertive' );\n\t\t} else if ( mode === 'text' ) {\n\t\t\tconst isDistractionFree = registry\n\t\t\t\t.select( preferencesStore )\n\t\t\t\t.get( 'core', 'distractionFree' );\n\t\t\tif ( isDistractionFree ) {\n\t\t\t\tdispatch.toggleDistractionFree();\n\t\t\t}\n\t\t\tspeak( __( 'Code editor selected' ), 'assertive' );\n\t\t}\n\t};\n\n/**\n * Sets whether or not the editor allows only page content to be edited.\n *\n * @param {boolean} hasPageContentFocus True to allow only page content to be\n *                                      edited, false to allow template to be\n *                                      edited.\n */\nexport const setHasPageContentFocus =\n\t( hasPageContentFocus ) =>\n\t( { dispatch, registry } ) => {\n\t\tdeprecated( `dispatch( 'core/edit-site' ).setHasPageContentFocus`, {\n\t\t\tsince: '6.5',\n\t\t} );\n\n\t\tif ( hasPageContentFocus ) {\n\t\t\tregistry.dispatch( blockEditorStore ).clearSelectedBlock();\n\t\t}\n\t\tdispatch( {\n\t\t\ttype: 'SET_HAS_PAGE_CONTENT_FOCUS',\n\t\t\thasPageContentFocus,\n\t\t} );\n\t};\n\n/**\n * Action that toggles Distraction free mode.\n * Distraction free mode expects there are no sidebars, as due to the\n * z-index values set, you can't close sidebars.\n */\nexport const toggleDistractionFree =\n\t() =>\n\t( { dispatch, registry } ) => {\n\t\tconst isDistractionFree = registry\n\t\t\t.select( preferencesStore )\n\t\t\t.get( 'core', 'distractionFree' );\n\t\tif ( ! isDistractionFree ) {\n\t\t\tregistry.batch( () => {\n\t\t\t\tregistry\n\t\t\t\t\t.dispatch( preferencesStore )\n\t\t\t\t\t.set( 'core', 'fixedToolbar', true );\n\t\t\t\tregistry.dispatch( editorStore ).setIsInserterOpened( false );\n\t\t\t\tregistry.dispatch( editorStore ).setIsListViewOpened( false );\n\t\t\t\tdispatch.closeGeneralSidebar();\n\t\t\t} );\n\t\t}\n\t\tregistry.batch( () => {\n\t\t\tregistry\n\t\t\t\t.dispatch( preferencesStore )\n\t\t\t\t.set( 'core', 'distractionFree', ! isDistractionFree );\n\t\t\tregistry\n\t\t\t\t.dispatch( noticesStore )\n\t\t\t\t.createInfoNotice(\n\t\t\t\t\tisDistractionFree\n\t\t\t\t\t\t? __( 'Distraction free off.' )\n\t\t\t\t\t\t: __( 'Distraction free on.' ),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'core/edit-site/distraction-free-mode/notice',\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t} );\n\t};\n","/**\n * WordPress dependencies\n */\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Action that switches the canvas mode.\n *\n * @param {?string} mode Canvas mode.\n */\nexport const setCanvasMode =\n\t( mode ) =>\n\t( { registry, dispatch } ) => {\n\t\tregistry.dispatch( blockEditorStore ).__unstableSetEditorMode( 'edit' );\n\t\tdispatch( {\n\t\t\ttype: 'SET_CANVAS_MODE',\n\t\t\tmode,\n\t\t} );\n\t\t// Check if the block list view should be open by default.\n\t\t// If `distractionFree` mode is enabled, the block list view should not be open.\n\t\tif (\n\t\t\tmode === 'edit' &&\n\t\t\tregistry\n\t\t\t\t.select( preferencesStore )\n\t\t\t\t.get( 'core', 'showListViewByDefault' ) &&\n\t\t\t! registry\n\t\t\t\t.select( preferencesStore )\n\t\t\t\t.get( 'core', 'distractionFree' )\n\t\t) {\n\t\t\tregistry.dispatch( editorStore ).setIsListViewOpened( true );\n\t\t} else {\n\t\t\tregistry.dispatch( editorStore ).setIsListViewOpened( false );\n\t\t}\n\t\tregistry.dispatch( editorStore ).setIsInserterOpened( false );\n\t};\n\n/**\n * Action that switches the editor canvas container view.\n *\n * @param {?string} view Editor canvas container view.\n */\nexport const setEditorCanvasContainerView =\n\t( view ) =>\n\t( { dispatch } ) => {\n\t\tdispatch( {\n\t\t\ttype: 'SET_EDITOR_CANVAS_CONTAINER_VIEW',\n\t\t\tview,\n\t\t} );\n\t};\n","/**\n * External dependencies\n */\nimport memoize from 'memize';\n\n/**\n * WordPress dependencies\n */\nimport { isTemplatePart } from '@wordpress/blocks';\n\nconst EMPTY_ARRAY = [];\n\n/**\n * Get a flattened and filtered list of template parts and the matching block for that template part.\n *\n * Takes a list of blocks defined within a template, and a list of template parts, and returns a\n * flattened list of template parts and the matching block for that template part.\n *\n * @param {Array}  blocks        Blocks to flatten.\n * @param {?Array} templateParts Available template parts.\n * @return {Array} An array of template parts and their blocks.\n */\nfunction getFilteredTemplatePartBlocks( blocks = EMPTY_ARRAY, templateParts ) {\n\tconst templatePartsById = templateParts\n\t\t? // Key template parts by their ID.\n\t\t  templateParts.reduce(\n\t\t\t\t( newTemplateParts, part ) => ( {\n\t\t\t\t\t...newTemplateParts,\n\t\t\t\t\t[ part.id ]: part,\n\t\t\t\t} ),\n\t\t\t\t{}\n\t\t  )\n\t\t: {};\n\n\tconst result = [];\n\n\t// Iterate over all blocks, recursing into inner blocks.\n\t// Output will be based on a depth-first traversal.\n\tconst stack = [ ...blocks ];\n\twhile ( stack.length ) {\n\t\tconst { innerBlocks, ...block } = stack.shift();\n\t\t// Place inner blocks at the beginning of the stack to preserve order.\n\t\tstack.unshift( ...innerBlocks );\n\n\t\tif ( isTemplatePart( block ) ) {\n\t\t\tconst {\n\t\t\t\tattributes: { theme, slug },\n\t\t\t} = block;\n\t\t\tconst templatePartId = `${ theme }//${ slug }`;\n\t\t\tconst templatePart = templatePartsById[ templatePartId ];\n\n\t\t\t// Only add to output if the found template part block is in the list of available template parts.\n\t\t\tif ( templatePart ) {\n\t\t\t\tresult.push( {\n\t\t\t\t\ttemplatePart,\n\t\t\t\t\tblock,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result;\n}\n\nconst memoizedGetFilteredTemplatePartBlocks = memoize(\n\tgetFilteredTemplatePartBlocks\n);\n\nexport { memoizedGetFilteredTemplatePartBlocks as getFilteredTemplatePartBlocks };\n","/**\n * Memize options object.\n *\n * @typedef MemizeOptions\n *\n * @property {number} [maxSize] Maximum size of the cache.\n */\n\n/**\n * Internal cache entry.\n *\n * @typedef MemizeCacheNode\n *\n * @property {?MemizeCacheNode|undefined} [prev] Previous node.\n * @property {?MemizeCacheNode|undefined} [next] Next node.\n * @property {Array<*>}                   args   Function arguments for cache\n *                                               entry.\n * @property {*}                          val    Function result.\n */\n\n/**\n * Properties of the enhanced function for controlling cache.\n *\n * @typedef MemizeMemoizedFunction\n *\n * @property {()=>void} clear Clear the cache.\n */\n\n/**\n * Accepts a function to be memoized, and returns a new memoized function, with\n * optional options.\n *\n * @template {(...args: any[]) => any} F\n *\n * @param {F}             fn        Function to memoize.\n * @param {MemizeOptions} [options] Options object.\n *\n * @return {((...args: Parameters<F>) => ReturnType<F>) & MemizeMemoizedFunction} Memoized function.\n */\nfunction memize(fn, options) {\n\tvar size = 0;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar head;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar tail;\n\n\toptions = options || {};\n\n\tfunction memoized(/* ...args */) {\n\t\tvar node = head,\n\t\t\tlen = arguments.length,\n\t\t\targs,\n\t\t\ti;\n\n\t\tsearchCache: while (node) {\n\t\t\t// Perform a shallow equality test to confirm that whether the node\n\t\t\t// under test is a candidate for the arguments passed. Two arrays\n\t\t\t// are shallowly equal if their length matches and each entry is\n\t\t\t// strictly equal between the two sets. Avoid abstracting to a\n\t\t\t// function which could incur an arguments leaking deoptimization.\n\n\t\t\t// Check whether node arguments match arguments length\n\t\t\tif (node.args.length !== arguments.length) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Check whether node arguments match arguments values\n\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\tif (node.args[i] !== arguments[i]) {\n\t\t\t\t\tnode = node.next;\n\t\t\t\t\tcontinue searchCache;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif (node !== head) {\n\t\t\t\t// As tail, shift to previous. Must only shift if not also\n\t\t\t\t// head, since if both head and tail, there is no previous.\n\t\t\t\tif (node === tail) {\n\t\t\t\t\ttail = node.prev;\n\t\t\t\t}\n\n\t\t\t\t// Adjust siblings to point to each other. If node was tail,\n\t\t\t\t// this also handles new tail's empty `next` assignment.\n\t\t\t\t/** @type {MemizeCacheNode} */ (node.prev).next = node.next;\n\t\t\t\tif (node.next) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = head;\n\t\t\t\tnode.prev = null;\n\t\t\t\t/** @type {MemizeCacheNode} */ (head).prev = node;\n\t\t\t\thead = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\t// Create a copy of arguments (avoid leaking deoptimization)\n\t\targs = new Array(len);\n\t\tfor (i = 0; i < len; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\n\t\tnode = {\n\t\t\targs: args,\n\n\t\t\t// Generate the result from original function\n\t\t\tval: fn.apply(null, args),\n\t\t};\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif (head) {\n\t\t\thead.prev = node;\n\t\t\tnode.next = head;\n\t\t} else {\n\t\t\t// If no head, follows that there's no tail (at initial or reset)\n\t\t\ttail = node;\n\t\t}\n\n\t\t// Trim tail if we're reached max size and are pending cache insertion\n\t\tif (size === /** @type {MemizeOptions} */ (options).maxSize) {\n\t\t\ttail = /** @type {MemizeCacheNode} */ (tail).prev;\n\t\t\t/** @type {MemizeCacheNode} */ (tail).next = null;\n\t\t} else {\n\t\t\tsize++;\n\t\t}\n\n\t\thead = node;\n\n\t\treturn node.val;\n\t}\n\n\tmemoized.clear = function () {\n\t\thead = null;\n\t\ttail = null;\n\t\tsize = 0;\n\t};\n\n\t// Ignore reason: There's not a clear solution to create an intersection of\n\t// the function with additional properties, where the goal is to retain the\n\t// function signature of the incoming argument and add control properties\n\t// on the return value.\n\n\t// @ts-ignore\n\treturn memoized;\n}\n\nexport { memize as default };\n","/**\n * WordPress dependencies\n */\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { createRegistrySelector } from '@wordpress/data';\nimport deprecated from '@wordpress/deprecated';\nimport { Platform } from '@wordpress/element';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { getFilteredTemplatePartBlocks } from './utils';\nimport { TEMPLATE_PART_POST_TYPE } from '../utils/constants';\nimport { unlock } from '../lock-unlock';\n\n/**\n * @typedef {'template'|'template_type'} TemplateType Template type.\n */\n\n/**\n * Returns whether the given feature is enabled or not.\n *\n * @deprecated\n * @param {Object} state       Global application state.\n * @param {string} featureName Feature slug.\n *\n * @return {boolean} Is active.\n */\nexport const isFeatureActive = createRegistrySelector(\n\t( select ) => ( _, featureName ) => {\n\t\tdeprecated( `select( 'core/edit-site' ).isFeatureActive`, {\n\t\t\tsince: '6.0',\n\t\t\talternative: `select( 'core/preferences' ).get`,\n\t\t} );\n\n\t\treturn !! select( preferencesStore ).get(\n\t\t\t'core/edit-site',\n\t\t\tfeatureName\n\t\t);\n\t}\n);\n\n/**\n * Returns the current editing canvas device type.\n *\n * @deprecated\n *\n * @param {Object} state Global application state.\n *\n * @return {string} Device type.\n */\nexport const __experimentalGetPreviewDeviceType = createRegistrySelector(\n\t( select ) => () => {\n\t\tdeprecated(\n\t\t\t`select( 'core/edit-site' ).__experimentalGetPreviewDeviceType`,\n\t\t\t{\n\t\t\t\tsince: '6.5',\n\t\t\t\tversion: '6.7',\n\t\t\t\talternative: `select( 'core/editor' ).getDeviceType`,\n\t\t\t}\n\t\t);\n\t\treturn select( editorStore ).getDeviceType();\n\t}\n);\n\n/**\n * Returns whether the current user can create media or not.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} Whether the current user can create media or not.\n */\nexport const getCanUserCreateMedia = createRegistrySelector(\n\t( select ) => () => select( coreDataStore ).canUser( 'create', 'media' )\n);\n\n/**\n * Returns any available Reusable blocks.\n *\n * @param {Object} state Global application state.\n *\n * @return {Array} The available reusable blocks.\n */\nexport const getReusableBlocks = createRegistrySelector( ( select ) => () => {\n\tdeprecated(\n\t\t\"select( 'core/core' ).getEntityRecords( 'postType', 'wp_block' )\",\n\t\t{\n\t\t\tsince: '6.5',\n\t\t\tversion: '6.8',\n\t\t}\n\t);\n\tconst isWeb = Platform.OS === 'web';\n\treturn isWeb\n\t\t? select( coreDataStore ).getEntityRecords( 'postType', 'wp_block', {\n\t\t\t\tper_page: -1,\n\t\t  } )\n\t\t: [];\n} );\n\n/**\n * Returns the site editor settings.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} Settings.\n */\nexport function getSettings( state ) {\n\t// It is important that we don't inject anything into these settings locally.\n\t// The reason for this is that we have an effect in place that calls setSettings based on the previous value of getSettings.\n\t// If we add computed settings here, we'll be adding these computed settings to the state which is very unexpected.\n\treturn state.settings;\n}\n\n/**\n * @deprecated\n */\nexport function getHomeTemplateId() {\n\tdeprecated( \"select( 'core/edit-site' ).getHomeTemplateId\", {\n\t\tsince: '6.2',\n\t\tversion: '6.4',\n\t} );\n}\n\n/**\n * Returns the current edited post type (wp_template or wp_template_part).\n *\n * @param {Object} state Global application state.\n *\n * @return {TemplateType?} Template type.\n */\nexport function getEditedPostType( state ) {\n\treturn state.editedPost.postType;\n}\n\n/**\n * Returns the ID of the currently edited template or template part.\n *\n * @param {Object} state Global application state.\n *\n * @return {string?} Post ID.\n */\nexport function getEditedPostId( state ) {\n\treturn state.editedPost.id;\n}\n\n/**\n * Returns the edited post's context object.\n *\n * @deprecated\n * @param {Object} state Global application state.\n *\n * @return {Object} Page.\n */\nexport function getEditedPostContext( state ) {\n\treturn state.editedPost.context;\n}\n\n/**\n * Returns the current page object.\n *\n * @deprecated\n * @param {Object} state Global application state.\n *\n * @return {Object} Page.\n */\nexport function getPage( state ) {\n\treturn { context: state.editedPost.context };\n}\n\n/**\n * Returns true if the inserter is opened.\n *\n * @deprecated\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the inserter is opened.\n */\nexport const isInserterOpened = createRegistrySelector( ( select ) => () => {\n\tdeprecated( `select( 'core/edit-site' ).isInserterOpened`, {\n\t\tsince: '6.5',\n\t\talternative: `select( 'core/editor' ).isInserterOpened`,\n\t} );\n\treturn select( editorStore ).isInserterOpened();\n} );\n\n/**\n * Get the insertion point for the inserter.\n *\n * @deprecated\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} The root client ID, index to insert at and starting filter value.\n */\nexport const __experimentalGetInsertionPoint = createRegistrySelector(\n\t( select ) => () => {\n\t\tdeprecated(\n\t\t\t`select( 'core/edit-site' ).__experimentalGetInsertionPoint`,\n\t\t\t{\n\t\t\t\tsince: '6.5',\n\t\t\t\tversion: '6.7',\n\t\t\t}\n\t\t);\n\t\treturn unlock( select( editorStore ) ).getInsertionPoint();\n\t}\n);\n\n/**\n * Returns true if the list view is opened.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the list view is opened.\n */\nexport const isListViewOpened = createRegistrySelector( ( select ) => () => {\n\tdeprecated( `select( 'core/edit-site' ).isListViewOpened`, {\n\t\tsince: '6.5',\n\t\talternative: `select( 'core/editor' ).isListViewOpened`,\n\t} );\n\treturn select( editorStore ).isListViewOpened();\n} );\n\n/**\n * Returns the current opened/closed state of the save panel.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} True if the save panel should be open; false if closed.\n */\nexport function isSaveViewOpened( state ) {\n\treturn state.saveViewPanel;\n}\n\n/**\n * Returns the template parts and their blocks for the current edited template.\n *\n * @param {Object} state Global application state.\n * @return {Array} Template parts and their blocks in an array.\n */\nexport const getCurrentTemplateTemplateParts = createRegistrySelector(\n\t( select ) => () => {\n\t\tconst templateParts = select( coreDataStore ).getEntityRecords(\n\t\t\t'postType',\n\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t{ per_page: -1 }\n\t\t);\n\n\t\tconst clientIds =\n\t\t\tselect( blockEditorStore ).__experimentalGetGlobalBlocksByName(\n\t\t\t\t'core/template-part'\n\t\t\t);\n\t\tconst blocks =\n\t\t\tselect( blockEditorStore ).getBlocksByClientId( clientIds );\n\n\t\treturn getFilteredTemplatePartBlocks( blocks, templateParts );\n\t}\n);\n\n/**\n * Returns the current editing mode.\n *\n * @param {Object} state Global application state.\n *\n * @return {string} Editing mode.\n */\nexport const getEditorMode = createRegistrySelector( ( select ) => () => {\n\treturn select( preferencesStore ).get( 'core/edit-site', 'editorMode' );\n} );\n\n/**\n * @deprecated\n */\nexport function getCurrentTemplateNavigationPanelSubMenu() {\n\tdeprecated(\n\t\t\"dispatch( 'core/edit-site' ).getCurrentTemplateNavigationPanelSubMenu\",\n\t\t{\n\t\t\tsince: '6.2',\n\t\t\tversion: '6.4',\n\t\t}\n\t);\n}\n\n/**\n * @deprecated\n */\nexport function getNavigationPanelActiveMenu() {\n\tdeprecated( \"dispatch( 'core/edit-site' ).getNavigationPanelActiveMenu\", {\n\t\tsince: '6.2',\n\t\tversion: '6.4',\n\t} );\n}\n\n/**\n * @deprecated\n */\nexport function isNavigationOpened() {\n\tdeprecated( \"dispatch( 'core/edit-site' ).isNavigationOpened\", {\n\t\tsince: '6.2',\n\t\tversion: '6.4',\n\t} );\n}\n\n/**\n * Whether or not the editor has a page loaded into it.\n *\n * @see setPage\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether or not the editor has a page loaded into it.\n */\nexport function isPage( state ) {\n\treturn !! state.editedPost.context?.postId;\n}\n\n/**\n * Whether or not the editor allows only page content to be edited.\n *\n * @deprecated\n *\n * @return {boolean} Whether or not focus is on editing page content.\n */\nexport function hasPageContentFocus() {\n\tdeprecated( `select( 'core/edit-site' ).hasPageContentFocus`, {\n\t\tsince: '6.5',\n\t} );\n\n\treturn false;\n}\n","/**\n * Returns the current canvas mode.\n *\n * @param {Object} state Global application state.\n *\n * @return {string} Canvas mode.\n */\nexport function getCanvasMode( state ) {\n\treturn state.canvasMode;\n}\n\n/**\n * Returns the editor canvas container view.\n *\n * @param {Object} state Global application state.\n *\n * @return {string} Editor canvas container view.\n */\nexport function getEditorCanvasContainerView( state ) {\n\treturn state.editorCanvasContainerView;\n}\n","/**\n * WordPress dependencies\n */\nimport { createReduxStore, register } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport reducer from './reducer';\nimport * as actions from './actions';\nimport * as privateActions from './private-actions';\nimport * as selectors from './selectors';\nimport * as privateSelectors from './private-selectors';\nimport { STORE_NAME } from './constants';\nimport { unlock } from '../lock-unlock';\n\nexport const storeConfig = {\n\treducer,\n\tactions,\n\tselectors,\n};\n\nexport const store = createReduxStore( STORE_NAME, storeConfig );\nregister( store );\nunlock( store ).registerPrivateSelectors( privateSelectors );\nunlock( store ).registerPrivateActions( privateActions );\n","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"keyboardShortcuts\"];","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"commands\"];","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"coreCommands\"];","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst navigation = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"M12 4c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 14.5c-3.6 0-6.5-2.9-6.5-6.5S8.4 5.5 12 5.5s6.5 2.9 6.5 6.5-2.9 6.5-6.5 6.5zM9 16l4.5-3L15 8.4l-4.5 3L9 16z\" />\n\t</SVG>\n);\n\nexport default navigation;\n","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nexport const styles = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"M12 4c-4.4 0-8 3.6-8 8v.1c0 4.1 3.2 7.5 7.2 7.9h.8c4.4 0 8-3.6 8-8s-3.6-8-8-8zm0 15V5c3.9 0 7 3.1 7 7s-3.1 7-7 7z\" />\n\t</SVG>\n);\n\nexport default styles;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst page = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M15.5 7.5h-7V9h7V7.5Zm-7 3.5h7v1.5h-7V11Zm7 3.5h-7V16h7v-1.5Z\" />\n\t\t<Path d=\"M17 4H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2ZM7 5.5h10a.5.5 0 0 1 .5.5v12a.5.5 0 0 1-.5.5H7a.5.5 0 0 1-.5-.5V6a.5.5 0 0 1 .5-.5Z\" />\n\t</SVG>\n);\n\nexport default page;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst layout = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M18 5.5H6a.5.5 0 00-.5.5v3h13V6a.5.5 0 00-.5-.5zm.5 5H10v8h8a.5.5 0 00.5-.5v-7.5zm-10 0h-3V18a.5.5 0 00.5.5h2.5v-8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z\" />\n\t</SVG>\n);\n\nexport default layout;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst symbol = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M21.3 10.8l-5.6-5.6c-.7-.7-1.8-.7-2.5 0l-5.6 5.6c-.7.7-.7 1.8 0 2.5l5.6 5.6c.3.3.8.5 1.2.5s.9-.2 1.2-.5l5.6-5.6c.8-.7.8-1.9.1-2.5zm-1 1.4l-5.6 5.6c-.1.1-.3.1-.4 0l-5.6-5.6c-.1-.1-.1-.3 0-.4l5.6-5.6s.1-.1.2-.1.1 0 .2.1l5.6 5.6c.1.1.1.3 0 .4zm-16.6-.4L10 5.5l-1-1-6.3 6.3c-.7.7-.7 1.8 0 2.5L9 19.5l1.1-1.1-6.3-6.3c-.2 0-.2-.2-.1-.3z\" />\n\t</SVG>\n);\n\nexport default symbol;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\n\nexport default function SidebarButton( props ) {\n\treturn (\n\t\t<Button\n\t\t\t{ ...props }\n\t\t\tclassName={ classnames(\n\t\t\t\t'edit-site-sidebar-button',\n\t\t\t\tprops.className\n\t\t\t) }\n\t\t/>\n\t);\n}\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { isRTL, __, sprintf } from '@wordpress/i18n';\nimport { chevronRight, chevronLeft } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport SidebarButton from '../sidebar-button';\nimport {\n\tisPreviewingTheme,\n\tcurrentlyPreviewingTheme,\n} from '../../utils/is-previewing-theme';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nexport default function SidebarNavigationScreen( {\n\tisRoot,\n\ttitle,\n\tactions,\n\tmeta,\n\tcontent,\n\tfooter,\n\tdescription,\n\tbackPath: backPathProp,\n} ) {\n\tconst { dashboardLink, dashboardLinkText } = useSelect( ( select ) => {\n\t\tconst { getSettings } = unlock( select( editSiteStore ) );\n\t\treturn {\n\t\t\tdashboardLink: getSettings().__experimentalDashboardLink,\n\t\t\tdashboardLinkText: getSettings().__experimentalDashboardLinkText,\n\t\t};\n\t}, [] );\n\tconst { getTheme } = useSelect( coreStore );\n\tconst location = useLocation();\n\tconst navigator = useNavigator();\n\tconst theme = getTheme( currentlyPreviewingTheme() );\n\tconst icon = isRTL() ? chevronRight : chevronLeft;\n\n\treturn (\n\t\t<>\n\t\t\t<VStack\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'edit-site-sidebar-navigation-screen__main',\n\t\t\t\t\t{\n\t\t\t\t\t\t'has-footer': !! footer,\n\t\t\t\t\t}\n\t\t\t\t) }\n\t\t\t\tspacing={ 0 }\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\tspacing={ 4 }\n\t\t\t\t\talignment=\"flex-start\"\n\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__title-icon\"\n\t\t\t\t>\n\t\t\t\t\t{ ! isRoot && (\n\t\t\t\t\t\t<SidebarButton\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst backPath =\n\t\t\t\t\t\t\t\t\tbackPathProp ?? location.state?.backPath;\n\t\t\t\t\t\t\t\tif ( backPath ) {\n\t\t\t\t\t\t\t\t\tnavigator.goTo( backPath, {\n\t\t\t\t\t\t\t\t\t\tisBack: true,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnavigator.goToParent();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\t\tshowTooltip={ false }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isRoot && (\n\t\t\t\t\t\t<SidebarButton\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tdashboardLinkText || __( 'Go to the Dashboard' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thref={ dashboardLink || 'index.php' }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<Heading\n\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__title\"\n\t\t\t\t\t\tcolor={ '#e0e0e0' /* $gray-200 */ }\n\t\t\t\t\t\tlevel={ 1 }\n\t\t\t\t\t\tsize={ 20 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ! isPreviewingTheme()\n\t\t\t\t\t\t\t? title\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t'Previewing %1$s: %2$s',\n\t\t\t\t\t\t\t\t\ttheme?.name?.rendered,\n\t\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t\t  ) }\n\t\t\t\t\t</Heading>\n\t\t\t\t\t{ actions && (\n\t\t\t\t\t\t<div className=\"edit-site-sidebar-navigation-screen__actions\">\n\t\t\t\t\t\t\t{ actions }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t\t{ meta && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<div className=\"edit-site-sidebar-navigation-screen__meta\">\n\t\t\t\t\t\t\t{ meta }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\n\t\t\t\t<div className=\"edit-site-sidebar-navigation-screen__content\">\n\t\t\t\t\t{ description && (\n\t\t\t\t\t\t<p className=\"edit-site-sidebar-navigation-screen__description\">\n\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t) }\n\t\t\t\t\t{ content }\n\t\t\t\t</div>\n\t\t\t</VStack>\n\t\t\t{ footer && (\n\t\t\t\t<footer className=\"edit-site-sidebar-navigation-screen__footer\">\n\t\t\t\t\t{ footer }\n\t\t\t\t</footer>\n\t\t\t) }\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst chevronLeftSmall = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"m13.1 16-3.4-4 3.4-4 1.1 1-2.6 3 2.6 3-1.1 1z\" />\n\t</SVG>\n);\n\nexport default chevronLeftSmall;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst chevronRightSmall = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M10.8622 8.04053L14.2805 12.0286L10.8622 16.0167L9.72327 15.0405L12.3049 12.0286L9.72327 9.01672L10.8622 8.04053Z\" />\n\t</SVG>\n);\n\nexport default chevronRightSmall;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalItem as Item,\n\t__experimentalHStack as HStack,\n\tFlexBlock,\n} from '@wordpress/components';\nimport { isRTL } from '@wordpress/i18n';\nimport { chevronRightSmall, chevronLeftSmall, Icon } from '@wordpress/icons';\n\nexport default function SidebarNavigationItem( {\n\tclassName,\n\ticon,\n\twithChevron = false,\n\tsuffix,\n\tchildren,\n\t...props\n} ) {\n\treturn (\n\t\t<Item\n\t\t\tclassName={ classnames(\n\t\t\t\t'edit-site-sidebar-navigation-item',\n\t\t\t\t{ 'with-suffix': ! withChevron && suffix },\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t{ icon && (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tstyle={ { fill: 'currentcolor' } }\n\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<FlexBlock>{ children }</FlexBlock>\n\t\t\t\t{ withChevron && (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={ isRTL() ? chevronLeftSmall : chevronRightSmall }\n\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-item__drilldown-indicator\"\n\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! withChevron && suffix }\n\t\t\t</HStack>\n\t\t</Item>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst seen = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"M3.99961 13C4.67043 13.3354 4.6703 13.3357 4.67017 13.3359L4.67298 13.3305C4.67621 13.3242 4.68184 13.3135 4.68988 13.2985C4.70595 13.2686 4.7316 13.2218 4.76695 13.1608C4.8377 13.0385 4.94692 12.8592 5.09541 12.6419C5.39312 12.2062 5.84436 11.624 6.45435 11.0431C7.67308 9.88241 9.49719 8.75 11.9996 8.75C14.502 8.75 16.3261 9.88241 17.5449 11.0431C18.1549 11.624 18.6061 12.2062 18.9038 12.6419C19.0523 12.8592 19.1615 13.0385 19.2323 13.1608C19.2676 13.2218 19.2933 13.2686 19.3093 13.2985C19.3174 13.3135 19.323 13.3242 19.3262 13.3305L19.3291 13.3359C19.3289 13.3357 19.3288 13.3354 19.9996 13C20.6704 12.6646 20.6703 12.6643 20.6701 12.664L20.6697 12.6632L20.6688 12.6614L20.6662 12.6563L20.6583 12.6408C20.6517 12.6282 20.6427 12.6108 20.631 12.5892C20.6078 12.5459 20.5744 12.4852 20.5306 12.4096C20.4432 12.2584 20.3141 12.0471 20.1423 11.7956C19.7994 11.2938 19.2819 10.626 18.5794 9.9569C17.1731 8.61759 14.9972 7.25 11.9996 7.25C9.00203 7.25 6.82614 8.61759 5.41987 9.9569C4.71736 10.626 4.19984 11.2938 3.85694 11.7956C3.68511 12.0471 3.55605 12.2584 3.4686 12.4096C3.42484 12.4852 3.39142 12.5459 3.36818 12.5892C3.35656 12.6108 3.34748 12.6282 3.34092 12.6408L3.33297 12.6563L3.33041 12.6614L3.32948 12.6632L3.32911 12.664C3.32894 12.6643 3.32879 12.6646 3.99961 13ZM11.9996 16C13.9326 16 15.4996 14.433 15.4996 12.5C15.4996 10.567 13.9326 9 11.9996 9C10.0666 9 8.49961 10.567 8.49961 12.5C8.49961 14.433 10.0666 16 11.9996 16Z\" />\n\t</SVG>\n);\n\nexport default seen;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst pencil = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"m19 7-3-3-8.5 8.5-1 4 4-1L19 7Zm-7 11.5H5V20h7v-1.5Z\" />\n\t</SVG>\n);\n\nexport default pencil;\n","/**\n * Internal dependencies\n */\n\nimport { default as pencil } from './pencil';\nexport default pencil;\n","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"keycodes\"];","/*!\n * is-plain-object <https://github.com/jonschlinkert/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n  return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n  var ctor,prot;\n\n  if (isObject(o) === false) return false;\n\n  // If has modified constructor\n  ctor = o.constructor;\n  if (ctor === undefined) return true;\n\n  // If has modified prototype\n  prot = ctor.prototype;\n  if (isObject(prot) === false) return false;\n\n  // If constructor does not have an Object-specific method\n  if (prot.hasOwnProperty('isPrototypeOf') === false) {\n    return false;\n  }\n\n  // Most likely a plain Object\n  return true;\n}\n\nexport { isPlainObject };\n","/**\n * External dependencies\n */\nimport deepmerge from 'deepmerge';\nimport { isPlainObject } from 'is-plain-object';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo, useCallback } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { GlobalStylesContext, cleanEmptyObject } = unlock(\n\tblockEditorPrivateApis\n);\n\nexport function mergeBaseAndUserConfigs( base, user ) {\n\treturn deepmerge( base, user, {\n\t\t// We only pass as arrays the presets,\n\t\t// in which case we want the new array of values\n\t\t// to override the old array (no merging).\n\t\tisMergeableObject: isPlainObject,\n\t} );\n}\n\nfunction useGlobalStylesUserConfig() {\n\tconst { globalStylesId, isReady, settings, styles } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _globalStylesId =\n\t\t\t\tselect( coreStore ).__experimentalGetCurrentGlobalStylesId();\n\t\t\tconst record = _globalStylesId\n\t\t\t\t? getEditedEntityRecord(\n\t\t\t\t\t\t'root',\n\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t_globalStylesId\n\t\t\t\t  )\n\t\t\t\t: undefined;\n\n\t\t\tlet hasResolved = false;\n\t\t\tif (\n\t\t\t\thasFinishedResolution(\n\t\t\t\t\t'__experimentalGetCurrentGlobalStylesId'\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\thasResolved = _globalStylesId\n\t\t\t\t\t? hasFinishedResolution( 'getEditedEntityRecord', [\n\t\t\t\t\t\t\t'root',\n\t\t\t\t\t\t\t'globalStyles',\n\t\t\t\t\t\t\t_globalStylesId,\n\t\t\t\t\t  ] )\n\t\t\t\t\t: true;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tglobalStylesId: _globalStylesId,\n\t\t\t\tisReady: hasResolved,\n\t\t\t\tsettings: record?.settings,\n\t\t\t\tstyles: record?.styles,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { getEditedEntityRecord } = useSelect( coreStore );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst config = useMemo( () => {\n\t\treturn {\n\t\t\tsettings: settings ?? {},\n\t\t\tstyles: styles ?? {},\n\t\t};\n\t}, [ settings, styles ] );\n\n\tconst setConfig = useCallback(\n\t\t( callback, options = {} ) => {\n\t\t\tconst record = getEditedEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId\n\t\t\t);\n\t\t\tconst currentConfig = {\n\t\t\t\tstyles: record?.styles ?? {},\n\t\t\t\tsettings: record?.settings ?? {},\n\t\t\t};\n\t\t\tconst updatedConfig = callback( currentConfig );\n\t\t\teditEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId,\n\t\t\t\t{\n\t\t\t\t\tstyles: cleanEmptyObject( updatedConfig.styles ) || {},\n\t\t\t\t\tsettings: cleanEmptyObject( updatedConfig.settings ) || {},\n\t\t\t\t},\n\t\t\t\toptions\n\t\t\t);\n\t\t},\n\t\t[ globalStylesId ]\n\t);\n\n\treturn [ isReady, config, setConfig ];\n}\n\nfunction useGlobalStylesBaseConfig() {\n\tconst baseConfig = useSelect( ( select ) => {\n\t\treturn select(\n\t\t\tcoreStore\n\t\t).__experimentalGetCurrentThemeBaseGlobalStyles();\n\t}, [] );\n\n\treturn [ !! baseConfig, baseConfig ];\n}\n\nfunction useGlobalStylesContext() {\n\tconst [ isUserConfigReady, userConfig, setUserConfig ] =\n\t\tuseGlobalStylesUserConfig();\n\tconst [ isBaseConfigReady, baseConfig ] = useGlobalStylesBaseConfig();\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! baseConfig || ! userConfig ) {\n\t\t\treturn {};\n\t\t}\n\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfig );\n\t}, [ userConfig, baseConfig ] );\n\tconst context = useMemo( () => {\n\t\treturn {\n\t\t\tisReady: isUserConfigReady && isBaseConfigReady,\n\t\t\tuser: userConfig,\n\t\t\tbase: baseConfig,\n\t\t\tmerged: mergedConfig,\n\t\t\tsetUserConfig,\n\t\t};\n\t}, [\n\t\tmergedConfig,\n\t\tuserConfig,\n\t\tbaseConfig,\n\t\tsetUserConfig,\n\t\tisUserConfigReady,\n\t\tisBaseConfigReady,\n\t] );\n\n\treturn context;\n}\n\nexport function GlobalStylesProvider( { children } ) {\n\tconst context = useGlobalStylesContext();\n\tif ( ! context.isReady ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ context }>\n\t\t\t{ children }\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport {\n\t__unstableIframe as Iframe,\n\t__unstableEditorStyles as EditorStyles,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\t__unstableMotion as motion,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport {\n\tuseThrottle,\n\tuseReducedMotion,\n\tuseResizeObserver,\n} from '@wordpress/compose';\nimport { useLayoutEffect, useState, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { useStylesPreviewColors } from './hooks';\n\nconst { useGlobalStyle, useGlobalStylesOutput } = unlock(\n\tblockEditorPrivateApis\n);\n\nconst firstFrame = {\n\tstart: {\n\t\tscale: 1,\n\t\topacity: 1,\n\t},\n\thover: {\n\t\tscale: 0,\n\t\topacity: 0,\n\t},\n};\n\nconst midFrame = {\n\thover: {\n\t\topacity: 1,\n\t},\n\tstart: {\n\t\topacity: 0.5,\n\t},\n};\n\nconst secondFrame = {\n\thover: {\n\t\tscale: 1,\n\t\topacity: 1,\n\t},\n\tstart: {\n\t\tscale: 0,\n\t\topacity: 0,\n\t},\n};\n\nconst normalizedWidth = 248;\nconst normalizedHeight = 152;\n\nconst normalizedColorSwatchSize = 32;\n\n// Throttle options for useThrottle. Must be defined outside of the component,\n// so that the object reference is the same on each render.\nconst THROTTLE_OPTIONS = {\n\tleading: true,\n\ttrailing: true,\n};\n\nconst StylesPreview = ( { label, isFocused, withHoverView } ) => {\n\tconst [ fontWeight ] = useGlobalStyle( 'typography.fontWeight' );\n\tconst [ fontFamily = 'serif' ] = useGlobalStyle( 'typography.fontFamily' );\n\tconst [ headingFontFamily = fontFamily ] = useGlobalStyle(\n\t\t'elements.h1.typography.fontFamily'\n\t);\n\tconst [ headingFontWeight = fontWeight ] = useGlobalStyle(\n\t\t'elements.h1.typography.fontWeight'\n\t);\n\tconst [ textColor = 'black' ] = useGlobalStyle( 'color.text' );\n\tconst [ headingColor = textColor ] = useGlobalStyle(\n\t\t'elements.h1.color.text'\n\t);\n\tconst [ backgroundColor = 'white' ] = useGlobalStyle( 'color.background' );\n\tconst [ gradientValue ] = useGlobalStyle( 'color.gradient' );\n\tconst [ styles ] = useGlobalStylesOutput();\n\tconst disableMotion = useReducedMotion();\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst [ containerResizeListener, { width } ] = useResizeObserver();\n\tconst [ throttledWidth, setThrottledWidthState ] = useState( width );\n\tconst [ ratioState, setRatioState ] = useState();\n\n\tconst setThrottledWidth = useThrottle(\n\t\tsetThrottledWidthState,\n\t\t250,\n\t\tTHROTTLE_OPTIONS\n\t);\n\n\t// Must use useLayoutEffect to avoid a flash of the iframe at the wrong\n\t// size before the width is set.\n\tuseLayoutEffect( () => {\n\t\tif ( width ) {\n\t\t\tsetThrottledWidth( width );\n\t\t}\n\t}, [ width, setThrottledWidth ] );\n\n\t// Must use useLayoutEffect to avoid a flash of the iframe at the wrong\n\t// size before the width is set.\n\tuseLayoutEffect( () => {\n\t\tconst newRatio = throttledWidth ? throttledWidth / normalizedWidth : 1;\n\t\tconst ratioDiff = newRatio - ( ratioState || 0 );\n\n\t\t// Only update the ratio state if the difference is big enough\n\t\t// or if the ratio state is not yet set. This is to avoid an\n\t\t// endless loop of updates at particular viewport heights when the\n\t\t// presence of a scrollbar causes the width to change slightly.\n\t\tconst isRatioDiffBigEnough = Math.abs( ratioDiff ) > 0.1;\n\n\t\tif ( isRatioDiffBigEnough || ! ratioState ) {\n\t\t\tsetRatioState( newRatio );\n\t\t}\n\t}, [ throttledWidth, ratioState ] );\n\n\t// Set a fallbackRatio to use before the throttled ratio has been set.\n\tconst fallbackRatio = width ? width / normalizedWidth : 1;\n\t// Use the throttled ratio if it has been calculated, otherwise\n\t// use the fallback ratio. The throttled ratio is used to avoid\n\t// an endless loop of updates at particular viewport heights.\n\t// See: https://github.com/WordPress/gutenberg/issues/55112\n\tconst ratio = ratioState ? ratioState : fallbackRatio;\n\n\tconst { paletteColors, highlightedColors } = useStylesPreviewColors();\n\n\t// Reset leaked styles from WP common.css and remove main content layout padding and border.\n\tconst editorStyles = useMemo( () => {\n\t\tif ( styles ) {\n\t\t\treturn [\n\t\t\t\t...styles,\n\t\t\t\t{\n\t\t\t\t\tcss: 'html{overflow:hidden}body{min-width: 0;padding: 0;border: none;}',\n\t\t\t\t\tisGlobalStyles: true,\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\treturn styles;\n\t}, [ styles ] );\n\tconst isReady = !! width;\n\n\treturn (\n\t\t<>\n\t\t\t<div style={ { position: 'relative' } }>\n\t\t\t\t{ containerResizeListener }\n\t\t\t</div>\n\t\t\t{ isReady && (\n\t\t\t\t<Iframe\n\t\t\t\t\tclassName=\"edit-site-global-styles-preview__iframe\"\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\theight: normalizedHeight * ratio,\n\t\t\t\t\t} }\n\t\t\t\t\tonMouseEnter={ () => setIsHovered( true ) }\n\t\t\t\t\tonMouseLeave={ () => setIsHovered( false ) }\n\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t>\n\t\t\t\t\t<EditorStyles styles={ editorStyles } />\n\t\t\t\t\t<motion.div\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\theight: normalizedHeight * ratio,\n\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t\tbackground: gradientValue ?? backgroundColor,\n\t\t\t\t\t\t\tcursor: withHoverView ? 'pointer' : undefined,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tinitial=\"start\"\n\t\t\t\t\t\tanimate={\n\t\t\t\t\t\t\t( isHovered || isFocused ) &&\n\t\t\t\t\t\t\t! disableMotion &&\n\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t\t? 'hover'\n\t\t\t\t\t\t\t\t: 'start'\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<motion.div\n\t\t\t\t\t\t\tvariants={ firstFrame }\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\theight: '100%',\n\t\t\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\t\tspacing={ 10 * ratio }\n\t\t\t\t\t\t\t\tjustify=\"center\"\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\theight: '100%',\n\t\t\t\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<motion.div\n\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\tfontFamily: headingFontFamily,\n\t\t\t\t\t\t\t\t\t\tfontSize: 65 * ratio,\n\t\t\t\t\t\t\t\t\t\tcolor: headingColor,\n\t\t\t\t\t\t\t\t\t\tfontWeight: headingFontWeight,\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tanimate={ { scale: 1, opacity: 1 } }\n\t\t\t\t\t\t\t\t\tinitial={ { scale: 0.1, opacity: 0 } }\n\t\t\t\t\t\t\t\t\ttransition={ { delay: 0.3, type: 'tween' } }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tAa\n\t\t\t\t\t\t\t\t</motion.div>\n\t\t\t\t\t\t\t\t<VStack spacing={ 4 * ratio }>\n\t\t\t\t\t\t\t\t\t{ highlightedColors.map(\n\t\t\t\t\t\t\t\t\t\t( { slug, color }, index ) => (\n\t\t\t\t\t\t\t\t\t\t\t<motion.div\n\t\t\t\t\t\t\t\t\t\t\t\tkey={ slug }\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\t\t\t\theight:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnormalizedColorSwatchSize *\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tratio,\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnormalizedColorSwatchSize *\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tratio,\n\t\t\t\t\t\t\t\t\t\t\t\t\tbackground: color,\n\t\t\t\t\t\t\t\t\t\t\t\t\tborderRadius:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t( normalizedColorSwatchSize *\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tratio ) /\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\tanimate={ {\n\t\t\t\t\t\t\t\t\t\t\t\t\tscale: 1,\n\t\t\t\t\t\t\t\t\t\t\t\t\topacity: 1,\n\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\tinitial={ {\n\t\t\t\t\t\t\t\t\t\t\t\t\tscale: 0.1,\n\t\t\t\t\t\t\t\t\t\t\t\t\topacity: 0,\n\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\ttransition={ {\n\t\t\t\t\t\t\t\t\t\t\t\t\tdelay:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex === 1 ? 0.2 : 0.1,\n\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t</motion.div>\n\t\t\t\t\t\t<motion.div\n\t\t\t\t\t\t\tvariants={ withHoverView && midFrame }\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\theight: '100%',\n\t\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\t\t\tfilter: 'blur(60px)',\n\t\t\t\t\t\t\t\topacity: 0.1,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\t\tspacing={ 0 }\n\t\t\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\theight: '100%',\n\t\t\t\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ paletteColors\n\t\t\t\t\t\t\t\t\t.slice( 0, 4 )\n\t\t\t\t\t\t\t\t\t.map( ( { color }, index ) => (\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\t\t\theight: '100%',\n\t\t\t\t\t\t\t\t\t\t\t\tbackground: color,\n\t\t\t\t\t\t\t\t\t\t\t\tflexGrow: 1,\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t</motion.div>\n\t\t\t\t\t\t<motion.div\n\t\t\t\t\t\t\tvariants={ secondFrame }\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\theight: '100%',\n\t\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<VStack\n\t\t\t\t\t\t\t\tspacing={ 3 * ratio }\n\t\t\t\t\t\t\t\tjustify=\"center\"\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\theight: '100%',\n\t\t\t\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\t\t\t\tpadding: 10 * ratio,\n\t\t\t\t\t\t\t\t\tboxSizing: 'border-box',\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ label && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\t\tfontSize: 40 * ratio,\n\t\t\t\t\t\t\t\t\t\t\tfontFamily: headingFontFamily,\n\t\t\t\t\t\t\t\t\t\t\tcolor: headingColor,\n\t\t\t\t\t\t\t\t\t\t\tfontWeight: headingFontWeight,\n\t\t\t\t\t\t\t\t\t\t\tlineHeight: '1em',\n\t\t\t\t\t\t\t\t\t\t\ttextAlign: 'center',\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</motion.div>\n\t\t\t\t\t</motion.div>\n\t\t\t\t</Iframe>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport default StylesPreview;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo, useContext, useState } from '@wordpress/element';\nimport { ENTER } from '@wordpress/keycodes';\nimport { __experimentalGrid as Grid } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { mergeBaseAndUserConfigs } from './global-styles-provider';\nimport StylesPreview from './preview';\nimport { unlock } from '../../lock-unlock';\n\nconst { GlobalStylesContext, areGlobalStyleConfigsEqual } = unlock(\n\tblockEditorPrivateApis\n);\n\nfunction Variation( { variation } ) {\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\tconst { base, user, setUserConfig } = useContext( GlobalStylesContext );\n\tconst context = useMemo( () => {\n\t\treturn {\n\t\t\tuser: {\n\t\t\t\tsettings: variation.settings ?? {},\n\t\t\t\tstyles: variation.styles ?? {},\n\t\t\t},\n\t\t\tbase,\n\t\t\tmerged: mergeBaseAndUserConfigs( base, variation ),\n\t\t\tsetUserConfig: () => {},\n\t\t};\n\t}, [ variation, base ] );\n\n\tconst selectVariation = () => {\n\t\tsetUserConfig( () => {\n\t\t\treturn {\n\t\t\t\tsettings: variation.settings,\n\t\t\t\tstyles: variation.styles,\n\t\t\t};\n\t\t} );\n\t};\n\n\tconst selectOnEnter = ( event ) => {\n\t\tif ( event.keyCode === ENTER ) {\n\t\t\tevent.preventDefault();\n\t\t\tselectVariation();\n\t\t}\n\t};\n\n\tconst isActive = useMemo( () => {\n\t\treturn areGlobalStyleConfigsEqual( user, variation );\n\t}, [ user, variation ] );\n\n\tlet label = variation?.title;\n\tif ( variation?.description ) {\n\t\tlabel = sprintf(\n\t\t\t/* translators: %1$s: variation title. %2$s variation description. */\n\t\t\t__( '%1$s (%2$s)' ),\n\t\t\tvariation?.title,\n\t\t\tvariation?.description\n\t\t);\n\t}\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ context }>\n\t\t\t<div\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'edit-site-global-styles-variations_item',\n\t\t\t\t\t{\n\t\t\t\t\t\t'is-active': isActive,\n\t\t\t\t\t}\n\t\t\t\t) }\n\t\t\t\trole=\"button\"\n\t\t\t\tonClick={ selectVariation }\n\t\t\t\tonKeyDown={ selectOnEnter }\n\t\t\t\ttabIndex=\"0\"\n\t\t\t\taria-label={ label }\n\t\t\t\taria-current={ isActive }\n\t\t\t\tonFocus={ () => setIsFocused( true ) }\n\t\t\t\tonBlur={ () => setIsFocused( false ) }\n\t\t\t>\n\t\t\t\t<div className=\"edit-site-global-styles-variations_item-preview\">\n\t\t\t\t\t<StylesPreview\n\t\t\t\t\t\tlabel={ variation?.title }\n\t\t\t\t\t\tisFocused={ isFocused }\n\t\t\t\t\t\twithHoverView\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n\nexport default function StyleVariationsContainer() {\n\tconst variations = useSelect( ( select ) => {\n\t\treturn select(\n\t\t\tcoreStore\n\t\t).__experimentalGetCurrentThemeGlobalStylesVariations();\n\t}, [] );\n\n\tconst withEmptyVariation = useMemo( () => {\n\t\treturn [\n\t\t\t{\n\t\t\t\ttitle: __( 'Default' ),\n\t\t\t\tsettings: {},\n\t\t\t\tstyles: {},\n\t\t\t},\n\t\t\t...( variations ?? [] ).map( ( variation ) => ( {\n\t\t\t\t...variation,\n\t\t\t\tsettings: variation.settings ?? {},\n\t\t\t\tstyles: variation.styles ?? {},\n\t\t\t} ) ),\n\t\t];\n\t}, [ variations ] );\n\n\treturn (\n\t\t<Grid\n\t\t\tcolumns={ 2 }\n\t\t\tclassName=\"edit-site-global-styles-style-variations-container\"\n\t\t>\n\t\t\t{ withEmptyVariation.map( ( variation, index ) => (\n\t\t\t\t<Variation key={ index } variation={ variation } />\n\t\t\t) ) }\n\t\t</Grid>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { LEFT, RIGHT } from '@wordpress/keycodes';\nimport { VisuallyHidden } from '@wordpress/components';\n\nconst DELTA_DISTANCE = 20; // The distance to resize per keydown in pixels.\n\nexport default function ResizeHandle( {\n\tvariation = 'default',\n\tdirection,\n\tresizeWidthBy,\n} ) {\n\tfunction handleKeyDown( event ) {\n\t\tconst { keyCode } = event;\n\n\t\tif (\n\t\t\t( direction === 'left' && keyCode === LEFT ) ||\n\t\t\t( direction === 'right' && keyCode === RIGHT )\n\t\t) {\n\t\t\tresizeWidthBy( DELTA_DISTANCE );\n\t\t} else if (\n\t\t\t( direction === 'left' && keyCode === RIGHT ) ||\n\t\t\t( direction === 'right' && keyCode === LEFT )\n\t\t) {\n\t\t\tresizeWidthBy( -DELTA_DISTANCE );\n\t\t}\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<button\n\t\t\t\tclassName={ `resizable-editor__drag-handle is-${ direction } is-variation-${ variation }` }\n\t\t\t\taria-label={ __( 'Drag to resize' ) }\n\t\t\t\taria-describedby={ `resizable-editor__resize-help-${ direction }` }\n\t\t\t\tonKeyDown={ handleKeyDown }\n\t\t\t\ttype=\"button\"\n\t\t\t/>\n\t\t\t<VisuallyHidden\n\t\t\t\tid={ `resizable-editor__resize-help-${ direction }` }\n\t\t\t>\n\t\t\t\t{ __( 'Use left and right arrow keys to resize the canvas.' ) }\n\t\t\t</VisuallyHidden>\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useState, useRef, useCallback } from '@wordpress/element';\nimport { ResizableBox } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport ResizeHandle from './resize-handle';\n\n// Removes the inline styles in the drag handles.\nconst HANDLE_STYLES_OVERRIDE = {\n\tposition: undefined,\n\tuserSelect: undefined,\n\tcursor: undefined,\n\twidth: undefined,\n\theight: undefined,\n\ttop: undefined,\n\tright: undefined,\n\tbottom: undefined,\n\tleft: undefined,\n};\n\nfunction ResizableEditor( { enableResizing, height, children } ) {\n\tconst [ width, setWidth ] = useState( '100%' );\n\tconst resizableRef = useRef();\n\tconst resizeWidthBy = useCallback( ( deltaPixels ) => {\n\t\tif ( resizableRef.current ) {\n\t\t\tsetWidth( resizableRef.current.offsetWidth + deltaPixels );\n\t\t}\n\t}, [] );\n\treturn (\n\t\t<ResizableBox\n\t\t\tref={ ( api ) => {\n\t\t\t\tresizableRef.current = api?.resizable;\n\t\t\t} }\n\t\t\tsize={ {\n\t\t\t\twidth: enableResizing ? width : '100%',\n\t\t\t\theight: enableResizing && height ? height : '100%',\n\t\t\t} }\n\t\t\tonResizeStop={ ( event, direction, element ) => {\n\t\t\t\tsetWidth( element.style.width );\n\t\t\t} }\n\t\t\tminWidth={ 300 }\n\t\t\tmaxWidth=\"100%\"\n\t\t\tmaxHeight=\"100%\"\n\t\t\tenable={ {\n\t\t\t\tleft: enableResizing,\n\t\t\t\tright: enableResizing,\n\t\t\t} }\n\t\t\tshowHandle={ enableResizing }\n\t\t\t// The editor is centered horizontally, resizing it only\n\t\t\t// moves half the distance. Hence double the ratio to correctly\n\t\t\t// align the cursor to the resizer handle.\n\t\t\tresizeRatio={ 2 }\n\t\t\thandleComponent={ {\n\t\t\t\tleft: (\n\t\t\t\t\t<ResizeHandle\n\t\t\t\t\t\tdirection=\"left\"\n\t\t\t\t\t\tresizeWidthBy={ resizeWidthBy }\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t\tright: (\n\t\t\t\t\t<ResizeHandle\n\t\t\t\t\t\tdirection=\"right\"\n\t\t\t\t\t\tresizeWidthBy={ resizeWidthBy }\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t} }\n\t\t\thandleClasses={ undefined }\n\t\t\thandleStyles={ {\n\t\t\t\tleft: HANDLE_STYLES_OVERRIDE,\n\t\t\t\tright: HANDLE_STYLES_OVERRIDE,\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</ResizableBox>\n\t);\n}\n\nexport default ResizableEditor;\n","/**\n * WordPress dependencies\n */\nimport { Children, cloneElement, useState, useMemo } from '@wordpress/element';\nimport {\n\tButton,\n\tprivateApis as componentsPrivateApis,\n\t__experimentalUseSlotFills as useSlotFills,\n} from '@wordpress/components';\nimport { ESCAPE } from '@wordpress/keycodes';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { closeSmall } from '@wordpress/icons';\nimport { useFocusOnMount, useFocusReturn } from '@wordpress/compose';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport ResizableEditor from '../block-editor/resizable-editor';\n\n/**\n * Returns a translated string for the title of the editor canvas container.\n *\n * @param {string} view Editor canvas container view.\n *\n * @return {string} Translated string corresponding to value of view. Default is ''.\n */\nfunction getEditorCanvasContainerTitle( view ) {\n\tswitch ( view ) {\n\t\tcase 'style-book':\n\t\t\treturn __( 'Style Book' );\n\t\tcase 'global-styles-revisions':\n\t\tcase 'global-styles-revisions:style-book':\n\t\t\treturn __( 'Global styles revisions' );\n\t\tdefault:\n\t\t\treturn '';\n\t}\n}\n\n// Creates a private slot fill.\nconst { createPrivateSlotFill } = unlock( componentsPrivateApis );\nconst SLOT_FILL_NAME = 'EditSiteEditorCanvasContainerSlot';\nconst {\n\tprivateKey,\n\tSlot: EditorCanvasContainerSlot,\n\tFill: EditorCanvasContainerFill,\n} = createPrivateSlotFill( SLOT_FILL_NAME );\n\nfunction EditorCanvasContainer( {\n\tchildren,\n\tcloseButtonLabel,\n\tonClose,\n\tenableResizing = false,\n} ) {\n\tconst { editorCanvasContainerView, showListViewByDefault } = useSelect(\n\t\t( select ) => {\n\t\t\tconst _editorCanvasContainerView = unlock(\n\t\t\t\tselect( editSiteStore )\n\t\t\t).getEditorCanvasContainerView();\n\n\t\t\tconst _showListViewByDefault = select( preferencesStore ).get(\n\t\t\t\t'core',\n\t\t\t\t'showListViewByDefault'\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\teditorCanvasContainerView: _editorCanvasContainerView,\n\t\t\t\tshowListViewByDefault: _showListViewByDefault,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst [ isClosed, setIsClosed ] = useState( false );\n\tconst { setEditorCanvasContainerView } = unlock(\n\t\tuseDispatch( editSiteStore )\n\t);\n\tconst { setIsListViewOpened } = useDispatch( editorStore );\n\n\tconst focusOnMountRef = useFocusOnMount( 'firstElement' );\n\tconst sectionFocusReturnRef = useFocusReturn();\n\tconst title = useMemo(\n\t\t() => getEditorCanvasContainerTitle( editorCanvasContainerView ),\n\t\t[ editorCanvasContainerView ]\n\t);\n\n\tfunction onCloseContainer() {\n\t\tsetIsListViewOpened( showListViewByDefault );\n\t\tsetEditorCanvasContainerView( undefined );\n\t\tsetIsClosed( true );\n\t\tif ( typeof onClose === 'function' ) {\n\t\t\tonClose();\n\t\t}\n\t}\n\n\tfunction closeOnEscape( event ) {\n\t\tif ( event.keyCode === ESCAPE && ! event.defaultPrevented ) {\n\t\t\tevent.preventDefault();\n\t\t\tonCloseContainer();\n\t\t}\n\t}\n\n\tconst childrenWithProps = Array.isArray( children )\n\t\t? Children.map( children, ( child, index ) =>\n\t\t\t\tindex === 0\n\t\t\t\t\t? cloneElement( child, {\n\t\t\t\t\t\t\tref: sectionFocusReturnRef,\n\t\t\t\t\t  } )\n\t\t\t\t\t: child\n\t\t  )\n\t\t: cloneElement( children, {\n\t\t\t\tref: sectionFocusReturnRef,\n\t\t  } );\n\n\tif ( isClosed ) {\n\t\treturn null;\n\t}\n\n\tconst shouldShowCloseButton = onClose || closeButtonLabel;\n\n\treturn (\n\t\t<EditorCanvasContainerFill>\n\t\t\t<ResizableEditor enableResizing={ enableResizing }>\n\t\t\t\t{ /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */ }\n\t\t\t\t<section\n\t\t\t\t\tclassName=\"edit-site-editor-canvas-container\"\n\t\t\t\t\tref={ shouldShowCloseButton ? focusOnMountRef : null }\n\t\t\t\t\tonKeyDown={ closeOnEscape }\n\t\t\t\t\taria-label={ title }\n\t\t\t\t>\n\t\t\t\t\t{ shouldShowCloseButton && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"edit-site-editor-canvas-container__close-button\"\n\t\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\t\tlabel={ closeButtonLabel || __( 'Close' ) }\n\t\t\t\t\t\t\tonClick={ onCloseContainer }\n\t\t\t\t\t\t\tshowTooltip={ false }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ childrenWithProps }\n\t\t\t\t</section>\n\t\t\t</ResizableEditor>\n\t\t</EditorCanvasContainerFill>\n\t);\n}\nfunction useHasEditorCanvasContainer() {\n\tconst fills = useSlotFills( privateKey );\n\treturn !! fills?.length;\n}\n\nEditorCanvasContainer.Slot = EditorCanvasContainerSlot;\nexport default EditorCanvasContainer;\nexport { useHasEditorCanvasContainer, getEditorCanvasContainerTitle };\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tDisabled,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tgetCategories,\n\tgetBlockTypes,\n\tgetBlockFromExample,\n\tcreateBlock,\n} from '@wordpress/blocks';\nimport {\n\tBlockList,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\t__unstableEditorStyles as EditorStyles,\n\t__unstableIframe as Iframe,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { useResizeObserver } from '@wordpress/compose';\nimport { useMemo, useState, memo, useContext } from '@wordpress/element';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport EditorCanvasContainer from '../editor-canvas-container';\nimport { mergeBaseAndUserConfigs } from '../global-styles/global-styles-provider';\n\nconst {\n\tExperimentalBlockEditorProvider,\n\tuseGlobalStyle,\n\tGlobalStylesContext,\n\tuseGlobalStylesOutputWithConfig,\n} = unlock( blockEditorPrivateApis );\n\nconst {\n\tCompositeV2: Composite,\n\tCompositeItemV2: CompositeItem,\n\tuseCompositeStoreV2: useCompositeStore,\n\tTabs,\n} = unlock( componentsPrivateApis );\n\n// The content area of the Style Book is rendered within an iframe so that global styles\n// are applied to elements within the entire content area. To support elements that are\n// not part of the block previews, such as headings and layout for the block previews,\n// additional CSS rules need to be passed into the iframe. These are hard-coded below.\n// Note that button styles are unset, and then focus rules from the `Button` component are\n// applied to the `button` element, targeted via `.edit-site-style-book__example`.\n// This is to ensure that browser default styles for buttons are not applied to the previews.\nconst STYLE_BOOK_IFRAME_STYLES = `\n\t.edit-site-style-book__examples {\n\t\tmax-width: 900px;\n\t\tmargin: 0 auto;\n\t}\n\n\t.edit-site-style-book__example {\n\t\tborder-radius: 2px;\n\t\tcursor: pointer;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 40px;\n\t\tmargin-bottom: 40px;\n\t\tpadding: 16px;\n\t\twidth: 100%;\n\t\tbox-sizing: border-box;\n\t\tscroll-margin-top: 32px;\n\t\tscroll-margin-bottom: 32px;\n\t}\n\n\t.edit-site-style-book__example.is-selected {\n\t\tbox-shadow: 0 0 0 1px var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));\n\t}\n\n\t.edit-site-style-book__example:focus:not(:disabled) {\n\t\tbox-shadow: 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));\n\t\toutline: 3px solid transparent;\n\t}\n\n\t.edit-site-style-book__examples.is-wide .edit-site-style-book__example {\n\t\tflex-direction: row;\n\t}\n\n\t.edit-site-style-book__example-title {\n\t\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n\t\tfont-size: 11px;\n\t\tfont-weight: 500;\n\t\tline-height: normal;\n\t\tmargin: 0;\n\t\ttext-align: left;\n\t\ttext-transform: uppercase;\n\t}\n\n\t.edit-site-style-book__examples.is-wide .edit-site-style-book__example-title {\n\t\ttext-align: right;\n\t\twidth: 120px;\n\t}\n\n\t.edit-site-style-book__example-preview {\n\t\twidth: 100%;\n\t}\n\n\t.edit-site-style-book__example-preview .block-editor-block-list__insertion-point,\n\t.edit-site-style-book__example-preview .block-list-appender {\n\t\tdisplay: none;\n\t}\n\n\t.edit-site-style-book__example-preview .is-root-container > .wp-block:first-child {\n\t\tmargin-top: 0;\n\t}\n\t.edit-site-style-book__example-preview .is-root-container > .wp-block:last-child {\n\t\tmargin-bottom: 0;\n\t}\n`;\n\nfunction isObjectEmpty( object ) {\n\treturn ! object || Object.keys( object ).length === 0;\n}\n\nfunction getExamples() {\n\t// Use our own example for the Heading block so that we can show multiple\n\t// heading levels.\n\tconst headingsExample = {\n\t\tname: 'core/heading',\n\t\ttitle: __( 'Headings' ),\n\t\tcategory: 'text',\n\t\tblocks: [\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 1,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 2,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 3,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 4,\n\t\t\t} ),\n\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\tcontent: __( 'Code Is Poetry' ),\n\t\t\t\tlevel: 5,\n\t\t\t} ),\n\t\t],\n\t};\n\n\tconst otherExamples = getBlockTypes()\n\t\t.filter( ( blockType ) => {\n\t\t\tconst { name, example, supports } = blockType;\n\t\t\treturn (\n\t\t\t\tname !== 'core/heading' &&\n\t\t\t\t!! example &&\n\t\t\t\tsupports.inserter !== false\n\t\t\t);\n\t\t} )\n\t\t.map( ( blockType ) => ( {\n\t\t\tname: blockType.name,\n\t\t\ttitle: blockType.title,\n\t\t\tcategory: blockType.category,\n\t\t\tblocks: getBlockFromExample( blockType.name, blockType.example ),\n\t\t} ) );\n\n\treturn [ headingsExample, ...otherExamples ];\n}\n\nfunction StyleBook( {\n\tenableResizing = true,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tshowCloseButton = true,\n\tonClose,\n\tshowTabs = true,\n\tuserConfig = {},\n} ) {\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\tconst [ textColor ] = useGlobalStyle( 'color.text' );\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\tconst examples = useMemo( getExamples, [] );\n\tconst tabs = useMemo(\n\t\t() =>\n\t\t\tgetCategories()\n\t\t\t\t.filter( ( category ) =>\n\t\t\t\t\texamples.some(\n\t\t\t\t\t\t( example ) => example.category === category.slug\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t.map( ( category ) => ( {\n\t\t\t\t\tname: category.slug,\n\t\t\t\t\ttitle: category.title,\n\t\t\t\t\ticon: category.icon,\n\t\t\t\t} ) ),\n\t\t[ examples ]\n\t);\n\tconst { base: baseConfig } = useContext( GlobalStylesContext );\n\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! isObjectEmpty( userConfig ) && ! isObjectEmpty( baseConfig ) ) {\n\t\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfig );\n\t\t}\n\t\treturn {};\n\t}, [ baseConfig, userConfig ] );\n\n\t// Copied from packages/edit-site/src/components/revisions/index.js\n\t// could we create a shared hook?\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\n\tconst settings = useMemo(\n\t\t() => ( { ...originalSettings, __unstableIsPreviewMode: true } ),\n\t\t[ originalSettings ]\n\t);\n\n\tconst [ globalStyles ] = useGlobalStylesOutputWithConfig( mergedConfig );\n\n\tsettings.styles =\n\t\t! isObjectEmpty( globalStyles ) && ! isObjectEmpty( userConfig )\n\t\t\t? globalStyles\n\t\t\t: settings.styles;\n\n\treturn (\n\t\t<EditorCanvasContainer\n\t\t\tonClose={ onClose }\n\t\t\tenableResizing={ enableResizing }\n\t\t\tcloseButtonLabel={\n\t\t\t\tshowCloseButton ? __( 'Close Style Book' ) : null\n\t\t\t}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={ classnames( 'edit-site-style-book', {\n\t\t\t\t\t'is-wide': sizes.width > 600,\n\t\t\t\t\t'is-button': !! onClick,\n\t\t\t\t} ) }\n\t\t\t\tstyle={ {\n\t\t\t\t\tcolor: textColor,\n\t\t\t\t\tbackground: backgroundColor,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ resizeObserver }\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<div className=\"edit-site-style-book__tabs\">\n\t\t\t\t\t\t<Tabs>\n\t\t\t\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t\t\t\t\t<Tabs.Tab\n\t\t\t\t\t\t\t\t\t\ttabId={ tab.name }\n\t\t\t\t\t\t\t\t\t\tkey={ tab.name }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ tab.title }\n\t\t\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</Tabs.TabList>\n\t\t\t\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\t\tkey={ tab.name }\n\t\t\t\t\t\t\t\t\ttabId={ tab.name }\n\t\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\t\t\t\t\tcategory={ tab.name }\n\t\t\t\t\t\t\t\t\t\texamples={ examples }\n\t\t\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t\t\t\tsizes={ sizes }\n\t\t\t\t\t\t\t\t\t\ttitle={ tab.title }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</Tabs>\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<StyleBookBody\n\t\t\t\t\t\texamples={ examples }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\tsizes={ sizes }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</EditorCanvasContainer>\n\t);\n}\n\nconst StyleBookBody = ( {\n\tcategory,\n\texamples,\n\tisSelected,\n\tonClick,\n\tonSelect,\n\tsettings,\n\tsizes,\n\ttitle,\n} ) => {\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\n\t// The presence of an `onClick` prop indicates that the Style Book is being used as a button.\n\t// In this case, add additional props to the iframe to make it behave like a button.\n\tconst buttonModeProps = {\n\t\trole: 'button',\n\t\tonFocus: () => setIsFocused( true ),\n\t\tonBlur: () => setIsFocused( false ),\n\t\tonKeyDown: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { keyCode } = event;\n\t\t\tif ( onClick && ( keyCode === ENTER || keyCode === SPACE ) ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\tonClick: ( event ) => {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( onClick ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClick( event );\n\t\t\t}\n\t\t},\n\t\treadonly: true,\n\t};\n\n\tconst buttonModeStyles = onClick\n\t\t? 'body { cursor: pointer; } body * { pointer-events: none; }'\n\t\t: '';\n\n\treturn (\n\t\t<Iframe\n\t\t\tclassName={ classnames( 'edit-site-style-book__iframe', {\n\t\t\t\t'is-focused': isFocused && !! onClick,\n\t\t\t\t'is-button': !! onClick,\n\t\t\t} ) }\n\t\t\tname=\"style-book-canvas\"\n\t\t\ttabIndex={ 0 }\n\t\t\t{ ...( onClick ? buttonModeProps : {} ) }\n\t\t>\n\t\t\t<EditorStyles styles={ settings.styles } />\n\t\t\t<style>\n\t\t\t\t{\n\t\t\t\t\t// Forming a \"block formatting context\" to prevent margin collapsing.\n\t\t\t\t\t// @see https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context\n\t\t\t\t\t`.is-root-container { display: flow-root; }\n\t\t\t\t\t\tbody { position: relative; padding: 32px !important; }` +\n\t\t\t\t\t\tSTYLE_BOOK_IFRAME_STYLES +\n\t\t\t\t\t\tbuttonModeStyles\n\t\t\t\t}\n\t\t\t</style>\n\t\t\t<Examples\n\t\t\t\tclassName={ classnames( 'edit-site-style-book__examples', {\n\t\t\t\t\t'is-wide': sizes.width > 600,\n\t\t\t\t} ) }\n\t\t\t\texamples={ examples }\n\t\t\t\tcategory={ category }\n\t\t\t\tlabel={\n\t\t\t\t\ttitle\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Category of blocks, e.g. Text.\n\t\t\t\t\t\t\t\t__( 'Examples of blocks in the %s category' ),\n\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t  )\n\t\t\t\t\t\t: __( 'Examples of blocks' )\n\t\t\t\t}\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t\tkey={ category }\n\t\t\t/>\n\t\t</Iframe>\n\t);\n};\n\nconst Examples = memo(\n\t( { className, examples, category, label, isSelected, onSelect } ) => {\n\t\tconst compositeStore = useCompositeStore( { orientation: 'vertical' } );\n\n\t\treturn (\n\t\t\t<Composite\n\t\t\t\tstore={ compositeStore }\n\t\t\t\tclassName={ className }\n\t\t\t\taria-label={ label }\n\t\t\t\trole=\"grid\"\n\t\t\t>\n\t\t\t\t{ examples\n\t\t\t\t\t.filter( ( example ) =>\n\t\t\t\t\t\tcategory ? example.category === category : true\n\t\t\t\t\t)\n\t\t\t\t\t.map( ( example ) => (\n\t\t\t\t\t\t<Example\n\t\t\t\t\t\t\tkey={ example.name }\n\t\t\t\t\t\t\tid={ `example-${ example.name }` }\n\t\t\t\t\t\t\ttitle={ example.title }\n\t\t\t\t\t\t\tblocks={ example.blocks }\n\t\t\t\t\t\t\tisSelected={ isSelected( example.name ) }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonSelect?.( example.name );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t</Composite>\n\t\t);\n\t}\n);\n\nconst Example = ( { id, title, blocks, isSelected, onClick } ) => {\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst settings = useMemo(\n\t\t() => ( { ...originalSettings, __unstableIsPreviewMode: true } ),\n\t\t[ originalSettings ]\n\t);\n\n\t// Cache the list of blocks to avoid additional processing when the component is re-rendered.\n\tconst renderedBlocks = useMemo(\n\t\t() => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),\n\t\t[ blocks ]\n\t);\n\n\treturn (\n\t\t<div role=\"row\">\n\t\t\t<div role=\"gridcell\">\n\t\t\t\t<CompositeItem\n\t\t\t\t\tclassName={ classnames( 'edit-site-style-book__example', {\n\t\t\t\t\t\t'is-selected': isSelected,\n\t\t\t\t\t} ) }\n\t\t\t\t\tid={ id }\n\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t// translators: %s: Title of a block, e.g. Heading.\n\t\t\t\t\t\t__( 'Open %s styles in Styles panel' ),\n\t\t\t\t\t\ttitle\n\t\t\t\t\t) }\n\t\t\t\t\trender={ <div /> }\n\t\t\t\t\trole=\"button\"\n\t\t\t\t\tonClick={ onClick }\n\t\t\t\t>\n\t\t\t\t\t<span className=\"edit-site-style-book__example-title\">\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</span>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"edit-site-style-book__example-preview\"\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t<Disabled className=\"edit-site-style-book__example-preview__content\">\n\t\t\t\t\t\t\t<ExperimentalBlockEditorProvider\n\t\t\t\t\t\t\t\tvalue={ renderedBlocks }\n\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<BlockList renderAppender={ false } />\n\t\t\t\t\t\t\t</ExperimentalBlockEditorProvider>\n\t\t\t\t\t\t</Disabled>\n\t\t\t\t\t</div>\n\t\t\t\t</CompositeItem>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default StyleBook;\n","/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useContext, useMemo } from '@wordpress/element';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../../lock-unlock';\n\nconst SITE_EDITOR_AUTHORS_QUERY = {\n\tper_page: -1,\n\t_fields: 'id,name,avatar_urls',\n\tcontext: 'view',\n\tcapabilities: [ 'edit_theme_options' ],\n};\nconst DEFAULT_QUERY = { per_page: 100, page: 1 };\nconst EMPTY_ARRAY = [];\nconst { GlobalStylesContext } = unlock( blockEditorPrivateApis );\nexport default function useGlobalStylesRevisions( { query } = {} ) {\n\tconst { user: userConfig } = useContext( GlobalStylesContext );\n\tconst _query = { ...DEFAULT_QUERY, ...query };\n\tconst {\n\t\tauthors,\n\t\tcurrentUser,\n\t\tisDirty,\n\t\trevisions,\n\t\tisLoadingGlobalStylesRevisions,\n\t\trevisionsCount,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\t__experimentalGetDirtyEntityRecords,\n\t\t\t\tgetCurrentUser,\n\t\t\t\tgetUsers,\n\t\t\t\tgetRevisions,\n\t\t\t\t__experimentalGetCurrentGlobalStylesId,\n\t\t\t\tgetEntityRecord,\n\t\t\t\tisResolving,\n\t\t\t} = select( coreStore );\n\t\t\tconst dirtyEntityRecords = __experimentalGetDirtyEntityRecords();\n\t\t\tconst _currentUser = getCurrentUser();\n\t\t\tconst _isDirty = dirtyEntityRecords.length > 0;\n\t\t\tconst globalStylesId = __experimentalGetCurrentGlobalStylesId();\n\t\t\tconst globalStyles = globalStylesId\n\t\t\t\t? getEntityRecord( 'root', 'globalStyles', globalStylesId )\n\t\t\t\t: undefined;\n\t\t\tconst _revisionsCount =\n\t\t\t\tglobalStyles?._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0;\n\t\t\tconst globalStylesRevisions =\n\t\t\t\tgetRevisions(\n\t\t\t\t\t'root',\n\t\t\t\t\t'globalStyles',\n\t\t\t\t\tglobalStylesId,\n\t\t\t\t\t_query\n\t\t\t\t) || EMPTY_ARRAY;\n\t\t\tconst _authors =\n\t\t\t\tgetUsers( SITE_EDITOR_AUTHORS_QUERY ) || EMPTY_ARRAY;\n\t\t\tconst _isResolving = isResolving( 'getRevisions', [\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId,\n\t\t\t\t_query,\n\t\t\t] );\n\t\t\treturn {\n\t\t\t\tauthors: _authors,\n\t\t\t\tcurrentUser: _currentUser,\n\t\t\t\tisDirty: _isDirty,\n\t\t\t\trevisions: globalStylesRevisions,\n\t\t\t\tisLoadingGlobalStylesRevisions: _isResolving,\n\t\t\t\trevisionsCount: _revisionsCount,\n\t\t\t};\n\t\t},\n\t\t[ query ]\n\t);\n\treturn useMemo( () => {\n\t\tif ( ! authors.length || isLoadingGlobalStylesRevisions ) {\n\t\t\treturn {\n\t\t\t\trevisions: EMPTY_ARRAY,\n\t\t\t\thasUnsavedChanges: isDirty,\n\t\t\t\tisLoading: true,\n\t\t\t\trevisionsCount,\n\t\t\t};\n\t\t}\n\n\t\t// Adds author details to each revision.\n\t\tconst _modifiedRevisions = revisions.map( ( revision ) => {\n\t\t\treturn {\n\t\t\t\t...revision,\n\t\t\t\tauthor: authors.find(\n\t\t\t\t\t( author ) => author.id === revision.author\n\t\t\t\t),\n\t\t\t};\n\t\t} );\n\n\t\tconst fetchedRevisionsCount = revisions.length;\n\n\t\tif ( fetchedRevisionsCount ) {\n\t\t\t// Flags the most current saved revision.\n\t\t\tif (\n\t\t\t\t_modifiedRevisions[ 0 ].id !== 'unsaved' &&\n\t\t\t\t_query.page === 1\n\t\t\t) {\n\t\t\t\t_modifiedRevisions[ 0 ].isLatest = true;\n\t\t\t}\n\n\t\t\t// Adds an item for unsaved changes.\n\t\t\tif (\n\t\t\t\tisDirty &&\n\t\t\t\tuserConfig &&\n\t\t\t\tObject.keys( userConfig ).length > 0 &&\n\t\t\t\tcurrentUser &&\n\t\t\t\t_query.page === 1\n\t\t\t) {\n\t\t\t\tconst unsavedRevision = {\n\t\t\t\t\tid: 'unsaved',\n\t\t\t\t\tstyles: userConfig?.styles,\n\t\t\t\t\tsettings: userConfig?.settings,\n\t\t\t\t\tauthor: {\n\t\t\t\t\t\tname: currentUser?.name,\n\t\t\t\t\t\tavatar_urls: currentUser?.avatar_urls,\n\t\t\t\t\t},\n\t\t\t\t\tmodified: new Date(),\n\t\t\t\t};\n\n\t\t\t\t_modifiedRevisions.unshift( unsavedRevision );\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t_query.page === Math.ceil( revisionsCount / _query.per_page )\n\t\t\t) {\n\t\t\t\t// Adds an item for the default theme styles.\n\t\t\t\t_modifiedRevisions.push( {\n\t\t\t\t\tid: 'parent',\n\t\t\t\t\tstyles: {},\n\t\t\t\t\tsettings: {},\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\trevisions: _modifiedRevisions,\n\t\t\thasUnsavedChanges: isDirty,\n\t\t\tisLoading: false,\n\t\t\trevisionsCount,\n\t\t};\n\t}, [\n\t\tisDirty,\n\t\trevisions,\n\t\tcurrentUser,\n\t\tauthors,\n\t\tuserConfig,\n\t\tisLoadingGlobalStylesRevisions,\n\t] );\n}\n","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"date\"];","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst backup = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M5.5 12h1.75l-2.5 3-2.5-3H4a8 8 0 113.134 6.35l.907-1.194A6.5 6.5 0 105.5 12zm9.53 1.97l-2.28-2.28V8.5a.75.75 0 00-1.5 0V12a.747.747 0 00.218.529l1.282-.84-1.28.842 2.5 2.5a.75.75 0 101.06-1.061z\" />\n\t</SVG>\n);\n\nexport default backup;\n","/**\n * WordPress dependencies\n */\nimport { __experimentalText as Text } from '@wordpress/components';\n\nexport default function SidebarNavigationScreenDetailsPanelLabel( {\n\tchildren,\n} ) {\n\treturn (\n\t\t<Text className=\"edit-site-sidebar-navigation-details-screen-panel__label\">\n\t\t\t{ children }\n\t\t</Text>\n\t);\n}\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalHStack as HStack } from '@wordpress/components';\n\nexport default function SidebarNavigationScreenDetailsPanelRow( {\n\tlabel,\n\tchildren,\n\tclassName,\n\t...extraProps\n} ) {\n\treturn (\n\t\t<HStack\n\t\t\tkey={ label }\n\t\t\tspacing={ 5 }\n\t\t\talignment=\"left\"\n\t\t\tclassName={ classnames(\n\t\t\t\t'edit-site-sidebar-navigation-details-screen-panel__row',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\t{ ...extraProps }\n\t\t>\n\t\t\t{ children }\n\t\t</HStack>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __experimentalText as Text } from '@wordpress/components';\n\nexport default function SidebarNavigationScreenDetailsPanelValue( {\n\tchildren,\n} ) {\n\treturn (\n\t\t<Text className=\"edit-site-sidebar-navigation-details-screen-panel__value\">\n\t\t\t{ children }\n\t\t</Text>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHeading as Heading,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationScreenDetailsPanelLabel from './sidebar-navigation-screen-details-panel-label';\nimport SidebarNavigationScreenDetailsPanelRow from './sidebar-navigation-screen-details-panel-row';\nimport SidebarNavigationScreenDetailsPanelValue from './sidebar-navigation-screen-details-panel-value';\n\nfunction SidebarNavigationScreenDetailsPanel( { title, children, spacing } ) {\n\treturn (\n\t\t<VStack\n\t\t\tclassName=\"edit-site-sidebar-navigation-details-screen-panel\"\n\t\t\tspacing={ spacing }\n\t\t>\n\t\t\t{ title && (\n\t\t\t\t<Heading\n\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-details-screen-panel__heading\"\n\t\t\t\t\tlevel={ 2 }\n\t\t\t\t>\n\t\t\t\t\t{ title }\n\t\t\t\t</Heading>\n\t\t\t) }\n\t\t\t{ children }\n\t\t</VStack>\n\t);\n}\n\nexport {\n\tSidebarNavigationScreenDetailsPanel,\n\tSidebarNavigationScreenDetailsPanelRow,\n\tSidebarNavigationScreenDetailsPanelLabel,\n\tSidebarNavigationScreenDetailsPanelValue,\n};\n","/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { humanTimeDiff } from '@wordpress/date';\nimport { createInterpolateElement } from '@wordpress/element';\nimport { addQueryArgs } from '@wordpress/url';\nimport {\n\tIcon,\n\t__experimentalItemGroup as ItemGroup,\n} from '@wordpress/components';\nimport { backup } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport {\n\tSidebarNavigationScreenDetailsPanelRow,\n\tSidebarNavigationScreenDetailsPanelLabel,\n\tSidebarNavigationScreenDetailsPanelValue,\n} from '../sidebar-navigation-screen-details-panel';\nimport SidebarNavigationItem from '../sidebar-navigation-item';\n\nexport default function SidebarNavigationScreenDetailsFooter( {\n\trecord,\n\t...otherProps\n} ) {\n\t/*\n\t * There might be other items in the future,\n\t * but for now it's just modified date.\n\t * Later we might render a list of items and isolate\n\t * the following logic.\n\t */\n\tconst hrefProps = {};\n\tif ( record?._links?.[ 'predecessor-version' ]?.[ 0 ]?.id ) {\n\t\threfProps.href = addQueryArgs( 'revision.php', {\n\t\t\trevision: record?._links[ 'predecessor-version' ][ 0 ].id,\n\t\t} );\n\t\threfProps.as = 'a';\n\t}\n\n\treturn (\n\t\t<ItemGroup className=\"edit-site-sidebar-navigation-screen-details-footer\">\n\t\t\t<SidebarNavigationItem\n\t\t\t\taria-label={ __( 'Revisions' ) }\n\t\t\t\t{ ...hrefProps }\n\t\t\t\t{ ...otherProps }\n\t\t\t>\n\t\t\t\t<SidebarNavigationScreenDetailsPanelRow justify=\"space-between\">\n\t\t\t\t\t<SidebarNavigationScreenDetailsPanelLabel>\n\t\t\t\t\t\t{ __( 'Last modified' ) }\n\t\t\t\t\t</SidebarNavigationScreenDetailsPanelLabel>\n\t\t\t\t\t<SidebarNavigationScreenDetailsPanelValue>\n\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: is the relative time when the post was last modified. */\n\t\t\t\t\t\t\t\t__( '<time>%s</time>' ),\n\t\t\t\t\t\t\t\thumanTimeDiff( record.modified )\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttime: <time dateTime={ record.modified } />,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t</SidebarNavigationScreenDetailsPanelValue>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen-details-footer__icon\"\n\t\t\t\t\t\ticon={ backup }\n\t\t\t\t\t/>\n\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t</SidebarNavigationItem>\n\t\t</ItemGroup>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { edit, seen } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __experimentalNavigatorButton as NavigatorButton } from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { BlockEditorProvider } from '@wordpress/block-editor';\nimport { useCallback } from '@wordpress/element';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport StyleVariationsContainer from '../global-styles/style-variations-container';\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport SidebarButton from '../sidebar-button';\nimport SidebarNavigationItem from '../sidebar-navigation-item';\nimport StyleBook from '../style-book';\nimport useGlobalStylesRevisions from '../global-styles/screen-revisions/use-global-styles-revisions';\nimport SidebarNavigationScreenDetailsFooter from '../sidebar-navigation-screen-details-footer';\n\nconst noop = () => {};\n\nexport function SidebarNavigationItemGlobalStyles( props ) {\n\tconst { openGeneralSidebar } = useDispatch( editSiteStore );\n\tconst { setCanvasMode } = unlock( useDispatch( editSiteStore ) );\n\n\tconst hasGlobalStyleVariations = useSelect(\n\t\t( select ) =>\n\t\t\t!! select(\n\t\t\t\tcoreStore\n\t\t\t).__experimentalGetCurrentThemeGlobalStylesVariations()?.length,\n\t\t[]\n\t);\n\tif ( hasGlobalStyleVariations ) {\n\t\treturn (\n\t\t\t<NavigatorButton\n\t\t\t\t{ ...props }\n\t\t\t\tas={ SidebarNavigationItem }\n\t\t\t\tpath=\"/wp_global_styles\"\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<SidebarNavigationItem\n\t\t\t{ ...props }\n\t\t\tonClick={ () => {\n\t\t\t\t// Switch to edit mode.\n\t\t\t\tsetCanvasMode( 'edit' );\n\t\t\t\t// Open global styles sidebar.\n\t\t\t\topenGeneralSidebar( 'edit-site/global-styles' );\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nfunction SidebarNavigationScreenGlobalStylesContent() {\n\tconst { storedSettings } = useSelect( ( select ) => {\n\t\tconst { getSettings } = unlock( select( editSiteStore ) );\n\n\t\treturn {\n\t\t\tstoredSettings: getSettings(),\n\t\t};\n\t}, [] );\n\n\t// Wrap in a BlockEditorProvider to ensure that the Iframe's dependencies are\n\t// loaded. This is necessary because the Iframe component waits until\n\t// the block editor store's `__internalIsInitialized` is true before\n\t// rendering the iframe. Without this, the iframe previews will not render\n\t// in mobile viewport sizes, where the editor canvas is hidden.\n\treturn (\n\t\t<BlockEditorProvider\n\t\t\tsettings={ storedSettings }\n\t\t\tonChange={ noop }\n\t\t\tonInput={ noop }\n\t\t>\n\t\t\t<StyleVariationsContainer />\n\t\t</BlockEditorProvider>\n\t);\n}\n\nexport default function SidebarNavigationScreenGlobalStyles() {\n\tconst { revisions, isLoading: isLoadingRevisions } =\n\t\tuseGlobalStylesRevisions();\n\tconst { openGeneralSidebar } = useDispatch( editSiteStore );\n\tconst { setIsListViewOpened } = useDispatch( editorStore );\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst { setCanvasMode, setEditorCanvasContainerView } = unlock(\n\t\tuseDispatch( editSiteStore )\n\t);\n\tconst { isViewMode, isStyleBookOpened, revisionsCount } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCanvasMode, getEditorCanvasContainerView } = unlock(\n\t\t\t\tselect( editSiteStore )\n\t\t\t);\n\t\t\tconst { getEntityRecord, __experimentalGetCurrentGlobalStylesId } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst globalStylesId = __experimentalGetCurrentGlobalStylesId();\n\t\t\tconst globalStyles = globalStylesId\n\t\t\t\t? getEntityRecord( 'root', 'globalStyles', globalStylesId )\n\t\t\t\t: undefined;\n\t\t\treturn {\n\t\t\t\tisViewMode: 'view' === getCanvasMode(),\n\t\t\t\tisStyleBookOpened:\n\t\t\t\t\t'style-book' === getEditorCanvasContainerView(),\n\t\t\t\trevisionsCount:\n\t\t\t\t\tglobalStyles?._links?.[ 'version-history' ]?.[ 0 ]?.count ??\n\t\t\t\t\t0,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst openGlobalStyles = useCallback( async () => {\n\t\treturn Promise.all( [\n\t\t\tsetCanvasMode( 'edit' ),\n\t\t\topenGeneralSidebar( 'edit-site/global-styles' ),\n\t\t] );\n\t}, [ setCanvasMode, openGeneralSidebar ] );\n\n\tconst openStyleBook = useCallback( async () => {\n\t\tawait openGlobalStyles();\n\t\t// Open the Style Book once the canvas mode is set to edit,\n\t\t// and the global styles sidebar is open. This ensures that\n\t\t// the Style Book is not prematurely closed.\n\t\tsetEditorCanvasContainerView( 'style-book' );\n\t\tsetIsListViewOpened( false );\n\t}, [\n\t\topenGlobalStyles,\n\t\tsetEditorCanvasContainerView,\n\t\tsetIsListViewOpened,\n\t] );\n\n\tconst openRevisions = useCallback( async () => {\n\t\tawait openGlobalStyles();\n\t\t// Open the global styles revisions once the canvas mode is set to edit,\n\t\t// and the global styles sidebar is open. The global styles UI is responsible\n\t\t// for redirecting to the revisions screen once the editor canvas container\n\t\t// has been set to 'global-styles-revisions'.\n\t\tsetEditorCanvasContainerView( 'global-styles-revisions' );\n\t}, [ openGlobalStyles, setEditorCanvasContainerView ] );\n\n\t// If there are no revisions, do not render a footer.\n\tconst hasRevisions = revisionsCount > 0;\n\tconst modifiedDateTime = revisions?.[ 0 ]?.modified;\n\tconst shouldShowGlobalStylesFooter =\n\t\thasRevisions && ! isLoadingRevisions && modifiedDateTime;\n\n\treturn (\n\t\t<>\n\t\t\t<SidebarNavigationScreen\n\t\t\t\ttitle={ __( 'Styles' ) }\n\t\t\t\tdescription={ __(\n\t\t\t\t\t'Choose a different style combination for the theme styles.'\n\t\t\t\t) }\n\t\t\t\tcontent={ <SidebarNavigationScreenGlobalStylesContent /> }\n\t\t\t\tfooter={\n\t\t\t\t\tshouldShowGlobalStylesFooter && (\n\t\t\t\t\t\t<SidebarNavigationScreenDetailsFooter\n\t\t\t\t\t\t\trecord={ revisions?.[ 0 ] }\n\t\t\t\t\t\t\tonClick={ openRevisions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tactions={\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ ! isMobileViewport && (\n\t\t\t\t\t\t\t<SidebarButton\n\t\t\t\t\t\t\t\ticon={ seen }\n\t\t\t\t\t\t\t\tlabel={ __( 'Style Book' ) }\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\tsetEditorCanvasContainerView(\n\t\t\t\t\t\t\t\t\t\t! isStyleBookOpened\n\t\t\t\t\t\t\t\t\t\t\t? 'style-book'\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tisPressed={ isStyleBookOpened }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<SidebarButton\n\t\t\t\t\t\t\ticon={ edit }\n\t\t\t\t\t\t\tlabel={ __( 'Edit styles' ) }\n\t\t\t\t\t\t\tonClick={ async () => await openGlobalStyles() }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ isStyleBookOpened && ! isMobileViewport && isViewMode && (\n\t\t\t\t<StyleBook\n\t\t\t\t\tenableResizing={ false }\n\t\t\t\t\tisSelected={ () => false }\n\t\t\t\t\tonClick={ openStyleBook }\n\t\t\t\t\tonSelect={ openStyleBook }\n\t\t\t\t\tshowCloseButton={ false }\n\t\t\t\t\tshowTabs={ false }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { Notice } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\nconst PREFERENCE_NAME = 'isTemplatePartMoveHintVisible';\n\nexport default function TemplatePartHint() {\n\tconst showTemplatePartHint = useSelect(\n\t\t( select ) =>\n\t\t\tselect( preferencesStore ).get( 'core', PREFERENCE_NAME ) ?? true,\n\t\t[]\n\t);\n\n\tconst { set: setPreference } = useDispatch( preferencesStore );\n\tif ( ! showTemplatePartHint ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Notice\n\t\t\tpoliteness=\"polite\"\n\t\t\tclassName=\"edit-site-sidebar__notice\"\n\t\t\tonRemove={ () => {\n\t\t\t\tsetPreference( 'core', PREFERENCE_NAME, false );\n\t\t\t} }\n\t\t>\n\t\t\t{ __( 'Looking for template parts? Find them in \"Patterns\".' ) }\n\t\t</Notice>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalNavigatorButton as NavigatorButton,\n\t__experimentalUseNavigator as useNavigator,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { layout, symbol, navigation, styles, page } from '@wordpress/icons';\nimport { useDispatch } from '@wordpress/data';\n\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport SidebarNavigationItem from '../sidebar-navigation-item';\nimport { SidebarNavigationItemGlobalStyles } from '../sidebar-navigation-screen-global-styles';\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport TemplatePartHint from './template-part-hint';\n\nexport default function SidebarNavigationScreenMain() {\n\tconst { location } = useNavigator();\n\tconst { setEditorCanvasContainerView } = unlock(\n\t\tuseDispatch( editSiteStore )\n\t);\n\n\t// Clear the editor canvas container view when accessing the main navigation screen.\n\tuseEffect( () => {\n\t\tif ( location?.path === '/' ) {\n\t\t\tsetEditorCanvasContainerView( undefined );\n\t\t}\n\t}, [ setEditorCanvasContainerView, location?.path ] );\n\n\treturn (\n\t\t<SidebarNavigationScreen\n\t\t\tisRoot\n\t\t\ttitle={ __( 'Design' ) }\n\t\t\tdescription={ __(\n\t\t\t\t'Customize the appearance of your website using the block editor.'\n\t\t\t) }\n\t\t\tcontent={\n\t\t\t\t<>\n\t\t\t\t\t<ItemGroup>\n\t\t\t\t\t\t<NavigatorButton\n\t\t\t\t\t\t\tas={ SidebarNavigationItem }\n\t\t\t\t\t\t\tpath=\"/navigation\"\n\t\t\t\t\t\t\twithChevron\n\t\t\t\t\t\t\ticon={ navigation }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Navigation' ) }\n\t\t\t\t\t\t</NavigatorButton>\n\t\t\t\t\t\t<SidebarNavigationItemGlobalStyles\n\t\t\t\t\t\t\twithChevron\n\t\t\t\t\t\t\ticon={ styles }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Styles' ) }\n\t\t\t\t\t\t</SidebarNavigationItemGlobalStyles>\n\t\t\t\t\t\t<NavigatorButton\n\t\t\t\t\t\t\tas={ SidebarNavigationItem }\n\t\t\t\t\t\t\tpath=\"/page\"\n\t\t\t\t\t\t\twithChevron\n\t\t\t\t\t\t\ticon={ page }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Pages' ) }\n\t\t\t\t\t\t</NavigatorButton>\n\t\t\t\t\t\t<NavigatorButton\n\t\t\t\t\t\t\tas={ SidebarNavigationItem }\n\t\t\t\t\t\t\tpath=\"/wp_template\"\n\t\t\t\t\t\t\twithChevron\n\t\t\t\t\t\t\ticon={ layout }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Templates' ) }\n\t\t\t\t\t\t</NavigatorButton>\n\t\t\t\t\t\t<NavigatorButton\n\t\t\t\t\t\t\tas={ SidebarNavigationItem }\n\t\t\t\t\t\t\tpath=\"/patterns\"\n\t\t\t\t\t\t\twithChevron\n\t\t\t\t\t\t\ticon={ symbol }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Patterns' ) }\n\t\t\t\t\t\t</NavigatorButton>\n\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t<TemplatePartHint />\n\t\t\t\t</>\n\t\t\t}\n\t\t/>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst home = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M12 4L4 7.9V20h16V7.9L12 4zm6.5 14.5H14V13h-4v5.5H5.5V8.8L12 5.7l6.5 3.1v9.7z\" />\n\t</SVG>\n);\n\nexport default home;\n","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst verse = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"M17.8 2l-.9.3c-.1 0-3.6 1-5.2 2.1C10 5.5 9.3 6.5 8.9 7.1c-.6.9-1.7 4.7-1.7 6.3l-.9 2.3c-.2.4 0 .8.4 1 .1 0 .2.1.3.1.3 0 .6-.2.7-.5l.6-1.5c.3 0 .7-.1 1.2-.2.7-.1 1.4-.3 2.2-.5.8-.2 1.6-.5 2.4-.8.7-.3 1.4-.7 1.9-1.2s.8-1.2 1-1.9c.2-.7.3-1.6.4-2.4.1-.8.1-1.7.2-2.5 0-.8.1-1.5.2-2.1V2zm-1.9 5.6c-.1.8-.2 1.5-.3 2.1-.2.6-.4 1-.6 1.3-.3.3-.8.6-1.4.9-.7.3-1.4.5-2.2.8-.6.2-1.3.3-1.8.4L15 7.5c.3-.3.6-.7 1-1.1 0 .4 0 .8-.1 1.2zM6 20h8v-1.5H6V20z\" />\n\t</SVG>\n);\n\nexport default verse;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst pin = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"m21.5 9.1-6.6-6.6-4.2 5.6c-1.2-.1-2.4.1-3.6.7-.1 0-.1.1-.2.1-.5.3-.9.6-1.2.9l3.7 3.7-5.7 5.7v1.1h1.1l5.7-5.7 3.7 3.7c.4-.4.7-.8.9-1.2.1-.1.1-.2.2-.3.6-1.1.8-2.4.6-3.6l5.6-4.1zm-7.3 3.5.1.9c.1.9 0 1.8-.4 2.6l-6-6c.8-.4 1.7-.5 2.6-.4l.9.1L15 4.9 19.1 9l-4.9 3.6z\" />\n\t</SVG>\n);\n\nexport default pin;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst archive = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"M11.934 7.406a1 1 0 0 0 .914.594H19a.5.5 0 0 1 .5.5v9a.5.5 0 0 1-.5.5H5a.5.5 0 0 1-.5-.5V6a.5.5 0 0 1 .5-.5h5.764a.5.5 0 0 1 .447.276l.723 1.63Zm1.064-1.216a.5.5 0 0 0 .462.31H19a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h5.764a2 2 0 0 1 1.789 1.106l.445 1.084ZM8.5 10.5h7V12h-7v-1.5Zm7 3.5h-7v1.5h7V14Z\"\n\t\t/>\n\t</SVG>\n);\n\nexport default archive;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst search = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M13 5c-3.3 0-6 2.7-6 6 0 1.4.5 2.7 1.3 3.7l-3.8 3.8 1.1 1.1 3.8-3.8c1 .8 2.3 1.3 3.7 1.3 3.3 0 6-2.7 6-6S16.3 5 13 5zm0 10.5c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5 4.5 2 4.5 4.5-2 4.5-4.5 4.5z\" />\n\t</SVG>\n);\n\nexport default search;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst notFound = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M19 5H5c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm.5 12c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V7c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v10zm-11-7.6h-.7l-3.1 4.3h2.8V15h1v-1.3h.7v-.8h-.7V9.4zm-.9 3.5H6.3l1.2-1.7v1.7zm5.6-3.2c-.4-.2-.8-.4-1.2-.4-.5 0-.9.1-1.2.4-.4.2-.6.6-.8 1-.2.4-.3.9-.3 1.5s.1 1.1.3 1.6c.2.4.5.8.8 1 .4.2.8.4 1.2.4.5 0 .9-.1 1.2-.4.4-.2.6-.6.8-1 .2-.4.3-1 .3-1.6 0-.6-.1-1.1-.3-1.5-.1-.5-.4-.8-.8-1zm0 3.6c-.1.3-.3.5-.5.7-.2.1-.4.2-.7.2-.3 0-.5-.1-.7-.2-.2-.1-.4-.4-.5-.7-.1-.3-.2-.7-.2-1.2 0-.7.1-1.2.4-1.5.3-.3.6-.5 1-.5s.7.2 1 .5c.3.3.4.8.4 1.5-.1.5-.1.9-.2 1.2zm5-3.9h-.7l-3.1 4.3h2.8V15h1v-1.3h.7v-.8h-.7V9.4zm-1 3.5H16l1.2-1.7v1.7z\" />\n\t</SVG>\n);\n\nexport default notFound;\n","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst list = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"M4 4v1.5h16V4H4zm8 8.5h8V11h-8v1.5zM4 20h16v-1.5H4V20zm4-8c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2z\" />\n\t</SVG>\n);\n\nexport default list;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst category = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path\n\t\t\td=\"M6 5.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5H6a.5.5 0 01-.5-.5V6a.5.5 0 01.5-.5zM4 6a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2H6a2 2 0 01-2-2V6zm11-.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5V6a.5.5 0 01.5-.5zM13 6a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2h-3a2 2 0 01-2-2V6zm5 8.5h-3a.5.5 0 00-.5.5v3a.5.5 0 00.5.5h3a.5.5 0 00.5-.5v-3a.5.5 0 00-.5-.5zM15 13a2 2 0 00-2 2v3a2 2 0 002 2h3a2 2 0 002-2v-3a2 2 0 00-2-2h-3zm-9 1.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5H6a.5.5 0 01-.5-.5v-3a.5.5 0 01.5-.5zM4 15a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2H6a2 2 0 01-2-2v-3z\"\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t/>\n\t</SVG>\n);\n\nexport default category;\n","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst commentAuthorAvatar = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path\n\t\t\tfillRule=\"evenodd\"\n\t\t\td=\"M7.25 16.437a6.5 6.5 0 1 1 9.5 0V16A2.75 2.75 0 0 0 14 13.25h-4A2.75 2.75 0 0 0 7.25 16v.437Zm1.5 1.193a6.47 6.47 0 0 0 3.25.87 6.47 6.47 0 0 0 3.25-.87V16c0-.69-.56-1.25-1.25-1.25h-4c-.69 0-1.25.56-1.25 1.25v1.63ZM4 12a8 8 0 1 1 16 0 8 8 0 0 1-16 0Zm10-2a2 2 0 1 1-4 0 2 2 0 0 1 4 0Z\"\n\t\t\tclipRule=\"evenodd\"\n\t\t/>\n\t</SVG>\n);\n\nexport default commentAuthorAvatar;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst blockMeta = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path\n\t\t\tfillRule=\"evenodd\"\n\t\t\td=\"M8.95 11.25H4v1.5h4.95v4.5H13V18c0 1.1.9 2 2 2h3c1.1 0 2-.9 2-2v-3c0-1.1-.9-2-2-2h-3c-1.1 0-2 .9-2 2v.75h-2.55v-7.5H13V9c0 1.1.9 2 2 2h3c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3c-1.1 0-2 .9-2 2v.75H8.95v4.5ZM14.5 15v3c0 .3.2.5.5.5h3c.3 0 .5-.2.5-.5v-3c0-.3-.2-.5-.5-.5h-3c-.3 0-.5.2-.5.5Zm0-6V6c0-.3.2-.5.5-.5h3c.3 0 .5.2.5.5v3c0 .3-.2.5-.5.5h-3c-.3 0-.5-.2-.5-.5Z\"\n\t\t\tclipRule=\"evenodd\"\n\t\t/>\n\t</SVG>\n);\n\nexport default blockMeta;\n","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst calendar = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V7h15v12zM9 10H7v2h2v-2zm0 4H7v2h2v-2zm4-4h-2v2h2v-2zm4 0h-2v2h2v-2zm-4 4h-2v2h2v-2zm4 0h-2v2h2v-2z\" />\n\t</SVG>\n);\n\nexport default calendar;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst tag = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M4.75 4a.75.75 0 0 0-.75.75v7.826c0 .2.08.39.22.53l6.72 6.716a2.313 2.313 0 0 0 3.276-.001l5.61-5.611-.531-.53.532.528a2.315 2.315 0 0 0 0-3.264L13.104 4.22a.75.75 0 0 0-.53-.22H4.75ZM19 12.576a.815.815 0 0 1-.236.574l-5.61 5.611a.814.814 0 0 1-1.153 0L5.5 12.264V5.5h6.763l6.5 6.502a.816.816 0 0 1 .237.574ZM8.75 9.75a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z\" />\n\t</SVG>\n);\n\nexport default tag;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst media = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"m7 6.5 4 2.5-4 2.5z\" />\n\t\t<Path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"m5 3c-1.10457 0-2 .89543-2 2v14c0 1.1046.89543 2 2 2h14c1.1046 0 2-.8954 2-2v-14c0-1.10457-.8954-2-2-2zm14 1.5h-14c-.27614 0-.5.22386-.5.5v10.7072l3.62953-2.6465c.25108-.1831.58905-.1924.84981-.0234l2.92666 1.8969 3.5712-3.4719c.2911-.2831.7545-.2831 1.0456 0l2.9772 2.8945v-9.3568c0-.27614-.2239-.5-.5-.5zm-14.5 14.5v-1.4364l4.09643-2.987 2.99567 1.9417c.2936.1903.6798.1523.9307-.0917l3.4772-3.3806 3.4772 3.3806.0228-.0234v2.5968c0 .2761-.2239.5-.5.5h-14c-.27614 0-.5-.2239-.5-.5z\"\n\t\t/>\n\t</SVG>\n);\n\nexport default media;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst plus = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M11 12.5V17.5H12.5V12.5H17.5V11H12.5V6H11V11H6V12.5H11Z\" />\n\t</SVG>\n);\n\nexport default plus;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst post = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"m7.3 9.7 1.4 1.4c.2-.2.3-.3.4-.5 0 0 0-.1.1-.1.3-.5.4-1.1.3-1.6L12 7 9 4 7.2 6.5c-.6-.1-1.1 0-1.6.3 0 0-.1 0-.1.1-.3.1-.4.2-.6.4l1.4 1.4L4 11v1h1l2.3-2.3zM4 20h9v-1.5H4V20zm0-5.5V16h16v-1.5H4z\" />\n\t</SVG>\n);\n\nexport default post;\n","/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useMemo, useCallback } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { blockMeta, post, archive } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\n/**\n * @typedef IHasNameAndId\n * @property {string|number} id   The entity's id.\n * @property {string}        name The entity's name.\n */\n\nconst getValueFromObjectPath = ( object, path ) => {\n\tlet value = object;\n\tpath.split( '.' ).forEach( ( fieldName ) => {\n\t\tvalue = value?.[ fieldName ];\n\t} );\n\treturn value;\n};\n\n/**\n * Helper util to map records to add a `name` prop from a\n * provided path, in order to handle all entities in the same\n * fashion(implementing`IHasNameAndId` interface).\n *\n * @param {Object[]} entities The array of entities.\n * @param {string}   path     The path to map a `name` property from the entity.\n * @return {IHasNameAndId[]} An array of enitities that now implement the `IHasNameAndId` interface.\n */\nexport const mapToIHasNameAndId = ( entities, path ) => {\n\treturn ( entities || [] ).map( ( entity ) => ( {\n\t\t...entity,\n\t\tname: decodeEntities( getValueFromObjectPath( entity, path ) ),\n\t} ) );\n};\n\n/**\n * @typedef {Object} EntitiesInfo\n * @property {boolean}  hasEntities         If an entity has available records(posts, terms, etc..).\n * @property {number[]} existingEntitiesIds An array of the existing entities ids.\n */\n\nexport const useExistingTemplates = () => {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t{\n\t\t\t\t\tper_page: -1,\n\t\t\t\t}\n\t\t\t),\n\t\t[]\n\t);\n};\n\nexport const useDefaultTemplateTypes = () => {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).__experimentalGetDefaultTemplateTypes(),\n\t\t[]\n\t);\n};\n\nconst usePublicPostTypes = () => {\n\tconst postTypes = useSelect(\n\t\t( select ) => select( coreStore ).getPostTypes( { per_page: -1 } ),\n\t\t[]\n\t);\n\treturn useMemo( () => {\n\t\tconst excludedPostTypes = [ 'attachment' ];\n\t\treturn postTypes?.filter(\n\t\t\t( { viewable, slug } ) =>\n\t\t\t\tviewable && ! excludedPostTypes.includes( slug )\n\t\t);\n\t}, [ postTypes ] );\n};\n\nconst usePublicTaxonomies = () => {\n\tconst taxonomies = useSelect(\n\t\t( select ) => select( coreStore ).getTaxonomies( { per_page: -1 } ),\n\t\t[]\n\t);\n\treturn useMemo( () => {\n\t\treturn taxonomies?.filter(\n\t\t\t( { visibility } ) => visibility?.publicly_queryable\n\t\t);\n\t}, [ taxonomies ] );\n};\n\nfunction usePostTypeNeedsUniqueIdentifier( publicPostTypes ) {\n\tconst postTypeLabels = useMemo( () =>\n\t\tpublicPostTypes?.reduce( ( accumulator, { labels } ) => {\n\t\t\tconst singularName = labels.singular_name.toLowerCase();\n\t\t\taccumulator[ singularName ] =\n\t\t\t\t( accumulator[ singularName ] || 0 ) + 1;\n\t\t\treturn accumulator;\n\t\t}, {} )\n\t);\n\treturn useCallback(\n\t\t( { labels, slug } ) => {\n\t\t\tconst singularName = labels.singular_name.toLowerCase();\n\t\t\treturn postTypeLabels[ singularName ] > 1 && singularName !== slug;\n\t\t},\n\t\t[ postTypeLabels ]\n\t);\n}\n\nexport function usePostTypeArchiveMenuItems() {\n\tconst publicPostTypes = usePublicPostTypes();\n\tconst postTypesWithArchives = useMemo(\n\t\t() => publicPostTypes?.filter( ( postType ) => postType.has_archive ),\n\t\t[ publicPostTypes ]\n\t);\n\tconst existingTemplates = useExistingTemplates();\n\tconst needsUniqueIdentifier = usePostTypeNeedsUniqueIdentifier(\n\t\tpostTypesWithArchives\n\t);\n\treturn useMemo(\n\t\t() =>\n\t\t\tpostTypesWithArchives\n\t\t\t\t?.filter(\n\t\t\t\t\t( postType ) =>\n\t\t\t\t\t\t! ( existingTemplates || [] ).some(\n\t\t\t\t\t\t\t( existingTemplate ) =>\n\t\t\t\t\t\t\t\texistingTemplate.slug ===\n\t\t\t\t\t\t\t\t'archive-' + postType.slug\n\t\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t.map( ( postType ) => {\n\t\t\t\t\tlet title;\n\t\t\t\t\tif ( needsUniqueIdentifier( postType ) ) {\n\t\t\t\t\t\ttitle = sprintf(\n\t\t\t\t\t\t\t// translators: %1s: Name of the post type e.g: \"Post\"; %2s: Slug of the post type e.g: \"book\".\n\t\t\t\t\t\t\t__( 'Archive: %1$s (%2$s)' ),\n\t\t\t\t\t\t\tpostType.labels.singular_name,\n\t\t\t\t\t\t\tpostType.slug\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttitle = sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t\t\t\t\t__( 'Archive: %s' ),\n\t\t\t\t\t\t\tpostType.labels.singular_name\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tslug: 'archive-' + postType.slug,\n\t\t\t\t\t\tdescription: sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t'Displays an archive with the latest posts of type: %s.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tpostType.labels.singular_name\n\t\t\t\t\t\t),\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t// `icon` is the `menu_icon` property of a post type. We\n\t\t\t\t\t\t// only handle `dashicons` for now, even if the `menu_icon`\n\t\t\t\t\t\t// also supports urls and svg as values.\n\t\t\t\t\t\ticon: postType.icon?.startsWith( 'dashicons-' )\n\t\t\t\t\t\t\t? postType.icon.slice( 10 )\n\t\t\t\t\t\t\t: archive,\n\t\t\t\t\t\ttemplatePrefix: 'archive',\n\t\t\t\t\t};\n\t\t\t\t} ) || [],\n\t\t[ postTypesWithArchives, existingTemplates, needsUniqueIdentifier ]\n\t);\n}\n\nexport const usePostTypeMenuItems = ( onClickMenuItem ) => {\n\tconst publicPostTypes = usePublicPostTypes();\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\tconst needsUniqueIdentifier =\n\t\tusePostTypeNeedsUniqueIdentifier( publicPostTypes );\n\t// `page`is a special case in template hierarchy.\n\tconst templatePrefixes = useMemo(\n\t\t() =>\n\t\t\tpublicPostTypes?.reduce( ( accumulator, { slug } ) => {\n\t\t\t\tlet suffix = slug;\n\t\t\t\tif ( slug !== 'page' ) {\n\t\t\t\t\tsuffix = `single-${ suffix }`;\n\t\t\t\t}\n\t\t\t\taccumulator[ slug ] = suffix;\n\t\t\t\treturn accumulator;\n\t\t\t}, {} ),\n\t\t[ publicPostTypes ]\n\t);\n\tconst postTypesInfo = useEntitiesInfo( 'postType', templatePrefixes );\n\tconst existingTemplateSlugs = ( existingTemplates || [] ).map(\n\t\t( { slug } ) => slug\n\t);\n\tconst menuItems = ( publicPostTypes || [] ).reduce(\n\t\t( accumulator, postType ) => {\n\t\t\tconst { slug, labels, icon } = postType;\n\t\t\t// We need to check if the general template is part of the\n\t\t\t// defaultTemplateTypes. If it is, just use that info and\n\t\t\t// augment it with the specific template functionality.\n\t\t\tconst generalTemplateSlug = templatePrefixes[ slug ];\n\t\t\tconst defaultTemplateType = defaultTemplateTypes?.find(\n\t\t\t\t( { slug: _slug } ) => _slug === generalTemplateSlug\n\t\t\t);\n\t\t\tconst hasGeneralTemplate =\n\t\t\t\texistingTemplateSlugs?.includes( generalTemplateSlug );\n\t\t\tconst _needsUniqueIdentifier = needsUniqueIdentifier( postType );\n\t\t\tlet menuItemTitle = sprintf(\n\t\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t\t__( 'Single item: %s' ),\n\t\t\t\tlabels.singular_name\n\t\t\t);\n\t\t\tif ( _needsUniqueIdentifier ) {\n\t\t\t\tmenuItemTitle = sprintf(\n\t\t\t\t\t// translators: %1s: Name of the post type e.g: \"Post\"; %2s: Slug of the post type e.g: \"book\".\n\t\t\t\t\t__( 'Single item: %1$s (%2$s)' ),\n\t\t\t\t\tlabels.singular_name,\n\t\t\t\t\tslug\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst menuItem = defaultTemplateType\n\t\t\t\t? {\n\t\t\t\t\t\t...defaultTemplateType,\n\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t  }\n\t\t\t\t: {\n\t\t\t\t\t\tslug: generalTemplateSlug,\n\t\t\t\t\t\ttitle: menuItemTitle,\n\t\t\t\t\t\tdescription: sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t\t\t\t\t__( 'Displays a single item: %s.' ),\n\t\t\t\t\t\t\tlabels.singular_name\n\t\t\t\t\t\t),\n\t\t\t\t\t\t// `icon` is the `menu_icon` property of a post type. We\n\t\t\t\t\t\t// only handle `dashicons` for now, even if the `menu_icon`\n\t\t\t\t\t\t// also supports urls and svg as values.\n\t\t\t\t\t\ticon: icon?.startsWith( 'dashicons-' )\n\t\t\t\t\t\t\t? icon.slice( 10 )\n\t\t\t\t\t\t\t: post,\n\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t  };\n\t\t\tconst hasEntities = postTypesInfo?.[ slug ]?.hasEntities;\n\t\t\t// We have a different template creation flow only if they have entities.\n\t\t\tif ( hasEntities ) {\n\t\t\t\tmenuItem.onClick = ( template ) => {\n\t\t\t\t\tonClickMenuItem( {\n\t\t\t\t\t\ttype: 'postType',\n\t\t\t\t\t\tslug,\n\t\t\t\t\t\tconfig: {\n\t\t\t\t\t\t\trecordNamePath: 'title.rendered',\n\t\t\t\t\t\t\tqueryArgs: ( { search } ) => {\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t_fields: 'id,title,slug,link',\n\t\t\t\t\t\t\t\t\torderBy: search ? 'relevance' : 'modified',\n\t\t\t\t\t\t\t\t\texclude:\n\t\t\t\t\t\t\t\t\t\tpostTypesInfo[ slug ]\n\t\t\t\t\t\t\t\t\t\t\t.existingEntitiesIds,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tgetSpecificTemplate: ( suggestion ) => {\n\t\t\t\t\t\t\t\tconst templateSlug = `${ templatePrefixes[ slug ] }-${ suggestion.slug }`;\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\ttitle: templateSlug,\n\t\t\t\t\t\t\t\t\tslug: templateSlug,\n\t\t\t\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlabels,\n\t\t\t\t\t\thasGeneralTemplate,\n\t\t\t\t\t\ttemplate,\n\t\t\t\t\t} );\n\t\t\t\t};\n\t\t\t}\n\t\t\t// We don't need to add the menu item if there are no\n\t\t\t// entities and the general template exists.\n\t\t\tif ( ! hasGeneralTemplate || hasEntities ) {\n\t\t\t\taccumulator.push( menuItem );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t},\n\t\t[]\n\t);\n\t// Split menu items into two groups: one for the default post types\n\t// and one for the rest.\n\tconst postTypesMenuItems = useMemo(\n\t\t() =>\n\t\t\tmenuItems.reduce(\n\t\t\t\t( accumulator, postType ) => {\n\t\t\t\t\tconst { slug } = postType;\n\t\t\t\t\tlet key = 'postTypesMenuItems';\n\t\t\t\t\tif ( slug === 'page' ) {\n\t\t\t\t\t\tkey = 'defaultPostTypesMenuItems';\n\t\t\t\t\t}\n\t\t\t\t\taccumulator[ key ].push( postType );\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{ defaultPostTypesMenuItems: [], postTypesMenuItems: [] }\n\t\t\t),\n\t\t[ menuItems ]\n\t);\n\treturn postTypesMenuItems;\n};\n\nexport const useTaxonomiesMenuItems = ( onClickMenuItem ) => {\n\tconst publicTaxonomies = usePublicTaxonomies();\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\t// `category` and `post_tag` are special cases in template hierarchy.\n\tconst templatePrefixes = useMemo(\n\t\t() =>\n\t\t\tpublicTaxonomies?.reduce( ( accumulator, { slug } ) => {\n\t\t\t\tlet suffix = slug;\n\t\t\t\tif ( ! [ 'category', 'post_tag' ].includes( slug ) ) {\n\t\t\t\t\tsuffix = `taxonomy-${ suffix }`;\n\t\t\t\t}\n\t\t\t\tif ( slug === 'post_tag' ) {\n\t\t\t\t\tsuffix = `tag`;\n\t\t\t\t}\n\t\t\t\taccumulator[ slug ] = suffix;\n\t\t\t\treturn accumulator;\n\t\t\t}, {} ),\n\t\t[ publicTaxonomies ]\n\t);\n\t// We need to keep track of naming conflicts. If a conflict\n\t// occurs, we need to add slug.\n\tconst taxonomyLabels = publicTaxonomies?.reduce(\n\t\t( accumulator, { labels } ) => {\n\t\t\tconst singularName = labels.singular_name.toLowerCase();\n\t\t\taccumulator[ singularName ] =\n\t\t\t\t( accumulator[ singularName ] || 0 ) + 1;\n\t\t\treturn accumulator;\n\t\t},\n\t\t{}\n\t);\n\tconst needsUniqueIdentifier = ( labels, slug ) => {\n\t\tif ( [ 'category', 'post_tag' ].includes( slug ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tconst singularName = labels.singular_name.toLowerCase();\n\t\treturn taxonomyLabels[ singularName ] > 1 && singularName !== slug;\n\t};\n\tconst taxonomiesInfo = useEntitiesInfo( 'taxonomy', templatePrefixes );\n\tconst existingTemplateSlugs = ( existingTemplates || [] ).map(\n\t\t( { slug } ) => slug\n\t);\n\tconst menuItems = ( publicTaxonomies || [] ).reduce(\n\t\t( accumulator, taxonomy ) => {\n\t\t\tconst { slug, labels } = taxonomy;\n\t\t\t// We need to check if the general template is part of the\n\t\t\t// defaultTemplateTypes. If it is, just use that info and\n\t\t\t// augment it with the specific template functionality.\n\t\t\tconst generalTemplateSlug = templatePrefixes[ slug ];\n\t\t\tconst defaultTemplateType = defaultTemplateTypes?.find(\n\t\t\t\t( { slug: _slug } ) => _slug === generalTemplateSlug\n\t\t\t);\n\t\t\tconst hasGeneralTemplate =\n\t\t\t\texistingTemplateSlugs?.includes( generalTemplateSlug );\n\t\t\tconst _needsUniqueIdentifier = needsUniqueIdentifier(\n\t\t\t\tlabels,\n\t\t\t\tslug\n\t\t\t);\n\t\t\tlet menuItemTitle = labels.singular_name;\n\t\t\tif ( _needsUniqueIdentifier ) {\n\t\t\t\tmenuItemTitle = sprintf(\n\t\t\t\t\t// translators: %1s: Name of the taxonomy e.g: \"Category\"; %2s: Slug of the taxonomy e.g: \"product_cat\".\n\t\t\t\t\t__( '%1$s (%2$s)' ),\n\t\t\t\t\tlabels.singular_name,\n\t\t\t\t\tslug\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst menuItem = defaultTemplateType\n\t\t\t\t? {\n\t\t\t\t\t\t...defaultTemplateType,\n\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t  }\n\t\t\t\t: {\n\t\t\t\t\t\tslug: generalTemplateSlug,\n\t\t\t\t\t\ttitle: menuItemTitle,\n\t\t\t\t\t\tdescription: sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the taxonomy e.g: \"Product Categories\".\n\t\t\t\t\t\t\t__( 'Displays taxonomy: %s.' ),\n\t\t\t\t\t\t\tlabels.singular_name\n\t\t\t\t\t\t),\n\t\t\t\t\t\ticon: blockMeta,\n\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t  };\n\t\t\tconst hasEntities = taxonomiesInfo?.[ slug ]?.hasEntities;\n\t\t\t// We have a different template creation flow only if they have entities.\n\t\t\tif ( hasEntities ) {\n\t\t\t\tmenuItem.onClick = ( template ) => {\n\t\t\t\t\tonClickMenuItem( {\n\t\t\t\t\t\ttype: 'taxonomy',\n\t\t\t\t\t\tslug,\n\t\t\t\t\t\tconfig: {\n\t\t\t\t\t\t\tqueryArgs: ( { search } ) => {\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t_fields: 'id,name,slug,link',\n\t\t\t\t\t\t\t\t\torderBy: search ? 'name' : 'count',\n\t\t\t\t\t\t\t\t\texclude:\n\t\t\t\t\t\t\t\t\t\ttaxonomiesInfo[ slug ]\n\t\t\t\t\t\t\t\t\t\t\t.existingEntitiesIds,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tgetSpecificTemplate: ( suggestion ) => {\n\t\t\t\t\t\t\t\tconst templateSlug = `${ templatePrefixes[ slug ] }-${ suggestion.slug }`;\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\ttitle: templateSlug,\n\t\t\t\t\t\t\t\t\tslug: templateSlug,\n\t\t\t\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlabels,\n\t\t\t\t\t\thasGeneralTemplate,\n\t\t\t\t\t\ttemplate,\n\t\t\t\t\t} );\n\t\t\t\t};\n\t\t\t}\n\t\t\t// We don't need to add the menu item if there are no\n\t\t\t// entities and the general template exists.\n\t\t\tif ( ! hasGeneralTemplate || hasEntities ) {\n\t\t\t\taccumulator.push( menuItem );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t},\n\t\t[]\n\t);\n\t// Split menu items into two groups: one for the default taxonomies\n\t// and one for the rest.\n\tconst taxonomiesMenuItems = useMemo(\n\t\t() =>\n\t\t\tmenuItems.reduce(\n\t\t\t\t( accumulator, taxonomy ) => {\n\t\t\t\t\tconst { slug } = taxonomy;\n\t\t\t\t\tlet key = 'taxonomiesMenuItems';\n\t\t\t\t\tif ( [ 'category', 'tag' ].includes( slug ) ) {\n\t\t\t\t\t\tkey = 'defaultTaxonomiesMenuItems';\n\t\t\t\t\t}\n\t\t\t\t\taccumulator[ key ].push( taxonomy );\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{ defaultTaxonomiesMenuItems: [], taxonomiesMenuItems: [] }\n\t\t\t),\n\t\t[ menuItems ]\n\t);\n\treturn taxonomiesMenuItems;\n};\n\nconst USE_AUTHOR_MENU_ITEM_TEMPLATE_PREFIX = { user: 'author' };\nconst USE_AUTHOR_MENU_ITEM_QUERY_PARAMETERS = { user: { who: 'authors' } };\nexport function useAuthorMenuItem( onClickMenuItem ) {\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\tconst authorInfo = useEntitiesInfo(\n\t\t'root',\n\t\tUSE_AUTHOR_MENU_ITEM_TEMPLATE_PREFIX,\n\t\tUSE_AUTHOR_MENU_ITEM_QUERY_PARAMETERS\n\t);\n\tlet authorMenuItem = defaultTemplateTypes?.find(\n\t\t( { slug } ) => slug === 'author'\n\t);\n\tif ( ! authorMenuItem ) {\n\t\tauthorMenuItem = {\n\t\t\tdescription: __(\n\t\t\t\t'Displays latest posts written by a single author.'\n\t\t\t),\n\t\t\tslug: 'author',\n\t\t\ttitle: 'Author',\n\t\t};\n\t}\n\tconst hasGeneralTemplate = !! existingTemplates?.find(\n\t\t( { slug } ) => slug === 'author'\n\t);\n\tif ( authorInfo.user?.hasEntities ) {\n\t\tauthorMenuItem = { ...authorMenuItem, templatePrefix: 'author' };\n\t\tauthorMenuItem.onClick = ( template ) => {\n\t\t\tonClickMenuItem( {\n\t\t\t\ttype: 'root',\n\t\t\t\tslug: 'user',\n\t\t\t\tconfig: {\n\t\t\t\t\tqueryArgs: ( { search } ) => {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t_fields: 'id,name,slug,link',\n\t\t\t\t\t\t\torderBy: search ? 'name' : 'registered_date',\n\t\t\t\t\t\t\texclude: authorInfo.user.existingEntitiesIds,\n\t\t\t\t\t\t\twho: 'authors',\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t\tgetSpecificTemplate: ( suggestion ) => {\n\t\t\t\t\t\tconst templateSlug = `author-${ suggestion.slug }`;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttitle: templateSlug,\n\t\t\t\t\t\t\tslug: templateSlug,\n\t\t\t\t\t\t\ttemplatePrefix: 'author',\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tlabels: {\n\t\t\t\t\tsingular_name: __( 'Author' ),\n\t\t\t\t\tsearch_items: __( 'Search Authors' ),\n\t\t\t\t\tnot_found: __( 'No authors found.' ),\n\t\t\t\t\tall_items: __( 'All Authors' ),\n\t\t\t\t},\n\t\t\t\thasGeneralTemplate,\n\t\t\t\ttemplate,\n\t\t\t} );\n\t\t};\n\t}\n\tif ( ! hasGeneralTemplate || authorInfo.user?.hasEntities ) {\n\t\treturn authorMenuItem;\n\t}\n}\n\n/**\n * Helper hook that filters all the existing templates by the given\n * object with the entity's slug as key and the template prefix as value.\n *\n * Example:\n * `existingTemplates` is: [ { slug: 'tag-apple' }, { slug: 'page-about' }, { slug: 'tag' } ]\n * `templatePrefixes` is: { post_tag: 'tag' }\n * It will return: { post_tag: ['apple'] }\n *\n * Note: We append the `-` to the given template prefix in this function for our checks.\n *\n * @param {Record<string,string>} templatePrefixes An object with the entity's slug as key and the template prefix as value.\n * @return {Record<string,string[]>} An object with the entity's slug as key and an array with the existing template slugs as value.\n */\nconst useExistingTemplateSlugs = ( templatePrefixes ) => {\n\tconst existingTemplates = useExistingTemplates();\n\tconst existingSlugs = useMemo( () => {\n\t\treturn Object.entries( templatePrefixes || {} ).reduce(\n\t\t\t( accumulator, [ slug, prefix ] ) => {\n\t\t\t\tconst slugsWithTemplates = ( existingTemplates || [] ).reduce(\n\t\t\t\t\t( _accumulator, existingTemplate ) => {\n\t\t\t\t\t\tconst _prefix = `${ prefix }-`;\n\t\t\t\t\t\tif ( existingTemplate.slug.startsWith( _prefix ) ) {\n\t\t\t\t\t\t\t_accumulator.push(\n\t\t\t\t\t\t\t\texistingTemplate.slug.substring(\n\t\t\t\t\t\t\t\t\t_prefix.length\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn _accumulator;\n\t\t\t\t\t},\n\t\t\t\t\t[]\n\t\t\t\t);\n\t\t\t\tif ( slugsWithTemplates.length ) {\n\t\t\t\t\taccumulator[ slug ] = slugsWithTemplates;\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t},\n\t\t\t{}\n\t\t);\n\t}, [ templatePrefixes, existingTemplates ] );\n\treturn existingSlugs;\n};\n\n/**\n * Helper hook that finds the existing records with an associated template,\n * as they need to be excluded from the template suggestions.\n *\n * @param {string}                entityName                The entity's name.\n * @param {Record<string,string>} templatePrefixes          An object with the entity's slug as key and the template prefix as value.\n * @param {Record<string,Object>} additionalQueryParameters An object with the entity's slug as key and additional query parameters as value.\n * @return {Record<string,EntitiesInfo>} An object with the entity's slug as key and the existing records as value.\n */\nconst useTemplatesToExclude = (\n\tentityName,\n\ttemplatePrefixes,\n\tadditionalQueryParameters = {}\n) => {\n\tconst slugsToExcludePerEntity =\n\t\tuseExistingTemplateSlugs( templatePrefixes );\n\tconst recordsToExcludePerEntity = useSelect(\n\t\t( select ) => {\n\t\t\treturn Object.entries( slugsToExcludePerEntity || {} ).reduce(\n\t\t\t\t( accumulator, [ slug, slugsWithTemplates ] ) => {\n\t\t\t\t\tconst entitiesWithTemplates = select(\n\t\t\t\t\t\tcoreStore\n\t\t\t\t\t).getEntityRecords( entityName, slug, {\n\t\t\t\t\t\t_fields: 'id',\n\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t\tslug: slugsWithTemplates,\n\t\t\t\t\t\t...additionalQueryParameters[ slug ],\n\t\t\t\t\t} );\n\t\t\t\t\tif ( entitiesWithTemplates?.length ) {\n\t\t\t\t\t\taccumulator[ slug ] = entitiesWithTemplates;\n\t\t\t\t\t}\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\t\t},\n\t\t[ slugsToExcludePerEntity ]\n\t);\n\treturn recordsToExcludePerEntity;\n};\n\n/**\n * Helper hook that returns information about an entity having\n * records that we can create a specific template for.\n *\n * For example we can search for `terms` in `taxonomy` entity or\n * `posts` in `postType` entity.\n *\n * First we need to find the existing records with an associated template,\n * to query afterwards for any remaining record, by excluding them.\n *\n * @param {string}                entityName                The entity's name.\n * @param {Record<string,string>} templatePrefixes          An object with the entity's slug as key and the template prefix as value.\n * @param {Record<string,Object>} additionalQueryParameters An object with the entity's slug as key and additional query parameters as value.\n * @return {Record<string,EntitiesInfo>} An object with the entity's slug as key and the EntitiesInfo as value.\n */\nconst useEntitiesInfo = (\n\tentityName,\n\ttemplatePrefixes,\n\tadditionalQueryParameters = {}\n) => {\n\tconst recordsToExcludePerEntity = useTemplatesToExclude(\n\t\tentityName,\n\t\ttemplatePrefixes,\n\t\tadditionalQueryParameters\n\t);\n\tconst entitiesInfo = useSelect(\n\t\t( select ) => {\n\t\t\treturn Object.keys( templatePrefixes || {} ).reduce(\n\t\t\t\t( accumulator, slug ) => {\n\t\t\t\t\tconst existingEntitiesIds =\n\t\t\t\t\t\trecordsToExcludePerEntity?.[ slug ]?.map(\n\t\t\t\t\t\t\t( { id } ) => id\n\t\t\t\t\t\t) || [];\n\t\t\t\t\taccumulator[ slug ] = {\n\t\t\t\t\t\thasEntities: !! select( coreStore ).getEntityRecords(\n\t\t\t\t\t\t\tentityName,\n\t\t\t\t\t\t\tslug,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tper_page: 1,\n\t\t\t\t\t\t\t\t_fields: 'id',\n\t\t\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t\t\t\texclude: existingEntitiesIds,\n\t\t\t\t\t\t\t\t...additionalQueryParameters[ slug ],\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t)?.length,\n\t\t\t\t\t\texistingEntitiesIds,\n\t\t\t\t\t};\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\t\t},\n\t\t[ templatePrefixes, recordsToExcludePerEntity ]\n\t);\n\treturn entitiesInfo;\n};\n","/**\n * WordPress dependencies\n */\nimport { useState, useMemo, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tFlex,\n\tFlexItem,\n\tSearchControl,\n\tTextHighlight,\n\tprivateApis as componentsPrivateApis,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useDebouncedInput } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { mapToIHasNameAndId } from './utils';\n\nconst {\n\tCompositeV2: Composite,\n\tCompositeItemV2: CompositeItem,\n\tuseCompositeStoreV2: useCompositeStore,\n} = unlock( componentsPrivateApis );\n\nconst EMPTY_ARRAY = [];\n\nfunction SuggestionListItem( {\n\tsuggestion,\n\tsearch,\n\tonSelect,\n\tentityForSuggestions,\n} ) {\n\tconst baseCssClass =\n\t\t'edit-site-custom-template-modal__suggestions_list__list-item';\n\treturn (\n\t\t<CompositeItem\n\t\t\trender={\n\t\t\t\t<Button\n\t\t\t\t\trole=\"option\"\n\t\t\t\t\tclassName={ baseCssClass }\n\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\tonSelect(\n\t\t\t\t\t\t\tentityForSuggestions.config.getSpecificTemplate(\n\t\t\t\t\t\t\t\tsuggestion\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t<Text\n\t\t\t\tsize=\"body\"\n\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\tweight={ 500 }\n\t\t\t\tclassName={ `${ baseCssClass }__title` }\n\t\t\t>\n\t\t\t\t<TextHighlight\n\t\t\t\t\ttext={ decodeEntities( suggestion.name ) }\n\t\t\t\t\thighlight={ search }\n\t\t\t\t/>\n\t\t\t</Text>\n\t\t\t{ suggestion.link && (\n\t\t\t\t<Text\n\t\t\t\t\tsize=\"body\"\n\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\tclassName={ `${ baseCssClass }__info` }\n\t\t\t\t>\n\t\t\t\t\t{ suggestion.link }\n\t\t\t\t</Text>\n\t\t\t) }\n\t\t</CompositeItem>\n\t);\n}\n\nfunction useSearchSuggestions( entityForSuggestions, search ) {\n\tconst { config } = entityForSuggestions;\n\tconst query = useMemo(\n\t\t() => ( {\n\t\t\torder: 'asc',\n\t\t\tcontext: 'view',\n\t\t\tsearch,\n\t\t\tper_page: search ? 20 : 10,\n\t\t\t...config.queryArgs( search ),\n\t\t} ),\n\t\t[ search, config ]\n\t);\n\tconst { records: searchResults, hasResolved: searchHasResolved } =\n\t\tuseEntityRecords(\n\t\t\tentityForSuggestions.type,\n\t\t\tentityForSuggestions.slug,\n\t\t\tquery\n\t\t);\n\tconst [ suggestions, setSuggestions ] = useState( EMPTY_ARRAY );\n\tuseEffect( () => {\n\t\tif ( ! searchHasResolved ) return;\n\t\tlet newSuggestions = EMPTY_ARRAY;\n\t\tif ( searchResults?.length ) {\n\t\t\tnewSuggestions = searchResults;\n\t\t\tif ( config.recordNamePath ) {\n\t\t\t\tnewSuggestions = mapToIHasNameAndId(\n\t\t\t\t\tnewSuggestions,\n\t\t\t\t\tconfig.recordNamePath\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\t// Update suggestions only when the query has resolved, so as to keep\n\t\t// the previous results in the UI.\n\t\tsetSuggestions( newSuggestions );\n\t}, [ searchResults, searchHasResolved ] );\n\treturn suggestions;\n}\n\nfunction SuggestionList( { entityForSuggestions, onSelect } ) {\n\tconst composite = useCompositeStore( { orientation: 'vertical' } );\n\tconst [ search, setSearch, debouncedSearch ] = useDebouncedInput();\n\tconst suggestions = useSearchSuggestions(\n\t\tentityForSuggestions,\n\t\tdebouncedSearch\n\t);\n\tconst { labels } = entityForSuggestions;\n\tconst [ showSearchControl, setShowSearchControl ] = useState( false );\n\tif ( ! showSearchControl && suggestions?.length > 9 ) {\n\t\tsetShowSearchControl( true );\n\t}\n\treturn (\n\t\t<>\n\t\t\t{ showSearchControl && (\n\t\t\t\t<SearchControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tonChange={ setSearch }\n\t\t\t\t\tvalue={ search }\n\t\t\t\t\tlabel={ labels.search_items }\n\t\t\t\t\tplaceholder={ labels.search_items }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ !! suggestions?.length && (\n\t\t\t\t<Composite\n\t\t\t\t\tstore={ composite }\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\tclassName=\"edit-site-custom-template-modal__suggestions_list\"\n\t\t\t\t\taria-label={ __( 'Suggestions list' ) }\n\t\t\t\t>\n\t\t\t\t\t{ suggestions.map( ( suggestion ) => (\n\t\t\t\t\t\t<SuggestionListItem\n\t\t\t\t\t\t\tkey={ suggestion.slug }\n\t\t\t\t\t\t\tsuggestion={ suggestion }\n\t\t\t\t\t\t\tsearch={ debouncedSearch }\n\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\tentityForSuggestions={ entityForSuggestions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t</Composite>\n\t\t\t) }\n\t\t\t{ debouncedSearch && ! suggestions?.length && (\n\t\t\t\t<Text\n\t\t\t\t\tas=\"p\"\n\t\t\t\t\tclassName=\"edit-site-custom-template-modal__no-results\"\n\t\t\t\t>\n\t\t\t\t\t{ labels.not_found }\n\t\t\t\t</Text>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction AddCustomTemplateModalContent( { onSelect, entityForSuggestions } ) {\n\tconst [ showSearchEntities, setShowSearchEntities ] = useState(\n\t\tentityForSuggestions.hasGeneralTemplate\n\t);\n\treturn (\n\t\t<VStack\n\t\t\tspacing={ 4 }\n\t\t\tclassName=\"edit-site-custom-template-modal__contents-wrapper\"\n\t\t\talignment=\"left\"\n\t\t>\n\t\t\t{ ! showSearchEntities && (\n\t\t\t\t<>\n\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Select whether to create a single template for all items or a specific one.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Flex\n\t\t\t\t\t\tclassName=\"edit-site-custom-template-modal__contents\"\n\t\t\t\t\t\tgap=\"4\"\n\t\t\t\t\t\talign=\"initial\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\t\t\tslug,\n\t\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\t\tdescription,\n\t\t\t\t\t\t\t\t\ttemplatePrefix,\n\t\t\t\t\t\t\t\t} = entityForSuggestions.template;\n\t\t\t\t\t\t\t\tonSelect( {\n\t\t\t\t\t\t\t\t\tslug,\n\t\t\t\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t\t\t\tdescription,\n\t\t\t\t\t\t\t\t\ttemplatePrefix,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tweight={ 500 }\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ entityForSuggestions.labels.all_items }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t// translators: The user is given the choice to set up a template for all items of a post type or taxonomy, or just a specific one.\n\t\t\t\t\t\t\t\t\t__( 'For all items' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetShowSearchEntities( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tweight={ 500 }\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ entityForSuggestions.labels.singular_name }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t// translators: The user is given the choice to set up a template for all items of a post type or taxonomy, or just a specific one.\n\t\t\t\t\t\t\t\t\t__( 'For a specific item' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t</Flex>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ showSearchEntities && (\n\t\t\t\t<>\n\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'This template will be used only for the specific item chosen.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<SuggestionList\n\t\t\t\t\t\tentityForSuggestions={ entityForSuggestions }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport default AddCustomTemplateModalContent;\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n  extendStatics = Object.setPrototypeOf ||\n      ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n      function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n  return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n  if (typeof b !== \"function\" && b !== null)\n      throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n  extendStatics(d, b);\n  function __() { this.constructor = d; }\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n  __assign = Object.assign || function __assign(t) {\n      for (var s, i = 1, n = arguments.length; i < n; i++) {\n          s = arguments[i];\n          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n      }\n      return t;\n  }\n  return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n      t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n      for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n          if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n              t[p[i]] = s[p[i]];\n      }\n  return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n  return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n  return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n  function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n  var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n  var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n  var _, done = false;\n  for (var i = decorators.length - 1; i >= 0; i--) {\n      var context = {};\n      for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n      for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n      context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n      var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n      if (kind === \"accessor\") {\n          if (result === void 0) continue;\n          if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n          if (_ = accept(result.get)) descriptor.get = _;\n          if (_ = accept(result.set)) descriptor.set = _;\n          if (_ = accept(result.init)) initializers.unshift(_);\n      }\n      else if (_ = accept(result)) {\n          if (kind === \"field\") initializers.unshift(_);\n          else descriptor[key] = _;\n      }\n  }\n  if (target) Object.defineProperty(target, contextIn.name, descriptor);\n  done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n  var useValue = arguments.length > 2;\n  for (var i = 0; i < initializers.length; i++) {\n      value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n  }\n  return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n  return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n  if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n  return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n  if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n  return new (P || (P = Promise))(function (resolve, reject) {\n      function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n      function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n      function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n      step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n}\n\nexport function __generator(thisArg, body) {\n  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n  return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n  function verb(n) { return function (v) { return step([n, v]); }; }\n  function step(op) {\n      if (f) throw new TypeError(\"Generator is already executing.\");\n      while (g && (g = 0, op[0] && (_ = 0)), _) try {\n          if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n          if (y = 0, t) op = [op[0] & 2, t.value];\n          switch (op[0]) {\n              case 0: case 1: t = op; break;\n              case 4: _.label++; return { value: op[1], done: false };\n              case 5: _.label++; y = op[1]; op = [0]; continue;\n              case 7: op = _.ops.pop(); _.trys.pop(); continue;\n              default:\n                  if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                  if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                  if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                  if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                  if (t[2]) _.ops.pop();\n                  _.trys.pop(); continue;\n          }\n          op = body.call(thisArg, _);\n      } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n      if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n  }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  var desc = Object.getOwnPropertyDescriptor(m, k);\n  if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n  }\n  Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n  for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n  var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n  if (m) return m.call(o);\n  if (o && typeof o.length === \"number\") return {\n      next: function () {\n          if (o && i >= o.length) o = void 0;\n          return { value: o && o[i++], done: !o };\n      }\n  };\n  throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n  var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n  if (!m) return o;\n  var i = m.call(o), r, ar = [], e;\n  try {\n      while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n  }\n  catch (error) { e = { error: error }; }\n  finally {\n      try {\n          if (r && !r.done && (m = i[\"return\"])) m.call(i);\n      }\n      finally { if (e) throw e.error; }\n  }\n  return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n  for (var ar = [], i = 0; i < arguments.length; i++)\n      ar = ar.concat(__read(arguments[i]));\n  return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n  for (var r = Array(s), k = 0, i = 0; i < il; i++)\n      for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n          r[k] = a[j];\n  return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n      if (ar || !(i in from)) {\n          if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n          ar[i] = from[i];\n      }\n  }\n  return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n  return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []), i, q = [];\n  return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n  function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n  function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n  function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n  function fulfill(value) { resume(\"next\", value); }\n  function reject(value) { resume(\"throw\", value); }\n  function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n  var i, p;\n  return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n  function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var m = o[Symbol.asyncIterator], i;\n  return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n  function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n  function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n  if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n  return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n  Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n  o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n  if (mod && mod.__esModule) return mod;\n  var result = {};\n  if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n  __setModuleDefault(result, mod);\n  return result;\n}\n\nexport function __importDefault(mod) {\n  return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n  return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n  if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n  return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n  if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n  return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n  if (value !== null && value !== void 0) {\n    if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n    var dispose;\n    if (async) {\n        if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n        dispose = value[Symbol.asyncDispose];\n    }\n    if (dispose === void 0) {\n        if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n        dispose = value[Symbol.dispose];\n    }\n    if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n    env.stack.push({ value: value, dispose: dispose, async: async });\n  }\n  else if (async) {\n    env.stack.push({ async: true });\n  }\n  return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n  var e = new Error(message);\n  return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n  function fail(e) {\n    env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n    env.hasError = true;\n  }\n  function next() {\n    while (env.stack.length) {\n      var rec = env.stack.pop();\n      try {\n        var result = rec.dispose && rec.dispose.call(rec.value);\n        if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n      }\n      catch (e) {\n          fail(e);\n      }\n    }\n    if (env.hasError) throw env.error;\n  }\n  return next();\n}\n\nexport default {\n  __extends,\n  __assign,\n  __rest,\n  __decorate,\n  __param,\n  __metadata,\n  __awaiter,\n  __generator,\n  __createBinding,\n  __exportStar,\n  __values,\n  __read,\n  __spread,\n  __spreadArrays,\n  __spreadArray,\n  __await,\n  __asyncGenerator,\n  __asyncDelegator,\n  __asyncValues,\n  __makeTemplateObject,\n  __importStar,\n  __importDefault,\n  __classPrivateFieldGet,\n  __classPrivateFieldSet,\n  __classPrivateFieldIn,\n  __addDisposableResource,\n  __disposeResources,\n};\n","/**\n * Locale character mapping rules.\n */\ninterface Locale {\n  regexp: RegExp;\n  map: Record<string, string>;\n}\n\n/**\n * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt\n */\nconst SUPPORTED_LOCALE: Record<string, Locale> = {\n  tr: {\n    regexp: /\\u0130|\\u0049|\\u0049\\u0307/g,\n    map: {\n      İ: \"\\u0069\",\n      I: \"\\u0131\",\n      İ: \"\\u0069\",\n    },\n  },\n  az: {\n    regexp: /\\u0130/g,\n    map: {\n      İ: \"\\u0069\",\n      I: \"\\u0131\",\n      İ: \"\\u0069\",\n    },\n  },\n  lt: {\n    regexp: /\\u0049|\\u004A|\\u012E|\\u00CC|\\u00CD|\\u0128/g,\n    map: {\n      I: \"\\u0069\\u0307\",\n      J: \"\\u006A\\u0307\",\n      Į: \"\\u012F\\u0307\",\n      Ì: \"\\u0069\\u0307\\u0300\",\n      Í: \"\\u0069\\u0307\\u0301\",\n      Ĩ: \"\\u0069\\u0307\\u0303\",\n    },\n  },\n};\n\n/**\n * Localized lower case.\n */\nexport function localeLowerCase(str: string, locale: string) {\n  const lang = SUPPORTED_LOCALE[locale.toLowerCase()];\n  if (lang) return lowerCase(str.replace(lang.regexp, (m) => lang.map[m]));\n  return lowerCase(str);\n}\n\n/**\n * Lower case as a function.\n */\nexport function lowerCase(str: string) {\n  return str.toLowerCase();\n}\n","import { lowerCase } from \"lower-case\";\n\nexport interface Options {\n  splitRegexp?: RegExp | RegExp[];\n  stripRegexp?: RegExp | RegExp[];\n  delimiter?: string;\n  transform?: (part: string, index: number, parts: string[]) => string;\n}\n\n// Support camel case (\"camelCase\" -> \"camel Case\" and \"CAMELCase\" -> \"CAMEL Case\").\nconst DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];\n\n// Remove all non-word characters.\nconst DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;\n\n/**\n * Normalize the string into something other libraries can manipulate easier.\n */\nexport function noCase(input: string, options: Options = {}) {\n  const {\n    splitRegexp = DEFAULT_SPLIT_REGEXP,\n    stripRegexp = DEFAULT_STRIP_REGEXP,\n    transform = lowerCase,\n    delimiter = \" \",\n  } = options;\n\n  let result = replace(\n    replace(input, splitRegexp, \"$1\\0$2\"),\n    stripRegexp,\n    \"\\0\"\n  );\n  let start = 0;\n  let end = result.length;\n\n  // Trim the delimiter from around the output string.\n  while (result.charAt(start) === \"\\0\") start++;\n  while (result.charAt(end - 1) === \"\\0\") end--;\n\n  // Transform each token independently.\n  return result.slice(start, end).split(\"\\0\").map(transform).join(delimiter);\n}\n\n/**\n * Replace `re` in the input string with the replacement value.\n */\nfunction replace(input: string, re: RegExp | RegExp[], value: string) {\n  if (re instanceof RegExp) return input.replace(re, value);\n  return re.reduce((input, re) => input.replace(re, value), input);\n}\n","import { dotCase, Options } from \"dot-case\";\n\nexport { Options };\n\nexport function paramCase(input: string, options: Options = {}) {\n  return dotCase(input, {\n    delimiter: \"-\",\n    ...options,\n  });\n}\n","import { noCase, Options } from \"no-case\";\n\nexport { Options };\n\nexport function dotCase(input: string, options: Options = {}) {\n  return noCase(input, {\n    delimiter: \".\",\n    ...options,\n  });\n}\n","/**\n * External dependencies\n */\nimport { paramCase as kebabCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tTextControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\nfunction AddCustomGenericTemplateModalContent( { onClose, createTemplate } ) {\n\tconst [ title, setTitle ] = useState( '' );\n\tconst defaultTitle = __( 'Custom Template' );\n\tconst [ isBusy, setIsBusy ] = useState( false );\n\tasync function onCreateTemplate( event ) {\n\t\tevent.preventDefault();\n\t\tif ( isBusy ) {\n\t\t\treturn;\n\t\t}\n\t\tsetIsBusy( true );\n\t\ttry {\n\t\t\tawait createTemplate(\n\t\t\t\t{\n\t\t\t\t\tslug:\n\t\t\t\t\t\t'wp-custom-template-' +\n\t\t\t\t\t\tkebabCase( title || defaultTitle ),\n\t\t\t\t\ttitle: title || defaultTitle,\n\t\t\t\t},\n\t\t\t\tfalse\n\t\t\t);\n\t\t} finally {\n\t\t\tsetIsBusy( false );\n\t\t}\n\t}\n\treturn (\n\t\t<form onSubmit={ onCreateTemplate }>\n\t\t\t<VStack spacing={ 6 }>\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\tvalue={ title }\n\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\tplaceholder={ defaultTitle }\n\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Describe the template, e.g. \"Post with sidebar\". A custom template can be manually applied to any post or page.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<HStack\n\t\t\t\t\tclassName=\"edit-site-custom-generic-template__modal-actions\"\n\t\t\t\t\tjustify=\"right\"\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\taria-disabled={ isBusy }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Create' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t</form>\n\t);\n}\n\nexport default AddCustomGenericTemplateModalContent;\n","/**\n * WordPress dependencies\n */\nimport { Spinner, Modal } from '@wordpress/components';\n\nexport default function TemplateActionsLoadingScreen() {\n\tconst baseCssClass = 'edit-site-template-actions-loading-screen-modal';\n\treturn (\n\t\t<Modal\n\t\t\tisFullScreen\n\t\t\tisDismissible={ false }\n\t\t\tshouldCloseOnClickOutside={ false }\n\t\t\tshouldCloseOnEsc={ false }\n\t\t\tonRequestClose={ () => {} }\n\t\t\t__experimentalHideHeader\n\t\t\tclassName={ baseCssClass }\n\t\t>\n\t\t\t<div className={ `${ baseCssClass }__content` }>\n\t\t\t\t<Spinner />\n\t\t\t</div>\n\t\t</Modal>\n\t);\n}\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tModal,\n\t__experimentalGrid as Grid,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tIcon,\n} from '@wordpress/components';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useState } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tarchive,\n\tblockMeta,\n\tcalendar,\n\tcategory,\n\tcommentAuthorAvatar,\n\tedit,\n\thome,\n\tlayout,\n\tlist,\n\tmedia,\n\tnotFound,\n\tpage,\n\tplus,\n\tpin,\n\tverse,\n\tsearch,\n\ttag,\n} from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\n/**\n * Internal dependencies\n */\nimport AddCustomTemplateModalContent from './add-custom-template-modal-content';\nimport {\n\tuseExistingTemplates,\n\tuseDefaultTemplateTypes,\n\tuseTaxonomiesMenuItems,\n\tusePostTypeMenuItems,\n\tuseAuthorMenuItem,\n\tusePostTypeArchiveMenuItems,\n} from './utils';\nimport AddCustomGenericTemplateModalContent from './add-custom-generic-template-modal-content';\nimport TemplateActionsLoadingScreen from './template-actions-loading-screen';\nimport { unlock } from '../../lock-unlock';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nconst DEFAULT_TEMPLATE_SLUGS = [\n\t'front-page',\n\t'home',\n\t'single',\n\t'page',\n\t'index',\n\t'archive',\n\t'author',\n\t'category',\n\t'date',\n\t'tag',\n\t'search',\n\t'404',\n];\n\nconst TEMPLATE_ICONS = {\n\t'front-page': home,\n\thome: verse,\n\tsingle: pin,\n\tpage,\n\tarchive,\n\tsearch,\n\t404: notFound,\n\tindex: list,\n\tcategory,\n\tauthor: commentAuthorAvatar,\n\ttaxonomy: blockMeta,\n\tdate: calendar,\n\ttag,\n\tattachment: media,\n};\n\nfunction TemplateListItem( {\n\ttitle,\n\tdirection,\n\tclassName,\n\tdescription,\n\ticon,\n\tonClick,\n\tchildren,\n} ) {\n\treturn (\n\t\t<Button\n\t\t\tclassName={ className }\n\t\t\tonClick={ onClick }\n\t\t\tlabel={ description }\n\t\t\tshowTooltip={ !! description }\n\t\t>\n\t\t\t<Flex\n\t\t\t\tas=\"span\"\n\t\t\t\tspacing={ 2 }\n\t\t\t\talign=\"center\"\n\t\t\t\tjustify=\"center\"\n\t\t\t\tstyle={ { width: '100%' } }\n\t\t\t\tdirection={ direction }\n\t\t\t>\n\t\t\t\t<div className=\"edit-site-add-new-template__template-icon\">\n\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t</div>\n\t\t\t\t<VStack\n\t\t\t\t\tclassName=\"edit-site-add-new-template__template-name\"\n\t\t\t\t\talignment=\"center\"\n\t\t\t\t\tspacing={ 0 }\n\t\t\t\t>\n\t\t\t\t\t<Text\n\t\t\t\t\t\tweight={ 500 }\n\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</Text>\n\t\t\t\t\t{ children }\n\t\t\t\t</VStack>\n\t\t\t</Flex>\n\t\t</Button>\n\t);\n}\n\nconst modalContentMap = {\n\ttemplatesList: 1,\n\tcustomTemplate: 2,\n\tcustomGenericTemplate: 3,\n};\n\nexport default function NewTemplate( {\n\tpostType,\n\ttoggleProps,\n\tshowIcon = true,\n} ) {\n\tconst [ showModal, setShowModal ] = useState( false );\n\tconst [ modalContent, setModalContent ] = useState(\n\t\tmodalContentMap.templatesList\n\t);\n\tconst [ entityForSuggestions, setEntityForSuggestions ] = useState( {} );\n\tconst [ isCreatingTemplate, setIsCreatingTemplate ] = useState( false );\n\n\tconst history = useHistory();\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst { homeUrl } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetUnstableBase, // Site index.\n\t\t} = select( coreStore );\n\n\t\treturn {\n\t\t\thomeUrl: getUnstableBase()?.home,\n\t\t};\n\t}, [] );\n\n\tconst TEMPLATE_SHORT_DESCRIPTIONS = {\n\t\t'front-page': homeUrl,\n\t\tdate: sprintf(\n\t\t\t// translators: %s: The homepage url.\n\t\t\t__( 'E.g. %s' ),\n\t\t\thomeUrl + '/' + new Date().getFullYear()\n\t\t),\n\t};\n\n\tasync function createTemplate( template, isWPSuggestion = true ) {\n\t\tif ( isCreatingTemplate ) {\n\t\t\treturn;\n\t\t}\n\t\tsetIsCreatingTemplate( true );\n\t\ttry {\n\t\t\tconst { title, description, slug } = template;\n\t\t\tconst newTemplate = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t{\n\t\t\t\t\tdescription,\n\t\t\t\t\t// Slugs need to be strings, so this is for template `404`\n\t\t\t\t\tslug: slug.toString(),\n\t\t\t\t\tstatus: 'publish',\n\t\t\t\t\ttitle,\n\t\t\t\t\t// This adds a post meta field in template that is part of `is_custom` value calculation.\n\t\t\t\t\tis_wp_suggestion: isWPSuggestion,\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\t// Navigate to the created template editor.\n\t\t\thistory.push( {\n\t\t\t\tpostId: newTemplate.id,\n\t\t\t\tpostType: newTemplate.type,\n\t\t\t\tcanvas: 'edit',\n\t\t\t} );\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: Title of the created template e.g: \"Category\".\n\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\tdecodeEntities( newTemplate.title?.rendered || title )\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while creating the template.' );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t} finally {\n\t\t\tsetIsCreatingTemplate( false );\n\t\t}\n\t}\n\tconst onModalClose = () => {\n\t\tsetShowModal( false );\n\t\tsetModalContent( modalContentMap.templatesList );\n\t};\n\n\tconst missingTemplates = useMissingTemplates( setEntityForSuggestions, () =>\n\t\tsetModalContent( modalContentMap.customTemplate )\n\t);\n\tif ( ! missingTemplates.length ) {\n\t\treturn null;\n\t}\n\tconst { as: Toggle = Button, ...restToggleProps } = toggleProps ?? {};\n\n\tlet modalTitle = __( 'Add template' );\n\tif ( modalContent === modalContentMap.customTemplate ) {\n\t\tmodalTitle = sprintf(\n\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t__( 'Add template: %s' ),\n\t\t\tentityForSuggestions.labels.singular_name\n\t\t);\n\t} else if ( modalContent === modalContentMap.customGenericTemplate ) {\n\t\tmodalTitle = __( 'Create custom template' );\n\t}\n\treturn (\n\t\t<>\n\t\t\t{ isCreatingTemplate && <TemplateActionsLoadingScreen /> }\n\t\t\t<Toggle\n\t\t\t\t{ ...restToggleProps }\n\t\t\t\tonClick={ () => setShowModal( true ) }\n\t\t\t\ticon={ showIcon ? plus : null }\n\t\t\t\tlabel={ postType.labels.add_new_item }\n\t\t\t>\n\t\t\t\t{ showIcon ? null : postType.labels.add_new_item }\n\t\t\t</Toggle>\n\t\t\t{ showModal && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ modalTitle }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'edit-site-add-new-template__modal',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'edit-site-add-new-template__modal_template_list':\n\t\t\t\t\t\t\t\tmodalContent === modalContentMap.templatesList,\n\t\t\t\t\t\t\t'edit-site-custom-template-modal':\n\t\t\t\t\t\t\t\tmodalContent === modalContentMap.customTemplate,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tonRequestClose={ onModalClose }\n\t\t\t\t\toverlayClassName={\n\t\t\t\t\t\tmodalContent === modalContentMap.customGenericTemplate\n\t\t\t\t\t\t\t? 'edit-site-custom-generic-template__modal'\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ modalContent === modalContentMap.templatesList && (\n\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\tcolumns={ 3 }\n\t\t\t\t\t\t\tgap={ 4 }\n\t\t\t\t\t\t\talign=\"flex-start\"\n\t\t\t\t\t\t\tjustify=\"center\"\n\t\t\t\t\t\t\tclassName=\"edit-site-add-new-template__template-list__contents\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Flex className=\"edit-site-add-new-template__template-list__prompt\">\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Select what the new template should apply to:'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t{ missingTemplates.map( ( template ) => {\n\t\t\t\t\t\t\t\tconst { title, slug, onClick } = template;\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<TemplateListItem\n\t\t\t\t\t\t\t\t\t\tkey={ slug }\n\t\t\t\t\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\t\t\t\t\tdirection=\"column\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"edit-site-add-new-template__template-button\"\n\t\t\t\t\t\t\t\t\t\tdescription={\n\t\t\t\t\t\t\t\t\t\t\tTEMPLATE_SHORT_DESCRIPTIONS[ slug ]\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\tTEMPLATE_ICONS[ slug ] || layout\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tonClick\n\t\t\t\t\t\t\t\t\t\t\t\t? onClick( template )\n\t\t\t\t\t\t\t\t\t\t\t\t: createTemplate( template )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t<TemplateListItem\n\t\t\t\t\t\t\t\ttitle={ __( 'Custom template' ) }\n\t\t\t\t\t\t\t\tdirection=\"row\"\n\t\t\t\t\t\t\t\tclassName=\"edit-site-add-new-template__custom-template-button\"\n\t\t\t\t\t\t\t\ticon={ edit }\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\tsetModalContent(\n\t\t\t\t\t\t\t\t\t\tmodalContentMap.customGenericTemplate\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\tlineHeight={ 1.53846153846 } // 20px\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'A custom template can be manually applied to any post or page.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t</TemplateListItem>\n\t\t\t\t\t\t</Grid>\n\t\t\t\t\t) }\n\t\t\t\t\t{ modalContent === modalContentMap.customTemplate && (\n\t\t\t\t\t\t<AddCustomTemplateModalContent\n\t\t\t\t\t\t\tonSelect={ createTemplate }\n\t\t\t\t\t\t\tentityForSuggestions={ entityForSuggestions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ modalContent ===\n\t\t\t\t\t\tmodalContentMap.customGenericTemplate && (\n\t\t\t\t\t\t<AddCustomGenericTemplateModalContent\n\t\t\t\t\t\t\tonClose={ onModalClose }\n\t\t\t\t\t\t\tcreateTemplate={ createTemplate }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction useMissingTemplates( setEntityForSuggestions, onClick ) {\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\tconst existingTemplateSlugs = ( existingTemplates || [] ).map(\n\t\t( { slug } ) => slug\n\t);\n\tconst missingDefaultTemplates = ( defaultTemplateTypes || [] ).filter(\n\t\t( template ) =>\n\t\t\tDEFAULT_TEMPLATE_SLUGS.includes( template.slug ) &&\n\t\t\t! existingTemplateSlugs.includes( template.slug )\n\t);\n\tconst onClickMenuItem = ( _entityForSuggestions ) => {\n\t\tonClick?.();\n\t\tsetEntityForSuggestions( _entityForSuggestions );\n\t};\n\t// We need to replace existing default template types with\n\t// the create specific template functionality. The original\n\t// info (title, description, etc.) is preserved in the\n\t// used hooks.\n\tconst enhancedMissingDefaultTemplateTypes = [ ...missingDefaultTemplates ];\n\tconst { defaultTaxonomiesMenuItems, taxonomiesMenuItems } =\n\t\tuseTaxonomiesMenuItems( onClickMenuItem );\n\tconst { defaultPostTypesMenuItems, postTypesMenuItems } =\n\t\tusePostTypeMenuItems( onClickMenuItem );\n\n\tconst authorMenuItem = useAuthorMenuItem( onClickMenuItem );\n\t[\n\t\t...defaultTaxonomiesMenuItems,\n\t\t...defaultPostTypesMenuItems,\n\t\tauthorMenuItem,\n\t].forEach( ( menuItem ) => {\n\t\tif ( ! menuItem ) {\n\t\t\treturn;\n\t\t}\n\t\tconst matchIndex = enhancedMissingDefaultTemplateTypes.findIndex(\n\t\t\t( template ) => template.slug === menuItem.slug\n\t\t);\n\t\t// Some default template types might have been filtered above from\n\t\t// `missingDefaultTemplates` because they only check for the general\n\t\t// template. So here we either replace or append the item, augmented\n\t\t// with the check if it has available specific item to create a\n\t\t// template for.\n\t\tif ( matchIndex > -1 ) {\n\t\t\tenhancedMissingDefaultTemplateTypes[ matchIndex ] = menuItem;\n\t\t} else {\n\t\t\tenhancedMissingDefaultTemplateTypes.push( menuItem );\n\t\t}\n\t} );\n\t// Update the sort order to match the DEFAULT_TEMPLATE_SLUGS order.\n\tenhancedMissingDefaultTemplateTypes?.sort( ( template1, template2 ) => {\n\t\treturn (\n\t\t\tDEFAULT_TEMPLATE_SLUGS.indexOf( template1.slug ) -\n\t\t\tDEFAULT_TEMPLATE_SLUGS.indexOf( template2.slug )\n\t\t);\n\t} );\n\tconst missingTemplates = [\n\t\t...enhancedMissingDefaultTemplateTypes,\n\t\t...usePostTypeArchiveMenuItems(),\n\t\t...postTypesMenuItems,\n\t\t...taxonomiesMenuItems,\n\t];\n\treturn missingTemplates;\n}\n","/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport NewTemplate from './new-template';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nexport default function AddNewTemplate( {\n\ttemplateType = TEMPLATE_POST_TYPE,\n\t...props\n} ) {\n\tconst postType = useSelect(\n\t\t( select ) => select( coreStore ).getPostType( templateType ),\n\t\t[ templateType ]\n\t);\n\n\tif ( ! postType ) {\n\t\treturn null;\n\t}\n\n\tif ( templateType === TEMPLATE_POST_TYPE ) {\n\t\treturn <NewTemplate { ...props } postType={ postType } />;\n\t}\n\n\treturn null;\n}\n","/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport { useLink } from '../routes/link';\nimport SidebarNavigationItem from '../sidebar-navigation-item';\nimport AddNewTemplate from '../add-new-template';\nimport SidebarButton from '../sidebar-button';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nconst TemplateItem = ( { postType, postId, ...props } ) => {\n\tconst linkInfo = useLink( {\n\t\tpostType,\n\t\tpostId,\n\t} );\n\treturn <SidebarNavigationItem { ...linkInfo } { ...props } />;\n};\n\nexport default function SidebarNavigationScreenTemplates() {\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\n\tconst { records: templates, isResolving: isLoading } = useEntityRecords(\n\t\t'postType',\n\t\tTEMPLATE_POST_TYPE,\n\t\t{\n\t\t\tper_page: -1,\n\t\t}\n\t);\n\n\tconst sortedTemplates = templates ? [ ...templates ] : [];\n\tsortedTemplates.sort( ( a, b ) =>\n\t\ta.title.rendered.localeCompare( b.title.rendered )\n\t);\n\n\tconst browseAllLink = useLink( { path: '/wp_template/all' } );\n\tconst canCreate = ! isMobileViewport;\n\treturn (\n\t\t<SidebarNavigationScreen\n\t\t\ttitle={ __( 'Templates' ) }\n\t\t\tdescription={ __(\n\t\t\t\t'Express the layout of your site with templates.'\n\t\t\t) }\n\t\t\tactions={\n\t\t\t\tcanCreate && (\n\t\t\t\t\t<AddNewTemplate\n\t\t\t\t\t\ttemplateType={ TEMPLATE_POST_TYPE }\n\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\tas: SidebarButton,\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\t}\n\t\t\tcontent={\n\t\t\t\t<>\n\t\t\t\t\t{ isLoading && __( 'Loading templates…' ) }\n\t\t\t\t\t{ ! isLoading && (\n\t\t\t\t\t\t<ItemGroup>\n\t\t\t\t\t\t\t{ ! templates?.length && (\n\t\t\t\t\t\t\t\t<Item>{ __( 'No templates found' ) }</Item>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ sortedTemplates.map( ( template ) => (\n\t\t\t\t\t\t\t\t<TemplateItem\n\t\t\t\t\t\t\t\t\tpostType={ TEMPLATE_POST_TYPE }\n\t\t\t\t\t\t\t\t\tpostId={ template.id }\n\t\t\t\t\t\t\t\t\tkey={ template.id }\n\t\t\t\t\t\t\t\t\twithChevron\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ decodeEntities(\n\t\t\t\t\t\t\t\t\t\ttemplate.title?.rendered ||\n\t\t\t\t\t\t\t\t\t\t\ttemplate.slug\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</TemplateItem>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t}\n\t\t\tfooter={\n\t\t\t\t! isMobileViewport && (\n\t\t\t\t\t<SidebarNavigationItem withChevron { ...browseAllLink }>\n\t\t\t\t\t\t{ __( 'Manage all templates' ) }\n\t\t\t\t\t</SidebarNavigationItem>\n\t\t\t\t)\n\t\t\t}\n\t\t/>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport {\n\t__experimentalTruncate as Truncate,\n\t__experimentalItemGroup as ItemGroup,\n} from '@wordpress/components';\nimport { store as editorStore } from '@wordpress/editor';\nimport { useMemo } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport {\n\tSidebarNavigationScreenDetailsPanel,\n\tSidebarNavigationScreenDetailsPanelRow,\n} from '../sidebar-navigation-screen-details-panel';\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport { useLink } from '../routes/link';\nimport SidebarNavigationItem from '../sidebar-navigation-item';\nimport { TEMPLATE_PART_POST_TYPE } from '../../utils/constants';\n\nfunction TemplateAreaButton( { postId, area, title } ) {\n\tconst templatePartArea = useSelect(\n\t\t( select ) => {\n\t\t\tconst defaultAreas =\n\t\t\t\tselect(\n\t\t\t\t\teditorStore\n\t\t\t\t).__experimentalGetDefaultTemplatePartAreas();\n\n\t\t\treturn defaultAreas.find(\n\t\t\t\t( defaultArea ) => defaultArea.area === area\n\t\t\t);\n\t\t},\n\t\t[ area ]\n\t);\n\tconst linkInfo = useLink( {\n\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\tpostId,\n\t} );\n\n\treturn (\n\t\t<SidebarNavigationItem\n\t\t\tclassName=\"edit-site-sidebar-navigation-screen-template__template-area-button\"\n\t\t\t{ ...linkInfo }\n\t\t\ticon={ templatePartArea?.icon }\n\t\t\twithChevron\n\t\t>\n\t\t\t<Truncate\n\t\t\t\tlimit={ 20 }\n\t\t\t\tellipsizeMode=\"tail\"\n\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen-template__template-area-label-text\"\n\t\t\t>\n\t\t\t\t{ decodeEntities( title ) }\n\t\t\t</Truncate>\n\t\t</SidebarNavigationItem>\n\t);\n}\n\nexport default function TemplateAreas() {\n\tconst { templatePartAreas, currentTemplateParts } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings, getCurrentTemplateTemplateParts } = unlock(\n\t\t\t\tselect( editSiteStore )\n\t\t\t);\n\t\t\treturn {\n\t\t\t\ttemplatePartAreas: getSettings()?.defaultTemplatePartAreas,\n\t\t\t\tcurrentTemplateParts: getCurrentTemplateTemplateParts(),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\t/*\n\t * Merge data in currentTemplateParts with templatePartAreas,\n\t * which contains the template icon and fallback labels\n\t */\n\tconst templateAreas = useMemo( () => {\n\t\t// Keep track of template part IDs that have already been added to the array.\n\t\tconst templatePartIds = new Set();\n\t\tconst filterOutDuplicateTemplateParts = ( currentTemplatePart ) => {\n\t\t\t// If the template part has already been added to the array, skip it.\n\t\t\tif ( templatePartIds.has( currentTemplatePart.templatePart.id ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Add to the array of template part IDs.\n\t\t\ttemplatePartIds.add( currentTemplatePart.templatePart.id );\n\t\t\treturn currentTemplatePart;\n\t\t};\n\n\t\treturn currentTemplateParts.length && templatePartAreas\n\t\t\t? currentTemplateParts\n\t\t\t\t\t.filter( filterOutDuplicateTemplateParts )\n\t\t\t\t\t.map( ( { templatePart, block } ) => ( {\n\t\t\t\t\t\t...templatePartAreas?.find(\n\t\t\t\t\t\t\t( { area } ) => area === templatePart?.area\n\t\t\t\t\t\t),\n\t\t\t\t\t\t...templatePart,\n\t\t\t\t\t\tclientId: block.clientId,\n\t\t\t\t\t} ) )\n\t\t\t: [];\n\t}, [ currentTemplateParts, templatePartAreas ] );\n\n\tif ( ! templateAreas.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<SidebarNavigationScreenDetailsPanel\n\t\t\ttitle={ __( 'Areas' ) }\n\t\t\tspacing={ 3 }\n\t\t>\n\t\t\t<ItemGroup>\n\t\t\t\t{ templateAreas.map(\n\t\t\t\t\t( { clientId, label, area, theme, slug, title } ) => (\n\t\t\t\t\t\t<SidebarNavigationScreenDetailsPanelRow\n\t\t\t\t\t\t\tkey={ clientId }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TemplateAreaButton\n\t\t\t\t\t\t\t\tpostId={ `${ theme }//${ slug }` }\n\t\t\t\t\t\t\t\ttitle={ title?.rendered || label }\n\t\t\t\t\t\t\t\tarea={ area }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t)\n\t\t\t\t) }\n\t\t\t</ItemGroup>\n\t\t</SidebarNavigationScreenDetailsPanel>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\n\nexport default function useEditedEntityRecord( postType, postId ) {\n\tconst { record, title, description, isLoaded, icon } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedPostType, getEditedPostId } =\n\t\t\t\tselect( editSiteStore );\n\t\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst { __experimentalGetTemplateInfo: getTemplateInfo } =\n\t\t\t\tselect( editorStore );\n\t\t\tconst usedPostType = postType ?? getEditedPostType();\n\t\t\tconst usedPostId = postId ?? getEditedPostId();\n\t\t\tconst _record = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tusedPostType,\n\t\t\t\tusedPostId\n\t\t\t);\n\t\t\tconst _isLoaded =\n\t\t\t\tusedPostId &&\n\t\t\t\thasFinishedResolution( 'getEditedEntityRecord', [\n\t\t\t\t\t'postType',\n\t\t\t\t\tusedPostType,\n\t\t\t\t\tusedPostId,\n\t\t\t\t] );\n\t\t\tconst templateInfo = getTemplateInfo( _record );\n\n\t\t\treturn {\n\t\t\t\trecord: _record,\n\t\t\t\ttitle: templateInfo.title,\n\t\t\t\tdescription: templateInfo.description,\n\t\t\t\tisLoaded: _isLoaded,\n\t\t\t\ticon: templateInfo.icon,\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\treturn {\n\t\tisLoaded,\n\t\ticon,\n\t\trecord,\n\t\tgetTitle: () => ( title ? decodeEntities( title ) : null ),\n\t\tgetDescription: () =>\n\t\t\tdescription ? decodeEntities( description ) : null,\n\t};\n}\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst plugins = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M10.5 4v4h3V4H15v4h1.5a1 1 0 011 1v4l-3 4v2a1 1 0 01-1 1h-3a1 1 0 01-1-1v-2l-3-4V9a1 1 0 011-1H9V4h1.5zm.5 12.5v2h2v-2l3-4v-3H8v3l3 4z\" />\n\t</SVG>\n);\n\nexport default plugins;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst globe = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M12 3.3c-4.8 0-8.8 3.9-8.8 8.8 0 4.8 3.9 8.8 8.8 8.8 4.8 0 8.8-3.9 8.8-8.8s-4-8.8-8.8-8.8zm6.5 5.5h-2.6C15.4 7.3 14.8 6 14 5c2 .6 3.6 2 4.5 3.8zm.7 3.2c0 .6-.1 1.2-.2 1.8h-2.9c.1-.6.1-1.2.1-1.8s-.1-1.2-.1-1.8H19c.2.6.2 1.2.2 1.8zM12 18.7c-1-.7-1.8-1.9-2.3-3.5h4.6c-.5 1.6-1.3 2.9-2.3 3.5zm-2.6-4.9c-.1-.6-.1-1.1-.1-1.8 0-.6.1-1.2.1-1.8h5.2c.1.6.1 1.1.1 1.8s-.1 1.2-.1 1.8H9.4zM4.8 12c0-.6.1-1.2.2-1.8h2.9c-.1.6-.1 1.2-.1 1.8 0 .6.1 1.2.1 1.8H5c-.2-.6-.2-1.2-.2-1.8zM12 5.3c1 .7 1.8 1.9 2.3 3.5H9.7c.5-1.6 1.3-2.9 2.3-3.5zM10 5c-.8 1-1.4 2.3-1.8 3.8H5.5C6.4 7 8 5.6 10 5zM5.5 15.3h2.6c.4 1.5 1 2.8 1.8 3.7-1.8-.6-3.5-2-4.4-3.7zM14 19c.8-1 1.4-2.2 1.8-3.7h2.6C17.6 17 16 18.4 14 19z\" />\n\t</SVG>\n);\n\nexport default globe;\n","// @ts-check\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Icon, __experimentalHStack as HStack } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport {\n\tcommentAuthorAvatar as authorIcon,\n\tlayout as themeIcon,\n\tplugins as pluginIcon,\n\tglobe as globeIcon,\n} from '@wordpress/icons';\nimport { _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { TEMPLATE_POST_TYPE, TEMPLATE_ORIGINS } from '../../utils/constants';\n\n/** @typedef {'wp_template'|'wp_template_part'} TemplateType */\n\n/**\n * @typedef {'theme'|'plugin'|'site'|'user'} AddedByType\n *\n * @typedef AddedByData\n * @type {Object}\n * @property {AddedByType}  type         The type of the data.\n * @property {JSX.Element}  icon         The icon to display.\n * @property {string}       [imageUrl]   The optional image URL to display.\n * @property {string}       [text]       The text to display.\n * @property {boolean}      isCustomized Whether the template has been customized.\n *\n * @param    {TemplateType} postType     The template post type.\n * @param    {number}       postId       The template post id.\n * @return {AddedByData} The added by object or null.\n */\nexport function useAddedBy( postType, postId ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEntityRecord,\n\t\t\t\tgetMedia,\n\t\t\t\tgetUser,\n\t\t\t\tgetEditedEntityRecord,\n\t\t\t} = select( coreStore );\n\t\t\tconst template = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t);\n\t\t\tconst originalSource = template?.original_source;\n\t\t\tconst authorText = template?.author_text;\n\n\t\t\tswitch ( originalSource ) {\n\t\t\t\tcase 'theme': {\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: originalSource,\n\t\t\t\t\t\ticon: themeIcon,\n\t\t\t\t\t\ttext: authorText,\n\t\t\t\t\t\tisCustomized:\n\t\t\t\t\t\t\ttemplate.source === TEMPLATE_ORIGINS.custom,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tcase 'plugin': {\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: originalSource,\n\t\t\t\t\t\ticon: pluginIcon,\n\t\t\t\t\t\ttext: authorText,\n\t\t\t\t\t\tisCustomized:\n\t\t\t\t\t\t\ttemplate.source === TEMPLATE_ORIGINS.custom,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tcase 'site': {\n\t\t\t\t\tconst siteData = getEntityRecord(\n\t\t\t\t\t\t'root',\n\t\t\t\t\t\t'__unstableBase'\n\t\t\t\t\t);\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: originalSource,\n\t\t\t\t\t\ticon: globeIcon,\n\t\t\t\t\t\timageUrl: siteData?.site_logo\n\t\t\t\t\t\t\t? getMedia( siteData.site_logo )?.source_url\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\ttext: authorText,\n\t\t\t\t\t\tisCustomized: false,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tdefault: {\n\t\t\t\t\tconst user = getUser( template.author );\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'user',\n\t\t\t\t\t\ticon: authorIcon,\n\t\t\t\t\t\timageUrl: user?.avatar_urls?.[ 48 ],\n\t\t\t\t\t\ttext: authorText,\n\t\t\t\t\t\tisCustomized: false,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[ postType, postId ]\n\t);\n}\n\n/**\n * @param {Object} props\n * @param {string} props.imageUrl\n */\nexport function AvatarImage( { imageUrl } ) {\n\tconst [ isImageLoaded, setIsImageLoaded ] = useState( false );\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'edit-site-list-added-by__avatar', {\n\t\t\t\t'is-loaded': isImageLoaded,\n\t\t\t} ) }\n\t\t>\n\t\t\t<img\n\t\t\t\tonLoad={ () => setIsImageLoaded( true ) }\n\t\t\t\talt=\"\"\n\t\t\t\tsrc={ imageUrl }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\n/**\n * @param {Object}       props\n * @param {TemplateType} props.postType The template post type.\n * @param {number}       props.postId   The template post id.\n */\nexport default function AddedBy( { postType, postId } ) {\n\tconst { text, icon, imageUrl, isCustomized } = useAddedBy(\n\t\tpostType,\n\t\tpostId\n\t);\n\n\treturn (\n\t\t<HStack alignment=\"left\">\n\t\t\t{ imageUrl ? (\n\t\t\t\t<AvatarImage imageUrl={ imageUrl } />\n\t\t\t) : (\n\t\t\t\t<div className=\"edit-site-list-added-by__icon\">\n\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<span>\n\t\t\t\t{ text }\n\t\t\t\t{ isCustomized && (\n\t\t\t\t\t<span className=\"edit-site-list-added-by__customized-info\">\n\t\t\t\t\t\t{ postType === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t\t? _x( 'Customized', 'template' )\n\t\t\t\t\t\t\t: _x( 'Customized', 'template part' ) }\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t</span>\n\t\t</HStack>\n\t);\n}\n","/**\n * Internal dependencies\n */\nimport { TEMPLATE_ORIGINS } from './constants';\n\n/**\n * Check if a template is removable.\n *\n * @param {Object} template The template entity to check.\n * @return {boolean} Whether the template is revertable.\n */\nexport default function isTemplateRemovable( template ) {\n\tif ( ! template ) {\n\t\treturn false;\n\t}\n\n\treturn (\n\t\ttemplate.source === TEMPLATE_ORIGINS.custom && ! template.has_theme_file\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\nimport {\n\tButton,\n\tMenuItem,\n\tModal,\n\tTextControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nexport default function RenameMenuItem( { template, onClose } ) {\n\tconst title = decodeEntities( template.title.rendered );\n\tconst [ editedTitle, setEditedTitle ] = useState( title );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\n\tconst {\n\t\teditEntityRecord,\n\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t} = useDispatch( coreStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tif ( template.type === TEMPLATE_POST_TYPE && ! template.is_custom ) {\n\t\treturn null;\n\t}\n\n\tasync function onTemplateRename( event ) {\n\t\tevent.preventDefault();\n\n\t\ttry {\n\t\t\tawait editEntityRecord( 'postType', template.type, template.id, {\n\t\t\t\ttitle: editedTitle,\n\t\t\t} );\n\n\t\t\t// Update state before saving rerenders the list.\n\t\t\tsetEditedTitle( '' );\n\t\t\tsetIsModalOpen( false );\n\t\t\tonClose();\n\n\t\t\t// Persist edited entity.\n\t\t\tawait saveSpecifiedEntityEdits(\n\t\t\t\t'postType',\n\t\t\t\ttemplate.type,\n\t\t\t\ttemplate.id,\n\t\t\t\t[ 'title' ], // Only save title to avoid persisting other edits.\n\t\t\t\t{\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t? __( 'Template renamed.' )\n\t\t\t\t\t: __( 'Template part renamed.' ),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst fallbackErrorMessage =\n\t\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t? __( 'An error occurred while renaming the template.' )\n\t\t\t\t\t: __(\n\t\t\t\t\t\t\t'An error occurred while renaming the template part.'\n\t\t\t\t\t  );\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t}\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetIsModalOpen( true );\n\t\t\t\t\tsetEditedTitle( title );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ __( 'Rename' ) }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Rename' ) }\n\t\t\t\t\tonRequestClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t\toverlayClassName=\"edit-site-list__rename-modal\"\n\t\t\t\t>\n\t\t\t\t\t<form onSubmit={ onTemplateRename }>\n\t\t\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\t\t\tvalue={ editedTitle }\n\t\t\t\t\t\t\t\tonChange={ setEditedTitle }\n\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t\t</Button>\n\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t</form>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\t__experimentalConfirmDialog as ConfirmDialog,\n} from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport isTemplateRemovable from '../../utils/is-template-removable';\nimport isTemplateRevertable from '../../utils/is-template-revertable';\nimport RenameMenuItem from './rename-menu-item';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nexport default function TemplateActions( {\n\tpostType,\n\tpostId,\n\tclassName,\n\ttoggleProps,\n\tonRemove,\n} ) {\n\tconst template = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityRecord( 'postType', postType, postId ),\n\t\t[ postType, postId ]\n\t);\n\tconst { removeTemplate, revertTemplate } = useDispatch( editSiteStore );\n\tconst { saveEditedEntityRecord } = useDispatch( coreStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst isRemovable = isTemplateRemovable( template );\n\tconst isRevertable = isTemplateRevertable( template );\n\n\tif ( ! isRemovable && ! isRevertable ) {\n\t\treturn null;\n\t}\n\n\tasync function revertAndSaveTemplate() {\n\t\ttry {\n\t\t\tawait revertTemplate( template, { allowUndo: false } );\n\t\t\tawait saveEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\ttemplate.type,\n\t\t\t\ttemplate.id\n\t\t\t);\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: The template/part's name. */\n\t\t\t\t\t__( '\"%s\" reverted.' ),\n\t\t\t\t\tdecodeEntities( template.title.rendered )\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tid: 'edit-site-template-reverted',\n\t\t\t\t}\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst fallbackErrorMessage =\n\t\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t? __( 'An error occurred while reverting the template.' )\n\t\t\t\t\t: __(\n\t\t\t\t\t\t\t'An error occurred while reverting the template part.'\n\t\t\t\t\t  );\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t}\n\t}\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\ticon={ moreVertical }\n\t\t\tlabel={ __( 'Actions' ) }\n\t\t\tclassName={ className }\n\t\t\ttoggleProps={ toggleProps }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t{ isRemovable && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<RenameMenuItem\n\t\t\t\t\t\t\t\ttemplate={ template }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<DeleteMenuItem\n\t\t\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\t\t\tremoveTemplate( template );\n\t\t\t\t\t\t\t\t\tonRemove?.();\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\ttitle={ template.title.rendered }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isRevertable && (\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tinfo={ __(\n\t\t\t\t\t\t\t\t'Use the template as supplied by the theme.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\trevertAndSaveTemplate();\n\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Clear customizations' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t) }\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction DeleteMenuItem( { onRemove, title } ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\treturn (\n\t\t<>\n\t\t\t<MenuItem isDestructive onClick={ () => setIsModalOpen( true ) }>\n\t\t\t\t{ __( 'Delete' ) }\n\t\t\t</MenuItem>\n\t\t\t<ConfirmDialog\n\t\t\t\tisOpen={ isModalOpen }\n\t\t\t\tonConfirm={ onRemove }\n\t\t\t\tonCancel={ () => setIsModalOpen( false ) }\n\t\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\t>\n\t\t\t\t{ sprintf(\n\t\t\t\t\t// translators: %s: The template or template part's title.\n\t\t\t\t\t__( 'Are you sure you want to delete \"%s\"?' ),\n\t\t\t\t\tdecodeEntities( title )\n\t\t\t\t) }\n\t\t\t</ConfirmDialog>\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { debounce } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tCheckboxControl,\n\t__experimentalInputControl as InputControl,\n\t__experimentalNumberControl as NumberControl,\n} from '@wordpress/components';\nimport { useState, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tSidebarNavigationScreenDetailsPanel,\n\tSidebarNavigationScreenDetailsPanelRow,\n} from '../sidebar-navigation-screen-details-panel';\n\nconst EMPTY_OBJECT = {};\n\nexport default function HomeTemplateDetails() {\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst {\n\t\tallowCommentsOnNewPosts,\n\t\tpostsPerPage,\n\t\tpostsPageTitle,\n\t\tpostsPageId,\n\t} = useSelect( ( select ) => {\n\t\tconst { getEntityRecord } = select( coreStore );\n\t\tconst siteSettings = getEntityRecord( 'root', 'site' );\n\t\tconst _postsPageRecord = siteSettings?.page_for_posts\n\t\t\t? getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'page',\n\t\t\t\t\tsiteSettings?.page_for_posts\n\t\t\t  )\n\t\t\t: EMPTY_OBJECT;\n\n\t\treturn {\n\t\t\tallowCommentsOnNewPosts:\n\t\t\t\tsiteSettings?.default_comment_status === 'open',\n\t\t\tpostsPageTitle: _postsPageRecord?.title?.rendered,\n\t\t\tpostsPageId: _postsPageRecord?.id,\n\t\t\tpostsPerPage: siteSettings?.posts_per_page,\n\t\t};\n\t}, [] );\n\n\tconst [ commentsOnNewPostsValue, setCommentsOnNewPostsValue ] =\n\t\tuseState( '' );\n\tconst [ postsCountValue, setPostsCountValue ] = useState( 1 );\n\tconst [ postsPageTitleValue, setPostsPageTitleValue ] = useState( '' );\n\n\t/*\n\t * This hook serves to set the server-retrieved values,\n\t * postsPageTitle, allowCommentsOnNewPosts, postsPerPage,\n\t * to local state.\n\t */\n\tuseEffect( () => {\n\t\tsetCommentsOnNewPostsValue( allowCommentsOnNewPosts );\n\t\tsetPostsPageTitleValue( postsPageTitle );\n\t\tsetPostsCountValue( postsPerPage );\n\t}, [ postsPageTitle, allowCommentsOnNewPosts, postsPerPage ] );\n\n\tconst setAllowCommentsOnNewPosts = ( newValue ) => {\n\t\tsetCommentsOnNewPostsValue( newValue );\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tdefault_comment_status: newValue ? 'open' : null,\n\t\t} );\n\t};\n\n\tconst setPostsPageTitle = ( newValue ) => {\n\t\tsetPostsPageTitleValue( newValue );\n\t\teditEntityRecord( 'postType', 'page', postsPageId, {\n\t\t\ttitle: newValue,\n\t\t} );\n\t};\n\n\tconst setPostsPerPage = ( newValue ) => {\n\t\tsetPostsCountValue( newValue );\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tposts_per_page: newValue,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<SidebarNavigationScreenDetailsPanel spacing={ 6 }>\n\t\t\t\t{ postsPageId && (\n\t\t\t\t\t<SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__input-control\"\n\t\t\t\t\t\t\tplaceholder={ __( 'No Title' ) }\n\t\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t\t\tvalue={ postsPageTitleValue }\n\t\t\t\t\t\t\tonChange={ debounce( setPostsPageTitle, 300 ) }\n\t\t\t\t\t\t\tlabel={ __( 'Blog title' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Set the Posts Page title. Appears in search results, and when the page is shared on social media.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t) }\n\t\t\t\t<SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t<NumberControl\n\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__input-control\"\n\t\t\t\t\t\tplaceholder={ 0 }\n\t\t\t\t\t\tvalue={ postsCountValue }\n\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t\tspinControls=\"custom\"\n\t\t\t\t\t\tstep=\"1\"\n\t\t\t\t\t\tmin=\"1\"\n\t\t\t\t\t\tonChange={ setPostsPerPage }\n\t\t\t\t\t\tlabel={ __( 'Posts per page' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Set the default number of posts to display on blog pages, including categories and tags. Some templates may override this setting.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t</SidebarNavigationScreenDetailsPanel>\n\n\t\t\t<SidebarNavigationScreenDetailsPanel\n\t\t\t\ttitle={ __( 'Discussion' ) }\n\t\t\t\tspacing={ 3 }\n\t\t\t>\n\t\t\t\t<SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__input-control\"\n\t\t\t\t\t\tlabel={ __( 'Allow comments on new posts' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Changes will apply to new posts only. Individual posts may override these settings.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tchecked={ commentsOnNewPostsValue }\n\t\t\t\t\t\tonChange={ setAllowCommentsOnNewPosts }\n\t\t\t\t\t/>\n\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t</SidebarNavigationScreenDetailsPanel>\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { pencil } from '@wordpress/icons';\nimport {\n\t__experimentalUseNavigator as useNavigator,\n\tIcon,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\n/**\n * Internal dependencies\n */\nimport TemplateAreas from './template-areas';\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport useEditedEntityRecord from '../use-edited-entity-record';\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport SidebarButton from '../sidebar-button';\nimport { useAddedBy } from '../list/added-by';\nimport TemplateActions from '../template-actions';\nimport HomeTemplateDetails from './home-template-details';\nimport SidebarNavigationScreenDetailsFooter from '../sidebar-navigation-screen-details-footer';\n\nfunction useTemplateDetails( postType, postId ) {\n\tconst { getDescription, getTitle, record } = useEditedEntityRecord(\n\t\tpostType,\n\t\tpostId\n\t);\n\tconst currentTheme = useSelect(\n\t\t( select ) => select( coreStore ).getCurrentTheme(),\n\t\t[]\n\t);\n\tconst addedBy = useAddedBy( postType, postId );\n\tconst isAddedByActiveTheme =\n\t\taddedBy.type === 'theme' && record.theme === currentTheme?.stylesheet;\n\tconst title = getTitle();\n\tlet descriptionText = getDescription();\n\n\tif ( ! descriptionText && addedBy.text ) {\n\t\tdescriptionText = __(\n\t\t\t'This is a custom template that can be applied manually to any Post or Page.'\n\t\t);\n\t}\n\n\tconst content =\n\t\trecord?.slug === 'home' || record?.slug === 'index' ? (\n\t\t\t<>\n\t\t\t\t<HomeTemplateDetails />\n\t\t\t\t<TemplateAreas />\n\t\t\t</>\n\t\t) : (\n\t\t\t<TemplateAreas />\n\t\t);\n\n\tconst footer = record?.modified ? (\n\t\t<SidebarNavigationScreenDetailsFooter record={ record } />\n\t) : null;\n\n\tconst description = (\n\t\t<>\n\t\t\t{ descriptionText }\n\n\t\t\t{ addedBy.text && ! isAddedByActiveTheme && (\n\t\t\t\t<span className=\"edit-site-sidebar-navigation-screen-template__added-by-description\">\n\t\t\t\t\t<span className=\"edit-site-sidebar-navigation-screen-template__added-by-description-author\">\n\t\t\t\t\t\t<span className=\"edit-site-sidebar-navigation-screen-template__added-by-description-author-icon\">\n\t\t\t\t\t\t\t{ addedBy.imageUrl ? (\n\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\tsrc={ addedBy.imageUrl }\n\t\t\t\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\t\t\t\twidth=\"24\"\n\t\t\t\t\t\t\t\t\theight=\"24\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<Icon icon={ addedBy.icon } />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t{ addedBy.text }\n\t\t\t\t\t</span>\n\n\t\t\t\t\t{ addedBy.isCustomized && (\n\t\t\t\t\t\t<span className=\"edit-site-sidebar-navigation-screen-template__added-by-description-customized\">\n\t\t\t\t\t\t\t{ _x( '(Customized)', 'template' ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t</>\n\t);\n\n\treturn { title, description, content, footer };\n}\n\nexport default function SidebarNavigationScreenTemplate() {\n\tconst navigator = useNavigator();\n\tconst {\n\t\tparams: { postType, postId },\n\t} = navigator;\n\tconst { setCanvasMode } = unlock( useDispatch( editSiteStore ) );\n\tconst { title, content, description, footer } = useTemplateDetails(\n\t\tpostType,\n\t\tpostId\n\t);\n\n\treturn (\n\t\t<SidebarNavigationScreen\n\t\t\ttitle={ title }\n\t\t\tactions={\n\t\t\t\t<>\n\t\t\t\t\t<TemplateActions\n\t\t\t\t\t\tpostType={ postType }\n\t\t\t\t\t\tpostId={ postId }\n\t\t\t\t\t\ttoggleProps={ { as: SidebarButton } }\n\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\tnavigator.goTo( `/${ postType }/all` );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t<SidebarButton\n\t\t\t\t\t\tonClick={ () => setCanvasMode( 'edit' ) }\n\t\t\t\t\t\tlabel={ __( 'Edit' ) }\n\t\t\t\t\t\ticon={ pencil }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t}\n\t\t\tdescription={ description }\n\t\t\tcontent={ content }\n\t\t\tfooter={ footer }\n\t\t/>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst file = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"M12.848 8a1 1 0 0 1-.914-.594l-.723-1.63a.5.5 0 0 0-.447-.276H5a.5.5 0 0 0-.5.5v11.5a.5.5 0 0 0 .5.5h14a.5.5 0 0 0 .5-.5v-9A.5.5 0 0 0 19 8h-6.152Zm.612-1.5a.5.5 0 0 1-.462-.31l-.445-1.084A2 2 0 0 0 10.763 4H5a2 2 0 0 0-2 2v11.5a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-9a2 2 0 0 0-2-2h-5.54Z\"\n\t\t/>\n\t</SVG>\n);\n\nexport default file;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst symbolFilled = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M21.3 10.8l-5.6-5.6c-.7-.7-1.8-.7-2.5 0l-5.6 5.6c-.7.7-.7 1.8 0 2.5l5.6 5.6c.3.3.8.5 1.2.5s.9-.2 1.2-.5l5.6-5.6c.8-.7.8-1.9.1-2.5zm-17.6 1L10 5.5l-1-1-6.3 6.3c-.7.7-.7 1.8 0 2.5L9 19.5l1.1-1.1-6.3-6.3c-.2 0-.2-.2-.1-.3z\" />\n\t</SVG>\n);\n\nexport default symbolFilled;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst upload = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M18.5 15v3.5H13V6.7l4.5 4.1 1-1.1-6.2-5.8-5.8 5.8 1 1.1 4-4v11.7h-6V15H4v5h16v-5z\" />\n\t</SVG>\n);\n\nexport default upload;\n","/**\n * External dependencies\n */\nimport { paramCase as kebabCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { TEMPLATE_PART_POST_TYPE } from './constants';\n\nexport const useExistingTemplateParts = () => {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t\t{\n\t\t\t\t\tper_page: -1,\n\t\t\t\t}\n\t\t\t),\n\t\t[]\n\t);\n};\n\n/**\n * Return a unique template part title based on\n * the given title and existing template parts.\n *\n * @param {string} title         The original template part title.\n * @param {Object} templateParts The array of template part entities.\n * @return {string} A unique template part title.\n */\nexport const getUniqueTemplatePartTitle = ( title, templateParts ) => {\n\tconst lowercaseTitle = title.toLowerCase();\n\tconst existingTitles = templateParts.map( ( templatePart ) =>\n\t\ttemplatePart.title.rendered.toLowerCase()\n\t);\n\n\tif ( ! existingTitles.includes( lowercaseTitle ) ) {\n\t\treturn title;\n\t}\n\n\tlet suffix = 2;\n\twhile ( existingTitles.includes( `${ lowercaseTitle } ${ suffix }` ) ) {\n\t\tsuffix++;\n\t}\n\n\treturn `${ title } ${ suffix }`;\n};\n\n/**\n * Get a valid slug for a template part.\n * Currently template parts only allow latin chars.\n * The fallback slug will receive suffix by default.\n *\n * @param {string} title The template part title.\n * @return {string} A valid template part slug.\n */\nexport const getCleanTemplatePartSlug = ( title ) => {\n\treturn kebabCase( title ).replace( /[^\\w-]+/g, '' ) || 'wp-custom-part';\n};\n","/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tIcon,\n\tBaseControl,\n\tTextControl,\n\tFlex,\n\tFlexItem,\n\tFlexBlock,\n\tButton,\n\tModal,\n\t__experimentalRadioGroup as RadioGroup,\n\t__experimentalRadio as Radio,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { useInstanceId } from '@wordpress/compose';\nimport { store as editorStore } from '@wordpress/editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { check } from '@wordpress/icons';\nimport { serialize } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_PART_POST_TYPE,\n\tTEMPLATE_PART_AREA_DEFAULT_CATEGORY,\n} from '../../utils/constants';\nimport {\n\tuseExistingTemplateParts,\n\tgetUniqueTemplatePartTitle,\n\tgetCleanTemplatePartSlug,\n} from '../../utils/template-part-create';\n\nexport default function CreateTemplatePartModal( {\n\tmodalTitle = __( 'Create template part' ),\n\t...restProps\n} ) {\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ modalTitle }\n\t\t\tonRequestClose={ restProps.closeModal }\n\t\t\toverlayClassName=\"edit-site-create-template-part-modal\"\n\t\t>\n\t\t\t<CreateTemplatePartModalContents { ...restProps } />\n\t\t</Modal>\n\t);\n}\n\nexport function CreateTemplatePartModalContents( {\n\tdefaultArea = TEMPLATE_PART_AREA_DEFAULT_CATEGORY,\n\tblocks = [],\n\tconfirmLabel = __( 'Create' ),\n\tcloseModal,\n\tonCreate,\n\tonError,\n\tdefaultTitle = '',\n} ) {\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst existingTemplateParts = useExistingTemplateParts();\n\n\tconst [ title, setTitle ] = useState( defaultTitle );\n\tconst [ area, setArea ] = useState( defaultArea );\n\tconst [ isSubmitting, setIsSubmitting ] = useState( false );\n\tconst instanceId = useInstanceId( CreateTemplatePartModal );\n\n\tconst templatePartAreas = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).__experimentalGetDefaultTemplatePartAreas(),\n\t\t[]\n\t);\n\tasync function createTemplatePart() {\n\t\tif ( ! title || isSubmitting ) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tsetIsSubmitting( true );\n\t\t\tconst uniqueTitle = getUniqueTemplatePartTitle(\n\t\t\t\ttitle,\n\t\t\t\texistingTemplateParts\n\t\t\t);\n\t\t\tconst cleanSlug = getCleanTemplatePartSlug( uniqueTitle );\n\n\t\t\tconst templatePart = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t\t{\n\t\t\t\t\tslug: cleanSlug,\n\t\t\t\t\ttitle: uniqueTitle,\n\t\t\t\t\tcontent: serialize( blocks ),\n\t\t\t\t\tarea,\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\t\t\tawait onCreate( templatePart );\n\n\t\t\t// TODO: Add a success notice?\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __(\n\t\t\t\t\t\t\t'An error occurred while creating the template part.'\n\t\t\t\t\t  );\n\n\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\n\t\t\tonError?.();\n\t\t} finally {\n\t\t\tsetIsSubmitting( false );\n\t\t}\n\t}\n\treturn (\n\t\t<form\n\t\t\tonSubmit={ async ( event ) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tawait createTemplatePart();\n\t\t\t} }\n\t\t>\n\t\t\t<VStack spacing=\"4\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\tvalue={ title }\n\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\trequired\n\t\t\t\t/>\n\t\t\t\t<BaseControl\n\t\t\t\t\tlabel={ __( 'Area' ) }\n\t\t\t\t\tid={ `edit-site-create-template-part-modal__area-selection-${ instanceId }` }\n\t\t\t\t\tclassName=\"edit-site-create-template-part-modal__area-base-control\"\n\t\t\t\t>\n\t\t\t\t\t<RadioGroup\n\t\t\t\t\t\tlabel={ __( 'Area' ) }\n\t\t\t\t\t\tclassName=\"edit-site-create-template-part-modal__area-radio-group\"\n\t\t\t\t\t\tid={ `edit-site-create-template-part-modal__area-selection-${ instanceId }` }\n\t\t\t\t\t\tonChange={ setArea }\n\t\t\t\t\t\tchecked={ area }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ templatePartAreas.map(\n\t\t\t\t\t\t\t( { icon, label, area: value, description } ) => (\n\t\t\t\t\t\t\t\t<Radio\n\t\t\t\t\t\t\t\t\tkey={ label }\n\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-create-template-part-modal__area-radio\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Flex align=\"start\" justify=\"start\">\n\t\t\t\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t\t<FlexBlock className=\"edit-site-create-template-part-modal__option-label\">\n\t\t\t\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t\t\t\t\t<div>{ description }</div>\n\t\t\t\t\t\t\t\t\t\t</FlexBlock>\n\n\t\t\t\t\t\t\t\t\t\t<FlexItem className=\"edit-site-create-template-part-modal__checkbox\">\n\t\t\t\t\t\t\t\t\t\t\t{ area === value && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Icon icon={ check } />\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t\t</Radio>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) }\n\t\t\t\t\t</RadioGroup>\n\t\t\t\t</BaseControl>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\taria-disabled={ ! title || isSubmitting }\n\t\t\t\t\t\tisBusy={ isSubmitting }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ confirmLabel }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t</form>\n\t);\n}\n","export const filterOutDuplicatesByName = ( currentItem, index, items ) =>\n\tindex === items.findIndex( ( item ) => currentItem.name === item.name );\n","'use strict';\n\n/** @typedef {(...args: any[]) => *[]} GetDependants */\n\n/** @typedef {() => void} Clear */\n\n/**\n * @typedef {{\n *   getDependants: GetDependants,\n *   clear: Clear\n * }} EnhancedSelector\n */\n\n/**\n * Internal cache entry.\n *\n * @typedef CacheNode\n *\n * @property {?CacheNode|undefined} [prev] Previous node.\n * @property {?CacheNode|undefined} [next] Next node.\n * @property {*[]} args Function arguments for cache entry.\n * @property {*} val Function result.\n */\n\n/**\n * @typedef Cache\n *\n * @property {Clear} clear Function to clear cache.\n * @property {boolean} [isUniqueByDependants] Whether dependants are valid in\n * considering cache uniqueness. A cache is unique if dependents are all arrays\n * or objects.\n * @property {CacheNode?} [head] Cache head.\n * @property {*[]} [lastDependants] Dependants from previous invocation.\n */\n\n/**\n * Arbitrary value used as key for referencing cache object in WeakMap tree.\n *\n * @type {{}}\n */\nvar LEAF_KEY = {};\n\n/**\n * Returns the first argument as the sole entry in an array.\n *\n * @template T\n *\n * @param {T} value Value to return.\n *\n * @return {[T]} Value returned as entry in array.\n */\nfunction arrayOf(value) {\n\treturn [value];\n}\n\n/**\n * Returns true if the value passed is object-like, or false otherwise. A value\n * is object-like if it can support property assignment, e.g. object or array.\n *\n * @param {*} value Value to test.\n *\n * @return {boolean} Whether value is object-like.\n */\nfunction isObjectLike(value) {\n\treturn !!value && 'object' === typeof value;\n}\n\n/**\n * Creates and returns a new cache object.\n *\n * @return {Cache} Cache object.\n */\nfunction createCache() {\n\t/** @type {Cache} */\n\tvar cache = {\n\t\tclear: function () {\n\t\t\tcache.head = null;\n\t\t},\n\t};\n\n\treturn cache;\n}\n\n/**\n * Returns true if entries within the two arrays are strictly equal by\n * reference from a starting index.\n *\n * @param {*[]} a First array.\n * @param {*[]} b Second array.\n * @param {number} fromIndex Index from which to start comparison.\n *\n * @return {boolean} Whether arrays are shallowly equal.\n */\nfunction isShallowEqual(a, b, fromIndex) {\n\tvar i;\n\n\tif (a.length !== b.length) {\n\t\treturn false;\n\t}\n\n\tfor (i = fromIndex; i < a.length; i++) {\n\t\tif (a[i] !== b[i]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\n/**\n * Returns a memoized selector function. The getDependants function argument is\n * called before the memoized selector and is expected to return an immutable\n * reference or array of references on which the selector depends for computing\n * its own return value. The memoize cache is preserved only as long as those\n * dependant references remain the same. If getDependants returns a different\n * reference(s), the cache is cleared and the selector value regenerated.\n *\n * @template {(...args: *[]) => *} S\n *\n * @param {S} selector Selector function.\n * @param {GetDependants=} getDependants Dependant getter returning an array of\n * references used in cache bust consideration.\n */\nexport default function (selector, getDependants) {\n\t/** @type {WeakMap<*,*>} */\n\tvar rootCache;\n\n\t/** @type {GetDependants} */\n\tvar normalizedGetDependants = getDependants ? getDependants : arrayOf;\n\n\t/**\n\t * Returns the cache for a given dependants array. When possible, a WeakMap\n\t * will be used to create a unique cache for each set of dependants. This\n\t * is feasible due to the nature of WeakMap in allowing garbage collection\n\t * to occur on entries where the key object is no longer referenced. Since\n\t * WeakMap requires the key to be an object, this is only possible when the\n\t * dependant is object-like. The root cache is created as a hierarchy where\n\t * each top-level key is the first entry in a dependants set, the value a\n\t * WeakMap where each key is the next dependant, and so on. This continues\n\t * so long as the dependants are object-like. If no dependants are object-\n\t * like, then the cache is shared across all invocations.\n\t *\n\t * @see isObjectLike\n\t *\n\t * @param {*[]} dependants Selector dependants.\n\t *\n\t * @return {Cache} Cache object.\n\t */\n\tfunction getCache(dependants) {\n\t\tvar caches = rootCache,\n\t\t\tisUniqueByDependants = true,\n\t\t\ti,\n\t\t\tdependant,\n\t\t\tmap,\n\t\t\tcache;\n\n\t\tfor (i = 0; i < dependants.length; i++) {\n\t\t\tdependant = dependants[i];\n\n\t\t\t// Can only compose WeakMap from object-like key.\n\t\t\tif (!isObjectLike(dependant)) {\n\t\t\t\tisUniqueByDependants = false;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Does current segment of cache already have a WeakMap?\n\t\t\tif (caches.has(dependant)) {\n\t\t\t\t// Traverse into nested WeakMap.\n\t\t\t\tcaches = caches.get(dependant);\n\t\t\t} else {\n\t\t\t\t// Create, set, and traverse into a new one.\n\t\t\t\tmap = new WeakMap();\n\t\t\t\tcaches.set(dependant, map);\n\t\t\t\tcaches = map;\n\t\t\t}\n\t\t}\n\n\t\t// We use an arbitrary (but consistent) object as key for the last item\n\t\t// in the WeakMap to serve as our running cache.\n\t\tif (!caches.has(LEAF_KEY)) {\n\t\t\tcache = createCache();\n\t\t\tcache.isUniqueByDependants = isUniqueByDependants;\n\t\t\tcaches.set(LEAF_KEY, cache);\n\t\t}\n\n\t\treturn caches.get(LEAF_KEY);\n\t}\n\n\t/**\n\t * Resets root memoization cache.\n\t */\n\tfunction clear() {\n\t\trootCache = new WeakMap();\n\t}\n\n\t/* eslint-disable jsdoc/check-param-names */\n\t/**\n\t * The augmented selector call, considering first whether dependants have\n\t * changed before passing it to underlying memoize function.\n\t *\n\t * @param {*}    source    Source object for derivation.\n\t * @param {...*} extraArgs Additional arguments to pass to selector.\n\t *\n\t * @return {*} Selector result.\n\t */\n\t/* eslint-enable jsdoc/check-param-names */\n\tfunction callSelector(/* source, ...extraArgs */) {\n\t\tvar len = arguments.length,\n\t\t\tcache,\n\t\t\tnode,\n\t\t\ti,\n\t\t\targs,\n\t\t\tdependants;\n\n\t\t// Create copy of arguments (avoid leaking deoptimization).\n\t\targs = new Array(len);\n\t\tfor (i = 0; i < len; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\n\t\tdependants = normalizedGetDependants.apply(null, args);\n\t\tcache = getCache(dependants);\n\n\t\t// If not guaranteed uniqueness by dependants (primitive type), shallow\n\t\t// compare against last dependants and, if references have changed,\n\t\t// destroy cache to recalculate result.\n\t\tif (!cache.isUniqueByDependants) {\n\t\t\tif (\n\t\t\t\tcache.lastDependants &&\n\t\t\t\t!isShallowEqual(dependants, cache.lastDependants, 0)\n\t\t\t) {\n\t\t\t\tcache.clear();\n\t\t\t}\n\n\t\t\tcache.lastDependants = dependants;\n\t\t}\n\n\t\tnode = cache.head;\n\t\twhile (node) {\n\t\t\t// Check whether node arguments match arguments\n\t\t\tif (!isShallowEqual(node.args, args, 1)) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif (node !== cache.head) {\n\t\t\t\t// Adjust siblings to point to each other.\n\t\t\t\t/** @type {CacheNode} */ (node.prev).next = node.next;\n\t\t\t\tif (node.next) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = cache.head;\n\t\t\t\tnode.prev = null;\n\t\t\t\t/** @type {CacheNode} */ (cache.head).prev = node;\n\t\t\t\tcache.head = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\tnode = /** @type {CacheNode} */ ({\n\t\t\t// Generate the result from original function\n\t\t\tval: selector.apply(null, args),\n\t\t});\n\n\t\t// Avoid including the source object in the cache.\n\t\targs[0] = null;\n\t\tnode.args = args;\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif (cache.head) {\n\t\t\tcache.head.prev = node;\n\t\t\tnode.next = cache.head;\n\t\t}\n\n\t\tcache.head = node;\n\n\t\treturn node.val;\n\t}\n\n\tcallSelector.getDependants = normalizedGetDependants;\n\tcallSelector.clear = clear;\n\tclear();\n\n\treturn /** @type {S & EnhancedSelector} */ (callSelector);\n}\n","/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\nimport { noCase } from 'change-case';\n\n/**\n * Internal dependencies\n */\nimport {\n\tPATTERN_DEFAULT_CATEGORY,\n\tPATTERN_USER_CATEGORY,\n\tPATTERN_TYPES,\n} from '../../utils/constants';\n\n// Default search helpers.\nconst defaultGetName = ( item ) => item.name || '';\nconst defaultGetTitle = ( item ) => item.title;\nconst defaultGetDescription = ( item ) => item.description || '';\nconst defaultGetKeywords = ( item ) => item.keywords || [];\nconst defaultHasCategory = () => false;\n\n/**\n * Extracts words from an input string.\n *\n * @param {string} input The input string.\n *\n * @return {Array} Words, extracted from the input string.\n */\nfunction extractWords( input = '' ) {\n\treturn noCase( input, {\n\t\tsplitRegexp: [\n\t\t\t/([\\p{Ll}\\p{Lo}\\p{N}])([\\p{Lu}\\p{Lt}])/gu, // One lowercase or digit, followed by one uppercase.\n\t\t\t/([\\p{Lu}\\p{Lt}])([\\p{Lu}\\p{Lt}][\\p{Ll}\\p{Lo}])/gu, // One uppercase followed by one uppercase and one lowercase.\n\t\t],\n\t\tstripRegexp: /(\\p{C}|\\p{P}|\\p{S})+/giu, // Anything that's not a punctuation, symbol or control/format character.\n\t} )\n\t\t.split( ' ' )\n\t\t.filter( Boolean );\n}\n\n/**\n * Sanitizes the search input string.\n *\n * @param {string} input The search input to normalize.\n *\n * @return {string} The normalized search input.\n */\nfunction normalizeSearchInput( input = '' ) {\n\t// Disregard diacritics.\n\t//  Input: \"média\"\n\tinput = removeAccents( input );\n\n\t// Accommodate leading slash, matching autocomplete expectations.\n\t//  Input: \"/media\"\n\tinput = input.replace( /^\\//, '' );\n\n\t// Lowercase.\n\t//  Input: \"MEDIA\"\n\tinput = input.toLowerCase();\n\n\treturn input;\n}\n\n/**\n * Converts the search term into a list of normalized terms.\n *\n * @param {string} input The search term to normalize.\n *\n * @return {string[]} The normalized list of search terms.\n */\nexport const getNormalizedSearchTerms = ( input = '' ) => {\n\treturn extractWords( normalizeSearchInput( input ) );\n};\n\nconst removeMatchingTerms = ( unmatchedTerms, unprocessedTerms ) => {\n\treturn unmatchedTerms.filter(\n\t\t( term ) =>\n\t\t\t! getNormalizedSearchTerms( unprocessedTerms ).some(\n\t\t\t\t( unprocessedTerm ) => unprocessedTerm.includes( term )\n\t\t\t)\n\t);\n};\n\n/**\n * Filters an item list given a search term.\n *\n * @param {Array}  items       Item list\n * @param {string} searchInput Search input.\n * @param {Object} config      Search Config.\n *\n * @return {Array} Filtered item list.\n */\nexport const searchItems = ( items = [], searchInput = '', config = {} ) => {\n\tconst normalizedSearchTerms = getNormalizedSearchTerms( searchInput );\n\t// Filter patterns by category: the default category indicates that all patterns will be shown.\n\tconst onlyFilterByCategory =\n\t\tconfig.categoryId !== PATTERN_DEFAULT_CATEGORY &&\n\t\t! normalizedSearchTerms.length;\n\tconst searchRankConfig = { ...config, onlyFilterByCategory };\n\n\t// If we aren't filtering on search terms, matching on category is satisfactory.\n\t// If we are, then we need more than a category match.\n\tconst threshold = onlyFilterByCategory ? 0 : 1;\n\n\tconst rankedItems = items\n\t\t.map( ( item ) => {\n\t\t\treturn [\n\t\t\t\titem,\n\t\t\t\tgetItemSearchRank( item, searchInput, searchRankConfig ),\n\t\t\t];\n\t\t} )\n\t\t.filter( ( [ , rank ] ) => rank > threshold );\n\n\t// If we didn't have terms to search on, there's no point sorting.\n\tif ( normalizedSearchTerms.length === 0 ) {\n\t\treturn rankedItems.map( ( [ item ] ) => item );\n\t}\n\n\trankedItems.sort( ( [ , rank1 ], [ , rank2 ] ) => rank2 - rank1 );\n\treturn rankedItems.map( ( [ item ] ) => item );\n};\n\n/**\n * Get the search rank for a given item and a specific search term.\n * The better the match, the higher the rank.\n * If the rank equals 0, it should be excluded from the results.\n *\n * @param {Object} item       Item to filter.\n * @param {string} searchTerm Search term.\n * @param {Object} config     Search Config.\n *\n * @return {number} Search Rank.\n */\nfunction getItemSearchRank( item, searchTerm, config ) {\n\tconst {\n\t\tcategoryId,\n\t\tgetName = defaultGetName,\n\t\tgetTitle = defaultGetTitle,\n\t\tgetDescription = defaultGetDescription,\n\t\tgetKeywords = defaultGetKeywords,\n\t\thasCategory = defaultHasCategory,\n\t\tonlyFilterByCategory,\n\t} = config;\n\n\tlet rank =\n\t\tcategoryId === PATTERN_DEFAULT_CATEGORY ||\n\t\t( categoryId === PATTERN_USER_CATEGORY &&\n\t\t\titem.type === PATTERN_TYPES.user ) ||\n\t\thasCategory( item, categoryId )\n\t\t\t? 1\n\t\t\t: 0;\n\n\t// If an item doesn't belong to the current category or we don't have\n\t// search terms to filter by, return the initial rank value.\n\tif ( ! rank || onlyFilterByCategory ) {\n\t\treturn rank;\n\t}\n\n\tconst name = getName( item );\n\tconst title = getTitle( item );\n\tconst description = getDescription( item );\n\tconst keywords = getKeywords( item );\n\n\tconst normalizedSearchInput = normalizeSearchInput( searchTerm );\n\tconst normalizedTitle = normalizeSearchInput( title );\n\n\t// Prefers exact matches\n\t// Then prefers if the beginning of the title matches the search term\n\t// name, keywords, description matches come later.\n\tif ( normalizedSearchInput === normalizedTitle ) {\n\t\trank += 30;\n\t} else if ( normalizedTitle.startsWith( normalizedSearchInput ) ) {\n\t\trank += 20;\n\t} else {\n\t\tconst terms = [ name, title, description, ...keywords ].join( ' ' );\n\t\tconst normalizedSearchTerms = extractWords( normalizedSearchInput );\n\t\tconst unmatchedTerms = removeMatchingTerms(\n\t\t\tnormalizedSearchTerms,\n\t\t\tterms\n\t\t);\n\n\t\tif ( unmatchedTerms.length === 0 ) {\n\t\t\trank += 10;\n\t\t}\n\t}\n\n\treturn rank;\n}\n","/**\n * External dependencies\n */\nimport createSelector from 'rememo';\n\n/**\n * WordPress dependencies\n */\nimport { parse } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { filterOutDuplicatesByName } from './utils';\nimport {\n\tEXCLUDED_PATTERN_SOURCES,\n\tPATTERN_TYPES,\n\tPATTERN_SYNC_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tTEMPLATE_ORIGINS,\n\tTEMPLATE_PART_AREA_DEFAULT_CATEGORY,\n} from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\nimport { searchItems } from './search-items';\nimport { store as editSiteStore } from '../../store';\n\nconst EMPTY_PATTERN_LIST = [];\n\nconst createTemplatePartId = ( theme, slug ) =>\n\ttheme && slug ? theme + '//' + slug : null;\n\nconst templatePartToPattern = ( templatePart ) => ( {\n\tblocks: parse( templatePart.content.raw, {\n\t\t__unstableSkipMigrationLogs: true,\n\t} ),\n\tcategories: [ templatePart.area ],\n\tdescription: templatePart.description || '',\n\tisCustom: templatePart.source === TEMPLATE_ORIGINS.custom,\n\tkeywords: templatePart.keywords || [],\n\tid: createTemplatePartId( templatePart.theme, templatePart.slug ),\n\tname: createTemplatePartId( templatePart.theme, templatePart.slug ),\n\ttitle: decodeEntities( templatePart.title.rendered ),\n\ttype: templatePart.type,\n\ttemplatePart,\n} );\n\nconst selectTemplatePartsAsPatterns = createSelector(\n\t( select, categoryId, search = '' ) => {\n\t\tconst { getEntityRecords, getIsResolving } = select( coreStore );\n\t\tconst { __experimentalGetDefaultTemplatePartAreas } =\n\t\t\tselect( editorStore );\n\t\tconst query = { per_page: -1 };\n\t\tconst rawTemplateParts =\n\t\t\tgetEntityRecords( 'postType', TEMPLATE_PART_POST_TYPE, query ) ??\n\t\t\tEMPTY_PATTERN_LIST;\n\t\tconst templateParts = rawTemplateParts.map( ( templatePart ) =>\n\t\t\ttemplatePartToPattern( templatePart )\n\t\t);\n\n\t\t// In the case where a custom template part area has been removed we need\n\t\t// the current list of areas to cross check against so orphaned template\n\t\t// parts can be treated as uncategorized.\n\t\tconst knownAreas = __experimentalGetDefaultTemplatePartAreas() || [];\n\t\tconst templatePartAreas = knownAreas.map( ( area ) => area.area );\n\n\t\tconst templatePartHasCategory = ( item, category ) => {\n\t\t\tif ( category !== TEMPLATE_PART_AREA_DEFAULT_CATEGORY ) {\n\t\t\t\treturn item.templatePart.area === category;\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\titem.templatePart.area === category ||\n\t\t\t\t! templatePartAreas.includes( item.templatePart.area )\n\t\t\t);\n\t\t};\n\n\t\tconst isResolving = getIsResolving( 'getEntityRecords', [\n\t\t\t'postType',\n\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\tquery,\n\t\t] );\n\n\t\tconst patterns = searchItems( templateParts, search, {\n\t\t\tcategoryId,\n\t\t\thasCategory: templatePartHasCategory,\n\t\t} );\n\n\t\treturn { patterns, isResolving };\n\t},\n\t( select ) => [\n\t\tselect( coreStore ).getEntityRecords(\n\t\t\t'postType',\n\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t{\n\t\t\t\tper_page: -1,\n\t\t\t}\n\t\t),\n\t\tselect( coreStore ).getIsResolving( 'getEntityRecords', [\n\t\t\t'postType',\n\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t{ per_page: -1 },\n\t\t] ),\n\t\tselect( editorStore ).__experimentalGetDefaultTemplatePartAreas(),\n\t]\n);\n\nconst selectThemePatterns = createSelector(\n\t( select ) => {\n\t\tconst { getSettings } = unlock( select( editSiteStore ) );\n\t\tconst settings = getSettings();\n\t\tconst blockPatterns =\n\t\t\tsettings.__experimentalAdditionalBlockPatterns ??\n\t\t\tsettings.__experimentalBlockPatterns;\n\n\t\tconst restBlockPatterns = select( coreStore ).getBlockPatterns();\n\n\t\tconst patterns = [\n\t\t\t...( blockPatterns || [] ),\n\t\t\t...( restBlockPatterns || [] ),\n\t\t]\n\t\t\t.filter(\n\t\t\t\t( pattern ) =>\n\t\t\t\t\t! EXCLUDED_PATTERN_SOURCES.includes( pattern.source )\n\t\t\t)\n\t\t\t.filter( filterOutDuplicatesByName )\n\t\t\t.filter( ( pattern ) => pattern.inserter !== false )\n\t\t\t.map( ( pattern ) => ( {\n\t\t\t\t...pattern,\n\t\t\t\tkeywords: pattern.keywords || [],\n\t\t\t\ttype: PATTERN_TYPES.theme,\n\t\t\t\tblocks: parse( pattern.content, {\n\t\t\t\t\t__unstableSkipMigrationLogs: true,\n\t\t\t\t} ),\n\t\t\t} ) );\n\n\t\treturn { patterns, isResolving: false };\n\t},\n\t( select ) => [\n\t\tselect( coreStore ).getBlockPatterns(),\n\t\tunlock( select( editSiteStore ) ).getSettings(),\n\t]\n);\n\nconst selectPatterns = createSelector(\n\t( select, categoryId, syncStatus, search = '' ) => {\n\t\tconst { patterns: themePatterns } = selectThemePatterns( select );\n\t\tconst { patterns: userPatterns } = selectUserPatterns( select );\n\n\t\tlet patterns = [\n\t\t\t...( themePatterns || [] ),\n\t\t\t...( userPatterns || [] ),\n\t\t];\n\n\t\tif ( syncStatus ) {\n\t\t\t// User patterns can have their sync statuses checked directly\n\t\t\t// Non-user patterns are all unsynced for the time being.\n\t\t\tpatterns = patterns.filter( ( pattern ) => {\n\t\t\t\treturn pattern.type === PATTERN_TYPES.user\n\t\t\t\t\t? pattern.syncStatus === syncStatus\n\t\t\t\t\t: syncStatus === PATTERN_SYNC_TYPES.unsynced;\n\t\t\t} );\n\t\t}\n\n\t\tif ( categoryId ) {\n\t\t\tpatterns = searchItems( patterns, search, {\n\t\t\t\tcategoryId,\n\t\t\t\thasCategory: ( item, currentCategory ) =>\n\t\t\t\t\titem.categories?.includes( currentCategory ),\n\t\t\t} );\n\t\t} else {\n\t\t\tpatterns = searchItems( patterns, search, {\n\t\t\t\thasCategory: ( item ) => ! item.hasOwnProperty( 'categories' ),\n\t\t\t} );\n\t\t}\n\t\treturn { patterns, isResolving: false };\n\t},\n\t( select ) => [\n\t\tselectThemePatterns( select ),\n\t\tselectUserPatterns( select ),\n\t]\n);\n\n/**\n * Converts a post of type `wp_block` to a 'pattern item' that more closely\n * matches the structure of theme provided patterns.\n *\n * @param {Object} patternPost The `wp_block` record being normalized.\n * @param {Map}    categories  A Map of user created categories.\n *\n * @return {Object} The normalized item.\n */\nconst convertPatternPostToItem = ( patternPost, categories ) => ( {\n\tblocks: parse( patternPost.content.raw, {\n\t\t__unstableSkipMigrationLogs: true,\n\t} ),\n\t...( patternPost.wp_pattern_category.length > 0 && {\n\t\tcategories: patternPost.wp_pattern_category.map(\n\t\t\t( patternCategoryId ) =>\n\t\t\t\tcategories && categories.get( patternCategoryId )\n\t\t\t\t\t? categories.get( patternCategoryId ).slug\n\t\t\t\t\t: patternCategoryId\n\t\t),\n\t} ),\n\ttermLabels: patternPost.wp_pattern_category.map( ( patternCategoryId ) =>\n\t\tcategories?.get( patternCategoryId )\n\t\t\t? categories.get( patternCategoryId ).label\n\t\t\t: patternCategoryId\n\t),\n\tid: patternPost.id,\n\tname: patternPost.slug,\n\tsyncStatus: patternPost.wp_pattern_sync_status || PATTERN_SYNC_TYPES.full,\n\ttitle: patternPost.title.raw,\n\ttype: patternPost.type,\n\tpatternPost,\n} );\n\nconst selectUserPatterns = createSelector(\n\t( select, syncStatus, search = '' ) => {\n\t\tconst { getEntityRecords, getIsResolving, getUserPatternCategories } =\n\t\t\tselect( coreStore );\n\n\t\tconst query = { per_page: -1 };\n\t\tconst patternPosts = getEntityRecords(\n\t\t\t'postType',\n\t\t\tPATTERN_TYPES.user,\n\t\t\tquery\n\t\t);\n\t\tconst userPatternCategories = getUserPatternCategories();\n\t\tconst categories = new Map();\n\t\tuserPatternCategories.forEach( ( userCategory ) =>\n\t\t\tcategories.set( userCategory.id, userCategory )\n\t\t);\n\t\tlet patterns = patternPosts\n\t\t\t? patternPosts.map( ( record ) =>\n\t\t\t\t\tconvertPatternPostToItem( record, categories )\n\t\t\t  )\n\t\t\t: EMPTY_PATTERN_LIST;\n\n\t\tconst isResolving = getIsResolving( 'getEntityRecords', [\n\t\t\t'postType',\n\t\t\tPATTERN_TYPES.user,\n\t\t\tquery,\n\t\t] );\n\n\t\tif ( syncStatus ) {\n\t\t\tpatterns = patterns.filter(\n\t\t\t\t( pattern ) => pattern.syncStatus === syncStatus\n\t\t\t);\n\t\t}\n\n\t\tpatterns = searchItems( patterns, search, {\n\t\t\t// We exit user pattern retrieval early if we aren't in the\n\t\t\t// catch-all category for user created patterns, so it has\n\t\t\t// to be in the category.\n\t\t\thasCategory: () => true,\n\t\t} );\n\n\t\treturn {\n\t\t\tpatterns,\n\t\t\tisResolving,\n\t\t\tcategories: userPatternCategories,\n\t\t};\n\t},\n\t( select ) => [\n\t\tselect( coreStore ).getEntityRecords( 'postType', PATTERN_TYPES.user, {\n\t\t\tper_page: -1,\n\t\t} ),\n\t\tselect( coreStore ).getIsResolving( 'getEntityRecords', [\n\t\t\t'postType',\n\t\t\tPATTERN_TYPES.user,\n\t\t\t{ per_page: -1 },\n\t\t] ),\n\t\tselect( coreStore ).getUserPatternCategories(),\n\t]\n);\n\nexport const usePatterns = (\n\tcategoryType,\n\tcategoryId,\n\t{ search = '', syncStatus } = {}\n) => {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tif ( categoryType === TEMPLATE_PART_POST_TYPE ) {\n\t\t\t\treturn selectTemplatePartsAsPatterns(\n\t\t\t\t\tselect,\n\t\t\t\t\tcategoryId,\n\t\t\t\t\tsearch\n\t\t\t\t);\n\t\t\t} else if ( categoryType === PATTERN_TYPES.theme ) {\n\t\t\t\treturn selectPatterns( select, categoryId, syncStatus, search );\n\t\t\t} else if ( categoryType === PATTERN_TYPES.user ) {\n\t\t\t\treturn selectUserPatterns( select, syncStatus, search );\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tpatterns: EMPTY_PATTERN_LIST,\n\t\t\t\tisResolving: false,\n\t\t\t};\n\t\t},\n\t\t[ categoryId, categoryType, search, syncStatus ]\n\t);\n};\n\nexport default usePatterns;\n","/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useDefaultPatternCategories from './use-default-pattern-categories';\nimport useThemePatterns from './use-theme-patterns';\nimport usePatterns from '../page-patterns/use-patterns';\nimport {\n\tPATTERN_TYPES,\n\tPATTERN_DEFAULT_CATEGORY,\n\tPATTERN_USER_CATEGORY,\n\tTEMPLATE_PART_AREA_DEFAULT_CATEGORY,\n} from '../../utils/constants';\n\nexport default function usePatternCategories() {\n\tconst defaultCategories = useDefaultPatternCategories();\n\tdefaultCategories.push( {\n\t\tname: TEMPLATE_PART_AREA_DEFAULT_CATEGORY,\n\t\tlabel: __( 'Uncategorized' ),\n\t} );\n\tconst themePatterns = useThemePatterns();\n\tconst { patterns: userPatterns, categories: userPatternCategories } =\n\t\tusePatterns( PATTERN_TYPES.user );\n\n\tconst patternCategories = useMemo( () => {\n\t\tconst categoryMap = {};\n\t\tconst categoriesWithCounts = [];\n\n\t\t// Create a map for easier counting of patterns in categories.\n\t\tdefaultCategories.forEach( ( category ) => {\n\t\t\tif ( ! categoryMap[ category.name ] ) {\n\t\t\t\tcategoryMap[ category.name ] = { ...category, count: 0 };\n\t\t\t}\n\t\t} );\n\t\tuserPatternCategories.forEach( ( category ) => {\n\t\t\tif ( ! categoryMap[ category.name ] ) {\n\t\t\t\tcategoryMap[ category.name ] = { ...category, count: 0 };\n\t\t\t}\n\t\t} );\n\n\t\t// Update the category counts to reflect theme registered patterns.\n\t\tthemePatterns.forEach( ( pattern ) => {\n\t\t\tpattern.categories?.forEach( ( category ) => {\n\t\t\t\tif ( categoryMap[ category ] ) {\n\t\t\t\t\tcategoryMap[ category ].count += 1;\n\t\t\t\t}\n\t\t\t} );\n\t\t\t// If the pattern has no categories, add it to uncategorized.\n\t\t\tif ( ! pattern.categories?.length ) {\n\t\t\t\tcategoryMap.uncategorized.count += 1;\n\t\t\t}\n\t\t} );\n\n\t\t// Update the category counts to reflect user registered patterns.\n\t\tuserPatterns.forEach( ( pattern ) => {\n\t\t\tpattern.categories?.forEach( ( category ) => {\n\t\t\t\tif ( categoryMap[ category ] ) {\n\t\t\t\t\tcategoryMap[ category ].count += 1;\n\t\t\t\t}\n\t\t\t} );\n\t\t\t// If the pattern has no categories, add it to uncategorized.\n\t\t\tif ( ! pattern.categories?.length ) {\n\t\t\t\tcategoryMap.uncategorized.count += 1;\n\t\t\t}\n\t\t} );\n\n\t\t// Filter categories so we only have those containing patterns.\n\t\t[ ...defaultCategories, ...userPatternCategories ].forEach(\n\t\t\t( category ) => {\n\t\t\t\tif (\n\t\t\t\t\tcategoryMap[ category.name ].count &&\n\t\t\t\t\t! categoriesWithCounts.find(\n\t\t\t\t\t\t( cat ) => cat.name === category.name\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tcategoriesWithCounts.push( categoryMap[ category.name ] );\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t\tconst sortedCategories = categoriesWithCounts.sort( ( a, b ) =>\n\t\t\ta.label.localeCompare( b.label )\n\t\t);\n\n\t\tsortedCategories.unshift( {\n\t\t\tname: PATTERN_USER_CATEGORY,\n\t\t\tlabel: __( 'My patterns' ),\n\t\t\tcount: userPatterns.length,\n\t\t} );\n\n\t\tsortedCategories.unshift( {\n\t\t\tname: PATTERN_DEFAULT_CATEGORY,\n\t\t\tlabel: __( 'All patterns' ),\n\t\t\tdescription: __( 'A list of all patterns from all sources.' ),\n\t\t\tcount: themePatterns.length + userPatterns.length,\n\t\t} );\n\n\t\treturn sortedCategories;\n\t}, [\n\t\tdefaultCategories,\n\t\tthemePatterns,\n\t\tuserPatternCategories,\n\t\tuserPatterns,\n\t] );\n\n\treturn { patternCategories, hasPatterns: !! patternCategories.length };\n}\n","/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\n\nexport default function useDefaultPatternCategories() {\n\tconst blockPatternCategories = useSelect( ( select ) => {\n\t\tconst { getSettings } = unlock( select( editSiteStore ) );\n\t\tconst settings = getSettings();\n\n\t\treturn (\n\t\t\tsettings.__experimentalAdditionalBlockPatternCategories ??\n\t\t\tsettings.__experimentalBlockPatternCategories\n\t\t);\n\t} );\n\n\tconst restBlockPatternCategories = useSelect( ( select ) =>\n\t\tselect( coreStore ).getBlockPatternCategories()\n\t);\n\n\treturn [\n\t\t...( blockPatternCategories || [] ),\n\t\t...( restBlockPatternCategories || [] ),\n\t];\n}\n","/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { filterOutDuplicatesByName } from '../page-patterns/utils';\nimport { EXCLUDED_PATTERN_SOURCES } from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\n\nexport default function useThemePatterns() {\n\tconst blockPatterns = useSelect( ( select ) => {\n\t\tconst { getSettings } = unlock( select( editSiteStore ) );\n\n\t\treturn (\n\t\t\tgetSettings().__experimentalAdditionalBlockPatterns ??\n\t\t\tgetSettings().__experimentalBlockPatterns\n\t\t);\n\t} );\n\n\tconst restBlockPatterns = useSelect( ( select ) =>\n\t\tselect( coreStore ).getBlockPatterns()\n\t);\n\n\tconst patterns = useMemo(\n\t\t() =>\n\t\t\t[ ...( blockPatterns || [] ), ...( restBlockPatterns || [] ) ]\n\t\t\t\t.filter(\n\t\t\t\t\t( pattern ) =>\n\t\t\t\t\t\t! EXCLUDED_PATTERN_SOURCES.includes( pattern.source )\n\t\t\t\t)\n\t\t\t\t.filter( filterOutDuplicatesByName )\n\t\t\t\t.filter( ( pattern ) => pattern.inserter !== false ),\n\t\t[ blockPatterns, restBlockPatterns ]\n\t);\n\n\treturn patterns;\n}\n","/**\n * WordPress dependencies\n */\nimport { DropdownMenu } from '@wordpress/components';\nimport { useState, useRef } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { plus, symbol, symbolFilled, upload } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport {\n\tprivateApis as editPatternsPrivateApis,\n\tstore as patternsStore,\n} from '@wordpress/patterns';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport CreateTemplatePartModal from '../create-template-part-modal';\nimport SidebarButton from '../sidebar-button';\nimport { unlock } from '../../lock-unlock';\nimport {\n\tPATTERN_TYPES,\n\tPATTERN_DEFAULT_CATEGORY,\n\tTEMPLATE_PART_POST_TYPE,\n} from '../../utils/constants';\nimport usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';\n\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\nconst { CreatePatternModal } = unlock( editPatternsPrivateApis );\n\nexport default function AddNewPattern() {\n\tconst history = useHistory();\n\tconst { params } = useLocation();\n\tconst [ showPatternModal, setShowPatternModal ] = useState( false );\n\tconst [ showTemplatePartModal, setShowTemplatePartModal ] =\n\t\tuseState( false );\n\tconst isBlockBasedTheme = useSelect( ( select ) => {\n\t\treturn select( coreStore ).getCurrentTheme()?.is_block_theme;\n\t}, [] );\n\tconst { createPatternFromFile } = unlock( useDispatch( patternsStore ) );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst patternUploadInputRef = useRef();\n\tconst { patternCategories } = usePatternCategories();\n\n\tfunction handleCreatePattern( { pattern, categoryId } ) {\n\t\tsetShowPatternModal( false );\n\n\t\thistory.push( {\n\t\t\tpostId: pattern.id,\n\t\t\tpostType: PATTERN_TYPES.user,\n\t\t\tcategoryType: PATTERN_TYPES.theme,\n\t\t\tcategoryId,\n\t\t\tcanvas: 'edit',\n\t\t} );\n\t}\n\n\tfunction handleCreateTemplatePart( templatePart ) {\n\t\tsetShowTemplatePartModal( false );\n\n\t\t// Navigate to the created template part editor.\n\t\thistory.push( {\n\t\t\tpostId: templatePart.id,\n\t\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\t\tcanvas: 'edit',\n\t\t} );\n\t}\n\n\tfunction handleError() {\n\t\tsetShowPatternModal( false );\n\t\tsetShowTemplatePartModal( false );\n\t}\n\n\tconst controls = [\n\t\t{\n\t\t\ticon: symbol,\n\t\t\tonClick: () => setShowPatternModal( true ),\n\t\t\ttitle: __( 'Create pattern' ),\n\t\t},\n\t];\n\n\tif ( isBlockBasedTheme ) {\n\t\tcontrols.push( {\n\t\t\ticon: symbolFilled,\n\t\t\tonClick: () => setShowTemplatePartModal( true ),\n\t\t\ttitle: __( 'Create template part' ),\n\t\t} );\n\t}\n\n\tcontrols.push( {\n\t\ticon: upload,\n\t\tonClick: () => {\n\t\t\tpatternUploadInputRef.current.click();\n\t\t},\n\t\ttitle: __( 'Import pattern from JSON' ),\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<DropdownMenu\n\t\t\t\tcontrols={ controls }\n\t\t\t\ttoggleProps={ {\n\t\t\t\t\tas: SidebarButton,\n\t\t\t\t} }\n\t\t\t\ticon={ plus }\n\t\t\t\tlabel={ __( 'Create pattern' ) }\n\t\t\t/>\n\t\t\t{ showPatternModal && (\n\t\t\t\t<CreatePatternModal\n\t\t\t\t\tonClose={ () => setShowPatternModal( false ) }\n\t\t\t\t\tonSuccess={ handleCreatePattern }\n\t\t\t\t\tonError={ handleError }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showTemplatePartModal && (\n\t\t\t\t<CreateTemplatePartModal\n\t\t\t\t\tcloseModal={ () => setShowTemplatePartModal( false ) }\n\t\t\t\t\tblocks={ [] }\n\t\t\t\t\tonCreate={ handleCreateTemplatePart }\n\t\t\t\t\tonError={ handleError }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<input\n\t\t\t\ttype=\"file\"\n\t\t\t\taccept=\".json\"\n\t\t\t\thidden\n\t\t\t\tref={ patternUploadInputRef }\n\t\t\t\tonChange={ async ( event ) => {\n\t\t\t\t\tconst file = event.target.files?.[ 0 ];\n\t\t\t\t\tif ( ! file ) return;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst currentCategoryId =\n\t\t\t\t\t\t\tparams.categoryType !== TEMPLATE_PART_POST_TYPE &&\n\t\t\t\t\t\t\tpatternCategories.find(\n\t\t\t\t\t\t\t\t( category ) =>\n\t\t\t\t\t\t\t\t\tcategory.name === params.categoryId\n\t\t\t\t\t\t\t)?.id;\n\t\t\t\t\t\tconst pattern = await createPatternFromFile(\n\t\t\t\t\t\t\tfile,\n\t\t\t\t\t\t\tcurrentCategoryId\n\t\t\t\t\t\t\t\t? [ currentCategoryId ]\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// Navigate to the All patterns category for the newly created pattern\n\t\t\t\t\t\t// if we're not on that page already.\n\t\t\t\t\t\tif ( ! currentCategoryId ) {\n\t\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\t\tpath: `/patterns`,\n\t\t\t\t\t\t\t\tcategoryType: PATTERN_TYPES.theme,\n\t\t\t\t\t\t\t\tcategoryId: PATTERN_DEFAULT_CATEGORY,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The imported pattern's title.\n\t\t\t\t\t\t\t\t__( 'Imported \"%s\" from JSON.' ),\n\t\t\t\t\t\t\t\tpattern.title.raw\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\tid: 'import-pattern-success',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch ( err ) {\n\t\t\t\t\t\tcreateErrorNotice( err.message, {\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'import-pattern-error',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tevent.target.value = '';\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t</>\n\t);\n}\n","/**\n * Internal dependencies\n */\nimport SidebarNavigationItem from '../sidebar-navigation-item';\nimport { useLink } from '../routes/link';\n\nexport default function CategoryItem( {\n\tcount,\n\ticon,\n\tid,\n\tisActive,\n\tlabel,\n\ttype,\n} ) {\n\tconst linkInfo = useLink( {\n\t\tpath: '/patterns',\n\t\tcategoryType: type,\n\t\tcategoryId: id,\n\t} );\n\n\tif ( ! count ) {\n\t\treturn;\n\t}\n\n\treturn (\n\t\t<SidebarNavigationItem\n\t\t\t{ ...linkInfo }\n\t\t\ticon={ icon }\n\t\t\tsuffix={ <span>{ count }</span> }\n\t\t\taria-current={ isActive ? 'true' : undefined }\n\t\t>\n\t\t\t{ label }\n\t\t</SidebarNavigationItem>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_PART_AREA_DEFAULT_CATEGORY,\n\tTEMPLATE_PART_POST_TYPE,\n} from '../../utils/constants';\n\nconst useTemplatePartsGroupedByArea = ( items ) => {\n\tconst allItems = items || [];\n\n\tconst templatePartAreas = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).__experimentalGetDefaultTemplatePartAreas(),\n\t\t[]\n\t);\n\n\t// Create map of template areas ensuring that default areas are displayed before\n\t// any custom registered template part areas.\n\tconst knownAreas = {\n\t\theader: {},\n\t\tfooter: {},\n\t\tsidebar: {},\n\t\tuncategorized: {},\n\t};\n\n\ttemplatePartAreas.forEach(\n\t\t( templatePartArea ) =>\n\t\t\t( knownAreas[ templatePartArea.area ] = {\n\t\t\t\t...templatePartArea,\n\t\t\t\ttemplateParts: [],\n\t\t\t} )\n\t);\n\n\tconst groupedByArea = allItems.reduce( ( accumulator, item ) => {\n\t\tconst key = accumulator[ item.area ]\n\t\t\t? item.area\n\t\t\t: TEMPLATE_PART_AREA_DEFAULT_CATEGORY;\n\t\taccumulator[ key ].templateParts.push( item );\n\t\treturn accumulator;\n\t}, knownAreas );\n\n\treturn groupedByArea;\n};\n\nexport default function useTemplatePartAreas() {\n\tconst { records: templateParts, isResolving: isLoading } = useEntityRecords(\n\t\t'postType',\n\t\tTEMPLATE_PART_POST_TYPE,\n\t\t{ per_page: -1 }\n\t);\n\n\treturn {\n\t\thasTemplateParts: templateParts ? !! templateParts.length : false,\n\t\tisLoading,\n\t\ttemplatePartAreas: useTemplatePartsGroupedByArea( templateParts ),\n\t};\n}\n","/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalHeading as Heading,\n} from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { getTemplatePartIcon } from '@wordpress/editor';\nimport { __ } from '@wordpress/i18n';\nimport { getQueryArgs } from '@wordpress/url';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { file } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport AddNewPattern from '../add-new-pattern';\nimport SidebarNavigationItem from '../sidebar-navigation-item';\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport CategoryItem from './category-item';\nimport {\n\tPATTERN_DEFAULT_CATEGORY,\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n} from '../../utils/constants';\nimport { useLink } from '../routes/link';\nimport usePatternCategories from './use-pattern-categories';\nimport useTemplatePartAreas from './use-template-part-areas';\nimport { store as editSiteStore } from '../../store';\n\nfunction TemplatePartGroup( { areas, currentArea, currentType } ) {\n\treturn (\n\t\t<>\n\t\t\t<div className=\"edit-site-sidebar-navigation-screen-patterns__group-header\">\n\t\t\t\t<Heading level={ 2 }>{ __( 'Template parts' ) }</Heading>\n\t\t\t</div>\n\t\t\t<ItemGroup className=\"edit-site-sidebar-navigation-screen-patterns__group\">\n\t\t\t\t{ Object.entries( areas ).map(\n\t\t\t\t\t( [ area, { label, templateParts } ] ) => (\n\t\t\t\t\t\t<CategoryItem\n\t\t\t\t\t\t\tkey={ area }\n\t\t\t\t\t\t\tcount={ templateParts?.length }\n\t\t\t\t\t\t\ticon={ getTemplatePartIcon( area ) }\n\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\tid={ area }\n\t\t\t\t\t\t\ttype={ TEMPLATE_PART_POST_TYPE }\n\t\t\t\t\t\t\tisActive={\n\t\t\t\t\t\t\t\tcurrentArea === area &&\n\t\t\t\t\t\t\t\tcurrentType === TEMPLATE_PART_POST_TYPE\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)\n\t\t\t\t) }\n\t\t\t</ItemGroup>\n\t\t</>\n\t);\n}\n\nfunction PatternCategoriesGroup( {\n\tcategories,\n\tcurrentCategory,\n\tcurrentType,\n} ) {\n\treturn (\n\t\t<>\n\t\t\t<ItemGroup className=\"edit-site-sidebar-navigation-screen-patterns__group\">\n\t\t\t\t{ categories.map( ( category ) => (\n\t\t\t\t\t<CategoryItem\n\t\t\t\t\t\tkey={ category.name }\n\t\t\t\t\t\tcount={ category.count }\n\t\t\t\t\t\tlabel={ category.label }\n\t\t\t\t\t\ticon={ file }\n\t\t\t\t\t\tid={ category.name }\n\t\t\t\t\t\ttype=\"pattern\"\n\t\t\t\t\t\tisActive={\n\t\t\t\t\t\t\tcurrentCategory === `${ category.name }` &&\n\t\t\t\t\t\t\t( currentType === PATTERN_TYPES.theme ||\n\t\t\t\t\t\t\t\tcurrentType === PATTERN_TYPES.user )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</ItemGroup>\n\t\t</>\n\t);\n}\n\nexport default function SidebarNavigationScreenPatterns() {\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst { categoryType, categoryId } = getQueryArgs( window.location.href );\n\tconst currentCategory = categoryId || PATTERN_DEFAULT_CATEGORY;\n\tconst currentType = categoryType || PATTERN_TYPES.theme;\n\n\tconst { templatePartAreas, hasTemplateParts, isLoading } =\n\t\tuseTemplatePartAreas();\n\tconst { patternCategories, hasPatterns } = usePatternCategories();\n\tconst isBlockBasedTheme = useSelect(\n\t\t( select ) => select( coreStore ).getCurrentTheme()?.is_block_theme,\n\t\t[]\n\t);\n\tconst isTemplatePartsMode = useSelect( ( select ) => {\n\t\tconst settings = select( editSiteStore ).getSettings();\n\t\treturn !! settings.supportsTemplatePartsMode;\n\t}, [] );\n\n\tconst templatePartsLink = useLink( {\n\t\tpath: '/wp_template_part/all',\n\t\t// If a classic theme that supports template parts accessed\n\t\t// the Patterns page directly, preserve that state in the URL.\n\t\tdidAccessPatternsPage:\n\t\t\t! isBlockBasedTheme && isTemplatePartsMode ? 1 : undefined,\n\t} );\n\n\tconst footer = ! isMobileViewport ? (\n\t\t<ItemGroup>\n\t\t\t<SidebarNavigationItem\n\t\t\t\tas=\"a\"\n\t\t\t\thref=\"edit.php?post_type=wp_block\"\n\t\t\t\twithChevron\n\t\t\t>\n\t\t\t\t{ __( 'Manage all of my patterns' ) }\n\t\t\t</SidebarNavigationItem>\n\t\t\t{ ( isBlockBasedTheme || isTemplatePartsMode ) && (\n\t\t\t\t<SidebarNavigationItem withChevron { ...templatePartsLink }>\n\t\t\t\t\t{ __( 'Manage all template parts' ) }\n\t\t\t\t</SidebarNavigationItem>\n\t\t\t) }\n\t\t</ItemGroup>\n\t) : undefined;\n\n\treturn (\n\t\t<SidebarNavigationScreen\n\t\t\tisRoot={ ! isBlockBasedTheme }\n\t\t\ttitle={ __( 'Patterns' ) }\n\t\t\tdescription={ __(\n\t\t\t\t'Manage what patterns are available when editing the site.'\n\t\t\t) }\n\t\t\tactions={ <AddNewPattern /> }\n\t\t\tfooter={ footer }\n\t\t\tcontent={\n\t\t\t\t<>\n\t\t\t\t\t{ isLoading && __( 'Loading patterns…' ) }\n\t\t\t\t\t{ ! isLoading && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ ! hasTemplateParts && ! hasPatterns && (\n\t\t\t\t\t\t\t\t<ItemGroup className=\"edit-site-sidebar-navigation-screen-patterns__group\">\n\t\t\t\t\t\t\t\t\t<Item>\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'No template parts or patterns found'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</Item>\n\t\t\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ hasPatterns && (\n\t\t\t\t\t\t\t\t<PatternCategoriesGroup\n\t\t\t\t\t\t\t\t\tcategories={ patternCategories }\n\t\t\t\t\t\t\t\t\tcurrentCategory={ currentCategory }\n\t\t\t\t\t\t\t\t\tcurrentType={ currentType }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ hasTemplateParts && (\n\t\t\t\t\t\t\t\t<TemplatePartGroup\n\t\t\t\t\t\t\t\t\tareas={ templatePartAreas }\n\t\t\t\t\t\t\t\t\tcurrentArea={ currentCategory }\n\t\t\t\t\t\t\t\t\tcurrentType={ currentType }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t}\n\t\t/>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useEffect, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES,\n} from '../../utils/constants';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nconst postTypesWithoutParentTemplate = [\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES.user,\n];\n\nfunction useResolveEditedEntityAndContext( { postId, postType } ) {\n\tconst { hasLoadedAllDependencies, homepageId, url, frontPageTemplateId } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst { getSite, getUnstableBase, getEntityRecords } =\n\t\t\t\tselect( coreDataStore );\n\t\t\tconst siteData = getSite();\n\t\t\tconst base = getUnstableBase();\n\t\t\tconst templates = getEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t{\n\t\t\t\t\tper_page: -1,\n\t\t\t\t}\n\t\t\t);\n\t\t\tlet _frontPateTemplateId;\n\t\t\tif ( templates ) {\n\t\t\t\tconst frontPageTemplate = templates.find(\n\t\t\t\t\t( t ) => t.slug === 'front-page'\n\t\t\t\t);\n\t\t\t\t_frontPateTemplateId = frontPageTemplate\n\t\t\t\t\t? frontPageTemplate.id\n\t\t\t\t\t: false;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\thasLoadedAllDependencies: !! base && !! siteData,\n\t\t\t\thomepageId:\n\t\t\t\t\tsiteData?.show_on_front === 'page' &&\n\t\t\t\t\t[ 'number', 'string' ].includes(\n\t\t\t\t\t\ttypeof siteData.page_on_front\n\t\t\t\t\t)\n\t\t\t\t\t\t? siteData.page_on_front.toString()\n\t\t\t\t\t\t: null,\n\t\t\t\turl: base?.home,\n\t\t\t\tfrontPageTemplateId: _frontPateTemplateId,\n\t\t\t};\n\t\t}, [] );\n\n\t/**\n\t * This is a hook that recreates the logic to resolve a template for a given WordPress postID postTypeId\n\t * in order to match the frontend as closely as possible in the site editor.\n\t *\n\t * It is not possible to rely on the server logic because there maybe unsaved changes that impact the template resolution.\n\t */\n\tconst resolvedTemplateId = useSelect(\n\t\t( select ) => {\n\t\t\t// If we're rendering a post type that doesn't have a template\n\t\t\t// no need to resolve its template.\n\t\t\tif ( postTypesWithoutParentTemplate.includes( postType ) ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tgetEditedEntityRecord,\n\t\t\t\tgetEntityRecords,\n\t\t\t\tgetDefaultTemplateId,\n\t\t\t\t__experimentalGetTemplateForLink,\n\t\t\t} = select( coreDataStore );\n\n\t\t\tfunction resolveTemplateForPostTypeAndId(\n\t\t\t\tpostTypeToResolve,\n\t\t\t\tpostIdToResolve\n\t\t\t) {\n\t\t\t\t// For the front page, we always use the front page template if existing.\n\t\t\t\tif (\n\t\t\t\t\tpostTypeToResolve === 'page' &&\n\t\t\t\t\thomepageId === postIdToResolve\n\t\t\t\t) {\n\t\t\t\t\t// We're still checking whether the front page template exists.\n\t\t\t\t\t// Don't resolve the template yet.\n\t\t\t\t\tif ( frontPageTemplateId === undefined ) {\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !! frontPageTemplateId ) {\n\t\t\t\t\t\treturn frontPageTemplateId;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst editedEntity = getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostTypeToResolve,\n\t\t\t\t\tpostIdToResolve\n\t\t\t\t);\n\t\t\t\tif ( ! editedEntity ) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\t// First see if the post/page has an assigned template and fetch it.\n\t\t\t\tconst currentTemplateSlug = editedEntity.template;\n\t\t\t\tif ( currentTemplateSlug ) {\n\t\t\t\t\tconst currentTemplate = getEntityRecords(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tper_page: -1,\n\t\t\t\t\t\t}\n\t\t\t\t\t)?.find( ( { slug } ) => slug === currentTemplateSlug );\n\t\t\t\t\tif ( currentTemplate ) {\n\t\t\t\t\t\treturn currentTemplate.id;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// If no template is assigned, use the default template.\n\t\t\t\treturn getDefaultTemplateId( {\n\t\t\t\t\tslug: `${ postTypeToResolve }-${ editedEntity?.slug }`,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tif ( ! hasLoadedAllDependencies ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\t// If we're rendering a specific page, post... we need to resolve its template.\n\t\t\tif ( postType && postId ) {\n\t\t\t\treturn resolveTemplateForPostTypeAndId( postType, postId );\n\t\t\t}\n\n\t\t\t// If we're rendering the home page, and we have a static home page, resolve its template.\n\t\t\tif ( homepageId ) {\n\t\t\t\treturn resolveTemplateForPostTypeAndId( 'page', homepageId );\n\t\t\t}\n\n\t\t\t// If we're not rendering a specific page, use the front page template.\n\t\t\tif ( url ) {\n\t\t\t\tconst template = __experimentalGetTemplateForLink( url );\n\t\t\t\treturn template?.id;\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\thomepageId,\n\t\t\thasLoadedAllDependencies,\n\t\t\turl,\n\t\t\tpostId,\n\t\t\tpostType,\n\t\t\tfrontPageTemplateId,\n\t\t]\n\t);\n\n\tconst context = useMemo( () => {\n\t\tif ( postTypesWithoutParentTemplate.includes( postType ) ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tif ( postType && postId ) {\n\t\t\treturn { postType, postId };\n\t\t}\n\n\t\tif ( homepageId ) {\n\t\t\treturn { postType: 'page', postId: homepageId };\n\t\t}\n\n\t\treturn {};\n\t}, [ homepageId, postType, postId ] );\n\n\tif ( postTypesWithoutParentTemplate.includes( postType ) ) {\n\t\treturn { isReady: true, postType, postId, context };\n\t}\n\n\tif ( hasLoadedAllDependencies ) {\n\t\treturn {\n\t\t\tisReady: resolvedTemplateId !== undefined,\n\t\t\tpostType: TEMPLATE_POST_TYPE,\n\t\t\tpostId: resolvedTemplateId,\n\t\t\tcontext,\n\t\t};\n\t}\n\n\treturn { isReady: false };\n}\n\nexport function useInitEditedEntity( params ) {\n\tconst { postType, postId, context, isReady } =\n\t\tuseResolveEditedEntityAndContext( params );\n\n\tconst { setEditedEntity } = useDispatch( editSiteStore );\n\n\tuseEffect( () => {\n\t\tif ( isReady ) {\n\t\t\tsetEditedEntity( postType, postId, context );\n\t\t}\n\t}, [ isReady, postType, postId, context, setEditedEntity ] );\n}\n\nexport default function useInitEditedEntityFromURL() {\n\tconst { params = {} } = useLocation();\n\treturn useInitEditedEntity( params );\n}\n","import { noCase, Options } from \"no-case\";\nimport { upperCaseFirst } from \"upper-case-first\";\n\nexport { Options };\n\nexport function sentenceCaseTransform(input: string, index: number) {\n  const result = input.toLowerCase();\n  if (index === 0) return upperCaseFirst(result);\n  return result;\n}\n\nexport function sentenceCase(input: string, options: Options = {}) {\n  return noCase(input, {\n    delimiter: \" \",\n    transform: sentenceCaseTransform,\n    ...options,\n  });\n}\n","/**\n * Upper case the first character of an input string.\n */\nexport function upperCaseFirst(input: string) {\n  return input.charAt(0).toUpperCase() + input.substr(1);\n}\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst chevronUp = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"M6.5 12.4L12 8l5.5 4.4-.9 1.2L12 10l-4.5 3.6-1-1.2z\" />\n\t</SVG>\n);\n\nexport default chevronUp;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst chevronDown = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z\" />\n\t</SVG>\n);\n\nexport default chevronDown;\n","/**\n * WordPress dependencies\n */\nimport { __experimentalUseNavigator as useNavigator } from '@wordpress/components';\nimport { useEffect, useRef } from '@wordpress/element';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_TYPES,\n} from '../../utils/constants';\n\nconst { useLocation, useHistory } = unlock( routerPrivateApis );\n\nexport function getPathFromURL( urlParams ) {\n\tlet path = urlParams?.path ?? '/';\n\n\t// Compute the navigator path based on the URL params.\n\tif ( urlParams?.postType && urlParams?.postId ) {\n\t\tswitch ( urlParams.postType ) {\n\t\t\tcase PATTERN_TYPES.user:\n\t\t\tcase TEMPLATE_POST_TYPE:\n\t\t\tcase TEMPLATE_PART_POST_TYPE:\n\t\t\tcase 'page':\n\t\t\t\tpath = `/${ encodeURIComponent(\n\t\t\t\t\turlParams.postType\n\t\t\t\t) }/${ encodeURIComponent( urlParams.postId ) }`;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tpath = `/navigation/${ encodeURIComponent(\n\t\t\t\t\turlParams.postType\n\t\t\t\t) }/${ encodeURIComponent( urlParams.postId ) }`;\n\t\t}\n\t}\n\n\treturn path;\n}\n\nfunction isSubset( subset, superset ) {\n\treturn Object.entries( subset ).every( ( [ key, value ] ) => {\n\t\treturn superset[ key ] === value;\n\t} );\n}\n\nexport default function useSyncPathWithURL() {\n\tconst history = useHistory();\n\tconst { params: urlParams } = useLocation();\n\tconst {\n\t\tlocation: navigatorLocation,\n\t\tparams: navigatorParams,\n\t\tgoTo,\n\t} = useNavigator();\n\tconst isMounting = useRef( true );\n\n\tuseEffect(\n\t\t() => {\n\t\t\t// The navigatorParams are only initially filled properly when the\n\t\t\t// navigator screens mount. so we ignore the first synchronisation.\n\t\t\tif ( isMounting.current ) {\n\t\t\t\tisMounting.current = false;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfunction updateUrlParams( newUrlParams ) {\n\t\t\t\tif ( isSubset( newUrlParams, urlParams ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst updatedParams = {\n\t\t\t\t\t...urlParams,\n\t\t\t\t\t...newUrlParams,\n\t\t\t\t};\n\t\t\t\thistory.push( updatedParams );\n\t\t\t}\n\n\t\t\tif ( navigatorParams?.postType && navigatorParams?.postId ) {\n\t\t\t\tupdateUrlParams( {\n\t\t\t\t\tpostType: navigatorParams?.postType,\n\t\t\t\t\tpostId: navigatorParams?.postId,\n\t\t\t\t\tpath: undefined,\n\t\t\t\t} );\n\t\t\t} else if (\n\t\t\t\tnavigatorLocation.path.startsWith( '/page/' ) &&\n\t\t\t\tnavigatorParams?.postId\n\t\t\t) {\n\t\t\t\tupdateUrlParams( {\n\t\t\t\t\tpostType: 'page',\n\t\t\t\t\tpostId: navigatorParams?.postId,\n\t\t\t\t\tpath: undefined,\n\t\t\t\t} );\n\t\t\t} else if ( navigatorLocation.path === '/patterns' ) {\n\t\t\t\tupdateUrlParams( {\n\t\t\t\t\tpostType: undefined,\n\t\t\t\t\tpostId: undefined,\n\t\t\t\t\tcanvas: undefined,\n\t\t\t\t\tpath: navigatorLocation.path,\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tupdateUrlParams( {\n\t\t\t\t\tpostType: undefined,\n\t\t\t\t\tpostId: undefined,\n\t\t\t\t\tcategoryType: undefined,\n\t\t\t\t\tcategoryId: undefined,\n\t\t\t\t\tpath:\n\t\t\t\t\t\tnavigatorLocation.path === '/'\n\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t: navigatorLocation.path,\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t// Trigger only when navigator changes to prevent infinite loops.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[ navigatorLocation?.path, navigatorParams ]\n\t);\n\n\tuseEffect(\n\t\t() => {\n\t\t\tconst path = getPathFromURL( urlParams );\n\t\t\tif ( navigatorLocation.path !== path ) {\n\t\t\t\tgoTo( path );\n\t\t\t}\n\t\t},\n\t\t// Trigger only when URL changes to prevent infinite loops.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[ urlParams ]\n\t);\n}\n","/**\n * WordPress dependencies\n */\n\nimport { chevronUp, chevronDown, moreVertical } from '@wordpress/icons';\nimport { DropdownMenu, MenuItem, MenuGroup } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useCallback } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { BlockTitle, store as blockEditorStore } from '@wordpress/block-editor';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tplacement: 'bottom-start',\n};\n\n/**\n * Internal dependencies\n */\nimport {\n\tisPreviewingTheme,\n\tcurrentlyPreviewingTheme,\n} from '../../utils/is-previewing-theme';\nimport { unlock } from '../../lock-unlock';\nimport { getPathFromURL } from '../sync-state-with-url/use-sync-path-with-url';\n\nconst { useLocation, useHistory } = unlock( routerPrivateApis );\n\nexport default function LeafMoreMenu( props ) {\n\tconst location = useLocation();\n\tconst history = useHistory();\n\tconst { block } = props;\n\tconst { clientId } = block;\n\tconst { moveBlocksDown, moveBlocksUp, removeBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst removeLabel = sprintf(\n\t\t/* translators: %s: block name */\n\t\t__( 'Remove %s' ),\n\t\tBlockTitle( { clientId, maximumLength: 25 } )\n\t);\n\n\tconst goToLabel = sprintf(\n\t\t/* translators: %s: block name */\n\t\t__( 'Go to %s' ),\n\t\tBlockTitle( { clientId, maximumLength: 25 } )\n\t);\n\n\tconst rootClientId = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId } = select( blockEditorStore );\n\n\t\t\treturn getBlockRootClientId( clientId );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst onGoToPage = useCallback(\n\t\t( selectedBlock ) => {\n\t\t\tconst { attributes, name } = selectedBlock;\n\t\t\tif (\n\t\t\t\tattributes.kind === 'post-type' &&\n\t\t\t\tattributes.id &&\n\t\t\t\tattributes.type &&\n\t\t\t\thistory\n\t\t\t) {\n\t\t\t\thistory.push(\n\t\t\t\t\t{\n\t\t\t\t\t\tpostType: attributes.type,\n\t\t\t\t\t\tpostId: attributes.id,\n\t\t\t\t\t\t...( isPreviewingTheme() && {\n\t\t\t\t\t\t\twp_theme_preview: currentlyPreviewingTheme(),\n\t\t\t\t\t\t} ),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tbackPath: getPathFromURL( location.params ),\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t\tif ( name === 'core/page-list-item' && attributes.id && history ) {\n\t\t\t\thistory.push(\n\t\t\t\t\t{\n\t\t\t\t\t\tpostType: 'page',\n\t\t\t\t\t\tpostId: attributes.id,\n\t\t\t\t\t\t...( isPreviewingTheme() && {\n\t\t\t\t\t\t\twp_theme_preview: currentlyPreviewingTheme(),\n\t\t\t\t\t\t} ),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tbackPath: getPathFromURL( location.params ),\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[ history ]\n\t);\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\ticon={ moreVertical }\n\t\t\tlabel={ __( 'Options' ) }\n\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\tnoIcons\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\ticon={ chevronUp }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tmoveBlocksUp( [ clientId ], rootClientId );\n\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Move up' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tmoveBlocksDown( [ clientId ], rootClientId );\n\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Move down' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t{ block.attributes?.type === 'page' &&\n\t\t\t\t\t\t\tblock.attributes?.id && (\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tonGoToPage( block );\n\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ goToLabel }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tremoveBlocks( [ clientId ], false );\n\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ removeLabel }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tBlockList,\n} from '@wordpress/block-editor';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { createBlock } from '@wordpress/blocks';\nimport { useCallback } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport LeafMoreMenu from './leaf-more-menu';\n\nconst { PrivateListView } = unlock( blockEditorPrivateApis );\n\n// Needs to be kept in sync with the query used at packages/block-library/src/page-list/edit.js.\nconst MAX_PAGE_COUNT = 100;\nconst PAGES_QUERY = [\n\t'postType',\n\t'page',\n\t{\n\t\tper_page: MAX_PAGE_COUNT,\n\t\t_fields: [ 'id', 'link', 'menu_order', 'parent', 'title', 'type' ],\n\t\t// TODO: When https://core.trac.wordpress.org/ticket/39037 REST API support for multiple orderby\n\t\t// values is resolved, update 'orderby' to [ 'menu_order', 'post_title' ] to provide a consistent\n\t\t// sort.\n\t\torderby: 'menu_order',\n\t\torder: 'asc',\n\t},\n];\n\nexport default function NavigationMenuContent( { rootClientId } ) {\n\tconst { listViewRootClientId, isLoading } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tareInnerBlocksControlled,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockOrder,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { isResolving } = select( coreStore );\n\n\t\t\tconst blockClientIds = getBlockOrder( rootClientId );\n\n\t\t\tconst hasOnlyPageListBlock =\n\t\t\t\tblockClientIds.length === 1 &&\n\t\t\t\tgetBlockName( blockClientIds[ 0 ] ) === 'core/page-list';\n\t\t\tconst pageListHasBlocks =\n\t\t\t\thasOnlyPageListBlock &&\n\t\t\t\tgetBlockCount( blockClientIds[ 0 ] ) > 0;\n\n\t\t\tconst isLoadingPages = isResolving(\n\t\t\t\t'getEntityRecords',\n\t\t\t\tPAGES_QUERY\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tlistViewRootClientId: pageListHasBlocks\n\t\t\t\t\t? blockClientIds[ 0 ]\n\t\t\t\t\t: rootClientId,\n\t\t\t\t// This is a small hack to wait for the navigation block\n\t\t\t\t// to actually load its inner blocks.\n\t\t\t\tisLoading:\n\t\t\t\t\t! areInnerBlocksControlled( rootClientId ) ||\n\t\t\t\t\tisLoadingPages,\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\tconst { replaceBlock, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst offCanvasOnselect = useCallback(\n\t\t( block ) => {\n\t\t\tif (\n\t\t\t\tblock.name === 'core/navigation-link' &&\n\t\t\t\t! block.attributes.url\n\t\t\t) {\n\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\treplaceBlock(\n\t\t\t\t\tblock.clientId,\n\t\t\t\t\tcreateBlock( 'core/navigation-link', block.attributes )\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[ __unstableMarkNextChangeAsNotPersistent, replaceBlock ]\n\t);\n\n\t// The hidden block is needed because it makes block edit side effects trigger.\n\t// For example a navigation page list load its items has an effect on edit to load its items.\n\treturn (\n\t\t<>\n\t\t\t{ ! isLoading && (\n\t\t\t\t<PrivateListView\n\t\t\t\t\trootClientId={ listViewRootClientId }\n\t\t\t\t\tonSelect={ offCanvasOnselect }\n\t\t\t\t\tblockSettingsMenu={ LeafMoreMenu }\n\t\t\t\t\tshowAppender={ false }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<div className=\"edit-site-sidebar-navigation-screen-navigation-menus__helper-block-editor\">\n\t\t\t\t<BlockList />\n\t\t\t</div>\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { BlockEditorProvider } from '@wordpress/block-editor';\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport NavigationMenuContent from '../sidebar-navigation-screen-navigation-menus/navigation-menu-content';\n\nconst noop = () => {};\n\nexport default function NavigationMenuEditor( { navigationMenuId } ) {\n\tconst { storedSettings } = useSelect( ( select ) => {\n\t\tconst { getSettings } = unlock( select( editSiteStore ) );\n\n\t\treturn {\n\t\t\tstoredSettings: getSettings(),\n\t\t};\n\t}, [] );\n\n\tconst blocks = useMemo( () => {\n\t\tif ( ! navigationMenuId ) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn [ createBlock( 'core/navigation', { ref: navigationMenuId } ) ];\n\t}, [ navigationMenuId ] );\n\n\tif ( ! navigationMenuId || ! blocks?.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<BlockEditorProvider\n\t\t\tsettings={ storedSettings }\n\t\t\tvalue={ blocks }\n\t\t\tonChange={ noop }\n\t\t\tonInput={ noop }\n\t\t>\n\t\t\t<div className=\"edit-site-sidebar-navigation-screen-navigation-menus__content\">\n\t\t\t\t<NavigationMenuContent rootClientId={ blocks[ 0 ].clientId } />\n\t\t\t</div>\n\t\t</BlockEditorProvider>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { NAVIGATION_POST_TYPE } from '../../utils/constants';\n\nexport default function useNavigationMenuTitle( id ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! id ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst editedRecord = select( coreStore ).getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tNAVIGATION_POST_TYPE,\n\t\t\t\tid\n\t\t\t);\n\n\t\t\t// Do not display a 'trashed' navigation menu.\n\t\t\treturn editedRecord.status === 'trash'\n\t\t\t\t? undefined\n\t\t\t\t: editedRecord.title;\n\t\t},\n\t\t[ id ]\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { __experimentalHeading as Heading } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport NavigationMenuEditor from '../sidebar-navigation-screen-navigation-menu/navigation-menu-editor';\nimport useNavigationMenuTitle from './use-navigation-menu-title';\n\nexport default function TemplatePartNavigationMenu( { id } ) {\n\tconst title = useNavigationMenuTitle( id );\n\n\tif ( ! id || title === undefined ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Heading\n\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen-template-part-navigation-menu__title\"\n\t\t\t\tsize=\"11\"\n\t\t\t\tupperCase={ true }\n\t\t\t\tweight={ 500 }\n\t\t\t>\n\t\t\t\t{ title || __( 'Navigation' ) }\n\t\t\t</Heading>\n\t\t\t<NavigationMenuEditor navigationMenuId={ id } />\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationItem from '../sidebar-navigation-item';\nimport useNavigationMenuTitle from './use-navigation-menu-title';\nimport { useLink } from '../routes/link';\nimport { NAVIGATION_POST_TYPE } from '../../utils/constants';\n\nexport default function TemplatePartNavigationMenuListItem( { id } ) {\n\tconst title = useNavigationMenuTitle( id );\n\n\tconst linkInfo = useLink( {\n\t\tpostId: id,\n\t\tpostType: NAVIGATION_POST_TYPE,\n\t} );\n\n\tif ( ! id || title === undefined ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<SidebarNavigationItem withChevron { ...linkInfo }>\n\t\t\t{ title || __( '(no title)' ) }\n\t\t</SidebarNavigationItem>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __experimentalItemGroup as ItemGroup } from '@wordpress/components';\n/**\n * Internal dependencies\n */\nimport TemplatePartNavigationMenuListItem from './template-part-navigation-menu-list-item';\n\nexport default function TemplatePartNavigationMenuList( { menus } ) {\n\treturn (\n\t\t<ItemGroup className=\"edit-site-sidebar-navigation-screen-template-part-navigation-menu-list\">\n\t\t\t{ menus.map( ( menuId ) => (\n\t\t\t\t<TemplatePartNavigationMenuListItem\n\t\t\t\t\tkey={ menuId }\n\t\t\t\t\tid={ menuId }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</ItemGroup>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { __experimentalHeading as Heading } from '@wordpress/components';\n/**\n * Internal dependencies\n */\nimport TemplatePartNavigationMenu from './template-part-navigation-menu';\nimport TemplatePartNavigationMenuList from './template-part-navigation-menu-list';\n\nexport default function TemplatePartNavigationMenus( { menus } ) {\n\tif ( ! menus.length ) return null;\n\n\t// if there is a single menu then render TemplatePartNavigationMenu\n\tif ( menus.length === 1 ) {\n\t\treturn <TemplatePartNavigationMenu id={ menus[ 0 ] } />;\n\t}\n\n\t// if there are multiple menus then render TemplatePartNavigationMenuList\n\treturn (\n\t\t<>\n\t\t\t<Heading\n\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen-template-part-navigation-menu__title\"\n\t\t\t\tsize=\"11\"\n\t\t\t\tupperCase={ true }\n\t\t\t\tweight={ 500 }\n\t\t\t>\n\t\t\t\t{ __( 'Navigation' ) }\n\t\t\t</Heading>\n\t\t\t<TemplatePartNavigationMenuList menus={ menus } />\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { parse } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport TemplatePartNavigationMenus from './template-part-navigation-menus';\nimport useEditedEntityRecord from '../use-edited-entity-record';\nimport { TEMPLATE_PART_POST_TYPE } from '../../utils/constants';\n\nfunction getBlocksFromRecord( record ) {\n\tif ( record?.blocks ) {\n\t\treturn record?.blocks;\n\t}\n\n\treturn record?.content && typeof record.content !== 'function'\n\t\t? parse( record.content )\n\t\t: [];\n}\n\n/**\n * Retrieves a list of specific blocks from a given tree of blocks.\n *\n * @param {string} targetBlockType The name of the block type to find.\n * @param {Array}  blocks          A list of blocks from a template part entity.\n *\n * @return {Array} A list of any navigation blocks found in the blocks.\n */\nfunction getBlocksOfTypeFromBlocks( targetBlockType, blocks ) {\n\tif ( ! targetBlockType || ! blocks?.length ) {\n\t\treturn [];\n\t}\n\n\tconst findInBlocks = ( _blocks ) => {\n\t\tif ( ! _blocks ) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst navigationBlocks = [];\n\n\t\tfor ( const block of _blocks ) {\n\t\t\tif ( block.name === targetBlockType ) {\n\t\t\t\tnavigationBlocks.push( block );\n\t\t\t}\n\n\t\t\tif ( block?.innerBlocks ) {\n\t\t\t\tconst innerNavigationBlocks = findInBlocks( block.innerBlocks );\n\n\t\t\t\tif ( innerNavigationBlocks.length ) {\n\t\t\t\t\tnavigationBlocks.push( ...innerNavigationBlocks );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn navigationBlocks;\n\t};\n\n\treturn findInBlocks( blocks );\n}\n\nexport default function useNavigationMenuContent( postType, postId ) {\n\tconst { record } = useEditedEntityRecord( postType, postId );\n\n\t// Only managing navigation menus in template parts is supported\n\t// to match previous behaviour. This could potentially be expanded\n\t// to patterns as well.\n\tif ( postType !== TEMPLATE_PART_POST_TYPE ) {\n\t\treturn;\n\t}\n\n\tconst blocks = getBlocksFromRecord( record );\n\tconst navigationBlocks = getBlocksOfTypeFromBlocks(\n\t\t'core/navigation',\n\t\tblocks\n\t);\n\n\tif ( ! navigationBlocks.length ) {\n\t\treturn;\n\t}\n\n\tconst navigationMenuIds = navigationBlocks?.map(\n\t\t( block ) => block.attributes.ref\n\t);\n\n\t// Dedupe the Navigation blocks, as you can have multiple navigation blocks in the template.\n\t// Also, filter out undefined values, as blocks don't have an id when initially added.\n\tconst uniqueNavigationMenuIds = [ ...new Set( navigationMenuIds ) ].filter(\n\t\t( menuId ) => menuId\n\t);\n\n\tif ( ! uniqueNavigationMenuIds?.length ) {\n\t\treturn;\n\t}\n\n\treturn <TemplatePartNavigationMenus menus={ uniqueNavigationMenuIds } />;\n}\n","/**\n * WordPress dependencies\n */\nimport { __experimentalUseNavigator as useNavigator } from '@wordpress/components';\nimport { useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { pencil } from '@wordpress/icons';\nimport { getQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport SidebarButton from '../sidebar-button';\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport useInitEditedEntityFromURL from '../sync-state-with-url/use-init-edited-entity-from-url';\nimport usePatternDetails from './use-pattern-details';\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport TemplateActions from '../template-actions';\nimport { TEMPLATE_PART_POST_TYPE } from '../../utils/constants';\n\nexport default function SidebarNavigationScreenPattern() {\n\tconst navigator = useNavigator();\n\tconst {\n\t\tparams: { postType, postId },\n\t} = navigator;\n\tconst { categoryType } = getQueryArgs( window.location.href );\n\tconst { setCanvasMode } = unlock( useDispatch( editSiteStore ) );\n\n\tuseInitEditedEntityFromURL();\n\n\tconst patternDetails = usePatternDetails( postType, postId );\n\n\t// The absence of a category type in the query params for template parts\n\t// indicates the user has arrived at the template part via the \"manage all\"\n\t// page and the back button should return them to that list page.\n\tconst backPath =\n\t\t! categoryType && postType === TEMPLATE_PART_POST_TYPE\n\t\t\t? '/wp_template_part/all'\n\t\t\t: '/patterns';\n\n\treturn (\n\t\t<SidebarNavigationScreen\n\t\t\tactions={\n\t\t\t\t<>\n\t\t\t\t\t<TemplateActions\n\t\t\t\t\t\tpostType={ postType }\n\t\t\t\t\t\tpostId={ postId }\n\t\t\t\t\t\ttoggleProps={ { as: SidebarButton } }\n\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\tnavigator.goTo( backPath );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t<SidebarButton\n\t\t\t\t\t\tonClick={ () => setCanvasMode( 'edit' ) }\n\t\t\t\t\t\tlabel={ __( 'Edit' ) }\n\t\t\t\t\t\ticon={ pencil }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t}\n\t\t\tbackPath={ backPath }\n\t\t\t{ ...patternDetails }\n\t\t/>\n\t);\n}\n","/**\n * External dependencies\n */\nimport { sentenceCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useAddedBy } from '../list/added-by';\nimport useEditedEntityRecord from '../use-edited-entity-record';\nimport useNavigationMenuContent from './use-navigation-menu-content';\nimport SidebarNavigationScreenDetailsFooter from '../sidebar-navigation-screen-details-footer';\nimport {\n\tSidebarNavigationScreenDetailsPanel,\n\tSidebarNavigationScreenDetailsPanelRow,\n\tSidebarNavigationScreenDetailsPanelLabel,\n\tSidebarNavigationScreenDetailsPanelValue,\n} from '../sidebar-navigation-screen-details-panel';\nimport {\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_SYNC_TYPES,\n\tTEMPLATE_ORIGINS,\n} from '../../utils/constants';\n\nexport default function usePatternDetails( postType, postId ) {\n\tconst { getDescription, getTitle, record } = useEditedEntityRecord(\n\t\tpostType,\n\t\tpostId\n\t);\n\tconst templatePartAreas = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).__experimentalGetDefaultTemplatePartAreas(),\n\t\t[]\n\t);\n\tconst { currentTheme, userPatternCategories } = useSelect( ( select ) => {\n\t\tconst { getCurrentTheme, getUserPatternCategories } =\n\t\t\tselect( coreStore );\n\n\t\treturn {\n\t\t\tcurrentTheme: getCurrentTheme(),\n\t\t\tuserPatternCategories: getUserPatternCategories(),\n\t\t};\n\t}, [] );\n\n\tconst addedBy = useAddedBy( postType, postId );\n\tconst isAddedByActiveTheme =\n\t\taddedBy.type === 'theme' && record.theme === currentTheme?.stylesheet;\n\tconst title = getTitle();\n\tlet description = getDescription();\n\n\tif ( ! description && addedBy.text ) {\n\t\tdescription =\n\t\t\tpostType === PATTERN_TYPES.user\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t// translators: %s: pattern title e.g: \"Header\".\n\t\t\t\t\t\t__( 'This is the %s pattern.' ),\n\t\t\t\t\t\tgetTitle()\n\t\t\t\t  )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t// translators: %s: template part title e.g: \"Header\".\n\t\t\t\t\t\t__( 'This is the %s template part.' ),\n\t\t\t\t\t\tgetTitle()\n\t\t\t\t  );\n\t}\n\n\tif ( ! description && postType === PATTERN_TYPES.user && record?.title ) {\n\t\tdescription = sprintf(\n\t\t\t// translators: %s: user created pattern title e.g. \"Footer\".\n\t\t\t__( 'This is the %s pattern.' ),\n\t\t\trecord.title\n\t\t);\n\t}\n\n\tconst footer = record?.modified ? (\n\t\t<SidebarNavigationScreenDetailsFooter record={ record } />\n\t) : null;\n\n\tconst details = [];\n\n\tif (\n\t\tpostType === PATTERN_TYPES.user ||\n\t\tpostType === TEMPLATE_PART_POST_TYPE\n\t) {\n\t\tdetails.push( {\n\t\t\tlabel: __( 'Syncing' ),\n\t\t\tvalue:\n\t\t\t\trecord.wp_pattern_sync_status === PATTERN_SYNC_TYPES.unsynced\n\t\t\t\t\t? __( 'Not synced' )\n\t\t\t\t\t: __( 'Fully synced' ),\n\t\t} );\n\n\t\tif ( record.wp_pattern_category?.length === 0 ) {\n\t\t\tdetails.push( {\n\t\t\t\tlabel: __( 'Categories' ),\n\t\t\t\tvalue: __( 'Uncategorized' ),\n\t\t\t} );\n\t\t}\n\t\tif ( record.wp_pattern_category?.length > 0 ) {\n\t\t\tconst patternCategories = new Map();\n\t\t\tuserPatternCategories.forEach( ( userCategory ) =>\n\t\t\t\tpatternCategories.set( userCategory.id, userCategory )\n\t\t\t);\n\n\t\t\tconst categories = record.wp_pattern_category\n\t\t\t\t.filter( ( category ) => patternCategories.get( category ) )\n\t\t\t\t.map( ( category ) => patternCategories.get( category ).label );\n\n\t\t\tdetails.push( {\n\t\t\t\tlabel: __( 'Categories' ),\n\t\t\t\tvalue: categories.length > 0 ? categories.join( ', ' ) : '',\n\t\t\t} );\n\t\t}\n\t}\n\n\tif ( postType === TEMPLATE_PART_POST_TYPE ) {\n\t\tconst templatePartArea = templatePartAreas.find(\n\t\t\t( area ) => area.area === record.area\n\t\t);\n\n\t\tlet areaDetailValue = templatePartArea?.label;\n\n\t\tif ( ! areaDetailValue ) {\n\t\t\tareaDetailValue = record.area\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t// translators: %s: Sentenced cased template part area e.g: \"My custom area\".\n\t\t\t\t\t\t__( '%s (removed)' ),\n\t\t\t\t\t\tsentenceCase( record.area )\n\t\t\t\t  )\n\t\t\t\t: __( 'None' );\n\t\t}\n\n\t\tdetails.push( { label: __( 'Area' ), value: areaDetailValue } );\n\t}\n\n\tif (\n\t\tpostType === TEMPLATE_PART_POST_TYPE &&\n\t\taddedBy.text &&\n\t\t! isAddedByActiveTheme\n\t) {\n\t\tdetails.push( {\n\t\t\tlabel: __( 'Added by' ),\n\t\t\tvalue: (\n\t\t\t\t<span className=\"edit-site-sidebar-navigation-screen-pattern__added-by-description-author\">\n\t\t\t\t\t{ addedBy.text }\n\t\t\t\t</span>\n\t\t\t),\n\t\t} );\n\t}\n\n\tif (\n\t\tpostType === TEMPLATE_PART_POST_TYPE &&\n\t\taddedBy.text &&\n\t\t( record.origin === TEMPLATE_ORIGINS.plugin ||\n\t\t\trecord.has_theme_file === true )\n\t) {\n\t\tdetails.push( {\n\t\t\tlabel: __( 'Customized' ),\n\t\t\tvalue: (\n\t\t\t\t<span className=\"edit-site-sidebar-navigation-screen-pattern__added-by-description-customized\">\n\t\t\t\t\t{ addedBy.isCustomized ? __( 'Yes' ) : __( 'No' ) }\n\t\t\t\t</span>\n\t\t\t),\n\t\t} );\n\t}\n\n\tconst content = (\n\t\t<>\n\t\t\t{ useNavigationMenuContent( postType, postId ) }\n\t\t\t{ !! details.length && (\n\t\t\t\t<SidebarNavigationScreenDetailsPanel\n\t\t\t\t\tspacing={ 5 }\n\t\t\t\t\ttitle={ __( 'Details' ) }\n\t\t\t\t>\n\t\t\t\t\t{ details.map( ( { label, value } ) => (\n\t\t\t\t\t\t<SidebarNavigationScreenDetailsPanelRow key={ label }>\n\t\t\t\t\t\t\t<SidebarNavigationScreenDetailsPanelLabel>\n\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t</SidebarNavigationScreenDetailsPanelLabel>\n\t\t\t\t\t\t\t<SidebarNavigationScreenDetailsPanelValue>\n\t\t\t\t\t\t\t\t{ value }\n\t\t\t\t\t\t\t</SidebarNavigationScreenDetailsPanelValue>\n\t\t\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t\t\t) ) }\n\t\t\t\t</SidebarNavigationScreenDetailsPanel>\n\t\t\t) }\n\t\t</>\n\t);\n\n\treturn { title, description, content, footer };\n}\n","// This requested is preloaded in `gutenberg_preload_navigation_posts`.\n// As unbounded queries are limited to 100 by `fetchAllMiddleware`\n// on apiFetch this query is limited to 100.\n// These parameters must be kept aligned with those in\n// lib/compat/wordpress-6.3/navigation-block-preloading.php\n// and\n// block-library/src/navigation/constants.js\nexport const PRELOADED_NAVIGATION_MENUS_QUERY = {\n\tper_page: 100,\n\tstatus: [ 'publish', 'draft' ],\n\torder: 'desc',\n\torderby: 'date',\n};\n","/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n\tTextControl,\n\tModal,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\n\nconst notEmptyString = ( testString ) => testString?.trim()?.length > 0;\n\nexport default function RenameModal( { menuTitle, onClose, onSave } ) {\n\tconst [ editedMenuTitle, setEditedMenuTitle ] = useState( menuTitle );\n\n\tconst titleHasChanged = editedMenuTitle !== menuTitle;\n\n\tconst isEditedMenuTitleValid =\n\t\ttitleHasChanged && notEmptyString( editedMenuTitle );\n\n\treturn (\n\t\t<Modal title={ __( 'Rename' ) } onRequestClose={ onClose }>\n\t\t\t<form className=\"sidebar-navigation__rename-modal-form\">\n\t\t\t\t<VStack spacing=\"3\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvalue={ editedMenuTitle }\n\t\t\t\t\t\tplaceholder={ __( 'Navigation title' ) }\n\t\t\t\t\t\tonChange={ setEditedMenuTitle }\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tdisabled={ ! isEditedMenuTitleValid }\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tonClick={ ( e ) => {\n\t\t\t\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\t\t\t\tif ( ! isEditedMenuTitleValid ) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonSave( { title: editedMenuTitle } );\n\n\t\t\t\t\t\t\t\t// Immediate close avoids ability to hit save multiple times.\n\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __experimentalConfirmDialog as ConfirmDialog } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nexport default function RenameModal( { onClose, onConfirm } ) {\n\treturn (\n\t\t<ConfirmDialog\n\t\t\tisOpen={ true }\n\t\t\tonConfirm={ ( e ) => {\n\t\t\t\te.preventDefault();\n\t\t\t\tonConfirm();\n\n\t\t\t\t// Immediate close avoids ability to hit delete multiple times.\n\t\t\t\tonClose();\n\t\t\t} }\n\t\t\tonCancel={ onClose }\n\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t>\n\t\t\t{ __( 'Are you sure you want to delete this Navigation menu?' ) }\n\t\t</ConfirmDialog>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { DropdownMenu, MenuItem, MenuGroup } from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport RenameModal from './rename-modal';\nimport DeleteModal from './delete-modal';\n\nconst POPOVER_PROPS = {\n\tposition: 'bottom right',\n};\n\nexport default function ScreenNavigationMoreMenu( props ) {\n\tconst { onDelete, onSave, onDuplicate, menuTitle } = props;\n\n\tconst [ renameModalOpen, setRenameModalOpen ] = useState( false );\n\tconst [ deleteModalOpen, setDeleteModalOpen ] = useState( false );\n\n\tconst closeModals = () => {\n\t\tsetRenameModalOpen( false );\n\t\tsetDeleteModalOpen( false );\n\t};\n\tconst openRenameModal = () => setRenameModalOpen( true );\n\tconst openDeleteModal = () => setDeleteModalOpen( true );\n\n\treturn (\n\t\t<>\n\t\t\t<DropdownMenu\n\t\t\t\tclassName=\"sidebar-navigation__more-menu\"\n\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\ticon={ moreVertical }\n\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t>\n\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\topenRenameModal();\n\t\t\t\t\t\t\t\t\t// Close the dropdown after opening the modal.\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Rename' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tonDuplicate();\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\topenDeleteModal();\n\n\t\t\t\t\t\t\t\t\t// Close the dropdown after opening the modal.\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</DropdownMenu>\n\n\t\t\t{ deleteModalOpen && (\n\t\t\t\t<DeleteModal onClose={ closeModals } onConfirm={ onDelete } />\n\t\t\t) }\n\n\t\t\t{ renameModalOpen && (\n\t\t\t\t<RenameModal\n\t\t\t\t\tonClose={ closeModals }\n\t\t\t\t\tmenuTitle={ menuTitle }\n\t\t\t\t\tonSave={ onSave }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n// Copied from packages/block-library/src/navigation/edit/navigation-menu-selector.js.\nexport default function buildNavigationLabel( title, id, status ) {\n\tif ( ! title?.rendered ) {\n\t\t/* translators: %s is the index of the menu in the list of menus. */\n\t\treturn sprintf( __( '(no title %s)' ), id );\n\t}\n\n\tif ( status === 'publish' ) {\n\t\treturn decodeEntities( title?.rendered );\n\t}\n\n\treturn sprintf(\n\t\t// translators: %1s: title of the menu; %2s: status of the menu (draft, pending, etc.).\n\t\t__( '%1$s (%2$s)' ),\n\t\tdecodeEntities( title?.rendered ),\n\t\tstatus\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { pencil } from '@wordpress/icons';\n/**\n * Internal dependencies\n */\nimport SidebarButton from '../sidebar-button';\nimport { useLink } from '../routes/link';\nimport { NAVIGATION_POST_TYPE } from '../../utils/constants';\n\nexport default function EditButton( { postId } ) {\n\tconst linkInfo = useLink( {\n\t\tpostId,\n\t\tpostType: NAVIGATION_POST_TYPE,\n\t\tcanvas: 'edit',\n\t} );\n\treturn (\n\t\t<SidebarButton { ...linkInfo } label={ __( 'Edit' ) } icon={ pencil } />\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\n/**\n * Internal dependencies\n */\nimport { SidebarNavigationScreenWrapper } from '../sidebar-navigation-screen-navigation-menus';\nimport ScreenNavigationMoreMenu from './more-menu';\nimport NavigationMenuEditor from './navigation-menu-editor';\nimport buildNavigationLabel from '../sidebar-navigation-screen-navigation-menus/build-navigation-label';\nimport EditButton from './edit-button';\n\nexport default function SingleNavigationMenu( {\n\tnavigationMenu,\n\thandleDelete,\n\thandleDuplicate,\n\thandleSave,\n} ) {\n\tconst menuTitle = navigationMenu?.title?.rendered;\n\n\treturn (\n\t\t<SidebarNavigationScreenWrapper\n\t\t\tactions={\n\t\t\t\t<>\n\t\t\t\t\t<ScreenNavigationMoreMenu\n\t\t\t\t\t\tmenuTitle={ decodeEntities( menuTitle ) }\n\t\t\t\t\t\tonDelete={ handleDelete }\n\t\t\t\t\t\tonSave={ handleSave }\n\t\t\t\t\t\tonDuplicate={ handleDuplicate }\n\t\t\t\t\t/>\n\t\t\t\t\t<EditButton postId={ navigationMenu?.id } />\n\t\t\t\t</>\n\t\t\t}\n\t\t\ttitle={ buildNavigationLabel(\n\t\t\t\tnavigationMenu?.title,\n\t\t\t\tnavigationMenu?.id,\n\t\t\t\tnavigationMenu?.status\n\t\t\t) }\n\t\t\tdescription={ __(\n\t\t\t\t'Navigation menus are a curated collection of blocks that allow visitors to get around your site.'\n\t\t\t) }\n\t\t>\n\t\t\t<NavigationMenuEditor navigationMenuId={ navigationMenu?.id } />\n\t\t</SidebarNavigationScreenWrapper>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useEntityRecord, store as coreStore } from '@wordpress/core-data';\nimport {\n\t__experimentalUseNavigator as useNavigator,\n\tSpinner,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { SidebarNavigationScreenWrapper } from '../sidebar-navigation-screen-navigation-menus';\nimport ScreenNavigationMoreMenu from './more-menu';\nimport SingleNavigationMenu from './single-navigation-menu';\nimport useNavigationMenuHandlers from './use-navigation-menu-handlers';\nimport buildNavigationLabel from '../sidebar-navigation-screen-navigation-menus/build-navigation-label';\n\nexport const postType = `wp_navigation`;\n\nexport default function SidebarNavigationScreenNavigationMenu() {\n\tconst {\n\t\tparams: { postId },\n\t} = useNavigator();\n\n\tconst { record: navigationMenu, isResolving } = useEntityRecord(\n\t\t'postType',\n\t\tpostType,\n\t\tpostId\n\t);\n\n\tconst { isSaving, isDeleting } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { isSavingEntityRecord, isDeletingEntityRecord } =\n\t\t\t\tselect( coreStore );\n\n\t\t\treturn {\n\t\t\t\tisSaving: isSavingEntityRecord( 'postType', postType, postId ),\n\t\t\t\tisDeleting: isDeletingEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostType,\n\t\t\t\t\tpostId\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ postId ]\n\t);\n\n\tconst isLoading = isResolving || isSaving || isDeleting;\n\n\tconst menuTitle = navigationMenu?.title?.rendered || navigationMenu?.slug;\n\n\tconst { handleSave, handleDelete, handleDuplicate } =\n\t\tuseNavigationMenuHandlers();\n\n\tconst _handleDelete = () => handleDelete( navigationMenu );\n\tconst _handleSave = ( edits ) => handleSave( navigationMenu, edits );\n\tconst _handleDuplicate = () => handleDuplicate( navigationMenu );\n\n\tif ( isLoading ) {\n\t\treturn (\n\t\t\t<SidebarNavigationScreenWrapper\n\t\t\t\tdescription={ __(\n\t\t\t\t\t'Navigation menus are a curated collection of blocks that allow visitors to get around your site.'\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t<Spinner className=\"edit-site-sidebar-navigation-screen-navigation-menus__loading\" />\n\t\t\t</SidebarNavigationScreenWrapper>\n\t\t);\n\t}\n\n\tif ( ! isLoading && ! navigationMenu ) {\n\t\treturn (\n\t\t\t<SidebarNavigationScreenWrapper\n\t\t\t\tdescription={ __( 'Navigation Menu missing.' ) }\n\t\t\t/>\n\t\t);\n\t}\n\n\tif ( ! navigationMenu?.content?.raw ) {\n\t\treturn (\n\t\t\t<SidebarNavigationScreenWrapper\n\t\t\t\tactions={\n\t\t\t\t\t<ScreenNavigationMoreMenu\n\t\t\t\t\t\tmenuTitle={ decodeEntities( menuTitle ) }\n\t\t\t\t\t\tonDelete={ _handleDelete }\n\t\t\t\t\t\tonSave={ _handleSave }\n\t\t\t\t\t\tonDuplicate={ _handleDuplicate }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\ttitle={ buildNavigationLabel(\n\t\t\t\t\tnavigationMenu?.title,\n\t\t\t\t\tnavigationMenu?.id,\n\t\t\t\t\tnavigationMenu?.status\n\t\t\t\t) }\n\t\t\t\tdescription={ __( 'This Navigation Menu is empty.' ) }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<SingleNavigationMenu\n\t\t\tnavigationMenu={ navigationMenu }\n\t\t\thandleDelete={ _handleDelete }\n\t\t\thandleSave={ _handleSave }\n\t\t\thandleDuplicate={ _handleDuplicate }\n\t\t/>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __experimentalUseNavigator as useNavigator } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { postType } from '.';\nimport { NAVIGATION_POST_TYPE } from '../../utils/constants';\n\nfunction useDeleteNavigationMenu() {\n\tconst { goTo } = useNavigator();\n\n\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst handleDelete = async ( navigationMenu ) => {\n\t\tconst postId = navigationMenu?.id;\n\t\ttry {\n\t\t\tawait deleteEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId,\n\t\t\t\t{\n\t\t\t\t\tforce: true,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t}\n\t\t\t);\n\t\t\tcreateSuccessNotice( __( 'Deleted Navigation menu' ), {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t\tgoTo( '/navigation' );\n\t\t} catch ( error ) {\n\t\t\tcreateErrorNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: error message describing why the navigation menu could not be deleted. */\n\t\t\t\t\t__( `Unable to delete Navigation menu (%s).` ),\n\t\t\t\t\terror?.message\n\t\t\t\t),\n\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\n\treturn handleDelete;\n}\n\nfunction useSaveNavigationMenu() {\n\tconst { getEditedEntityRecord } = useSelect( ( select ) => {\n\t\tconst { getEditedEntityRecord: getEditedEntityRecordSelector } =\n\t\t\tselect( coreStore );\n\n\t\treturn {\n\t\t\tgetEditedEntityRecord: getEditedEntityRecordSelector,\n\t\t};\n\t}, [] );\n\n\tconst {\n\t\teditEntityRecord,\n\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t} = useDispatch( coreStore );\n\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst handleSave = async ( navigationMenu, edits ) => {\n\t\tif ( ! edits ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst postId = navigationMenu?.id;\n\t\t// Prepare for revert in case of error.\n\t\tconst originalRecord = getEditedEntityRecord(\n\t\t\t'postType',\n\t\t\tNAVIGATION_POST_TYPE,\n\t\t\tpostId\n\t\t);\n\n\t\t// Apply the edits.\n\t\teditEntityRecord( 'postType', postType, postId, edits );\n\n\t\tconst recordPropertiesToSave = Object.keys( edits );\n\n\t\t// Attempt to persist.\n\t\ttry {\n\t\t\tawait saveSpecifiedEntityEdits(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId,\n\t\t\t\trecordPropertiesToSave,\n\t\t\t\t{\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t}\n\t\t\t);\n\t\t\tcreateSuccessNotice( __( 'Renamed Navigation menu' ), {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\t// Revert to original in case of error.\n\t\t\teditEntityRecord( 'postType', postType, postId, originalRecord );\n\n\t\t\tcreateErrorNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: error message describing why the navigation menu could not be renamed. */\n\t\t\t\t\t__( `Unable to rename Navigation menu (%s).` ),\n\t\t\t\t\terror?.message\n\t\t\t\t),\n\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\n\treturn handleSave;\n}\n\nfunction useDuplicateNavigationMenu() {\n\tconst { goTo } = useNavigator();\n\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst handleDuplicate = async ( navigationMenu ) => {\n\t\tconst menuTitle =\n\t\t\tnavigationMenu?.title?.rendered || navigationMenu?.slug;\n\n\t\ttry {\n\t\t\tconst savedRecord = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\t{\n\t\t\t\t\ttitle: sprintf(\n\t\t\t\t\t\t/* translators: %s: Navigation menu title */\n\t\t\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\t\t\tmenuTitle\n\t\t\t\t\t),\n\t\t\t\t\tcontent: navigationMenu?.content?.raw,\n\t\t\t\t\tstatus: 'publish',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif ( savedRecord ) {\n\t\t\t\tcreateSuccessNotice( __( 'Duplicated Navigation menu' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t\tgoTo( `/navigation/${ postType }/${ savedRecord.id }` );\n\t\t\t}\n\t\t} catch ( error ) {\n\t\t\tcreateErrorNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: error message describing why the navigation menu could not be deleted. */\n\t\t\t\t\t__( `Unable to duplicate Navigation menu (%s).` ),\n\t\t\t\t\terror?.message\n\t\t\t\t),\n\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\n\treturn handleDuplicate;\n}\n\nexport default function useNavigationMenuHandlers() {\n\treturn {\n\t\thandleDelete: useDeleteNavigationMenu(),\n\t\thandleSave: useSaveNavigationMenu(),\n\t\thandleDuplicate: useDuplicateNavigationMenu(),\n\t};\n}\n","/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useEntityRecords, store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\nimport { decodeEntities } from '@wordpress/html-entities';\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\tSpinner,\n} from '@wordpress/components';\nimport { navigation } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport SidebarNavigationItem from '../sidebar-navigation-item';\nimport { PRELOADED_NAVIGATION_MENUS_QUERY } from './constants';\nimport { useLink } from '../routes/link';\nimport SingleNavigationMenu from '../sidebar-navigation-screen-navigation-menu/single-navigation-menu';\nimport useNavigationMenuHandlers from '../sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers';\nimport { unlock } from '../../lock-unlock';\nimport { NAVIGATION_POST_TYPE } from '../../utils/constants';\n\n// Copied from packages/block-library/src/navigation/edit/navigation-menu-selector.js.\nfunction buildMenuLabel( title, id, status ) {\n\tif ( ! title ) {\n\t\t/* translators: %s is the index of the menu in the list of menus. */\n\t\treturn sprintf( __( '(no title %s)' ), id );\n\t}\n\n\tif ( status === 'publish' ) {\n\t\treturn decodeEntities( title );\n\t}\n\n\treturn sprintf(\n\t\t// translators: %1s: title of the menu; %2s: status of the menu (draft, pending, etc.).\n\t\t__( '%1$s (%2$s)' ),\n\t\tdecodeEntities( title ),\n\t\tstatus\n\t);\n}\n\n// Save a boolean to prevent us creating a fallback more than once per session.\nlet hasCreatedFallback = false;\n\nexport default function SidebarNavigationScreenNavigationMenus() {\n\tconst {\n\t\trecords: navigationMenus,\n\t\tisResolving: isResolvingNavigationMenus,\n\t\thasResolved: hasResolvedNavigationMenus,\n\t} = useEntityRecords(\n\t\t'postType',\n\t\tNAVIGATION_POST_TYPE,\n\t\tPRELOADED_NAVIGATION_MENUS_QUERY\n\t);\n\n\tconst isLoading =\n\t\tisResolvingNavigationMenus && ! hasResolvedNavigationMenus;\n\n\tconst { getNavigationFallbackId } = unlock( useSelect( coreStore ) );\n\n\tconst firstNavigationMenu = navigationMenus?.[ 0 ];\n\n\t// Save a boolean to prevent us creating a fallback more than once per session.\n\tif ( firstNavigationMenu ) {\n\t\thasCreatedFallback = true;\n\t}\n\n\t// If there is no navigation menu found\n\t// then trigger fallback algorithm to create one.\n\tif (\n\t\t! firstNavigationMenu &&\n\t\t! isResolvingNavigationMenus &&\n\t\thasResolvedNavigationMenus &&\n\t\t! hasCreatedFallback\n\t) {\n\t\tgetNavigationFallbackId();\n\t}\n\n\tconst { handleSave, handleDelete, handleDuplicate } =\n\t\tuseNavigationMenuHandlers();\n\n\tconst hasNavigationMenus = !! navigationMenus?.length;\n\n\tif ( isLoading ) {\n\t\treturn (\n\t\t\t<SidebarNavigationScreenWrapper>\n\t\t\t\t<Spinner className=\"edit-site-sidebar-navigation-screen-navigation-menus__loading\" />\n\t\t\t</SidebarNavigationScreenWrapper>\n\t\t);\n\t}\n\n\tif ( ! isLoading && ! hasNavigationMenus ) {\n\t\treturn (\n\t\t\t<SidebarNavigationScreenWrapper\n\t\t\t\tdescription={ __( 'No Navigation Menus found.' ) }\n\t\t\t/>\n\t\t);\n\t}\n\n\t// if single menu then render it\n\tif ( navigationMenus?.length === 1 ) {\n\t\treturn (\n\t\t\t<SingleNavigationMenu\n\t\t\t\tnavigationMenu={ firstNavigationMenu }\n\t\t\t\thandleDelete={ () => handleDelete( firstNavigationMenu ) }\n\t\t\t\thandleDuplicate={ () => handleDuplicate( firstNavigationMenu ) }\n\t\t\t\thandleSave={ ( edits ) =>\n\t\t\t\t\thandleSave( firstNavigationMenu, edits )\n\t\t\t\t}\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<SidebarNavigationScreenWrapper>\n\t\t\t<ItemGroup>\n\t\t\t\t{ navigationMenus?.map( ( { id, title, status }, index ) => (\n\t\t\t\t\t<NavMenuItem\n\t\t\t\t\t\tpostId={ id }\n\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\twithChevron\n\t\t\t\t\t\ticon={ navigation }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ buildMenuLabel( title?.rendered, index + 1, status ) }\n\t\t\t\t\t</NavMenuItem>\n\t\t\t\t) ) }\n\t\t\t</ItemGroup>\n\t\t</SidebarNavigationScreenWrapper>\n\t);\n}\n\nexport function SidebarNavigationScreenWrapper( {\n\tchildren,\n\tactions,\n\ttitle,\n\tdescription,\n} ) {\n\treturn (\n\t\t<SidebarNavigationScreen\n\t\t\ttitle={ title || __( 'Navigation' ) }\n\t\t\tactions={ actions }\n\t\t\tdescription={ description || __( 'Manage your Navigation menus.' ) }\n\t\t\tcontent={ children }\n\t\t/>\n\t);\n}\n\nconst NavMenuItem = ( { postId, ...props } ) => {\n\tconst linkInfo = useLink( {\n\t\tpostId,\n\t\tpostType: NAVIGATION_POST_TYPE,\n\t} );\n\treturn <SidebarNavigationItem { ...linkInfo } { ...props } />;\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { __experimentalUseNavigator as useNavigator } from '@wordpress/components';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport { store as editSiteStore } from '../../store';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n} from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\n\nconst config = {\n\t[ TEMPLATE_POST_TYPE ]: {\n\t\ttitle: __( 'All templates' ),\n\t\tdescription: __(\n\t\t\t'Create new templates, or reset any customizations made to the templates supplied by your theme.'\n\t\t),\n\t},\n\t[ TEMPLATE_PART_POST_TYPE ]: {\n\t\ttitle: __( 'All template parts' ),\n\t\tdescription: __(\n\t\t\t'Create new template parts, or reset any customizations made to the template parts supplied by your theme.'\n\t\t),\n\t\tbackPath: '/patterns',\n\t},\n};\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nexport default function SidebarNavigationScreenTemplatesBrowse() {\n\tconst {\n\t\tparams: { postType },\n\t} = useNavigator();\n\tconst {\n\t\tparams: { didAccessPatternsPage },\n\t} = useLocation();\n\n\tconst isTemplatePartsMode = useSelect( ( select ) => {\n\t\treturn !! select( editSiteStore ).getSettings()\n\t\t\t.supportsTemplatePartsMode;\n\t}, [] );\n\n\treturn (\n\t\t<SidebarNavigationScreen\n\t\t\t// If a classic theme that supports template parts has never\n\t\t\t// accessed the Patterns page, return to the dashboard.\n\t\t\tisRoot={ isTemplatePartsMode && ! didAccessPatternsPage }\n\t\t\ttitle={ config[ postType ].title }\n\t\t\tdescription={ config[ postType ].description }\n\t\t\tbackPath={ config[ postType ].backPath }\n\t\t/>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { Button } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { displayShortcut } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport {\n\tcurrentlyPreviewingTheme,\n\tisPreviewingTheme,\n} from '../../utils/is-previewing-theme';\n\nexport default function SaveButton( {\n\tclassName = 'edit-site-save-button__button',\n\tvariant = 'primary',\n\tshowTooltip = true,\n\tdefaultLabel,\n\ticon,\n\t__next40pxDefaultSize = false,\n} ) {\n\tconst { isDirty, isSaving, isSaveViewOpen, previewingThemeName } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst {\n\t\t\t\t__experimentalGetDirtyEntityRecords,\n\t\t\t\tisSavingEntityRecord,\n\t\t\t\tisResolving,\n\t\t\t} = select( coreStore );\n\t\t\tconst dirtyEntityRecords = __experimentalGetDirtyEntityRecords();\n\t\t\tconst { isSaveViewOpened } = select( editSiteStore );\n\t\t\tconst isActivatingTheme = isResolving( 'activateTheme' );\n\t\t\tconst previewingTheme = select( coreStore ).getTheme(\n\t\t\t\tcurrentlyPreviewingTheme()\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tisDirty: dirtyEntityRecords.length > 0,\n\t\t\t\tisSaving:\n\t\t\t\t\tdirtyEntityRecords.some( ( record ) =>\n\t\t\t\t\t\tisSavingEntityRecord(\n\t\t\t\t\t\t\trecord.kind,\n\t\t\t\t\t\t\trecord.name,\n\t\t\t\t\t\t\trecord.key\n\t\t\t\t\t\t)\n\t\t\t\t\t) || isActivatingTheme,\n\t\t\t\tisSaveViewOpen: isSaveViewOpened(),\n\t\t\t\tpreviewingThemeName: previewingTheme?.name?.rendered,\n\t\t\t};\n\t\t}, [] );\n\tconst { setIsSaveViewOpened } = useDispatch( editSiteStore );\n\n\tconst activateSaveEnabled = isPreviewingTheme() || isDirty;\n\tconst disabled = isSaving || ! activateSaveEnabled;\n\n\tconst getLabel = () => {\n\t\tif ( isPreviewingTheme() ) {\n\t\t\tif ( isSaving ) {\n\t\t\t\treturn sprintf(\n\t\t\t\t\t/* translators: %s: The name of theme to be activated. */\n\t\t\t\t\t__( 'Activating %s' ),\n\t\t\t\t\tpreviewingThemeName\n\t\t\t\t);\n\t\t\t} else if ( disabled ) {\n\t\t\t\treturn __( 'Saved' );\n\t\t\t} else if ( isDirty ) {\n\t\t\t\treturn sprintf(\n\t\t\t\t\t/* translators: %s: The name of theme to be activated. */\n\t\t\t\t\t__( 'Activate %s & Save' ),\n\t\t\t\t\tpreviewingThemeName\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn sprintf(\n\t\t\t\t/* translators: %s: The name of theme to be activated. */\n\t\t\t\t__( 'Activate %s' ),\n\t\t\t\tpreviewingThemeName\n\t\t\t);\n\t\t}\n\n\t\tif ( isSaving ) {\n\t\t\treturn __( 'Saving' );\n\t\t} else if ( disabled ) {\n\t\t\treturn __( 'Saved' );\n\t\t} else if ( defaultLabel ) {\n\t\t\treturn defaultLabel;\n\t\t}\n\t\treturn __( 'Save' );\n\t};\n\tconst label = getLabel();\n\n\treturn (\n\t\t<Button\n\t\t\tvariant={ variant }\n\t\t\tclassName={ className }\n\t\t\taria-disabled={ disabled }\n\t\t\taria-expanded={ isSaveViewOpen }\n\t\t\tisBusy={ isSaving }\n\t\t\tonClick={ disabled ? undefined : () => setIsSaveViewOpened( true ) }\n\t\t\tlabel={ label }\n\t\t\t/*\n\t\t\t * We want the tooltip to show the keyboard shortcut only when the\n\t\t\t * button does something, i.e. when it's not disabled.\n\t\t\t */\n\t\t\tshortcut={ disabled ? undefined : displayShortcut.primary( 's' ) }\n\t\t\t/*\n\t\t\t * Displaying the keyboard shortcut conditionally makes the tooltip\n\t\t\t * itself show conditionally. This would trigger a full-rerendering\n\t\t\t * of the button that we want to avoid. By setting `showTooltip`,\n\t\t\t * the tooltip is always rendered even when there's no keyboard shortcut.\n\t\t\t */\n\t\t\tshowTooltip={ showTooltip }\n\t\t\ticon={ icon }\n\t\t\t__next40pxDefaultSize={ __next40pxDefaultSize }\n\t\t\tsize=\"compact\"\n\t\t>\n\t\t\t{ label }\n\t\t</Button>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { Button, __experimentalHStack as HStack } from '@wordpress/components';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { check } from '@wordpress/icons';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport SaveButton from '../save-button';\nimport { isPreviewingTheme } from '../../utils/is-previewing-theme';\nimport { unlock } from '../../lock-unlock';\nimport { NAVIGATION_POST_TYPE } from '../../utils/constants';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nconst PUBLISH_ON_SAVE_ENTITIES = [\n\t{\n\t\tkind: 'postType',\n\t\tname: NAVIGATION_POST_TYPE,\n\t},\n];\n\nexport default function SaveHub() {\n\tconst saveNoticeId = 'site-edit-save-notice';\n\tconst { params } = useLocation();\n\n\tconst { __unstableMarkLastChangeAsPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst { createSuccessNotice, createErrorNotice, removeNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst { dirtyCurrentEntity, countUnsavedChanges, isDirty, isSaving } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\t__experimentalGetDirtyEntityRecords,\n\t\t\t\t\tisSavingEntityRecord,\n\t\t\t\t} = select( coreStore );\n\t\t\t\tconst dirtyEntityRecords =\n\t\t\t\t\t__experimentalGetDirtyEntityRecords();\n\t\t\t\tlet calcDirtyCurrentEntity = null;\n\n\t\t\t\tif ( dirtyEntityRecords.length === 1 ) {\n\t\t\t\t\t// if we are on global styles\n\t\t\t\t\tif ( params.path?.includes( 'wp_global_styles' ) ) {\n\t\t\t\t\t\tcalcDirtyCurrentEntity = dirtyEntityRecords.find(\n\t\t\t\t\t\t\t( record ) => record.name === 'globalStyles'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t// if we are on pages\n\t\t\t\t\telse if ( params.postId ) {\n\t\t\t\t\t\tcalcDirtyCurrentEntity = dirtyEntityRecords.find(\n\t\t\t\t\t\t\t( record ) =>\n\t\t\t\t\t\t\t\trecord.name === params.postType &&\n\t\t\t\t\t\t\t\tString( record.key ) === params.postId\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tdirtyCurrentEntity: calcDirtyCurrentEntity,\n\t\t\t\t\tisDirty: dirtyEntityRecords.length > 0,\n\t\t\t\t\tisSaving: dirtyEntityRecords.some( ( record ) =>\n\t\t\t\t\t\tisSavingEntityRecord(\n\t\t\t\t\t\t\trecord.kind,\n\t\t\t\t\t\t\trecord.name,\n\t\t\t\t\t\t\trecord.key\n\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t\t\tcountUnsavedChanges: dirtyEntityRecords.length,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ params.path, params.postType, params.postId ]\n\t\t);\n\n\tconst {\n\t\teditEntityRecord,\n\t\tsaveEditedEntityRecord,\n\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t} = useDispatch( coreStore );\n\n\tconst disabled = isSaving || ( ! isDirty && ! isPreviewingTheme() );\n\n\t// if we have only one unsaved change and it matches current context, we can show a more specific label\n\tlet label = dirtyCurrentEntity\n\t\t? __( 'Save' )\n\t\t: sprintf(\n\t\t\t\t// translators: %d: number of unsaved changes (number).\n\t\t\t\t_n(\n\t\t\t\t\t'Review %d change…',\n\t\t\t\t\t'Review %d changes…',\n\t\t\t\t\tcountUnsavedChanges\n\t\t\t\t),\n\t\t\t\tcountUnsavedChanges\n\t\t  );\n\n\tif ( isSaving ) {\n\t\tlabel = __( 'Saving' );\n\t}\n\n\tconst { homeUrl } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetUnstableBase, // Site index.\n\t\t} = select( coreStore );\n\t\treturn {\n\t\t\thomeUrl: getUnstableBase()?.home,\n\t\t};\n\t}, [] );\n\n\tconst saveCurrentEntity = async () => {\n\t\tif ( ! dirtyCurrentEntity ) return;\n\n\t\tremoveNotice( saveNoticeId );\n\t\tconst { kind, name, key, property } = dirtyCurrentEntity;\n\n\t\ttry {\n\t\t\tif ( 'root' === dirtyCurrentEntity.kind && 'site' === name ) {\n\t\t\t\tawait saveSpecifiedEntityEdits( 'root', 'site', undefined, [\n\t\t\t\t\tproperty,\n\t\t\t\t] );\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tPUBLISH_ON_SAVE_ENTITIES.some(\n\t\t\t\t\t\t( typeToPublish ) =>\n\t\t\t\t\t\t\ttypeToPublish.kind === kind &&\n\t\t\t\t\t\t\ttypeToPublish.name === name\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\teditEntityRecord( kind, name, key, { status: 'publish' } );\n\t\t\t\t}\n\n\t\t\t\tawait saveEditedEntityRecord( kind, name, key );\n\t\t\t}\n\n\t\t\t__unstableMarkLastChangeAsPersistent();\n\n\t\t\tcreateSuccessNotice( __( 'Site updated.' ), {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tactions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: __( 'View site' ),\n\t\t\t\t\t\turl: homeUrl,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tid: saveNoticeId,\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tcreateErrorNotice( `${ __( 'Saving failed.' ) } ${ error }` );\n\t\t}\n\t};\n\n\treturn (\n\t\t<HStack className=\"edit-site-save-hub\" alignment=\"right\" spacing={ 4 }>\n\t\t\t{ dirtyCurrentEntity ? (\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tonClick={ saveCurrentEntity }\n\t\t\t\t\tisBusy={ isSaving }\n\t\t\t\t\tdisabled={ isSaving }\n\t\t\t\t\taria-disabled={ isSaving }\n\t\t\t\t\tclassName=\"edit-site-save-hub__button\"\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t>\n\t\t\t\t\t{ label }\n\t\t\t\t</Button>\n\t\t\t) : (\n\t\t\t\t<SaveButton\n\t\t\t\t\tclassName=\"edit-site-save-hub__button\"\n\t\t\t\t\tvariant={ disabled ? null : 'primary' }\n\t\t\t\t\tshowTooltip={ false }\n\t\t\t\t\ticon={ disabled && ! isSaving ? check : null }\n\t\t\t\t\tdefaultLabel={ label }\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t/>\n\t\t\t) }\n\t\t</HStack>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tModal,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tTextControl,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\n\nexport default function AddNewPageModal( { onSave, onClose } ) {\n\tconst [ isCreatingPage, setIsCreatingPage ] = useState( false );\n\tconst [ title, setTitle ] = useState( '' );\n\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tasync function createPage( event ) {\n\t\tevent.preventDefault();\n\n\t\tif ( isCreatingPage ) {\n\t\t\treturn;\n\t\t}\n\t\tsetIsCreatingPage( true );\n\t\ttry {\n\t\t\tconst newPage = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'page',\n\t\t\t\t{\n\t\t\t\t\tstatus: 'draft',\n\t\t\t\t\ttitle,\n\t\t\t\t\tslug: title || __( 'No title' ),\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\tonSave( newPage );\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: Title of the created template e.g: \"Category\".\n\t\t\t\t\t__( '\"%s\" successfully created.' ),\n\t\t\t\t\tnewPage.title?.rendered || title\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while creating the page.' );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t} finally {\n\t\t\tsetIsCreatingPage( false );\n\t\t}\n\t}\n\n\treturn (\n\t\t<Modal title={ __( 'Draft a new page' ) } onRequestClose={ onClose }>\n\t\t\t<form onSubmit={ createPage }>\n\t\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ __( 'Page title' ) }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\tplaceholder={ __( 'No title' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack spacing={ 2 } justify=\"end\">\n\t\t\t\t\t\t<Button variant=\"tertiary\" onClick={ onClose }>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tisBusy={ isCreatingPage }\n\t\t\t\t\t\t\taria-disabled={ isCreatingPage }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Create draft' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalTruncate as Truncate,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useEntityRecords, store as coreStore } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { layout, page, home, verse, plus } from '@wordpress/icons';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport { useLink } from '../routes/link';\nimport SidebarNavigationItem from '../sidebar-navigation-item';\nimport SidebarButton from '../sidebar-button';\nimport AddNewPageModal from '../add-new-page';\nimport { unlock } from '../../lock-unlock';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nconst PageItem = ( { postType = 'page', postId, ...props } ) => {\n\tconst linkInfo = useLink(\n\t\t{\n\t\t\tpostType,\n\t\t\tpostId,\n\t\t},\n\t\t{\n\t\t\tbackPath: '/page',\n\t\t}\n\t);\n\treturn <SidebarNavigationItem { ...linkInfo } { ...props } />;\n};\n\nexport default function SidebarNavigationScreenPages() {\n\tconst { records: pages, isResolving: isLoadingPages } = useEntityRecords(\n\t\t'postType',\n\t\t'page',\n\t\t{\n\t\t\tstatus: 'any',\n\t\t\tper_page: -1,\n\t\t}\n\t);\n\tconst { records: templates, isResolving: isLoadingTemplates } =\n\t\tuseEntityRecords( 'postType', TEMPLATE_POST_TYPE, {\n\t\t\tper_page: -1,\n\t\t} );\n\n\tconst dynamicPageTemplates = templates?.filter( ( { slug } ) =>\n\t\t[ '404', 'search' ].includes( slug )\n\t);\n\n\tconst homeTemplate =\n\t\ttemplates?.find( ( template ) => template.slug === 'front-page' ) ||\n\t\ttemplates?.find( ( template ) => template.slug === 'home' ) ||\n\t\ttemplates?.find( ( template ) => template.slug === 'index' );\n\n\tconst getPostsPageTemplate = () =>\n\t\ttemplates?.find( ( template ) => template.slug === 'home' ) ||\n\t\ttemplates?.find( ( template ) => template.slug === 'index' );\n\n\tconst pagesAndTemplates = pages?.concat( dynamicPageTemplates, [\n\t\thomeTemplate,\n\t] );\n\n\tconst { frontPage, postsPage } = useSelect( ( select ) => {\n\t\tconst { getEntityRecord } = select( coreStore );\n\t\tconst siteSettings = getEntityRecord( 'root', 'site' );\n\t\treturn {\n\t\t\tfrontPage: siteSettings?.page_on_front,\n\t\t\tpostsPage: siteSettings?.page_for_posts,\n\t\t};\n\t}, [] );\n\n\tconst isHomePageBlog = frontPage === postsPage;\n\n\tconst reorderedPages = pages && [ ...pages ];\n\n\tif ( ! isHomePageBlog && reorderedPages?.length ) {\n\t\tconst homePageIndex = reorderedPages.findIndex(\n\t\t\t( item ) => item.id === frontPage\n\t\t);\n\t\tconst homePage = reorderedPages.splice( homePageIndex, 1 );\n\t\treorderedPages?.splice( 0, 0, ...homePage );\n\n\t\tconst postsPageIndex = reorderedPages.findIndex(\n\t\t\t( item ) => item.id === postsPage\n\t\t);\n\n\t\tconst blogPage = reorderedPages.splice( postsPageIndex, 1 );\n\n\t\treorderedPages.splice( 1, 0, ...blogPage );\n\t}\n\n\tconst [ showAddPage, setShowAddPage ] = useState( false );\n\n\tconst history = useHistory();\n\n\tconst handleNewPage = ( { type, id } ) => {\n\t\t// Navigate to the created template editor.\n\t\thistory.push( {\n\t\t\tpostId: id,\n\t\t\tpostType: type,\n\t\t\tcanvas: 'edit',\n\t\t} );\n\t\tsetShowAddPage( false );\n\t};\n\n\tconst getPageProps = ( id ) => {\n\t\tlet itemIcon = page;\n\t\tconst postsPageTemplateId =\n\t\t\tpostsPage && postsPage === id ? getPostsPageTemplate()?.id : null;\n\n\t\tswitch ( id ) {\n\t\t\tcase frontPage:\n\t\t\t\titemIcon = home;\n\t\t\t\tbreak;\n\t\t\tcase postsPage:\n\t\t\t\titemIcon = verse;\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn {\n\t\t\ticon: itemIcon,\n\t\t\tpostType: postsPageTemplateId ? TEMPLATE_POST_TYPE : 'page',\n\t\t\tpostId: postsPageTemplateId || id,\n\t\t};\n\t};\n\n\tconst pagesLink = useLink( { path: '/pages' } );\n\tconst manageAllPagesProps = window?.__experimentalAdminViews\n\t\t? { ...pagesLink }\n\t\t: {\n\t\t\t\thref: 'edit.php?post_type=page',\n\t\t\t\tonClick: () => {\n\t\t\t\t\tdocument.location = 'edit.php?post_type=page';\n\t\t\t\t},\n\t\t  };\n\n\treturn (\n\t\t<>\n\t\t\t{ showAddPage && (\n\t\t\t\t<AddNewPageModal\n\t\t\t\t\tonSave={ handleNewPage }\n\t\t\t\t\tonClose={ () => setShowAddPage( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<SidebarNavigationScreen\n\t\t\t\ttitle={ __( 'Pages' ) }\n\t\t\t\tdescription={ __( 'Browse and edit pages on your site.' ) }\n\t\t\t\tactions={\n\t\t\t\t\t<SidebarButton\n\t\t\t\t\t\ticon={ plus }\n\t\t\t\t\t\tlabel={ __( 'Draft a new page' ) }\n\t\t\t\t\t\tonClick={ () => setShowAddPage( true ) }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tcontent={\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ ( isLoadingPages || isLoadingTemplates ) && (\n\t\t\t\t\t\t\t<ItemGroup>\n\t\t\t\t\t\t\t\t<Item>{ __( 'Loading pages…' ) }</Item>\n\t\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! ( isLoadingPages || isLoadingTemplates ) && (\n\t\t\t\t\t\t\t<ItemGroup>\n\t\t\t\t\t\t\t\t{ ! pagesAndTemplates?.length && (\n\t\t\t\t\t\t\t\t\t<Item>{ __( 'No page found' ) }</Item>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ isHomePageBlog && homeTemplate && (\n\t\t\t\t\t\t\t\t\t<PageItem\n\t\t\t\t\t\t\t\t\t\tpostType={ TEMPLATE_POST_TYPE }\n\t\t\t\t\t\t\t\t\t\tpostId={ homeTemplate.id }\n\t\t\t\t\t\t\t\t\t\tkey={ homeTemplate.id }\n\t\t\t\t\t\t\t\t\t\ticon={ home }\n\t\t\t\t\t\t\t\t\t\twithChevron\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Truncate numberOfLines={ 1 }>\n\t\t\t\t\t\t\t\t\t\t\t{ decodeEntities(\n\t\t\t\t\t\t\t\t\t\t\t\thomeTemplate.title?.rendered ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t__( '(no title)' )\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t\t\t\t</PageItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ reorderedPages?.map( ( { id, title } ) => (\n\t\t\t\t\t\t\t\t\t<PageItem\n\t\t\t\t\t\t\t\t\t\t{ ...getPageProps( id ) }\n\t\t\t\t\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\t\t\t\t\twithChevron\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Truncate numberOfLines={ 1 }>\n\t\t\t\t\t\t\t\t\t\t\t{ decodeEntities(\n\t\t\t\t\t\t\t\t\t\t\t\ttitle?.rendered ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t__( '(no title)' )\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t\t\t\t</PageItem>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t}\n\t\t\t\tfooter={\n\t\t\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t\t\t{ dynamicPageTemplates?.map( ( item ) => (\n\t\t\t\t\t\t\t<PageItem\n\t\t\t\t\t\t\t\tpostType={ TEMPLATE_POST_TYPE }\n\t\t\t\t\t\t\t\tpostId={ item.id }\n\t\t\t\t\t\t\t\tkey={ item.id }\n\t\t\t\t\t\t\t\ticon={ layout }\n\t\t\t\t\t\t\t\twithChevron\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Truncate numberOfLines={ 1 }>\n\t\t\t\t\t\t\t\t\t{ decodeEntities(\n\t\t\t\t\t\t\t\t\t\titem.title?.rendered ||\n\t\t\t\t\t\t\t\t\t\t\t__( '(no title)' )\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t\t</PageItem>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t<SidebarNavigationItem\n\t\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen-pages__see-all\"\n\t\t\t\t\t\t\t{ ...manageAllPagesProps }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Manage all pages' ) }\n\t\t\t\t\t\t</SidebarNavigationItem>\n\t\t\t\t\t</VStack>\n\t\t\t\t}\n\t\t\t/>\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst trash = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"M12 5.5A2.25 2.25 0 0 0 9.878 7h4.244A2.251 2.251 0 0 0 12 5.5ZM12 4a3.751 3.751 0 0 0-3.675 3H5v1.5h1.27l.818 8.997a2.75 2.75 0 0 0 2.739 2.501h4.347a2.75 2.75 0 0 0 2.738-2.5L17.73 8.5H19V7h-3.325A3.751 3.751 0 0 0 12 4Zm4.224 4.5H7.776l.806 8.861a1.25 1.25 0 0 0 1.245 1.137h4.347a1.25 1.25 0 0 0 1.245-1.137l.805-8.861Z\"\n\t\t/>\n\t</SVG>\n);\n\nexport default trash;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { trash } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport {\n\tLAYOUT_LIST,\n\tLAYOUT_TABLE,\n\tLAYOUT_GRID,\n\tOPERATOR_IN,\n} from '../../utils/constants';\n\nexport const DEFAULT_CONFIG_PER_VIEW_TYPE = {\n\t[ LAYOUT_TABLE ]: {},\n\t[ LAYOUT_GRID ]: {\n\t\tmediaField: 'featured-image',\n\t\tprimaryField: 'title',\n\t},\n\t[ LAYOUT_LIST ]: {\n\t\tprimaryField: 'title',\n\t\tmediaField: 'featured-image',\n\t},\n};\n\nconst DEFAULT_PAGE_BASE = {\n\ttype: LAYOUT_LIST,\n\tsearch: '',\n\tfilters: [],\n\tpage: 1,\n\tperPage: 20,\n\tsort: {\n\t\tfield: 'date',\n\t\tdirection: 'desc',\n\t},\n\t// All fields are visible by default, so it's\n\t// better to keep track of the hidden ones.\n\thiddenFields: [ 'date', 'featured-image' ],\n\tlayout: {\n\t\t...DEFAULT_CONFIG_PER_VIEW_TYPE[ LAYOUT_LIST ],\n\t},\n};\n\nexport const DEFAULT_VIEWS = {\n\tpage: [\n\t\t{\n\t\t\ttitle: __( 'All' ),\n\t\t\tslug: 'all',\n\t\t\tview: DEFAULT_PAGE_BASE,\n\t\t},\n\t\t{\n\t\t\ttitle: __( 'Drafts' ),\n\t\t\tslug: 'drafts',\n\t\t\tview: {\n\t\t\t\t...DEFAULT_PAGE_BASE,\n\t\t\t\tfilters: [\n\t\t\t\t\t{ field: 'status', operator: OPERATOR_IN, value: 'draft' },\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttitle: __( 'Trash' ),\n\t\t\tslug: 'trash',\n\t\t\ticon: trash,\n\t\t\tview: {\n\t\t\t\t...DEFAULT_PAGE_BASE,\n\t\t\t\tfilters: [\n\t\t\t\t\t{ field: 'status', operator: OPERATOR_IN, value: 'trash' },\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t],\n};\n","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst blockTable = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 4.5h14c.3 0 .5.2.5.5v3.5h-15V5c0-.3.2-.5.5-.5zm8 5.5h6.5v3.5H13V10zm-1.5 3.5h-7V10h7v3.5zm-7 5.5v-4h7v4.5H5c-.3 0-.5-.2-.5-.5zm14.5.5h-6V15h6.5v4c0 .3-.2.5-.5.5z\" />\n\t</SVG>\n);\n\nexport default blockTable;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst formatListBulletsRTL = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M4 8.8h8.9V7.2H4v1.6zm0 7h8.9v-1.5H4v1.5zM18 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z\" />\n\t</SVG>\n);\n\nexport default formatListBulletsRTL;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst formatListBullets = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M11.1 15.8H20v-1.5h-8.9v1.5zm0-8.6v1.5H20V7.2h-8.9zM6 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-7c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\" />\n\t</SVG>\n);\n\nexport default formatListBullets;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst unseen = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"M4.67 10.664s-2.09 1.11-2.917 1.582l.494.87 1.608-.914.002.002c.343.502.86 1.17 1.563 1.84.348.33.742.663 1.185.976L5.57 16.744l.858.515 1.02-1.701a9.1 9.1 0 0 0 4.051 1.18V19h1v-2.263a9.1 9.1 0 0 0 4.05-1.18l1.021 1.7.858-.514-1.034-1.723c.442-.313.837-.646 1.184-.977.703-.669 1.22-1.337 1.563-1.839l.002-.003 1.61.914.493-.87c-1.75-.994-2.918-1.58-2.918-1.58l-.003.005a8.29 8.29 0 0 1-.422.689 10.097 10.097 0 0 1-1.36 1.598c-1.218 1.16-3.042 2.293-5.544 2.293-2.503 0-4.327-1.132-5.546-2.293a10.099 10.099 0 0 1-1.359-1.599 8.267 8.267 0 0 1-.422-.689l-.003-.005Z\" />\n\t</SVG>\n);\n\nexport default unseen;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst funnel = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"M10 17.5H14V16H10V17.5ZM6 6V7.5H18V6H6ZM8 12.5H16V11H8V12.5Z\" />\n\t</SVG>\n);\n\nexport default funnel;\n","/**\n * WordPress dependencies\n */\nimport { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/private-apis';\n\nexport const { lock, unlock } =\n\t__dangerousOptInToUnstableAPIsOnlyForCoreModules(\n\t\t'I know using unstable features means my theme or plugin will inevitably break in the next version of WordPress.',\n\t\t'@wordpress/dataviews'\n\t);\n","/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tModal,\n\t__experimentalHStack as HStack,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport { moreVertical } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuItemLabelV2: DropdownMenuItemLabel,\n\tkebabCase,\n} = unlock( componentsPrivateApis );\n\nfunction ButtonTrigger( { action, onClick } ) {\n\treturn (\n\t\t<Button\n\t\t\tlabel={ action.label }\n\t\t\ticon={ action.icon }\n\t\t\tisDestructive={ action.isDestructive }\n\t\t\tsize=\"compact\"\n\t\t\tonClick={ onClick }\n\t\t/>\n\t);\n}\n\nfunction DropdownMenuItemTrigger( { action, onClick } ) {\n\treturn (\n\t\t<DropdownMenuItem\n\t\t\tonClick={ onClick }\n\t\t\thideOnClick={ ! action.RenderModal }\n\t\t>\n\t\t\t<DropdownMenuItemLabel>{ action.label }</DropdownMenuItemLabel>\n\t\t</DropdownMenuItem>\n\t);\n}\n\nfunction ActionWithModal( { action, item, ActionTrigger } ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst actionTriggerProps = {\n\t\taction,\n\t\tonClick: () => setIsModalOpen( true ),\n\t};\n\tconst { RenderModal, hideModalHeader } = action;\n\treturn (\n\t\t<>\n\t\t\t<ActionTrigger { ...actionTriggerProps } />\n\t\t\t{ isModalOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={\n\t\t\t\t\t\t( ! hideModalHeader && action.modalHeader ) ||\n\t\t\t\t\t\taction.label\n\t\t\t\t\t}\n\t\t\t\t\t__experimentalHideHeader={ !! hideModalHeader }\n\t\t\t\t\tonRequestClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t\toverlayClassName={ `dataviews-action-modal dataviews-action-modal__${ kebabCase(\n\t\t\t\t\t\taction.id\n\t\t\t\t\t) }` }\n\t\t\t\t>\n\t\t\t\t\t<RenderModal\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tcloseModal={ () => setIsModalOpen( false ) }\n\t\t\t\t\t/>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction ActionsDropdownMenuGroup( { actions, item } ) {\n\treturn (\n\t\t<DropdownMenuGroup>\n\t\t\t{ actions.map( ( action ) => {\n\t\t\t\tif ( !! action.RenderModal ) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ActionWithModal\n\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\tActionTrigger={ DropdownMenuItemTrigger }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuItemTrigger\n\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\tonClick={ () => action.callback( item ) }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenuGroup>\n\t);\n}\n\nexport default function ItemActions( { item, actions, isCompact } ) {\n\tconst { primaryActions, secondaryActions } = useMemo( () => {\n\t\treturn actions.reduce(\n\t\t\t( accumulator, action ) => {\n\t\t\t\t// If an action is eligible for all items, doesn't need\n\t\t\t\t// to provide the `isEligible` function.\n\t\t\t\tif ( action.isEligible && ! action.isEligible( item ) ) {\n\t\t\t\t\treturn accumulator;\n\t\t\t\t}\n\t\t\t\tif ( action.isPrimary && !! action.icon ) {\n\t\t\t\t\taccumulator.primaryActions.push( action );\n\t\t\t\t} else {\n\t\t\t\t\taccumulator.secondaryActions.push( action );\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t},\n\t\t\t{ primaryActions: [], secondaryActions: [] }\n\t\t);\n\t}, [ actions, item ] );\n\tif ( isCompact ) {\n\t\treturn (\n\t\t\t<CompactItemActions\n\t\t\t\titem={ item }\n\t\t\t\tprimaryActions={ primaryActions }\n\t\t\t\tsecondaryActions={ secondaryActions }\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<HStack\n\t\t\tspacing={ 1 }\n\t\t\tjustify=\"flex-end\"\n\t\t\tstyle={ {\n\t\t\t\tflexShrink: '0',\n\t\t\t\twidth: 'auto',\n\t\t\t} }\n\t\t>\n\t\t\t{ !! primaryActions.length &&\n\t\t\t\tprimaryActions.map( ( action ) => {\n\t\t\t\t\tif ( !! action.RenderModal ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<ActionWithModal\n\t\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\tActionTrigger={ ButtonTrigger }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ButtonTrigger\n\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\t\tonClick={ () => action.callback( item ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t<DropdownMenu\n\t\t\t\ttrigger={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\t\tdisabled={ ! secondaryActions.length }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tplacement=\"bottom-end\"\n\t\t\t>\n\t\t\t\t<ActionsDropdownMenuGroup\n\t\t\t\t\tactions={ secondaryActions }\n\t\t\t\t\titem={ item }\n\t\t\t\t/>\n\t\t\t</DropdownMenu>\n\t\t</HStack>\n\t);\n}\n\nfunction CompactItemActions( { item, primaryActions, secondaryActions } ) {\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\tdisabled={\n\t\t\t\t\t\t! primaryActions.length && ! secondaryActions.length\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t}\n\t\t\tplacement=\"bottom-end\"\n\t\t>\n\t\t\t{ !! primaryActions.length && (\n\t\t\t\t<ActionsDropdownMenuGroup\n\t\t\t\t\tactions={ primaryActions }\n\t\t\t\t\titem={ item }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ !! secondaryActions.length && (\n\t\t\t\t<ActionsDropdownMenuGroup\n\t\t\t\t\tactions={ secondaryActions }\n\t\t\t\t\titem={ item }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport {\n\tIcon,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { forwardRef } from '@wordpress/element';\nimport { SVG, Circle } from '@wordpress/primitives';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\n\nconst { DropdownMenuItemV2: DropdownMenuItem } = unlock(\n\tcomponentsPrivateApis\n);\n\nconst radioCheck = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Circle cx={ 12 } cy={ 12 } r={ 3 }></Circle>\n\t</SVG>\n);\n\n/**\n * A custom implementation of a radio menu item using the standard menu item\n * component, which allows deselecting selected values.\n */\nexport const DropdownMenuRadioItemCustom = forwardRef(\n\tfunction DropdownMenuRadioItemCustom(\n\t\t{ checked, name, value, hideOnClick, onChange, onClick, ...props },\n\t\tref\n\t) {\n\t\tconst onClickHandler = ( e ) => {\n\t\t\tonClick?.( e );\n\t\t\tonChange?.( { ...e, target: { ...e.target, value } } );\n\t\t};\n\t\treturn (\n\t\t\t<DropdownMenuItem\n\t\t\t\tref={ ref }\n\t\t\t\trole=\"menuitemradio\"\n\t\t\t\tname={ name }\n\t\t\t\taria-checked={ checked }\n\t\t\t\thideOnClick={ !! hideOnClick }\n\t\t\t\tprefix={\n\t\t\t\t\tchecked ? (\n\t\t\t\t\t\t<Icon icon={ radioCheck } />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"dataviews-filters__custom-menu-radio-item-prefix\"\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t></span>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tonClick={ onClickHandler }\n\t\t\t\t{ ...props }\n\t\t\t/>\n\t\t);\n\t}\n);\n","/**\n * External dependencies\n */\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useAsyncList } from '@wordpress/compose';\nimport { unseen, funnel } from '@wordpress/icons';\nimport {\n\tButton,\n\tIcon,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport {\n\tChildren,\n\tFragment,\n\tforwardRef,\n\tuseEffect,\n\tuseId,\n\tuseRef,\n\tuseState,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\nimport ItemActions from './item-actions';\nimport { ENUMERATION_TYPE, OPERATORS, SORTING_DIRECTIONS } from './constants';\nimport { DropdownMenuRadioItemCustom } from './dropdown-menu-helper';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuRadioItemV2: DropdownMenuRadioItem,\n\tDropdownMenuSeparatorV2: DropdownMenuSeparator,\n\tDropdownMenuItemLabelV2: DropdownMenuItemLabel,\n\tDropdownMenuItemHelpTextV2: DropdownMenuItemHelpText,\n} = unlock( componentsPrivateApis );\n\nconst sortArrows = { asc: '↑', desc: '↓' };\n\nconst sanitizeOperators = ( field ) => {\n\tlet operators = field.filterBy?.operators;\n\tif ( ! operators || ! Array.isArray( operators ) ) {\n\t\toperators = Object.keys( OPERATORS );\n\t}\n\treturn operators.filter( ( operator ) =>\n\t\tObject.keys( OPERATORS ).includes( operator )\n\t);\n};\n\nconst HeaderMenu = forwardRef( function HeaderMenu(\n\t{ field, view, onChangeView, onHide },\n\tref\n) {\n\tconst isHidable = field.enableHiding !== false;\n\n\tconst isSortable = field.enableSorting !== false;\n\tconst isSorted = view.sort?.field === field.id;\n\n\tlet filter, filterInView, activeElement, activeOperator, otherFilters;\n\tconst operators = sanitizeOperators( field );\n\tif ( field.type === ENUMERATION_TYPE && operators.length > 0 ) {\n\t\tfilter = {\n\t\t\tfield: field.id,\n\t\t\toperators,\n\t\t\telements: field.elements || [],\n\t\t};\n\t\tfilterInView = view.filters.find( ( f ) => f.field === filter.field );\n\t\totherFilters = view.filters.filter( ( f ) => f.field !== filter.field );\n\t\tactiveElement = filter.elements.find(\n\t\t\t( element ) => element.value === filterInView?.value\n\t\t);\n\t\tactiveOperator = filterInView?.operator || filter.operators[ 0 ];\n\t}\n\tconst isFilterable = !! filter;\n\n\tif ( ! isSortable && ! isHidable && ! isFilterable ) {\n\t\treturn field.header;\n\t}\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\talign=\"start\"\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tclassName=\"dataviews-view-table-header-button\"\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t>\n\t\t\t\t\t{ field.header }\n\t\t\t\t\t{ isSorted && (\n\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t{ isSorted && sortArrows[ view.sort.direction ] }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</Button>\n\t\t\t}\n\t\t\tstyle={ { minWidth: '240px' } }\n\t\t>\n\t\t\t<WithSeparators>\n\t\t\t\t{ isSortable && (\n\t\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t\t{ Object.entries( SORTING_DIRECTIONS ).map(\n\t\t\t\t\t\t\t( [ direction, info ] ) => {\n\t\t\t\t\t\t\t\tconst isChecked =\n\t\t\t\t\t\t\t\t\tisSorted &&\n\t\t\t\t\t\t\t\t\tview.sort.direction === direction;\n\n\t\t\t\t\t\t\t\tconst value = `${ field.id }-${ direction }`;\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<DropdownMenuRadioItem\n\t\t\t\t\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\t\t\t\t\t// All sorting radio items share the same name, so that\n\t\t\t\t\t\t\t\t\t\t// selecting a sorting option automatically deselects the\n\t\t\t\t\t\t\t\t\t\t// previously selected one, even if it is displayed in\n\t\t\t\t\t\t\t\t\t\t// another submenu. The field and direction are passed via\n\t\t\t\t\t\t\t\t\t\t// the `value` prop.\n\t\t\t\t\t\t\t\t\t\tname=\"view-table-sorting\"\n\t\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\t\tchecked={ isChecked }\n\t\t\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\tsort: {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfield: field.id,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdirection,\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t{ info.label }\n\t\t\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t</DropdownMenuRadioItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenuGroup>\n\t\t\t\t) }\n\t\t\t\t{ isHidable && (\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\tprefix={ <Icon icon={ unseen } /> }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonHide( field );\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\thiddenFields: view.hiddenFields.concat(\n\t\t\t\t\t\t\t\t\tfield.id\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t{ __( 'Hide' ) }\n\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t) }\n\t\t\t\t{ isFilterable && (\n\t\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\tkey={ filter.field }\n\t\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\t\t\t\tprefix={ <Icon icon={ funnel } /> }\n\t\t\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t\t\tactiveElement && (\n\t\t\t\t\t\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ activeOperator in OPERATORS &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t`${ OPERATORS[ activeOperator ].label } ` }\n\t\t\t\t\t\t\t\t\t\t\t\t{ activeElement?.label }\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Filter by' ) }\n\t\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<WithSeparators>\n\t\t\t\t\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t\t\t\t\t{ filter.elements.map( ( element ) => {\n\t\t\t\t\t\t\t\t\t\tconst isActive =\n\t\t\t\t\t\t\t\t\t\t\tactiveElement?.value ===\n\t\t\t\t\t\t\t\t\t\t\telement.value;\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<DropdownMenuRadioItemCustom\n\t\t\t\t\t\t\t\t\t\t\t\tkey={ element.value }\n\t\t\t\t\t\t\t\t\t\t\t\tname={ `view-table-${ filter.field }` }\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={ element.value }\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={ isActive }\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilters: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...otherFilters,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield: filter.field,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toperator:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tactiveOperator,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: isActive\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: element.value,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ element.label }\n\t\t\t\t\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t\t{ !! element.description && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<DropdownMenuItemHelpText>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ element.description }\n\t\t\t\t\t\t\t\t\t\t\t\t\t</DropdownMenuItemHelpText>\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t</DropdownMenuRadioItemCustom>\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t</DropdownMenuGroup>\n\t\t\t\t\t\t\t\t{ filter.operators.length > 1 && (\n\t\t\t\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tOPERATORS[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tactiveOperator\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]?.label\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Conditions' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ Object.entries( OPERATORS ).map(\n\t\t\t\t\t\t\t\t\t\t\t( [\n\t\t\t\t\t\t\t\t\t\t\t\toperator,\n\t\t\t\t\t\t\t\t\t\t\t\t{ label, key },\n\t\t\t\t\t\t\t\t\t\t\t] ) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<DropdownMenuRadioItem\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ key }\n\t\t\t\t\t\t\t\t\t\t\t\t\tname={ `view-table-${ filter.field }-conditions` }\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={ operator }\n\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tactiveOperator ===\n\t\t\t\t\t\t\t\t\t\t\t\t\t\toperator\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={ ( e ) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilters: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...otherFilters,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield: filter.field,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toperator:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.target\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.value,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: filterInView?.value,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t\t</DropdownMenuRadioItem>\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</DropdownMenu>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</WithSeparators>\n\t\t\t\t\t\t</DropdownMenu>\n\t\t\t\t\t</DropdownMenuGroup>\n\t\t\t\t) }\n\t\t\t</WithSeparators>\n\t\t</DropdownMenu>\n\t);\n} );\n\nfunction WithSeparators( { children } ) {\n\treturn Children.toArray( children )\n\t\t.filter( Boolean )\n\t\t.map( ( child, i ) => (\n\t\t\t<Fragment key={ i }>\n\t\t\t\t{ i > 0 && <DropdownMenuSeparator /> }\n\t\t\t\t{ child }\n\t\t\t</Fragment>\n\t\t) );\n}\n\nfunction ViewTable( {\n\tview,\n\tonChangeView,\n\tfields,\n\tactions,\n\tdata,\n\tgetItemId,\n\tisLoading = false,\n\tdeferredRendering,\n} ) {\n\tconst headerMenuRefs = useRef( new Map() );\n\tconst headerMenuToFocusRef = useRef();\n\tconst [ nextHeaderMenuToFocus, setNextHeaderMenuToFocus ] = useState();\n\n\tuseEffect( () => {\n\t\tif ( headerMenuToFocusRef.current ) {\n\t\t\theaderMenuToFocusRef.current.focus();\n\t\t\theaderMenuToFocusRef.current = undefined;\n\t\t}\n\t} );\n\n\tconst asyncData = useAsyncList( data );\n\tconst tableNoticeId = useId();\n\n\tif ( nextHeaderMenuToFocus ) {\n\t\t// If we need to force focus, we short-circuit rendering here\n\t\t// to prevent any additional work while we handle that.\n\t\t// Clearing out the focus directive is necessary to make sure\n\t\t// future renders don't cause unexpected focus jumps.\n\t\theaderMenuToFocusRef.current = nextHeaderMenuToFocus;\n\t\tsetNextHeaderMenuToFocus();\n\t\treturn;\n\t}\n\n\tconst onHide = ( field ) => {\n\t\tconst hidden = headerMenuRefs.current.get( field.id );\n\t\tconst fallback = headerMenuRefs.current.get( hidden.fallback );\n\t\tsetNextHeaderMenuToFocus( fallback?.node );\n\t};\n\tconst visibleFields = fields.filter(\n\t\t( field ) =>\n\t\t\t! view.hiddenFields.includes( field.id ) &&\n\t\t\t! [ view.layout.mediaField, view.layout.primaryField ].includes(\n\t\t\t\tfield.id\n\t\t\t)\n\t);\n\tconst usedData = deferredRendering ? asyncData : data;\n\tconst hasData = !! usedData?.length;\n\tconst sortValues = { asc: 'ascending', desc: 'descending' };\n\n\treturn (\n\t\t<div>\n\t\t\t<table\n\t\t\t\tclassName=\"dataviews-view-table\"\n\t\t\t\taria-busy={ isLoading }\n\t\t\t\taria-describedby={ tableNoticeId }\n\t\t\t>\n\t\t\t\t<thead>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t{ visibleFields.map( ( field, index ) => (\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\twidth: field.width || undefined,\n\t\t\t\t\t\t\t\t\tminWidth: field.minWidth || undefined,\n\t\t\t\t\t\t\t\t\tmaxWidth: field.maxWidth || undefined,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tdata-field-id={ field.id }\n\t\t\t\t\t\t\t\taria-sort={\n\t\t\t\t\t\t\t\t\tview.sort?.field === field.id &&\n\t\t\t\t\t\t\t\t\tsortValues[ view.sort.direction ]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<HeaderMenu\n\t\t\t\t\t\t\t\t\tref={ ( node ) => {\n\t\t\t\t\t\t\t\t\t\tif ( node ) {\n\t\t\t\t\t\t\t\t\t\t\theaderMenuRefs.current.set(\n\t\t\t\t\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t\t\t\t\t\t\t\tfallback:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvisibleFields[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? index - 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t]?.id,\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\theaderMenuRefs.current.delete(\n\t\t\t\t\t\t\t\t\t\t\t\tfield.id\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\t\tonHide={ onHide }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t{ !! actions?.length && (\n\t\t\t\t\t\t\t<th data-field-id=\"actions\">\n\t\t\t\t\t\t\t\t<span className=\"dataviews-view-table-header\">\n\t\t\t\t\t\t\t\t\t{ __( 'Actions' ) }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t<tbody>\n\t\t\t\t\t{ hasData &&\n\t\t\t\t\t\tusedData.map( ( item ) => (\n\t\t\t\t\t\t\t<tr key={ getItemId( item ) }>\n\t\t\t\t\t\t\t\t{ visibleFields.map( ( field ) => (\n\t\t\t\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\t\twidth: field.width || undefined,\n\t\t\t\t\t\t\t\t\t\t\tminWidth:\n\t\t\t\t\t\t\t\t\t\t\t\tfield.minWidth || undefined,\n\t\t\t\t\t\t\t\t\t\t\tmaxWidth:\n\t\t\t\t\t\t\t\t\t\t\t\tfield.maxWidth || undefined,\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ field.render( {\n\t\t\t\t\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t{ !! actions?.length && (\n\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t<ItemActions\n\t\t\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t) ) }\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t\t<div\n\t\t\t\tclassName={ classNames( {\n\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t'dataviews-no-results': ! hasData && ! isLoading,\n\t\t\t\t} ) }\n\t\t\t\tid={ tableNoticeId }\n\t\t\t>\n\t\t\t\t{ ! hasData && (\n\t\t\t\t\t<p>{ isLoading ? __( 'Loading…' ) : __( 'No results' ) }</p>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nexport default ViewTable;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst info = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M12 3.2c-4.8 0-8.8 3.9-8.8 8.8 0 4.8 3.9 8.8 8.8 8.8 4.8 0 8.8-3.9 8.8-8.8 0-4.8-4-8.8-8.8-8.8zm0 16c-4 0-7.2-3.3-7.2-7.2C4.8 8 8 4.8 12 4.8s7.2 3.3 7.2 7.2c0 4-3.2 7.2-7.2 7.2zM11 17h2v-6h-2v6zm0-8h2V7h-2v2z\" />\n\t</SVG>\n);\n\nexport default info;\n","/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport {\n\tblockTable,\n\tcategory,\n\tformatListBullets,\n\tformatListBulletsRTL,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport ViewTable from './view-table';\nimport ViewGrid from './view-grid';\nimport ViewList from './view-list';\n\n// Field types.\nexport const ENUMERATION_TYPE = 'enumeration';\n\n// Filter operators.\nexport const OPERATOR_IN = 'in';\nexport const OPERATOR_NOT_IN = 'notIn';\nexport const OPERATORS = {\n\t[ OPERATOR_IN ]: {\n\t\tkey: 'in-filter',\n\t\tlabel: __( 'Is' ),\n\t},\n\t[ OPERATOR_NOT_IN ]: {\n\t\tkey: 'not-in-filter',\n\t\tlabel: __( 'Is not' ),\n\t},\n};\n\n// Sorting\nexport const SORTING_DIRECTIONS = {\n\tasc: { label: __( 'Sort ascending' ) },\n\tdesc: { label: __( 'Sort descending' ) },\n};\n\n// View layouts.\nexport const LAYOUT_TABLE = 'table';\nexport const LAYOUT_GRID = 'grid';\nexport const LAYOUT_LIST = 'list';\n\nexport const VIEW_LAYOUTS = [\n\t{\n\t\ttype: LAYOUT_TABLE,\n\t\tlabel: __( 'Table' ),\n\t\tcomponent: ViewTable,\n\t\ticon: blockTable,\n\t},\n\t{\n\t\ttype: LAYOUT_GRID,\n\t\tlabel: __( 'Grid' ),\n\t\tcomponent: ViewGrid,\n\t\ticon: category,\n\t},\n\t{\n\t\ttype: LAYOUT_LIST,\n\t\tlabel: __( 'List' ),\n\t\tcomponent: ViewList,\n\t\ticon: isRTL() ? formatListBulletsRTL : formatListBullets,\n\t},\n];\n","/**\n * WordPress dependencies\n */\nimport {\n\tFlexBlock,\n\t__experimentalGrid as Grid,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useAsyncList } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport ItemActions from './item-actions';\n\nexport default function ViewGrid( {\n\tdata,\n\tfields,\n\tview,\n\tactions,\n\tgetItemId,\n\tdeferredRendering,\n} ) {\n\tconst mediaField = fields.find(\n\t\t( field ) => field.id === view.layout.mediaField\n\t);\n\tconst primaryField = fields.find(\n\t\t( field ) => field.id === view.layout.primaryField\n\t);\n\tconst visibleFields = fields.filter(\n\t\t( field ) =>\n\t\t\t! view.hiddenFields.includes( field.id ) &&\n\t\t\t! [ view.layout.mediaField, view.layout.primaryField ].includes(\n\t\t\t\tfield.id\n\t\t\t)\n\t);\n\tconst shownData = useAsyncList( data, { step: 3 } );\n\tconst usedData = deferredRendering ? shownData : data;\n\treturn (\n\t\t<Grid\n\t\t\tgap={ 8 }\n\t\t\tcolumns={ 2 }\n\t\t\talignment=\"top\"\n\t\t\tclassName=\"dataviews-view-grid\"\n\t\t>\n\t\t\t{ usedData.map( ( item ) => (\n\t\t\t\t<VStack\n\t\t\t\t\tspacing={ 3 }\n\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\tclassName=\"dataviews-view-grid__card\"\n\t\t\t\t>\n\t\t\t\t\t<div className=\"dataviews-view-grid__media\">\n\t\t\t\t\t\t{ mediaField?.render( { item } ) }\n\t\t\t\t\t</div>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tclassName=\"dataviews-view-grid__primary-field\"\n\t\t\t\t\t\tjustify=\"space-between\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<FlexBlock>\n\t\t\t\t\t\t\t{ primaryField?.render( { item } ) }\n\t\t\t\t\t\t</FlexBlock>\n\t\t\t\t\t\t<ItemActions\n\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\tisCompact\n\t\t\t\t\t\t/>\n\t\t\t\t\t</HStack>\n\t\t\t\t\t<VStack\n\t\t\t\t\t\tclassName=\"dataviews-view-grid__fields\"\n\t\t\t\t\t\tspacing={ 3 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ visibleFields.map( ( field ) => {\n\t\t\t\t\t\t\tconst renderedValue = field.render( {\n\t\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tif ( ! renderedValue ) {\n\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<VStack\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field\"\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div className=\"dataviews-view-grid__field-header\">\n\t\t\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div className=\"dataviews-view-grid__field-value\">\n\t\t\t\t\t\t\t\t\t\t{ renderedValue }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</VStack>\n\t\t\t\t</VStack>\n\t\t\t) ) }\n\t\t</Grid>\n\t);\n}\n","/**\n * External dependencies\n */\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useAsyncList } from '@wordpress/compose';\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n} from '@wordpress/components';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\nimport { info } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\n\nexport default function ViewList( {\n\tview,\n\tfields,\n\tdata,\n\tgetItemId,\n\tonSelectionChange,\n\tonDetailsChange,\n\tselection,\n\tdeferredRendering,\n} ) {\n\tconst shownData = useAsyncList( data, { step: 3 } );\n\tconst usedData = deferredRendering ? shownData : data;\n\tconst mediaField = fields.find(\n\t\t( field ) => field.id === view.layout.mediaField\n\t);\n\tconst primaryField = fields.find(\n\t\t( field ) => field.id === view.layout.primaryField\n\t);\n\tconst visibleFields = fields.filter(\n\t\t( field ) =>\n\t\t\t! view.hiddenFields.includes( field.id ) &&\n\t\t\t! [ view.layout.primaryField, view.layout.mediaField ].includes(\n\t\t\t\tfield.id\n\t\t\t)\n\t);\n\n\tconst onEnter = ( item ) => ( event ) => {\n\t\tconst { keyCode } = event;\n\t\tif ( [ ENTER, SPACE ].includes( keyCode ) ) {\n\t\t\tonSelectionChange( [ item ] );\n\t\t}\n\t};\n\n\treturn (\n\t\t<ul className=\"dataviews-view-list\">\n\t\t\t{ usedData.map( ( item ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<li\n\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\tclassName={ classNames( {\n\t\t\t\t\t\t\t'is-selected': selection.includes( item.id ),\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<HStack className=\"dataviews-view-list__item-wrapper\">\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\t\t\ttabIndex={ 0 }\n\t\t\t\t\t\t\t\taria-pressed={ selection.includes( item.id ) }\n\t\t\t\t\t\t\t\tonKeyDown={ onEnter( item ) }\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__item\"\n\t\t\t\t\t\t\t\tonClick={ () => onSelectionChange( [ item ] ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<HStack spacing={ 3 } justify=\"start\">\n\t\t\t\t\t\t\t\t\t<div className=\"dataviews-view-list__media-wrapper\">\n\t\t\t\t\t\t\t\t\t\t{ mediaField?.render( { item } ) || (\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"dataviews-view-list__media-placeholder\"></div>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t\t\t\t\t\t\t{ primaryField?.render( { item } ) }\n\t\t\t\t\t\t\t\t\t\t<div className=\"dataviews-view-list__fields\">\n\t\t\t\t\t\t\t\t\t\t\t{ visibleFields.map( ( field ) => {\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__field\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ field.render( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{ onDetailsChange && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__details-button\"\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tonDetailsChange( [ item ] )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\ticon={ info }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'View details' ) }\n\t\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</li>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ul>\n\t);\n}\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { __experimentalHStack as HStack } from '@wordpress/components';\nimport { VIEW_LAYOUTS } from '@wordpress/dataviews';\n\n/**\n * Internal dependencies\n */\nimport { useLink } from '../routes/link';\nimport SidebarNavigationItem from '../sidebar-navigation-item';\nimport { unlock } from '../../lock-unlock';\nconst { useLocation } = unlock( routerPrivateApis );\n\nexport default function DataViewItem( {\n\ttitle,\n\tslug,\n\tcustomViewId,\n\ttype,\n\ticon,\n\tisActive,\n\tisCustom,\n\tsuffix,\n} ) {\n\tconst {\n\t\tparams: { path },\n\t} = useLocation();\n\n\tconst iconToUse =\n\t\ticon || VIEW_LAYOUTS.find( ( v ) => v.type === type ).icon;\n\n\tconst linkInfo = useLink( {\n\t\tpath,\n\t\tactiveView: isCustom === 'true' ? customViewId : slug,\n\t\tisCustom,\n\t} );\n\treturn (\n\t\t<HStack\n\t\t\tjustify=\"flex-start\"\n\t\t\tclassName={ classnames(\n\t\t\t\t'edit-site-sidebar-dataviews-dataview-item',\n\t\t\t\t{\n\t\t\t\t\t'is-selected': isActive,\n\t\t\t\t}\n\t\t\t) }\n\t\t>\n\t\t\t<SidebarNavigationItem\n\t\t\t\ticon={ iconToUse }\n\t\t\t\t{ ...linkInfo }\n\t\t\t\taria-current={ isActive ? 'true' : undefined }\n\t\t\t>\n\t\t\t\t{ title }\n\t\t\t</SidebarNavigationItem>\n\t\t\t{ suffix }\n\t\t</HStack>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport {\n\tModal,\n\tTextControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch, resolveSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState } from '@wordpress/element';\nimport { plus } from '@wordpress/icons';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationItem from '../sidebar-navigation-item';\nimport { DEFAULT_VIEWS } from './default-views';\nimport { unlock } from '../../lock-unlock';\n\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\n\nfunction AddNewItemModalContent( { type, setIsAdding } ) {\n\tconst {\n\t\tparams: { path },\n\t} = useLocation();\n\tconst history = useHistory();\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst [ title, setTitle ] = useState( '' );\n\tconst [ isSaving, setIsSaving ] = useState( false );\n\treturn (\n\t\t<form\n\t\t\tonSubmit={ async ( event ) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tsetIsSaving( true );\n\t\t\t\tconst { getEntityRecords } = resolveSelect( coreStore );\n\t\t\t\tlet dataViewTaxonomyId;\n\t\t\t\tconst dataViewTypeRecords = await getEntityRecords(\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\t'wp_dataviews_type',\n\t\t\t\t\t{ slug: type }\n\t\t\t\t);\n\t\t\t\tif ( dataViewTypeRecords && dataViewTypeRecords.length > 0 ) {\n\t\t\t\t\tdataViewTaxonomyId = dataViewTypeRecords[ 0 ].id;\n\t\t\t\t} else {\n\t\t\t\t\tconst record = await saveEntityRecord(\n\t\t\t\t\t\t'taxonomy',\n\t\t\t\t\t\t'wp_dataviews_type',\n\t\t\t\t\t\t{ name: type }\n\t\t\t\t\t);\n\t\t\t\t\tif ( record && record.id ) {\n\t\t\t\t\t\tdataViewTaxonomyId = record.id;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst savedRecord = await saveEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_dataviews',\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tstatus: 'publish',\n\t\t\t\t\t\twp_dataviews_type: dataViewTaxonomyId,\n\t\t\t\t\t\tcontent: JSON.stringify(\n\t\t\t\t\t\t\tDEFAULT_VIEWS[ type ][ 0 ].view\n\t\t\t\t\t\t),\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\thistory.push( {\n\t\t\t\t\tpath,\n\t\t\t\t\tactiveView: savedRecord.id,\n\t\t\t\t\tisCustom: 'true',\n\t\t\t\t} );\n\t\t\t\tsetIsSaving( false );\n\t\t\t\tsetIsAdding( false );\n\t\t\t} }\n\t\t>\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\tvalue={ title }\n\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\tplaceholder={ __( 'My view' ) }\n\t\t\t\t\tclassName=\"patterns-create-modal__name-input\"\n\t\t\t\t/>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetIsAdding( false );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\taria-disabled={ ! title || isSaving }\n\t\t\t\t\t\tisBusy={ isSaving }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Create' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t</form>\n\t);\n}\n\nexport default function AddNewItem( { type } ) {\n\tconst [ isAdding, setIsAdding ] = useState( false );\n\treturn (\n\t\t<>\n\t\t\t<SidebarNavigationItem\n\t\t\t\ticon={ plus }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetIsAdding( true );\n\t\t\t\t} }\n\t\t\t\tclassName=\"dataviews__siderbar-content-add-new-item\"\n\t\t\t>\n\t\t\t\t{ __( 'New view' ) }\n\t\t\t</SidebarNavigationItem>\n\t\t\t{ isAdding && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Add new view' ) }\n\t\t\t\t\tonRequestClose={ () => {\n\t\t\t\t\t\tsetIsAdding( false );\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<AddNewItemModalContent\n\t\t\t\t\t\ttype={ type }\n\t\t\t\t\t\tsetIsAdding={ setIsAdding }\n\t\t\t\t\t/>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHeading as Heading,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\tTextControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n\tModal,\n} from '@wordpress/components';\nimport { useMemo, useState } from '@wordpress/element';\nimport { moreVertical } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport DataViewItem from './dataview-item';\nimport AddNewItem from './add-new-view';\nimport { unlock } from '../../lock-unlock';\n\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\n\nconst EMPTY_ARRAY = [];\n\nfunction RenameItemModalContent( { dataviewId, currentTitle, setIsRenaming } ) {\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst [ title, setTitle ] = useState( currentTitle );\n\treturn (\n\t\t<form\n\t\t\tonSubmit={ async ( event ) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tawait editEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_dataviews',\n\t\t\t\t\tdataviewId,\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\tsetIsRenaming( false );\n\t\t\t} }\n\t\t>\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\tvalue={ title }\n\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\tplaceholder={ __( 'My view' ) }\n\t\t\t\t\tclassName=\"patterns-create-modal__name-input\"\n\t\t\t\t/>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetIsRenaming( false );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\taria-disabled={ ! title }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Rename' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t</form>\n\t);\n}\n\nfunction CustomDataViewItem( { dataviewId, isActive } ) {\n\tconst {\n\t\tparams: { path },\n\t} = useLocation();\n\tconst history = useHistory();\n\tconst { dataview } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord } = select( coreStore );\n\t\t\treturn {\n\t\t\t\tdataview: getEditedEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_dataviews',\n\t\t\t\t\tdataviewId\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ dataviewId ]\n\t);\n\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\tconst type = useMemo( () => {\n\t\tconst viewContent = JSON.parse( dataview.content );\n\t\treturn viewContent.type;\n\t}, [ dataview.content ] );\n\tconst [ isRenaming, setIsRenaming ] = useState( false );\n\treturn (\n\t\t<>\n\t\t\t<DataViewItem\n\t\t\t\ttitle={ dataview.title }\n\t\t\t\ttype={ type }\n\t\t\t\tisActive={ isActive }\n\t\t\t\tisCustom=\"true\"\n\t\t\t\tcustomViewId={ dataviewId }\n\t\t\t\tsuffix={\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\t\tclassName=\"edit-site-sidebar-dataviews-dataview-item__dropdown-menu\"\n\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\tcolor: 'inherit',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tsize: 'small',\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetIsRenaming( true );\n\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Rename' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\t\t\t\tawait deleteEntityRecord(\n\t\t\t\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\t\t\t\t'wp_dataviews',\n\t\t\t\t\t\t\t\t\t\t\tdataview.id,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tforce: true,\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tif ( isActive ) {\n\t\t\t\t\t\t\t\t\t\t\thistory.replace( {\n\t\t\t\t\t\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ isRenaming && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Rename view' ) }\n\t\t\t\t\tonRequestClose={ () => {\n\t\t\t\t\t\tsetIsRenaming( false );\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<RenameItemModalContent\n\t\t\t\t\t\tdataviewId={ dataviewId }\n\t\t\t\t\t\tsetIsRenaming={ setIsRenaming }\n\t\t\t\t\t\tcurrentTitle={ dataview.title }\n\t\t\t\t\t/>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport function useCustomDataViews( type ) {\n\tconst customDataViews = useSelect( ( select ) => {\n\t\tconst { getEntityRecords } = select( coreStore );\n\t\tconst dataViewTypeRecords = getEntityRecords(\n\t\t\t'taxonomy',\n\t\t\t'wp_dataviews_type',\n\t\t\t{ slug: type }\n\t\t);\n\t\tif ( ! dataViewTypeRecords || dataViewTypeRecords.length === 0 ) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\tconst dataViews = getEntityRecords( 'postType', 'wp_dataviews', {\n\t\t\twp_dataviews_type: dataViewTypeRecords[ 0 ].id,\n\t\t\torderby: 'date',\n\t\t\torder: 'asc',\n\t\t} );\n\t\tif ( ! dataViews ) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\treturn dataViews;\n\t} );\n\treturn customDataViews;\n}\n\nexport default function CustomDataViewsList( { type, activeView, isCustom } ) {\n\tconst customDataViews = useCustomDataViews( type );\n\treturn (\n\t\t<>\n\t\t\t<div className=\"edit-site-sidebar-navigation-screen-dataviews__group-header\">\n\t\t\t\t<Heading level={ 2 }>{ __( 'Custom Views' ) }</Heading>\n\t\t\t</div>\n\t\t\t<ItemGroup>\n\t\t\t\t{ customDataViews.map( ( customViewRecord ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<CustomDataViewItem\n\t\t\t\t\t\t\tkey={ customViewRecord.id }\n\t\t\t\t\t\t\tdataviewId={ customViewRecord.id }\n\t\t\t\t\t\t\tisActive={\n\t\t\t\t\t\t\t\tisCustom === 'true' &&\n\t\t\t\t\t\t\t\tNumber( activeView ) === customViewRecord.id\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t\t<AddNewItem type={ type } />\n\t\t\t</ItemGroup>\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __experimentalItemGroup as ItemGroup } from '@wordpress/components';\n\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n/**\n * Internal dependencies\n */\n\nimport { DEFAULT_VIEWS } from './default-views';\nimport { unlock } from '../../lock-unlock';\nconst { useLocation } = unlock( routerPrivateApis );\nimport DataViewItem from './dataview-item';\nimport CustomDataViewsList from './custom-dataviews-list';\n\nconst PATH_TO_TYPE = {\n\t'/page': 'page',\n};\n\nexport default function DataViewsSidebarContent() {\n\tconst {\n\t\tparams: { path, activeView = 'all', isCustom = 'false' },\n\t} = useLocation();\n\tif ( ! path || ! PATH_TO_TYPE[ path ] ) {\n\t\treturn null;\n\t}\n\tconst type = PATH_TO_TYPE[ path ];\n\n\treturn (\n\t\t<>\n\t\t\t<ItemGroup>\n\t\t\t\t{ DEFAULT_VIEWS[ type ].map( ( dataview ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<DataViewItem\n\t\t\t\t\t\t\tkey={ dataview.slug }\n\t\t\t\t\t\t\tslug={ dataview.slug }\n\t\t\t\t\t\t\ttitle={ dataview.title }\n\t\t\t\t\t\t\ticon={ dataview.icon }\n\t\t\t\t\t\t\ttype={ dataview.view.type }\n\t\t\t\t\t\t\tisActive={\n\t\t\t\t\t\t\t\tisCustom === 'false' &&\n\t\t\t\t\t\t\t\tdataview.slug === activeView\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisCustom=\"false\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ItemGroup>\n\t\t\t<CustomDataViewsList\n\t\t\t\tactiveView={ activeView }\n\t\t\t\ttype={ type }\n\t\t\t\tisCustom=\"true\"\n\t\t\t/>\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalTruncate as Truncate,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { layout } from '@wordpress/icons';\nimport { useMemo } from '@wordpress/element';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useLink } from '../routes/link';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\nimport SidebarNavigationItem from '../sidebar-navigation-item';\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport DataViewsSidebarContent from '../sidebar-dataviews';\n\nconst PageItem = ( { postType = 'page', postId, ...props } ) => {\n\tconst linkInfo = useLink(\n\t\t{\n\t\t\tpostType,\n\t\t\tpostId,\n\t\t},\n\t\t{\n\t\t\tbackPath: '/page',\n\t\t}\n\t);\n\treturn <SidebarNavigationItem { ...linkInfo } { ...props } />;\n};\n\nexport default function SidebarNavigationScreenPagesDataViews() {\n\tconst { records: templateRecords } = useEntityRecords(\n\t\t'postType',\n\t\tTEMPLATE_POST_TYPE,\n\t\t{\n\t\t\tper_page: -1,\n\t\t}\n\t);\n\tconst templates = useMemo(\n\t\t() =>\n\t\t\ttemplateRecords?.filter( ( { slug } ) =>\n\t\t\t\t[ '404', 'search' ].includes( slug )\n\t\t\t),\n\t\t[ templateRecords ]\n\t);\n\n\treturn (\n\t\t<SidebarNavigationScreen\n\t\t\ttitle={ __( 'Pages' ) }\n\t\t\tcontent={ <DataViewsSidebarContent /> }\n\t\t\tfooter={\n\t\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t\t{ templates?.map( ( item ) => (\n\t\t\t\t\t\t<PageItem\n\t\t\t\t\t\t\tpostType={ TEMPLATE_POST_TYPE }\n\t\t\t\t\t\t\tpostId={ item.id }\n\t\t\t\t\t\t\tkey={ item.id }\n\t\t\t\t\t\t\ticon={ layout }\n\t\t\t\t\t\t\twithChevron\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Truncate numberOfLines={ 1 }>\n\t\t\t\t\t\t\t\t{ decodeEntities(\n\t\t\t\t\t\t\t\t\titem.title?.rendered || __( '(no title)' )\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t</PageItem>\n\t\t\t\t\t) ) }\n\t\t\t\t</VStack>\n\t\t\t}\n\t\t/>\n\t);\n}\n","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"dom\"];","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"escapeHtml\"];","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"wordcount\"];","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { dateI18n, getDate, humanTimeDiff } from '@wordpress/date';\nimport { createInterpolateElement } from '@wordpress/element';\n\nexport default function StatusLabel( { status, date, short } ) {\n\tconst relateToNow = humanTimeDiff( date );\n\tlet statusLabel = status;\n\tswitch ( status ) {\n\t\tcase 'publish':\n\t\t\tstatusLabel = date\n\t\t\t\t? createInterpolateElement(\n\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t/* translators: %s: is the relative time when the post was published. */\n\t\t\t\t\t\t\t__( 'Published <time>%s</time>' ),\n\t\t\t\t\t\t\trelateToNow\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{ time: <time dateTime={ date } /> }\n\t\t\t\t  )\n\t\t\t\t: __( 'Published' );\n\t\t\tbreak;\n\t\tcase 'future':\n\t\t\tconst formattedDate = dateI18n(\n\t\t\t\tshort ? 'M j' : 'F j',\n\t\t\t\tgetDate( date )\n\t\t\t);\n\t\t\tstatusLabel = date\n\t\t\t\t? createInterpolateElement(\n\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t/* translators: %s: is the formatted date and time on which the post is scheduled to be published. */\n\t\t\t\t\t\t\t__( 'Scheduled: <time>%s</time>' ),\n\t\t\t\t\t\t\tformattedDate\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{ time: <time dateTime={ date } /> }\n\t\t\t\t  )\n\t\t\t\t: __( 'Scheduled' );\n\t\t\tbreak;\n\t\tcase 'draft':\n\t\t\tstatusLabel = __( 'Draft' );\n\t\t\tbreak;\n\t\tcase 'pending':\n\t\t\tstatusLabel = __( 'Pending' );\n\t\t\tbreak;\n\t\tcase 'private':\n\t\t\tstatusLabel = __( 'Private' );\n\t\t\tbreak;\n\t\tcase 'protected':\n\t\t\tstatusLabel = __( 'Password protected' );\n\t\t\tbreak;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames(\n\t\t\t\t'edit-site-sidebar-navigation-screen-page__status',\n\t\t\t\t{\n\t\t\t\t\t[ `has-status has-${ status }-status` ]: !! status,\n\t\t\t\t}\n\t\t\t) }\n\t\t>\n\t\t\t{ statusLabel }\n\t\t</div>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { __experimentalTruncate as Truncate } from '@wordpress/components';\nimport { count as wordCount } from '@wordpress/wordcount';\nimport { useSelect } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as coreStore, useEntityRecord } from '@wordpress/core-data';\nimport { safeDecodeURIComponent } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport StatusLabel from './status-label';\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport {\n\tSidebarNavigationScreenDetailsPanel,\n\tSidebarNavigationScreenDetailsPanelRow,\n\tSidebarNavigationScreenDetailsPanelLabel,\n\tSidebarNavigationScreenDetailsPanelValue,\n} from '../sidebar-navigation-screen-details-panel';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\n// Taken from packages/editor/src/components/time-to-read/index.js.\nconst AVERAGE_READING_RATE = 189;\n\nfunction getPageDetails( page ) {\n\tif ( ! page ) {\n\t\treturn [];\n\t}\n\n\tconst details = [\n\t\t{\n\t\t\tlabel: __( 'Status' ),\n\t\t\tvalue: (\n\t\t\t\t<StatusLabel\n\t\t\t\t\tstatus={ page?.password ? 'protected' : page.status }\n\t\t\t\t\tdate={ page?.date }\n\t\t\t\t\tshort\n\t\t\t\t/>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tlabel: __( 'Slug' ),\n\t\t\tvalue: (\n\t\t\t\t<Truncate numberOfLines={ 1 }>\n\t\t\t\t\t{ safeDecodeURIComponent(\n\t\t\t\t\t\tpage.slug || page.generated_slug\n\t\t\t\t\t) }\n\t\t\t\t</Truncate>\n\t\t\t),\n\t\t},\n\t];\n\n\tif ( page?.templateTitle ) {\n\t\tdetails.push( {\n\t\t\tlabel: __( 'Template' ),\n\t\t\tvalue: decodeEntities( page.templateTitle ),\n\t\t} );\n\t}\n\n\tif ( page?.parentTitle ) {\n\t\tdetails.push( {\n\t\t\tlabel: __( 'Parent' ),\n\t\t\tvalue: decodeEntities( page.parentTitle || __( '(no title)' ) ),\n\t\t} );\n\t}\n\n\t/*\n\t * translators: If your word count is based on single characters (e.g. East Asian characters),\n\t * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.\n\t * Do not translate into your own language.\n\t */\n\tconst wordCountType = _x( 'words', 'Word count type. Do not translate!' );\n\tconst wordsCounted = page?.content?.rendered\n\t\t? wordCount( page.content.rendered, wordCountType )\n\t\t: 0;\n\tconst readingTime = Math.round( wordsCounted / AVERAGE_READING_RATE );\n\n\tif ( wordsCounted && ! page?.isPostsPage ) {\n\t\tdetails.push(\n\t\t\t{\n\t\t\t\tlabel: __( 'Words' ),\n\t\t\t\tvalue: wordsCounted.toLocaleString() || __( 'Unknown' ),\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: __( 'Time to read' ),\n\t\t\t\tvalue:\n\t\t\t\t\treadingTime > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: is the number of minutes. */\n\t\t\t\t\t\t\t\t__( '%s mins' ),\n\t\t\t\t\t\t\t\treadingTime.toLocaleString()\n\t\t\t\t\t\t  )\n\t\t\t\t\t\t: __( '< 1 min' ),\n\t\t\t}\n\t\t);\n\t}\n\treturn details;\n}\n\nexport default function PageDetails( { id } ) {\n\tconst { record } = useEntityRecord( 'postType', 'page', id );\n\tconst { parentTitle, templateTitle, isPostsPage } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedPostId } = unlock( select( editSiteStore ) );\n\t\t\tconst template = select( coreStore ).getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\tgetEditedPostId()\n\t\t\t);\n\t\t\tconst _templateTitle = template?.title?.rendered;\n\n\t\t\t// Parent page title.\n\t\t\tconst _parentTitle = record?.parent\n\t\t\t\t? select( coreStore ).getEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t'page',\n\t\t\t\t\t\trecord.parent,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t_fields: [ 'title' ],\n\t\t\t\t\t\t}\n\t\t\t\t  )?.title?.rendered\n\t\t\t\t: null;\n\n\t\t\tconst { getEntityRecord } = select( coreStore );\n\t\t\tconst siteSettings = getEntityRecord( 'root', 'site' );\n\n\t\t\treturn {\n\t\t\t\tparentTitle: _parentTitle,\n\t\t\t\ttemplateTitle: _templateTitle,\n\t\t\t\tisPostsPage: record?.id === siteSettings?.page_for_posts,\n\t\t\t};\n\t\t},\n\t\t[ record?.parent, record?.id ]\n\t);\n\treturn (\n\t\t<SidebarNavigationScreenDetailsPanel\n\t\t\tspacing={ 5 }\n\t\t\ttitle={ __( 'Details' ) }\n\t\t>\n\t\t\t{ getPageDetails( {\n\t\t\t\tparentTitle,\n\t\t\t\ttemplateTitle,\n\t\t\t\tisPostsPage,\n\t\t\t\t...record,\n\t\t\t} ).map( ( { label, value } ) => (\n\t\t\t\t<SidebarNavigationScreenDetailsPanelRow key={ label }>\n\t\t\t\t\t<SidebarNavigationScreenDetailsPanelLabel>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</SidebarNavigationScreenDetailsPanelLabel>\n\t\t\t\t\t<SidebarNavigationScreenDetailsPanelValue>\n\t\t\t\t\t\t{ value }\n\t\t\t\t\t</SidebarNavigationScreenDetailsPanelValue>\n\t\t\t\t</SidebarNavigationScreenDetailsPanelRow>\n\t\t\t) ) }\n\t\t</SidebarNavigationScreenDetailsPanel>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { MenuItem } from '@wordpress/components';\nimport { store as noticesStore } from '@wordpress/notices';\n\nexport default function TrashPageMenuItem( { postId, onRemove } ) {\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\tconst page = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityRecord( 'postType', 'page', postId ),\n\t\t[ postId ]\n\t);\n\tasync function removePage() {\n\t\ttry {\n\t\t\tawait deleteEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'page',\n\t\t\t\tpostId,\n\t\t\t\t{},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: The page's title. */\n\t\t\t\t\t__( '\"%s\" moved to the Trash.' ),\n\t\t\t\t\tdecodeEntities( page.title.rendered )\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tid: 'edit-site-page-trashed',\n\t\t\t\t}\n\t\t\t);\n\t\t\tonRemove?.();\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __(\n\t\t\t\t\t\t\t'An error occurred while moving the page to the trash.'\n\t\t\t\t\t  );\n\n\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t}\n\t}\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\tonClick={ () => removePage() }\n\t\t\t\tisDestructive\n\t\t\t\tvariant=\"secondary\"\n\t\t\t>\n\t\t\t\t{ __( 'Move to Trash' ) }\n\t\t\t</MenuItem>\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { DropdownMenu, MenuGroup } from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport TrashPageMenuItem from './trash-page-menu-item';\n\nexport default function PageActions( { postId, toggleProps, onRemove } ) {\n\treturn (\n\t\t<DropdownMenu\n\t\t\ticon={ moreVertical }\n\t\t\tlabel={ __( 'Actions' ) }\n\t\t\ttoggleProps={ toggleProps }\n\t\t>\n\t\t\t{ () => (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t<TrashPageMenuItem\n\t\t\t\t\t\tpostId={ postId }\n\t\t\t\t\t\tonRemove={ onRemove }\n\t\t\t\t\t/>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalVStack as VStack,\n\tExternalLink,\n\t__experimentalTruncate as Truncate,\n} from '@wordpress/components';\nimport { store as coreStore, useEntityRecord } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { pencil } from '@wordpress/icons';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport { escapeAttribute } from '@wordpress/escape-html';\nimport { safeDecodeURIComponent, filterURLForDisplay } from '@wordpress/url';\nimport { useEffect } from '@wordpress/element';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationScreen from '../sidebar-navigation-screen';\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport SidebarButton from '../sidebar-button';\nimport PageDetails from './page-details';\nimport PageActions from '../page-actions';\nimport SidebarNavigationScreenDetailsFooter from '../sidebar-navigation-screen-details-footer';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nexport default function SidebarNavigationScreenPage( { backPath } ) {\n\tconst { setCanvasMode } = unlock( useDispatch( editSiteStore ) );\n\tconst history = useHistory();\n\tconst {\n\t\tparams: { postId },\n\t\tgoTo,\n\t} = useNavigator();\n\tconst { record, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'page',\n\t\tpostId\n\t);\n\n\tconst { featuredMediaAltText, featuredMediaSourceUrl } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecord } = select( coreStore );\n\t\t\t// Featured image.\n\t\t\tconst attachedMedia = record?.featured_media\n\t\t\t\t? getEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t'attachment',\n\t\t\t\t\t\trecord?.featured_media\n\t\t\t\t  )\n\t\t\t\t: null;\n\n\t\t\treturn {\n\t\t\t\tfeaturedMediaSourceUrl:\n\t\t\t\t\tattachedMedia?.media_details.sizes?.medium?.source_url ||\n\t\t\t\t\tattachedMedia?.source_url,\n\t\t\t\tfeaturedMediaAltText: escapeAttribute(\n\t\t\t\t\tattachedMedia?.alt_text ||\n\t\t\t\t\t\tattachedMedia?.description?.raw ||\n\t\t\t\t\t\t''\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ record ]\n\t);\n\n\t// Redirect to the main pages navigation screen if the page is not found or has been deleted.\n\tuseEffect( () => {\n\t\tif ( hasResolved && ! record ) {\n\t\t\thistory.push( {\n\t\t\t\tpath: '/page',\n\t\t\t\tpostId: undefined,\n\t\t\t\tpostType: undefined,\n\t\t\t\tcanvas: 'view',\n\t\t\t} );\n\t\t}\n\t}, [ hasResolved, history ] );\n\n\tconst featureImageAltText = featuredMediaAltText\n\t\t? decodeEntities( featuredMediaAltText )\n\t\t: decodeEntities( record?.title?.rendered || __( 'Featured image' ) );\n\n\treturn record ? (\n\t\t<SidebarNavigationScreen\n\t\t\tbackPath={ backPath }\n\t\t\ttitle={ decodeEntities(\n\t\t\t\trecord?.title?.rendered || __( '(no title)' )\n\t\t\t) }\n\t\t\tactions={\n\t\t\t\t<>\n\t\t\t\t\t<PageActions\n\t\t\t\t\t\tpostId={ postId }\n\t\t\t\t\t\ttoggleProps={ { as: SidebarButton } }\n\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\tgoTo( '/page' );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t<SidebarButton\n\t\t\t\t\t\tonClick={ () => setCanvasMode( 'edit' ) }\n\t\t\t\t\t\tlabel={ __( 'Edit' ) }\n\t\t\t\t\t\ticon={ pencil }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t}\n\t\t\tmeta={\n\t\t\t\t<ExternalLink\n\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__page-link\"\n\t\t\t\t\thref={ record.link }\n\t\t\t\t>\n\t\t\t\t\t{ filterURLForDisplay(\n\t\t\t\t\t\tsafeDecodeURIComponent( record.link )\n\t\t\t\t\t) }\n\t\t\t\t</ExternalLink>\n\t\t\t}\n\t\t\tcontent={\n\t\t\t\t<>\n\t\t\t\t\t{ !! featuredMediaSourceUrl && (\n\t\t\t\t\t\t<VStack\n\t\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen-page__featured-image-wrapper\"\n\t\t\t\t\t\t\talignment=\"left\"\n\t\t\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div className=\"edit-site-sidebar-navigation-screen-page__featured-image has-image\">\n\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\talt={ featureImageAltText }\n\t\t\t\t\t\t\t\t\tsrc={ featuredMediaSourceUrl }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t) }\n\t\t\t\t\t{ !! record?.excerpt?.rendered && (\n\t\t\t\t\t\t<Truncate\n\t\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen-page__excerpt\"\n\t\t\t\t\t\t\tnumberOfLines={ 3 }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ stripHTML( record.excerpt.rendered ) }\n\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t) }\n\t\t\t\t\t<PageDetails id={ postId } />\n\t\t\t\t</>\n\t\t\t}\n\t\t\tfooter={\n\t\t\t\trecord?.modified ? (\n\t\t\t\t\t<SidebarNavigationScreenDetailsFooter record={ record } />\n\t\t\t\t) : null\n\t\t\t}\n\t\t/>\n\t) : null;\n}\n","/**\n * External dependencies\n */\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { memo, useRef } from '@wordpress/element';\nimport {\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n} from '@wordpress/components';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport SidebarNavigationScreenMain from '../sidebar-navigation-screen-main';\nimport SidebarNavigationScreenTemplates from '../sidebar-navigation-screen-templates';\nimport SidebarNavigationScreenTemplate from '../sidebar-navigation-screen-template';\nimport SidebarNavigationScreenPatterns from '../sidebar-navigation-screen-patterns';\nimport SidebarNavigationScreenPattern from '../sidebar-navigation-screen-pattern';\nimport useSyncPathWithURL, {\n\tgetPathFromURL,\n} from '../sync-state-with-url/use-sync-path-with-url';\nimport SidebarNavigationScreenNavigationMenus from '../sidebar-navigation-screen-navigation-menus';\nimport SidebarNavigationScreenNavigationMenu from '../sidebar-navigation-screen-navigation-menu';\nimport SidebarNavigationScreenGlobalStyles from '../sidebar-navigation-screen-global-styles';\nimport SidebarNavigationScreenTemplatesBrowse from '../sidebar-navigation-screen-templates-browse';\nimport SaveHub from '../save-hub';\nimport { unlock } from '../../lock-unlock';\nimport SidebarNavigationScreenPages from '../sidebar-navigation-screen-pages';\nimport SidebarNavigationScreenPagesDataViews from '../sidebar-navigation-screen-pages-dataviews';\nimport SidebarNavigationScreenPage from '../sidebar-navigation-screen-page';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nfunction SidebarScreenWrapper( { className, ...props } ) {\n\treturn (\n\t\t<NavigatorScreen\n\t\t\tclassName={ classNames(\n\t\t\t\t'edit-site-sidebar__screen-wrapper',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n\nfunction SidebarScreens() {\n\tuseSyncPathWithURL();\n\n\treturn (\n\t\t<>\n\t\t\t<SidebarScreenWrapper path=\"/\">\n\t\t\t\t<SidebarNavigationScreenMain />\n\t\t\t</SidebarScreenWrapper>\n\t\t\t<SidebarScreenWrapper path=\"/navigation\">\n\t\t\t\t<SidebarNavigationScreenNavigationMenus />\n\t\t\t</SidebarScreenWrapper>\n\t\t\t<SidebarScreenWrapper path=\"/navigation/:postType/:postId\">\n\t\t\t\t<SidebarNavigationScreenNavigationMenu />\n\t\t\t</SidebarScreenWrapper>\n\t\t\t<SidebarScreenWrapper path=\"/wp_global_styles\">\n\t\t\t\t<SidebarNavigationScreenGlobalStyles />\n\t\t\t</SidebarScreenWrapper>\n\t\t\t<SidebarScreenWrapper path=\"/page\">\n\t\t\t\t{ window?.__experimentalAdminViews ? (\n\t\t\t\t\t<SidebarNavigationScreenPagesDataViews />\n\t\t\t\t) : (\n\t\t\t\t\t<SidebarNavigationScreenPages />\n\t\t\t\t) }\n\t\t\t</SidebarScreenWrapper>\n\t\t\t<SidebarScreenWrapper path=\"/page/:postId\">\n\t\t\t\t<SidebarNavigationScreenPage />\n\t\t\t</SidebarScreenWrapper>\n\t\t\t<SidebarScreenWrapper path=\"/:postType(wp_template)\">\n\t\t\t\t<SidebarNavigationScreenTemplates />\n\t\t\t</SidebarScreenWrapper>\n\t\t\t<SidebarScreenWrapper path=\"/patterns\">\n\t\t\t\t<SidebarNavigationScreenPatterns />\n\t\t\t</SidebarScreenWrapper>\n\t\t\t<SidebarScreenWrapper path=\"/:postType(wp_template|wp_template_part)/all\">\n\t\t\t\t<SidebarNavigationScreenTemplatesBrowse />\n\t\t\t</SidebarScreenWrapper>\n\t\t\t<SidebarScreenWrapper path=\"/:postType(wp_template_part|wp_block)/:postId\">\n\t\t\t\t<SidebarNavigationScreenPattern />\n\t\t\t</SidebarScreenWrapper>\n\t\t\t<SidebarScreenWrapper path=\"/:postType(wp_template)/:postId\">\n\t\t\t\t<SidebarNavigationScreenTemplate />\n\t\t\t</SidebarScreenWrapper>\n\t\t</>\n\t);\n}\n\nfunction Sidebar() {\n\tconst { params: urlParams } = useLocation();\n\tconst initialPath = useRef( getPathFromURL( urlParams ) );\n\n\treturn (\n\t\t<>\n\t\t\t<NavigatorProvider\n\t\t\t\tclassName=\"edit-site-sidebar__content\"\n\t\t\t\tinitialPath={ initialPath.current }\n\t\t\t>\n\t\t\t\t<SidebarScreens />\n\t\t\t</NavigatorProvider>\n\t\t\t<SaveHub />\n\t\t</>\n\t);\n}\n\nexport default memo( Sidebar );\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst drawerLeft = (\n\t<SVG\n\t\twidth=\"24\"\n\t\theight=\"24\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tviewBox=\"0 0 24 24\"\n\t>\n\t\t<Path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM8.5 18.5H6c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h2.5v13zm10-.5c0 .3-.2.5-.5.5h-8v-13h8c.3 0 .5.2.5.5v12z\"\n\t\t/>\n\t</SVG>\n);\n\nexport default drawerLeft;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst drawerRight = (\n\t<SVG\n\t\twidth=\"24\"\n\t\theight=\"24\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tviewBox=\"0 0 24 24\"\n\t>\n\t\t<Path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-4 14.5H6c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h8v13zm4.5-.5c0 .3-.2.5-.5.5h-2.5v-13H18c.3 0 .5.2.5.5v12z\"\n\t\t/>\n\t</SVG>\n);\n\nexport default drawerRight;\n","/**\n * WordPress dependencies\n */\nimport {\n\tComplementaryArea,\n\tComplementaryAreaMoreMenuItem,\n} from '@wordpress/interface';\n\nexport default function DefaultSidebar( {\n\tclassName,\n\tidentifier,\n\ttitle,\n\ticon,\n\tchildren,\n\tcloseLabel,\n\theader,\n\theaderClassName,\n\tpanelClassName,\n} ) {\n\treturn (\n\t\t<>\n\t\t\t<ComplementaryArea\n\t\t\t\tclassName={ className }\n\t\t\t\tscope=\"core/edit-site\"\n\t\t\t\tidentifier={ identifier }\n\t\t\t\ttitle={ title }\n\t\t\t\tsmallScreenTitle={ title }\n\t\t\t\ticon={ icon }\n\t\t\t\tcloseLabel={ closeLabel }\n\t\t\t\theader={ header }\n\t\t\t\theaderClassName={ headerClassName }\n\t\t\t\tpanelClassName={ panelClassName }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</ComplementaryArea>\n\t\t\t<ComplementaryAreaMoreMenuItem\n\t\t\t\tscope=\"core/edit-site\"\n\t\t\t\tidentifier={ identifier }\n\t\t\t\ticon={ icon }\n\t\t\t>\n\t\t\t\t{ title }\n\t\t\t</ComplementaryAreaMoreMenuItem>\n\t\t</>\n\t);\n}\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Icon } from '@wordpress/components';\n\nexport function IconWithCurrentColor( { className, ...props } ) {\n\treturn (\n\t\t<Icon\n\t\t\tclassName={ classnames(\n\t\t\t\tclassName,\n\t\t\t\t'edit-site-global-styles-icon-with-current-color'\n\t\t\t) }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalNavigatorButton as NavigatorButton,\n\t__experimentalNavigatorToParentButton as NavigatorToParentButton,\n\t__experimentalItem as Item,\n\tFlexItem,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { IconWithCurrentColor } from './icon-with-current-color';\n\nfunction GenericNavigationButton( { icon, children, ...props } ) {\n\treturn (\n\t\t<Item { ...props }>\n\t\t\t{ icon && (\n\t\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t\t<IconWithCurrentColor icon={ icon } size={ 24 } />\n\t\t\t\t\t<FlexItem>{ children }</FlexItem>\n\t\t\t\t</HStack>\n\t\t\t) }\n\t\t\t{ ! icon && children }\n\t\t</Item>\n\t);\n}\n\nfunction NavigationButtonAsItem( props ) {\n\treturn <NavigatorButton as={ GenericNavigationButton } { ...props } />;\n}\n\nfunction NavigationBackButtonAsItem( props ) {\n\treturn (\n\t\t<NavigatorToParentButton as={ GenericNavigationButton } { ...props } />\n\t);\n}\n\nexport { NavigationButtonAsItem, NavigationBackButtonAsItem };\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst typography = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M6.9 7L3 17.8h1.7l1-2.8h4.1l1 2.8h1.7L8.6 7H6.9zm-.7 6.6l1.5-4.3 1.5 4.3h-3zM21.6 17c-.1.1-.2.2-.3.2-.1.1-.2.1-.4.1s-.3-.1-.4-.2c-.1-.1-.1-.3-.1-.6V12c0-.5 0-1-.1-1.4-.1-.4-.3-.7-.5-1-.2-.2-.5-.4-.9-.5-.4 0-.8-.1-1.3-.1s-1 .1-1.4.2c-.4.1-.7.3-1 .4-.2.2-.4.3-.6.5-.1.2-.2.4-.2.7 0 .3.1.5.2.8.2.2.4.3.8.3.3 0 .6-.1.8-.3.2-.2.3-.4.3-.7 0-.3-.1-.5-.2-.7-.2-.2-.4-.3-.6-.4.2-.2.4-.3.7-.4.3-.1.6-.1.8-.1.3 0 .6 0 .8.1.2.1.4.3.5.5.1.2.2.5.2.9v1.1c0 .3-.1.5-.3.6-.2.2-.5.3-.9.4-.3.1-.7.3-1.1.4-.4.1-.8.3-1.1.5-.3.2-.6.4-.8.7-.2.3-.3.7-.3 1.2 0 .6.2 1.1.5 1.4.3.4.9.5 1.6.5.5 0 1-.1 1.4-.3.4-.2.8-.6 1.1-1.1 0 .4.1.7.3 1 .2.3.6.4 1.2.4.4 0 .7-.1.9-.2.2-.1.5-.3.7-.4h-.3zm-3-.9c-.2.4-.5.7-.8.8-.3.2-.6.2-.8.2-.4 0-.6-.1-.9-.3-.2-.2-.3-.6-.3-1.1 0-.5.1-.9.3-1.2s.5-.5.8-.7c.3-.2.7-.3 1-.5.3-.1.6-.3.7-.6v3.4z\" />\n\t</SVG>\n);\n\nexport default typography;\n","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst color = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"M17.2 10.9c-.5-1-1.2-2.1-2.1-3.2-.6-.9-1.3-1.7-2.1-2.6L12 4l-1 1.1c-.6.9-1.3 1.7-2 2.6-.8 1.2-1.5 2.3-2 3.2-.6 1.2-1 2.2-1 3 0 3.4 2.7 6.1 6.1 6.1s6.1-2.7 6.1-6.1c0-.8-.3-1.8-1-3zm-5.1 7.6c-2.5 0-4.6-2.1-4.6-4.6 0-.3.1-1 .8-2.3.5-.9 1.1-1.9 2-3.1.7-.9 1.3-1.7 1.8-2.3.7.8 1.3 1.6 1.8 2.3.8 1.1 1.5 2.2 2 3.1.7 1.3.8 2 .8 2.3 0 2.5-2.1 4.6-4.6 4.6z\" />\n\t</SVG>\n);\n\nexport default color;\n","/**\n * WordPress dependencies\n */\nimport { __experimentalItemGroup as ItemGroup } from '@wordpress/components';\nimport { typography, color, layout } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { NavigationButtonAsItem } from './navigation-button';\nimport { unlock } from '../../lock-unlock';\n\nconst {\n\tuseHasDimensionsPanel,\n\tuseHasTypographyPanel,\n\tuseHasColorPanel,\n\tuseGlobalSetting,\n\tuseSettingsForBlockElement,\n} = unlock( blockEditorPrivateApis );\n\nfunction RootMenu() {\n\tconst [ rawSettings ] = useGlobalSetting( '' );\n\tconst settings = useSettingsForBlockElement( rawSettings );\n\tconst hasTypographyPanel = useHasTypographyPanel( settings );\n\tconst hasColorPanel = useHasColorPanel( settings );\n\tconst hasDimensionsPanel = useHasDimensionsPanel( settings );\n\tconst hasLayoutPanel = hasDimensionsPanel;\n\n\treturn (\n\t\t<>\n\t\t\t<ItemGroup>\n\t\t\t\t{ hasTypographyPanel && (\n\t\t\t\t\t<NavigationButtonAsItem\n\t\t\t\t\t\ticon={ typography }\n\t\t\t\t\t\tpath=\"/typography\"\n\t\t\t\t\t\taria-label={ __( 'Typography styles' ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Typography' ) }\n\t\t\t\t\t</NavigationButtonAsItem>\n\t\t\t\t) }\n\t\t\t\t{ hasColorPanel && (\n\t\t\t\t\t<NavigationButtonAsItem\n\t\t\t\t\t\ticon={ color }\n\t\t\t\t\t\tpath=\"/colors\"\n\t\t\t\t\t\taria-label={ __( 'Colors styles' ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Colors' ) }\n\t\t\t\t\t</NavigationButtonAsItem>\n\t\t\t\t) }\n\t\t\t\t{ hasLayoutPanel && (\n\t\t\t\t\t<NavigationButtonAsItem\n\t\t\t\t\t\ticon={ layout }\n\t\t\t\t\t\tpath=\"/layout\"\n\t\t\t\t\t\taria-label={ __( 'Layout styles' ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Layout' ) }\n\t\t\t\t\t</NavigationButtonAsItem>\n\t\t\t\t) }\n\t\t\t</ItemGroup>\n\t\t</>\n\t);\n}\n\nexport default RootMenu;\n","/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalSpacer as Spacer,\n\t__experimentalVStack as VStack,\n\tFlexItem,\n\tCardBody,\n\tCard,\n\tCardDivider,\n\tCardMedia,\n} from '@wordpress/components';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport { chevronLeft, chevronRight } from '@wordpress/icons';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { IconWithCurrentColor } from './icon-with-current-color';\nimport { NavigationButtonAsItem } from './navigation-button';\nimport RootMenu from './root-menu';\nimport StylesPreview from './preview';\nimport { unlock } from '../../lock-unlock';\n\nconst { useGlobalStyle } = unlock( blockEditorPrivateApis );\n\nfunction ScreenRoot() {\n\tconst [ customCSS ] = useGlobalStyle( 'css' );\n\n\tconst { hasVariations, canEditCSS } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetEntityRecord,\n\t\t\t__experimentalGetCurrentGlobalStylesId,\n\t\t\t__experimentalGetCurrentThemeGlobalStylesVariations,\n\t\t} = select( coreStore );\n\n\t\tconst globalStylesId = __experimentalGetCurrentGlobalStylesId();\n\t\tconst globalStyles = globalStylesId\n\t\t\t? getEntityRecord( 'root', 'globalStyles', globalStylesId )\n\t\t\t: undefined;\n\n\t\treturn {\n\t\t\thasVariations:\n\t\t\t\t!! __experimentalGetCurrentThemeGlobalStylesVariations()\n\t\t\t\t\t?.length,\n\t\t\tcanEditCSS: !! globalStyles?._links?.[ 'wp:action-edit-css' ],\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<Card size=\"small\" className=\"edit-site-global-styles-screen-root\">\n\t\t\t<CardBody>\n\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t<Card>\n\t\t\t\t\t\t<CardMedia>\n\t\t\t\t\t\t\t<StylesPreview />\n\t\t\t\t\t\t</CardMedia>\n\t\t\t\t\t</Card>\n\t\t\t\t\t{ hasVariations && (\n\t\t\t\t\t\t<ItemGroup>\n\t\t\t\t\t\t\t<NavigationButtonAsItem\n\t\t\t\t\t\t\t\tpath=\"/variations\"\n\t\t\t\t\t\t\t\taria-label={ __( 'Browse styles' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Browse styles' ) }\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t<IconWithCurrentColor\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\tisRTL() ? chevronLeft : chevronRight\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t</NavigationButtonAsItem>\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t) }\n\t\t\t\t\t<RootMenu />\n\t\t\t\t</VStack>\n\t\t\t</CardBody>\n\n\t\t\t<CardDivider />\n\n\t\t\t<CardBody>\n\t\t\t\t<Spacer\n\t\t\t\t\tas=\"p\"\n\t\t\t\t\tpaddingTop={ 2 }\n\t\t\t\t\t/*\n\t\t\t\t\t * 13px matches the text inset of the NavigationButton (12px padding, plus the width of the button's border).\n\t\t\t\t\t * This is an ad hoc override for this instance and the Addtional CSS option below. Other options for matching the\n\t\t\t\t\t * the nav button inset should be looked at before reusing further.\n\t\t\t\t\t */\n\t\t\t\t\tpaddingX=\"13px\"\n\t\t\t\t\tmarginBottom={ 4 }\n\t\t\t\t>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Customize the appearance of specific blocks for the whole site.'\n\t\t\t\t\t) }\n\t\t\t\t</Spacer>\n\t\t\t\t<ItemGroup>\n\t\t\t\t\t<NavigationButtonAsItem\n\t\t\t\t\t\tpath=\"/blocks\"\n\t\t\t\t\t\taria-label={ __( 'Blocks styles' ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t\t\t\t<FlexItem>{ __( 'Blocks' ) }</FlexItem>\n\t\t\t\t\t\t\t<IconWithCurrentColor\n\t\t\t\t\t\t\t\ticon={ isRTL() ? chevronLeft : chevronRight }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</NavigationButtonAsItem>\n\t\t\t\t</ItemGroup>\n\t\t\t</CardBody>\n\n\t\t\t{ canEditCSS && !! customCSS && (\n\t\t\t\t<>\n\t\t\t\t\t<CardDivider />\n\t\t\t\t\t<CardBody>\n\t\t\t\t\t\t<Spacer\n\t\t\t\t\t\t\tas=\"p\"\n\t\t\t\t\t\t\tpaddingTop={ 2 }\n\t\t\t\t\t\t\tpaddingX=\"13px\"\n\t\t\t\t\t\t\tmarginBottom={ 4 }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Add your own CSS to customize the appearance and layout of your site.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Spacer>\n\t\t\t\t\t\t<ItemGroup>\n\t\t\t\t\t\t\t<NavigationButtonAsItem\n\t\t\t\t\t\t\t\tpath=\"/css\"\n\t\t\t\t\t\t\t\taria-label={ __( 'Additional CSS' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Additional CSS' ) }\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t<IconWithCurrentColor\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\tisRTL() ? chevronLeft : chevronRight\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t</NavigationButtonAsItem>\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t</CardBody>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</Card>\n\t);\n}\n\nexport default ScreenRoot;\n","/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport { __experimentalItemGroup as ItemGroup } from '@wordpress/components';\n/**\n * Internal dependencies\n */\n\nimport { NavigationButtonAsItem } from './navigation-button';\n\nfunction getCoreBlockStyles( blockStyles ) {\n\treturn blockStyles?.filter( ( style ) => style.source === 'block' );\n}\n\nexport function useBlockVariations( name ) {\n\tconst blockStyles = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockStyles } = select( blocksStore );\n\t\t\treturn getBlockStyles( name );\n\t\t},\n\t\t[ name ]\n\t);\n\tconst coreBlockStyles = getCoreBlockStyles( blockStyles );\n\treturn coreBlockStyles;\n}\n\nexport function VariationsPanel( { name } ) {\n\tconst coreBlockStyles = useBlockVariations( name );\n\n\treturn (\n\t\t<ItemGroup isBordered isSeparated>\n\t\t\t{ coreBlockStyles.map( ( style, index ) => {\n\t\t\t\tif ( style?.isDefault ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<NavigationButtonAsItem\n\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\tpath={\n\t\t\t\t\t\t\t'/blocks/' +\n\t\t\t\t\t\t\tencodeURIComponent( name ) +\n\t\t\t\t\t\t\t'/variations/' +\n\t\t\t\t\t\t\tencodeURIComponent( style.name )\n\t\t\t\t\t\t}\n\t\t\t\t\t\taria-label={ style.label }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ style.label }\n\t\t\t\t\t</NavigationButtonAsItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ItemGroup>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalSpacer as Spacer,\n\t__experimentalHeading as Heading,\n\t__experimentalView as View,\n\t__experimentalNavigatorToParentButton as NavigatorToParentButton,\n} from '@wordpress/components';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport { chevronRight, chevronLeft } from '@wordpress/icons';\n\nfunction ScreenHeader( { title, description, onBack } ) {\n\treturn (\n\t\t<VStack spacing={ 0 }>\n\t\t\t<View>\n\t\t\t\t<Spacer marginBottom={ 0 } paddingX={ 4 } paddingY={ 3 }>\n\t\t\t\t\t<HStack spacing={ 2 }>\n\t\t\t\t\t\t<NavigatorToParentButton\n\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t// TODO: This style override is also used in ToolsPanelHeader.\n\t\t\t\t\t\t\t\t// It should be supported out-of-the-box by Button.\n\t\t\t\t\t\t\t\t{ minWidth: 24, padding: 0 }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ticon={ isRTL() ? chevronRight : chevronLeft }\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\taria-label={ __( 'Navigate to the previous view' ) }\n\t\t\t\t\t\t\tonClick={ onBack }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Spacer>\n\t\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-header\"\n\t\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\t\tsize={ 13 }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t</Spacer>\n\t\t\t\t\t</HStack>\n\t\t\t\t</Spacer>\n\t\t\t</View>\n\t\t\t{ description && (\n\t\t\t\t<p className=\"edit-site-global-styles-header__description\">\n\t\t\t\t\t{ description }\n\t\t\t\t</p>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport default ScreenHeader;\n","/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport {\n\tFlexItem,\n\tSearchControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tuseDeferredValue,\n\tmemo,\n} from '@wordpress/element';\nimport {\n\tBlockIcon,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { useDebounce } from '@wordpress/compose';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport { useBlockVariations } from './variations-panel';\nimport ScreenHeader from './header';\nimport { NavigationButtonAsItem } from './navigation-button';\nimport { unlock } from '../../lock-unlock';\n\nconst {\n\tuseHasDimensionsPanel,\n\tuseHasTypographyPanel,\n\tuseHasBorderPanel,\n\tuseGlobalSetting,\n\tuseSettingsForBlockElement,\n\tuseHasColorPanel,\n} = unlock( blockEditorPrivateApis );\n\nfunction useSortedBlockTypes() {\n\tconst blockItems = useSelect(\n\t\t( select ) => select( blocksStore ).getBlockTypes(),\n\t\t[]\n\t);\n\t// Ensure core blocks are prioritized in the returned results,\n\t// because third party blocks can be registered earlier than\n\t// the core blocks (usually by using the `init` action),\n\t// thus affecting the display order.\n\t// We don't sort reusable blocks as they are handled differently.\n\tconst groupByType = ( blocks, block ) => {\n\t\tconst { core, noncore } = blocks;\n\t\tconst type = block.name.startsWith( 'core/' ) ? core : noncore;\n\t\ttype.push( block );\n\t\treturn blocks;\n\t};\n\tconst { core: coreItems, noncore: nonCoreItems } = blockItems.reduce(\n\t\tgroupByType,\n\t\t{ core: [], noncore: [] }\n\t);\n\treturn [ ...coreItems, ...nonCoreItems ];\n}\n\nexport function useBlockHasGlobalStyles( blockName ) {\n\tconst [ rawSettings ] = useGlobalSetting( '', blockName );\n\tconst settings = useSettingsForBlockElement( rawSettings, blockName );\n\tconst hasTypographyPanel = useHasTypographyPanel( settings );\n\tconst hasColorPanel = useHasColorPanel( settings );\n\tconst hasBorderPanel = useHasBorderPanel( settings );\n\tconst hasDimensionsPanel = useHasDimensionsPanel( settings );\n\tconst hasLayoutPanel = hasBorderPanel || hasDimensionsPanel;\n\tconst hasVariationsPanel = !! useBlockVariations( blockName )?.length;\n\tconst hasGlobalStyles =\n\t\thasTypographyPanel ||\n\t\thasColorPanel ||\n\t\thasLayoutPanel ||\n\t\thasVariationsPanel;\n\treturn hasGlobalStyles;\n}\n\nfunction BlockMenuItem( { block } ) {\n\tconst hasBlockMenuItem = useBlockHasGlobalStyles( block.name );\n\tif ( ! hasBlockMenuItem ) {\n\t\treturn null;\n\t}\n\n\tconst navigationButtonLabel = sprintf(\n\t\t// translators: %s: is the name of a block e.g., 'Image' or 'Table'.\n\t\t__( '%s block styles' ),\n\t\tblock.title\n\t);\n\n\treturn (\n\t\t<NavigationButtonAsItem\n\t\t\tpath={ '/blocks/' + encodeURIComponent( block.name ) }\n\t\t\taria-label={ navigationButtonLabel }\n\t\t>\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t<BlockIcon icon={ block.icon } />\n\t\t\t\t<FlexItem>{ block.title }</FlexItem>\n\t\t\t</HStack>\n\t\t</NavigationButtonAsItem>\n\t);\n}\n\nfunction BlockList( { filterValue } ) {\n\tconst sortedBlockTypes = useSortedBlockTypes();\n\tconst debouncedSpeak = useDebounce( speak, 500 );\n\tconst { isMatchingSearchTerm } = useSelect( blocksStore );\n\n\tconst filteredBlockTypes = ! filterValue\n\t\t? sortedBlockTypes\n\t\t: sortedBlockTypes.filter( ( blockType ) =>\n\t\t\t\tisMatchingSearchTerm( blockType, filterValue )\n\t\t  );\n\n\tconst blockTypesListRef = useRef();\n\n\t// Announce search results on change\n\tuseEffect( () => {\n\t\tif ( ! filterValue ) {\n\t\t\treturn;\n\t\t}\n\t\t// We extract the results from the wrapper div's `ref` because\n\t\t// filtered items can contain items that will eventually not\n\t\t// render and there is no reliable way to detect when a child\n\t\t// will return `null`.\n\t\t// TODO: We should find a better way of handling this as it's\n\t\t// fragile and depends on the number of rendered elements of `BlockMenuItem`,\n\t\t// which is now one.\n\t\t// @see https://github.com/WordPress/gutenberg/pull/39117#discussion_r816022116\n\t\tconst count = blockTypesListRef.current.childElementCount;\n\t\tconst resultsFoundMessage = sprintf(\n\t\t\t/* translators: %d: number of results. */\n\t\t\t_n( '%d result found.', '%d results found.', count ),\n\t\t\tcount\n\t\t);\n\t\tdebouncedSpeak( resultsFoundMessage, count );\n\t}, [ filterValue, debouncedSpeak ] );\n\n\treturn (\n\t\t<div\n\t\t\tref={ blockTypesListRef }\n\t\t\tclassName=\"edit-site-block-types-item-list\"\n\t\t>\n\t\t\t{ filteredBlockTypes.map( ( block ) => (\n\t\t\t\t<BlockMenuItem\n\t\t\t\t\tblock={ block }\n\t\t\t\t\tkey={ 'menu-itemblock-' + block.name }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</div>\n\t);\n}\n\nconst MemoizedBlockList = memo( BlockList );\n\nfunction ScreenBlockList() {\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst deferredFilterValue = useDeferredValue( filterValue );\n\n\treturn (\n\t\t<>\n\t\t\t<ScreenHeader\n\t\t\t\ttitle={ __( 'Blocks' ) }\n\t\t\t\tdescription={ __(\n\t\t\t\t\t'Customize the appearance of specific blocks and for the whole site.'\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t<SearchControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tclassName=\"edit-site-block-types-search\"\n\t\t\t\tonChange={ setFilterValue }\n\t\t\t\tvalue={ filterValue }\n\t\t\t\tlabel={ __( 'Search for blocks' ) }\n\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t/>\n\t\t\t<MemoizedBlockList filterValue={ deferredFilterValue } />\n\t\t</>\n\t);\n}\n\nexport default ScreenBlockList;\n","/**\n * WordPress dependencies\n */\nimport { BlockPreview } from '@wordpress/block-editor';\nimport { getBlockType, getBlockFromExample } from '@wordpress/blocks';\nimport { __experimentalSpacer as Spacer } from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\n\nconst BlockPreviewPanel = ( { name, variation = '' } ) => {\n\tconst blockExample = getBlockType( name )?.example;\n\tconst blocks = useMemo( () => {\n\t\tif ( ! blockExample ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tlet example = blockExample;\n\t\tif ( variation ) {\n\t\t\texample = {\n\t\t\t\t...example,\n\t\t\t\tattributes: {\n\t\t\t\t\t...example.attributes,\n\t\t\t\t\tclassName: 'is-style-' + variation,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn getBlockFromExample( name, example );\n\t}, [ name, blockExample, variation ] );\n\n\tconst viewportWidth = blockExample?.viewportWidth ?? null;\n\tconst previewHeight = '150px';\n\n\tif ( ! blockExample ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Spacer marginX={ 4 } marginBottom={ 4 }>\n\t\t\t<div\n\t\t\t\tclassName=\"edit-site-global-styles__block-preview-panel\"\n\t\t\t\tstyle={ { maxHeight: previewHeight, boxSizing: 'initial' } }\n\t\t\t>\n\t\t\t\t<BlockPreview\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tviewportWidth={ viewportWidth }\n\t\t\t\t\tminHeight={ previewHeight }\n\t\t\t\t\tadditionalStyles={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcss: `\n\t\t\t\t\t\t\t\tbody{\n\t\t\t\t\t\t\t\t\tmin-height:${ previewHeight };\n\t\t\t\t\t\t\t\t\tdisplay:flex;align-items:center;justify-content:center;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</Spacer>\n\t);\n};\n\nexport default BlockPreviewPanel;\n","/**\n * WordPress dependencies\n */\nimport { __experimentalHeading as Heading } from '@wordpress/components';\n\nfunction Subtitle( { children, level } ) {\n\treturn (\n\t\t<Heading\n\t\t\tclassName=\"edit-site-global-styles-subtitle\"\n\t\t\tlevel={ level ?? 2 }\n\t\t>\n\t\t\t{ children }\n\t\t</Heading>\n\t);\n}\n\nexport default Subtitle;\n","/**\n * WordPress dependencies\n */\nimport { getBlockType } from '@wordpress/blocks';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tPanelBody,\n\t__experimentalVStack as VStack,\n\t__experimentalHasSplitBorders as hasSplitBorders,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ScreenHeader from './header';\nimport BlockPreviewPanel from './block-preview-panel';\nimport { unlock } from '../../lock-unlock';\nimport Subtitle from './subtitle';\nimport { useBlockVariations, VariationsPanel } from './variations-panel';\n\nfunction applyFallbackStyle( border ) {\n\tif ( ! border ) {\n\t\treturn border;\n\t}\n\n\tconst hasColorOrWidth = border.color || border.width;\n\n\tif ( ! border.style && hasColorOrWidth ) {\n\t\treturn { ...border, style: 'solid' };\n\t}\n\n\tif ( border.style && ! hasColorOrWidth ) {\n\t\treturn undefined;\n\t}\n\n\treturn border;\n}\n\nfunction applyAllFallbackStyles( border ) {\n\tif ( ! border ) {\n\t\treturn border;\n\t}\n\n\tif ( hasSplitBorders( border ) ) {\n\t\treturn {\n\t\t\ttop: applyFallbackStyle( border.top ),\n\t\t\tright: applyFallbackStyle( border.right ),\n\t\t\tbottom: applyFallbackStyle( border.bottom ),\n\t\t\tleft: applyFallbackStyle( border.left ),\n\t\t};\n\t}\n\n\treturn applyFallbackStyle( border );\n}\n\nconst {\n\tuseHasDimensionsPanel,\n\tuseHasTypographyPanel,\n\tuseHasBorderPanel,\n\tuseGlobalSetting,\n\tuseSettingsForBlockElement,\n\tuseHasColorPanel,\n\tuseHasEffectsPanel,\n\tuseHasFiltersPanel,\n\tuseHasImageSettingsPanel,\n\tuseGlobalStyle,\n\tBorderPanel: StylesBorderPanel,\n\tColorPanel: StylesColorPanel,\n\tTypographyPanel: StylesTypographyPanel,\n\tDimensionsPanel: StylesDimensionsPanel,\n\tEffectsPanel: StylesEffectsPanel,\n\tFiltersPanel: StylesFiltersPanel,\n\tImageSettingsPanel,\n\tAdvancedPanel: StylesAdvancedPanel,\n} = unlock( blockEditorPrivateApis );\n\nfunction ScreenBlock( { name, variation } ) {\n\tlet prefixParts = [];\n\tif ( variation ) {\n\t\tprefixParts = [ 'variations', variation ].concat( prefixParts );\n\t}\n\tconst prefix = prefixParts.join( '.' );\n\n\tconst [ style ] = useGlobalStyle( prefix, name, 'user', {\n\t\tshouldDecodeEncode: false,\n\t} );\n\tconst [ inheritedStyle, setStyle ] = useGlobalStyle( prefix, name, 'all', {\n\t\tshouldDecodeEncode: false,\n\t} );\n\tconst [ userSettings ] = useGlobalSetting( '', name, 'user' );\n\tconst [ rawSettings, setSettings ] = useGlobalSetting( '', name );\n\tconst settings = useSettingsForBlockElement( rawSettings, name );\n\tconst blockType = getBlockType( name );\n\n\t// Only allow `blockGap` support if serialization has not been skipped, to be sure global spacing can be applied.\n\tif (\n\t\tsettings?.spacing?.blockGap &&\n\t\tblockType?.supports?.spacing?.blockGap &&\n\t\t( blockType?.supports?.spacing?.__experimentalSkipSerialization ===\n\t\t\ttrue ||\n\t\t\tblockType?.supports?.spacing?.__experimentalSkipSerialization?.some?.(\n\t\t\t\t( spacingType ) => spacingType === 'blockGap'\n\t\t\t) )\n\t) {\n\t\tsettings.spacing.blockGap = false;\n\t}\n\n\tconst blockVariations = useBlockVariations( name );\n\tconst hasTypographyPanel = useHasTypographyPanel( settings );\n\tconst hasColorPanel = useHasColorPanel( settings );\n\tconst hasBorderPanel = useHasBorderPanel( settings );\n\tconst hasDimensionsPanel = useHasDimensionsPanel( settings );\n\tconst hasEffectsPanel = useHasEffectsPanel( settings );\n\tconst hasFiltersPanel = useHasFiltersPanel( settings );\n\tconst hasImageSettingsPanel = useHasImageSettingsPanel(\n\t\tname,\n\t\tuserSettings,\n\t\tsettings\n\t);\n\tconst hasVariationsPanel = !! blockVariations?.length && ! variation;\n\tconst { canEditCSS } = useSelect( ( select ) => {\n\t\tconst { getEntityRecord, __experimentalGetCurrentGlobalStylesId } =\n\t\t\tselect( coreStore );\n\n\t\tconst globalStylesId = __experimentalGetCurrentGlobalStylesId();\n\t\tconst globalStyles = globalStylesId\n\t\t\t? getEntityRecord( 'root', 'globalStyles', globalStylesId )\n\t\t\t: undefined;\n\n\t\treturn {\n\t\t\tcanEditCSS: !! globalStyles?._links?.[ 'wp:action-edit-css' ],\n\t\t};\n\t}, [] );\n\tconst currentBlockStyle = variation\n\t\t? blockVariations.find( ( s ) => s.name === variation )\n\t\t: null;\n\n\t// These intermediary objects are needed because the \"layout\" property is stored\n\t// in settings rather than styles.\n\tconst inheritedStyleWithLayout = useMemo( () => {\n\t\treturn {\n\t\t\t...inheritedStyle,\n\t\t\tlayout: settings.layout,\n\t\t};\n\t}, [ inheritedStyle, settings.layout ] );\n\tconst styleWithLayout = useMemo( () => {\n\t\treturn {\n\t\t\t...style,\n\t\t\tlayout: userSettings.layout,\n\t\t};\n\t}, [ style, userSettings.layout ] );\n\tconst onChangeDimensions = ( newStyle ) => {\n\t\tconst updatedStyle = { ...newStyle };\n\t\tdelete updatedStyle.layout;\n\t\tsetStyle( updatedStyle );\n\n\t\tif ( newStyle.layout !== userSettings.layout ) {\n\t\t\tsetSettings( {\n\t\t\t\t...userSettings,\n\t\t\t\tlayout: newStyle.layout,\n\t\t\t} );\n\t\t}\n\t};\n\tconst onChangeLightbox = ( newSetting ) => {\n\t\t// If the newSetting is undefined, this means that the user has deselected\n\t\t// (reset) the lightbox setting.\n\t\tif ( newSetting === undefined ) {\n\t\t\tsetSettings( {\n\t\t\t\t...rawSettings,\n\t\t\t\tlightbox: undefined,\n\t\t\t} );\n\n\t\t\t// Otherwise, we simply set the lightbox setting to the new value but\n\t\t\t// taking care of not overriding the other lightbox settings.\n\t\t} else {\n\t\t\tsetSettings( {\n\t\t\t\t...rawSettings,\n\t\t\t\tlightbox: {\n\t\t\t\t\t...rawSettings.lightbox,\n\t\t\t\t\t...newSetting,\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\t};\n\tconst onChangeBorders = ( newStyle ) => {\n\t\tif ( ! newStyle?.border ) {\n\t\t\tsetStyle( newStyle );\n\t\t\treturn;\n\t\t}\n\n\t\t// As Global Styles can't conditionally generate styles based on if\n\t\t// other style properties have been set, we need to force split\n\t\t// border definitions for user set global border styles. Border\n\t\t// radius is derived from the same property i.e. `border.radius` if\n\t\t// it is a string that is used. The longhand border radii styles are\n\t\t// only generated if that property is an object.\n\t\t//\n\t\t// For borders (color, style, and width) those are all properties on\n\t\t// the `border` style property. This means if the theme.json defined\n\t\t// split borders and the user condenses them into a flat border or\n\t\t// vice-versa we'd get both sets of styles which would conflict.\n\t\tconst { radius, ...newBorder } = newStyle.border;\n\t\tconst border = applyAllFallbackStyles( newBorder );\n\t\tconst updatedBorder = ! hasSplitBorders( border )\n\t\t\t? {\n\t\t\t\t\ttop: border,\n\t\t\t\t\tright: border,\n\t\t\t\t\tbottom: border,\n\t\t\t\t\tleft: border,\n\t\t\t  }\n\t\t\t: {\n\t\t\t\t\tcolor: null,\n\t\t\t\t\tstyle: null,\n\t\t\t\t\twidth: null,\n\t\t\t\t\t...border,\n\t\t\t  };\n\n\t\tsetStyle( { ...newStyle, border: { ...updatedBorder, radius } } );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<ScreenHeader\n\t\t\t\ttitle={ variation ? currentBlockStyle.label : blockType.title }\n\t\t\t/>\n\t\t\t<BlockPreviewPanel name={ name } variation={ variation } />\n\t\t\t{ hasVariationsPanel && (\n\t\t\t\t<div className=\"edit-site-global-styles-screen-variations\">\n\t\t\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t\t\t<Subtitle>{ __( 'Style Variations' ) }</Subtitle>\n\t\t\t\t\t\t<VariationsPanel name={ name } />\n\t\t\t\t\t</VStack>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ hasColorPanel && (\n\t\t\t\t<StylesColorPanel\n\t\t\t\t\tinheritedValue={ inheritedStyle }\n\t\t\t\t\tvalue={ style }\n\t\t\t\t\tonChange={ setStyle }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasTypographyPanel && (\n\t\t\t\t<StylesTypographyPanel\n\t\t\t\t\tinheritedValue={ inheritedStyle }\n\t\t\t\t\tvalue={ style }\n\t\t\t\t\tonChange={ setStyle }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasDimensionsPanel && (\n\t\t\t\t<StylesDimensionsPanel\n\t\t\t\t\tinheritedValue={ inheritedStyleWithLayout }\n\t\t\t\t\tvalue={ styleWithLayout }\n\t\t\t\t\tonChange={ onChangeDimensions }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tincludeLayoutControls\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasBorderPanel && (\n\t\t\t\t<StylesBorderPanel\n\t\t\t\t\tinheritedValue={ inheritedStyle }\n\t\t\t\t\tvalue={ style }\n\t\t\t\t\tonChange={ onChangeBorders }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasEffectsPanel && (\n\t\t\t\t<StylesEffectsPanel\n\t\t\t\t\tinheritedValue={ inheritedStyleWithLayout }\n\t\t\t\t\tvalue={ styleWithLayout }\n\t\t\t\t\tonChange={ setStyle }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tincludeLayoutControls\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasFiltersPanel && (\n\t\t\t\t<StylesFiltersPanel\n\t\t\t\t\tinheritedValue={ inheritedStyleWithLayout }\n\t\t\t\t\tvalue={ styleWithLayout }\n\t\t\t\t\tonChange={ setStyle }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tincludeLayoutControls\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasImageSettingsPanel && (\n\t\t\t\t<ImageSettingsPanel\n\t\t\t\t\tonChange={ onChangeLightbox }\n\t\t\t\t\tvalue={ userSettings }\n\t\t\t\t\tinheritedValue={ settings }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t{ canEditCSS && (\n\t\t\t\t<PanelBody title={ __( 'Advanced' ) } initialOpen={ false }>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t// translators: %s: is the name of a block e.g., 'Image' or 'Table'.\n\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t'Add your own CSS to customize the appearance of the %s block. You do not need to include a CSS selector, just add the property and value.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tblockType?.title\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t<StylesAdvancedPanel\n\t\t\t\t\t\tvalue={ style }\n\t\t\t\t\t\tonChange={ setStyle }\n\t\t\t\t\t\tinheritedValue={ inheritedStyle }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default ScreenBlock;\n","/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\tFlexItem,\n} from '@wordpress/components';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { NavigationButtonAsItem } from './navigation-button';\nimport Subtitle from './subtitle';\n\nimport { unlock } from '../../lock-unlock';\nconst { useGlobalStyle } = unlock( blockEditorPrivateApis );\n\nfunction ElementItem( { parentMenu, element, label } ) {\n\tconst prefix =\n\t\telement === 'text' || ! element ? '' : `elements.${ element }.`;\n\tconst extraStyles =\n\t\telement === 'link'\n\t\t\t? {\n\t\t\t\t\ttextDecoration: 'underline',\n\t\t\t  }\n\t\t\t: {};\n\tconst [ fontFamily ] = useGlobalStyle( prefix + 'typography.fontFamily' );\n\tconst [ fontStyle ] = useGlobalStyle( prefix + 'typography.fontStyle' );\n\tconst [ fontWeight ] = useGlobalStyle( prefix + 'typography.fontWeight' );\n\tconst [ letterSpacing ] = useGlobalStyle(\n\t\tprefix + 'typography.letterSpacing'\n\t);\n\tconst [ backgroundColor ] = useGlobalStyle( prefix + 'color.background' );\n\tconst [ gradientValue ] = useGlobalStyle( prefix + 'color.gradient' );\n\tconst [ color ] = useGlobalStyle( prefix + 'color.text' );\n\n\tconst navigationButtonLabel = sprintf(\n\t\t// translators: %s: is a subset of Typography, e.g., 'text' or 'links'.\n\t\t__( 'Typography %s styles' ),\n\t\tlabel\n\t);\n\n\treturn (\n\t\t<NavigationButtonAsItem\n\t\t\tpath={ parentMenu + '/typography/' + element }\n\t\t\taria-label={ navigationButtonLabel }\n\t\t>\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t<FlexItem\n\t\t\t\t\tclassName=\"edit-site-global-styles-screen-typography__indicator\"\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tfontFamily: fontFamily ?? 'serif',\n\t\t\t\t\t\tbackground: gradientValue ?? backgroundColor,\n\t\t\t\t\t\tcolor,\n\t\t\t\t\t\tfontStyle,\n\t\t\t\t\t\tfontWeight,\n\t\t\t\t\t\tletterSpacing,\n\t\t\t\t\t\t...extraStyles,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Aa' ) }\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>{ label }</FlexItem>\n\t\t\t</HStack>\n\t\t</NavigationButtonAsItem>\n\t);\n}\n\nfunction TypographyElements() {\n\tconst parentMenu = '';\n\n\treturn (\n\t\t<VStack spacing={ 3 }>\n\t\t\t<Subtitle level={ 3 }>{ __( 'Elements' ) }</Subtitle>\n\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t<ElementItem\n\t\t\t\t\tparentMenu={ parentMenu }\n\t\t\t\t\telement=\"text\"\n\t\t\t\t\tlabel={ __( 'Text' ) }\n\t\t\t\t/>\n\t\t\t\t<ElementItem\n\t\t\t\t\tparentMenu={ parentMenu }\n\t\t\t\t\telement=\"link\"\n\t\t\t\t\tlabel={ __( 'Links' ) }\n\t\t\t\t/>\n\t\t\t\t<ElementItem\n\t\t\t\t\tparentMenu={ parentMenu }\n\t\t\t\t\telement=\"heading\"\n\t\t\t\t\tlabel={ __( 'Headings' ) }\n\t\t\t\t/>\n\t\t\t\t<ElementItem\n\t\t\t\t\tparentMenu={ parentMenu }\n\t\t\t\t\telement=\"caption\"\n\t\t\t\t\tlabel={ __( 'Captions' ) }\n\t\t\t\t/>\n\t\t\t\t<ElementItem\n\t\t\t\t\tparentMenu={ parentMenu }\n\t\t\t\t\telement=\"button\"\n\t\t\t\t\tlabel={ __( 'Buttons' ) }\n\t\t\t\t/>\n\t\t\t</ItemGroup>\n\t\t</VStack>\n\t);\n}\n\nexport default TypographyElements;\n","/**\n * WordPress dependencies\n */\nimport { _x } from '@wordpress/i18n';\n\nexport const ALLOWED_FILE_EXTENSIONS = [ 'otf', 'ttf', 'woff', 'woff2' ];\n\nexport const FONT_WEIGHTS = {\n\t100: _x( 'Thin', 'font weight' ),\n\t200: _x( 'Extra-light', 'font weight' ),\n\t300: _x( 'Light', 'font weight' ),\n\t400: _x( 'Normal', 'font weight' ),\n\t500: _x( 'Medium', 'font weight' ),\n\t600: _x( 'Semi-bold', 'font weight' ),\n\t700: _x( 'Bold', 'font weight' ),\n\t800: _x( 'Extra-bold', 'font weight' ),\n\t900: _x( 'Black', 'font weight' ),\n};\n\nexport const FONT_STYLES = {\n\tnormal: _x( 'Normal', 'font style' ),\n\titalic: _x( 'Italic', 'font style' ),\n};\n","/**\n * WordPress dependencies\n */\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { FONT_WEIGHTS, FONT_STYLES } from './constants';\nimport { unlock } from '../../../../lock-unlock';\n\nexport function setUIValuesNeeded( font, extraValues = {} ) {\n\tif ( ! font.name && ( font.fontFamily || font.slug ) ) {\n\t\tfont.name = font.fontFamily || font.slug;\n\t}\n\treturn {\n\t\t...font,\n\t\t...extraValues,\n\t};\n}\n\nexport function isUrlEncoded( url ) {\n\tif ( typeof url !== 'string' ) {\n\t\treturn false;\n\t}\n\treturn url !== decodeURIComponent( url );\n}\n\nexport function getFontFaceVariantName( face ) {\n\tconst weightName = FONT_WEIGHTS[ face.fontWeight ] || face.fontWeight;\n\tconst styleName =\n\t\tface.fontStyle === 'normal'\n\t\t\t? ''\n\t\t\t: FONT_STYLES[ face.fontStyle ] || face.fontStyle;\n\treturn `${ weightName } ${ styleName }`;\n}\n\nexport function mergeFontFaces( existing = [], incoming = [] ) {\n\tconst map = new Map();\n\tfor ( const face of existing ) {\n\t\tmap.set( `${ face.fontWeight }${ face.fontStyle }`, face );\n\t}\n\tfor ( const face of incoming ) {\n\t\t// This will overwrite if the src already exists, keeping it unique.\n\t\tmap.set( `${ face.fontWeight }${ face.fontStyle }`, face );\n\t}\n\treturn Array.from( map.values() );\n}\n\nexport function mergeFontFamilies( existing = [], incoming = [] ) {\n\tconst map = new Map();\n\t// Add the existing array to the map.\n\tfor ( const font of existing ) {\n\t\tmap.set( font.slug, { ...font } );\n\t}\n\t// Add the incoming array to the map, overwriting existing values excepting fontFace that need to be merged.\n\tfor ( const font of incoming ) {\n\t\tif ( map.has( font.slug ) ) {\n\t\t\tconst { fontFace: incomingFontFaces, ...restIncoming } = font;\n\t\t\tconst existingFont = map.get( font.slug );\n\t\t\t// Merge the fontFaces existing with the incoming fontFaces.\n\t\t\tconst mergedFontFaces = mergeFontFaces(\n\t\t\t\texistingFont.fontFace,\n\t\t\t\tincomingFontFaces\n\t\t\t);\n\t\t\t// Except for the fontFace key all the other keys are overwritten with the incoming values.\n\t\t\tmap.set( font.slug, {\n\t\t\t\t...restIncoming,\n\t\t\t\tfontFace: mergedFontFaces,\n\t\t\t} );\n\t\t} else {\n\t\t\tmap.set( font.slug, { ...font } );\n\t\t}\n\t}\n\treturn Array.from( map.values() );\n}\n\n/*\n * Loads the font face from a URL and adds it to the browser.\n * It also adds it to the iframe document.\n */\nexport async function loadFontFaceInBrowser( fontFace, source, addTo = 'all' ) {\n\tlet dataSource;\n\n\tif ( typeof source === 'string' ) {\n\t\tdataSource = `url(${ source })`;\n\t\t// eslint-disable-next-line no-undef\n\t} else if ( source instanceof File ) {\n\t\tdataSource = await source.arrayBuffer();\n\t}\n\n\t// eslint-disable-next-line no-undef\n\tconst newFont = new FontFace( fontFace.fontFamily, dataSource, {\n\t\tstyle: fontFace.fontStyle,\n\t\tweight: fontFace.fontWeight,\n\t} );\n\n\tconst loadedFace = await newFont.load();\n\n\tif ( addTo === 'document' || addTo === 'all' ) {\n\t\tdocument.fonts.add( loadedFace );\n\t}\n\n\tif ( addTo === 'iframe' || addTo === 'all' ) {\n\t\tconst iframeDocument = document.querySelector(\n\t\t\t'iframe[name=\"editor-canvas\"]'\n\t\t).contentDocument;\n\t\tiframeDocument.fonts.add( loadedFace );\n\t}\n}\n\nexport function getDisplaySrcFromFontFace( input, urlPrefix ) {\n\tif ( ! input ) {\n\t\treturn;\n\t}\n\n\tlet src;\n\tif ( Array.isArray( input ) ) {\n\t\tsrc = input[ 0 ];\n\t} else {\n\t\tsrc = input;\n\t}\n\t// If it is a theme font, we need to make the url absolute\n\tif ( src.startsWith( 'file:.' ) && urlPrefix ) {\n\t\tsrc = src.replace( 'file:.', urlPrefix );\n\t}\n\tif ( ! isUrlEncoded( src ) ) {\n\t\tsrc = encodeURI( src );\n\t}\n\treturn src;\n}\n\nexport function makeFormDataFromFontFamily( fontFamily ) {\n\tconst formData = new FormData();\n\tconst { kebabCase } = unlock( componentsPrivateApis );\n\n\tconst newFontFamily = {\n\t\t...fontFamily,\n\t\tslug: kebabCase( fontFamily.slug ),\n\t};\n\n\tif ( newFontFamily?.fontFace ) {\n\t\tconst newFontFaces = newFontFamily.fontFace.map(\n\t\t\t( face, faceIndex ) => {\n\t\t\t\tif ( face.file ) {\n\t\t\t\t\t// Slugified file name because the it might contain spaces or characters treated differently on the server.\n\t\t\t\t\tconst fileId = `file-${ faceIndex }`;\n\t\t\t\t\t// Add the files to the formData\n\t\t\t\t\tformData.append( fileId, face.file, face.file.name );\n\t\t\t\t\t// remove the file object from the face object the file is referenced by the uploadedFile key\n\t\t\t\t\tconst { file, ...faceWithoutFileProperty } = face;\n\t\t\t\t\tconst newFace = {\n\t\t\t\t\t\t...faceWithoutFileProperty,\n\t\t\t\t\t\tuploadedFile: fileId,\n\t\t\t\t\t};\n\t\t\t\t\treturn newFace;\n\t\t\t\t}\n\t\t\t\treturn face;\n\t\t\t}\n\t\t);\n\t\tnewFontFamily.fontFace = newFontFaces;\n\t}\n\n\tformData.append( 'font_family_settings', JSON.stringify( newFontFamily ) );\n\treturn formData;\n}\n","/**\n * Toggles the activation of a given font or font variant within a list of custom fonts.\n *\n * - If only the font is provided (without face), the entire font family's activation is toggled.\n * - If both font and face are provided, the activation of the specific font variant is toggled.\n *\n * @param {Object} font            - The font to be toggled.\n * @param {string} font.slug       - The unique identifier for the font.\n * @param {Array}  [font.fontFace] - The list of font variants (faces) associated with the font.\n *\n * @param {Object} [face]          - The specific font variant to be toggled.\n * @param {string} face.fontWeight - The weight of the font variant.\n * @param {string} face.fontStyle  - The style of the font variant.\n *\n * @param {Array}  initialfonts    - The initial list of custom fonts.\n *\n * @return {Array} - The updated list of custom fonts with the font/font variant toggled.\n *\n * @example\n * const customFonts = [\n *     { slug: 'roboto', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }] }\n * ];\n *\n * toggleFont({ slug: 'roboto' }, null, customFonts);\n * // This will remove 'roboto' from customFonts\n *\n * toggleFont({ slug: 'roboto' }, { fontWeight: '400', fontStyle: 'normal' }, customFonts);\n * // This will remove the specified face from 'roboto' in customFonts\n *\n * toggleFont({ slug: 'roboto' }, { fontWeight: '500', fontStyle: 'normal' }, customFonts);\n * // This will add the specified face to 'roboto' in customFonts\n */\nexport function toggleFont( font, face, initialfonts ) {\n\t// Helper to check if a font is activated based on its slug\n\tconst isFontActivated = ( f ) => f.slug === font.slug;\n\n\t// Helper to get the activated font from a list of fonts\n\tconst getActivatedFont = ( fonts ) => fonts.find( isFontActivated );\n\n\t// Toggle the activation status of an entire font family\n\tconst toggleEntireFontFamily = ( activatedFont ) => {\n\t\tif ( ! activatedFont ) {\n\t\t\t// If the font is not active, activate the entire font family\n\t\t\treturn [ ...initialfonts, font ];\n\t\t}\n\t\t// If the font is already active, deactivate the entire font family\n\t\treturn initialfonts.filter( ( f ) => ! isFontActivated( f ) );\n\t};\n\n\t// Toggle the activation status of a specific font variant\n\tconst toggleFontVariant = ( activatedFont ) => {\n\t\tconst isFaceActivated = ( f ) =>\n\t\t\tf.fontWeight === face.fontWeight && f.fontStyle === face.fontStyle;\n\n\t\tif ( ! activatedFont ) {\n\t\t\t// If the font family is not active, activate the font family with the font variant\n\t\t\treturn [ ...initialfonts, { ...font, fontFace: [ face ] } ];\n\t\t}\n\n\t\tlet newFontFaces = activatedFont.fontFace || [];\n\n\t\tif ( newFontFaces.find( isFaceActivated ) ) {\n\t\t\t// If the font variant is active, deactivate it\n\t\t\tnewFontFaces = newFontFaces.filter(\n\t\t\t\t( f ) => ! isFaceActivated( f )\n\t\t\t);\n\t\t} else {\n\t\t\t// If the font variant is not active, activate it\n\t\t\tnewFontFaces = [ ...newFontFaces, face ];\n\t\t}\n\n\t\t// If there are no more font faces, deactivate the font family\n\t\tif ( newFontFaces.length === 0 ) {\n\t\t\treturn initialfonts.filter( ( f ) => ! isFontActivated( f ) );\n\t\t}\n\n\t\t// Return updated fonts list with toggled font variant\n\t\treturn initialfonts.map( ( f ) =>\n\t\t\tisFontActivated( f ) ? { ...f, fontFace: newFontFaces } : f\n\t\t);\n\t};\n\n\tconst activatedFont = getActivatedFont( initialfonts );\n\n\tif ( ! face ) {\n\t\treturn toggleEntireFontFamily( activatedFont );\n\t}\n\n\treturn toggleFontVariant( activatedFont );\n}\n","/**\n * WordPress dependencies\n */\nimport { createContext, useState, useEffect } from '@wordpress/element';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseEntityRecord,\n\tuseEntityRecords,\n\tstore as coreStore,\n} from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tfetchInstallFont,\n\tfetchUninstallFonts,\n\tfetchFontCollections,\n\tfetchFontCollection,\n} from './resolvers';\nimport { unlock } from '../../../lock-unlock';\nconst { useGlobalSetting } = unlock( blockEditorPrivateApis );\nimport {\n\tsetUIValuesNeeded,\n\tmergeFontFamilies,\n\tloadFontFaceInBrowser,\n\tgetDisplaySrcFromFontFace,\n\tmakeFormDataFromFontFamily,\n} from './utils';\nimport { toggleFont } from './utils/toggleFont';\nimport getIntersectingFontFaces from './utils/get-intersecting-font-faces';\n\nexport const FontLibraryContext = createContext( {} );\n\nfunction FontLibraryProvider( { children } ) {\n\tconst { __experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits } =\n\t\tuseDispatch( coreStore );\n\tconst { globalStylesId } = useSelect( ( select ) => {\n\t\tconst { __experimentalGetCurrentGlobalStylesId } = select( coreStore );\n\t\treturn { globalStylesId: __experimentalGetCurrentGlobalStylesId() };\n\t} );\n\n\tconst globalStyles = useEntityRecord(\n\t\t'root',\n\t\t'globalStyles',\n\t\tglobalStylesId\n\t);\n\tconst fontFamiliesHasChanges =\n\t\t!! globalStyles?.edits?.settings?.typography?.fontFamilies;\n\n\tconst [ isInstalling, setIsInstalling ] = useState( false );\n\tconst [ refreshKey, setRefreshKey ] = useState( 0 );\n\n\tconst refreshLibrary = () => {\n\t\tsetRefreshKey( Date.now() );\n\t};\n\n\tconst {\n\t\trecords: libraryPosts = [],\n\t\tisResolving: isResolvingLibrary,\n\t\thasResolved: hasResolvedLibrary,\n\t} = useEntityRecords( 'postType', 'wp_font_family', { refreshKey } );\n\n\tconst libraryFonts =\n\t\t( libraryPosts || [] ).map( ( post ) =>\n\t\t\tJSON.parse( post.content.raw )\n\t\t) || [];\n\n\t// Global Styles (settings) font families\n\tconst [ fontFamilies, setFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies'\n\t);\n\t// theme.json file font families\n\tconst [ baseFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies',\n\t\tundefined,\n\t\t'base'\n\t);\n\n\t// Save font families to the global styles post in the database.\n\tconst saveFontFamilies = () => {\n\t\tsaveSpecifiedEntityEdits( 'root', 'globalStyles', globalStylesId, [\n\t\t\t'settings.typography.fontFamilies',\n\t\t] );\n\t};\n\n\t// Library Fonts\n\tconst [ modalTabOpen, setModalTabOpen ] = useState( false );\n\tconst [ libraryFontSelected, setLibraryFontSelected ] = useState( null );\n\n\tconst baseThemeFonts = baseFontFamilies?.theme\n\t\t? baseFontFamilies.theme\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'theme' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\n\tconst themeFonts = fontFamilies?.theme\n\t\t? fontFamilies.theme\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'theme' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\n\tconst customFonts = fontFamilies?.custom\n\t\t? fontFamilies.custom\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'custom' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\n\tconst baseCustomFonts = libraryFonts\n\t\t? libraryFonts\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'custom' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\n\tuseEffect( () => {\n\t\tif ( ! modalTabOpen ) {\n\t\t\tsetLibraryFontSelected( null );\n\t\t}\n\t}, [ modalTabOpen ] );\n\n\tconst handleSetLibraryFontSelected = ( font ) => {\n\t\t// If font is null, reset the selected font\n\t\tif ( ! font ) {\n\t\t\tsetLibraryFontSelected( null );\n\t\t\treturn;\n\t\t}\n\n\t\tconst fonts =\n\t\t\tfont.source === 'theme' ? baseThemeFonts : baseCustomFonts;\n\n\t\t// Tries to find the font in the installed fonts\n\t\tconst fontSelected = fonts.find( ( f ) => f.slug === font.slug );\n\t\t// If the font is not found (it is only defined in custom styles), use the font from custom styles\n\t\tsetLibraryFontSelected( {\n\t\t\t...( fontSelected || font ),\n\t\t\tsource: font.source,\n\t\t} );\n\t};\n\n\tconst toggleModal = ( tabName ) => {\n\t\tsetModalTabOpen( tabName || null );\n\t};\n\n\t// Demo\n\tconst [ loadedFontUrls ] = useState( new Set() );\n\n\t// Theme data\n\tconst { site, currentTheme } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tsite: select( coreStore ).getSite(),\n\t\t\tcurrentTheme: select( coreStore ).getCurrentTheme(),\n\t\t};\n\t} );\n\tconst themeUrl =\n\t\tsite?.url + '/wp-content/themes/' + currentTheme?.stylesheet;\n\n\tconst getAvailableFontsOutline = ( availableFontFamilies ) => {\n\t\tconst outline = availableFontFamilies.reduce( ( acc, font ) => {\n\t\t\tconst availableFontFaces = Array.isArray( font?.fontFace )\n\t\t\t\t? font?.fontFace.map(\n\t\t\t\t\t\t( face ) => `${ face.fontStyle + face.fontWeight }`\n\t\t\t\t  )\n\t\t\t\t: [ 'normal400' ]; // If the font doesn't have fontFace, we assume it is a system font and we add the defaults: normal 400\n\n\t\t\tacc[ font.slug ] = availableFontFaces;\n\t\t\treturn acc;\n\t\t}, {} );\n\t\treturn outline;\n\t};\n\n\tconst getActivatedFontsOutline = ( source ) => {\n\t\tswitch ( source ) {\n\t\t\tcase 'theme':\n\t\t\t\treturn getAvailableFontsOutline( themeFonts );\n\t\t\tcase 'custom':\n\t\t\tdefault:\n\t\t\t\treturn getAvailableFontsOutline( customFonts );\n\t\t}\n\t};\n\n\tconst isFontActivated = ( slug, style, weight, source ) => {\n\t\tif ( ! style && ! weight ) {\n\t\t\treturn !! getActivatedFontsOutline( source )[ slug ];\n\t\t}\n\t\treturn !! getActivatedFontsOutline( source )[ slug ]?.includes(\n\t\t\tstyle + weight\n\t\t);\n\t};\n\n\tconst getFontFacesActivated = ( slug, source ) => {\n\t\treturn getActivatedFontsOutline( source )[ slug ] || [];\n\t};\n\n\tasync function installFont( font ) {\n\t\tsetIsInstalling( true );\n\t\ttry {\n\t\t\t// Prepare formData to install.\n\t\t\tconst formData = makeFormDataFromFontFamily( font );\n\t\t\t// Install the fonts (upload the font files to the server and create the post in the database).\n\t\t\tconst response = await fetchInstallFont( formData );\n\t\t\tconst fontsInstalled = response?.successes || [];\n\t\t\t// Get intersecting font faces between the fonts we tried to installed and the fonts that were installed\n\t\t\t// (to avoid activating a non installed font).\n\t\t\tconst fontToBeActivated = getIntersectingFontFaces(\n\t\t\t\tfontsInstalled,\n\t\t\t\t[ font ]\n\t\t\t);\n\t\t\t// Activate the font families (add the font families to the global styles).\n\t\t\tactivateCustomFontFamilies( fontToBeActivated );\n\t\t\t// Save the global styles to the database.\n\t\t\tsaveSpecifiedEntityEdits( 'root', 'globalStyles', globalStylesId, [\n\t\t\t\t'settings.typography.fontFamilies',\n\t\t\t] );\n\t\t\trefreshLibrary();\n\t\t\tsetIsInstalling( false );\n\n\t\t\treturn response;\n\t\t} catch ( error ) {\n\t\t\tsetIsInstalling( false );\n\t\t\treturn {\n\t\t\t\terrors: [ error ],\n\t\t\t};\n\t\t}\n\t}\n\n\tasync function uninstallFont( font ) {\n\t\ttry {\n\t\t\t// Uninstall the font (remove the font files from the server and the post from the database).\n\t\t\tconst response = await fetchUninstallFonts( [ font ] );\n\t\t\t// Deactivate the font family (remove the font family from the global styles).\n\t\t\tif ( 0 === response.errors.length ) {\n\t\t\t\tdeactivateFontFamily( font );\n\t\t\t\t// Save the global styles to the database.\n\t\t\t\tawait saveSpecifiedEntityEdits(\n\t\t\t\t\t'root',\n\t\t\t\t\t'globalStyles',\n\t\t\t\t\tglobalStylesId,\n\t\t\t\t\t[ 'settings.typography.fontFamilies' ]\n\t\t\t\t);\n\t\t\t}\n\t\t\t// Refresh the library (the the library font families from database).\n\t\t\trefreshLibrary();\n\t\t\treturn response;\n\t\t} catch ( error ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error( error );\n\t\t\treturn {\n\t\t\t\terrors: [ error ],\n\t\t\t};\n\t\t}\n\t}\n\n\tconst deactivateFontFamily = ( font ) => {\n\t\t// If the user doesn't have custom fonts defined, include as custom fonts all the theme fonts\n\t\t// We want to save as active all the theme fonts at the beginning\n\t\tconst initialCustomFonts = fontFamilies?.[ font.source ] ?? [];\n\t\tconst newCustomFonts = initialCustomFonts.filter(\n\t\t\t( f ) => f.slug !== font.slug\n\t\t);\n\t\tsetFontFamilies( {\n\t\t\t...fontFamilies,\n\t\t\t[ font.source ]: newCustomFonts,\n\t\t} );\n\t};\n\n\tconst activateCustomFontFamilies = ( fontsToAdd ) => {\n\t\t// Merge the existing custom fonts with the new fonts.\n\t\tconst newCustomFonts = mergeFontFamilies(\n\t\t\tfontFamilies?.custom,\n\t\t\tfontsToAdd\n\t\t);\n\t\t// Activate the fonts by set the new custom fonts array.\n\t\tsetFontFamilies( {\n\t\t\t...fontFamilies,\n\t\t\tcustom: newCustomFonts,\n\t\t} );\n\t\t// Add custom fonts to the browser.\n\t\tfontsToAdd.forEach( ( font ) => {\n\t\t\tif ( font.fontFace ) {\n\t\t\t\tfont.fontFace.forEach( ( face ) => {\n\t\t\t\t\t// Load font faces just in the iframe because they already are in the document.\n\t\t\t\t\tloadFontFaceInBrowser(\n\t\t\t\t\t\tface,\n\t\t\t\t\t\tgetDisplaySrcFromFontFace( face.src ),\n\t\t\t\t\t\t'iframe'\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t};\n\n\tconst toggleActivateFont = ( font, face ) => {\n\t\t// If the user doesn't have custom fonts defined, include as custom fonts all the theme fonts\n\t\t// We want to save as active all the theme fonts at the beginning\n\t\tconst initialFonts = fontFamilies?.[ font.source ] ?? [];\n\t\t// Toggles the received font family or font face\n\t\tconst newFonts = toggleFont( font, face, initialFonts );\n\t\t// Updates the font families activated in global settings:\n\t\tsetFontFamilies( {\n\t\t\t...fontFamilies,\n\t\t\t[ font.source ]: newFonts,\n\t\t} );\n\t};\n\n\tconst loadFontFaceAsset = async ( fontFace ) => {\n\t\t// If the font doesn't have a src, don't load it.\n\t\tif ( ! fontFace.src ) return;\n\t\t// Get the src of the font.\n\t\tconst src = getDisplaySrcFromFontFace( fontFace.src, themeUrl );\n\t\t// If the font is already loaded, don't load it again.\n\t\tif ( ! src || loadedFontUrls.has( src ) ) return;\n\t\t// Load the font in the browser.\n\t\tloadFontFaceInBrowser( fontFace, src, 'document' );\n\t\t// Add the font to the loaded fonts list.\n\t\tloadedFontUrls.add( src );\n\t};\n\n\t// Font Collections\n\tconst [ collections, setFontCollections ] = useState( [] );\n\tconst getFontCollections = async () => {\n\t\tconst response = await fetchFontCollections();\n\t\tsetFontCollections( response );\n\t};\n\tconst getFontCollection = async ( id ) => {\n\t\ttry {\n\t\t\tconst hasData = !! collections.find(\n\t\t\t\t( collection ) => collection.id === id\n\t\t\t)?.data;\n\t\t\tif ( hasData ) return;\n\t\t\tconst response = await fetchFontCollection( id );\n\t\t\tconst updatedCollections = collections.map( ( collection ) =>\n\t\t\t\tcollection.id === id\n\t\t\t\t\t? { ...collection, data: { ...response?.data } }\n\t\t\t\t\t: collection\n\t\t\t);\n\t\t\tsetFontCollections( updatedCollections );\n\t\t} catch ( e ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error( e );\n\t\t\tthrow e;\n\t\t}\n\t};\n\n\tuseEffect( () => {\n\t\tgetFontCollections();\n\t}, [] );\n\n\treturn (\n\t\t<FontLibraryContext.Provider\n\t\t\tvalue={ {\n\t\t\t\tlibraryFontSelected,\n\t\t\t\thandleSetLibraryFontSelected,\n\t\t\t\tthemeFonts,\n\t\t\t\tbaseThemeFonts,\n\t\t\t\tcustomFonts,\n\t\t\t\tbaseCustomFonts,\n\t\t\t\tisFontActivated,\n\t\t\t\tgetFontFacesActivated,\n\t\t\t\tloadFontFaceAsset,\n\t\t\t\tinstallFont,\n\t\t\t\tuninstallFont,\n\t\t\t\ttoggleActivateFont,\n\t\t\t\tgetAvailableFontsOutline,\n\t\t\t\tmodalTabOpen,\n\t\t\t\ttoggleModal,\n\t\t\t\trefreshLibrary,\n\t\t\t\tsaveFontFamilies,\n\t\t\t\tfontFamiliesHasChanges,\n\t\t\t\tisResolvingLibrary,\n\t\t\t\thasResolvedLibrary,\n\t\t\t\tisInstalling,\n\t\t\t\tcollections,\n\t\t\t\tgetFontCollection,\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</FontLibraryContext.Provider>\n\t);\n}\n\nexport default FontLibraryProvider;\n","/**\n * WordPress dependencies\n *\n */\n/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\n\nexport async function fetchInstallFont( data ) {\n\tconst config = {\n\t\tpath: '/wp/v2/font-families',\n\t\tmethod: 'POST',\n\t\tbody: data,\n\t};\n\treturn apiFetch( config );\n}\n\nexport async function fetchUninstallFonts( fonts ) {\n\tconst data = {\n\t\tfont_families: fonts,\n\t};\n\tconst config = {\n\t\tpath: '/wp/v2/font-families',\n\t\tmethod: 'DELETE',\n\t\tdata,\n\t};\n\treturn apiFetch( config );\n}\n\nexport async function fetchFontCollections() {\n\tconst config = {\n\t\tpath: '/wp/v2/font-collections',\n\t\tmethod: 'GET',\n\t};\n\treturn apiFetch( config );\n}\n\nexport async function fetchFontCollection( id ) {\n\tconst config = {\n\t\tpath: `/wp/v2/font-collections/${ id }`,\n\t\tmethod: 'GET',\n\t};\n\treturn apiFetch( config );\n}\n","/**\n * Retrieves intersecting font faces between two sets of fonts.\n *\n * For each font in the `incoming` list, the function checks for a corresponding match\n * in the `existing` list based on the `slug` property. If a match is found and both\n * have `fontFace` properties, it further narrows down to matching font faces based on\n * the `fontWeight` and `fontStyle`. The result includes the properties of the matched\n * existing font but only with intersecting font faces.\n *\n * @param {Array.<{ slug: string, fontFace?: Array.<{ fontWeight: string, fontStyle: string }> }>} incoming - The list of fonts to compare.\n * @param {Array.<{ slug: string, fontFace?: Array.<{ fontWeight: string, fontStyle: string }> }>} existing - The reference list of fonts.\n *\n * @return {Array.<{ slug: string, fontFace?: Array.<{ fontWeight: string, fontStyle: string }> }>} An array of fonts from the `existing` list with intersecting font faces.\n *\n * @example\n * const incomingFonts = [\n *   { slug: 'arial', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }] },\n *   { slug: 'times-new', fontFace: [{ fontWeight: '700', fontStyle: 'italic' }] }\n * ];\n *\n * const existingFonts = [\n *   { slug: 'arial', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }, { fontWeight: '700', fontStyle: 'italic' }] },\n *   { slug: 'helvetica', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }] }\n * ];\n *\n * getIntersectingFontFaces(incomingFonts, existingFonts);\n * // Returns:\n * // [{ slug: 'arial', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }] }]\n */\nexport default function getIntersectingFontFaces( incoming, existing ) {\n\tconst matches = [];\n\n\tfor ( const incomingFont of incoming ) {\n\t\tconst existingFont = existing.find(\n\t\t\t( f ) => f.slug === incomingFont.slug\n\t\t);\n\n\t\tif ( existingFont ) {\n\t\t\tif ( incomingFont?.fontFace ) {\n\t\t\t\tconst matchingFaces = incomingFont.fontFace.filter(\n\t\t\t\t\t( face ) => {\n\t\t\t\t\t\treturn ( existingFont?.fontFace || [] ).find( ( f ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\tf.fontWeight === face.fontWeight &&\n\t\t\t\t\t\t\t\tf.fontStyle === face.fontStyle\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\tmatches.push( { ...incomingFont, fontFace: matchingFaces } );\n\t\t\t} else {\n\t\t\t\tmatches.push( incomingFont );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn matches;\n}\n","/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalText as Text,\n\t__experimentalHeading as Heading,\n\t__experimentalVStack as VStack,\n\t__experimentalSpacer as Spacer,\n\t__experimentalHStack as HStack,\n\tButton,\n} from '@wordpress/components';\nimport { chevronLeft } from '@wordpress/icons';\n\nfunction TabPanelLayout( {\n\ttitle,\n\tdescription,\n\thandleBack,\n\tchildren,\n\tfooter,\n} ) {\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t<Spacer margin={ 4 } />\n\t\t\t<VStack spacing={ 4 } justify=\"space-between\">\n\t\t\t\t<header>\n\t\t\t\t\t<VStack spacing={ 2 }>\n\t\t\t\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t\t\t\t{ !! handleBack && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\tonClick={ handleBack }\n\t\t\t\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ title && (\n\t\t\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\t\t\tsize={ 13 }\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-header\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t{ description && <Text>{ description }</Text> }\n\t\t\t\t\t</VStack>\n\t\t\t\t</header>\n\t\t\t\t<main>{ children }</main>\n\t\t\t\t{ footer && <footer>{ footer }</footer> }\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nexport default TabPanelLayout;\n","/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalText as Text,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\nimport { useState, useEffect } from '@wordpress/element';\n\nfunction FontsGrid( { title, children, pageSize = 32 } ) {\n\tconst [ lastItem, setLastItem ] = useState( null );\n\tconst [ page, setPage ] = useState( 1 );\n\tconst itemsLimit = page * pageSize;\n\tconst items = children.slice( 0, itemsLimit );\n\n\tuseEffect( () => {\n\t\tif ( lastItem ) {\n\t\t\tconst observer = new window.IntersectionObserver( ( [ entry ] ) => {\n\t\t\t\tif ( entry.isIntersecting ) {\n\t\t\t\t\tsetPage( ( prevPage ) => prevPage + 1 );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tobserver.observe( lastItem );\n\n\t\t\treturn () => observer.disconnect();\n\t\t}\n\t}, [ lastItem ] );\n\n\treturn (\n\t\t<div className=\"font-library-modal__fonts-grid\">\n\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t{ title && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Text className=\"font-library-modal__subtitle\">\n\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t<div className=\"font-library-modal__fonts-grid__main\">\n\t\t\t\t\t{ items.map( ( child, i ) => {\n\t\t\t\t\t\tif ( i === itemsLimit - 1 ) {\n\t\t\t\t\t\t\treturn <div ref={ setLastItem }>{ child }</div>;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn child;\n\t\t\t\t\t} ) }\n\t\t\t\t</div>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nexport default FontsGrid;\n","function findNearest( input, numbers ) {\n\t// If the numbers array is empty, return null\n\tif ( numbers.length === 0 ) {\n\t\treturn null;\n\t}\n\t// Sort the array based on the absolute difference with the input\n\tnumbers.sort( ( a, b ) => Math.abs( input - a ) - Math.abs( input - b ) );\n\t// Return the first element (which will be the nearest) from the sorted array\n\treturn numbers[ 0 ];\n}\n\nfunction extractFontWeights( fontFaces ) {\n\tconst result = [];\n\n\tfontFaces.forEach( ( face ) => {\n\t\tconst weights = String( face.fontWeight ).split( ' ' );\n\n\t\tif ( weights.length === 2 ) {\n\t\t\tconst start = parseInt( weights[ 0 ] );\n\t\t\tconst end = parseInt( weights[ 1 ] );\n\n\t\t\tfor ( let i = start; i <= end; i += 100 ) {\n\t\t\t\tresult.push( i );\n\t\t\t}\n\t\t} else if ( weights.length === 1 ) {\n\t\t\tresult.push( parseInt( weights[ 0 ] ) );\n\t\t}\n\t} );\n\n\treturn result;\n}\n\nexport function formatFontFamily( input ) {\n\treturn input\n\t\t.split( ',' )\n\t\t.map( ( font ) => {\n\t\t\tfont = font.trim(); // Remove any leading or trailing white spaces\n\t\t\t// If the font doesn't have single quotes and contains a space, then add single quotes around it\n\t\t\tif ( ! font.startsWith( \"'\" ) && font.indexOf( ' ' ) !== -1 ) {\n\t\t\t\treturn `'${ font }'`;\n\t\t\t}\n\t\t\treturn font; // Return font as is if no transformation is needed\n\t\t} )\n\t\t.join( ', ' );\n}\n\nexport function getFamilyPreviewStyle( family ) {\n\tconst style = { fontFamily: formatFontFamily( family.fontFamily ) };\n\n\tif ( ! Array.isArray( family.fontFace ) ) {\n\t\tstyle.fontWeight = '400';\n\t\tstyle.fontStyle = 'normal';\n\t\treturn style;\n\t}\n\n\tif ( family.fontFace ) {\n\t\t//get all the font faces with normal style\n\t\tconst normalFaces = family.fontFace.filter(\n\t\t\t( face ) => face.fontStyle.toLowerCase() === 'normal'\n\t\t);\n\t\tif ( normalFaces.length > 0 ) {\n\t\t\tstyle.fontStyle = 'normal';\n\t\t\tconst normalWeights = extractFontWeights( normalFaces );\n\t\t\tconst nearestWeight = findNearest( 400, normalWeights );\n\t\t\tstyle.fontWeight = String( nearestWeight ) || '400';\n\t\t} else {\n\t\t\tstyle.fontStyle =\n\t\t\t\t( family.fontFace.length && family.fontFace[ 0 ].fontStyle ) ||\n\t\t\t\t'normal';\n\t\t\tstyle.fontWeight =\n\t\t\t\t( family.fontFace.length &&\n\t\t\t\t\tString( family.fontFace[ 0 ].fontWeight ) ) ||\n\t\t\t\t'400';\n\t\t}\n\t}\n\n\treturn style;\n}\n\nexport function getFacePreviewStyle( face ) {\n\treturn {\n\t\tfontFamily: formatFontFamily( face.fontFamily ),\n\t\tfontStyle: face.fontStyle || 'normal',\n\t\tfontWeight: face.fontWeight || '400',\n\t};\n}\n","/**\n * WordPress dependencies\n */\nimport { __experimentalText as Text } from '@wordpress/components';\nimport { useContext, useEffect, useState, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { FontLibraryContext } from './context';\nimport { getFacePreviewStyle } from './utils/preview-styles';\n\nfunction getPreviewUrl( fontFace ) {\n\tif ( fontFace.preview ) {\n\t\treturn fontFace.preview;\n\t}\n\tif ( fontFace.src ) {\n\t\treturn Array.isArray( fontFace.src ) ? fontFace.src[ 0 ] : fontFace.src;\n\t}\n}\n\nfunction FontFaceDemo( { customPreviewUrl, fontFace, text, style = {} } ) {\n\tconst ref = useRef( null );\n\tconst [ isIntersecting, setIsIntersecting ] = useState( false );\n\tconst [ isAssetLoaded, setIsAssetLoaded ] = useState( false );\n\tconst { loadFontFaceAsset } = useContext( FontLibraryContext );\n\n\tconst previewUrl = customPreviewUrl ?? getPreviewUrl( fontFace );\n\tconst isPreviewImage =\n\t\tpreviewUrl && previewUrl.match( /\\.(png|jpg|jpeg|gif|svg)$/i );\n\n\tconst faceStyles = getFacePreviewStyle( fontFace );\n\tconst textDemoStyle = {\n\t\twhiteSpace: 'nowrap',\n\t\tflexShrink: 0,\n\t\tfontSize: '18px',\n\t\topacity: isAssetLoaded ? '1' : '0',\n\t\ttransition: 'opacity 0.3s ease-in-out',\n\t\t...faceStyles,\n\t\t...style,\n\t};\n\tconst imageDemoStyle = {\n\t\theight: '23px',\n\t\twidth: 'auto',\n\t};\n\n\tuseEffect( () => {\n\t\tconst observer = new window.IntersectionObserver( ( [ entry ] ) => {\n\t\t\tsetIsIntersecting( entry.isIntersecting );\n\t\t}, {} );\n\t\tobserver.observe( ref.current );\n\t\treturn () => observer.disconnect();\n\t}, [ ref ] );\n\n\tuseEffect( () => {\n\t\tconst loadAsset = async () => {\n\t\t\tif ( isIntersecting ) {\n\t\t\t\tif ( ! isPreviewImage && fontFace.src ) {\n\t\t\t\t\tawait loadFontFaceAsset( fontFace );\n\t\t\t\t}\n\t\t\t\tsetIsAssetLoaded( true );\n\t\t\t}\n\t\t};\n\t\tloadAsset();\n\t}, [ fontFace, isIntersecting, loadFontFaceAsset ] );\n\n\treturn (\n\t\t<div ref={ ref }>\n\t\t\t{ isPreviewImage ? (\n\t\t\t\t<img\n\t\t\t\t\tsrc={ previewUrl }\n\t\t\t\t\tloading=\"lazy\"\n\t\t\t\t\talt={ text }\n\t\t\t\t\tstyle={ imageDemoStyle }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<Text style={ textDemoStyle }>{ text }</Text>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default FontFaceDemo;\n","/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport {\n\tCheckboxControl,\n\tFlex,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { getFontFaceVariantName } from './utils';\nimport { FontLibraryContext } from './context';\nimport FontFaceDemo from './font-demo';\nimport { unlock } from '../../../lock-unlock';\n\nfunction LibraryFontVariant( { face, font } ) {\n\tconst { isFontActivated, toggleActivateFont } =\n\t\tuseContext( FontLibraryContext );\n\n\tconst isIstalled = font?.fontFace\n\t\t? isFontActivated(\n\t\t\t\tfont.slug,\n\t\t\t\tface.fontStyle,\n\t\t\t\tface.fontWeight,\n\t\t\t\tfont.source\n\t\t  )\n\t\t: isFontActivated( font.slug, null, null, font.source );\n\n\tconst handleToggleActivation = () => {\n\t\tif ( font?.fontFace ) {\n\t\t\ttoggleActivateFont( font, face );\n\t\t\treturn;\n\t\t}\n\t\ttoggleActivateFont( font );\n\t};\n\n\tconst displayName = font.name + ' ' + getFontFaceVariantName( face );\n\tconst { kebabCase } = unlock( componentsPrivateApis );\n\tconst checkboxId = kebabCase(\n\t\t`${ font.slug }-${ getFontFaceVariantName( face ) }`\n\t);\n\n\treturn (\n\t\t<label\n\t\t\tclassName=\"font-library-modal__library-font-variant\"\n\t\t\thtmlFor={ checkboxId }\n\t\t>\n\t\t\t<Flex justify=\"space-between\" align=\"center\" gap=\"1rem\">\n\t\t\t\t<FontFaceDemo fontFace={ face } text={ displayName } />\n\t\t\t\t<CheckboxControl\n\t\t\t\t\tchecked={ isIstalled }\n\t\t\t\t\tonChange={ handleToggleActivation }\n\t\t\t\t\t__nextHasNoMarginBottom={ true }\n\t\t\t\t\tid={ checkboxId }\n\t\t\t\t\tlabel={ false }\n\t\t\t\t/>\n\t\t\t</Flex>\n\t\t</label>\n\t);\n}\n\nexport default LibraryFontVariant;\n","function getNumericFontWeight( value ) {\n\tswitch ( value ) {\n\t\tcase 'normal':\n\t\t\treturn 400;\n\t\tcase 'bold':\n\t\t\treturn 700;\n\t\tcase 'bolder':\n\t\t\treturn 500;\n\t\tcase 'lighter':\n\t\t\treturn 300;\n\t\tdefault:\n\t\t\treturn parseInt( value, 10 );\n\t}\n}\n\nexport function sortFontFaces( faces ) {\n\treturn faces.sort( ( a, b ) => {\n\t\t// Ensure 'normal' fontStyle is always first\n\t\tif ( a.fontStyle === 'normal' && b.fontStyle !== 'normal' ) return -1;\n\t\tif ( b.fontStyle === 'normal' && a.fontStyle !== 'normal' ) return 1;\n\n\t\t// If both fontStyles are the same, sort by fontWeight\n\t\tif ( a.fontStyle === b.fontStyle ) {\n\t\t\treturn (\n\t\t\t\tgetNumericFontWeight( a.fontWeight ) -\n\t\t\t\tgetNumericFontWeight( b.fontWeight )\n\t\t\t);\n\t\t}\n\n\t\t// Sort other fontStyles alphabetically\n\t\treturn a.fontStyle.localeCompare( b.fontStyle );\n\t} );\n}\n","/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport LibraryFontVariant from './library-font-variant';\nimport { sortFontFaces } from './utils/sort-font-faces';\n\nfunction LibraryFontDetails( { font } ) {\n\tconst fontFaces =\n\t\tfont.fontFace && font.fontFace.length\n\t\t\t? sortFontFaces( font.fontFace )\n\t\t\t: [\n\t\t\t\t\t{\n\t\t\t\t\t\tfontFamily: font.fontFamily,\n\t\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\t\tfontWeight: '400',\n\t\t\t\t\t},\n\t\t\t  ];\n\n\treturn (\n\t\t<>\n\t\t\t<Spacer margin={ 4 } />\n\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t{ fontFaces.map( ( face, i ) => (\n\t\t\t\t\t<LibraryFontVariant\n\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</VStack>\n\t\t\t<Spacer margin={ 8 } />\n\t\t</>\n\t);\n}\n\nexport default LibraryFontDetails;\n","/**\n * WordPress dependencies\n */\nimport { _n } from '@wordpress/i18n';\nimport {\n\t__experimentalText as Text,\n\tButton,\n\tFlex,\n\tFlexItem,\n\tIcon,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport FontDemo from './font-demo';\nimport { getFamilyPreviewStyle } from './utils/preview-styles';\nimport { chevronRight } from '@wordpress/icons';\n\nfunction FontCard( { font, onClick, variantsText } ) {\n\tconst fakeFontFace = {\n\t\tfontStyle: 'normal',\n\t\tfontWeight: '400',\n\t\tfontFamily: font.fontFamily,\n\t\tfake: true,\n\t};\n\n\tconst displayFontFace =\n\t\tfont.fontFace && font.fontFace.length\n\t\t\t? font?.fontFace?.find(\n\t\t\t\t\t( face ) =>\n\t\t\t\t\t\tface.fontStyle === 'normal' && face.fontWeight === '400'\n\t\t\t  ) || font.fontFace[ 0 ]\n\t\t\t: fakeFontFace;\n\n\tconst demoStyle = getFamilyPreviewStyle( font );\n\n\tconst variantsCount = font.fontFace?.length || 1;\n\n\tconst style = {\n\t\tcursor: !! onClick ? 'pointer' : 'default',\n\t};\n\n\treturn (\n\t\t<Button\n\t\t\tonClick={ onClick }\n\t\t\tstyle={ style }\n\t\t\tclassName=\"font-library-modal__font-card\"\n\t\t>\n\t\t\t<Flex justify=\"space-between\" wrap={ false }>\n\t\t\t\t<FontDemo\n\t\t\t\t\tcustomPreviewUrl={ font.preview }\n\t\t\t\t\tfontFace={ displayFontFace }\n\t\t\t\t\ttext={ font.name }\n\t\t\t\t\tstyle={ demoStyle }\n\t\t\t\t/>\n\t\t\t\t<Flex justify=\"flex-end\">\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Text className=\"font-library-modal__font-card__count\">\n\t\t\t\t\t\t\t{ variantsText ||\n\t\t\t\t\t\t\t\tvariantsCount +\n\t\t\t\t\t\t\t\t\t' ' +\n\t\t\t\t\t\t\t\t\t_n( 'variant', 'variants', variantsCount ) }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Icon icon={ chevronRight } />\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t</Flex>\n\t\t</Button>\n\t);\n}\n\nexport default FontCard;\n","/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport FontCard from './font-card';\nimport { FontLibraryContext } from './context';\n\nfunction LibraryFontCard( { font, ...props } ) {\n\tconst { getFontFacesActivated } = useContext( FontLibraryContext );\n\n\tconst variantsInstalled = font.fontFace?.length || 1;\n\tconst variantsActive = getFontFacesActivated(\n\t\tfont.slug,\n\t\tfont.source\n\t).length;\n\tconst variantsText = sprintf(\n\t\t/* translators: %1$d: Active font variants, %2$d: Total font variants */\n\t\t__( '%1$s/%2$s variants active' ),\n\t\tvariantsActive,\n\t\tvariantsInstalled\n\t);\n\n\treturn (\n\t\t<FontCard font={ font } variantsText={ variantsText } { ...props } />\n\t);\n}\n\nexport default LibraryFontCard;\n","/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { __experimentalConfirmDialog as ConfirmDialog } from '@wordpress/components';\n\nfunction ConfirmDeleteDialog( {\n\tfont,\n\tisConfirmDeleteOpen,\n\thandleConfirmUninstall,\n\thandleCancelUninstall,\n} ) {\n\treturn (\n\t\t<ConfirmDialog\n\t\t\tisOpen={ isConfirmDeleteOpen }\n\t\t\tcancelButtonText={ __( 'Cancel' ) }\n\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\tonCancel={ handleCancelUninstall }\n\t\t\tonConfirm={ handleConfirmUninstall }\n\t\t>\n\t\t\t{ font &&\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: Name of the font. */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Are you sure you want to delete \"%s\" font and all its variants and assets?'\n\t\t\t\t\t),\n\t\t\t\t\tfont.name\n\t\t\t\t) }\n\t\t</ConfirmDialog>\n\t);\n}\n\nexport default ConfirmDeleteDialog;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nexport function getNoticeFromInstallResponse( response ) {\n\tconst { errors = [], successes = [] } = response;\n\t// Everything failed.\n\tif ( errors.length && ! successes.length ) {\n\t\treturn {\n\t\t\ttype: 'error',\n\t\t\tmessage: __( 'Error installing the fonts.' ),\n\t\t};\n\t}\n\n\t// Eveerything succeeded.\n\tif ( ! errors.length && successes.length ) {\n\t\treturn {\n\t\t\ttype: 'success',\n\t\t\tmessage: __( 'Fonts were installed successfully.' ),\n\t\t};\n\t}\n\n\t// Some succeeded, some failed.\n\tif ( errors.length && successes.length ) {\n\t\treturn {\n\t\t\ttype: 'warning',\n\t\t\tmessage: __(\n\t\t\t\t'Some fonts were installed successfully and some failed.'\n\t\t\t),\n\t\t};\n\t}\n}\n\nexport function getNoticeFromUninstallResponse( response ) {\n\tconst { errors = [], successes = [] } = response;\n\t// Everything failed.\n\tif ( errors.length && ! successes.length ) {\n\t\treturn {\n\t\t\ttype: 'error',\n\t\t\tmessage: __( 'Error uninstalling the fonts.' ),\n\t\t};\n\t}\n\n\t// Everything succeeded.\n\tif ( ! errors.length && successes.length ) {\n\t\treturn {\n\t\t\ttype: 'success',\n\t\t\tmessage: __( 'Fonts were uninstalled successfully.' ),\n\t\t};\n\t}\n\n\t// Some succeeded, some failed.\n\tif ( errors.length && successes.length ) {\n\t\treturn {\n\t\t\ttype: 'warning',\n\t\t\tmessage: __(\n\t\t\t\t'Some fonts were uninstalled successfully and some failed.'\n\t\t\t),\n\t\t};\n\t}\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useContext, useEffect, useState } from '@wordpress/element';\nimport {\n\tprivateApis as componentsPrivateApis,\n\t__experimentalHStack as HStack,\n\t__experimentalSpacer as Spacer,\n\tButton,\n\tSpinner,\n\tNotice,\n\tFlexItem,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport TabPanelLayout from './tab-panel-layout';\nimport { FontLibraryContext } from './context';\nimport FontsGrid from './fonts-grid';\nimport LibraryFontDetails from './library-font-details';\nimport LibraryFontCard from './library-font-card';\nimport ConfirmDeleteDialog from './confirm-delete-dialog';\nimport { getNoticeFromUninstallResponse } from './utils/get-notice-from-response';\nimport { unlock } from '../../../lock-unlock';\nconst { ProgressBar } = unlock( componentsPrivateApis );\n\nfunction InstalledFonts() {\n\tconst {\n\t\tbaseCustomFonts,\n\t\tlibraryFontSelected,\n\t\tbaseThemeFonts,\n\t\thandleSetLibraryFontSelected,\n\t\trefreshLibrary,\n\t\tuninstallFont,\n\t\tisResolvingLibrary,\n\t} = useContext( FontLibraryContext );\n\tconst [ isConfirmDeleteOpen, setIsConfirmDeleteOpen ] = useState( false );\n\n\tconst handleUnselectFont = () => {\n\t\thandleSetLibraryFontSelected( null );\n\t};\n\n\tconst handleSelectFont = ( font ) => {\n\t\thandleSetLibraryFontSelected( font );\n\t};\n\n\tconst [ notice, setNotice ] = useState( null );\n\n\tconst handleConfirmUninstall = async () => {\n\t\tconst response = await uninstallFont( libraryFontSelected );\n\t\tconst uninstallNotice = getNoticeFromUninstallResponse( response );\n\t\tsetNotice( uninstallNotice );\n\t\t// If the font was succesfully uninstalled it is unselected\n\t\tif ( ! response?.errors?.length ) {\n\t\t\thandleUnselectFont();\n\t\t}\n\t\tsetIsConfirmDeleteOpen( false );\n\t};\n\n\tconst handleUninstallClick = async () => {\n\t\tsetIsConfirmDeleteOpen( true );\n\t};\n\n\tconst handleCancelUninstall = () => {\n\t\tsetIsConfirmDeleteOpen( false );\n\t};\n\n\tconst tabDescription = !! libraryFontSelected\n\t\t? __(\n\t\t\t\t'Choose font variants. Keep in mind that too many variants could make your site slower.'\n\t\t  )\n\t\t: null;\n\n\tconst shouldDisplayDeleteButton =\n\t\t!! libraryFontSelected && libraryFontSelected?.source !== 'theme';\n\n\tuseEffect( () => {\n\t\trefreshLibrary();\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\t// Reset notice after 5 seconds\n\tuseEffect( () => {\n\t\tif ( notice ) {\n\t\t\tconst timeout = setTimeout( () => {\n\t\t\t\tsetNotice( null );\n\t\t\t}, 5000 );\n\t\t\treturn () => clearTimeout( timeout );\n\t\t}\n\t}, [ notice ] );\n\n\treturn (\n\t\t<TabPanelLayout\n\t\t\ttitle={ libraryFontSelected?.name || '' }\n\t\t\tdescription={ tabDescription }\n\t\t\thandleBack={ !! libraryFontSelected && handleUnselectFont }\n\t\t\tfooter={\n\t\t\t\t<Footer\n\t\t\t\t\tshouldDisplayDeleteButton={ shouldDisplayDeleteButton }\n\t\t\t\t\thandleUninstallClick={ handleUninstallClick }\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t<ConfirmDeleteDialog\n\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\tisConfirmDeleteOpen={ isConfirmDeleteOpen }\n\t\t\t\thandleConfirmUninstall={ handleConfirmUninstall }\n\t\t\t\thandleCancelUninstall={ handleCancelUninstall }\n\t\t\t/>\n\n\t\t\t{ notice && (\n\t\t\t\t<>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\tclassName=\"font-library-modal__font-collection__notice\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t</Notice>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ ! libraryFontSelected && (\n\t\t\t\t<>\n\t\t\t\t\t{ isResolvingLibrary && <Spinner /> }\n\t\t\t\t\t{ baseCustomFonts.length > 0 && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t\t<FontsGrid>\n\t\t\t\t\t\t\t\t{ baseCustomFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t<LibraryFontCard\n\t\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\thandleSelectFont( font );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</FontsGrid>\n\t\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ baseThemeFonts.length > 0 && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<FontsGrid title={ __( 'Theme Fonts' ) }>\n\t\t\t\t\t\t\t\t{ baseThemeFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t<LibraryFontCard\n\t\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\thandleSelectFont( font );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</FontsGrid>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ libraryFontSelected && (\n\t\t\t\t<LibraryFontDetails\n\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\tisConfirmDeleteOpen={ isConfirmDeleteOpen }\n\t\t\t\t\thandleConfirmUninstall={ handleConfirmUninstall }\n\t\t\t\t\thandleCancelUninstall={ handleCancelUninstall }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</TabPanelLayout>\n\t);\n}\n\nfunction Footer( { shouldDisplayDeleteButton, handleUninstallClick } ) {\n\tconst { saveFontFamilies, fontFamiliesHasChanges, isInstalling } =\n\t\tuseContext( FontLibraryContext );\n\treturn (\n\t\t<HStack justify=\"space-between\">\n\t\t\t{ isInstalling && <ProgressBar /> }\n\t\t\t<div>\n\t\t\t\t{ shouldDisplayDeleteButton && (\n\t\t\t\t\t<Button variant=\"tertiary\" onClick={ handleUninstallClick }>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t<Button\n\t\t\t\tdisabled={ ! fontFamiliesHasChanges }\n\t\t\t\tvariant=\"primary\"\n\t\t\t\tonClick={ saveFontFamilies }\n\t\t\t>\n\t\t\t\t{ __( 'Update' ) }\n\t\t\t</Button>\n\t\t</HStack>\n\t);\n}\n\nexport default InstalledFonts;\n","/**\n * WordPress dependencies\n */\nimport {\n\tCheckboxControl,\n\tFlex,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { getFontFaceVariantName } from './utils';\nimport FontFaceDemo from './font-demo';\nimport { unlock } from '../../../lock-unlock';\n\nfunction CollectionFontVariant( {\n\tface,\n\tfont,\n\thandleToggleVariant,\n\tselected,\n} ) {\n\tconst handleToggleActivation = () => {\n\t\tif ( font?.fontFace ) {\n\t\t\thandleToggleVariant( font, face );\n\t\t\treturn;\n\t\t}\n\t\thandleToggleVariant( font );\n\t};\n\n\tconst displayName = font.name + ' ' + getFontFaceVariantName( face );\n\tconst { kebabCase } = unlock( componentsPrivateApis );\n\tconst checkboxId = kebabCase(\n\t\t`${ font.slug }-${ getFontFaceVariantName( face ) }`\n\t);\n\n\treturn (\n\t\t<label\n\t\t\tclassName=\"font-library-modal__library-font-variant\"\n\t\t\thtmlFor={ checkboxId }\n\t\t>\n\t\t\t<Flex justify=\"space-between\" align=\"center\" gap=\"1rem\">\n\t\t\t\t<FontFaceDemo fontFace={ face } text={ displayName } />\n\t\t\t\t<CheckboxControl\n\t\t\t\t\tchecked={ selected }\n\t\t\t\t\tonChange={ handleToggleActivation }\n\t\t\t\t\t__nextHasNoMarginBottom={ true }\n\t\t\t\t\tid={ checkboxId }\n\t\t\t\t\tlabel={ false }\n\t\t\t\t/>\n\t\t\t</Flex>\n\t\t</label>\n\t);\n}\n\nexport default CollectionFontVariant;\n","export function getFontsOutline( fonts ) {\n\treturn fonts.reduce(\n\t\t( acc, font ) => ( {\n\t\t\t...acc,\n\t\t\t[ font.slug ]: ( font?.fontFace || [] ).reduce(\n\t\t\t\t( faces, face ) => ( {\n\t\t\t\t\t...faces,\n\t\t\t\t\t[ `${ face.fontStyle }-${ face.fontWeight }` ]: true,\n\t\t\t\t} ),\n\t\t\t\t{}\n\t\t\t),\n\t\t} ),\n\t\t{}\n\t);\n}\n\nexport function isFontFontFaceInOutline( slug, face, outline ) {\n\tif ( ! face ) {\n\t\treturn !! outline[ slug ];\n\t}\n\treturn !! outline[ slug ]?.[ `${ face.fontStyle }-${ face.fontWeight }` ];\n}\n","/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport CollectionFontVariant from './collection-font-variant';\nimport { isFontFontFaceInOutline } from './utils/fonts-outline';\nimport { sortFontFaces } from './utils/sort-font-faces';\n\nfunction CollectionFontDetails( {\n\tfont,\n\thandleToggleVariant,\n\tfontToInstallOutline,\n} ) {\n\tconst fontFaces =\n\t\tfont.fontFace && font.fontFace.length\n\t\t\t? sortFontFaces( font.fontFace )\n\t\t\t: [\n\t\t\t\t\t{\n\t\t\t\t\t\tfontFamily: font.fontFamily,\n\t\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\t\tfontWeight: '400',\n\t\t\t\t\t},\n\t\t\t  ];\n\n\treturn (\n\t\t<>\n\t\t\t<Spacer margin={ 4 } />\n\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t{ fontFaces.map( ( face, i ) => (\n\t\t\t\t\t<CollectionFontVariant\n\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t\thandleToggleVariant={ handleToggleVariant }\n\t\t\t\t\t\tselected={ isFontFontFaceInOutline(\n\t\t\t\t\t\t\tfont.slug,\n\t\t\t\t\t\t\tfont.fontFace ? face : null, // If the font has no fontFace, we want to check if the font is in the outline\n\t\t\t\t\t\t\tfontToInstallOutline\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</VStack>\n\t\t\t<Spacer margin={ 8 } />\n\t\t</>\n\t);\n}\n\nexport default CollectionFontDetails;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tCard,\n\tCardBody,\n\t__experimentalText as Text,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\n\nfunction GoogleFontsConfirmDialog() {\n\tconst handleConfirm = () => {\n\t\t// eslint-disable-next-line no-undef\n\t\twindow.localStorage.setItem(\n\t\t\t'wp-font-library-default-font-collection-permission',\n\t\t\t'true'\n\t\t);\n\t\twindow.dispatchEvent( new Event( 'storage' ) );\n\t};\n\n\treturn (\n\t\t<div className=\"font-library__google-fonts-confirm\">\n\t\t\t<Card>\n\t\t\t\t<CardBody>\n\t\t\t\t\t<Text as=\"h3\">Connect to Google Fonts</Text>\n\t\t\t\t\t<Spacer margin={ 6 } />\n\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'To install fonts from Google you must give permission to connect directly to Google servers. The fonts you install will be downloaded from Google and stored on your site. Your site will then use these locally-hosted fonts.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Spacer margin={ 3 } />\n\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'You can alternatively upload files directly on the Library tab.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Spacer margin={ 6 } />\n\t\t\t\t\t<Button variant=\"primary\" onClick={ handleConfirm }>\n\t\t\t\t\t\t{ __( 'Allow access to Google Fonts' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</CardBody>\n\t\t\t</Card>\n\t\t</div>\n\t);\n}\n\nexport default GoogleFontsConfirmDialog;\n","/**\n * WordPress dependencies\n */\nimport { useContext, useEffect, useState, useMemo } from '@wordpress/element';\nimport {\n\t__experimentalSpacer as Spacer,\n\t__experimentalInputControl as InputControl,\n\t__experimentalText as Text,\n\tSelectControl,\n\tSpinner,\n\tIcon,\n\tFlexItem,\n\tFlex,\n\tButton,\n\tNotice,\n} from '@wordpress/components';\nimport { debounce } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { search, closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport TabPanelLayout from './tab-panel-layout';\nimport { FontLibraryContext } from './context';\nimport FontsGrid from './fonts-grid';\nimport FontCard from './font-card';\nimport filterFonts from './utils/filter-fonts';\nimport CollectionFontDetails from './collection-font-details';\nimport { toggleFont } from './utils/toggleFont';\nimport { getFontsOutline } from './utils/fonts-outline';\nimport GoogleFontsConfirmDialog from './google-fonts-confirm-dialog';\nimport { getNoticeFromInstallResponse } from './utils/get-notice-from-response';\n\nconst DEFAULT_CATEGORY = {\n\tid: 'all',\n\tname: __( 'All' ),\n};\nfunction FontCollection( { id } ) {\n\tconst requiresPermission = id === 'default-font-collection';\n\n\tconst getGoogleFontsPermissionFromStorage = () => {\n\t\treturn (\n\t\t\twindow.localStorage.getItem(\n\t\t\t\t'wp-font-library-default-font-collection-permission'\n\t\t\t) === 'true'\n\t\t);\n\t};\n\n\tconst [ notice, setNotice ] = useState( null );\n\tconst [ selectedFont, setSelectedFont ] = useState( null );\n\tconst [ fontsToInstall, setFontsToInstall ] = useState( [] );\n\tconst [ filters, setFilters ] = useState( {} );\n\tconst [ renderConfirmDialog, setRenderConfirmDialog ] = useState(\n\t\trequiresPermission && ! getGoogleFontsPermissionFromStorage()\n\t);\n\tconst { collections, getFontCollection, installFont } =\n\t\tuseContext( FontLibraryContext );\n\tconst selectedCollection = collections.find(\n\t\t( collection ) => collection.id === id\n\t);\n\n\tuseEffect( () => {\n\t\tconst handleStorage = () => {\n\t\t\tsetRenderConfirmDialog(\n\t\t\t\trequiresPermission && ! getGoogleFontsPermissionFromStorage()\n\t\t\t);\n\t\t};\n\t\thandleStorage();\n\t\twindow.addEventListener( 'storage', handleStorage );\n\t\treturn () => window.removeEventListener( 'storage', handleStorage );\n\t}, [ id, requiresPermission ] );\n\n\tuseEffect( () => {\n\t\tconst fetchFontCollection = async () => {\n\t\t\ttry {\n\t\t\t\tawait getFontCollection( id );\n\t\t\t\tresetFilters();\n\t\t\t} catch ( e ) {\n\t\t\t\tsetNotice( {\n\t\t\t\t\ttype: 'error',\n\t\t\t\t\tmessage: e?.message,\n\t\t\t\t\tduration: 0, // Don't auto-hide.\n\t\t\t\t} );\n\t\t\t}\n\t\t};\n\t\tfetchFontCollection();\n\t}, [ id, getFontCollection ] );\n\n\tuseEffect( () => {\n\t\tsetSelectedFont( null );\n\t\tsetNotice( null );\n\t}, [ id ] );\n\n\tuseEffect( () => {\n\t\t// If the selected fonts change, reset the selected fonts to install\n\t\tsetFontsToInstall( [] );\n\t}, [ selectedFont ] );\n\n\t// Reset notice after 5 seconds\n\tuseEffect( () => {\n\t\tif ( notice && notice?.duration !== 0 ) {\n\t\t\tconst timeout = setTimeout( () => {\n\t\t\t\tsetNotice( null );\n\t\t\t}, notice.duration ?? 5000 );\n\t\t\treturn () => clearTimeout( timeout );\n\t\t}\n\t}, [ notice ] );\n\n\tconst collectionFonts = useMemo(\n\t\t() => selectedCollection?.data?.fontFamilies ?? [],\n\t\t[ selectedCollection ]\n\t);\n\tconst collectionCategories = selectedCollection?.data?.categories ?? [];\n\n\tconst categories = [ DEFAULT_CATEGORY, ...collectionCategories ];\n\n\tconst fonts = useMemo(\n\t\t() => filterFonts( collectionFonts, filters ),\n\t\t[ collectionFonts, filters ]\n\t);\n\n\tconst handleCategoryFilter = ( category ) => {\n\t\tsetFilters( { ...filters, category } );\n\t};\n\n\tconst handleUpdateSearchInput = ( value ) => {\n\t\tsetFilters( { ...filters, search: value } );\n\t};\n\n\tconst debouncedUpdateSearchInput = debounce( handleUpdateSearchInput, 300 );\n\n\tconst resetFilters = () => {\n\t\tsetFilters( {} );\n\t};\n\n\tconst resetSearch = () => {\n\t\tsetFilters( { ...filters, search: '' } );\n\t};\n\n\tconst handleUnselectFont = () => {\n\t\tsetSelectedFont( null );\n\t};\n\n\tconst handleToggleVariant = ( font, face ) => {\n\t\tconst newFontsToInstall = toggleFont( font, face, fontsToInstall );\n\t\tsetFontsToInstall( newFontsToInstall );\n\t};\n\n\tconst fontToInstallOutline = getFontsOutline( fontsToInstall );\n\n\tconst resetFontsToInstall = () => {\n\t\tsetFontsToInstall( [] );\n\t};\n\n\tconst handleInstall = async () => {\n\t\tconst response = await installFont( fontsToInstall[ 0 ] );\n\t\tconst installNotice = getNoticeFromInstallResponse( response );\n\t\tsetNotice( installNotice );\n\t\tresetFontsToInstall();\n\t};\n\n\treturn (\n\t\t<TabPanelLayout\n\t\t\ttitle={\n\t\t\t\t! selectedFont ? selectedCollection.name : selectedFont.name\n\t\t\t}\n\t\t\tdescription={\n\t\t\t\t! selectedFont\n\t\t\t\t\t? selectedCollection.description\n\t\t\t\t\t: __( 'Select font variants to install.' )\n\t\t\t}\n\t\t\thandleBack={ !! selectedFont && handleUnselectFont }\n\t\t\tfooter={\n\t\t\t\tfontsToInstall.length > 0 && (\n\t\t\t\t\t<Footer handleInstall={ handleInstall } />\n\t\t\t\t)\n\t\t\t}\n\t\t>\n\t\t\t{ renderConfirmDialog && (\n\t\t\t\t<>\n\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t<GoogleFontsConfirmDialog />\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ notice && (\n\t\t\t\t<>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\tclassName=\"font-library-modal__font-collection__notice\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t</Notice>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ ! renderConfirmDialog && ! selectedFont && (\n\t\t\t\t<Flex>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\tvalue={ filters.search }\n\t\t\t\t\t\t\tplaceholder={ __( 'Font name…' ) }\n\t\t\t\t\t\t\tlabel={ __( 'Search' ) }\n\t\t\t\t\t\t\tonChange={ debouncedUpdateSearchInput }\n\t\t\t\t\t\t\tprefix={ <Icon icon={ search } /> }\n\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\tfilters?.search ? (\n\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\t\t\t\t\tonClick={ resetSearch }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) : null\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Category' ) }\n\t\t\t\t\t\t\tvalue={ filters.category }\n\t\t\t\t\t\t\tonChange={ handleCategoryFilter }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ categories &&\n\t\t\t\t\t\t\t\tcategories.map( ( category ) => (\n\t\t\t\t\t\t\t\t\t<option\n\t\t\t\t\t\t\t\t\t\tvalue={ category.id }\n\t\t\t\t\t\t\t\t\t\tkey={ category.id }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ category.name }\n\t\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</SelectControl>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t) }\n\n\t\t\t<Spacer margin={ 4 } />\n\t\t\t{ ! renderConfirmDialog &&\n\t\t\t\t! selectedCollection?.data?.fontFamilies &&\n\t\t\t\t! notice && <Spinner /> }\n\n\t\t\t{ ! renderConfirmDialog &&\n\t\t\t\t!! selectedCollection?.data?.fontFamilies?.length &&\n\t\t\t\t! fonts.length && (\n\t\t\t\t\t<Text>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'No fonts found. Try with a different search term'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Text>\n\t\t\t\t) }\n\n\t\t\t{ ! renderConfirmDialog && selectedFont && (\n\t\t\t\t<CollectionFontDetails\n\t\t\t\t\tfont={ selectedFont }\n\t\t\t\t\thandleToggleVariant={ handleToggleVariant }\n\t\t\t\t\tfontToInstallOutline={ fontToInstallOutline }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t{ ! renderConfirmDialog && ! selectedFont && (\n\t\t\t\t<FontsGrid>\n\t\t\t\t\t{ fonts.map( ( font ) => (\n\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetSelectedFont( font );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t</FontsGrid>\n\t\t\t) }\n\t\t</TabPanelLayout>\n\t);\n}\n\nfunction Footer( { handleInstall } ) {\n\tconst { isInstalling } = useContext( FontLibraryContext );\n\n\treturn (\n\t\t<Flex justify=\"flex-end\">\n\t\t\t<Button\n\t\t\t\tvariant=\"primary\"\n\t\t\t\tonClick={ handleInstall }\n\t\t\t\tisBusy={ isInstalling }\n\t\t\t\tdisabled={ isInstalling }\n\t\t\t>\n\t\t\t\t{ __( 'Install' ) }\n\t\t\t</Button>\n\t\t</Flex>\n\t);\n}\n\nexport default FontCollection;\n","export default function filterFonts( fonts, filters ) {\n\tconst { category, search } = filters;\n\tlet filteredFonts = fonts || [];\n\n\tif ( category && category !== 'all' ) {\n\t\tfilteredFonts = filteredFonts.filter(\n\t\t\t( font ) => font.category === category\n\t\t);\n\t}\n\n\tif ( search ) {\n\t\tfilteredFonts = filteredFonts.filter( ( font ) =>\n\t\t\tfont.name.toLowerCase().includes( search.toLowerCase() )\n\t\t);\n\t}\n\n\treturn filteredFonts;\n}\n","/* eslint eslint-comments/no-unlimited-disable: 0 */\n/* eslint-disable */\n// import pako from 'pako';\nimport unbrotli from './unbrotli';\nimport GzipDecode from './inflate';\n\nlet fetchFunction = globalThis.fetch;\n// if ( ! fetchFunction ) {\n// \tlet backlog = [];\n// \tfetchFunction = globalThis.fetch = ( ...args ) =>\n// \t\tnew Promise( ( resolve, reject ) => {\n// \t\t\tbacklog.push( { args: args, resolve: resolve, reject: reject } );\n// \t\t} );\n// \timport( 'fs' )\n// \t\t.then( ( fs ) => {\n// \t\t\tfetchFunction = globalThis.fetch = async function ( path ) {\n// \t\t\t\treturn new Promise( ( resolve, reject ) => {\n// \t\t\t\t\tfs.readFile( path, ( err, data ) => {\n// \t\t\t\t\t\tif ( err ) return reject( err );\n// \t\t\t\t\t\tresolve( { ok: true, arrayBuffer: () => data.buffer } );\n// \t\t\t\t\t} );\n// \t\t\t\t} );\n// \t\t\t};\n// \t\t\twhile ( backlog.length ) {\n// \t\t\t\tlet instruction = backlog.shift();\n// \t\t\t\tfetchFunction( ...instruction.args )\n// \t\t\t\t\t.then( ( data ) => instruction.resolve( data ) )\n// \t\t\t\t\t.catch( ( err ) => instruction.reject( err ) );\n// \t\t\t}\n// \t\t} )\n// \t\t.catch( ( err ) => {\n// \t\t\tconsole.error( err );\n// \t\t\tthrow new Error(\n// \t\t\t\t`lib-font cannot run unless either the Fetch API or Node's filesystem module is available.`\n// \t\t\t);\n// \t\t} );\n// }\nclass Event {\n\tconstructor( type, detail = {}, msg ) {\n\t\tthis.type = type;\n\t\tthis.detail = detail;\n\t\tthis.msg = msg;\n\t\tObject.defineProperty( this, `__mayPropagate`, {\n\t\t\tenumerable: false,\n\t\t\twritable: true,\n\t\t} );\n\t\tthis.__mayPropagate = true;\n\t}\n\tpreventDefault() {}\n\tstopPropagation() {\n\t\tthis.__mayPropagate = false;\n\t}\n\tvalueOf() {\n\t\treturn this;\n\t}\n\ttoString() {\n\t\treturn this.msg\n\t\t\t? `[${ this.type } event]: ${ this.msg }`\n\t\t\t: `[${ this.type } event]`;\n\t}\n}\nclass EventManager {\n\tconstructor() {\n\t\tthis.listeners = {};\n\t}\n\taddEventListener( type, listener, useCapture ) {\n\t\tlet bin = this.listeners[ type ] || [];\n\t\tif ( useCapture ) bin.unshift( listener );\n\t\telse bin.push( listener );\n\t\tthis.listeners[ type ] = bin;\n\t}\n\tremoveEventListener( type, listener ) {\n\t\tlet bin = this.listeners[ type ] || [];\n\t\tlet pos = bin.findIndex( ( e ) => e === listener );\n\t\tif ( pos > -1 ) {\n\t\t\tbin.splice( pos, 1 );\n\t\t\tthis.listeners[ type ] = bin;\n\t\t}\n\t}\n\tdispatch( event ) {\n\t\tlet bin = this.listeners[ event.type ];\n\t\tif ( bin ) {\n\t\t\tfor ( let l = 0, e = bin.length; l < e; l++ ) {\n\t\t\t\tif ( ! event.__mayPropagate ) break;\n\t\t\t\tbin[ l ]( event );\n\t\t\t}\n\t\t}\n\t}\n}\nconst startDate = new Date( `1904-01-01T00:00:00+0000` ).getTime();\nfunction asText( data ) {\n\treturn Array.from( data )\n\t\t.map( ( v ) => String.fromCharCode( v ) )\n\t\t.join( `` );\n}\nclass Parser {\n\tconstructor( dict, dataview, name ) {\n\t\tthis.name = ( name || dict.tag || `` ).trim();\n\t\tthis.length = dict.length;\n\t\tthis.start = dict.offset;\n\t\tthis.offset = 0;\n\t\tthis.data = dataview;\n\t\t[\n\t\t\t`getInt8`,\n\t\t\t`getUint8`,\n\t\t\t`getInt16`,\n\t\t\t`getUint16`,\n\t\t\t`getInt32`,\n\t\t\t`getUint32`,\n\t\t\t`getBigInt64`,\n\t\t\t`getBigUint64`,\n\t\t].forEach( ( name ) => {\n\t\t\tlet fn = name.replace( /get(Big)?/, '' ).toLowerCase();\n\t\t\tlet increment = parseInt( name.replace( /[^\\d]/g, '' ) ) / 8;\n\t\t\tObject.defineProperty( this, fn, {\n\t\t\t\tget: () => this.getValue( name, increment ),\n\t\t\t} );\n\t\t} );\n\t}\n\tget currentPosition() {\n\t\treturn this.start + this.offset;\n\t}\n\tset currentPosition( position ) {\n\t\tthis.start = position;\n\t\tthis.offset = 0;\n\t}\n\tskip( n = 0, bits = 8 ) {\n\t\tthis.offset += ( n * bits ) / 8;\n\t}\n\tgetValue( type, increment ) {\n\t\tlet pos = this.start + this.offset;\n\t\tthis.offset += increment;\n\t\ttry {\n\t\t\treturn this.data[ type ]( pos );\n\t\t} catch ( e ) {\n\t\t\tconsole.error( `parser`, type, increment, this );\n\t\t\tconsole.error( `parser`, this.start, this.offset );\n\t\t\tthrow e;\n\t\t}\n\t}\n\tflags( n ) {\n\t\tif ( n === 8 || n === 16 || n === 32 || n === 64 ) {\n\t\t\treturn this[ `uint${ n }` ]\n\t\t\t\t.toString( 2 )\n\t\t\t\t.padStart( n, 0 )\n\t\t\t\t.split( `` )\n\t\t\t\t.map( ( v ) => v === '1' );\n\t\t}\n\t\tconsole.error(\n\t\t\t`Error parsing flags: flag types can only be 1, 2, 4, or 8 bytes long`\n\t\t);\n\t\tconsole.trace();\n\t}\n\tget tag() {\n\t\tconst t = this.uint32;\n\t\treturn asText( [\n\t\t\t( t >> 24 ) & 255,\n\t\t\t( t >> 16 ) & 255,\n\t\t\t( t >> 8 ) & 255,\n\t\t\tt & 255,\n\t\t] );\n\t}\n\tget fixed() {\n\t\tlet major = this.int16;\n\t\tlet minor = Math.round( ( 1e3 * this.uint16 ) / 65356 );\n\t\treturn major + minor / 1e3;\n\t}\n\tget legacyFixed() {\n\t\tlet major = this.uint16;\n\t\tlet minor = this.uint16.toString( 16 ).padStart( 4, 0 );\n\t\treturn parseFloat( `${ major }.${ minor }` );\n\t}\n\tget uint24() {\n\t\treturn ( this.uint8 << 16 ) + ( this.uint8 << 8 ) + this.uint8;\n\t}\n\tget uint128() {\n\t\tlet value = 0;\n\t\tfor ( let i = 0; i < 5; i++ ) {\n\t\t\tlet byte = this.uint8;\n\t\t\tvalue = value * 128 + ( byte & 127 );\n\t\t\tif ( byte < 128 ) break;\n\t\t}\n\t\treturn value;\n\t}\n\tget longdatetime() {\n\t\treturn new Date( startDate + 1e3 * parseInt( this.int64.toString() ) );\n\t}\n\tget fword() {\n\t\treturn this.int16;\n\t}\n\tget ufword() {\n\t\treturn this.uint16;\n\t}\n\tget Offset16() {\n\t\treturn this.uint16;\n\t}\n\tget Offset32() {\n\t\treturn this.uint32;\n\t}\n\tget F2DOT14() {\n\t\tconst bits = p.uint16;\n\t\tconst integer = [ 0, 1, -2, -1 ][ bits >> 14 ];\n\t\tconst fraction = bits & 16383;\n\t\treturn integer + fraction / 16384;\n\t}\n\tverifyLength() {\n\t\tif ( this.offset != this.length ) {\n\t\t\tconsole.error(\n\t\t\t\t`unexpected parsed table size (${ this.offset }) for \"${ this.name }\" (expected ${ this.length })`\n\t\t\t);\n\t\t}\n\t}\n\treadBytes( n = 0, position = 0, bits = 8, signed = false ) {\n\t\tn = n || this.length;\n\t\tif ( n === 0 ) return [];\n\t\tif ( position ) this.currentPosition = position;\n\t\tconst fn = `${ signed ? `` : `u` }int${ bits }`,\n\t\t\tslice = [];\n\t\twhile ( n-- ) slice.push( this[ fn ] );\n\t\treturn slice;\n\t}\n}\nclass ParsedData {\n\tconstructor( parser ) {\n\t\tconst pGetter = { enumerable: false, get: () => parser };\n\t\tObject.defineProperty( this, `parser`, pGetter );\n\t\tconst start = parser.currentPosition;\n\t\tconst startGetter = { enumerable: false, get: () => start };\n\t\tObject.defineProperty( this, `start`, startGetter );\n\t}\n\tload( struct ) {\n\t\tObject.keys( struct ).forEach( ( p ) => {\n\t\t\tlet props = Object.getOwnPropertyDescriptor( struct, p );\n\t\t\tif ( props.get ) {\n\t\t\t\tthis[ p ] = props.get.bind( this );\n\t\t\t} else if ( props.value !== undefined ) {\n\t\t\t\tthis[ p ] = props.value;\n\t\t\t}\n\t\t} );\n\t\tif ( this.parser.length ) {\n\t\t\tthis.parser.verifyLength();\n\t\t}\n\t}\n}\nclass SimpleTable extends ParsedData {\n\tconstructor( dict, dataview, name ) {\n\t\tconst { parser: parser, start: start } = super(\n\t\t\tnew Parser( dict, dataview, name )\n\t\t);\n\t\tconst pGetter = { enumerable: false, get: () => parser };\n\t\tObject.defineProperty( this, `p`, pGetter );\n\t\tconst startGetter = { enumerable: false, get: () => start };\n\t\tObject.defineProperty( this, `tableStart`, startGetter );\n\t}\n}\nfunction lazy$1( object, property, getter ) {\n\tlet val;\n\tObject.defineProperty( object, property, {\n\t\tget: () => {\n\t\t\tif ( val ) return val;\n\t\t\tval = getter();\n\t\t\treturn val;\n\t\t},\n\t\tenumerable: true,\n\t} );\n}\nclass SFNT extends SimpleTable {\n\tconstructor( font, dataview, createTable ) {\n\t\tconst { p: p } = super( { offset: 0, length: 12 }, dataview, `sfnt` );\n\t\tthis.version = p.uint32;\n\t\tthis.numTables = p.uint16;\n\t\tthis.searchRange = p.uint16;\n\t\tthis.entrySelector = p.uint16;\n\t\tthis.rangeShift = p.uint16;\n\t\tp.verifyLength();\n\t\tthis.directory = [ ...new Array( this.numTables ) ].map(\n\t\t\t( _ ) => new TableRecord( p )\n\t\t);\n\t\tthis.tables = {};\n\t\tthis.directory.forEach( ( entry ) => {\n\t\t\tconst getter = () =>\n\t\t\t\tcreateTable(\n\t\t\t\t\tthis.tables,\n\t\t\t\t\t{\n\t\t\t\t\t\ttag: entry.tag,\n\t\t\t\t\t\toffset: entry.offset,\n\t\t\t\t\t\tlength: entry.length,\n\t\t\t\t\t},\n\t\t\t\t\tdataview\n\t\t\t\t);\n\t\t\tlazy$1( this.tables, entry.tag.trim(), getter );\n\t\t} );\n\t}\n}\nclass TableRecord {\n\tconstructor( p ) {\n\t\tthis.tag = p.tag;\n\t\tthis.checksum = p.uint32;\n\t\tthis.offset = p.uint32;\n\t\tthis.length = p.uint32;\n\t}\n}\nconst gzipDecode = GzipDecode.inflate || undefined;\nlet nativeGzipDecode = undefined;\n// if ( ! gzipDecode ) {\n// \timport( 'zlib' ).then( ( zlib ) => {\n// \t\tnativeGzipDecode = ( buffer ) => zlib.unzipSync( buffer );\n// \t} );\n// }\nclass WOFF$1 extends SimpleTable {\n\tconstructor( font, dataview, createTable ) {\n\t\tconst { p: p } = super( { offset: 0, length: 44 }, dataview, `woff` );\n\t\tthis.signature = p.tag;\n\t\tthis.flavor = p.uint32;\n\t\tthis.length = p.uint32;\n\t\tthis.numTables = p.uint16;\n\t\tp.uint16;\n\t\tthis.totalSfntSize = p.uint32;\n\t\tthis.majorVersion = p.uint16;\n\t\tthis.minorVersion = p.uint16;\n\t\tthis.metaOffset = p.uint32;\n\t\tthis.metaLength = p.uint32;\n\t\tthis.metaOrigLength = p.uint32;\n\t\tthis.privOffset = p.uint32;\n\t\tthis.privLength = p.uint32;\n\t\tp.verifyLength();\n\t\tthis.directory = [ ...new Array( this.numTables ) ].map(\n\t\t\t( _ ) => new WoffTableDirectoryEntry( p )\n\t\t);\n\t\tbuildWoffLazyLookups( this, dataview, createTable );\n\t}\n}\nclass WoffTableDirectoryEntry {\n\tconstructor( p ) {\n\t\tthis.tag = p.tag;\n\t\tthis.offset = p.uint32;\n\t\tthis.compLength = p.uint32;\n\t\tthis.origLength = p.uint32;\n\t\tthis.origChecksum = p.uint32;\n\t}\n}\nfunction buildWoffLazyLookups( woff, dataview, createTable ) {\n\twoff.tables = {};\n\twoff.directory.forEach( ( entry ) => {\n\t\tlazy$1( woff.tables, entry.tag.trim(), () => {\n\t\t\tlet offset = 0;\n\t\t\tlet view = dataview;\n\t\t\tif ( entry.compLength !== entry.origLength ) {\n\t\t\t\tconst data = dataview.buffer.slice(\n\t\t\t\t\tentry.offset,\n\t\t\t\t\tentry.offset + entry.compLength\n\t\t\t\t);\n\t\t\t\tlet unpacked;\n\t\t\t\tif ( gzipDecode ) {\n\t\t\t\t\tunpacked = gzipDecode( new Uint8Array( data ) );\n\t\t\t\t} else if ( nativeGzipDecode ) {\n\t\t\t\t\tunpacked = nativeGzipDecode( new Uint8Array( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tconst msg = `no brotli decoder available to decode WOFF2 font`;\n\t\t\t\t\tif ( font.onerror ) font.onerror( msg );\n\t\t\t\t\tthrow new Error( msg );\n\t\t\t\t}\n\t\t\t\tview = new DataView( unpacked.buffer );\n\t\t\t} else {\n\t\t\t\toffset = entry.offset;\n\t\t\t}\n\t\t\treturn createTable(\n\t\t\t\twoff.tables,\n\t\t\t\t{ tag: entry.tag, offset: offset, length: entry.origLength },\n\t\t\t\tview\n\t\t\t);\n\t\t} );\n\t} );\n}\nconst brotliDecode = unbrotli;\nlet nativeBrotliDecode = undefined;\n// if ( ! brotliDecode ) {\n// \timport( 'zlib' ).then( ( zlib ) => {\n// \t\tnativeBrotliDecode = ( buffer ) => zlib.brotliDecompressSync( buffer );\n// \t} );\n// }\nclass WOFF2$1 extends SimpleTable {\n\tconstructor( font, dataview, createTable ) {\n\t\tconst { p: p } = super( { offset: 0, length: 48 }, dataview, `woff2` );\n\t\tthis.signature = p.tag;\n\t\tthis.flavor = p.uint32;\n\t\tthis.length = p.uint32;\n\t\tthis.numTables = p.uint16;\n\t\tp.uint16;\n\t\tthis.totalSfntSize = p.uint32;\n\t\tthis.totalCompressedSize = p.uint32;\n\t\tthis.majorVersion = p.uint16;\n\t\tthis.minorVersion = p.uint16;\n\t\tthis.metaOffset = p.uint32;\n\t\tthis.metaLength = p.uint32;\n\t\tthis.metaOrigLength = p.uint32;\n\t\tthis.privOffset = p.uint32;\n\t\tthis.privLength = p.uint32;\n\t\tp.verifyLength();\n\t\tthis.directory = [ ...new Array( this.numTables ) ].map(\n\t\t\t( _ ) => new Woff2TableDirectoryEntry( p )\n\t\t);\n\t\tlet dictOffset = p.currentPosition;\n\t\tthis.directory[ 0 ].offset = 0;\n\t\tthis.directory.forEach( ( e, i ) => {\n\t\t\tlet next = this.directory[ i + 1 ];\n\t\t\tif ( next ) {\n\t\t\t\tnext.offset =\n\t\t\t\t\te.offset +\n\t\t\t\t\t( e.transformLength !== undefined\n\t\t\t\t\t\t? e.transformLength\n\t\t\t\t\t\t: e.origLength );\n\t\t\t}\n\t\t} );\n\t\tlet decoded;\n\t\tlet buffer = dataview.buffer.slice( dictOffset );\n\t\tif ( brotliDecode ) {\n\t\t\tdecoded = brotliDecode( new Uint8Array( buffer ) );\n\t\t} else if ( nativeBrotliDecode ) {\n\t\t\tdecoded = new Uint8Array( nativeBrotliDecode( buffer ) );\n\t\t} else {\n\t\t\tconst msg = `no brotli decoder available to decode WOFF2 font`;\n\t\t\tif ( font.onerror ) font.onerror( msg );\n\t\t\tthrow new Error( msg );\n\t\t}\n\t\tbuildWoff2LazyLookups( this, decoded, createTable );\n\t}\n}\nclass Woff2TableDirectoryEntry {\n\tconstructor( p ) {\n\t\tthis.flags = p.uint8;\n\t\tconst tagNumber = ( this.tagNumber = this.flags & 63 );\n\t\tif ( tagNumber === 63 ) {\n\t\t\tthis.tag = p.tag;\n\t\t} else {\n\t\t\tthis.tag = getWOFF2Tag( tagNumber );\n\t\t}\n\t\tconst transformVersion = ( this.transformVersion =\n\t\t\t( this.flags & 192 ) >> 6 );\n\t\tlet hasTransforms = transformVersion !== 0;\n\t\tif ( this.tag === `glyf` || this.tag === `loca` ) {\n\t\t\thasTransforms = this.transformVersion !== 3;\n\t\t}\n\t\tthis.origLength = p.uint128;\n\t\tif ( hasTransforms ) {\n\t\t\tthis.transformLength = p.uint128;\n\t\t}\n\t}\n}\nfunction buildWoff2LazyLookups( woff2, decoded, createTable ) {\n\twoff2.tables = {};\n\twoff2.directory.forEach( ( entry ) => {\n\t\tlazy$1( woff2.tables, entry.tag.trim(), () => {\n\t\t\tconst start = entry.offset;\n\t\t\tconst end =\n\t\t\t\tstart +\n\t\t\t\t( entry.transformLength\n\t\t\t\t\t? entry.transformLength\n\t\t\t\t\t: entry.origLength );\n\t\t\tconst data = new DataView( decoded.slice( start, end ).buffer );\n\t\t\ttry {\n\t\t\t\treturn createTable(\n\t\t\t\t\twoff2.tables,\n\t\t\t\t\t{ tag: entry.tag, offset: 0, length: entry.origLength },\n\t\t\t\t\tdata\n\t\t\t\t);\n\t\t\t} catch ( e ) {\n\t\t\t\tconsole.error( e );\n\t\t\t}\n\t\t} );\n\t} );\n}\nfunction getWOFF2Tag( flag ) {\n\treturn [\n\t\t`cmap`,\n\t\t`head`,\n\t\t`hhea`,\n\t\t`hmtx`,\n\t\t`maxp`,\n\t\t`name`,\n\t\t`OS/2`,\n\t\t`post`,\n\t\t`cvt `,\n\t\t`fpgm`,\n\t\t`glyf`,\n\t\t`loca`,\n\t\t`prep`,\n\t\t`CFF `,\n\t\t`VORG`,\n\t\t`EBDT`,\n\t\t`EBLC`,\n\t\t`gasp`,\n\t\t`hdmx`,\n\t\t`kern`,\n\t\t`LTSH`,\n\t\t`PCLT`,\n\t\t`VDMX`,\n\t\t`vhea`,\n\t\t`vmtx`,\n\t\t`BASE`,\n\t\t`GDEF`,\n\t\t`GPOS`,\n\t\t`GSUB`,\n\t\t`EBSC`,\n\t\t`JSTF`,\n\t\t`MATH`,\n\t\t`CBDT`,\n\t\t`CBLC`,\n\t\t`COLR`,\n\t\t`CPAL`,\n\t\t`SVG `,\n\t\t`sbix`,\n\t\t`acnt`,\n\t\t`avar`,\n\t\t`bdat`,\n\t\t`bloc`,\n\t\t`bsln`,\n\t\t`cvar`,\n\t\t`fdsc`,\n\t\t`feat`,\n\t\t`fmtx`,\n\t\t`fvar`,\n\t\t`gvar`,\n\t\t`hsty`,\n\t\t`just`,\n\t\t`lcar`,\n\t\t`mort`,\n\t\t`morx`,\n\t\t`opbd`,\n\t\t`prop`,\n\t\t`trak`,\n\t\t`Zapf`,\n\t\t`Silf`,\n\t\t`Glat`,\n\t\t`Gloc`,\n\t\t`Feat`,\n\t\t`Sill`,\n\t][ flag & 63 ];\n}\nconst tableClasses = {};\nlet tableClassesLoaded = false;\nPromise.all( [\n\tPromise.resolve().then( function () {\n\t\treturn cmap$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn head$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn hhea$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn hmtx$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn maxp$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn name$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn OS2$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn post$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn BASE$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn GDEF$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn GSUB$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn GPOS$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn SVG$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn fvar$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn cvt$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn fpgm$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn gasp$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn glyf$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn loca$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn prep$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn CFF$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn CFF2$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn VORG$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn EBLC$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn EBDT$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn EBSC$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn CBLC$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn CBDT$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn sbix$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn COLR$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn CPAL$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn DSIG$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn hdmx$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn kern$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn LTSH$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn MERG$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn meta$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn PCLT$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn VDMX$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn vhea$1;\n\t} ),\n\tPromise.resolve().then( function () {\n\t\treturn vmtx$1;\n\t} ),\n] ).then( ( data ) => {\n\tdata.forEach( ( e ) => {\n\t\tlet name = Object.keys( e )[ 0 ];\n\t\ttableClasses[ name ] = e[ name ];\n\t} );\n\ttableClassesLoaded = true;\n} );\nfunction createTable( tables, dict, dataview ) {\n\tlet name = dict.tag.replace( /[^\\w\\d]/g, `` );\n\tlet Type = tableClasses[ name ];\n\tif ( Type ) return new Type( dict, dataview, tables );\n\tconsole.warn(\n\t\t`lib-font has no definition for ${ name }. The table was skipped.`\n\t);\n\treturn {};\n}\nfunction loadTableClasses() {\n\tlet count = 0;\n\tfunction checkLoaded( resolve, reject ) {\n\t\tif ( ! tableClassesLoaded ) {\n\t\t\tif ( count > 10 ) {\n\t\t\t\treturn reject( new Error( `loading took too long` ) );\n\t\t\t}\n\t\t\tcount++;\n\t\t\treturn setTimeout( () => checkLoaded( resolve ), 250 );\n\t\t}\n\t\tresolve( createTable );\n\t}\n\treturn new Promise( ( resolve, reject ) => checkLoaded( resolve ) );\n}\nfunction getFontCSSFormat( path, errorOnStyle ) {\n\tlet pos = path.lastIndexOf( `.` );\n\tlet ext = ( path.substring( pos + 1 ) || `` ).toLowerCase();\n\tlet format = {\n\t\tttf: `truetype`,\n\t\totf: `opentype`,\n\t\twoff: `woff`,\n\t\twoff2: `woff2`,\n\t}[ ext ];\n\tif ( format ) return format;\n\tlet msg = {\n\t\teot: `The .eot format is not supported: it died in January 12, 2016, when Microsoft retired all versions of IE that didn't already support WOFF.`,\n\t\tsvg: `The .svg format is not supported: SVG fonts (not to be confused with OpenType with embedded SVG) were so bad we took the entire fonts chapter out of the SVG specification again.`,\n\t\tfon: `The .fon format is not supported: this is an ancient Windows bitmap font format.`,\n\t\tttc: `Based on the current CSS specification, font collections are not (yet?) supported.`,\n\t}[ ext ];\n\tif ( ! msg ) msg = `${ path } is not a known webfont format.`;\n\tif ( errorOnStyle ) {\n\t\tthrow new Error( msg );\n\t} else {\n\t\tconsole.warn( `Could not load font: ${ msg }` );\n\t}\n}\nasync function setupFontFace( name, url, options = {} ) {\n\tif ( ! globalThis.document ) return;\n\tlet format = getFontCSSFormat( url, options.errorOnStyle );\n\tif ( ! format ) return;\n\tlet style = document.createElement( `style` );\n\tstyle.className = `injected-by-Font-js`;\n\tlet rules = [];\n\tif ( options.styleRules ) {\n\t\trules = Object.entries( options.styleRules ).map(\n\t\t\t( [ key, value ] ) => `${ key }: ${ value };`\n\t\t);\n\t}\n\tstyle.textContent = `\\n@font-face {\\n    font-family: \"${ name }\";\\n    ${ rules.join(\n\t\t`\\n\\t`\n\t) }\\n    src: url(\"${ url }\") format(\"${ format }\");\\n}`;\n\tglobalThis.document.head.appendChild( style );\n\treturn style;\n}\nconst TTF = [ 0, 1, 0, 0 ];\nconst OTF = [ 79, 84, 84, 79 ];\nconst WOFF = [ 119, 79, 70, 70 ];\nconst WOFF2 = [ 119, 79, 70, 50 ];\nfunction match( ar1, ar2 ) {\n\tif ( ar1.length !== ar2.length ) return;\n\tfor ( let i = 0; i < ar1.length; i++ ) {\n\t\tif ( ar1[ i ] !== ar2[ i ] ) return;\n\t}\n\treturn true;\n}\nfunction validFontFormat( dataview ) {\n\tconst LEAD_BYTES = [\n\t\tdataview.getUint8( 0 ),\n\t\tdataview.getUint8( 1 ),\n\t\tdataview.getUint8( 2 ),\n\t\tdataview.getUint8( 3 ),\n\t];\n\tif ( match( LEAD_BYTES, TTF ) || match( LEAD_BYTES, OTF ) ) return `SFNT`;\n\tif ( match( LEAD_BYTES, WOFF ) ) return `WOFF`;\n\tif ( match( LEAD_BYTES, WOFF2 ) ) return `WOFF2`;\n}\nfunction checkFetchResponseStatus( response ) {\n\tif ( ! response.ok ) {\n\t\tthrow new Error(\n\t\t\t`HTTP ${ response.status } - ${ response.statusText }`\n\t\t);\n\t}\n\treturn response;\n}\nclass Font extends EventManager {\n\tconstructor( name, options = {} ) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tthis.options = options;\n\t\tthis.metrics = false;\n\t}\n\tget src() {\n\t\treturn this.__src;\n\t}\n\tset src( src ) {\n\t\tthis.__src = src;\n\t\t( async () => {\n\t\t\tif ( globalThis.document && ! this.options.skipStyleSheet ) {\n\t\t\t\tawait setupFontFace( this.name, src, this.options );\n\t\t\t}\n\t\t\tthis.loadFont( src );\n\t\t} )();\n\t}\n\tasync loadFont( url, filename ) {\n\t\tfetch( url )\n\t\t\t.then(\n\t\t\t\t( response ) =>\n\t\t\t\t\tcheckFetchResponseStatus( response ) &&\n\t\t\t\t\tresponse.arrayBuffer()\n\t\t\t)\n\t\t\t.then( ( buffer ) =>\n\t\t\t\tthis.fromDataBuffer( buffer, filename || url )\n\t\t\t)\n\t\t\t.catch( ( err ) => {\n\t\t\t\tconst evt = new Event(\n\t\t\t\t\t`error`,\n\t\t\t\t\terr,\n\t\t\t\t\t`Failed to load font at ${ filename || url }`\n\t\t\t\t);\n\t\t\t\tthis.dispatch( evt );\n\t\t\t\tif ( this.onerror ) this.onerror( evt );\n\t\t\t} );\n\t}\n\tasync fromDataBuffer( buffer, filenameOrUrL ) {\n\t\tthis.fontData = new DataView( buffer );\n\t\tlet type = validFontFormat( this.fontData );\n\t\tif ( ! type ) {\n\t\t\tthrow new Error(\n\t\t\t\t`${ filenameOrUrL } is either an unsupported font format, or not a font at all.`\n\t\t\t);\n\t\t}\n\t\tawait this.parseBasicData( type );\n\t\tconst evt = new Event( 'load', { font: this } );\n\t\tthis.dispatch( evt );\n\t\tif ( this.onload ) this.onload( evt );\n\t}\n\tasync parseBasicData( type ) {\n\t\treturn loadTableClasses().then( ( createTable ) => {\n\t\t\tif ( type === `SFNT` ) {\n\t\t\t\tthis.opentype = new SFNT( this, this.fontData, createTable );\n\t\t\t}\n\t\t\tif ( type === `WOFF` ) {\n\t\t\t\tthis.opentype = new WOFF$1( this, this.fontData, createTable );\n\t\t\t}\n\t\t\tif ( type === `WOFF2` ) {\n\t\t\t\tthis.opentype = new WOFF2$1( this, this.fontData, createTable );\n\t\t\t}\n\t\t\treturn this.opentype;\n\t\t} );\n\t}\n\tgetGlyphId( char ) {\n\t\treturn this.opentype.tables.cmap.getGlyphId( char );\n\t}\n\treverse( glyphid ) {\n\t\treturn this.opentype.tables.cmap.reverse( glyphid );\n\t}\n\tsupports( char ) {\n\t\treturn this.getGlyphId( char ) !== 0;\n\t}\n\tsupportsVariation( variation ) {\n\t\treturn (\n\t\t\tthis.opentype.tables.cmap.supportsVariation( variation ) !== false\n\t\t);\n\t}\n\tmeasureText( text, size = 16 ) {\n\t\tif ( this.__unloaded )\n\t\t\tthrow new Error(\n\t\t\t\t'Cannot measure text: font was unloaded. Please reload before calling measureText()'\n\t\t\t);\n\t\tlet d = document.createElement( 'div' );\n\t\td.textContent = text;\n\t\td.style.fontFamily = this.name;\n\t\td.style.fontSize = `${ size }px`;\n\t\td.style.color = `transparent`;\n\t\td.style.background = `transparent`;\n\t\td.style.top = `0`;\n\t\td.style.left = `0`;\n\t\td.style.position = `absolute`;\n\t\tdocument.body.appendChild( d );\n\t\tlet bbox = d.getBoundingClientRect();\n\t\tdocument.body.removeChild( d );\n\t\tconst OS2 = this.opentype.tables[ 'OS/2' ];\n\t\tbbox.fontSize = size;\n\t\tbbox.ascender = OS2.sTypoAscender;\n\t\tbbox.descender = OS2.sTypoDescender;\n\t\treturn bbox;\n\t}\n\tunload() {\n\t\tif ( this.styleElement.parentNode ) {\n\t\t\tthis.styleElement.parentNode.removeElement( this.styleElement );\n\t\t\tconst evt = new Event( 'unload', { font: this } );\n\t\t\tthis.dispatch( evt );\n\t\t\tif ( this.onunload ) this.onunload( evt );\n\t\t}\n\t\tthis._unloaded = true;\n\t}\n\tload() {\n\t\tif ( this.__unloaded ) {\n\t\t\tdelete this.__unloaded;\n\t\t\tdocument.head.appendChild( this.styleElement );\n\t\t\tconst evt = new Event( 'load', { font: this } );\n\t\t\tthis.dispatch( evt );\n\t\t\tif ( this.onload ) this.onload( evt );\n\t\t}\n\t}\n}\nglobalThis.Font = Font;\nclass Subtable extends ParsedData {\n\tconstructor( p, plaformID, encodingID ) {\n\t\tsuper( p );\n\t\tthis.plaformID = plaformID;\n\t\tthis.encodingID = encodingID;\n\t}\n}\nclass Format0 extends Subtable {\n\tconstructor( p, platformID, encodingID ) {\n\t\tsuper( p, platformID, encodingID );\n\t\tthis.format = 0;\n\t\tthis.length = p.uint16;\n\t\tthis.language = p.uint16;\n\t\tthis.glyphIdArray = [ ...new Array( 256 ) ].map( ( _ ) => p.uint8 );\n\t}\n\tsupports( charCode ) {\n\t\tif ( charCode.charCodeAt ) {\n\t\t\tcharCode = -1;\n\t\t\tconsole.warn(\n\t\t\t\t`supports(character) not implemented for cmap subtable format 0. only supports(id) is implemented.`\n\t\t\t);\n\t\t}\n\t\treturn 0 <= charCode && charCode <= 255;\n\t}\n\treverse( glyphID ) {\n\t\tconsole.warn( `reverse not implemented for cmap subtable format 0` );\n\t\treturn {};\n\t}\n\tgetSupportedCharCodes() {\n\t\treturn [ { start: 1, end: 256 } ];\n\t}\n}\nclass Format2 extends Subtable {\n\tconstructor( p, platformID, encodingID ) {\n\t\tsuper( p, platformID, encodingID );\n\t\tthis.format = 2;\n\t\tthis.length = p.uint16;\n\t\tthis.language = p.uint16;\n\t\tthis.subHeaderKeys = [ ...new Array( 256 ) ].map( ( _ ) => p.uint16 );\n\t\tconst subHeaderCount = Math.max( ...this.subHeaderKeys );\n\t\tconst subHeaderOffset = p.currentPosition;\n\t\tlazy$1( this, `subHeaders`, () => {\n\t\t\tp.currentPosition = subHeaderOffset;\n\t\t\treturn [ ...new Array( subHeaderCount ) ].map(\n\t\t\t\t( _ ) => new SubHeader( p )\n\t\t\t);\n\t\t} );\n\t\tconst glyphIndexOffset = subHeaderOffset + subHeaderCount * 8;\n\t\tlazy$1( this, `glyphIndexArray`, () => {\n\t\t\tp.currentPosition = glyphIndexOffset;\n\t\t\treturn [ ...new Array( subHeaderCount ) ].map( ( _ ) => p.uint16 );\n\t\t} );\n\t}\n\tsupports( charCode ) {\n\t\tif ( charCode.charCodeAt ) {\n\t\t\tcharCode = -1;\n\t\t\tconsole.warn(\n\t\t\t\t`supports(character) not implemented for cmap subtable format 2. only supports(id) is implemented.`\n\t\t\t);\n\t\t}\n\t\tconst low = charCode && 255;\n\t\tconst high = charCode && 65280;\n\t\tconst subHeaderKey = this.subHeaders[ high ];\n\t\tconst subheader = this.subHeaders[ subHeaderKey ];\n\t\tconst first = subheader.firstCode;\n\t\tconst last = first + subheader.entryCount;\n\t\treturn first <= low && low <= last;\n\t}\n\treverse( glyphID ) {\n\t\tconsole.warn( `reverse not implemented for cmap subtable format 2` );\n\t\treturn {};\n\t}\n\tgetSupportedCharCodes( preservePropNames = false ) {\n\t\tif ( preservePropNames ) {\n\t\t\treturn this.subHeaders.map( ( h ) => ( {\n\t\t\t\tfirstCode: h.firstCode,\n\t\t\t\tlastCode: h.lastCode,\n\t\t\t} ) );\n\t\t}\n\t\treturn this.subHeaders.map( ( h ) => ( {\n\t\t\tstart: h.firstCode,\n\t\t\tend: h.lastCode,\n\t\t} ) );\n\t}\n}\nclass SubHeader {\n\tconstructor( p ) {\n\t\tthis.firstCode = p.uint16;\n\t\tthis.entryCount = p.uint16;\n\t\tthis.lastCode = this.first + this.entryCount;\n\t\tthis.idDelta = p.int16;\n\t\tthis.idRangeOffset = p.uint16;\n\t}\n}\nclass Format4 extends Subtable {\n\tconstructor( p, platformID, encodingID ) {\n\t\tsuper( p, platformID, encodingID );\n\t\tthis.format = 4;\n\t\tthis.length = p.uint16;\n\t\tthis.language = p.uint16;\n\t\tthis.segCountX2 = p.uint16;\n\t\tthis.segCount = this.segCountX2 / 2;\n\t\tthis.searchRange = p.uint16;\n\t\tthis.entrySelector = p.uint16;\n\t\tthis.rangeShift = p.uint16;\n\t\tconst endCodePosition = p.currentPosition;\n\t\tlazy$1( this, `endCode`, () =>\n\t\t\tp.readBytes( this.segCount, endCodePosition, 16 )\n\t\t);\n\t\tconst startCodePosition = endCodePosition + 2 + this.segCountX2;\n\t\tlazy$1( this, `startCode`, () =>\n\t\t\tp.readBytes( this.segCount, startCodePosition, 16 )\n\t\t);\n\t\tconst idDeltaPosition = startCodePosition + this.segCountX2;\n\t\tlazy$1( this, `idDelta`, () =>\n\t\t\tp.readBytes( this.segCount, idDeltaPosition, 16, true )\n\t\t);\n\t\tconst idRangePosition = idDeltaPosition + this.segCountX2;\n\t\tlazy$1( this, `idRangeOffset`, () =>\n\t\t\tp.readBytes( this.segCount, idRangePosition, 16 )\n\t\t);\n\t\tconst glyphIdArrayPosition = idRangePosition + this.segCountX2;\n\t\tconst glyphIdArrayLength =\n\t\t\tthis.length - ( glyphIdArrayPosition - this.tableStart );\n\t\tlazy$1( this, `glyphIdArray`, () =>\n\t\t\tp.readBytes( glyphIdArrayLength, glyphIdArrayPosition, 16 )\n\t\t);\n\t\tlazy$1( this, `segments`, () =>\n\t\t\tthis.buildSegments( idRangePosition, glyphIdArrayPosition, p )\n\t\t);\n\t}\n\tbuildSegments( idRangePosition, glyphIdArrayPosition, p ) {\n\t\tconst build = ( _, i ) => {\n\t\t\tlet startCode = this.startCode[ i ],\n\t\t\t\tendCode = this.endCode[ i ],\n\t\t\t\tidDelta = this.idDelta[ i ],\n\t\t\t\tidRangeOffset = this.idRangeOffset[ i ],\n\t\t\t\tidRangeOffsetPointer = idRangePosition + 2 * i,\n\t\t\t\tglyphIDs = [];\n\t\t\tif ( idRangeOffset === 0 ) {\n\t\t\t\tfor (\n\t\t\t\t\tlet i = startCode + idDelta, e = endCode + idDelta;\n\t\t\t\t\ti <= e;\n\t\t\t\t\ti++\n\t\t\t\t) {\n\t\t\t\t\tglyphIDs.push( i );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( let i = 0, e = endCode - startCode; i <= e; i++ ) {\n\t\t\t\t\tp.currentPosition =\n\t\t\t\t\t\tidRangeOffsetPointer + idRangeOffset + i * 2;\n\t\t\t\t\tglyphIDs.push( p.uint16 );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tstartCode: startCode,\n\t\t\t\tendCode: endCode,\n\t\t\t\tidDelta: idDelta,\n\t\t\t\tidRangeOffset: idRangeOffset,\n\t\t\t\tglyphIDs: glyphIDs,\n\t\t\t};\n\t\t};\n\t\treturn [ ...new Array( this.segCount ) ].map( build );\n\t}\n\treverse( glyphID ) {\n\t\tlet s = this.segments.find( ( v ) => v.glyphIDs.includes( glyphID ) );\n\t\tif ( ! s ) return {};\n\t\tconst code = s.startCode + s.glyphIDs.indexOf( glyphID );\n\t\treturn { code: code, unicode: String.fromCodePoint( code ) };\n\t}\n\tgetGlyphId( charCode ) {\n\t\tif ( charCode.charCodeAt ) charCode = charCode.charCodeAt( 0 );\n\t\tif ( 55296 <= charCode && charCode <= 57343 ) return 0;\n\t\tif ( ( charCode & 65534 ) === 65534 || ( charCode & 65535 ) === 65535 )\n\t\t\treturn 0;\n\t\tlet segment = this.segments.find(\n\t\t\t( s ) => s.startCode <= charCode && charCode <= s.endCode\n\t\t);\n\t\tif ( ! segment ) return 0;\n\t\treturn segment.glyphIDs[ charCode - segment.startCode ];\n\t}\n\tsupports( charCode ) {\n\t\treturn this.getGlyphId( charCode ) !== 0;\n\t}\n\tgetSupportedCharCodes( preservePropNames = false ) {\n\t\tif ( preservePropNames ) return this.segments;\n\t\treturn this.segments.map( ( v ) => ( {\n\t\t\tstart: v.startCode,\n\t\t\tend: v.endCode,\n\t\t} ) );\n\t}\n}\nclass Format6 extends Subtable {\n\tconstructor( p, platformID, encodingID ) {\n\t\tsuper( p, platformID, encodingID );\n\t\tthis.format = 6;\n\t\tthis.length = p.uint16;\n\t\tthis.language = p.uint16;\n\t\tthis.firstCode = p.uint16;\n\t\tthis.entryCount = p.uint16;\n\t\tthis.lastCode = this.firstCode + this.entryCount - 1;\n\t\tconst getter = () =>\n\t\t\t[ ...new Array( this.entryCount ) ].map( ( _ ) => p.uint16 );\n\t\tlazy$1( this, `glyphIdArray`, getter );\n\t}\n\tsupports( charCode ) {\n\t\tif ( charCode.charCodeAt ) {\n\t\t\tcharCode = -1;\n\t\t\tconsole.warn(\n\t\t\t\t`supports(character) not implemented for cmap subtable format 6. only supports(id) is implemented.`\n\t\t\t);\n\t\t}\n\t\tif ( charCode < this.firstCode ) return {};\n\t\tif ( charCode > this.firstCode + this.entryCount ) return {};\n\t\tconst code = charCode - this.firstCode;\n\t\treturn { code: code, unicode: String.fromCodePoint( code ) };\n\t}\n\treverse( glyphID ) {\n\t\tlet pos = this.glyphIdArray.indexOf( glyphID );\n\t\tif ( pos > -1 ) return this.firstCode + pos;\n\t}\n\tgetSupportedCharCodes( preservePropNames = false ) {\n\t\tif ( preservePropNames ) {\n\t\t\treturn [ { firstCode: this.firstCode, lastCode: this.lastCode } ];\n\t\t}\n\t\treturn [ { start: this.firstCode, end: this.lastCode } ];\n\t}\n}\nclass Format8 extends Subtable {\n\tconstructor( p, platformID, encodingID ) {\n\t\tsuper( p, platformID, encodingID );\n\t\tthis.format = 8;\n\t\tp.uint16;\n\t\tthis.length = p.uint32;\n\t\tthis.language = p.uint32;\n\t\tthis.is32 = [ ...new Array( 8192 ) ].map( ( _ ) => p.uint8 );\n\t\tthis.numGroups = p.uint32;\n\t\tconst getter = () =>\n\t\t\t[ ...new Array( this.numGroups ) ].map(\n\t\t\t\t( _ ) => new SequentialMapGroup$1( p )\n\t\t\t);\n\t\tlazy$1( this, `groups`, getter );\n\t}\n\tsupports( charCode ) {\n\t\tif ( charCode.charCodeAt ) {\n\t\t\tcharCode = -1;\n\t\t\tconsole.warn(\n\t\t\t\t`supports(character) not implemented for cmap subtable format 8. only supports(id) is implemented.`\n\t\t\t);\n\t\t}\n\t\treturn (\n\t\t\tthis.groups.findIndex(\n\t\t\t\t( s ) =>\n\t\t\t\t\ts.startcharCode <= charCode && charCode <= s.endcharCode\n\t\t\t) !== -1\n\t\t);\n\t}\n\treverse( glyphID ) {\n\t\tconsole.warn( `reverse not implemented for cmap subtable format 8` );\n\t\treturn {};\n\t}\n\tgetSupportedCharCodes( preservePropNames = false ) {\n\t\tif ( preservePropNames ) return this.groups;\n\t\treturn this.groups.map( ( v ) => ( {\n\t\t\tstart: v.startcharCode,\n\t\t\tend: v.endcharCode,\n\t\t} ) );\n\t}\n}\nclass SequentialMapGroup$1 {\n\tconstructor( p ) {\n\t\tthis.startcharCode = p.uint32;\n\t\tthis.endcharCode = p.uint32;\n\t\tthis.startGlyphID = p.uint32;\n\t}\n}\nclass Format10 extends Subtable {\n\tconstructor( p, platformID, encodingID ) {\n\t\tsuper( p, platformID, encodingID );\n\t\tthis.format = 10;\n\t\tp.uint16;\n\t\tthis.length = p.uint32;\n\t\tthis.language = p.uint32;\n\t\tthis.startCharCode = p.uint32;\n\t\tthis.numChars = p.uint32;\n\t\tthis.endCharCode = this.startCharCode + this.numChars;\n\t\tconst getter = () =>\n\t\t\t[ ...new Array( this.numChars ) ].map( ( _ ) => p.uint16 );\n\t\tlazy$1( this, `glyphs`, getter );\n\t}\n\tsupports( charCode ) {\n\t\tif ( charCode.charCodeAt ) {\n\t\t\tcharCode = -1;\n\t\t\tconsole.warn(\n\t\t\t\t`supports(character) not implemented for cmap subtable format 10. only supports(id) is implemented.`\n\t\t\t);\n\t\t}\n\t\tif ( charCode < this.startCharCode ) return false;\n\t\tif ( charCode > this.startCharCode + this.numChars ) return false;\n\t\treturn charCode - this.startCharCode;\n\t}\n\treverse( glyphID ) {\n\t\tconsole.warn( `reverse not implemented for cmap subtable format 10` );\n\t\treturn {};\n\t}\n\tgetSupportedCharCodes( preservePropNames = false ) {\n\t\tif ( preservePropNames ) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tstartCharCode: this.startCharCode,\n\t\t\t\t\tendCharCode: this.endCharCode,\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\treturn [ { start: this.startCharCode, end: this.endCharCode } ];\n\t}\n}\nclass Format12 extends Subtable {\n\tconstructor( p, platformID, encodingID ) {\n\t\tsuper( p, platformID, encodingID );\n\t\tthis.format = 12;\n\t\tp.uint16;\n\t\tthis.length = p.uint32;\n\t\tthis.language = p.uint32;\n\t\tthis.numGroups = p.uint32;\n\t\tconst getter = () =>\n\t\t\t[ ...new Array( this.numGroups ) ].map(\n\t\t\t\t( _ ) => new SequentialMapGroup( p )\n\t\t\t);\n\t\tlazy$1( this, `groups`, getter );\n\t}\n\tsupports( charCode ) {\n\t\tif ( charCode.charCodeAt ) charCode = charCode.charCodeAt( 0 );\n\t\tif ( 55296 <= charCode && charCode <= 57343 ) return 0;\n\t\tif ( ( charCode & 65534 ) === 65534 || ( charCode & 65535 ) === 65535 )\n\t\t\treturn 0;\n\t\treturn (\n\t\t\tthis.groups.findIndex(\n\t\t\t\t( s ) =>\n\t\t\t\t\ts.startCharCode <= charCode && charCode <= s.endCharCode\n\t\t\t) !== -1\n\t\t);\n\t}\n\treverse( glyphID ) {\n\t\tfor ( let group of this.groups ) {\n\t\t\tlet start = group.startGlyphID;\n\t\t\tif ( start > glyphID ) continue;\n\t\t\tif ( start === glyphID ) return group.startCharCode;\n\t\t\tlet end = start + ( group.endCharCode - group.startCharCode );\n\t\t\tif ( end < glyphID ) continue;\n\t\t\tconst code = group.startCharCode + ( glyphID - start );\n\t\t\treturn { code: code, unicode: String.fromCodePoint( code ) };\n\t\t}\n\t\treturn {};\n\t}\n\tgetSupportedCharCodes( preservePropNames = false ) {\n\t\tif ( preservePropNames ) return this.groups;\n\t\treturn this.groups.map( ( v ) => ( {\n\t\t\tstart: v.startCharCode,\n\t\t\tend: v.endCharCode,\n\t\t} ) );\n\t}\n}\nclass SequentialMapGroup {\n\tconstructor( p ) {\n\t\tthis.startCharCode = p.uint32;\n\t\tthis.endCharCode = p.uint32;\n\t\tthis.startGlyphID = p.uint32;\n\t}\n}\nclass Format13 extends Subtable {\n\tconstructor( p, platformID, encodingID ) {\n\t\tsuper( p, platformID, encodingID );\n\t\tthis.format = 13;\n\t\tp.uint16;\n\t\tthis.length = p.uint32;\n\t\tthis.language = p.uint32;\n\t\tthis.numGroups = p.uint32;\n\t\tconst getter = [ ...new Array( this.numGroups ) ].map(\n\t\t\t( _ ) => new ConstantMapGroup( p )\n\t\t);\n\t\tlazy$1( this, `groups`, getter );\n\t}\n\tsupports( charCode ) {\n\t\tif ( charCode.charCodeAt ) charCode = charCode.charCodeAt( 0 );\n\t\treturn (\n\t\t\tthis.groups.findIndex(\n\t\t\t\t( s ) =>\n\t\t\t\t\ts.startCharCode <= charCode && charCode <= s.endCharCode\n\t\t\t) !== -1\n\t\t);\n\t}\n\treverse( glyphID ) {\n\t\tconsole.warn( `reverse not implemented for cmap subtable format 13` );\n\t\treturn {};\n\t}\n\tgetSupportedCharCodes( preservePropNames = false ) {\n\t\tif ( preservePropNames ) return this.groups;\n\t\treturn this.groups.map( ( v ) => ( {\n\t\t\tstart: v.startCharCode,\n\t\t\tend: v.endCharCode,\n\t\t} ) );\n\t}\n}\nclass ConstantMapGroup {\n\tconstructor( p ) {\n\t\tthis.startCharCode = p.uint32;\n\t\tthis.endCharCode = p.uint32;\n\t\tthis.glyphID = p.uint32;\n\t}\n}\nclass Format14 extends Subtable {\n\tconstructor( p, platformID, encodingID ) {\n\t\tsuper( p, platformID, encodingID );\n\t\tthis.subTableStart = p.currentPosition;\n\t\tthis.format = 14;\n\t\tthis.length = p.uint32;\n\t\tthis.numVarSelectorRecords = p.uint32;\n\t\tlazy$1( this, `varSelectors`, () =>\n\t\t\t[ ...new Array( this.numVarSelectorRecords ) ].map(\n\t\t\t\t( _ ) => new VariationSelector( p )\n\t\t\t)\n\t\t);\n\t}\n\tsupports() {\n\t\tconsole.warn( `supports not implemented for cmap subtable format 14` );\n\t\treturn 0;\n\t}\n\tgetSupportedCharCodes() {\n\t\tconsole.warn(\n\t\t\t`getSupportedCharCodes not implemented for cmap subtable format 14`\n\t\t);\n\t\treturn [];\n\t}\n\treverse( glyphID ) {\n\t\tconsole.warn( `reverse not implemented for cmap subtable format 14` );\n\t\treturn {};\n\t}\n\tsupportsVariation( variation ) {\n\t\tlet v = this.varSelector.find(\n\t\t\t( uvs ) => uvs.varSelector === variation\n\t\t);\n\t\treturn v ? v : false;\n\t}\n\tgetSupportedVariations() {\n\t\treturn this.varSelectors.map( ( v ) => v.varSelector );\n\t}\n}\nclass VariationSelector {\n\tconstructor( p ) {\n\t\tthis.varSelector = p.uint24;\n\t\tthis.defaultUVSOffset = p.Offset32;\n\t\tthis.nonDefaultUVSOffset = p.Offset32;\n\t}\n}\nfunction createSubTable( parser, platformID, encodingID ) {\n\tconst format = parser.uint16;\n\tif ( format === 0 ) return new Format0( parser, platformID, encodingID );\n\tif ( format === 2 ) return new Format2( parser, platformID, encodingID );\n\tif ( format === 4 ) return new Format4( parser, platformID, encodingID );\n\tif ( format === 6 ) return new Format6( parser, platformID, encodingID );\n\tif ( format === 8 ) return new Format8( parser, platformID, encodingID );\n\tif ( format === 10 ) return new Format10( parser, platformID, encodingID );\n\tif ( format === 12 ) return new Format12( parser, platformID, encodingID );\n\tif ( format === 13 ) return new Format13( parser, platformID, encodingID );\n\tif ( format === 14 ) return new Format14( parser, platformID, encodingID );\n\treturn {};\n}\nclass cmap extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tthis.version = p.uint16;\n\t\tthis.numTables = p.uint16;\n\t\tthis.encodingRecords = [ ...new Array( this.numTables ) ].map(\n\t\t\t( _ ) => new EncodingRecord( p, this.tableStart )\n\t\t);\n\t}\n\tgetSubTable( tableID ) {\n\t\treturn this.encodingRecords[ tableID ].table;\n\t}\n\tgetSupportedEncodings() {\n\t\treturn this.encodingRecords.map( ( r ) => ( {\n\t\t\tplatformID: r.platformID,\n\t\t\tencodingId: r.encodingID,\n\t\t} ) );\n\t}\n\tgetSupportedCharCodes( platformID, encodingID ) {\n\t\tconst recordID = this.encodingRecords.findIndex(\n\t\t\t( r ) => r.platformID === platformID && r.encodingID === encodingID\n\t\t);\n\t\tif ( recordID === -1 ) return false;\n\t\tconst subtable = this.getSubTable( recordID );\n\t\treturn subtable.getSupportedCharCodes();\n\t}\n\treverse( glyphid ) {\n\t\tfor ( let i = 0; i < this.numTables; i++ ) {\n\t\t\tlet code = this.getSubTable( i ).reverse( glyphid );\n\t\t\tif ( code ) return code;\n\t\t}\n\t}\n\tgetGlyphId( char ) {\n\t\tlet last = 0;\n\t\tthis.encodingRecords.some( ( _, tableID ) => {\n\t\t\tlet t = this.getSubTable( tableID );\n\t\t\tif ( ! t.getGlyphId ) return false;\n\t\t\tlast = t.getGlyphId( char );\n\t\t\treturn last !== 0;\n\t\t} );\n\t\treturn last;\n\t}\n\tsupports( char ) {\n\t\treturn this.encodingRecords.some( ( _, tableID ) => {\n\t\t\tconst t = this.getSubTable( tableID );\n\t\t\treturn t.supports && t.supports( char ) !== false;\n\t\t} );\n\t}\n\tsupportsVariation( variation ) {\n\t\treturn this.encodingRecords.some( ( _, tableID ) => {\n\t\t\tconst t = this.getSubTable( tableID );\n\t\t\treturn (\n\t\t\t\tt.supportsVariation &&\n\t\t\t\tt.supportsVariation( variation ) !== false\n\t\t\t);\n\t\t} );\n\t}\n}\nclass EncodingRecord {\n\tconstructor( p, tableStart ) {\n\t\tconst platformID = ( this.platformID = p.uint16 );\n\t\tconst encodingID = ( this.encodingID = p.uint16 );\n\t\tconst offset = ( this.offset = p.Offset32 );\n\t\tlazy$1( this, `table`, () => {\n\t\t\tp.currentPosition = tableStart + offset;\n\t\t\treturn createSubTable( p, platformID, encodingID );\n\t\t} );\n\t}\n}\nvar cmap$1 = Object.freeze( { __proto__: null, cmap: cmap } );\nclass head extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tthis.load( {\n\t\t\tmajorVersion: p.uint16,\n\t\t\tminorVersion: p.uint16,\n\t\t\tfontRevision: p.fixed,\n\t\t\tcheckSumAdjustment: p.uint32,\n\t\t\tmagicNumber: p.uint32,\n\t\t\tflags: p.flags( 16 ),\n\t\t\tunitsPerEm: p.uint16,\n\t\t\tcreated: p.longdatetime,\n\t\t\tmodified: p.longdatetime,\n\t\t\txMin: p.int16,\n\t\t\tyMin: p.int16,\n\t\t\txMax: p.int16,\n\t\t\tyMax: p.int16,\n\t\t\tmacStyle: p.flags( 16 ),\n\t\t\tlowestRecPPEM: p.uint16,\n\t\t\tfontDirectionHint: p.uint16,\n\t\t\tindexToLocFormat: p.uint16,\n\t\t\tglyphDataFormat: p.uint16,\n\t\t} );\n\t}\n}\nvar head$1 = Object.freeze( { __proto__: null, head: head } );\nclass hhea extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tthis.majorVersion = p.uint16;\n\t\tthis.minorVersion = p.uint16;\n\t\tthis.ascender = p.fword;\n\t\tthis.descender = p.fword;\n\t\tthis.lineGap = p.fword;\n\t\tthis.advanceWidthMax = p.ufword;\n\t\tthis.minLeftSideBearing = p.fword;\n\t\tthis.minRightSideBearing = p.fword;\n\t\tthis.xMaxExtent = p.fword;\n\t\tthis.caretSlopeRise = p.int16;\n\t\tthis.caretSlopeRun = p.int16;\n\t\tthis.caretOffset = p.int16;\n\t\tp.int16;\n\t\tp.int16;\n\t\tp.int16;\n\t\tp.int16;\n\t\tthis.metricDataFormat = p.int16;\n\t\tthis.numberOfHMetrics = p.uint16;\n\t\tp.verifyLength();\n\t}\n}\nvar hhea$1 = Object.freeze( { __proto__: null, hhea: hhea } );\nclass hmtx extends SimpleTable {\n\tconstructor( dict, dataview, tables ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tconst numberOfHMetrics = tables.hhea.numberOfHMetrics;\n\t\tconst numGlyphs = tables.maxp.numGlyphs;\n\t\tconst metricsStart = p.currentPosition;\n\t\tlazy$1( this, `hMetrics`, () => {\n\t\t\tp.currentPosition = metricsStart;\n\t\t\treturn [ ...new Array( numberOfHMetrics ) ].map(\n\t\t\t\t( _ ) => new LongHorMetric( p.uint16, p.int16 )\n\t\t\t);\n\t\t} );\n\t\tif ( numberOfHMetrics < numGlyphs ) {\n\t\t\tconst lsbStart = metricsStart + numberOfHMetrics * 4;\n\t\t\tlazy$1( this, `leftSideBearings`, () => {\n\t\t\t\tp.currentPosition = lsbStart;\n\t\t\t\treturn [ ...new Array( numGlyphs - numberOfHMetrics ) ].map(\n\t\t\t\t\t( _ ) => p.int16\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\t}\n}\nclass LongHorMetric {\n\tconstructor( w, b ) {\n\t\tthis.advanceWidth = w;\n\t\tthis.lsb = b;\n\t}\n}\nvar hmtx$1 = Object.freeze( { __proto__: null, hmtx: hmtx } );\nclass maxp extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tthis.version = p.legacyFixed;\n\t\tthis.numGlyphs = p.uint16;\n\t\tif ( this.version === 1 ) {\n\t\t\tthis.maxPoints = p.uint16;\n\t\t\tthis.maxContours = p.uint16;\n\t\t\tthis.maxCompositePoints = p.uint16;\n\t\t\tthis.maxCompositeContours = p.uint16;\n\t\t\tthis.maxZones = p.uint16;\n\t\t\tthis.maxTwilightPoints = p.uint16;\n\t\t\tthis.maxStorage = p.uint16;\n\t\t\tthis.maxFunctionDefs = p.uint16;\n\t\t\tthis.maxInstructionDefs = p.uint16;\n\t\t\tthis.maxStackElements = p.uint16;\n\t\t\tthis.maxSizeOfInstructions = p.uint16;\n\t\t\tthis.maxComponentElements = p.uint16;\n\t\t\tthis.maxComponentDepth = p.uint16;\n\t\t}\n\t\tp.verifyLength();\n\t}\n}\nvar maxp$1 = Object.freeze( { __proto__: null, maxp: maxp } );\nclass name extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tthis.format = p.uint16;\n\t\tthis.count = p.uint16;\n\t\tthis.stringOffset = p.Offset16;\n\t\tthis.nameRecords = [ ...new Array( this.count ) ].map(\n\t\t\t( _ ) => new NameRecord( p, this )\n\t\t);\n\t\tif ( this.format === 1 ) {\n\t\t\tthis.langTagCount = p.uint16;\n\t\t\tthis.langTagRecords = [ ...new Array( this.langTagCount ) ].map(\n\t\t\t\t( _ ) => new LangTagRecord( p.uint16, p.Offset16 )\n\t\t\t);\n\t\t}\n\t\tthis.stringStart = this.tableStart + this.stringOffset;\n\t}\n\tget( nameID ) {\n\t\tlet record = this.nameRecords.find(\n\t\t\t( record ) => record.nameID === nameID\n\t\t);\n\t\tif ( record ) return record.string;\n\t}\n}\nclass LangTagRecord {\n\tconstructor( length, offset ) {\n\t\tthis.length = length;\n\t\tthis.offset = offset;\n\t}\n}\nclass NameRecord {\n\tconstructor( p, nameTable ) {\n\t\tthis.platformID = p.uint16;\n\t\tthis.encodingID = p.uint16;\n\t\tthis.languageID = p.uint16;\n\t\tthis.nameID = p.uint16;\n\t\tthis.length = p.uint16;\n\t\tthis.offset = p.Offset16;\n\t\tlazy$1( this, `string`, () => {\n\t\t\tp.currentPosition = nameTable.stringStart + this.offset;\n\t\t\treturn decodeString( p, this );\n\t\t} );\n\t}\n}\nfunction decodeString( p, record ) {\n\tconst { platformID: platformID, length: length } = record;\n\tif ( length === 0 ) return ``;\n\tif ( platformID === 0 || platformID === 3 ) {\n\t\tconst str = [];\n\t\tfor ( let i = 0, e = length / 2; i < e; i++ )\n\t\t\tstr[ i ] = String.fromCharCode( p.uint16 );\n\t\treturn str.join( `` );\n\t}\n\tconst bytes = p.readBytes( length );\n\tconst str = [];\n\tbytes.forEach( function ( b, i ) {\n\t\tstr[ i ] = String.fromCharCode( b );\n\t} );\n\treturn str.join( `` );\n}\nvar name$1 = Object.freeze( { __proto__: null, name: name } );\nclass OS2 extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tthis.version = p.uint16;\n\t\tthis.xAvgCharWidth = p.int16;\n\t\tthis.usWeightClass = p.uint16;\n\t\tthis.usWidthClass = p.uint16;\n\t\tthis.fsType = p.uint16;\n\t\tthis.ySubscriptXSize = p.int16;\n\t\tthis.ySubscriptYSize = p.int16;\n\t\tthis.ySubscriptXOffset = p.int16;\n\t\tthis.ySubscriptYOffset = p.int16;\n\t\tthis.ySuperscriptXSize = p.int16;\n\t\tthis.ySuperscriptYSize = p.int16;\n\t\tthis.ySuperscriptXOffset = p.int16;\n\t\tthis.ySuperscriptYOffset = p.int16;\n\t\tthis.yStrikeoutSize = p.int16;\n\t\tthis.yStrikeoutPosition = p.int16;\n\t\tthis.sFamilyClass = p.int16;\n\t\tthis.panose = [ ...new Array( 10 ) ].map( ( _ ) => p.uint8 );\n\t\tthis.ulUnicodeRange1 = p.flags( 32 );\n\t\tthis.ulUnicodeRange2 = p.flags( 32 );\n\t\tthis.ulUnicodeRange3 = p.flags( 32 );\n\t\tthis.ulUnicodeRange4 = p.flags( 32 );\n\t\tthis.achVendID = p.tag;\n\t\tthis.fsSelection = p.uint16;\n\t\tthis.usFirstCharIndex = p.uint16;\n\t\tthis.usLastCharIndex = p.uint16;\n\t\tthis.sTypoAscender = p.int16;\n\t\tthis.sTypoDescender = p.int16;\n\t\tthis.sTypoLineGap = p.int16;\n\t\tthis.usWinAscent = p.uint16;\n\t\tthis.usWinDescent = p.uint16;\n\t\tif ( this.version === 0 ) return p.verifyLength();\n\t\tthis.ulCodePageRange1 = p.flags( 32 );\n\t\tthis.ulCodePageRange2 = p.flags( 32 );\n\t\tif ( this.version === 1 ) return p.verifyLength();\n\t\tthis.sxHeight = p.int16;\n\t\tthis.sCapHeight = p.int16;\n\t\tthis.usDefaultChar = p.uint16;\n\t\tthis.usBreakChar = p.uint16;\n\t\tthis.usMaxContext = p.uint16;\n\t\tif ( this.version <= 4 ) return p.verifyLength();\n\t\tthis.usLowerOpticalPointSize = p.uint16;\n\t\tthis.usUpperOpticalPointSize = p.uint16;\n\t\tif ( this.version === 5 ) return p.verifyLength();\n\t}\n}\nvar OS2$1 = Object.freeze( { __proto__: null, OS2: OS2 } );\nclass post extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tthis.version = p.legacyFixed;\n\t\tthis.italicAngle = p.fixed;\n\t\tthis.underlinePosition = p.fword;\n\t\tthis.underlineThickness = p.fword;\n\t\tthis.isFixedPitch = p.uint32;\n\t\tthis.minMemType42 = p.uint32;\n\t\tthis.maxMemType42 = p.uint32;\n\t\tthis.minMemType1 = p.uint32;\n\t\tthis.maxMemType1 = p.uint32;\n\t\tif ( this.version === 1 || this.version === 3 ) return p.verifyLength();\n\t\tthis.numGlyphs = p.uint16;\n\t\tif ( this.version === 2 ) {\n\t\t\tthis.glyphNameIndex = [ ...new Array( this.numGlyphs ) ].map(\n\t\t\t\t( _ ) => p.uint16\n\t\t\t);\n\t\t\tthis.namesOffset = p.currentPosition;\n\t\t\tthis.glyphNameOffsets = [ 1 ];\n\t\t\tfor ( let i = 0; i < this.numGlyphs; i++ ) {\n\t\t\t\tlet index = this.glyphNameIndex[ i ];\n\t\t\t\tif ( index < macStrings.length ) {\n\t\t\t\t\tthis.glyphNameOffsets.push( this.glyphNameOffsets[ i ] );\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tlet bytelength = p.int8;\n\t\t\t\tp.skip( bytelength );\n\t\t\t\tthis.glyphNameOffsets.push(\n\t\t\t\t\tthis.glyphNameOffsets[ i ] + bytelength + 1\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif ( this.version === 2.5 ) {\n\t\t\tthis.offset = [ ...new Array( this.numGlyphs ) ].map(\n\t\t\t\t( _ ) => p.int8\n\t\t\t);\n\t\t}\n\t}\n\tgetGlyphName( glyphid ) {\n\t\tif ( this.version !== 2 ) {\n\t\t\tconsole.warn(\n\t\t\t\t`post table version ${ this.version } does not support glyph name lookups`\n\t\t\t);\n\t\t\treturn ``;\n\t\t}\n\t\tlet index = this.glyphNameIndex[ glyphid ];\n\t\tif ( index < 258 ) return macStrings[ index ];\n\t\tlet offset = this.glyphNameOffsets[ glyphid ];\n\t\tlet next = this.glyphNameOffsets[ glyphid + 1 ];\n\t\tlet len = next - offset - 1;\n\t\tif ( len === 0 ) return `.notdef.`;\n\t\tthis.parser.currentPosition = this.namesOffset + offset;\n\t\tconst data = this.parser.readBytes(\n\t\t\tlen,\n\t\t\tthis.namesOffset + offset,\n\t\t\t8,\n\t\t\ttrue\n\t\t);\n\t\treturn data.map( ( b ) => String.fromCharCode( b ) ).join( `` );\n\t}\n}\nconst macStrings = [\n\t`.notdef`,\n\t`.null`,\n\t`nonmarkingreturn`,\n\t`space`,\n\t`exclam`,\n\t`quotedbl`,\n\t`numbersign`,\n\t`dollar`,\n\t`percent`,\n\t`ampersand`,\n\t`quotesingle`,\n\t`parenleft`,\n\t`parenright`,\n\t`asterisk`,\n\t`plus`,\n\t`comma`,\n\t`hyphen`,\n\t`period`,\n\t`slash`,\n\t`zero`,\n\t`one`,\n\t`two`,\n\t`three`,\n\t`four`,\n\t`five`,\n\t`six`,\n\t`seven`,\n\t`eight`,\n\t`nine`,\n\t`colon`,\n\t`semicolon`,\n\t`less`,\n\t`equal`,\n\t`greater`,\n\t`question`,\n\t`at`,\n\t`A`,\n\t`B`,\n\t`C`,\n\t`D`,\n\t`E`,\n\t`F`,\n\t`G`,\n\t`H`,\n\t`I`,\n\t`J`,\n\t`K`,\n\t`L`,\n\t`M`,\n\t`N`,\n\t`O`,\n\t`P`,\n\t`Q`,\n\t`R`,\n\t`S`,\n\t`T`,\n\t`U`,\n\t`V`,\n\t`W`,\n\t`X`,\n\t`Y`,\n\t`Z`,\n\t`bracketleft`,\n\t`backslash`,\n\t`bracketright`,\n\t`asciicircum`,\n\t`underscore`,\n\t`grave`,\n\t`a`,\n\t`b`,\n\t`c`,\n\t`d`,\n\t`e`,\n\t`f`,\n\t`g`,\n\t`h`,\n\t`i`,\n\t`j`,\n\t`k`,\n\t`l`,\n\t`m`,\n\t`n`,\n\t`o`,\n\t`p`,\n\t`q`,\n\t`r`,\n\t`s`,\n\t`t`,\n\t`u`,\n\t`v`,\n\t`w`,\n\t`x`,\n\t`y`,\n\t`z`,\n\t`braceleft`,\n\t`bar`,\n\t`braceright`,\n\t`asciitilde`,\n\t`Adieresis`,\n\t`Aring`,\n\t`Ccedilla`,\n\t`Eacute`,\n\t`Ntilde`,\n\t`Odieresis`,\n\t`Udieresis`,\n\t`aacute`,\n\t`agrave`,\n\t`acircumflex`,\n\t`adieresis`,\n\t`atilde`,\n\t`aring`,\n\t`ccedilla`,\n\t`eacute`,\n\t`egrave`,\n\t`ecircumflex`,\n\t`edieresis`,\n\t`iacute`,\n\t`igrave`,\n\t`icircumflex`,\n\t`idieresis`,\n\t`ntilde`,\n\t`oacute`,\n\t`ograve`,\n\t`ocircumflex`,\n\t`odieresis`,\n\t`otilde`,\n\t`uacute`,\n\t`ugrave`,\n\t`ucircumflex`,\n\t`udieresis`,\n\t`dagger`,\n\t`degree`,\n\t`cent`,\n\t`sterling`,\n\t`section`,\n\t`bullet`,\n\t`paragraph`,\n\t`germandbls`,\n\t`registered`,\n\t`copyright`,\n\t`trademark`,\n\t`acute`,\n\t`dieresis`,\n\t`notequal`,\n\t`AE`,\n\t`Oslash`,\n\t`infinity`,\n\t`plusminus`,\n\t`lessequal`,\n\t`greaterequal`,\n\t`yen`,\n\t`mu`,\n\t`partialdiff`,\n\t`summation`,\n\t`product`,\n\t`pi`,\n\t`integral`,\n\t`ordfeminine`,\n\t`ordmasculine`,\n\t`Omega`,\n\t`ae`,\n\t`oslash`,\n\t`questiondown`,\n\t`exclamdown`,\n\t`logicalnot`,\n\t`radical`,\n\t`florin`,\n\t`approxequal`,\n\t`Delta`,\n\t`guillemotleft`,\n\t`guillemotright`,\n\t`ellipsis`,\n\t`nonbreakingspace`,\n\t`Agrave`,\n\t`Atilde`,\n\t`Otilde`,\n\t`OE`,\n\t`oe`,\n\t`endash`,\n\t`emdash`,\n\t`quotedblleft`,\n\t`quotedblright`,\n\t`quoteleft`,\n\t`quoteright`,\n\t`divide`,\n\t`lozenge`,\n\t`ydieresis`,\n\t`Ydieresis`,\n\t`fraction`,\n\t`currency`,\n\t`guilsinglleft`,\n\t`guilsinglright`,\n\t`fi`,\n\t`fl`,\n\t`daggerdbl`,\n\t`periodcentered`,\n\t`quotesinglbase`,\n\t`quotedblbase`,\n\t`perthousand`,\n\t`Acircumflex`,\n\t`Ecircumflex`,\n\t`Aacute`,\n\t`Edieresis`,\n\t`Egrave`,\n\t`Iacute`,\n\t`Icircumflex`,\n\t`Idieresis`,\n\t`Igrave`,\n\t`Oacute`,\n\t`Ocircumflex`,\n\t`apple`,\n\t`Ograve`,\n\t`Uacute`,\n\t`Ucircumflex`,\n\t`Ugrave`,\n\t`dotlessi`,\n\t`circumflex`,\n\t`tilde`,\n\t`macron`,\n\t`breve`,\n\t`dotaccent`,\n\t`ring`,\n\t`cedilla`,\n\t`hungarumlaut`,\n\t`ogonek`,\n\t`caron`,\n\t`Lslash`,\n\t`lslash`,\n\t`Scaron`,\n\t`scaron`,\n\t`Zcaron`,\n\t`zcaron`,\n\t`brokenbar`,\n\t`Eth`,\n\t`eth`,\n\t`Yacute`,\n\t`yacute`,\n\t`Thorn`,\n\t`thorn`,\n\t`minus`,\n\t`multiply`,\n\t`onesuperior`,\n\t`twosuperior`,\n\t`threesuperior`,\n\t`onehalf`,\n\t`onequarter`,\n\t`threequarters`,\n\t`franc`,\n\t`Gbreve`,\n\t`gbreve`,\n\t`Idotaccent`,\n\t`Scedilla`,\n\t`scedilla`,\n\t`Cacute`,\n\t`cacute`,\n\t`Ccaron`,\n\t`ccaron`,\n\t`dcroat`,\n];\nvar post$1 = Object.freeze( { __proto__: null, post: post } );\nclass BASE extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tthis.majorVersion = p.uint16;\n\t\tthis.minorVersion = p.uint16;\n\t\tthis.horizAxisOffset = p.Offset16;\n\t\tthis.vertAxisOffset = p.Offset16;\n\t\tlazy$1(\n\t\t\tthis,\n\t\t\t`horizAxis`,\n\t\t\t() =>\n\t\t\t\tnew AxisTable(\n\t\t\t\t\t{ offset: dict.offset + this.horizAxisOffset },\n\t\t\t\t\tdataview\n\t\t\t\t)\n\t\t);\n\t\tlazy$1(\n\t\t\tthis,\n\t\t\t`vertAxis`,\n\t\t\t() =>\n\t\t\t\tnew AxisTable(\n\t\t\t\t\t{ offset: dict.offset + this.vertAxisOffset },\n\t\t\t\t\tdataview\n\t\t\t\t)\n\t\t);\n\t\tif ( this.majorVersion === 1 && this.minorVersion === 1 ) {\n\t\t\tthis.itemVarStoreOffset = p.Offset32;\n\t\t\tlazy$1(\n\t\t\t\tthis,\n\t\t\t\t`itemVarStore`,\n\t\t\t\t() =>\n\t\t\t\t\tnew AxisTable(\n\t\t\t\t\t\t{ offset: dict.offset + this.itemVarStoreOffset },\n\t\t\t\t\t\tdataview\n\t\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}\n}\nclass AxisTable extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview, `AxisTable` );\n\t\tthis.baseTagListOffset = p.Offset16;\n\t\tthis.baseScriptListOffset = p.Offset16;\n\t\tlazy$1(\n\t\t\tthis,\n\t\t\t`baseTagList`,\n\t\t\t() =>\n\t\t\t\tnew BaseTagListTable(\n\t\t\t\t\t{ offset: dict.offset + this.baseTagListOffset },\n\t\t\t\t\tdataview\n\t\t\t\t)\n\t\t);\n\t\tlazy$1(\n\t\t\tthis,\n\t\t\t`baseScriptList`,\n\t\t\t() =>\n\t\t\t\tnew BaseScriptListTable(\n\t\t\t\t\t{ offset: dict.offset + this.baseScriptListOffset },\n\t\t\t\t\tdataview\n\t\t\t\t)\n\t\t);\n\t}\n}\nclass BaseTagListTable extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview, `BaseTagListTable` );\n\t\tthis.baseTagCount = p.uint16;\n\t\tthis.baselineTags = [ ...new Array( this.baseTagCount ) ].map(\n\t\t\t( _ ) => p.tag\n\t\t);\n\t}\n}\nclass BaseScriptListTable extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview, `BaseScriptListTable` );\n\t\tthis.baseScriptCount = p.uint16;\n\t\tconst recordStart = p.currentPosition;\n\t\tlazy$1( this, `baseScriptRecords`, () => {\n\t\t\tp.currentPosition = recordStart;\n\t\t\treturn [ ...new Array( this.baseScriptCount ) ].map(\n\t\t\t\t( _ ) => new BaseScriptRecord( this.start, p )\n\t\t\t);\n\t\t} );\n\t}\n}\nclass BaseScriptRecord {\n\tconstructor( baseScriptListTableStart, p ) {\n\t\tthis.baseScriptTag = p.tag;\n\t\tthis.baseScriptOffset = p.Offset16;\n\t\tlazy$1( this, `baseScriptTable`, () => {\n\t\t\tp.currentPosition =\n\t\t\t\tbaseScriptListTableStart + this.baseScriptOffset;\n\t\t\treturn new BaseScriptTable( p );\n\t\t} );\n\t}\n}\nclass BaseScriptTable {\n\tconstructor( p ) {\n\t\tthis.start = p.currentPosition;\n\t\tthis.baseValuesOffset = p.Offset16;\n\t\tthis.defaultMinMaxOffset = p.Offset16;\n\t\tthis.baseLangSysCount = p.uint16;\n\t\tthis.baseLangSysRecords = [ ...new Array( this.baseLangSysCount ) ].map(\n\t\t\t( _ ) => new BaseLangSysRecord( this.start, p )\n\t\t);\n\t\tlazy$1( this, `baseValues`, () => {\n\t\t\tp.currentPosition = this.start + this.baseValuesOffset;\n\t\t\treturn new BaseValuesTable( p );\n\t\t} );\n\t\tlazy$1( this, `defaultMinMax`, () => {\n\t\t\tp.currentPosition = this.start + this.defaultMinMaxOffset;\n\t\t\treturn new MinMaxTable( p );\n\t\t} );\n\t}\n}\nclass BaseLangSysRecord {\n\tconstructor( baseScriptTableStart, p ) {\n\t\tthis.baseLangSysTag = p.tag;\n\t\tthis.minMaxOffset = p.Offset16;\n\t\tlazy$1( this, `minMax`, () => {\n\t\t\tp.currentPosition = baseScriptTableStart + this.minMaxOffset;\n\t\t\treturn new MinMaxTable( p );\n\t\t} );\n\t}\n}\nclass BaseValuesTable {\n\tconstructor( p ) {\n\t\tthis.parser = p;\n\t\tthis.start = p.currentPosition;\n\t\tthis.defaultBaselineIndex = p.uint16;\n\t\tthis.baseCoordCount = p.uint16;\n\t\tthis.baseCoords = [ ...new Array( this.baseCoordCount ) ].map(\n\t\t\t( _ ) => p.Offset16\n\t\t);\n\t}\n\tgetTable( id ) {\n\t\tthis.parser.currentPosition = this.start + this.baseCoords[ id ];\n\t\treturn new BaseCoordTable( this.parser );\n\t}\n}\nclass MinMaxTable {\n\tconstructor( p ) {\n\t\tthis.minCoord = p.Offset16;\n\t\tthis.maxCoord = p.Offset16;\n\t\tthis.featMinMaxCount = p.uint16;\n\t\tconst recordStart = p.currentPosition;\n\t\tlazy$1( this, `featMinMaxRecords`, () => {\n\t\t\tp.currentPosition = recordStart;\n\t\t\treturn [ ...new Array( this.featMinMaxCount ) ].map(\n\t\t\t\t( _ ) => new FeatMinMaxRecord( p )\n\t\t\t);\n\t\t} );\n\t}\n}\nclass FeatMinMaxRecord {\n\tconstructor( p ) {\n\t\tthis.featureTableTag = p.tag;\n\t\tthis.minCoord = p.Offset16;\n\t\tthis.maxCoord = p.Offset16;\n\t}\n}\nclass BaseCoordTable {\n\tconstructor( p ) {\n\t\tthis.baseCoordFormat = p.uint16;\n\t\tthis.coordinate = p.int16;\n\t\tif ( this.baseCoordFormat === 2 ) {\n\t\t\tthis.referenceGlyph = p.uint16;\n\t\t\tthis.baseCoordPoint = p.uint16;\n\t\t}\n\t\tif ( this.baseCoordFormat === 3 ) {\n\t\t\tthis.deviceTable = p.Offset16;\n\t\t}\n\t}\n}\nvar BASE$1 = Object.freeze( { __proto__: null, BASE: BASE } );\nclass ClassDefinition {\n\tconstructor( p ) {\n\t\tthis.classFormat = p.uint16;\n\t\tif ( this.classFormat === 1 ) {\n\t\t\tthis.startGlyphID = p.uint16;\n\t\t\tthis.glyphCount = p.uint16;\n\t\t\tthis.classValueArray = [ ...new Array( this.glyphCount ) ].map(\n\t\t\t\t( _ ) => p.uint16\n\t\t\t);\n\t\t}\n\t\tif ( this.classFormat === 2 ) {\n\t\t\tthis.classRangeCount = p.uint16;\n\t\t\tthis.classRangeRecords = [\n\t\t\t\t...new Array( this.classRangeCount ),\n\t\t\t].map( ( _ ) => new ClassRangeRecord( p ) );\n\t\t}\n\t}\n}\nclass ClassRangeRecord {\n\tconstructor( p ) {\n\t\tthis.startGlyphID = p.uint16;\n\t\tthis.endGlyphID = p.uint16;\n\t\tthis.class = p.uint16;\n\t}\n}\nclass CoverageTable extends ParsedData {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tthis.coverageFormat = p.uint16;\n\t\tif ( this.coverageFormat === 1 ) {\n\t\t\tthis.glyphCount = p.uint16;\n\t\t\tthis.glyphArray = [ ...new Array( this.glyphCount ) ].map(\n\t\t\t\t( _ ) => p.uint16\n\t\t\t);\n\t\t}\n\t\tif ( this.coverageFormat === 2 ) {\n\t\t\tthis.rangeCount = p.uint16;\n\t\t\tthis.rangeRecords = [ ...new Array( this.rangeCount ) ].map(\n\t\t\t\t( _ ) => new CoverageRangeRecord( p )\n\t\t\t);\n\t\t}\n\t}\n}\nclass CoverageRangeRecord {\n\tconstructor( p ) {\n\t\tthis.startGlyphID = p.uint16;\n\t\tthis.endGlyphID = p.uint16;\n\t\tthis.startCoverageIndex = p.uint16;\n\t}\n}\nclass ItemVariationStoreTable {\n\tconstructor( table, p ) {\n\t\tthis.table = table;\n\t\tthis.parser = p;\n\t\tthis.start = p.currentPosition;\n\t\tthis.format = p.uint16;\n\t\tthis.variationRegionListOffset = p.Offset32;\n\t\tthis.itemVariationDataCount = p.uint16;\n\t\tthis.itemVariationDataOffsets = [\n\t\t\t...new Array( this.itemVariationDataCount ),\n\t\t].map( ( _ ) => p.Offset32 );\n\t}\n}\nclass GDEF extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tthis.majorVersion = p.uint16;\n\t\tthis.minorVersion = p.uint16;\n\t\tthis.glyphClassDefOffset = p.Offset16;\n\t\tlazy$1( this, `glyphClassDefs`, () => {\n\t\t\tif ( this.glyphClassDefOffset === 0 ) return undefined;\n\t\t\tp.currentPosition = this.tableStart + this.glyphClassDefOffset;\n\t\t\treturn new ClassDefinition( p );\n\t\t} );\n\t\tthis.attachListOffset = p.Offset16;\n\t\tlazy$1( this, `attachList`, () => {\n\t\t\tif ( this.attachListOffset === 0 ) return undefined;\n\t\t\tp.currentPosition = this.tableStart + this.attachListOffset;\n\t\t\treturn new AttachList( p );\n\t\t} );\n\t\tthis.ligCaretListOffset = p.Offset16;\n\t\tlazy$1( this, `ligCaretList`, () => {\n\t\t\tif ( this.ligCaretListOffset === 0 ) return undefined;\n\t\t\tp.currentPosition = this.tableStart + this.ligCaretListOffset;\n\t\t\treturn new LigCaretList( p );\n\t\t} );\n\t\tthis.markAttachClassDefOffset = p.Offset16;\n\t\tlazy$1( this, `markAttachClassDef`, () => {\n\t\t\tif ( this.markAttachClassDefOffset === 0 ) return undefined;\n\t\t\tp.currentPosition = this.tableStart + this.markAttachClassDefOffset;\n\t\t\treturn new ClassDefinition( p );\n\t\t} );\n\t\tif ( this.minorVersion >= 2 ) {\n\t\t\tthis.markGlyphSetsDefOffset = p.Offset16;\n\t\t\tlazy$1( this, `markGlyphSetsDef`, () => {\n\t\t\t\tif ( this.markGlyphSetsDefOffset === 0 ) return undefined;\n\t\t\t\tp.currentPosition =\n\t\t\t\t\tthis.tableStart + this.markGlyphSetsDefOffset;\n\t\t\t\treturn new MarkGlyphSetsTable( p );\n\t\t\t} );\n\t\t}\n\t\tif ( this.minorVersion === 3 ) {\n\t\t\tthis.itemVarStoreOffset = p.Offset32;\n\t\t\tlazy$1( this, `itemVarStore`, () => {\n\t\t\t\tif ( this.itemVarStoreOffset === 0 ) return undefined;\n\t\t\t\tp.currentPosition = this.tableStart + this.itemVarStoreOffset;\n\t\t\t\treturn new ItemVariationStoreTable( p );\n\t\t\t} );\n\t\t}\n\t}\n}\nclass AttachList extends ParsedData {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tthis.coverageOffset = p.Offset16;\n\t\tthis.glyphCount = p.uint16;\n\t\tthis.attachPointOffsets = [ ...new Array( this.glyphCount ) ].map(\n\t\t\t( _ ) => p.Offset16\n\t\t);\n\t}\n\tgetPoint( pointID ) {\n\t\tthis.parser.currentPosition =\n\t\t\tthis.start + this.attachPointOffsets[ pointID ];\n\t\treturn new AttachPoint( this.parser );\n\t}\n}\nclass AttachPoint {\n\tconstructor( p ) {\n\t\tthis.pointCount = p.uint16;\n\t\tthis.pointIndices = [ ...new Array( this.pointCount ) ].map(\n\t\t\t( _ ) => p.uint16\n\t\t);\n\t}\n}\nclass LigCaretList extends ParsedData {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tthis.coverageOffset = p.Offset16;\n\t\tlazy$1( this, `coverage`, () => {\n\t\t\tp.currentPosition = this.start + this.coverageOffset;\n\t\t\treturn new CoverageTable( p );\n\t\t} );\n\t\tthis.ligGlyphCount = p.uint16;\n\t\tthis.ligGlyphOffsets = [ ...new Array( this.ligGlyphCount ) ].map(\n\t\t\t( _ ) => p.Offset16\n\t\t);\n\t}\n\tgetLigGlyph( ligGlyphID ) {\n\t\tthis.parser.currentPosition =\n\t\t\tthis.start + this.ligGlyphOffsets[ ligGlyphID ];\n\t\treturn new LigGlyph( this.parser );\n\t}\n}\nclass LigGlyph extends ParsedData {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tthis.caretCount = p.uint16;\n\t\tthis.caretValueOffsets = [ ...new Array( this.caretCount ) ].map(\n\t\t\t( _ ) => p.Offset16\n\t\t);\n\t}\n\tgetCaretValue( caretID ) {\n\t\tthis.parser.currentPosition =\n\t\t\tthis.start + this.caretValueOffsets[ caretID ];\n\t\treturn new CaretValue( this.parser );\n\t}\n}\nclass CaretValue {\n\tconstructor( p ) {\n\t\tthis.caretValueFormat = p.uint16;\n\t\tif ( this.caretValueFormat === 1 ) {\n\t\t\tthis.coordinate = p.int16;\n\t\t}\n\t\tif ( this.caretValueFormat === 2 ) {\n\t\t\tthis.caretValuePointIndex = p.uint16;\n\t\t}\n\t\tif ( this.caretValueFormat === 3 ) {\n\t\t\tthis.coordinate = p.int16;\n\t\t\tthis.deviceOffset = p.Offset16;\n\t\t}\n\t}\n}\nclass MarkGlyphSetsTable extends ParsedData {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tthis.markGlyphSetTableFormat = p.uint16;\n\t\tthis.markGlyphSetCount = p.uint16;\n\t\tthis.coverageOffsets = [ ...new Array( this.markGlyphSetCount ) ].map(\n\t\t\t( _ ) => p.Offset32\n\t\t);\n\t}\n\tgetMarkGlyphSet( markGlyphSetID ) {\n\t\tthis.parser.currentPosition =\n\t\t\tthis.start + this.coverageOffsets[ markGlyphSetID ];\n\t\treturn new CoverageTable( this.parser );\n\t}\n}\nvar GDEF$1 = Object.freeze( { __proto__: null, GDEF: GDEF } );\nclass ScriptList extends ParsedData {\n\tstatic EMPTY = { scriptCount: 0, scriptRecords: [] };\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tthis.scriptCount = p.uint16;\n\t\tthis.scriptRecords = [ ...new Array( this.scriptCount ) ].map(\n\t\t\t( _ ) => new ScriptRecord( p )\n\t\t);\n\t}\n}\nclass ScriptRecord {\n\tconstructor( p ) {\n\t\tthis.scriptTag = p.tag;\n\t\tthis.scriptOffset = p.Offset16;\n\t}\n}\nclass ScriptTable extends ParsedData {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tthis.defaultLangSys = p.Offset16;\n\t\tthis.langSysCount = p.uint16;\n\t\tthis.langSysRecords = [ ...new Array( this.langSysCount ) ].map(\n\t\t\t( _ ) => new LangSysRecord( p )\n\t\t);\n\t}\n}\nclass LangSysRecord {\n\tconstructor( p ) {\n\t\tthis.langSysTag = p.tag;\n\t\tthis.langSysOffset = p.Offset16;\n\t}\n}\nclass LangSysTable {\n\tconstructor( p ) {\n\t\tthis.lookupOrder = p.Offset16;\n\t\tthis.requiredFeatureIndex = p.uint16;\n\t\tthis.featureIndexCount = p.uint16;\n\t\tthis.featureIndices = [ ...new Array( this.featureIndexCount ) ].map(\n\t\t\t( _ ) => p.uint16\n\t\t);\n\t}\n}\nclass FeatureList extends ParsedData {\n\tstatic EMPTY = { featureCount: 0, featureRecords: [] };\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tthis.featureCount = p.uint16;\n\t\tthis.featureRecords = [ ...new Array( this.featureCount ) ].map(\n\t\t\t( _ ) => new FeatureRecord( p )\n\t\t);\n\t}\n}\nclass FeatureRecord {\n\tconstructor( p ) {\n\t\tthis.featureTag = p.tag;\n\t\tthis.featureOffset = p.Offset16;\n\t}\n}\nclass FeatureTable extends ParsedData {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tthis.featureParams = p.Offset16;\n\t\tthis.lookupIndexCount = p.uint16;\n\t\tthis.lookupListIndices = [ ...new Array( this.lookupIndexCount ) ].map(\n\t\t\t( _ ) => p.uint16\n\t\t);\n\t}\n\tgetFeatureParams() {\n\t\tif ( this.featureParams > 0 ) {\n\t\t\tconst p = this.parser;\n\t\t\tp.currentPosition = this.start + this.featureParams;\n\t\t\tconst tag = this.featureTag;\n\t\t\tif ( tag === `size` ) return new Size( p );\n\t\t\tif ( tag.startsWith( `cc` ) ) return new CharacterVariant( p );\n\t\t\tif ( tag.startsWith( `ss` ) ) return new StylisticSet( p );\n\t\t}\n\t}\n}\nclass CharacterVariant {\n\tconstructor( p ) {\n\t\tthis.format = p.uint16;\n\t\tthis.featUiLabelNameId = p.uint16;\n\t\tthis.featUiTooltipTextNameId = p.uint16;\n\t\tthis.sampleTextNameId = p.uint16;\n\t\tthis.numNamedParameters = p.uint16;\n\t\tthis.firstParamUiLabelNameId = p.uint16;\n\t\tthis.charCount = p.uint16;\n\t\tthis.character = [ ...new Array( this.charCount ) ].map(\n\t\t\t( _ ) => p.uint24\n\t\t);\n\t}\n}\nclass Size {\n\tconstructor( p ) {\n\t\tthis.designSize = p.uint16;\n\t\tthis.subfamilyIdentifier = p.uint16;\n\t\tthis.subfamilyNameID = p.uint16;\n\t\tthis.smallEnd = p.uint16;\n\t\tthis.largeEnd = p.uint16;\n\t}\n}\nclass StylisticSet {\n\tconstructor( p ) {\n\t\tthis.version = p.uint16;\n\t\tthis.UINameID = p.uint16;\n\t}\n}\nfunction undoCoverageOffsetParsing( instance ) {\n\tinstance.parser.currentPosition -= 2;\n\tdelete instance.coverageOffset;\n\tdelete instance.getCoverageTable;\n}\nclass LookupType$1 extends ParsedData {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tthis.substFormat = p.uint16;\n\t\tthis.coverageOffset = p.Offset16;\n\t}\n\tgetCoverageTable() {\n\t\tlet p = this.parser;\n\t\tp.currentPosition = this.start + this.coverageOffset;\n\t\treturn new CoverageTable( p );\n\t}\n}\nclass SubstLookupRecord {\n\tconstructor( p ) {\n\t\tthis.glyphSequenceIndex = p.uint16;\n\t\tthis.lookupListIndex = p.uint16;\n\t}\n}\nclass LookupType1$1 extends LookupType$1 {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tthis.deltaGlyphID = p.int16;\n\t}\n}\nclass LookupType2$1 extends LookupType$1 {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tthis.sequenceCount = p.uint16;\n\t\tthis.sequenceOffsets = [ ...new Array( this.sequenceCount ) ].map(\n\t\t\t( _ ) => p.Offset16\n\t\t);\n\t}\n\tgetSequence( index ) {\n\t\tlet p = this.parser;\n\t\tp.currentPosition = this.start + this.sequenceOffsets[ index ];\n\t\treturn new SequenceTable( p );\n\t}\n}\nclass SequenceTable {\n\tconstructor( p ) {\n\t\tthis.glyphCount = p.uint16;\n\t\tthis.substituteGlyphIDs = [ ...new Array( this.glyphCount ) ].map(\n\t\t\t( _ ) => p.uint16\n\t\t);\n\t}\n}\nclass LookupType3$1 extends LookupType$1 {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tthis.alternateSetCount = p.uint16;\n\t\tthis.alternateSetOffsets = [\n\t\t\t...new Array( this.alternateSetCount ),\n\t\t].map( ( _ ) => p.Offset16 );\n\t}\n\tgetAlternateSet( index ) {\n\t\tlet p = this.parser;\n\t\tp.currentPosition = this.start + this.alternateSetOffsets[ index ];\n\t\treturn new AlternateSetTable( p );\n\t}\n}\nclass AlternateSetTable {\n\tconstructor( p ) {\n\t\tthis.glyphCount = p.uint16;\n\t\tthis.alternateGlyphIDs = [ ...new Array( this.glyphCount ) ].map(\n\t\t\t( _ ) => p.uint16\n\t\t);\n\t}\n}\nclass LookupType4$1 extends LookupType$1 {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tthis.ligatureSetCount = p.uint16;\n\t\tthis.ligatureSetOffsets = [ ...new Array( this.ligatureSetCount ) ].map(\n\t\t\t( _ ) => p.Offset16\n\t\t);\n\t}\n\tgetLigatureSet( index ) {\n\t\tlet p = this.parser;\n\t\tp.currentPosition = this.start + this.ligatureSetOffsets[ index ];\n\t\treturn new LigatureSetTable( p );\n\t}\n}\nclass LigatureSetTable extends ParsedData {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tthis.ligatureCount = p.uint16;\n\t\tthis.ligatureOffsets = [ ...new Array( this.ligatureCount ) ].map(\n\t\t\t( _ ) => p.Offset16\n\t\t);\n\t}\n\tgetLigature( index ) {\n\t\tlet p = this.parser;\n\t\tp.currentPosition = this.start + this.ligatureOffsets[ index ];\n\t\treturn new LigatureTable( p );\n\t}\n}\nclass LigatureTable {\n\tconstructor( p ) {\n\t\tthis.ligatureGlyph = p.uint16;\n\t\tthis.componentCount = p.uint16;\n\t\tthis.componentGlyphIDs = [\n\t\t\t...new Array( this.componentCount - 1 ),\n\t\t].map( ( _ ) => p.uint16 );\n\t}\n}\nclass LookupType5$1 extends LookupType$1 {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tif ( this.substFormat === 1 ) {\n\t\t\tthis.subRuleSetCount = p.uint16;\n\t\t\tthis.subRuleSetOffsets = [\n\t\t\t\t...new Array( this.subRuleSetCount ),\n\t\t\t].map( ( _ ) => p.Offset16 );\n\t\t}\n\t\tif ( this.substFormat === 2 ) {\n\t\t\tthis.classDefOffset = p.Offset16;\n\t\t\tthis.subClassSetCount = p.uint16;\n\t\t\tthis.subClassSetOffsets = [\n\t\t\t\t...new Array( this.subClassSetCount ),\n\t\t\t].map( ( _ ) => p.Offset16 );\n\t\t}\n\t\tif ( this.substFormat === 3 ) {\n\t\t\tundoCoverageOffsetParsing( this );\n\t\t\tthis.glyphCount = p.uint16;\n\t\t\tthis.substitutionCount = p.uint16;\n\t\t\tthis.coverageOffsets = [ ...new Array( this.glyphCount ) ].map(\n\t\t\t\t( _ ) => p.Offset16\n\t\t\t);\n\t\t\tthis.substLookupRecords = [\n\t\t\t\t...new Array( this.substitutionCount ),\n\t\t\t].map( ( _ ) => new SubstLookupRecord( p ) );\n\t\t}\n\t}\n\tgetSubRuleSet( index ) {\n\t\tif ( this.substFormat !== 1 )\n\t\t\tthrow new Error(\n\t\t\t\t`lookup type 5.${ this.substFormat } has no subrule sets.`\n\t\t\t);\n\t\tlet p = this.parser;\n\t\tp.currentPosition = this.start + this.subRuleSetOffsets[ index ];\n\t\treturn new SubRuleSetTable( p );\n\t}\n\tgetSubClassSet( index ) {\n\t\tif ( this.substFormat !== 2 )\n\t\t\tthrow new Error(\n\t\t\t\t`lookup type 5.${ this.substFormat } has no subclass sets.`\n\t\t\t);\n\t\tlet p = this.parser;\n\t\tp.currentPosition = this.start + this.subClassSetOffsets[ index ];\n\t\treturn new SubClassSetTable( p );\n\t}\n\tgetCoverageTable( index ) {\n\t\tif ( this.substFormat !== 3 && ! index )\n\t\t\treturn super.getCoverageTable();\n\t\tif ( ! index )\n\t\t\tthrow new Error(\n\t\t\t\t`lookup type 5.${ this.substFormat } requires an coverage table index.`\n\t\t\t);\n\t\tlet p = this.parser;\n\t\tp.currentPosition = this.start + this.coverageOffsets[ index ];\n\t\treturn new CoverageTable( p );\n\t}\n}\nclass SubRuleSetTable extends ParsedData {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tthis.subRuleCount = p.uint16;\n\t\tthis.subRuleOffsets = [ ...new Array( this.subRuleCount ) ].map(\n\t\t\t( _ ) => p.Offset16\n\t\t);\n\t}\n\tgetSubRule( index ) {\n\t\tlet p = this.parser;\n\t\tp.currentPosition = this.start + this.subRuleOffsets[ index ];\n\t\treturn new SubRuleTable( p );\n\t}\n}\nclass SubRuleTable {\n\tconstructor( p ) {\n\t\tthis.glyphCount = p.uint16;\n\t\tthis.substitutionCount = p.uint16;\n\t\tthis.inputSequence = [ ...new Array( this.glyphCount - 1 ) ].map(\n\t\t\t( _ ) => p.uint16\n\t\t);\n\t\tthis.substLookupRecords = [\n\t\t\t...new Array( this.substitutionCount ),\n\t\t].map( ( _ ) => new SubstLookupRecord( p ) );\n\t}\n}\nclass SubClassSetTable extends ParsedData {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tthis.subClassRuleCount = p.uint16;\n\t\tthis.subClassRuleOffsets = [\n\t\t\t...new Array( this.subClassRuleCount ),\n\t\t].map( ( _ ) => p.Offset16 );\n\t}\n\tgetSubClass( index ) {\n\t\tlet p = this.parser;\n\t\tp.currentPosition = this.start + this.subClassRuleOffsets[ index ];\n\t\treturn new SubClassRuleTable( p );\n\t}\n}\nclass SubClassRuleTable extends SubRuleTable {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t}\n}\nclass LookupType6$1 extends LookupType$1 {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tif ( this.substFormat === 1 ) {\n\t\t\tthis.chainSubRuleSetCount = p.uint16;\n\t\t\tthis.chainSubRuleSetOffsets = [\n\t\t\t\t...new Array( this.chainSubRuleSetCount ),\n\t\t\t].map( ( _ ) => p.Offset16 );\n\t\t}\n\t\tif ( this.substFormat === 2 ) {\n\t\t\tthis.backtrackClassDefOffset = p.Offset16;\n\t\t\tthis.inputClassDefOffset = p.Offset16;\n\t\t\tthis.lookaheadClassDefOffset = p.Offset16;\n\t\t\tthis.chainSubClassSetCount = p.uint16;\n\t\t\tthis.chainSubClassSetOffsets = [\n\t\t\t\t...new Array( this.chainSubClassSetCount ),\n\t\t\t].map( ( _ ) => p.Offset16 );\n\t\t}\n\t\tif ( this.substFormat === 3 ) {\n\t\t\tundoCoverageOffsetParsing( this );\n\t\t\tthis.backtrackGlyphCount = p.uint16;\n\t\t\tthis.backtrackCoverageOffsets = [\n\t\t\t\t...new Array( this.backtrackGlyphCount ),\n\t\t\t].map( ( _ ) => p.Offset16 );\n\t\t\tthis.inputGlyphCount = p.uint16;\n\t\t\tthis.inputCoverageOffsets = [\n\t\t\t\t...new Array( this.inputGlyphCount ),\n\t\t\t].map( ( _ ) => p.Offset16 );\n\t\t\tthis.lookaheadGlyphCount = p.uint16;\n\t\t\tthis.lookaheadCoverageOffsets = [\n\t\t\t\t...new Array( this.lookaheadGlyphCount ),\n\t\t\t].map( ( _ ) => p.Offset16 );\n\t\t\tthis.seqLookupCount = p.uint16;\n\t\t\tthis.seqLookupRecords = [\n\t\t\t\t...new Array( this.substitutionCount ),\n\t\t\t].map( ( _ ) => new SequenceLookupRecord( p ) );\n\t\t}\n\t}\n\tgetChainSubRuleSet( index ) {\n\t\tif ( this.substFormat !== 1 )\n\t\t\tthrow new Error(\n\t\t\t\t`lookup type 6.${ this.substFormat } has no chainsubrule sets.`\n\t\t\t);\n\t\tlet p = this.parser;\n\t\tp.currentPosition = this.start + this.chainSubRuleSetOffsets[ index ];\n\t\treturn new ChainSubRuleSetTable( p );\n\t}\n\tgetChainSubClassSet( index ) {\n\t\tif ( this.substFormat !== 2 )\n\t\t\tthrow new Error(\n\t\t\t\t`lookup type 6.${ this.substFormat } has no chainsubclass sets.`\n\t\t\t);\n\t\tlet p = this.parser;\n\t\tp.currentPosition = this.start + this.chainSubClassSetOffsets[ index ];\n\t\treturn new ChainSubClassSetTable( p );\n\t}\n\tgetCoverageFromOffset( offset ) {\n\t\tif ( this.substFormat !== 3 )\n\t\t\tthrow new Error(\n\t\t\t\t`lookup type 6.${ this.substFormat } does not use contextual coverage offsets.`\n\t\t\t);\n\t\tlet p = this.parser;\n\t\tp.currentPosition = this.start + offset;\n\t\treturn new CoverageTable( p );\n\t}\n}\nclass ChainSubRuleSetTable extends ParsedData {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tthis.chainSubRuleCount = p.uint16;\n\t\tthis.chainSubRuleOffsets = [\n\t\t\t...new Array( this.chainSubRuleCount ),\n\t\t].map( ( _ ) => p.Offset16 );\n\t}\n\tgetSubRule( index ) {\n\t\tlet p = this.parser;\n\t\tp.currentPosition = this.start + this.chainSubRuleOffsets[ index ];\n\t\treturn new ChainSubRuleTable( p );\n\t}\n}\nclass ChainSubRuleTable {\n\tconstructor( p ) {\n\t\tthis.backtrackGlyphCount = p.uint16;\n\t\tthis.backtrackSequence = [\n\t\t\t...new Array( this.backtrackGlyphCount ),\n\t\t].map( ( _ ) => p.uint16 );\n\t\tthis.inputGlyphCount = p.uint16;\n\t\tthis.inputSequence = [ ...new Array( this.inputGlyphCount - 1 ) ].map(\n\t\t\t( _ ) => p.uint16\n\t\t);\n\t\tthis.lookaheadGlyphCount = p.uint16;\n\t\tthis.lookAheadSequence = [\n\t\t\t...new Array( this.lookAheadGlyphCount ),\n\t\t].map( ( _ ) => p.uint16 );\n\t\tthis.substitutionCount = p.uint16;\n\t\tthis.substLookupRecords = [ ...new Array( this.SubstCount ) ].map(\n\t\t\t( _ ) => new SubstLookupRecord( p )\n\t\t);\n\t}\n}\nclass ChainSubClassSetTable extends ParsedData {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tthis.chainSubClassRuleCount = p.uint16;\n\t\tthis.chainSubClassRuleOffsets = [\n\t\t\t...new Array( this.chainSubClassRuleCount ),\n\t\t].map( ( _ ) => p.Offset16 );\n\t}\n\tgetSubClass( index ) {\n\t\tlet p = this.parser;\n\t\tp.currentPosition = this.start + this.chainSubRuleOffsets[ index ];\n\t\treturn new ChainSubClassRuleTable( p );\n\t}\n}\nclass ChainSubClassRuleTable {\n\tconstructor( p ) {\n\t\tthis.backtrackGlyphCount = p.uint16;\n\t\tthis.backtrackSequence = [\n\t\t\t...new Array( this.backtrackGlyphCount ),\n\t\t].map( ( _ ) => p.uint16 );\n\t\tthis.inputGlyphCount = p.uint16;\n\t\tthis.inputSequence = [ ...new Array( this.inputGlyphCount - 1 ) ].map(\n\t\t\t( _ ) => p.uint16\n\t\t);\n\t\tthis.lookaheadGlyphCount = p.uint16;\n\t\tthis.lookAheadSequence = [\n\t\t\t...new Array( this.lookAheadGlyphCount ),\n\t\t].map( ( _ ) => p.uint16 );\n\t\tthis.substitutionCount = p.uint16;\n\t\tthis.substLookupRecords = [\n\t\t\t...new Array( this.substitutionCount ),\n\t\t].map( ( _ ) => new SequenceLookupRecord( p ) );\n\t}\n}\nclass SequenceLookupRecord extends ParsedData {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tthis.sequenceIndex = p.uint16;\n\t\tthis.lookupListIndex = p.uint16;\n\t}\n}\nclass LookupType7$1 extends ParsedData {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tthis.substFormat = p.uint16;\n\t\tthis.extensionLookupType = p.uint16;\n\t\tthis.extensionOffset = p.Offset32;\n\t}\n}\nclass LookupType8$1 extends LookupType$1 {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tthis.backtrackGlyphCount = p.uint16;\n\t\tthis.backtrackCoverageOffsets = [\n\t\t\t...new Array( this.backtrackGlyphCount ),\n\t\t].map( ( _ ) => p.Offset16 );\n\t\tthis.lookaheadGlyphCount = p.uint16;\n\t\tthis.lookaheadCoverageOffsets = [\n\t\t\tnew Array( this.lookaheadGlyphCount ),\n\t\t].map( ( _ ) => p.Offset16 );\n\t\tthis.glyphCount = p.uint16;\n\t\tthis.substituteGlyphIDs = [ ...new Array( this.glyphCount ) ].map(\n\t\t\t( _ ) => p.uint16\n\t\t);\n\t}\n}\nvar GSUBtables = {\n\tbuildSubtable: function ( type, p ) {\n\t\tconst subtable = new [\n\t\t\tundefined,\n\t\t\tLookupType1$1,\n\t\t\tLookupType2$1,\n\t\t\tLookupType3$1,\n\t\t\tLookupType4$1,\n\t\t\tLookupType5$1,\n\t\t\tLookupType6$1,\n\t\t\tLookupType7$1,\n\t\t\tLookupType8$1,\n\t\t][ type ]( p );\n\t\tsubtable.type = type;\n\t\treturn subtable;\n\t},\n};\nclass LookupType extends ParsedData {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t}\n}\nclass LookupType1 extends LookupType {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tconsole.log( `lookup type 1` );\n\t}\n}\nclass LookupType2 extends LookupType {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tconsole.log( `lookup type 2` );\n\t}\n}\nclass LookupType3 extends LookupType {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tconsole.log( `lookup type 3` );\n\t}\n}\nclass LookupType4 extends LookupType {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tconsole.log( `lookup type 4` );\n\t}\n}\nclass LookupType5 extends LookupType {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tconsole.log( `lookup type 5` );\n\t}\n}\nclass LookupType6 extends LookupType {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tconsole.log( `lookup type 6` );\n\t}\n}\nclass LookupType7 extends LookupType {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tconsole.log( `lookup type 7` );\n\t}\n}\nclass LookupType8 extends LookupType {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tconsole.log( `lookup type 8` );\n\t}\n}\nclass LookupType9 extends LookupType {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tconsole.log( `lookup type 9` );\n\t}\n}\nvar GPOStables = {\n\tbuildSubtable: function ( type, p ) {\n\t\tconst subtable = new [\n\t\t\tundefined,\n\t\t\tLookupType1,\n\t\t\tLookupType2,\n\t\t\tLookupType3,\n\t\t\tLookupType4,\n\t\t\tLookupType5,\n\t\t\tLookupType6,\n\t\t\tLookupType7,\n\t\t\tLookupType8,\n\t\t\tLookupType9,\n\t\t][ type ]( p );\n\t\tsubtable.type = type;\n\t\treturn subtable;\n\t},\n};\nclass LookupList extends ParsedData {\n\tstatic EMPTY = { lookupCount: 0, lookups: [] };\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tthis.lookupCount = p.uint16;\n\t\tthis.lookups = [ ...new Array( this.lookupCount ) ].map(\n\t\t\t( _ ) => p.Offset16\n\t\t);\n\t}\n}\nclass LookupTable extends ParsedData {\n\tconstructor( p, type ) {\n\t\tsuper( p );\n\t\tthis.ctType = type;\n\t\tthis.lookupType = p.uint16;\n\t\tthis.lookupFlag = p.uint16;\n\t\tthis.subTableCount = p.uint16;\n\t\tthis.subtableOffsets = [ ...new Array( this.subTableCount ) ].map(\n\t\t\t( _ ) => p.Offset16\n\t\t);\n\t\tthis.markFilteringSet = p.uint16;\n\t}\n\tget rightToLeft() {\n\t\treturn this.lookupFlag & ( 1 === 1 );\n\t}\n\tget ignoreBaseGlyphs() {\n\t\treturn this.lookupFlag & ( 2 === 2 );\n\t}\n\tget ignoreLigatures() {\n\t\treturn this.lookupFlag & ( 4 === 4 );\n\t}\n\tget ignoreMarks() {\n\t\treturn this.lookupFlag & ( 8 === 8 );\n\t}\n\tget useMarkFilteringSet() {\n\t\treturn this.lookupFlag & ( 16 === 16 );\n\t}\n\tget markAttachmentType() {\n\t\treturn this.lookupFlag & ( 65280 === 65280 );\n\t}\n\tgetSubTable( index ) {\n\t\tconst builder = this.ctType === `GSUB` ? GSUBtables : GPOStables;\n\t\tthis.parser.currentPosition =\n\t\t\tthis.start + this.subtableOffsets[ index ];\n\t\treturn builder.buildSubtable( this.lookupType, this.parser );\n\t}\n}\nclass CommonLayoutTable extends SimpleTable {\n\tconstructor( dict, dataview, name ) {\n\t\tconst { p: p, tableStart: tableStart } = super( dict, dataview, name );\n\t\tthis.majorVersion = p.uint16;\n\t\tthis.minorVersion = p.uint16;\n\t\tthis.scriptListOffset = p.Offset16;\n\t\tthis.featureListOffset = p.Offset16;\n\t\tthis.lookupListOffset = p.Offset16;\n\t\tif ( this.majorVersion === 1 && this.minorVersion === 1 ) {\n\t\t\tthis.featureVariationsOffset = p.Offset32;\n\t\t}\n\t\tconst no_content = ! (\n\t\t\tthis.scriptListOffset ||\n\t\t\tthis.featureListOffset ||\n\t\t\tthis.lookupListOffset\n\t\t);\n\t\tlazy$1( this, `scriptList`, () => {\n\t\t\tif ( no_content ) return ScriptList.EMPTY;\n\t\t\tp.currentPosition = tableStart + this.scriptListOffset;\n\t\t\treturn new ScriptList( p );\n\t\t} );\n\t\tlazy$1( this, `featureList`, () => {\n\t\t\tif ( no_content ) return FeatureList.EMPTY;\n\t\t\tp.currentPosition = tableStart + this.featureListOffset;\n\t\t\treturn new FeatureList( p );\n\t\t} );\n\t\tlazy$1( this, `lookupList`, () => {\n\t\t\tif ( no_content ) return LookupList.EMPTY;\n\t\t\tp.currentPosition = tableStart + this.lookupListOffset;\n\t\t\treturn new LookupList( p );\n\t\t} );\n\t\tif ( this.featureVariationsOffset ) {\n\t\t\tlazy$1( this, `featureVariations`, () => {\n\t\t\t\tif ( no_content ) return FeatureVariations.EMPTY;\n\t\t\t\tp.currentPosition = tableStart + this.featureVariationsOffset;\n\t\t\t\treturn new FeatureVariations( p );\n\t\t\t} );\n\t\t}\n\t}\n\tgetSupportedScripts() {\n\t\treturn this.scriptList.scriptRecords.map( ( r ) => r.scriptTag );\n\t}\n\tgetScriptTable( scriptTag ) {\n\t\tlet record = this.scriptList.scriptRecords.find(\n\t\t\t( r ) => r.scriptTag === scriptTag\n\t\t);\n\t\tthis.parser.currentPosition =\n\t\t\tthis.scriptList.start + record.scriptOffset;\n\t\tlet table = new ScriptTable( this.parser );\n\t\ttable.scriptTag = scriptTag;\n\t\treturn table;\n\t}\n\tensureScriptTable( arg ) {\n\t\tif ( typeof arg === 'string' ) {\n\t\t\treturn this.getScriptTable( arg );\n\t\t}\n\t\treturn arg;\n\t}\n\tgetSupportedLangSys( scriptTable ) {\n\t\tscriptTable = this.ensureScriptTable( scriptTable );\n\t\tconst hasDefault = scriptTable.defaultLangSys !== 0;\n\t\tconst supported = scriptTable.langSysRecords.map(\n\t\t\t( l ) => l.langSysTag\n\t\t);\n\t\tif ( hasDefault ) supported.unshift( `dflt` );\n\t\treturn supported;\n\t}\n\tgetDefaultLangSysTable( scriptTable ) {\n\t\tscriptTable = this.ensureScriptTable( scriptTable );\n\t\tlet offset = scriptTable.defaultLangSys;\n\t\tif ( offset !== 0 ) {\n\t\t\tthis.parser.currentPosition = scriptTable.start + offset;\n\t\t\tlet table = new LangSysTable( this.parser );\n\t\t\ttable.langSysTag = ``;\n\t\t\ttable.defaultForScript = scriptTable.scriptTag;\n\t\t\treturn table;\n\t\t}\n\t}\n\tgetLangSysTable( scriptTable, langSysTag = `dflt` ) {\n\t\tif ( langSysTag === `dflt` )\n\t\t\treturn this.getDefaultLangSysTable( scriptTable );\n\t\tscriptTable = this.ensureScriptTable( scriptTable );\n\t\tlet record = scriptTable.langSysRecords.find(\n\t\t\t( l ) => l.langSysTag === langSysTag\n\t\t);\n\t\tthis.parser.currentPosition = scriptTable.start + record.langSysOffset;\n\t\tlet table = new LangSysTable( this.parser );\n\t\ttable.langSysTag = langSysTag;\n\t\treturn table;\n\t}\n\tgetFeatures( langSysTable ) {\n\t\treturn langSysTable.featureIndices.map( ( index ) =>\n\t\t\tthis.getFeature( index )\n\t\t);\n\t}\n\tgetFeature( indexOrTag ) {\n\t\tlet record;\n\t\tif ( parseInt( indexOrTag ) == indexOrTag ) {\n\t\t\trecord = this.featureList.featureRecords[ indexOrTag ];\n\t\t} else {\n\t\t\trecord = this.featureList.featureRecords.find(\n\t\t\t\t( f ) => f.featureTag === indexOrTag\n\t\t\t);\n\t\t}\n\t\tif ( ! record ) return;\n\t\tthis.parser.currentPosition =\n\t\t\tthis.featureList.start + record.featureOffset;\n\t\tlet table = new FeatureTable( this.parser );\n\t\ttable.featureTag = record.featureTag;\n\t\treturn table;\n\t}\n\tgetLookups( featureTable ) {\n\t\treturn featureTable.lookupListIndices.map( ( index ) =>\n\t\t\tthis.getLookup( index )\n\t\t);\n\t}\n\tgetLookup( lookupIndex, type ) {\n\t\tlet lookupOffset = this.lookupList.lookups[ lookupIndex ];\n\t\tthis.parser.currentPosition = this.lookupList.start + lookupOffset;\n\t\treturn new LookupTable( this.parser, type );\n\t}\n}\nclass GSUB extends CommonLayoutTable {\n\tconstructor( dict, dataview ) {\n\t\tsuper( dict, dataview, `GSUB` );\n\t}\n\tgetLookup( lookupIndex ) {\n\t\treturn super.getLookup( lookupIndex, `GSUB` );\n\t}\n}\nvar GSUB$1 = Object.freeze( { __proto__: null, GSUB: GSUB } );\nclass GPOS extends CommonLayoutTable {\n\tconstructor( dict, dataview ) {\n\t\tsuper( dict, dataview, `GPOS` );\n\t}\n\tgetLookup( lookupIndex ) {\n\t\treturn super.getLookup( lookupIndex, `GPOS` );\n\t}\n}\nvar GPOS$1 = Object.freeze( { __proto__: null, GPOS: GPOS } );\nclass SVG extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tthis.version = p.uint16;\n\t\tthis.offsetToSVGDocumentList = p.Offset32;\n\t\tp.currentPosition = this.tableStart + this.offsetToSVGDocumentList;\n\t\tthis.documentList = new SVGDocumentList( p );\n\t}\n}\nclass SVGDocumentList extends ParsedData {\n\tconstructor( p ) {\n\t\tsuper( p );\n\t\tthis.numEntries = p.uint16;\n\t\tthis.documentRecords = [ ...new Array( this.numEntries ) ].map(\n\t\t\t( _ ) => new SVGDocumentRecord( p )\n\t\t);\n\t}\n\tgetDocument( documentID ) {\n\t\tlet record = this.documentRecords[ documentID ];\n\t\tif ( ! record ) return '';\n\t\tlet offset = this.start + record.svgDocOffset;\n\t\tthis.parser.currentPosition = offset;\n\t\treturn this.parser.readBytes( record.svgDocLength );\n\t}\n\tgetDocumentForGlyph( glyphID ) {\n\t\tlet id = this.documentRecords.findIndex(\n\t\t\t( d ) => d.startGlyphID <= glyphID && glyphID <= d.endGlyphID\n\t\t);\n\t\tif ( id === -1 ) return '';\n\t\treturn this.getDocument( id );\n\t}\n}\nclass SVGDocumentRecord {\n\tconstructor( p ) {\n\t\tthis.startGlyphID = p.uint16;\n\t\tthis.endGlyphID = p.uint16;\n\t\tthis.svgDocOffset = p.Offset32;\n\t\tthis.svgDocLength = p.uint32;\n\t}\n}\nvar SVG$1 = Object.freeze( { __proto__: null, SVG: SVG } );\nclass fvar extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tthis.majorVersion = p.uint16;\n\t\tthis.minorVersion = p.uint16;\n\t\tthis.axesArrayOffset = p.Offset16;\n\t\tp.uint16;\n\t\tthis.axisCount = p.uint16;\n\t\tthis.axisSize = p.uint16;\n\t\tthis.instanceCount = p.uint16;\n\t\tthis.instanceSize = p.uint16;\n\t\tconst axisStart = this.tableStart + this.axesArrayOffset;\n\t\tlazy$1( this, `axes`, () => {\n\t\t\tp.currentPosition = axisStart;\n\t\t\treturn [ ...new Array( this.axisCount ) ].map(\n\t\t\t\t( _ ) => new VariationAxisRecord( p )\n\t\t\t);\n\t\t} );\n\t\tconst instanceStart = axisStart + this.axisCount * this.axisSize;\n\t\tlazy$1( this, `instances`, () => {\n\t\t\tlet instances = [];\n\t\t\tfor ( let i = 0; i < this.instanceCount; i++ ) {\n\t\t\t\tp.currentPosition = instanceStart + i * this.instanceSize;\n\t\t\t\tinstances.push(\n\t\t\t\t\tnew InstanceRecord( p, this.axisCount, this.instanceSize )\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn instances;\n\t\t} );\n\t}\n\tgetSupportedAxes() {\n\t\treturn this.axes.map( ( a ) => a.tag );\n\t}\n\tgetAxis( name ) {\n\t\treturn this.axes.find( ( a ) => a.tag === name );\n\t}\n}\nclass VariationAxisRecord {\n\tconstructor( p ) {\n\t\tthis.tag = p.tag;\n\t\tthis.minValue = p.fixed;\n\t\tthis.defaultValue = p.fixed;\n\t\tthis.maxValue = p.fixed;\n\t\tthis.flags = p.flags( 16 );\n\t\tthis.axisNameID = p.uint16;\n\t}\n}\nclass InstanceRecord {\n\tconstructor( p, axisCount, size ) {\n\t\tlet start = p.currentPosition;\n\t\tthis.subfamilyNameID = p.uint16;\n\t\tp.uint16;\n\t\tthis.coordinates = [ ...new Array( axisCount ) ].map(\n\t\t\t( _ ) => p.fixed\n\t\t);\n\t\tif ( p.currentPosition - start < size ) {\n\t\t\tthis.postScriptNameID = p.uint16;\n\t\t}\n\t}\n}\nvar fvar$1 = Object.freeze( { __proto__: null, fvar: fvar } );\nclass cvt extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tconst n = dict.length / 2;\n\t\tlazy$1( this, `items`, () =>\n\t\t\t[ ...new Array( n ) ].map( ( _ ) => p.fword )\n\t\t);\n\t}\n}\nvar cvt$1 = Object.freeze( { __proto__: null, cvt: cvt } );\nclass fpgm extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tlazy$1( this, `instructions`, () =>\n\t\t\t[ ...new Array( dict.length ) ].map( ( _ ) => p.uint8 )\n\t\t);\n\t}\n}\nvar fpgm$1 = Object.freeze( { __proto__: null, fpgm: fpgm } );\nclass gasp extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tthis.version = p.uint16;\n\t\tthis.numRanges = p.uint16;\n\t\tconst getter = () =>\n\t\t\t[ ...new Array( this.numRanges ) ].map(\n\t\t\t\t( _ ) => new GASPRange( p )\n\t\t\t);\n\t\tlazy$1( this, `gaspRanges`, getter );\n\t}\n}\nclass GASPRange {\n\tconstructor( p ) {\n\t\tthis.rangeMaxPPEM = p.uint16;\n\t\tthis.rangeGaspBehavior = p.uint16;\n\t}\n}\nvar gasp$1 = Object.freeze( { __proto__: null, gasp: gasp } );\nclass glyf extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tsuper( dict, dataview );\n\t}\n\tgetGlyphData( offset, length ) {\n\t\tthis.parser.currentPosition = this.tableStart + offset;\n\t\treturn this.parser.readBytes( length );\n\t}\n}\nvar glyf$1 = Object.freeze( { __proto__: null, glyf: glyf } );\nclass loca extends SimpleTable {\n\tconstructor( dict, dataview, tables ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tconst n = tables.maxp.numGlyphs + 1;\n\t\tif ( tables.head.indexToLocFormat === 0 ) {\n\t\t\tthis.x2 = true;\n\t\t\tlazy$1( this, `offsets`, () =>\n\t\t\t\t[ ...new Array( n ) ].map( ( _ ) => p.Offset16 )\n\t\t\t);\n\t\t} else {\n\t\t\tlazy$1( this, `offsets`, () =>\n\t\t\t\t[ ...new Array( n ) ].map( ( _ ) => p.Offset32 )\n\t\t\t);\n\t\t}\n\t}\n\tgetGlyphDataOffsetAndLength( glyphID ) {\n\t\tlet offset = this.offsets[ glyphID ] * this.x2 ? 2 : 1;\n\t\tlet nextOffset = this.offsets[ glyphID + 1 ] * this.x2 ? 2 : 1;\n\t\treturn { offset: offset, length: nextOffset - offset };\n\t}\n}\nvar loca$1 = Object.freeze( { __proto__: null, loca: loca } );\nclass prep extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tlazy$1( this, `instructions`, () =>\n\t\t\t[ ...new Array( dict.length ) ].map( ( _ ) => p.uint8 )\n\t\t);\n\t}\n}\nvar prep$1 = Object.freeze( { __proto__: null, prep: prep } );\nclass CFF extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tlazy$1( this, `data`, () => p.readBytes() );\n\t}\n}\nvar CFF$1 = Object.freeze( { __proto__: null, CFF: CFF } );\nclass CFF2 extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tlazy$1( this, `data`, () => p.readBytes() );\n\t}\n}\nvar CFF2$1 = Object.freeze( { __proto__: null, CFF2: CFF2 } );\nclass VORG extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tthis.majorVersion = p.uint16;\n\t\tthis.minorVersion = p.uint16;\n\t\tthis.defaultVertOriginY = p.int16;\n\t\tthis.numVertOriginYMetrics = p.uint16;\n\t\tlazy$1( this, `vertORiginYMetrics`, () =>\n\t\t\t[ ...new Array( this.numVertOriginYMetrics ) ].map(\n\t\t\t\t( _ ) => new VertOriginYMetric( p )\n\t\t\t)\n\t\t);\n\t}\n}\nclass VertOriginYMetric {\n\tconstructor( p ) {\n\t\tthis.glyphIndex = p.uint16;\n\t\tthis.vertOriginY = p.int16;\n\t}\n}\nvar VORG$1 = Object.freeze( { __proto__: null, VORG: VORG } );\nclass BitmapSize {\n\tconstructor( p ) {\n\t\tthis.indexSubTableArrayOffset = p.Offset32;\n\t\tthis.indexTablesSize = p.uint32;\n\t\tthis.numberofIndexSubTables = p.uint32;\n\t\tthis.colorRef = p.uint32;\n\t\tthis.hori = new SbitLineMetrics( p );\n\t\tthis.vert = new SbitLineMetrics( p );\n\t\tthis.startGlyphIndex = p.uint16;\n\t\tthis.endGlyphIndex = p.uint16;\n\t\tthis.ppemX = p.uint8;\n\t\tthis.ppemY = p.uint8;\n\t\tthis.bitDepth = p.uint8;\n\t\tthis.flags = p.int8;\n\t}\n}\nclass BitmapScale {\n\tconstructor( p ) {\n\t\tthis.hori = new SbitLineMetrics( p );\n\t\tthis.vert = new SbitLineMetrics( p );\n\t\tthis.ppemX = p.uint8;\n\t\tthis.ppemY = p.uint8;\n\t\tthis.substitutePpemX = p.uint8;\n\t\tthis.substitutePpemY = p.uint8;\n\t}\n}\nclass SbitLineMetrics {\n\tconstructor( p ) {\n\t\tthis.ascender = p.int8;\n\t\tthis.descender = p.int8;\n\t\tthis.widthMax = p.uint8;\n\t\tthis.caretSlopeNumerator = p.int8;\n\t\tthis.caretSlopeDenominator = p.int8;\n\t\tthis.caretOffset = p.int8;\n\t\tthis.minOriginSB = p.int8;\n\t\tthis.minAdvanceSB = p.int8;\n\t\tthis.maxBeforeBL = p.int8;\n\t\tthis.minAfterBL = p.int8;\n\t\tthis.pad1 = p.int8;\n\t\tthis.pad2 = p.int8;\n\t}\n}\nclass EBLC extends SimpleTable {\n\tconstructor( dict, dataview, name ) {\n\t\tconst { p: p } = super( dict, dataview, name );\n\t\tthis.majorVersion = p.uint16;\n\t\tthis.minorVersion = p.uint16;\n\t\tthis.numSizes = p.uint32;\n\t\tlazy$1( this, `bitMapSizes`, () =>\n\t\t\t[ ...new Array( this.numSizes ) ].map(\n\t\t\t\t( _ ) => new BitmapSize( p )\n\t\t\t)\n\t\t);\n\t}\n}\nvar EBLC$1 = Object.freeze( { __proto__: null, EBLC: EBLC } );\nclass EBDT extends SimpleTable {\n\tconstructor( dict, dataview, name ) {\n\t\tconst { p: p } = super( dict, dataview, name );\n\t\tthis.majorVersion = p.uint16;\n\t\tthis.minorVersion = p.uint16;\n\t}\n}\nvar EBDT$1 = Object.freeze( { __proto__: null, EBDT: EBDT } );\nclass EBSC extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tthis.majorVersion = p.uint16;\n\t\tthis.minorVersion = p.uint16;\n\t\tthis.numSizes = p.uint32;\n\t\tlazy$1( this, `bitmapScales`, () =>\n\t\t\t[ ...new Array( this.numSizes ) ].map(\n\t\t\t\t( _ ) => new BitmapScale( p )\n\t\t\t)\n\t\t);\n\t}\n}\nvar EBSC$1 = Object.freeze( { __proto__: null, EBSC: EBSC } );\nclass CBLC extends EBLC {\n\tconstructor( dict, dataview ) {\n\t\tsuper( dict, dataview, `CBLC` );\n\t}\n}\nvar CBLC$1 = Object.freeze( { __proto__: null, CBLC: CBLC } );\nclass CBDT extends EBDT {\n\tconstructor( dict, dataview ) {\n\t\tsuper( dict, dataview, `CBDT` );\n\t}\n}\nvar CBDT$1 = Object.freeze( { __proto__: null, CBDT: CBDT } );\nclass sbix extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tthis.version = p.uint16;\n\t\tthis.flags = p.flags( 16 );\n\t\tthis.numStrikes = p.uint32;\n\t\tlazy$1( this, `strikeOffsets`, () =>\n\t\t\t[ ...new Array( this.numStrikes ) ].map( ( _ ) => p.Offset32 )\n\t\t);\n\t}\n}\nvar sbix$1 = Object.freeze( { __proto__: null, sbix: sbix } );\nclass COLR extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tthis.version = p.uint16;\n\t\tthis.numBaseGlyphRecords = p.uint16;\n\t\tthis.baseGlyphRecordsOffset = p.Offset32;\n\t\tthis.layerRecordsOffset = p.Offset32;\n\t\tthis.numLayerRecords = p.uint16;\n\t}\n\tgetBaseGlyphRecord( glyphID ) {\n\t\tlet start = this.tableStart + this.baseGlyphRecordsOffset;\n\t\tthis.parser.currentPosition = start;\n\t\tlet first = new BaseGlyphRecord( this.parser );\n\t\tlet firstID = first.gID;\n\t\tlet end = this.tableStart + this.layerRecordsOffset - 6;\n\t\tthis.parser.currentPosition = end;\n\t\tlet last = new BaseGlyphRecord( this.parser );\n\t\tlet lastID = last.gID;\n\t\tif ( firstID === glyphID ) return first;\n\t\tif ( lastID === glyphID ) return last;\n\t\twhile ( true ) {\n\t\t\tif ( start === end ) break;\n\t\t\tlet mid = start + ( end - start ) / 12;\n\t\t\tthis.parser.currentPosition = mid;\n\t\t\tlet middle = new BaseGlyphRecord( this.parser );\n\t\t\tlet midID = middle.gID;\n\t\t\tif ( midID === glyphID ) return middle;\n\t\t\telse if ( midID > glyphID ) {\n\t\t\t\tend = mid;\n\t\t\t} else if ( midID < glyphID ) {\n\t\t\t\tstart = mid;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\tgetLayers( glyphID ) {\n\t\tlet record = this.getBaseGlyphRecord( glyphID );\n\t\tthis.parser.currentPosition =\n\t\t\tthis.tableStart +\n\t\t\tthis.layerRecordsOffset +\n\t\t\t4 * record.firstLayerIndex;\n\t\treturn [ ...new Array( record.numLayers ) ].map(\n\t\t\t( _ ) => new LayerRecord( p )\n\t\t);\n\t}\n}\nclass BaseGlyphRecord {\n\tconstructor( p ) {\n\t\tthis.gID = p.uint16;\n\t\tthis.firstLayerIndex = p.uint16;\n\t\tthis.numLayers = p.uint16;\n\t}\n}\nclass LayerRecord {\n\tconstructor( p ) {\n\t\tthis.gID = p.uint16;\n\t\tthis.paletteIndex = p.uint16;\n\t}\n}\nvar COLR$1 = Object.freeze( { __proto__: null, COLR: COLR } );\nclass CPAL extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tthis.version = p.uint16;\n\t\tthis.numPaletteEntries = p.uint16;\n\t\tconst numPalettes = ( this.numPalettes = p.uint16 );\n\t\tthis.numColorRecords = p.uint16;\n\t\tthis.offsetFirstColorRecord = p.Offset32;\n\t\tthis.colorRecordIndices = [ ...new Array( this.numPalettes ) ].map(\n\t\t\t( _ ) => p.uint16\n\t\t);\n\t\tlazy$1( this, `colorRecords`, () => {\n\t\t\tp.currentPosition = this.tableStart + this.offsetFirstColorRecord;\n\t\t\treturn [ ...new Array( this.numColorRecords ) ].map(\n\t\t\t\t( _ ) => new ColorRecord( p )\n\t\t\t);\n\t\t} );\n\t\tif ( this.version === 1 ) {\n\t\t\tthis.offsetPaletteTypeArray = p.Offset32;\n\t\t\tthis.offsetPaletteLabelArray = p.Offset32;\n\t\t\tthis.offsetPaletteEntryLabelArray = p.Offset32;\n\t\t\tlazy$1( this, `paletteTypeArray`, () => {\n\t\t\t\tp.currentPosition =\n\t\t\t\t\tthis.tableStart + this.offsetPaletteTypeArray;\n\t\t\t\treturn new PaletteTypeArray( p, numPalettes );\n\t\t\t} );\n\t\t\tlazy$1( this, `paletteLabelArray`, () => {\n\t\t\t\tp.currentPosition =\n\t\t\t\t\tthis.tableStart + this.offsetPaletteLabelArray;\n\t\t\t\treturn new PaletteLabelsArray( p, numPalettes );\n\t\t\t} );\n\t\t\tlazy$1( this, `paletteEntryLabelArray`, () => {\n\t\t\t\tp.currentPosition =\n\t\t\t\t\tthis.tableStart + this.offsetPaletteEntryLabelArray;\n\t\t\t\treturn new PaletteEntryLabelArray( p, numPalettes );\n\t\t\t} );\n\t\t}\n\t}\n}\nclass ColorRecord {\n\tconstructor( p ) {\n\t\tthis.blue = p.uint8;\n\t\tthis.green = p.uint8;\n\t\tthis.red = p.uint8;\n\t\tthis.alpha = p.uint8;\n\t}\n}\nclass PaletteTypeArray {\n\tconstructor( p, numPalettes ) {\n\t\tthis.paletteTypes = [ ...new Array( numPalettes ) ].map(\n\t\t\t( _ ) => p.uint32\n\t\t);\n\t}\n}\nclass PaletteLabelsArray {\n\tconstructor( p, numPalettes ) {\n\t\tthis.paletteLabels = [ ...new Array( numPalettes ) ].map(\n\t\t\t( _ ) => p.uint16\n\t\t);\n\t}\n}\nclass PaletteEntryLabelArray {\n\tconstructor( p, numPalettes ) {\n\t\tthis.paletteEntryLabels = [ ...new Array( numPalettes ) ].map(\n\t\t\t( _ ) => p.uint16\n\t\t);\n\t}\n}\nvar CPAL$1 = Object.freeze( { __proto__: null, CPAL: CPAL } );\nclass DSIG extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tthis.version = p.uint32;\n\t\tthis.numSignatures = p.uint16;\n\t\tthis.flags = p.uint16;\n\t\tthis.signatureRecords = [ ...new Array( this.numSignatures ) ].map(\n\t\t\t( _ ) => new SignatureRecord( p )\n\t\t);\n\t}\n\tgetData( signatureID ) {\n\t\tconst record = this.signatureRecords[ signatureID ];\n\t\tthis.parser.currentPosition = this.tableStart + record.offset;\n\t\treturn new SignatureBlockFormat1( this.parser );\n\t}\n}\nclass SignatureRecord {\n\tconstructor( p ) {\n\t\tthis.format = p.uint32;\n\t\tthis.length = p.uint32;\n\t\tthis.offset = p.Offset32;\n\t}\n}\nclass SignatureBlockFormat1 {\n\tconstructor( p ) {\n\t\tp.uint16;\n\t\tp.uint16;\n\t\tthis.signatureLength = p.uint32;\n\t\tthis.signature = p.readBytes( this.signatureLength );\n\t}\n}\nvar DSIG$1 = Object.freeze( { __proto__: null, DSIG: DSIG } );\nclass hdmx extends SimpleTable {\n\tconstructor( dict, dataview, tables ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tconst numGlyphs = tables.hmtx.numGlyphs;\n\t\tthis.version = p.uint16;\n\t\tthis.numRecords = p.int16;\n\t\tthis.sizeDeviceRecord = p.int32;\n\t\tthis.records = [ ...new Array( numRecords ) ].map(\n\t\t\t( _ ) => new DeviceRecord( p, numGlyphs )\n\t\t);\n\t}\n}\nclass DeviceRecord {\n\tconstructor( p, numGlyphs ) {\n\t\tthis.pixelSize = p.uint8;\n\t\tthis.maxWidth = p.uint8;\n\t\tthis.widths = p.readBytes( numGlyphs );\n\t}\n}\nvar hdmx$1 = Object.freeze( { __proto__: null, hdmx: hdmx } );\nclass kern extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tthis.version = p.uint16;\n\t\tthis.nTables = p.uint16;\n\t\tlazy$1( this, `tables`, () => {\n\t\t\tlet offset = this.tableStart + 4;\n\t\t\tconst tables = [];\n\t\t\tfor ( let i = 0; i < this.nTables; i++ ) {\n\t\t\t\tp.currentPosition = offset;\n\t\t\t\tlet subtable = new KernSubTable( p );\n\t\t\t\ttables.push( subtable );\n\t\t\t\toffset += subtable;\n\t\t\t}\n\t\t\treturn tables;\n\t\t} );\n\t}\n}\nclass KernSubTable {\n\tconstructor( p ) {\n\t\tthis.version = p.uint16;\n\t\tthis.length = p.uint16;\n\t\tthis.coverage = p.flags( 8 );\n\t\tthis.format = p.uint8;\n\t\tif ( this.format === 0 ) {\n\t\t\tthis.nPairs = p.uint16;\n\t\t\tthis.searchRange = p.uint16;\n\t\t\tthis.entrySelector = p.uint16;\n\t\t\tthis.rangeShift = p.uint16;\n\t\t\tlazy$1( this, `pairs`, () =>\n\t\t\t\t[ ...new Array( this.nPairs ) ].map( ( _ ) => new Pair( p ) )\n\t\t\t);\n\t\t}\n\t\tif ( this.format === 2 ) {\n\t\t\tconsole.warn(\n\t\t\t\t`Kern subtable format 2 is not supported: this parser currently only parses universal table data.`\n\t\t\t);\n\t\t}\n\t}\n\tget horizontal() {\n\t\treturn this.coverage[ 0 ];\n\t}\n\tget minimum() {\n\t\treturn this.coverage[ 1 ];\n\t}\n\tget crossstream() {\n\t\treturn this.coverage[ 2 ];\n\t}\n\tget override() {\n\t\treturn this.coverage[ 3 ];\n\t}\n}\nclass Pair {\n\tconstructor( p ) {\n\t\tthis.left = p.uint16;\n\t\tthis.right = p.uint16;\n\t\tthis.value = p.fword;\n\t}\n}\nvar kern$1 = Object.freeze( { __proto__: null, kern: kern } );\nclass LTSH extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tthis.version = p.uint16;\n\t\tthis.numGlyphs = p.uint16;\n\t\tthis.yPels = p.readBytes( this.numGlyphs );\n\t}\n}\nvar LTSH$1 = Object.freeze( { __proto__: null, LTSH: LTSH } );\nclass MERG extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tthis.version = p.uint16;\n\t\tthis.mergeClassCount = p.uint16;\n\t\tthis.mergeDataOffset = p.Offset16;\n\t\tthis.classDefCount = p.uint16;\n\t\tthis.offsetToClassDefOffsets = p.Offset16;\n\t\tlazy$1( this, `mergeEntryMatrix`, () =>\n\t\t\t[ ...new Array( this.mergeClassCount ) ].map( ( _ ) =>\n\t\t\t\tp.readBytes( this.mergeClassCount )\n\t\t\t)\n\t\t);\n\t\tconsole.warn( `Full MERG parsing is currently not supported.` );\n\t\tconsole.warn(\n\t\t\t`If you need this table parsed, please file an issue, or better yet, a PR.`\n\t\t);\n\t}\n}\nvar MERG$1 = Object.freeze( { __proto__: null, MERG: MERG } );\nclass meta extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tthis.version = p.uint32;\n\t\tthis.flags = p.uint32;\n\t\tp.uint32;\n\t\tthis.dataMapsCount = p.uint32;\n\t\tthis.dataMaps = [ ...new Array( this.dataMapsCount ) ].map(\n\t\t\t( _ ) => new DataMap( this.tableStart, p )\n\t\t);\n\t}\n}\nclass DataMap {\n\tconstructor( tableStart, p ) {\n\t\tthis.tableStart = tableStart;\n\t\tthis.parser = p;\n\t\tthis.tag = p.tag;\n\t\tthis.dataOffset = p.Offset32;\n\t\tthis.dataLength = p.uint32;\n\t}\n\tgetData() {\n\t\tthis.parser.currentField = this.tableStart + this.dataOffset;\n\t\treturn this.parser.readBytes( this.dataLength );\n\t}\n}\nvar meta$1 = Object.freeze( { __proto__: null, meta: meta } );\nclass PCLT extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tsuper( dict, dataview );\n\t\tconsole.warn(\n\t\t\t`This font uses a PCLT table, which is currently not supported by this parser.`\n\t\t);\n\t\tconsole.warn(\n\t\t\t`If you need this table parsed, please file an issue, or better yet, a PR.`\n\t\t);\n\t}\n}\nvar PCLT$1 = Object.freeze( { __proto__: null, PCLT: PCLT } );\nclass VDMX extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tthis.version = p.uint16;\n\t\tthis.numRecs = p.uint16;\n\t\tthis.numRatios = p.uint16;\n\t\tthis.ratRanges = [ ...new Array( this.numRatios ) ].map(\n\t\t\t( _ ) => new RatioRange( p )\n\t\t);\n\t\tthis.offsets = [ ...new Array( this.numRatios ) ].map(\n\t\t\t( _ ) => p.Offset16\n\t\t);\n\t\tthis.VDMXGroups = [ ...new Array( this.numRecs ) ].map(\n\t\t\t( _ ) => new VDMXGroup( p )\n\t\t);\n\t}\n}\nclass RatioRange {\n\tconstructor( p ) {\n\t\tthis.bCharSet = p.uint8;\n\t\tthis.xRatio = p.uint8;\n\t\tthis.yStartRatio = p.uint8;\n\t\tthis.yEndRatio = p.uint8;\n\t}\n}\nclass VDMXGroup {\n\tconstructor( p ) {\n\t\tthis.recs = p.uint16;\n\t\tthis.startsz = p.uint8;\n\t\tthis.endsz = p.uint8;\n\t\tthis.records = [ ...new Array( this.recs ) ].map(\n\t\t\t( _ ) => new vTable( p )\n\t\t);\n\t}\n}\nclass vTable {\n\tconstructor( p ) {\n\t\tthis.yPelHeight = p.uint16;\n\t\tthis.yMax = p.int16;\n\t\tthis.yMin = p.int16;\n\t}\n}\nvar VDMX$1 = Object.freeze( { __proto__: null, VDMX: VDMX } );\nclass vhea extends SimpleTable {\n\tconstructor( dict, dataview ) {\n\t\tconst { p: p } = super( dict, dataview );\n\t\tthis.version = p.fixed;\n\t\tthis.ascent = this.vertTypoAscender = p.int16;\n\t\tthis.descent = this.vertTypoDescender = p.int16;\n\t\tthis.lineGap = this.vertTypoLineGap = p.int16;\n\t\tthis.advanceHeightMax = p.int16;\n\t\tthis.minTopSideBearing = p.int16;\n\t\tthis.minBottomSideBearing = p.int16;\n\t\tthis.yMaxExtent = p.int16;\n\t\tthis.caretSlopeRise = p.int16;\n\t\tthis.caretSlopeRun = p.int16;\n\t\tthis.caretOffset = p.int16;\n\t\tthis.reserved = p.int16;\n\t\tthis.reserved = p.int16;\n\t\tthis.reserved = p.int16;\n\t\tthis.reserved = p.int16;\n\t\tthis.metricDataFormat = p.int16;\n\t\tthis.numOfLongVerMetrics = p.uint16;\n\t\tp.verifyLength();\n\t}\n}\nvar vhea$1 = Object.freeze( { __proto__: null, vhea: vhea } );\nclass vmtx extends SimpleTable {\n\tconstructor( dict, dataview, tables ) {\n\t\tsuper( dict, dataview );\n\t\tconst numOfLongVerMetrics = tables.vhea.numOfLongVerMetrics;\n\t\tconst numGlyphs = tables.maxp.numGlyphs;\n\t\tconst metricsStart = p.currentPosition;\n\t\tlazy( this, `vMetrics`, () => {\n\t\t\tp.currentPosition = metricsStart;\n\t\t\treturn [ ...new Array( numOfLongVerMetrics ) ].map(\n\t\t\t\t( _ ) => new LongVertMetric( p.uint16, p.int16 )\n\t\t\t);\n\t\t} );\n\t\tif ( numOfLongVerMetrics < numGlyphs ) {\n\t\t\tconst tsbStart = metricsStart + numOfLongVerMetrics * 4;\n\t\t\tlazy( this, `topSideBearings`, () => {\n\t\t\t\tp.currentPosition = tsbStart;\n\t\t\t\treturn [ ...new Array( numGlyphs - numOfLongVerMetrics ) ].map(\n\t\t\t\t\t( _ ) => p.int16\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\t}\n}\nclass LongVertMetric {\n\tconstructor( h, b ) {\n\t\tthis.advanceHeight = h;\n\t\tthis.topSideBearing = b;\n\t}\n}\nvar vmtx$1 = Object.freeze( { __proto__: null, vmtx: vmtx } );\nexport { Font };\n/* eslint-enable */\n","/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tButton,\n\tDropZone,\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tFormFileUpload,\n\tNotice,\n\tFlexItem,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { useContext, useState, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { ALLOWED_FILE_EXTENSIONS } from './utils/constants';\nimport { FontLibraryContext } from './context';\nimport { Font } from '../../../../lib/lib-font.browser';\nimport makeFamiliesFromFaces from './utils/make-families-from-faces';\nimport { loadFontFaceInBrowser } from './utils';\nimport { getNoticeFromInstallResponse } from './utils/get-notice-from-response';\nimport { unlock } from '../../../lock-unlock';\n\nconst { ProgressBar } = unlock( componentsPrivateApis );\n\nfunction LocalFonts() {\n\tconst { installFont } = useContext( FontLibraryContext );\n\tconst [ notice, setNotice ] = useState( null );\n\tconst [ isUploading, setIsUploading ] = useState( false );\n\tconst supportedFormats =\n\t\tALLOWED_FILE_EXTENSIONS.slice( 0, -1 )\n\t\t\t.map( ( extension ) => `.${ extension }` )\n\t\t\t.join( ', ' ) +\n\t\t` ${ __( 'and' ) } .${ ALLOWED_FILE_EXTENSIONS.slice( -1 ) }`;\n\n\tconst handleDropZone = ( files ) => {\n\t\thandleFilesUpload( files );\n\t};\n\tconst onFilesUpload = ( event ) => {\n\t\thandleFilesUpload( event.target.files );\n\t};\n\n\t// Reset notice after 5 seconds\n\tuseEffect( () => {\n\t\tif ( notice ) {\n\t\t\tconst timeout = setTimeout( () => {\n\t\t\t\tsetNotice( null );\n\t\t\t}, 5000 );\n\t\t\treturn () => clearTimeout( timeout );\n\t\t}\n\t}, [ notice ] );\n\n\t/**\n\t * Filters the selected files to only allow the ones with the allowed extensions\n\t *\n\t * @param {Array} files The files to be filtered\n\t * @return {void}\n\t */\n\tconst handleFilesUpload = ( files ) => {\n\t\tsetNotice( null );\n\t\tsetIsUploading( true );\n\t\tconst uniqueFilenames = new Set();\n\t\tconst selectedFiles = [ ...files ];\n\t\tconst allowedFiles = selectedFiles.filter( ( file ) => {\n\t\t\tif ( uniqueFilenames.has( file.name ) ) {\n\t\t\t\treturn false; // Discard duplicates\n\t\t\t}\n\t\t\t// Eliminates files that are not allowed\n\t\t\tconst fileExtension = file.name.split( '.' ).pop().toLowerCase();\n\t\t\tif ( ALLOWED_FILE_EXTENSIONS.includes( fileExtension ) ) {\n\t\t\t\tuniqueFilenames.add( file.name );\n\t\t\t\treturn true; // Keep file if the extension is allowed\n\t\t\t}\n\t\t\treturn false; // Discard file extension not allowed\n\t\t} );\n\t\tif ( allowedFiles.length > 0 ) {\n\t\t\tloadFiles( allowedFiles );\n\t\t}\n\t};\n\n\t/**\n\t * Loads the selected files and reads the font metadata\n\t *\n\t * @param {Array} files The files to be loaded\n\t * @return {void}\n\t */\n\tconst loadFiles = async ( files ) => {\n\t\tconst fontFacesLoaded = await Promise.all(\n\t\t\tfiles.map( async ( fontFile ) => {\n\t\t\t\tconst fontFaceData = await getFontFaceMetadata( fontFile );\n\t\t\t\tawait loadFontFaceInBrowser(\n\t\t\t\t\tfontFaceData,\n\t\t\t\t\tfontFaceData.file,\n\t\t\t\t\t'all'\n\t\t\t\t);\n\t\t\t\treturn fontFaceData;\n\t\t\t} )\n\t\t);\n\t\tawait handleInstall( fontFacesLoaded );\n\t};\n\n\t// Create a function to read the file as array buffer\n\tasync function readFileAsArrayBuffer( file ) {\n\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\tconst reader = new window.FileReader();\n\t\t\treader.readAsArrayBuffer( file );\n\t\t\treader.onload = () => resolve( reader.result );\n\t\t\treader.onerror = reject;\n\t\t} );\n\t}\n\n\tconst getFontFaceMetadata = async ( fontFile ) => {\n\t\tconst buffer = await readFileAsArrayBuffer( fontFile );\n\t\tconst fontObj = new Font( 'Uploaded Font' );\n\t\tfontObj.fromDataBuffer( buffer, fontFile.name );\n\t\t// Assuming that fromDataBuffer triggers onload event and returning a Promise\n\t\tconst onloadEvent = await new Promise(\n\t\t\t( resolve ) => ( fontObj.onload = resolve )\n\t\t);\n\t\tconst font = onloadEvent.detail.font;\n\t\tconst { name } = font.opentype.tables;\n\t\tconst fontName = name.get( 16 ) || name.get( 1 );\n\t\tconst isItalic = name.get( 2 ).toLowerCase().includes( 'italic' );\n\t\tconst fontWeight =\n\t\t\tfont.opentype.tables[ 'OS/2' ].usWeightClass || 'normal';\n\t\tconst isVariable = !! font.opentype.tables.fvar;\n\t\tconst weightAxis =\n\t\t\tisVariable &&\n\t\t\tfont.opentype.tables.fvar.axes.find(\n\t\t\t\t( { tag } ) => tag === 'wght'\n\t\t\t);\n\t\tconst weightRange = weightAxis\n\t\t\t? `${ weightAxis.minValue } ${ weightAxis.maxValue }`\n\t\t\t: null;\n\t\treturn {\n\t\t\tfile: fontFile,\n\t\t\tfontFamily: fontName,\n\t\t\tfontStyle: isItalic ? 'italic' : 'normal',\n\t\t\tfontWeight: weightRange || fontWeight,\n\t\t};\n\t};\n\n\t/**\n\t * Creates the font family definition and sends it to the server\n\t *\n\t * @param {Array} fontFaces The font faces to be installed\n\t * @return {void}\n\t */\n\tconst handleInstall = async ( fontFaces ) => {\n\t\tconst fontFamilies = makeFamiliesFromFaces( fontFaces );\n\n\t\tif ( fontFamilies.length > 1 ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: __(\n\t\t\t\t\t'Variants from only one font family can be uploaded at a time.'\n\t\t\t\t),\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\tconst response = await installFont( fontFamilies[ 0 ] );\n\t\tconst installNotice = getNoticeFromInstallResponse( response );\n\t\tsetNotice( installNotice );\n\t\tsetIsUploading( false );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<Spacer margin={ 16 } />\n\t\t\t<DropZone onFilesDrop={ handleDropZone } />\n\t\t\t<VStack className=\"font-library-modal__local-fonts\">\n\t\t\t\t{ ! isUploading && (\n\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\taccept={ ALLOWED_FILE_EXTENSIONS.map(\n\t\t\t\t\t\t\t( ext ) => `.${ ext }`\n\t\t\t\t\t\t).join( ',' ) }\n\t\t\t\t\t\tmultiple={ true }\n\t\t\t\t\t\tonChange={ onFilesUpload }\n\t\t\t\t\t\trender={ ( { openFileDialog } ) => (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName=\"font-library-modal__upload-area\"\n\t\t\t\t\t\t\t\tonClick={ openFileDialog }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span>{ __( 'Upload font' ) }</span>\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isUploading && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<div className=\"font-library-modal__upload-area\">\n\t\t\t\t\t\t\t<ProgressBar />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t<Text className=\"font-library-modal__upload-area__text\">\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t/* translators: %s: supported font formats: ex: .ttf, .woff and .woff2 */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Uploaded fonts appear in your library and can be used in your theme. Supported formats: %s.'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tsupportedFormats\n\t\t\t\t\t) }\n\t\t\t\t</Text>\n\t\t\t\t{ ! isUploading && notice && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\tclassName=\"font-library-modal__upload-area__notice\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t</Notice>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t</VStack>\n\t\t</>\n\t);\n}\n\nexport default LocalFonts;\n","export default function makeFamiliesFromFaces( fontFaces ) {\n\tconst fontFamiliesObject = fontFaces.reduce( ( acc, item ) => {\n\t\tif ( ! acc[ item.fontFamily ] ) {\n\t\t\tacc[ item.fontFamily ] = {\n\t\t\t\tname: item.fontFamily,\n\t\t\t\tfontFamily: item.fontFamily,\n\t\t\t\tslug: item.fontFamily.replace( /\\s+/g, '-' ).toLowerCase(),\n\t\t\t\tfontFace: [],\n\t\t\t};\n\t\t}\n\t\tacc[ item.fontFamily ].fontFace.push( item );\n\t\treturn acc;\n\t}, {} );\n\treturn Object.values( fontFamiliesObject );\n}\n","/**\n * WordPress dependencies\n */\nimport { __experimentalSpacer as Spacer } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport LocalFonts from './local-fonts';\n\nfunction UploadFonts() {\n\treturn (\n\t\t<>\n\t\t\t<Spacer margin={ 8 } />\n\t\t\t<LocalFonts />\n\t\t</>\n\t);\n}\n\nexport default UploadFonts;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tModal,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport InstalledFonts from './installed-fonts';\nimport FontCollection from './font-collection';\nimport UploadFonts from './upload-fonts';\nimport { FontLibraryContext } from './context';\nimport { unlock } from '../../../lock-unlock';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nconst DEFAULT_TABS = [\n\t{\n\t\tid: 'installed-fonts',\n\t\ttitle: __( 'Library' ),\n\t},\n\t{\n\t\tid: 'upload-fonts',\n\t\ttitle: __( 'Upload' ),\n\t},\n];\n\nconst tabsFromCollections = ( collections ) =>\n\tcollections.map( ( { id, name } ) => ( {\n\t\tid,\n\t\ttitle:\n\t\t\tcollections.length === 1 && id === 'default-font-collection'\n\t\t\t\t? __( 'Install Fonts' )\n\t\t\t\t: name,\n\t} ) );\n\nfunction FontLibraryModal( {\n\tonRequestClose,\n\tinitialTabId = 'installed-fonts',\n} ) {\n\tconst { collections } = useContext( FontLibraryContext );\n\n\tconst tabs = [\n\t\t...DEFAULT_TABS,\n\t\t...tabsFromCollections( collections || [] ),\n\t];\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Fonts' ) }\n\t\t\tonRequestClose={ onRequestClose }\n\t\t\tisFullScreen\n\t\t\tclassName=\"font-library-modal\"\n\t\t>\n\t\t\t<div className=\"font-library-modal__tabs\">\n\t\t\t\t<Tabs initialTabId={ initialTabId }>\n\t\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t\t{ tabs.map( ( { id, title } ) => (\n\t\t\t\t\t\t\t<Tabs.Tab key={ id } tabId={ id }>\n\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</Tabs.TabList>\n\t\t\t\t\t{ tabs.map( ( { id } ) => {\n\t\t\t\t\t\tlet contents;\n\t\t\t\t\t\tswitch ( id ) {\n\t\t\t\t\t\t\tcase 'upload-fonts':\n\t\t\t\t\t\t\t\tcontents = <UploadFonts />;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'installed-fonts':\n\t\t\t\t\t\t\t\tcontents = <InstalledFonts />;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tcontents = <FontCollection id={ id } />;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\t\t\ttabId={ id }\n\t\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ contents }\n\t\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</Tabs>\n\t\t\t</div>\n\t\t</Modal>\n\t);\n}\n\nexport default FontLibraryModal;\n","/**\n * WordPress dependencies\n */\nimport { _n } from '@wordpress/i18n';\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalItem as Item,\n\tFlexItem,\n} from '@wordpress/components';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { FontLibraryContext } from './font-library-modal/context';\nimport { getFamilyPreviewStyle } from './font-library-modal/utils/preview-styles';\n\nfunction FontFamilyItem( { font } ) {\n\tconst { handleSetLibraryFontSelected, toggleModal } =\n\t\tuseContext( FontLibraryContext );\n\n\tconst variantsCount = font?.fontFace?.length || 1;\n\n\tconst handleClick = () => {\n\t\thandleSetLibraryFontSelected( font );\n\t\ttoggleModal( 'installed-fonts' );\n\t};\n\n\tconst previewStyle = getFamilyPreviewStyle( font );\n\n\treturn (\n\t\t<Item onClick={ handleClick }>\n\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t<FlexItem style={ previewStyle }>{ font.name }</FlexItem>\n\t\t\t\t<FlexItem style={ { color: '#9e9e9e' } }>\n\t\t\t\t\t{ variantsCount }{ ' ' }\n\t\t\t\t\t{ _n( 'variant', 'variants', variantsCount ) }\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t</Item>\n\t);\n}\n\nexport default FontFamilyItem;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\tButton,\n\tTooltip,\n} from '@wordpress/components';\nimport { typography } from '@wordpress/icons';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport FontLibraryProvider, {\n\tFontLibraryContext,\n} from './font-library-modal/context';\nimport FontLibraryModal from './font-library-modal';\nimport FontFamilyItem from './font-family-item';\nimport Subtitle from './subtitle';\n\nfunction FontFamilies() {\n\tconst { modalTabOpen, toggleModal, themeFonts, customFonts } =\n\t\tuseContext( FontLibraryContext );\n\n\treturn (\n\t\t<>\n\t\t\t{ !! modalTabOpen && (\n\t\t\t\t<FontLibraryModal\n\t\t\t\t\tonRequestClose={ () => toggleModal() }\n\t\t\t\t\tinitialTabName={ modalTabOpen }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t\t<Subtitle level={ 3 }>{ __( 'Fonts' ) }</Subtitle>\n\t\t\t\t\t<HStack justify=\"flex-end\">\n\t\t\t\t\t\t<Tooltip text={ __( 'Manage fonts' ) }>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\ttoggleModal( 'installed-fonts' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taria-label={ __( 'Manage fonts' ) }\n\t\t\t\t\t\t\t\ticon={ typography }\n\t\t\t\t\t\t\t\tsize={ 'small' }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t</HStack>\n\t\t\t\t</HStack>\n\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t{ customFonts.map( ( font ) => (\n\t\t\t\t\t\t<FontFamilyItem key={ font.slug } font={ font } />\n\t\t\t\t\t) ) }\n\t\t\t\t\t{ themeFonts.map( ( font ) => (\n\t\t\t\t\t\t<FontFamilyItem key={ font.slug } font={ font } />\n\t\t\t\t\t) ) }\n\t\t\t\t</ItemGroup>\n\t\t\t</VStack>\n\t\t</>\n\t);\n}\n\nexport default ( { ...props } ) => (\n\t<FontLibraryProvider>\n\t\t<FontFamilies { ...props } />\n\t</FontLibraryProvider>\n);\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { __experimentalVStack as VStack } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport TypographyElements from './typogrphy-elements';\nimport FontFamilies from './font-families';\nimport ScreenHeader from './header';\n\nfunction ScreenTypography() {\n\treturn (\n\t\t<>\n\t\t\t<ScreenHeader\n\t\t\t\ttitle={ __( 'Typography' ) }\n\t\t\t\tdescription={ __(\n\t\t\t\t\t'Manage the typography settings for different elements.'\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t<div className=\"edit-site-global-styles-screen-typography\">\n\t\t\t\t<VStack spacing={ 6 }>\n\t\t\t\t\t{ ! window.__experimentalDisableFontLibrary && (\n\t\t\t\t\t\t<FontFamilies />\n\t\t\t\t\t) }\n\t\t\t\t\t<TypographyElements />\n\t\t\t\t</VStack>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default ScreenTypography;\n","/**\n * WordPress dependencies\n */\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst {\n\tuseGlobalStyle,\n\tuseGlobalSetting,\n\tuseSettingsForBlockElement,\n\tTypographyPanel: StylesTypographyPanel,\n} = unlock( blockEditorPrivateApis );\n\nexport default function TypographyPanel( { element, headingLevel } ) {\n\tlet prefixParts = [];\n\tif ( element === 'heading' ) {\n\t\tprefixParts = prefixParts.concat( [ 'elements', headingLevel ] );\n\t} else if ( element && element !== 'text' ) {\n\t\tprefixParts = prefixParts.concat( [ 'elements', element ] );\n\t}\n\tconst prefix = prefixParts.join( '.' );\n\n\tconst [ style ] = useGlobalStyle( prefix, undefined, 'user', {\n\t\tshouldDecodeEncode: false,\n\t} );\n\tconst [ inheritedStyle, setStyle ] = useGlobalStyle(\n\t\tprefix,\n\t\tundefined,\n\t\t'all',\n\t\t{\n\t\t\tshouldDecodeEncode: false,\n\t\t}\n\t);\n\tconst [ rawSettings ] = useGlobalSetting( '' );\n\tconst usedElement = element === 'heading' ? headingLevel : element;\n\tconst settings = useSettingsForBlockElement(\n\t\trawSettings,\n\t\tundefined,\n\t\tusedElement\n\t);\n\n\treturn (\n\t\t<StylesTypographyPanel\n\t\t\tinheritedValue={ inheritedStyle }\n\t\t\tvalue={ style }\n\t\t\tonChange={ setStyle }\n\t\t\tsettings={ settings }\n\t\t/>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { useGlobalStyle } = unlock( blockEditorPrivateApis );\n\nexport default function TypographyPreview( { name, element, headingLevel } ) {\n\tlet prefix = '';\n\tif ( element === 'heading' ) {\n\t\tprefix = `elements.${ headingLevel }.`;\n\t} else if ( element && element !== 'text' ) {\n\t\tprefix = `elements.${ element }.`;\n\t}\n\n\tconst [ fontFamily ] = useGlobalStyle(\n\t\tprefix + 'typography.fontFamily',\n\t\tname\n\t);\n\tconst [ gradientValue ] = useGlobalStyle( prefix + 'color.gradient', name );\n\tconst [ backgroundColor ] = useGlobalStyle(\n\t\tprefix + 'color.background',\n\t\tname\n\t);\n\tconst [ color ] = useGlobalStyle( prefix + 'color.text', name );\n\tconst [ fontSize ] = useGlobalStyle( prefix + 'typography.fontSize', name );\n\tconst [ fontStyle ] = useGlobalStyle(\n\t\tprefix + 'typography.fontStyle',\n\t\tname\n\t);\n\tconst [ fontWeight ] = useGlobalStyle(\n\t\tprefix + 'typography.fontWeight',\n\t\tname\n\t);\n\tconst [ letterSpacing ] = useGlobalStyle(\n\t\tprefix + 'typography.letterSpacing',\n\t\tname\n\t);\n\tconst extraStyles =\n\t\telement === 'link'\n\t\t\t? {\n\t\t\t\t\ttextDecoration: 'underline',\n\t\t\t  }\n\t\t\t: {};\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"edit-site-typography-preview\"\n\t\t\tstyle={ {\n\t\t\t\tfontFamily: fontFamily ?? 'serif',\n\t\t\t\tbackground: gradientValue ?? backgroundColor,\n\t\t\t\tcolor,\n\t\t\t\tfontSize,\n\t\t\t\tfontStyle,\n\t\t\t\tfontWeight,\n\t\t\t\tletterSpacing,\n\t\t\t\t...extraStyles,\n\t\t\t} }\n\t\t>\n\t\t\tAa\n\t\t</div>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport TypographyPanel from './typography-panel';\nimport ScreenHeader from './header';\nimport TypographyPreview from './typography-preview';\n\nconst elements = {\n\ttext: {\n\t\tdescription: __( 'Manage the fonts used on the site.' ),\n\t\ttitle: __( 'Text' ),\n\t},\n\tlink: {\n\t\tdescription: __( 'Manage the fonts and typography used on the links.' ),\n\t\ttitle: __( 'Links' ),\n\t},\n\theading: {\n\t\tdescription: __( 'Manage the fonts and typography used on headings.' ),\n\t\ttitle: __( 'Headings' ),\n\t},\n\tcaption: {\n\t\tdescription: __( 'Manage the fonts and typography used on captions.' ),\n\t\ttitle: __( 'Captions' ),\n\t},\n\tbutton: {\n\t\tdescription: __( 'Manage the fonts and typography used on buttons.' ),\n\t\ttitle: __( 'Buttons' ),\n\t},\n};\n\nfunction ScreenTypographyElement( { element } ) {\n\tconst [ headingLevel, setHeadingLevel ] = useState( 'heading' );\n\n\treturn (\n\t\t<>\n\t\t\t<ScreenHeader\n\t\t\t\ttitle={ elements[ element ].title }\n\t\t\t\tdescription={ elements[ element ].description }\n\t\t\t/>\n\t\t\t<Spacer marginX={ 4 }>\n\t\t\t\t<TypographyPreview\n\t\t\t\t\telement={ element }\n\t\t\t\t\theadingLevel={ headingLevel }\n\t\t\t\t/>\n\t\t\t</Spacer>\n\t\t\t{ element === 'heading' && (\n\t\t\t\t<Spacer marginX={ 4 } marginBottom=\"1em\">\n\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\tlabel={ __( 'Select heading level' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\tvalue={ headingLevel }\n\t\t\t\t\t\tonChange={ setHeadingLevel }\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"heading\"\n\t\t\t\t\t\t\t/* translators: 'All' refers to selecting all heading levels \n\t\t\t\t\t\t\tand applying the same style to h1-h6. */\n\t\t\t\t\t\t\tlabel={ __( 'All' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"h1\"\n\t\t\t\t\t\t\tlabel={ __( 'H1' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"h2\"\n\t\t\t\t\t\t\tlabel={ __( 'H2' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"h3\"\n\t\t\t\t\t\t\tlabel={ __( 'H3' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"h4\"\n\t\t\t\t\t\t\tlabel={ __( 'H4' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"h5\"\n\t\t\t\t\t\t\tlabel={ __( 'H5' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\tvalue=\"h6\"\n\t\t\t\t\t\t\tlabel={ __( 'H6' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t</Spacer>\n\t\t\t) }\n\t\t\t<TypographyPanel\n\t\t\t\telement={ element }\n\t\t\t\theadingLevel={ headingLevel }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default ScreenTypographyElement;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst shuffle = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/SVG\">\n\t\t<Path d=\"M17.192 6.75L15.47 5.03l1.06-1.06 3.537 3.53-3.537 3.53-1.06-1.06 1.723-1.72h-3.19c-.602 0-.993.202-1.28.498-.309.319-.538.792-.695 1.383-.13.488-.222 1.023-.296 1.508-.034.664-.116 1.413-.303 2.117-.193.721-.513 1.467-1.068 2.04-.575.594-1.359.954-2.357.954H4v-1.5h4.003c.601 0 .993-.202 1.28-.498.308-.319.538-.792.695-1.383.149-.557.216-1.093.288-1.662l.039-.31a9.653 9.653 0 0 1 .272-1.653c.193-.722.513-1.467 1.067-2.04.576-.594 1.36-.954 2.358-.954h3.19zM8.004 6.75c.8 0 1.46.23 1.988.628a6.24 6.24 0 0 0-.684 1.396 1.725 1.725 0 0 0-.024-.026c-.287-.296-.679-.498-1.28-.498H4v-1.5h4.003zM12.699 14.726c-.161.459-.38.94-.684 1.396.527.397 1.188.628 1.988.628h3.19l-1.722 1.72 1.06 1.06L20.067 16l-3.537-3.53-1.06 1.06 1.723 1.72h-3.19c-.602 0-.993-.202-1.28-.498a1.96 1.96 0 0 1-.024-.026z\" />\n\t</SVG>\n);\n\nexport default shuffle;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Flex } from '@wordpress/components';\n\nfunction ColorIndicatorWrapper( { className, ...props } ) {\n\treturn (\n\t\t<Flex\n\t\t\tclassName={ classnames(\n\t\t\t\t'edit-site-global-styles__color-indicator-wrapper',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n\nexport default ColorIndicatorWrapper;\n","/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\tFlexItem,\n\t__experimentalHStack as HStack,\n\t__experimentalZStack as ZStack,\n\t__experimentalVStack as VStack,\n\tColorIndicator,\n\tButton,\n} from '@wordpress/components';\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { shuffle } from '@wordpress/icons';\nimport { useMemo } from '@wordpress/element';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport Subtitle from './subtitle';\nimport { NavigationButtonAsItem } from './navigation-button';\nimport { useColorRandomizer } from './hooks';\nimport ColorIndicatorWrapper from './color-indicator-wrapper';\nimport { unlock } from '../../lock-unlock';\n\nconst { useGlobalSetting } = unlock( blockEditorPrivateApis );\n\nconst EMPTY_COLORS = [];\n\nfunction Palette( { name } ) {\n\tconst [ customColors ] = useGlobalSetting( 'color.palette.custom' );\n\tconst [ themeColors ] = useGlobalSetting( 'color.palette.theme' );\n\tconst [ defaultColors ] = useGlobalSetting( 'color.palette.default' );\n\n\tconst [ defaultPaletteEnabled ] = useGlobalSetting(\n\t\t'color.defaultPalette',\n\t\tname\n\t);\n\n\tconst [ randomizeThemeColors ] = useColorRandomizer();\n\n\tconst colors = useMemo(\n\t\t() => [\n\t\t\t...( customColors || EMPTY_COLORS ),\n\t\t\t...( themeColors || EMPTY_COLORS ),\n\t\t\t...( defaultColors && defaultPaletteEnabled\n\t\t\t\t? defaultColors\n\t\t\t\t: EMPTY_COLORS ),\n\t\t],\n\t\t[ customColors, themeColors, defaultColors, defaultPaletteEnabled ]\n\t);\n\n\tconst screenPath = ! name\n\t\t? '/colors/palette'\n\t\t: '/blocks/' + encodeURIComponent( name ) + '/colors/palette';\n\tconst paletteButtonText =\n\t\tcolors.length > 0\n\t\t\t? sprintf(\n\t\t\t\t\t// Translators: %d: Number of palette colors.\n\t\t\t\t\t_n( '%d color', '%d colors', colors.length ),\n\t\t\t\t\tcolors.length\n\t\t\t  )\n\t\t\t: __( 'Add custom colors' );\n\n\treturn (\n\t\t<VStack spacing={ 3 }>\n\t\t\t<Subtitle level={ 3 }>{ __( 'Palette' ) }</Subtitle>\n\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t<NavigationButtonAsItem\n\t\t\t\t\tpath={ screenPath }\n\t\t\t\t\taria-label={ __( 'Color palettes' ) }\n\t\t\t\t>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tdirection={\n\t\t\t\t\t\t\tcolors.length === 0 ? 'row-reverse' : 'row'\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ZStack isLayered={ false } offset={ -8 }>\n\t\t\t\t\t\t\t{ colors\n\t\t\t\t\t\t\t\t.slice( 0, 5 )\n\t\t\t\t\t\t\t\t.map( ( { color }, index ) => (\n\t\t\t\t\t\t\t\t\t<ColorIndicatorWrapper\n\t\t\t\t\t\t\t\t\t\tkey={ `${ color }-${ index }` }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<ColorIndicator colorValue={ color } />\n\t\t\t\t\t\t\t\t\t</ColorIndicatorWrapper>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</ZStack>\n\t\t\t\t\t\t<FlexItem>{ paletteButtonText }</FlexItem>\n\t\t\t\t\t</HStack>\n\t\t\t\t</NavigationButtonAsItem>\n\t\t\t</ItemGroup>\n\t\t\t{ window.__experimentalEnableColorRandomizer &&\n\t\t\t\tthemeColors?.length > 0 && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\ticon={ shuffle }\n\t\t\t\t\t\tonClick={ randomizeThemeColors }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Randomize colors' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport default Palette;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { __experimentalVStack as VStack } from '@wordpress/components';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport ScreenHeader from './header';\nimport Palette from './palette';\nimport { unlock } from '../../lock-unlock';\n\nconst {\n\tuseGlobalStyle,\n\tuseGlobalSetting,\n\tuseSettingsForBlockElement,\n\tColorPanel: StylesColorPanel,\n} = unlock( blockEditorPrivateApis );\n\nfunction ScreenColors() {\n\tconst [ style ] = useGlobalStyle( '', undefined, 'user', {\n\t\tshouldDecodeEncode: false,\n\t} );\n\tconst [ inheritedStyle, setStyle ] = useGlobalStyle( '', undefined, 'all', {\n\t\tshouldDecodeEncode: false,\n\t} );\n\tconst [ rawSettings ] = useGlobalSetting( '' );\n\tconst settings = useSettingsForBlockElement( rawSettings );\n\n\treturn (\n\t\t<>\n\t\t\t<ScreenHeader\n\t\t\t\ttitle={ __( 'Colors' ) }\n\t\t\t\tdescription={ __(\n\t\t\t\t\t'Manage palettes and the default color of different global elements on the site.'\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t<div className=\"edit-site-global-styles-screen-colors\">\n\t\t\t\t<VStack spacing={ 10 }>\n\t\t\t\t\t<Palette />\n\n\t\t\t\t\t<StylesColorPanel\n\t\t\t\t\t\tinheritedValue={ inheritedStyle }\n\t\t\t\t\t\tvalue={ style }\n\t\t\t\t\t\tonChange={ setStyle }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t/>\n\t\t\t\t</VStack>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default ScreenColors;\n","/**\n * WordPress dependencies\n */\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\t__experimentalPaletteEdit as PaletteEdit,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { useGlobalSetting } = unlock( blockEditorPrivateApis );\nconst mobilePopoverProps = { placement: 'bottom-start', offset: 8 };\n\nexport default function ColorPalettePanel( { name } ) {\n\tconst [ themeColors, setThemeColors ] = useGlobalSetting(\n\t\t'color.palette.theme',\n\t\tname\n\t);\n\tconst [ baseThemeColors ] = useGlobalSetting(\n\t\t'color.palette.theme',\n\t\tname,\n\t\t'base'\n\t);\n\tconst [ defaultColors, setDefaultColors ] = useGlobalSetting(\n\t\t'color.palette.default',\n\t\tname\n\t);\n\tconst [ baseDefaultColors ] = useGlobalSetting(\n\t\t'color.palette.default',\n\t\tname,\n\t\t'base'\n\t);\n\tconst [ customColors, setCustomColors ] = useGlobalSetting(\n\t\t'color.palette.custom',\n\t\tname\n\t);\n\n\tconst [ defaultPaletteEnabled ] = useGlobalSetting(\n\t\t'color.defaultPalette',\n\t\tname\n\t);\n\n\tconst isMobileViewport = useViewportMatch( 'small', '<' );\n\tconst popoverProps = isMobileViewport ? mobilePopoverProps : undefined;\n\n\treturn (\n\t\t<VStack\n\t\t\tclassName=\"edit-site-global-styles-color-palette-panel\"\n\t\t\tspacing={ 10 }\n\t\t>\n\t\t\t{ !! themeColors && !! themeColors.length && (\n\t\t\t\t<PaletteEdit\n\t\t\t\t\tcanReset={ themeColors !== baseThemeColors }\n\t\t\t\t\tcanOnlyChangeValues\n\t\t\t\t\tcolors={ themeColors }\n\t\t\t\t\tonChange={ setThemeColors }\n\t\t\t\t\tpaletteLabel={ __( 'Theme' ) }\n\t\t\t\t\tpaletteLabelHeadingLevel={ 3 }\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ !! defaultColors &&\n\t\t\t\t!! defaultColors.length &&\n\t\t\t\t!! defaultPaletteEnabled && (\n\t\t\t\t\t<PaletteEdit\n\t\t\t\t\t\tcanReset={ defaultColors !== baseDefaultColors }\n\t\t\t\t\t\tcanOnlyChangeValues\n\t\t\t\t\t\tcolors={ defaultColors }\n\t\t\t\t\t\tonChange={ setDefaultColors }\n\t\t\t\t\t\tpaletteLabel={ __( 'Default' ) }\n\t\t\t\t\t\tpaletteLabelHeadingLevel={ 3 }\n\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t<PaletteEdit\n\t\t\t\tcolors={ customColors }\n\t\t\t\tonChange={ setCustomColors }\n\t\t\t\tpaletteLabel={ __( 'Custom' ) }\n\t\t\t\tpaletteLabelHeadingLevel={ 3 }\n\t\t\t\temptyMessage={ __(\n\t\t\t\t\t'Custom colors are empty! Add some colors to create your own color palette.'\n\t\t\t\t) }\n\t\t\t\tslugPrefix=\"custom-\"\n\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t/>\n\t\t</VStack>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalPaletteEdit as PaletteEdit,\n\t__experimentalSpacer as Spacer,\n\tDuotonePicker,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport Subtitle from './subtitle';\nimport { unlock } from '../../lock-unlock';\n\nconst { useGlobalSetting } = unlock( blockEditorPrivateApis );\nconst mobilePopoverProps = { placement: 'bottom-start', offset: 8 };\n\nconst noop = () => {};\n\nexport default function GradientPalettePanel( { name } ) {\n\tconst [ themeGradients, setThemeGradients ] = useGlobalSetting(\n\t\t'color.gradients.theme',\n\t\tname\n\t);\n\tconst [ baseThemeGradients ] = useGlobalSetting(\n\t\t'color.gradients.theme',\n\t\tname,\n\t\t'base'\n\t);\n\tconst [ defaultGradients, setDefaultGradients ] = useGlobalSetting(\n\t\t'color.gradients.default',\n\t\tname\n\t);\n\tconst [ baseDefaultGradients ] = useGlobalSetting(\n\t\t'color.gradients.default',\n\t\tname,\n\t\t'base'\n\t);\n\tconst [ customGradients, setCustomGradients ] = useGlobalSetting(\n\t\t'color.gradients.custom',\n\t\tname\n\t);\n\n\tconst [ defaultPaletteEnabled ] = useGlobalSetting(\n\t\t'color.defaultGradients',\n\t\tname\n\t);\n\n\tconst [ customDuotone ] = useGlobalSetting( 'color.duotone.custom' ) || [];\n\tconst [ defaultDuotone ] =\n\t\tuseGlobalSetting( 'color.duotone.default' ) || [];\n\tconst [ themeDuotone ] = useGlobalSetting( 'color.duotone.theme' ) || [];\n\tconst [ defaultDuotoneEnabled ] = useGlobalSetting(\n\t\t'color.defaultDuotone'\n\t);\n\n\tconst duotonePalette = [\n\t\t...( customDuotone || [] ),\n\t\t...( themeDuotone || [] ),\n\t\t...( defaultDuotone && defaultDuotoneEnabled ? defaultDuotone : [] ),\n\t];\n\n\tconst isMobileViewport = useViewportMatch( 'small', '<' );\n\tconst popoverProps = isMobileViewport ? mobilePopoverProps : undefined;\n\n\treturn (\n\t\t<VStack\n\t\t\tclassName=\"edit-site-global-styles-gradient-palette-panel\"\n\t\t\tspacing={ 10 }\n\t\t>\n\t\t\t{ !! themeGradients && !! themeGradients.length && (\n\t\t\t\t<PaletteEdit\n\t\t\t\t\tcanReset={ themeGradients !== baseThemeGradients }\n\t\t\t\t\tcanOnlyChangeValues\n\t\t\t\t\tgradients={ themeGradients }\n\t\t\t\t\tonChange={ setThemeGradients }\n\t\t\t\t\tpaletteLabel={ __( 'Theme' ) }\n\t\t\t\t\tpaletteLabelHeadingLevel={ 3 }\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ !! defaultGradients &&\n\t\t\t\t!! defaultGradients.length &&\n\t\t\t\t!! defaultPaletteEnabled && (\n\t\t\t\t\t<PaletteEdit\n\t\t\t\t\t\tcanReset={ defaultGradients !== baseDefaultGradients }\n\t\t\t\t\t\tcanOnlyChangeValues\n\t\t\t\t\t\tgradients={ defaultGradients }\n\t\t\t\t\t\tonChange={ setDefaultGradients }\n\t\t\t\t\t\tpaletteLabel={ __( 'Default' ) }\n\t\t\t\t\t\tpaletteLabelLevel={ 3 }\n\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t<PaletteEdit\n\t\t\t\tgradients={ customGradients }\n\t\t\t\tonChange={ setCustomGradients }\n\t\t\t\tpaletteLabel={ __( 'Custom' ) }\n\t\t\t\tpaletteLabelLevel={ 3 }\n\t\t\t\temptyMessage={ __(\n\t\t\t\t\t'Custom gradients are empty! Add some gradients to create your own palette.'\n\t\t\t\t) }\n\t\t\t\tslugPrefix=\"custom-\"\n\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t/>\n\t\t\t{ !! duotonePalette && !! duotonePalette.length && (\n\t\t\t\t<div>\n\t\t\t\t\t<Subtitle level={ 3 }>{ __( 'Duotone' ) }</Subtitle>\n\t\t\t\t\t<Spacer margin={ 3 } />\n\t\t\t\t\t<DuotonePicker\n\t\t\t\t\t\tduotonePalette={ duotonePalette }\n\t\t\t\t\t\tdisableCustomDuotone={ true }\n\t\t\t\t\t\tdisableCustomColors={ true }\n\t\t\t\t\t\tclearable={ false }\n\t\t\t\t\t\tonChange={ noop }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport ColorPalettePanel from './color-palette-panel';\nimport GradientPalettePanel from './gradients-palette-panel';\nimport ScreenHeader from './header';\nimport { unlock } from '../../lock-unlock';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nfunction ScreenColorPalette( { name } ) {\n\treturn (\n\t\t<>\n\t\t\t<ScreenHeader\n\t\t\t\ttitle={ __( 'Palette' ) }\n\t\t\t\tdescription={ __(\n\t\t\t\t\t'Palettes are used to provide default color options for blocks and various design tools. Here you can edit the colors with their labels.'\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t<Tabs>\n\t\t\t\t<Tabs.TabList>\n\t\t\t\t\t<Tabs.Tab tabId=\"solid\">Solid</Tabs.Tab>\n\t\t\t\t\t<Tabs.Tab tabId=\"gradient\">Gradient</Tabs.Tab>\n\t\t\t\t</Tabs.TabList>\n\t\t\t\t<Tabs.TabPanel tabId=\"solid\" focusable={ false }>\n\t\t\t\t\t<ColorPalettePanel name={ name } />\n\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t<Tabs.TabPanel tabId=\"gradient\" focusable={ false }>\n\t\t\t\t\t<GradientPalettePanel name={ name } />\n\t\t\t\t</Tabs.TabPanel>\n\t\t\t</Tabs>\n\t\t</>\n\t);\n}\n\nexport default ScreenColorPalette;\n","/**\n * WordPress dependencies\n */\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst {\n\tuseGlobalStyle,\n\tuseGlobalSetting,\n\tuseSettingsForBlockElement,\n\tDimensionsPanel: StylesDimensionsPanel,\n} = unlock( blockEditorPrivateApis );\n\nconst DEFAULT_CONTROLS = {\n\tcontentSize: true,\n\twideSize: true,\n\tpadding: true,\n\tmargin: true,\n\tblockGap: true,\n\tminHeight: true,\n\tchildLayout: false,\n};\n\nexport default function DimensionsPanel() {\n\tconst [ style ] = useGlobalStyle( '', undefined, 'user', {\n\t\tshouldDecodeEncode: false,\n\t} );\n\tconst [ inheritedStyle, setStyle ] = useGlobalStyle( '', undefined, 'all', {\n\t\tshouldDecodeEncode: false,\n\t} );\n\tconst [ userSettings ] = useGlobalSetting( '', undefined, 'user' );\n\tconst [ rawSettings, setSettings ] = useGlobalSetting( '' );\n\tconst settings = useSettingsForBlockElement( rawSettings );\n\n\t// These intermediary objects are needed because the \"layout\" property is stored\n\t// in settings rather than styles.\n\tconst inheritedStyleWithLayout = useMemo( () => {\n\t\treturn {\n\t\t\t...inheritedStyle,\n\t\t\tlayout: settings.layout,\n\t\t};\n\t}, [ inheritedStyle, settings.layout ] );\n\n\tconst styleWithLayout = useMemo( () => {\n\t\treturn {\n\t\t\t...style,\n\t\t\tlayout: userSettings.layout,\n\t\t};\n\t}, [ style, userSettings.layout ] );\n\n\tconst onChange = ( newStyle ) => {\n\t\tconst updatedStyle = { ...newStyle };\n\t\tdelete updatedStyle.layout;\n\t\tsetStyle( updatedStyle );\n\n\t\tif ( newStyle.layout !== userSettings.layout ) {\n\t\t\tconst updatedSettings = {\n\t\t\t\t...userSettings,\n\t\t\t\tlayout: newStyle.layout,\n\t\t\t};\n\n\t\t\t// Ensure any changes to layout definitions are not persisted.\n\t\t\tif ( updatedSettings.layout?.definitions ) {\n\t\t\t\tdelete updatedSettings.layout.definitions;\n\t\t\t}\n\n\t\t\tsetSettings( updatedSettings );\n\t\t}\n\t};\n\n\treturn (\n\t\t<StylesDimensionsPanel\n\t\t\tinheritedValue={ inheritedStyleWithLayout }\n\t\t\tvalue={ styleWithLayout }\n\t\t\tonChange={ onChange }\n\t\t\tsettings={ settings }\n\t\t\tincludeLayoutControls\n\t\t\tdefaultControls={ DEFAULT_CONTROLS }\n\t\t/>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport DimensionsPanel from './dimensions-panel';\nimport ScreenHeader from './header';\nimport { unlock } from '../../lock-unlock';\n\nconst { useHasDimensionsPanel, useGlobalSetting, useSettingsForBlockElement } =\n\tunlock( blockEditorPrivateApis );\n\nfunction ScreenLayout() {\n\tconst [ rawSettings ] = useGlobalSetting( '' );\n\tconst settings = useSettingsForBlockElement( rawSettings );\n\tconst hasDimensionsPanel = useHasDimensionsPanel( settings );\n\treturn (\n\t\t<>\n\t\t\t<ScreenHeader title={ __( 'Layout' ) } />\n\t\t\t{ hasDimensionsPanel && <DimensionsPanel /> }\n\t\t</>\n\t);\n}\n\nexport default ScreenLayout;\n","/**\n * WordPress dependencies\n */\nimport { Card, CardBody } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useEffect, useRef } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport ScreenHeader from './header';\nimport StyleVariationsContainer from './style-variations-container';\n\nfunction ScreenStyleVariations() {\n\tconst { mode } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tmode: select( blockEditorStore ).__unstableGetEditorMode(),\n\t\t};\n\t}, [] );\n\n\tconst shouldRevertInitialMode = useRef( null );\n\tuseEffect( () => {\n\t\t// ignore changes to zoom-out mode as we explictily change to it on mount.\n\t\tif ( mode !== 'zoom-out' ) {\n\t\t\tshouldRevertInitialMode.current = false;\n\t\t}\n\t}, [ mode ] );\n\n\t// Intentionality left without any dependency.\n\t// This effect should only run the first time the component is rendered.\n\t// The effect opens the zoom-out view if it is not open before when applying a style variation.\n\tuseEffect( () => {\n\t\tif ( mode !== 'zoom-out' ) {\n\t\t\t__unstableSetEditorMode( 'zoom-out' );\n\t\t\tshouldRevertInitialMode.current = true;\n\t\t\treturn () => {\n\t\t\t\t// if there were not mode changes revert to the initial mode when unmounting.\n\t\t\t\tif ( shouldRevertInitialMode.current ) {\n\t\t\t\t\t__unstableSetEditorMode( mode );\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\tconst { __unstableSetEditorMode } = useDispatch( blockEditorStore );\n\n\treturn (\n\t\t<>\n\t\t\t<ScreenHeader\n\t\t\t\tback=\"/\"\n\t\t\t\ttitle={ __( 'Browse styles' ) }\n\t\t\t\tdescription={ __(\n\t\t\t\t\t'Choose a variation to change the look of the site.'\n\t\t\t\t) }\n\t\t\t/>\n\n\t\t\t<Card\n\t\t\t\tsize=\"small\"\n\t\t\t\tisBorderless\n\t\t\t\tclassName=\"edit-site-global-styles-screen-style-variations\"\n\t\t\t>\n\t\t\t\t<CardBody>\n\t\t\t\t\t<StyleVariationsContainer />\n\t\t\t\t</CardBody>\n\t\t\t</Card>\n\t\t</>\n\t);\n}\n\nexport default ScreenStyleVariations;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { ExternalLink } from '@wordpress/components';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport ScreenHeader from './header';\n\nconst { useGlobalStyle, AdvancedPanel: StylesAdvancedPanel } = unlock(\n\tblockEditorPrivateApis\n);\n\nfunction ScreenCSS() {\n\tconst description = __(\n\t\t'Add your own CSS to customize the appearance and layout of your site.'\n\t);\n\tconst [ style ] = useGlobalStyle( '', undefined, 'user', {\n\t\tshouldDecodeEncode: false,\n\t} );\n\tconst [ inheritedStyle, setStyle ] = useGlobalStyle( '', undefined, 'all', {\n\t\tshouldDecodeEncode: false,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<ScreenHeader\n\t\t\t\ttitle={ __( 'CSS' ) }\n\t\t\t\tdescription={\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\thref=\"https://wordpress.org/documentation/article/css/\"\n\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-screen-css-help-link\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Learn more about CSS' ) }\n\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t</>\n\t\t\t\t}\n\t\t\t/>\n\t\t\t<div className=\"edit-site-global-styles-screen-css\">\n\t\t\t\t<StylesAdvancedPanel\n\t\t\t\t\tvalue={ style }\n\t\t\t\t\tonChange={ setStyle }\n\t\t\t\t\tinheritedValue={ inheritedStyle }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default ScreenCSS;\n","/**\n * WordPress dependencies\n */\nimport { Disabled } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockList,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\t__unstableEditorStyles as EditorStyles,\n\t__unstableIframe as Iframe,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\n\nimport { unlock } from '../../lock-unlock';\nimport { mergeBaseAndUserConfigs } from '../global-styles/global-styles-provider';\nimport EditorCanvasContainer from '../editor-canvas-container';\n\nconst {\n\tExperimentalBlockEditorProvider,\n\tGlobalStylesContext,\n\tuseGlobalStylesOutputWithConfig,\n} = unlock( blockEditorPrivateApis );\n\nfunction isObjectEmpty( object ) {\n\treturn ! object || Object.keys( object ).length === 0;\n}\n\nfunction Revisions( { userConfig, blocks } ) {\n\tconst { base: baseConfig } = useContext( GlobalStylesContext );\n\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! isObjectEmpty( userConfig ) && ! isObjectEmpty( baseConfig ) ) {\n\t\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfig );\n\t\t}\n\t\treturn {};\n\t}, [ baseConfig, userConfig ] );\n\n\tconst renderedBlocksArray = useMemo(\n\t\t() => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),\n\t\t[ blocks ]\n\t);\n\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst settings = useMemo(\n\t\t() => ( { ...originalSettings, __unstableIsPreviewMode: true } ),\n\t\t[ originalSettings ]\n\t);\n\n\tconst [ globalStyles ] = useGlobalStylesOutputWithConfig( mergedConfig );\n\n\tconst editorStyles =\n\t\t! isObjectEmpty( globalStyles ) && ! isObjectEmpty( userConfig )\n\t\t\t? globalStyles\n\t\t\t: settings.styles;\n\n\treturn (\n\t\t<EditorCanvasContainer\n\t\t\ttitle={ __( 'Revisions' ) }\n\t\t\tcloseButtonLabel={ __( 'Close revisions' ) }\n\t\t\tenableResizing={ true }\n\t\t>\n\t\t\t<Iframe\n\t\t\t\tclassName=\"edit-site-revisions__iframe\"\n\t\t\t\tname=\"revisions\"\n\t\t\t\ttabIndex={ 0 }\n\t\t\t>\n\t\t\t\t<EditorStyles styles={ editorStyles } />\n\t\t\t\t<style>\n\t\t\t\t\t{\n\t\t\t\t\t\t// Forming a \"block formatting context\" to prevent margin collapsing.\n\t\t\t\t\t\t// @see https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context\n\t\t\t\t\t\t`.is-root-container { display: flow-root; } body { position: relative; padding: 32px; }`\n\t\t\t\t\t}\n\t\t\t\t</style>\n\t\t\t\t<Disabled className=\"edit-site-revisions__example-preview__content\">\n\t\t\t\t\t<ExperimentalBlockEditorProvider\n\t\t\t\t\t\tvalue={ renderedBlocksArray }\n\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockList renderAppender={ false } />\n\t\t\t\t\t</ExperimentalBlockEditorProvider>\n\t\t\t\t</Disabled>\n\t\t\t</Iframe>\n\t\t</EditorCanvasContainer>\n\t);\n}\n\nexport default Revisions;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { dateI18n, getDate, humanTimeDiff, getSettings } from '@wordpress/date';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../../lock-unlock';\n\nconst DAY_IN_MILLISECONDS = 60 * 60 * 1000 * 24;\nconst { getGlobalStylesChanges } = unlock( blockEditorPrivateApis );\n\nfunction ChangesSummary( { revision, previousRevision } ) {\n\tconst changes = getGlobalStylesChanges( revision, previousRevision, {\n\t\tmaxResults: 7,\n\t} );\n\tconst changesLength = changes.length;\n\n\tif ( ! changesLength ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<span\n\t\t\tdata-testid=\"global-styles-revision-changes\"\n\t\t\tclassName=\"edit-site-global-styles-screen-revisions__changes\"\n\t\t>\n\t\t\t{ changes.join( ', ' ) }\n\t\t</span>\n\t);\n}\n\n/**\n * Returns a button label for the revision.\n *\n * @param {string|number} id                    A revision object.\n * @param {string}        authorDisplayName     Author name.\n * @param {string}        formattedModifiedDate Revision modified date formatted.\n * @param {boolean}       areStylesEqual        Whether the revision matches the current editor styles.\n * @return {string} Translated label.\n */\nfunction getRevisionLabel(\n\tid,\n\tauthorDisplayName,\n\tformattedModifiedDate,\n\tareStylesEqual\n) {\n\tif ( 'parent' === id ) {\n\t\treturn __( 'Reset the styles to the theme defaults' );\n\t}\n\n\tif ( 'unsaved' === id ) {\n\t\treturn sprintf(\n\t\t\t/* translators: %s: author display name */\n\t\t\t__( 'Unsaved changes by %s' ),\n\t\t\tauthorDisplayName\n\t\t);\n\t}\n\n\treturn areStylesEqual\n\t\t? sprintf(\n\t\t\t\t// translators: %1$s: author display name, %2$s: revision creation date.\n\t\t\t\t__(\n\t\t\t\t\t'Changes saved by %1$s on %2$s. This revision matches current editor styles.'\n\t\t\t\t),\n\t\t\t\tauthorDisplayName,\n\t\t\t\tformattedModifiedDate\n\t\t  )\n\t\t: sprintf(\n\t\t\t\t// translators: %1$s: author display name, %2$s: revision creation date.\n\t\t\t\t__( 'Changes saved by %1$s on %2$s' ),\n\t\t\t\tauthorDisplayName,\n\t\t\t\tformattedModifiedDate\n\t\t  );\n}\n\n/**\n * Returns a rendered list of revisions buttons.\n *\n * @typedef {Object} props\n * @property {Array<Object>} userRevisions      A collection of user revisions.\n * @property {number}        selectedRevisionId The id of the currently-selected revision.\n * @property {Function}      onChange           Callback fired when a revision is selected.\n *\n * @param    {props}         Component          props.\n * @return {JSX.Element} The modal component.\n */\nfunction RevisionsButtons( {\n\tuserRevisions,\n\tselectedRevisionId,\n\tonChange,\n\tcanApplyRevision,\n\tonApplyRevision,\n} ) {\n\tconst { currentThemeName, currentUser } = useSelect( ( select ) => {\n\t\tconst { getCurrentTheme, getCurrentUser } = select( coreStore );\n\t\tconst currentTheme = getCurrentTheme();\n\t\treturn {\n\t\t\tcurrentThemeName:\n\t\t\t\tcurrentTheme?.name?.rendered || currentTheme?.stylesheet,\n\t\t\tcurrentUser: getCurrentUser(),\n\t\t};\n\t}, [] );\n\tconst dateNowInMs = getDate().getTime();\n\tconst { datetimeAbbreviated } = getSettings().formats;\n\n\treturn (\n\t\t<ol\n\t\t\tclassName=\"edit-site-global-styles-screen-revisions__revisions-list\"\n\t\t\taria-label={ __( 'Global styles revisions list' ) }\n\t\t\trole=\"group\"\n\t\t>\n\t\t\t{ userRevisions.map( ( revision, index ) => {\n\t\t\t\tconst { id, author, modified } = revision;\n\t\t\t\tconst isUnsaved = 'unsaved' === id;\n\t\t\t\t// Unsaved changes are created by the current user.\n\t\t\t\tconst revisionAuthor = isUnsaved ? currentUser : author;\n\t\t\t\tconst authorDisplayName = revisionAuthor?.name || __( 'User' );\n\t\t\t\tconst authorAvatar = revisionAuthor?.avatar_urls?.[ '48' ];\n\t\t\t\tconst isFirstItem = index === 0;\n\t\t\t\tconst isSelected = selectedRevisionId\n\t\t\t\t\t? selectedRevisionId === id\n\t\t\t\t\t: isFirstItem;\n\t\t\t\tconst areStylesEqual = ! canApplyRevision && isSelected;\n\t\t\t\tconst isReset = 'parent' === id;\n\t\t\t\tconst modifiedDate = getDate( modified );\n\t\t\t\tconst displayDate =\n\t\t\t\t\tmodified &&\n\t\t\t\t\tdateNowInMs - modifiedDate.getTime() > DAY_IN_MILLISECONDS\n\t\t\t\t\t\t? dateI18n( datetimeAbbreviated, modifiedDate )\n\t\t\t\t\t\t: humanTimeDiff( modified );\n\t\t\t\tconst revisionLabel = getRevisionLabel(\n\t\t\t\t\tid,\n\t\t\t\t\tauthorDisplayName,\n\t\t\t\t\tdateI18n( datetimeAbbreviated, modifiedDate ),\n\t\t\t\t\tareStylesEqual\n\t\t\t\t);\n\n\t\t\t\treturn (\n\t\t\t\t\t<li\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'edit-site-global-styles-screen-revisions__revision-item',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-selected': isSelected,\n\t\t\t\t\t\t\t\t'is-active': areStylesEqual,\n\t\t\t\t\t\t\t\t'is-reset': isReset,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\taria-current={ isSelected }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-screen-revisions__revision-button\"\n\t\t\t\t\t\t\tdisabled={ isSelected }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonChange( revision );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taria-label={ revisionLabel }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isReset ? (\n\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__description\">\n\t\t\t\t\t\t\t\t\t{ __( 'Default styles' ) }\n\t\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__meta\">\n\t\t\t\t\t\t\t\t\t\t{ currentThemeName }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__description\">\n\t\t\t\t\t\t\t\t\t{ isUnsaved ? (\n\t\t\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__date\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( '(Unsaved)' ) }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<time\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-screen-revisions__date\"\n\t\t\t\t\t\t\t\t\t\t\tdateTime={ modified }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ displayDate }\n\t\t\t\t\t\t\t\t\t\t</time>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__meta\">\n\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\talt={ authorDisplayName }\n\t\t\t\t\t\t\t\t\t\t\tsrc={ authorAvatar }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{ authorDisplayName }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t\t\t\t<ChangesSummary\n\t\t\t\t\t\t\t\t\t\t\trevision={ revision }\n\t\t\t\t\t\t\t\t\t\t\tpreviousRevision={\n\t\t\t\t\t\t\t\t\t\t\t\tindex < userRevisions.length\n\t\t\t\t\t\t\t\t\t\t\t\t\t? userRevisions[ index + 1 ]\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t{ isSelected &&\n\t\t\t\t\t\t\t( areStylesEqual ? (\n\t\t\t\t\t\t\t\t<p className=\"edit-site-global-styles-screen-revisions__applied-text\">\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'These styles are already applied to your site.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tdisabled={ areStylesEqual }\n\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-screen-revisions__apply-button\"\n\t\t\t\t\t\t\t\t\tonClick={ onApplyRevision }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ isReset\n\t\t\t\t\t\t\t\t\t\t? __( 'Reset to defaults' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Apply' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t</li>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ol>\n\t);\n}\n\nexport default RevisionsButtons;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalText as Text,\n\tButton,\n} from '@wordpress/components';\nimport { __, _x, _n, sprintf } from '@wordpress/i18n';\n\nexport default function Pagination( {\n\tcurrentPage,\n\tnumPages,\n\tchangePage,\n\ttotalItems,\n\tclassName,\n\tdisabled = false,\n\tbuttonVariant = 'tertiary',\n\tlabel = __( 'Pagination Navigation' ),\n} ) {\n\treturn (\n\t\t<HStack\n\t\t\texpanded={ false }\n\t\t\tas=\"nav\"\n\t\t\taria-label={ label }\n\t\t\tspacing={ 3 }\n\t\t\tjustify=\"flex-start\"\n\t\t\tclassName={ classnames( 'edit-site-pagination', className ) }\n\t\t>\n\t\t\t<Text variant=\"muted\" className=\"edit-site-pagination__total\">\n\t\t\t\t{\n\t\t\t\t\t// translators: %s: Total number of patterns.\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: Total number of patterns.\n\t\t\t\t\t\t_n( '%s item', '%s items', totalItems ),\n\t\t\t\t\t\ttotalItems\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t</Text>\n\t\t\t<HStack expanded={ false } spacing={ 1 }>\n\t\t\t\t<Button\n\t\t\t\t\tvariant={ buttonVariant }\n\t\t\t\t\tonClick={ () => changePage( 1 ) }\n\t\t\t\t\tdisabled={ disabled || currentPage === 1 }\n\t\t\t\t\taria-label={ __( 'First page' ) }\n\t\t\t\t>\n\t\t\t\t\t«\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\tvariant={ buttonVariant }\n\t\t\t\t\tonClick={ () => changePage( currentPage - 1 ) }\n\t\t\t\t\tdisabled={ disabled || currentPage === 1 }\n\t\t\t\t\taria-label={ __( 'Previous page' ) }\n\t\t\t\t>\n\t\t\t\t\t‹\n\t\t\t\t</Button>\n\t\t\t</HStack>\n\t\t\t<Text variant=\"muted\">\n\t\t\t\t{ sprintf(\n\t\t\t\t\t// translators: %1$s: Current page number, %2$s: Total number of pages.\n\t\t\t\t\t_x( '%1$s of %2$s', 'paging' ),\n\t\t\t\t\tcurrentPage,\n\t\t\t\t\tnumPages\n\t\t\t\t) }\n\t\t\t</Text>\n\t\t\t<HStack expanded={ false } spacing={ 1 }>\n\t\t\t\t<Button\n\t\t\t\t\tvariant={ buttonVariant }\n\t\t\t\t\tonClick={ () => changePage( currentPage + 1 ) }\n\t\t\t\t\tdisabled={ disabled || currentPage === numPages }\n\t\t\t\t\taria-label={ __( 'Next page' ) }\n\t\t\t\t>\n\t\t\t\t\t›\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\tvariant={ buttonVariant }\n\t\t\t\t\tonClick={ () => changePage( numPages ) }\n\t\t\t\t\tdisabled={ disabled || currentPage === numPages }\n\t\t\t\t\taria-label={ __( 'Last page' ) }\n\t\t\t\t>\n\t\t\t\t\t»\n\t\t\t\t</Button>\n\t\t\t</HStack>\n\t\t</HStack>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\tSpinner,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useContext, useState, useEffect } from '@wordpress/element';\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport ScreenHeader from '../header';\nimport { unlock } from '../../../lock-unlock';\nimport Revisions from '../../revisions';\nimport { store as editSiteStore } from '../../../store';\nimport useGlobalStylesRevisions from './use-global-styles-revisions';\nimport RevisionsButtons from './revisions-buttons';\nimport StyleBook from '../../style-book';\nimport Pagination from '../../pagination';\n\nconst { GlobalStylesContext, areGlobalStyleConfigsEqual } = unlock(\n\tblockEditorPrivateApis\n);\n\nconst PAGE_SIZE = 10;\n\nfunction ScreenRevisions() {\n\tconst { goTo } = useNavigator();\n\tconst { user: currentEditorGlobalStyles, setUserConfig } =\n\t\tuseContext( GlobalStylesContext );\n\tconst { blocks, editorCanvasContainerView } = useSelect(\n\t\t( select ) => ( {\n\t\t\teditorCanvasContainerView: unlock(\n\t\t\t\tselect( editSiteStore )\n\t\t\t).getEditorCanvasContainerView(),\n\t\t\tblocks: select( blockEditorStore ).getBlocks(),\n\t\t} ),\n\t\t[]\n\t);\n\tconst [ currentPage, setCurrentPage ] = useState( 1 );\n\tconst [ currentRevisions, setCurrentRevisions ] = useState( [] );\n\tconst { revisions, isLoading, hasUnsavedChanges, revisionsCount } =\n\t\tuseGlobalStylesRevisions( {\n\t\t\tquery: {\n\t\t\t\tper_page: PAGE_SIZE,\n\t\t\t\tpage: currentPage,\n\t\t\t},\n\t\t} );\n\n\tconst numPages = Math.ceil( revisionsCount / PAGE_SIZE );\n\n\tconst [ currentlySelectedRevision, setCurrentlySelectedRevision ] =\n\t\tuseState( currentEditorGlobalStyles );\n\tconst [\n\t\tisLoadingRevisionWithUnsavedChanges,\n\t\tsetIsLoadingRevisionWithUnsavedChanges,\n\t] = useState( false );\n\tconst { setEditorCanvasContainerView } = unlock(\n\t\tuseDispatch( editSiteStore )\n\t);\n\tconst selectedRevisionMatchesEditorStyles = areGlobalStyleConfigsEqual(\n\t\tcurrentlySelectedRevision,\n\t\tcurrentEditorGlobalStyles\n\t);\n\n\tconst onCloseRevisions = () => {\n\t\tgoTo( '/' ); // Return to global styles main panel.\n\t\tsetEditorCanvasContainerView( undefined );\n\t};\n\n\tconst restoreRevision = ( revision ) => {\n\t\tsetUserConfig( () => ( {\n\t\t\tstyles: revision?.styles,\n\t\t\tsettings: revision?.settings,\n\t\t} ) );\n\t\tsetIsLoadingRevisionWithUnsavedChanges( false );\n\t\tonCloseRevisions();\n\t};\n\n\tconst selectRevision = ( revision ) => {\n\t\tsetCurrentlySelectedRevision( {\n\t\t\tstyles: revision?.styles || {},\n\t\t\tsettings: revision?.settings || {},\n\t\t\tid: revision?.id,\n\t\t} );\n\t};\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! editorCanvasContainerView ||\n\t\t\t! editorCanvasContainerView.startsWith( 'global-styles-revisions' )\n\t\t) {\n\t\t\tgoTo( '/' ); // Return to global styles main panel.\n\t\t\tsetEditorCanvasContainerView( editorCanvasContainerView );\n\t\t}\n\t}, [ editorCanvasContainerView ] );\n\n\tuseEffect( () => {\n\t\tif ( ! isLoading && revisions.length ) {\n\t\t\tsetCurrentRevisions( revisions );\n\t\t}\n\t}, [ revisions, isLoading ] );\n\n\tconst firstRevision = revisions[ 0 ];\n\tconst currentlySelectedRevisionId = currentlySelectedRevision?.id;\n\tconst shouldSelectFirstItem =\n\t\t!! firstRevision?.id &&\n\t\t! selectedRevisionMatchesEditorStyles &&\n\t\t! currentlySelectedRevisionId;\n\n\tuseEffect( () => {\n\t\t/*\n\t\t * Ensure that the first item is selected and loaded into the preview pane\n\t\t * when no revision is selected and the selected styles don't match the current editor styles.\n\t\t * This is required in case editor styles are changed outside the revisions panel,\n\t\t * e.g., via the reset styles function of useGlobalStylesReset().\n\t\t * See: https://github.com/WordPress/gutenberg/issues/55866\n\t\t */\n\t\tif ( shouldSelectFirstItem ) {\n\t\t\tsetCurrentlySelectedRevision( {\n\t\t\t\tstyles: firstRevision?.styles || {},\n\t\t\t\tsettings: firstRevision?.settings || {},\n\t\t\t\tid: firstRevision?.id,\n\t\t\t} );\n\t\t}\n\t}, [ shouldSelectFirstItem, firstRevision ] );\n\n\t// Only display load button if there is a revision to load,\n\t// and it is different from the current editor styles.\n\tconst isLoadButtonEnabled =\n\t\t!! currentlySelectedRevisionId &&\n\t\tcurrentlySelectedRevisionId !== 'unsaved' &&\n\t\t! selectedRevisionMatchesEditorStyles;\n\tconst hasRevisions = !! currentRevisions.length;\n\n\treturn (\n\t\t<>\n\t\t\t<ScreenHeader\n\t\t\t\ttitle={\n\t\t\t\t\trevisionsCount &&\n\t\t\t\t\t// translators: %s: number of revisions.\n\t\t\t\t\tsprintf( __( 'Revisions (%s)' ), revisionsCount )\n\t\t\t\t}\n\t\t\t\tdescription={ __(\n\t\t\t\t\t'Click on previously saved styles to preview them. To restore a selected version to the editor, hit \"Apply.\" When you\\'re ready, use the Save button to save your changes.'\n\t\t\t\t) }\n\t\t\t\tonBack={ onCloseRevisions }\n\t\t\t/>\n\t\t\t{ ! hasRevisions && (\n\t\t\t\t<Spinner className=\"edit-site-global-styles-screen-revisions__loading\" />\n\t\t\t) }\n\t\t\t{ hasRevisions &&\n\t\t\t\t( editorCanvasContainerView ===\n\t\t\t\t'global-styles-revisions:style-book' ? (\n\t\t\t\t\t<StyleBook\n\t\t\t\t\t\tuserConfig={ currentlySelectedRevision }\n\t\t\t\t\t\tisSelected={ () => {} }\n\t\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\t\tsetEditorCanvasContainerView(\n\t\t\t\t\t\t\t\t'global-styles-revisions'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<Revisions\n\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\tuserConfig={ currentlySelectedRevision }\n\t\t\t\t\t\tcloseButtonLabel={ __( 'Close revisions' ) }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t<RevisionsButtons\n\t\t\t\tonChange={ selectRevision }\n\t\t\t\tselectedRevisionId={ currentlySelectedRevisionId }\n\t\t\t\tuserRevisions={ currentRevisions }\n\t\t\t\tcanApplyRevision={ isLoadButtonEnabled }\n\t\t\t\tonApplyRevision={ () =>\n\t\t\t\t\thasUnsavedChanges\n\t\t\t\t\t\t? setIsLoadingRevisionWithUnsavedChanges( true )\n\t\t\t\t\t\t: restoreRevision( currentlySelectedRevision )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ numPages > 1 && (\n\t\t\t\t<div className=\"edit-site-global-styles-screen-revisions__footer\">\n\t\t\t\t\t<Pagination\n\t\t\t\t\t\tclassName=\"edit-site-global-styles-screen-revisions__pagination\"\n\t\t\t\t\t\tcurrentPage={ currentPage }\n\t\t\t\t\t\tnumPages={ numPages }\n\t\t\t\t\t\tchangePage={ setCurrentPage }\n\t\t\t\t\t\ttotalItems={ revisionsCount }\n\t\t\t\t\t\tdisabled={ isLoading }\n\t\t\t\t\t\tlabel={ __( 'Global Styles pagination navigation' ) }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ isLoadingRevisionWithUnsavedChanges && (\n\t\t\t\t<ConfirmDialog\n\t\t\t\t\tisOpen={ isLoadingRevisionWithUnsavedChanges }\n\t\t\t\t\tconfirmButtonText={ __( 'Apply' ) }\n\t\t\t\t\tonConfirm={ () =>\n\t\t\t\t\t\trestoreRevision( currentlySelectedRevision )\n\t\t\t\t\t}\n\t\t\t\t\tonCancel={ () =>\n\t\t\t\t\t\tsetIsLoadingRevisionWithUnsavedChanges( false )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Any unsaved changes will be lost when you apply this revision.'\n\t\t\t\t\t) }\n\t\t\t\t</ConfirmDialog>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default ScreenRevisions;\n","/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalUseNavigator as useNavigator,\n\tcreateSlotFill,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n} from '@wordpress/components';\nimport { getBlockTypes, store as blocksStore } from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { moreVertical } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport ScreenRoot from './screen-root';\nimport {\n\tuseBlockHasGlobalStyles,\n\tdefault as ScreenBlockList,\n} from './screen-block-list';\nimport ScreenBlock from './screen-block';\nimport ScreenTypography from './screen-typography';\nimport ScreenTypographyElement from './screen-typography-element';\nimport ScreenColors from './screen-colors';\nimport ScreenColorPalette from './screen-color-palette';\nimport ScreenLayout from './screen-layout';\nimport ScreenStyleVariations from './screen-style-variations';\nimport StyleBook from '../style-book';\nimport ScreenCSS from './screen-css';\nimport ScreenRevisions from './screen-revisions';\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\n\nconst SLOT_FILL_NAME = 'GlobalStylesMenu';\nconst { useGlobalStylesReset } = unlock( blockEditorPrivateApis );\nconst { Slot: GlobalStylesMenuSlot, Fill: GlobalStylesMenuFill } =\n\tcreateSlotFill( SLOT_FILL_NAME );\n\nfunction GlobalStylesActionMenu() {\n\tconst [ canReset, onReset ] = useGlobalStylesReset();\n\tconst { toggle } = useDispatch( preferencesStore );\n\tconst { canEditCSS } = useSelect( ( select ) => {\n\t\tconst { getEntityRecord, __experimentalGetCurrentGlobalStylesId } =\n\t\t\tselect( coreStore );\n\n\t\tconst globalStylesId = __experimentalGetCurrentGlobalStylesId();\n\t\tconst globalStyles = globalStylesId\n\t\t\t? getEntityRecord( 'root', 'globalStyles', globalStylesId )\n\t\t\t: undefined;\n\n\t\treturn {\n\t\t\tcanEditCSS: !! globalStyles?._links?.[ 'wp:action-edit-css' ],\n\t\t};\n\t}, [] );\n\tconst { setEditorCanvasContainerView } = unlock(\n\t\tuseDispatch( editSiteStore )\n\t);\n\tconst { goTo } = useNavigator();\n\tconst loadCustomCSS = () => {\n\t\tsetEditorCanvasContainerView( 'global-styles-css' );\n\t\tgoTo( '/css' );\n\t};\n\n\treturn (\n\t\t<GlobalStylesMenuFill>\n\t\t\t<DropdownMenu icon={ moreVertical } label={ __( 'More' ) }>\n\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t{ canEditCSS && (\n\t\t\t\t\t\t\t\t<MenuItem onClick={ loadCustomCSS }>\n\t\t\t\t\t\t\t\t\t{ __( 'Additional CSS' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\ttoggle(\n\t\t\t\t\t\t\t\t\t\t'core/edit-site',\n\t\t\t\t\t\t\t\t\t\t'welcomeGuideStyles'\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Welcome Guide' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tonReset();\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tdisabled={ ! canReset }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Reset styles' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</DropdownMenu>\n\t\t</GlobalStylesMenuFill>\n\t);\n}\n\nfunction GlobalStylesNavigationScreen( { className, ...props } ) {\n\treturn (\n\t\t<NavigatorScreen\n\t\t\tclassName={ [\n\t\t\t\t'edit-site-global-styles-sidebar__navigator-screen',\n\t\t\t\tclassName,\n\t\t\t]\n\t\t\t\t.filter( Boolean )\n\t\t\t\t.join( ' ' ) }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n\nfunction BlockStylesNavigationScreens( {\n\tparentMenu,\n\tblockStyles,\n\tblockName,\n} ) {\n\treturn blockStyles.map( ( style, index ) => (\n\t\t<GlobalStylesNavigationScreen\n\t\t\tkey={ index }\n\t\t\tpath={ parentMenu + '/variations/' + style.name }\n\t\t>\n\t\t\t<ScreenBlock name={ blockName } variation={ style.name } />\n\t\t</GlobalStylesNavigationScreen>\n\t) );\n}\n\nfunction ContextScreens( { name, parentMenu = '' } ) {\n\tconst blockStyleVariations = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockStyles } = select( blocksStore );\n\t\t\treturn getBlockStyles( name );\n\t\t},\n\t\t[ name ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<GlobalStylesNavigationScreen\n\t\t\t\tpath={ parentMenu + '/colors/palette' }\n\t\t\t>\n\t\t\t\t<ScreenColorPalette name={ name } />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t{ !! blockStyleVariations?.length && (\n\t\t\t\t<BlockStylesNavigationScreens\n\t\t\t\t\tparentMenu={ parentMenu }\n\t\t\t\t\tblockStyles={ blockStyleVariations }\n\t\t\t\t\tblockName={ name }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction GlobalStylesStyleBook() {\n\tconst navigator = useNavigator();\n\tconst { path } = navigator.location;\n\treturn (\n\t\t<StyleBook\n\t\t\tisSelected={ ( blockName ) =>\n\t\t\t\t// Match '/blocks/core%2Fbutton' and\n\t\t\t\t// '/blocks/core%2Fbutton/typography', but not\n\t\t\t\t// '/blocks/core%2Fbuttons'.\n\t\t\t\tpath === `/blocks/${ encodeURIComponent( blockName ) }` ||\n\t\t\t\tpath.startsWith(\n\t\t\t\t\t`/blocks/${ encodeURIComponent( blockName ) }/`\n\t\t\t\t)\n\t\t\t}\n\t\t\tonSelect={ ( blockName ) => {\n\t\t\t\t// Now go to the selected block.\n\t\t\t\tnavigator.goTo( '/blocks/' + encodeURIComponent( blockName ) );\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nfunction GlobalStylesBlockLink() {\n\tconst navigator = useNavigator();\n\tconst { selectedBlockName, selectedBlockClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSelectedBlockClientId, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst clientId = getSelectedBlockClientId();\n\t\t\treturn {\n\t\t\t\tselectedBlockName: getBlockName( clientId ),\n\t\t\t\tselectedBlockClientId: clientId,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst blockHasGlobalStyles = useBlockHasGlobalStyles( selectedBlockName );\n\t// When we're in the `Blocks` screen enable deep linking to the selected block.\n\tuseEffect( () => {\n\t\tif ( ! selectedBlockClientId || ! blockHasGlobalStyles ) {\n\t\t\treturn;\n\t\t}\n\t\tconst currentPath = navigator.location.path;\n\t\tif (\n\t\t\tcurrentPath !== '/blocks' &&\n\t\t\t! currentPath.startsWith( '/blocks/' )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tconst newPath = '/blocks/' + encodeURIComponent( selectedBlockName );\n\t\t// Avoid navigating to the same path. This can happen when selecting\n\t\t// a new block of the same type.\n\t\tif ( newPath !== currentPath ) {\n\t\t\tnavigator.goTo( newPath, { skipFocus: true } );\n\t\t}\n\t}, [ selectedBlockClientId, selectedBlockName, blockHasGlobalStyles ] );\n}\n\nfunction GlobalStylesEditorCanvasContainerLink() {\n\tconst { goTo } = useNavigator();\n\tconst editorCanvasContainerView = useSelect(\n\t\t( select ) =>\n\t\t\tunlock( select( editSiteStore ) ).getEditorCanvasContainerView(),\n\t\t[]\n\t);\n\n\t// If the user switches the editor canvas container view, redirect\n\t// to the appropriate screen. This effectively allows deep linking to the\n\t// desired screens from outside the global styles navigation provider.\n\tuseEffect( () => {\n\t\tswitch ( editorCanvasContainerView ) {\n\t\t\tcase 'global-styles-revisions':\n\t\t\tcase 'global-styles-revisions:style-book':\n\t\t\t\tgoTo( '/revisions' );\n\t\t\t\tbreak;\n\t\t\tcase 'global-styles-css':\n\t\t\t\tgoTo( '/css' );\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tgoTo( '/' );\n\t\t\t\tbreak;\n\t\t}\n\t}, [ editorCanvasContainerView, goTo ] );\n}\n\nfunction GlobalStylesUI() {\n\tconst blocks = getBlockTypes();\n\tconst editorCanvasContainerView = useSelect(\n\t\t( select ) =>\n\t\t\tunlock( select( editSiteStore ) ).getEditorCanvasContainerView(),\n\t\t[]\n\t);\n\treturn (\n\t\t<NavigatorProvider\n\t\t\tclassName=\"edit-site-global-styles-sidebar__navigator-provider\"\n\t\t\tinitialPath=\"/\"\n\t\t>\n\t\t\t<GlobalStylesNavigationScreen path=\"/\">\n\t\t\t\t<ScreenRoot />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/variations\">\n\t\t\t\t<ScreenStyleVariations />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/blocks\">\n\t\t\t\t<ScreenBlockList />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/typography\">\n\t\t\t\t<ScreenTypography />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/typography/text\">\n\t\t\t\t<ScreenTypographyElement element=\"text\" />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/typography/link\">\n\t\t\t\t<ScreenTypographyElement element=\"link\" />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/typography/heading\">\n\t\t\t\t<ScreenTypographyElement element=\"heading\" />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/typography/caption\">\n\t\t\t\t<ScreenTypographyElement element=\"caption\" />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/typography/button\">\n\t\t\t\t<ScreenTypographyElement element=\"button\" />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/colors\">\n\t\t\t\t<ScreenColors />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/layout\">\n\t\t\t\t<ScreenLayout />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path=\"/css\">\n\t\t\t\t<ScreenCSS />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t<GlobalStylesNavigationScreen path={ '/revisions' }>\n\t\t\t\t<ScreenRevisions />\n\t\t\t</GlobalStylesNavigationScreen>\n\n\t\t\t{ blocks.map( ( block ) => (\n\t\t\t\t<GlobalStylesNavigationScreen\n\t\t\t\t\tkey={ 'menu-block-' + block.name }\n\t\t\t\t\tpath={ '/blocks/' + encodeURIComponent( block.name ) }\n\t\t\t\t>\n\t\t\t\t\t<ScreenBlock name={ block.name } />\n\t\t\t\t</GlobalStylesNavigationScreen>\n\t\t\t) ) }\n\n\t\t\t<ContextScreens />\n\n\t\t\t{ blocks.map( ( block ) => (\n\t\t\t\t<ContextScreens\n\t\t\t\t\tkey={ 'screens-block-' + block.name }\n\t\t\t\t\tname={ block.name }\n\t\t\t\t\tparentMenu={ '/blocks/' + encodeURIComponent( block.name ) }\n\t\t\t\t/>\n\t\t\t) ) }\n\n\t\t\t{ 'style-book' === editorCanvasContainerView && (\n\t\t\t\t<GlobalStylesStyleBook />\n\t\t\t) }\n\n\t\t\t<GlobalStylesActionMenu />\n\t\t\t<GlobalStylesBlockLink />\n\t\t\t<GlobalStylesEditorCanvasContainerLink />\n\t\t</NavigatorProvider>\n\t);\n}\nexport { GlobalStylesMenuSlot };\nexport default GlobalStylesUI;\n","/**\n * WordPress dependencies\n */\nimport {\n\tFlexItem,\n\tFlexBlock,\n\tFlex,\n\tButton,\n\t__experimentalUseNavigator as useNavigator,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { styles, seen, backup } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect } from '@wordpress/element';\nimport { store as interfaceStore } from '@wordpress/interface';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport DefaultSidebar from './default-sidebar';\nimport { GlobalStylesUI } from '../global-styles';\nimport { store as editSiteStore } from '../../store';\nimport { GlobalStylesMenuSlot } from '../global-styles/ui';\nimport { unlock } from '../../lock-unlock';\nimport { store as coreStore } from '@wordpress/core-data';\n\nexport default function GlobalStylesSidebar() {\n\tconst {\n\t\tshouldClearCanvasContainerView,\n\t\tisStyleBookOpened,\n\t\tshowListViewByDefault,\n\t\thasRevisions,\n\t\tisRevisionsOpened,\n\t\tisRevisionsStyleBookOpened,\n\t} = useSelect( ( select ) => {\n\t\tconst { getActiveComplementaryArea } = select( interfaceStore );\n\t\tconst { getEditorCanvasContainerView, getCanvasMode } = unlock(\n\t\t\tselect( editSiteStore )\n\t\t);\n\t\tconst canvasContainerView = getEditorCanvasContainerView();\n\t\tconst _isVisualEditorMode =\n\t\t\t'visual' === select( editSiteStore ).getEditorMode();\n\t\tconst _isEditCanvasMode = 'edit' === getCanvasMode();\n\t\tconst _showListViewByDefault = select( preferencesStore ).get(\n\t\t\t'core',\n\t\t\t'showListViewByDefault'\n\t\t);\n\t\tconst { getEntityRecord, __experimentalGetCurrentGlobalStylesId } =\n\t\t\tselect( coreStore );\n\n\t\tconst globalStylesId = __experimentalGetCurrentGlobalStylesId();\n\t\tconst globalStyles = globalStylesId\n\t\t\t? getEntityRecord( 'root', 'globalStyles', globalStylesId )\n\t\t\t: undefined;\n\n\t\treturn {\n\t\t\tisStyleBookOpened: 'style-book' === canvasContainerView,\n\t\t\tshouldClearCanvasContainerView:\n\t\t\t\t'edit-site/global-styles' !==\n\t\t\t\t\tgetActiveComplementaryArea( 'core/edit-site' ) ||\n\t\t\t\t! _isVisualEditorMode ||\n\t\t\t\t! _isEditCanvasMode,\n\t\t\tshowListViewByDefault: _showListViewByDefault,\n\t\t\thasRevisions:\n\t\t\t\t!! globalStyles?._links?.[ 'version-history' ]?.[ 0 ]?.count,\n\t\t\tisRevisionsStyleBookOpened:\n\t\t\t\t'global-styles-revisions:style-book' === canvasContainerView,\n\t\t\tisRevisionsOpened:\n\t\t\t\t'global-styles-revisions' === canvasContainerView,\n\t\t};\n\t}, [] );\n\tconst { setEditorCanvasContainerView } = unlock(\n\t\tuseDispatch( editSiteStore )\n\t);\n\n\tuseEffect( () => {\n\t\tif ( shouldClearCanvasContainerView ) {\n\t\t\tsetEditorCanvasContainerView( undefined );\n\t\t}\n\t}, [ shouldClearCanvasContainerView ] );\n\n\tconst { setIsListViewOpened } = useDispatch( editorStore );\n\tconst { goTo } = useNavigator();\n\n\tconst toggleRevisions = () => {\n\t\tsetIsListViewOpened( false );\n\t\tif ( isRevisionsStyleBookOpened ) {\n\t\t\tgoTo( '/' );\n\t\t\tsetEditorCanvasContainerView( 'style-book' );\n\t\t\treturn;\n\t\t}\n\t\tif ( isRevisionsOpened ) {\n\t\t\tgoTo( '/' );\n\t\t\tsetEditorCanvasContainerView( undefined );\n\t\t\treturn;\n\t\t}\n\t\tgoTo( '/revisions' );\n\n\t\tif ( isStyleBookOpened ) {\n\t\t\tsetEditorCanvasContainerView(\n\t\t\t\t'global-styles-revisions:style-book'\n\t\t\t);\n\t\t} else {\n\t\t\tsetEditorCanvasContainerView( 'global-styles-revisions' );\n\t\t}\n\t};\n\tconst toggleStyleBook = () => {\n\t\tif ( isRevisionsOpened ) {\n\t\t\tsetEditorCanvasContainerView(\n\t\t\t\t'global-styles-revisions:style-book'\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tif ( isRevisionsStyleBookOpened ) {\n\t\t\tsetEditorCanvasContainerView( 'global-styles-revisions' );\n\t\t\treturn;\n\t\t}\n\t\tsetIsListViewOpened( isStyleBookOpened && showListViewByDefault );\n\t\tsetEditorCanvasContainerView(\n\t\t\tisStyleBookOpened ? undefined : 'style-book'\n\t\t);\n\t};\n\n\treturn (\n\t\t<DefaultSidebar\n\t\t\tclassName=\"edit-site-global-styles-sidebar\"\n\t\t\tidentifier=\"edit-site/global-styles\"\n\t\t\ttitle={ __( 'Styles' ) }\n\t\t\ticon={ styles }\n\t\t\tcloseLabel={ __( 'Close Styles' ) }\n\t\t\tpanelClassName=\"edit-site-global-styles-sidebar__panel\"\n\t\t\theader={\n\t\t\t\t<Flex\n\t\t\t\t\tclassName=\"edit-site-global-styles-sidebar__header\"\n\t\t\t\t\trole=\"menubar\"\n\t\t\t\t\taria-label={ __( 'Styles actions' ) }\n\t\t\t\t>\n\t\t\t\t\t<FlexBlock style={ { minWidth: 'min-content' } }>\n\t\t\t\t\t\t<strong>{ __( 'Styles' ) }</strong>\n\t\t\t\t\t</FlexBlock>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={ seen }\n\t\t\t\t\t\t\tlabel={ __( 'Style Book' ) }\n\t\t\t\t\t\t\tisPressed={\n\t\t\t\t\t\t\t\tisStyleBookOpened || isRevisionsStyleBookOpened\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdisabled={ shouldClearCanvasContainerView }\n\t\t\t\t\t\t\tonClick={ toggleStyleBook }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tlabel={ __( 'Revisions' ) }\n\t\t\t\t\t\t\ticon={ backup }\n\t\t\t\t\t\t\tonClick={ toggleRevisions }\n\t\t\t\t\t\t\tdisabled={ ! hasRevisions }\n\t\t\t\t\t\t\tisPressed={\n\t\t\t\t\t\t\t\tisRevisionsOpened || isRevisionsStyleBookOpened\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<GlobalStylesMenuSlot />\n\t\t\t\t</Flex>\n\t\t\t}\n\t\t>\n\t\t\t<GlobalStylesUI />\n\t\t</DefaultSidebar>\n\t);\n}\n","export const SIDEBAR_TEMPLATE = 'edit-site/template';\nexport const SIDEBAR_BLOCK = 'edit-site/block-inspector';\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as interfaceStore } from '@wordpress/interface';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { STORE_NAME } from '../../../store/constants';\nimport { SIDEBAR_BLOCK, SIDEBAR_TEMPLATE } from '../constants';\nimport { store as editSiteStore } from '../../../store';\nimport { POST_TYPE_LABELS, TEMPLATE_POST_TYPE } from '../../../utils/constants';\n\nconst SettingsHeader = ( { sidebarName } ) => {\n\tconst { isEditingPage, entityType } = useSelect( ( select ) => {\n\t\tconst { getEditedPostType, isPage } = select( editSiteStore );\n\t\tconst { getRenderingMode } = select( editorStore );\n\n\t\treturn {\n\t\t\tisEditingPage: isPage() && getRenderingMode() !== 'template-only',\n\t\t\tentityType: getEditedPostType(),\n\t\t};\n\t} );\n\n\tconst entityLabel =\n\t\tPOST_TYPE_LABELS[ entityType ] ||\n\t\tPOST_TYPE_LABELS[ TEMPLATE_POST_TYPE ];\n\n\tconst { enableComplementaryArea } = useDispatch( interfaceStore );\n\tconst openTemplateSettings = () =>\n\t\tenableComplementaryArea( STORE_NAME, SIDEBAR_TEMPLATE );\n\tconst openBlockSettings = () =>\n\t\tenableComplementaryArea( STORE_NAME, SIDEBAR_BLOCK );\n\n\tlet templateAriaLabel;\n\tif ( isEditingPage ) {\n\t\ttemplateAriaLabel =\n\t\t\tsidebarName === SIDEBAR_TEMPLATE\n\t\t\t\t? // translators: ARIA label for the Template sidebar tab, selected.\n\t\t\t\t  __( 'Page (selected)' )\n\t\t\t\t: // translators: ARIA label for the Template Settings Sidebar tab, not selected.\n\t\t\t\t  __( 'Page' );\n\t} else {\n\t\ttemplateAriaLabel =\n\t\t\tsidebarName === SIDEBAR_TEMPLATE\n\t\t\t\t? // translators: ARIA label for the Template sidebar tab, selected.\n\t\t\t\t  sprintf( __( '%s (selected)' ), entityLabel )\n\t\t\t\t: // translators: ARIA label for the Template Settings Sidebar tab, not selected.\n\t\t\t\t  entityLabel;\n\t}\n\n\t/* Use a list so screen readers will announce how many tabs there are. */\n\treturn (\n\t\t<ul>\n\t\t\t<li>\n\t\t\t\t<Button\n\t\t\t\t\tonClick={ openTemplateSettings }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'edit-site-sidebar-edit-mode__panel-tab',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-active': sidebarName === SIDEBAR_TEMPLATE,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={ templateAriaLabel }\n\t\t\t\t\tdata-label={ isEditingPage ? __( 'Page' ) : entityLabel }\n\t\t\t\t>\n\t\t\t\t\t{ isEditingPage ? __( 'Page' ) : entityLabel }\n\t\t\t\t</Button>\n\t\t\t</li>\n\t\t\t<li>\n\t\t\t\t<Button\n\t\t\t\t\tonClick={ openBlockSettings }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'edit-site-sidebar-edit-mode__panel-tab',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-active': sidebarName === SIDEBAR_BLOCK,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={\n\t\t\t\t\t\tsidebarName === SIDEBAR_BLOCK\n\t\t\t\t\t\t\t? // translators: ARIA label for the Block Settings Sidebar tab, selected.\n\t\t\t\t\t\t\t  __( 'Block (selected)' )\n\t\t\t\t\t\t\t: // translators: ARIA label for the Block Settings Sidebar tab, not selected.\n\t\t\t\t\t\t\t  __( 'Block' )\n\t\t\t\t\t}\n\t\t\t\t\tdata-label={ __( 'Block' ) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Block' ) }\n\t\t\t\t</Button>\n\t\t\t</li>\n\t\t</ul>\n\t);\n};\n\nexport default SettingsHeader;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Icon } from '@wordpress/components';\n\nexport default function SidebarCard( {\n\tclassName,\n\ttitle,\n\ticon,\n\tdescription,\n\tactions,\n\tchildren,\n} ) {\n\treturn (\n\t\t<div className={ classnames( 'edit-site-sidebar-card', className ) }>\n\t\t\t<Icon className=\"edit-site-sidebar-card__icon\" icon={ icon } />\n\t\t\t<div className=\"edit-site-sidebar-card__content\">\n\t\t\t\t<div className=\"edit-site-sidebar-card__header\">\n\t\t\t\t\t<h2 className=\"edit-site-sidebar-card__title\">{ title }</h2>\n\t\t\t\t\t{ actions }\n\t\t\t\t</div>\n\t\t\t\t<div className=\"edit-site-sidebar-card__description\">\n\t\t\t\t\t{ description }\n\t\t\t\t</div>\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../../lock-unlock';\n\nconst { BlockQuickNavigation } = unlock( blockEditorPrivateApis );\n\nexport default function PageContent() {\n\tconst clientIdsTree = useSelect(\n\t\t( select ) =>\n\t\t\tunlock( select( blockEditorStore ) ).getEnabledClientIdsTree(),\n\t\t[]\n\t);\n\tconst clientIds = useMemo(\n\t\t() => clientIdsTree.map( ( { clientId } ) => clientId ),\n\t\t[ clientIdsTree ]\n\t);\n\treturn <BlockQuickNavigation clientIds={ clientIds } />;\n}\n","/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tToggleControl,\n\tDropdown,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tTextControl,\n\tRadioControl,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { useState, useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';\nimport { useInstanceId } from '@wordpress/compose';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport StatusLabel from '../../sidebar-navigation-screen-page/status-label';\nimport { unlock } from '../../../lock-unlock';\n\nconst { PostPanelRow } = unlock( editorPrivateApis );\n\nconst STATUS_OPTIONS = [\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Draft' ) }\n\t\t\t\t<Text variant=\"muted\">{ __( 'Not ready to publish.' ) }</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'draft',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Pending' ) }\n\t\t\t\t<Text variant=\"muted\">\n\t\t\t\t\t{ __( 'Waiting for review before publishing.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'pending',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Private' ) }\n\t\t\t\t<Text variant=\"muted\">\n\t\t\t\t\t{ __( 'Only visible to site admins and editors.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'private',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Scheduled' ) }\n\t\t\t\t<Text variant=\"muted\">\n\t\t\t\t\t{ __( 'Publish automatically on a chosen date.' ) }\n\t\t\t\t</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'future',\n\t},\n\t{\n\t\tlabel: (\n\t\t\t<>\n\t\t\t\t{ __( 'Published' ) }\n\t\t\t\t<Text variant=\"muted\">{ __( 'Visible to everyone.' ) }</Text>\n\t\t\t</>\n\t\t),\n\t\tvalue: 'publish',\n\t},\n];\n\nexport default function PageStatus( {\n\tpostType,\n\tpostId,\n\tstatus,\n\tpassword,\n\tdate,\n} ) {\n\tconst [ showPassword, setShowPassword ] = useState( !! password );\n\tconst instanceId = useInstanceId( PageStatus );\n\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\t'aria-label': __( 'Change status' ),\n\t\t\tplacement: 'bottom-end',\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\n\tconst saveStatus = async ( {\n\t\tstatus: newStatus = status,\n\t\tpassword: newPassword = password,\n\t\tdate: newDate = date,\n\t} ) => {\n\t\ttry {\n\t\t\tawait editEntityRecord( 'postType', postType, postId, {\n\t\t\t\tstatus: newStatus,\n\t\t\t\tdate: newDate,\n\t\t\t\tpassword: newPassword,\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while updating the status' );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst handleTogglePassword = ( value ) => {\n\t\tsetShowPassword( value );\n\t\tif ( ! value ) {\n\t\t\tsaveStatus( { password: '' } );\n\t\t}\n\t};\n\n\tconst handleStatus = ( value ) => {\n\t\tlet newDate = date;\n\t\tlet newPassword = password;\n\t\tif ( value === 'publish' ) {\n\t\t\tif ( new Date( date ) > new Date() ) {\n\t\t\t\tnewDate = null;\n\t\t\t}\n\t\t} else if ( value === 'future' ) {\n\t\t\tif ( ! date || new Date( date ) < new Date() ) {\n\t\t\t\tnewDate = new Date();\n\t\t\t\tnewDate.setDate( newDate.getDate() + 7 );\n\t\t\t}\n\t\t} else if ( value === 'private' && password ) {\n\t\t\tsetShowPassword( false );\n\t\t\tnewPassword = '';\n\t\t}\n\t\tsaveStatus( {\n\t\t\tstatus: value,\n\t\t\tdate: newDate,\n\t\t\tpassword: newPassword,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<PostPanelRow label={ __( 'Status' ) }>\n\t\t\t<Dropdown\n\t\t\t\tcontentClassName=\"edit-site-change-status__content\"\n\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\tfocusOnMount\n\t\t\t\tref={ setPopoverAnchor }\n\t\t\t\trenderToggle={ ( { onToggle } ) => (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"edit-site-summary-field__trigger\"\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t>\n\t\t\t\t\t\t<StatusLabel\n\t\t\t\t\t\t\tstatus={ password ? 'protected' : status }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<InspectorPopoverHeader\n\t\t\t\t\t\t\ttitle={ __( 'Status' ) }\n\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<form>\n\t\t\t\t\t\t\t<VStack spacing={ 5 }>\n\t\t\t\t\t\t\t\t<RadioControl\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-change-status__options\"\n\t\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Status' ) }\n\t\t\t\t\t\t\t\t\toptions={ STATUS_OPTIONS }\n\t\t\t\t\t\t\t\t\tonChange={ handleStatus }\n\t\t\t\t\t\t\t\t\tselected={ status }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ status !== 'private' && (\n\t\t\t\t\t\t\t\t\t<fieldset className=\"edit-site-change-status__password-fieldset\">\n\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\tas=\"legend\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"edit-site-change-status__password-legend\"\n\t\t\t\t\t\t\t\t\t\t\tsize=\"11\"\n\t\t\t\t\t\t\t\t\t\t\tlineHeight={ 1.4 }\n\t\t\t\t\t\t\t\t\t\t\tweight={ 500 }\n\t\t\t\t\t\t\t\t\t\t\tupperCase={ true }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Password' ) }\n\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Hide this page behind a password'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tchecked={ showPassword }\n\t\t\t\t\t\t\t\t\t\t\tonChange={ handleTogglePassword }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{ showPassword && (\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"edit-site-change-status__password-input\">\n\t\t\t\t\t\t\t\t\t\t\t\t<VisuallyHidden\n\t\t\t\t\t\t\t\t\t\t\t\t\tas=\"label\"\n\t\t\t\t\t\t\t\t\t\t\t\t\thtmlFor={ `edit-site-change-status__password-input-${ instanceId }` }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Create password' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsaveStatus( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpassword: value,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={ password }\n\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Use a secure password'\n\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tid={ `edit-site-change-status__password-input-${ instanceId }` }\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</fieldset>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</form>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t/>\n\t\t</PostPanelRow>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __experimentalVStack as VStack } from '@wordpress/components';\nimport {\n\tPostAuthorPanel,\n\tPostURLPanel,\n\tPostSchedulePanel,\n\tPostTemplatePanel,\n} from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport PageStatus from './page-status';\n\nexport default function PageSummary( {\n\tstatus,\n\tdate,\n\tpassword,\n\tpostId,\n\tpostType,\n} ) {\n\treturn (\n\t\t<VStack spacing={ 0 }>\n\t\t\t<PageStatus\n\t\t\t\tstatus={ status }\n\t\t\t\tdate={ date }\n\t\t\t\tpassword={ password }\n\t\t\t\tpostId={ postId }\n\t\t\t\tpostType={ postType }\n\t\t\t/>\n\t\t\t<PostSchedulePanel />\n\t\t\t<PostTemplatePanel />\n\t\t\t<PostURLPanel />\n\t\t\t<PostAuthorPanel />\n\t\t</VStack>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport {\n\tPanelBody,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { page as pageIcon } from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { humanTimeDiff } from '@wordpress/date';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport {\n\tPageAttributesPanel,\n\tPostDiscussionPanel,\n\tPostExcerptPanel,\n\tPostFeaturedImagePanel,\n\tPostLastRevisionPanel,\n\tPostTaxonomiesPanel,\n\tstore as editorStore,\n} from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../../store';\nimport SidebarCard from '../sidebar-card';\nimport PageContent from './page-content';\nimport PageSummary from './page-summary';\n\nexport default function PagePanels() {\n\tconst {\n\t\tid,\n\t\ttype,\n\t\thasResolved,\n\t\tstatus,\n\t\tdate,\n\t\tpassword,\n\t\ttitle,\n\t\tmodified,\n\t\trenderingMode,\n\t} = useSelect( ( select ) => {\n\t\tconst { getEditedPostContext } = select( editSiteStore );\n\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\tselect( coreStore );\n\t\tconst { getRenderingMode } = select( editorStore );\n\t\tconst context = getEditedPostContext();\n\t\tconst queryArgs = [ 'postType', context.postType, context.postId ];\n\t\tconst page = getEditedEntityRecord( ...queryArgs );\n\t\treturn {\n\t\t\thasResolved: hasFinishedResolution(\n\t\t\t\t'getEditedEntityRecord',\n\t\t\t\tqueryArgs\n\t\t\t),\n\t\t\ttitle: page?.title,\n\t\t\tid: page?.id,\n\t\t\ttype: page?.type,\n\t\t\tstatus: page?.status,\n\t\t\tdate: page?.date,\n\t\t\tpassword: page?.password,\n\t\t\tmodified: page?.modified,\n\t\t\trenderingMode: getRenderingMode(),\n\t\t};\n\t}, [] );\n\n\tif ( ! hasResolved ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<PanelBody>\n\t\t\t\t<SidebarCard\n\t\t\t\t\ttitle={ decodeEntities( title ) }\n\t\t\t\t\ticon={ pageIcon }\n\t\t\t\t\tdescription={\n\t\t\t\t\t\t<VStack>\n\t\t\t\t\t\t\t<Text>\n\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t// translators: %s: Human-readable time difference, e.g. \"2 days ago\".\n\t\t\t\t\t\t\t\t\t__( 'Last edited %s' ),\n\t\t\t\t\t\t\t\t\thumanTimeDiff( modified )\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\t\t\t<PanelBody title={ __( 'Summary' ) }>\n\t\t\t\t<PageSummary\n\t\t\t\t\tstatus={ status }\n\t\t\t\t\tdate={ date }\n\t\t\t\t\tpassword={ password }\n\t\t\t\t\tpostId={ id }\n\t\t\t\t\tpostType={ type }\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\t\t\t{ renderingMode !== 'post-only' && (\n\t\t\t\t<PanelBody title={ __( 'Content' ) }>\n\t\t\t\t\t<PageContent />\n\t\t\t\t</PanelBody>\n\t\t\t) }\n\t\t\t<PostLastRevisionPanel />\n\t\t\t<PostTaxonomiesPanel />\n\t\t\t<PostFeaturedImagePanel />\n\t\t\t<PostExcerptPanel />\n\t\t\t<PostDiscussionPanel />\n\t\t\t<PageAttributesPanel />\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { __experimentalBlockPatternsList as BlockPatternsList } from '@wordpress/block-editor';\nimport { MenuItem, Modal } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useAsyncList } from '@wordpress/compose';\nimport { serialize } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../../store';\n\nexport default function ReplaceTemplateButton( {\n\tonClick,\n\tavailableTemplates,\n} ) {\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst [ showModal, setShowModal ] = useState( false );\n\tconst onClose = () => {\n\t\tsetShowModal( false );\n\t};\n\n\tconst { postId, postType } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tpostId: select( editSiteStore ).getEditedPostId(),\n\t\t\tpostType: select( editSiteStore ).getEditedPostType(),\n\t\t};\n\t}, [] );\n\n\tconst onTemplateSelect = async ( selectedTemplate ) => {\n\t\tonClose(); // Close the template suggestions modal first.\n\t\tonClick();\n\t\tawait editEntityRecord( 'postType', postType, postId, {\n\t\t\tblocks: selectedTemplate.blocks,\n\t\t\tcontent: serialize( selectedTemplate.blocks ),\n\t\t} );\n\t};\n\n\tif ( ! availableTemplates.length || availableTemplates.length < 1 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\tinfo={ __(\n\t\t\t\t\t'Replace the contents of this template with another.'\n\t\t\t\t) }\n\t\t\t\tonClick={ () => setShowModal( true ) }\n\t\t\t>\n\t\t\t\t{ __( 'Replace template' ) }\n\t\t\t</MenuItem>\n\n\t\t\t{ showModal && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Choose a template' ) }\n\t\t\t\t\tonRequestClose={ onClose }\n\t\t\t\t\toverlayClassName=\"edit-site-template-panel__replace-template-modal\"\n\t\t\t\t\tisFullScreen\n\t\t\t\t>\n\t\t\t\t\t<div className=\"edit-site-template-panel__replace-template-modal__content\">\n\t\t\t\t\t\t<TemplatesList\n\t\t\t\t\t\t\tavailableTemplates={ availableTemplates }\n\t\t\t\t\t\t\tonSelect={ onTemplateSelect }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction TemplatesList( { availableTemplates, onSelect } ) {\n\tconst shownTemplates = useAsyncList( availableTemplates );\n\n\treturn (\n\t\t<BlockPatternsList\n\t\t\tlabel={ __( 'Templates' ) }\n\t\t\tblockPatterns={ availableTemplates }\n\t\t\tshownPatterns={ shownTemplates }\n\t\t\tonClickPattern={ onSelect }\n\t\t/>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { parse } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../../store';\nimport {\n\tEXCLUDED_PATTERN_SOURCES,\n\tPATTERN_TYPES,\n} from '../../../utils/constants';\nimport { unlock } from '../../../lock-unlock';\n\nfunction injectThemeAttributeInBlockTemplateContent(\n\tblock,\n\tcurrentThemeStylesheet\n) {\n\tblock.innerBlocks = block.innerBlocks.map( ( innerBlock ) => {\n\t\treturn injectThemeAttributeInBlockTemplateContent(\n\t\t\tinnerBlock,\n\t\t\tcurrentThemeStylesheet\n\t\t);\n\t} );\n\n\tif (\n\t\tblock.name === 'core/template-part' &&\n\t\tblock.attributes.theme === undefined\n\t) {\n\t\tblock.attributes.theme = currentThemeStylesheet;\n\t}\n\treturn block;\n}\n\nfunction preparePatterns( patterns, template, currentThemeStylesheet ) {\n\t// Filter out duplicates.\n\tconst filterOutDuplicatesByName = ( currentItem, index, items ) =>\n\t\tindex === items.findIndex( ( item ) => currentItem.name === item.name );\n\n\t// Filter out core/directory patterns not included in theme.json.\n\tconst filterOutExcludedPatternSources = ( pattern ) =>\n\t\t! EXCLUDED_PATTERN_SOURCES.includes( pattern.source );\n\n\t// Filter only the patterns that are compatible with the current template.\n\tconst filterCompatiblePatterns = ( pattern ) =>\n\t\tpattern.templateTypes?.includes( template.slug );\n\n\treturn patterns\n\t\t.filter(\n\t\t\t( pattern, index, items ) =>\n\t\t\t\tfilterOutExcludedPatternSources( pattern ) &&\n\t\t\t\tfilterOutDuplicatesByName( pattern, index, items ) &&\n\t\t\t\tfilterCompatiblePatterns( pattern )\n\t\t)\n\t\t.map( ( pattern ) => ( {\n\t\t\t...pattern,\n\t\t\tkeywords: pattern.keywords || [],\n\t\t\ttype: PATTERN_TYPES.theme,\n\t\t\tblocks: parse( pattern.content, {\n\t\t\t\t__unstableSkipMigrationLogs: true,\n\t\t\t} ).map( ( block ) =>\n\t\t\t\tinjectThemeAttributeInBlockTemplateContent(\n\t\t\t\t\tblock,\n\t\t\t\t\tcurrentThemeStylesheet\n\t\t\t\t)\n\t\t\t),\n\t\t} ) );\n}\n\nexport function useAvailablePatterns( template ) {\n\tconst { blockPatterns, restBlockPatterns, currentThemeStylesheet } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst { getSettings } = unlock( select( editSiteStore ) );\n\t\t\tconst settings = getSettings();\n\n\t\t\treturn {\n\t\t\t\tblockPatterns:\n\t\t\t\t\tsettings.__experimentalAdditionalBlockPatterns ??\n\t\t\t\t\tsettings.__experimentalBlockPatterns,\n\t\t\t\trestBlockPatterns: select( coreStore ).getBlockPatterns(),\n\t\t\t\tcurrentThemeStylesheet:\n\t\t\t\t\tselect( coreStore ).getCurrentTheme().stylesheet,\n\t\t\t};\n\t\t}, [] );\n\n\treturn useMemo( () => {\n\t\tconst mergedPatterns = [\n\t\t\t...( blockPatterns || [] ),\n\t\t\t...( restBlockPatterns || [] ),\n\t\t];\n\t\treturn preparePatterns(\n\t\t\tmergedPatterns,\n\t\t\ttemplate,\n\t\t\tcurrentThemeStylesheet\n\t\t);\n\t}, [ blockPatterns, restBlockPatterns, template, currentThemeStylesheet ] );\n}\n","/**\n * WordPress dependencies\n */\nimport { useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../../store';\nimport isTemplateRevertable from '../../../utils/is-template-revertable';\nimport ReplaceTemplateButton from './replace-template-button';\nimport { useAvailablePatterns } from './hooks';\n\nexport default function Actions( { template } ) {\n\tconst availablePatterns = useAvailablePatterns( template );\n\tconst { revertTemplate } = useDispatch( editSiteStore );\n\tconst isRevertable = isTemplateRevertable( template );\n\n\tif (\n\t\t! isRevertable &&\n\t\t( ! availablePatterns.length || availablePatterns.length < 1 )\n\t) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\ticon={ moreVertical }\n\t\t\tlabel={ __( 'Actions' ) }\n\t\t\tclassName=\"edit-site-template-card__actions\"\n\t\t\ttoggleProps={ { isSmall: true } }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t{ isRevertable && (\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tinfo={ __(\n\t\t\t\t\t\t\t\t'Use the template as supplied by the theme.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\trevertTemplate( template );\n\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Clear customizations' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<ReplaceTemplateButton\n\t\t\t\t\t\tavailableTemplates={ availablePatterns }\n\t\t\t\t\t\ttemplate={ template }\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tButton,\n\t__experimentalHeading as Heading,\n} from '@wordpress/components';\nimport { store as editorStore } from '@wordpress/editor';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../../store';\n\nfunction TemplateAreaItem( { area, clientId } ) {\n\tconst { selectBlock, toggleBlockHighlight } =\n\t\tuseDispatch( blockEditorStore );\n\tconst templatePartArea = useSelect(\n\t\t( select ) => {\n\t\t\tconst defaultAreas =\n\t\t\t\tselect(\n\t\t\t\t\teditorStore\n\t\t\t\t).__experimentalGetDefaultTemplatePartAreas();\n\n\t\t\treturn defaultAreas.find(\n\t\t\t\t( defaultArea ) => defaultArea.area === area\n\t\t\t);\n\t\t},\n\t\t[ area ]\n\t);\n\n\tconst highlightBlock = () => toggleBlockHighlight( clientId, true );\n\tconst cancelHighlightBlock = () => toggleBlockHighlight( clientId, false );\n\n\treturn (\n\t\t<Button\n\t\t\tclassName=\"edit-site-template-card__template-areas-item\"\n\t\t\ticon={ templatePartArea?.icon }\n\t\t\tonMouseOver={ highlightBlock }\n\t\t\tonMouseLeave={ cancelHighlightBlock }\n\t\t\tonFocus={ highlightBlock }\n\t\t\tonBlur={ cancelHighlightBlock }\n\t\t\tonClick={ () => {\n\t\t\t\tselectBlock( clientId );\n\t\t\t} }\n\t\t>\n\t\t\t{ templatePartArea?.label }\n\t\t</Button>\n\t);\n}\n\nexport default function TemplateAreas() {\n\tconst templateParts = useSelect(\n\t\t( select ) => select( editSiteStore ).getCurrentTemplateTemplateParts(),\n\t\t[]\n\t);\n\n\tif ( ! templateParts.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<section className=\"edit-site-template-card__template-areas\">\n\t\t\t<Heading\n\t\t\t\tlevel={ 3 }\n\t\t\t\tclassName=\"edit-site-template-card__template-areas-title\"\n\t\t\t>\n\t\t\t\t{ __( 'Areas' ) }\n\t\t\t</Heading>\n\n\t\t\t<ul className=\"edit-site-template-card__template-areas-list\">\n\t\t\t\t{ templateParts.map( ( { templatePart, block } ) => (\n\t\t\t\t\t<li key={ block.clientId }>\n\t\t\t\t\t\t<TemplateAreaItem\n\t\t\t\t\t\t\tarea={ templatePart.area }\n\t\t\t\t\t\t\tclientId={ block.clientId }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</li>\n\t\t\t\t) ) }\n\t\t\t</ul>\n\t\t</section>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { PanelBody } from '@wordpress/components';\nimport {\n\tPageAttributesPanel,\n\tPostDiscussionPanel,\n\tPostExcerptPanel,\n\tPostFeaturedImagePanel,\n\tPostLastRevisionPanel,\n\tPostTaxonomiesPanel,\n\tstore as editorStore,\n} from '@wordpress/editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { navigation, symbol } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../../store';\nimport TemplateActions from './template-actions';\nimport TemplateAreas from './template-areas';\nimport SidebarCard from '../sidebar-card';\n\nconst CARD_ICONS = {\n\twp_block: symbol,\n\twp_navigation: navigation,\n};\n\nexport default function TemplatePanel() {\n\tconst { title, description, icon, record } = useSelect( ( select ) => {\n\t\tconst { getEditedPostType, getEditedPostId } = select( editSiteStore );\n\t\tconst { getEditedEntityRecord } = select( coreStore );\n\t\tconst { __experimentalGetTemplateInfo: getTemplateInfo } =\n\t\t\tselect( editorStore );\n\n\t\tconst type = getEditedPostType();\n\t\tconst postId = getEditedPostId();\n\t\tconst _record = getEditedEntityRecord( 'postType', type, postId );\n\t\tconst info = getTemplateInfo( _record );\n\n\t\treturn {\n\t\t\ttitle: info.title,\n\t\t\tdescription: info.description,\n\t\t\ticon: info.icon,\n\t\t\trecord: _record,\n\t\t};\n\t}, [] );\n\n\tif ( ! title && ! description ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<PanelBody>\n\t\t\t\t<SidebarCard\n\t\t\t\t\tclassName=\"edit-site-template-card\"\n\t\t\t\t\ttitle={ decodeEntities( title ) }\n\t\t\t\t\ticon={ CARD_ICONS[ record?.type ] ?? icon }\n\t\t\t\t\tdescription={ decodeEntities( description ) }\n\t\t\t\t\tactions={ <TemplateActions template={ record } /> }\n\t\t\t\t>\n\t\t\t\t\t<TemplateAreas />\n\t\t\t\t</SidebarCard>\n\t\t\t</PanelBody>\n\t\t\t<PostLastRevisionPanel />\n\t\t\t<PostTaxonomiesPanel />\n\t\t\t<PostFeaturedImagePanel />\n\t\t\t<PostExcerptPanel />\n\t\t\t<PostDiscussionPanel />\n\t\t\t<PageAttributesPanel />\n\t\t</>\n\t);\n}\n","/**\n * Defines an extensibility slot for the Template sidebar.\n */\n\n/**\n * WordPress dependencies\n */\nimport { createSlotFill } from '@wordpress/components';\n\nconst { Fill, Slot } = createSlotFill( 'PluginTemplateSettingPanel' );\n\nconst PluginTemplateSettingPanel = Fill;\nPluginTemplateSettingPanel.Slot = Slot;\n\n/**\n * Renders items in the Template Sidebar below the main information\n * like the Template Card.\n *\n * @example\n * ```jsx\n * // Using ESNext syntax\n * import { PluginTemplateSettingPanel } from '@wordpress/edit-site';\n *\n * const MyTemplateSettingTest = () => (\n * \t\t<PluginTemplateSettingPanel>\n *\t\t\t<p>Hello, World!</p>\n *\t\t</PluginTemplateSettingPanel>\n *\t);\n * ```\n *\n * @return {Component} The component to be rendered.\n */\nexport default PluginTemplateSettingPanel;\n","/**\n * WordPress dependencies\n */\nimport { createSlotFill } from '@wordpress/components';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport { drawerLeft, drawerRight } from '@wordpress/icons';\nimport { useEffect } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as interfaceStore } from '@wordpress/interface';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport DefaultSidebar from './default-sidebar';\nimport GlobalStylesSidebar from './global-styles-sidebar';\nimport { STORE_NAME } from '../../store/constants';\nimport SettingsHeader from './settings-header';\nimport PagePanels from './page-panels';\nimport TemplatePanel from './template-panel';\nimport PluginTemplateSettingPanel from '../plugin-template-setting-panel';\nimport { SIDEBAR_BLOCK, SIDEBAR_TEMPLATE } from './constants';\nimport { store as editSiteStore } from '../../store';\n\nconst { Slot: InspectorSlot, Fill: InspectorFill } = createSlotFill(\n\t'EditSiteSidebarInspector'\n);\nexport const SidebarInspectorFill = InspectorFill;\n\nexport function SidebarComplementaryAreaFills() {\n\tconst {\n\t\tsidebar,\n\t\tisEditorSidebarOpened,\n\t\thasBlockSelection,\n\t\tsupportsGlobalStyles,\n\t\tisEditingPage,\n\t} = useSelect( ( select ) => {\n\t\tconst _sidebar =\n\t\t\tselect( interfaceStore ).getActiveComplementaryArea( STORE_NAME );\n\t\tconst _isEditorSidebarOpened = [\n\t\t\tSIDEBAR_BLOCK,\n\t\t\tSIDEBAR_TEMPLATE,\n\t\t].includes( _sidebar );\n\t\tconst settings = select( editSiteStore ).getSettings();\n\t\treturn {\n\t\t\tsidebar: _sidebar,\n\t\t\tisEditorSidebarOpened: _isEditorSidebarOpened,\n\t\t\thasBlockSelection:\n\t\t\t\t!! select( blockEditorStore ).getBlockSelectionStart(),\n\t\t\tsupportsGlobalStyles: ! settings?.supportsTemplatePartsMode,\n\t\t\tisEditingPage:\n\t\t\t\tselect( editSiteStore ).isPage() &&\n\t\t\t\tselect( editorStore ).getRenderingMode() !== 'template-only',\n\t\t};\n\t}, [] );\n\tconst { enableComplementaryArea } = useDispatch( interfaceStore );\n\n\tuseEffect( () => {\n\t\t// Don't automatically switch tab when the sidebar is closed or when we\n\t\t// are focused on page content.\n\t\tif ( ! isEditorSidebarOpened ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( hasBlockSelection ) {\n\t\t\tif ( ! isEditingPage ) {\n\t\t\t\tenableComplementaryArea( STORE_NAME, SIDEBAR_BLOCK );\n\t\t\t}\n\t\t} else {\n\t\t\tenableComplementaryArea( STORE_NAME, SIDEBAR_TEMPLATE );\n\t\t}\n\t}, [\n\t\thasBlockSelection,\n\t\tisEditorSidebarOpened,\n\t\tisEditingPage,\n\t\tenableComplementaryArea,\n\t] );\n\n\tlet sidebarName = sidebar;\n\tif ( ! isEditorSidebarOpened ) {\n\t\tsidebarName = hasBlockSelection ? SIDEBAR_BLOCK : SIDEBAR_TEMPLATE;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<DefaultSidebar\n\t\t\t\tidentifier={ sidebarName }\n\t\t\t\ttitle={ __( 'Settings' ) }\n\t\t\t\ticon={ isRTL() ? drawerLeft : drawerRight }\n\t\t\t\tcloseLabel={ __( 'Close Settings' ) }\n\t\t\t\theader={ <SettingsHeader sidebarName={ sidebarName } /> }\n\t\t\t\theaderClassName=\"edit-site-sidebar-edit-mode__panel-tabs\"\n\t\t\t>\n\t\t\t\t{ sidebarName === SIDEBAR_TEMPLATE && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ isEditingPage ? <PagePanels /> : <TemplatePanel /> }\n\t\t\t\t\t\t<PluginTemplateSettingPanel.Slot />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t{ sidebarName === SIDEBAR_BLOCK && (\n\t\t\t\t\t<InspectorSlot bubblesVirtually />\n\t\t\t\t) }\n\t\t\t</DefaultSidebar>\n\t\t\t{ supportsGlobalStyles && <GlobalStylesSidebar /> }\n\t\t</>\n\t);\n}\n","/**\n * External dependencies\n */\nimport Textarea from 'react-autosize-textarea';\n\n/**\n * WordPress dependencies\n */\nimport { __unstableSerializeAndClean } from '@wordpress/blocks';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { __ } from '@wordpress/i18n';\nimport { Button, VisuallyHidden } from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\n\nexport default function CodeEditor() {\n\tconst instanceId = useInstanceId( CodeEditor );\n\tconst { shortcut, content, blocks, type, id } = useSelect( ( select ) => {\n\t\tconst { getEditedEntityRecord } = select( coreStore );\n\t\tconst { getEditedPostType, getEditedPostId } = select( editSiteStore );\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\t\tconst _type = getEditedPostType();\n\t\tconst _id = getEditedPostId();\n\t\tconst editedRecord = getEditedEntityRecord( 'postType', _type, _id );\n\n\t\treturn {\n\t\t\tshortcut: getShortcutRepresentation( 'core/edit-site/toggle-mode' ),\n\t\t\tcontent: editedRecord?.content,\n\t\t\tblocks: editedRecord?.blocks,\n\t\t\ttype: _type,\n\t\t\tid: _id,\n\t\t};\n\t}, [] );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\t// Replicates the logic found in getEditedPostContent().\n\tconst realContent = useMemo( () => {\n\t\tif ( content instanceof Function ) {\n\t\t\treturn content( { blocks } );\n\t\t} else if ( blocks ) {\n\t\t\t// If we have parsed blocks already, they should be our source of truth.\n\t\t\t// Parsing applies block deprecations and legacy block conversions that\n\t\t\t// unparsed content will not have.\n\t\t\treturn __unstableSerializeAndClean( blocks );\n\t\t}\n\t\treturn content;\n\t}, [ content, blocks ] );\n\n\tconst { switchEditorMode } = useDispatch( editSiteStore );\n\treturn (\n\t\t<div className=\"edit-site-code-editor\">\n\t\t\t<div className=\"edit-site-code-editor__toolbar\">\n\t\t\t\t<h2>{ __( 'Editing code' ) }</h2>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\tonClick={ () => switchEditorMode( 'visual' ) }\n\t\t\t\t\tshortcut={ shortcut }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Exit code editor' ) }\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t\t<div className=\"edit-site-code-editor__body\">\n\t\t\t\t<VisuallyHidden\n\t\t\t\t\tas=\"label\"\n\t\t\t\t\thtmlFor={ `code-editor-text-area-${ instanceId }` }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Type text or HTML' ) }\n\t\t\t\t</VisuallyHidden>\n\t\t\t\t<Textarea\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tdir=\"auto\"\n\t\t\t\t\tvalue={ realContent }\n\t\t\t\t\tonChange={ ( event ) => {\n\t\t\t\t\t\teditEntityRecord( 'postType', type, id, {\n\t\t\t\t\t\t\tcontent: event.target.value,\n\t\t\t\t\t\t\tblocks: undefined,\n\t\t\t\t\t\t\tselection: undefined,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tclassName=\"edit-site-code-editor-text-area\"\n\t\t\t\t\tid={ `code-editor-text-area-${ instanceId }` }\n\t\t\t\t\tplaceholder={ __( 'Start writing with text or HTML' ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as interfaceStore } from '@wordpress/interface';\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { SIDEBAR_BLOCK } from '../sidebar-edit-mode/constants';\nimport { STORE_NAME } from '../../store/constants';\n\nfunction KeyboardShortcutsEditMode() {\n\tconst { getEditorMode } = useSelect( editSiteStore );\n\tconst isBlockInspectorOpen = useSelect(\n\t\t( select ) =>\n\t\t\tselect( interfaceStore ).getActiveComplementaryArea(\n\t\t\t\teditSiteStore.name\n\t\t\t) === SIDEBAR_BLOCK,\n\t\t[]\n\t);\n\tconst { switchEditorMode, toggleDistractionFree } =\n\t\tuseDispatch( editSiteStore );\n\tconst { enableComplementaryArea, disableComplementaryArea } =\n\t\tuseDispatch( interfaceStore );\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst { getBlockName, getSelectedBlockClientId, getBlockAttributes } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst handleTextLevelShortcut = ( event, level ) => {\n\t\tevent.preventDefault();\n\t\tconst destinationBlockName =\n\t\t\tlevel === 0 ? 'core/paragraph' : 'core/heading';\n\t\tconst currentClientId = getSelectedBlockClientId();\n\t\tif ( currentClientId === null ) {\n\t\t\treturn;\n\t\t}\n\t\tconst blockName = getBlockName( currentClientId );\n\t\tif ( blockName !== 'core/paragraph' && blockName !== 'core/heading' ) {\n\t\t\treturn;\n\t\t}\n\t\tconst attributes = getBlockAttributes( currentClientId );\n\t\tconst textAlign =\n\t\t\tblockName === 'core/paragraph' ? 'align' : 'textAlign';\n\t\tconst destinationTextAlign =\n\t\t\tdestinationBlockName === 'core/paragraph' ? 'align' : 'textAlign';\n\n\t\treplaceBlocks(\n\t\t\tcurrentClientId,\n\t\t\tcreateBlock( destinationBlockName, {\n\t\t\t\tlevel,\n\t\t\t\tcontent: attributes.content,\n\t\t\t\t...{ [ destinationTextAlign ]: attributes[ textAlign ] },\n\t\t\t} )\n\t\t);\n\t};\n\n\tuseShortcut( 'core/edit-site/toggle-block-settings-sidebar', ( event ) => {\n\t\t// This shortcut has no known clashes, but use preventDefault to prevent any\n\t\t// obscure shortcuts from triggering.\n\t\tevent.preventDefault();\n\n\t\tif ( isBlockInspectorOpen ) {\n\t\t\tdisableComplementaryArea( STORE_NAME );\n\t\t} else {\n\t\t\tenableComplementaryArea( STORE_NAME, SIDEBAR_BLOCK );\n\t\t}\n\t} );\n\n\tuseShortcut( 'core/edit-site/toggle-mode', () => {\n\t\tswitchEditorMode( getEditorMode() === 'visual' ? 'text' : 'visual' );\n\t} );\n\n\tuseShortcut( 'core/edit-site/transform-heading-to-paragraph', ( event ) =>\n\t\thandleTextLevelShortcut( event, 0 )\n\t);\n\n\t[ 1, 2, 3, 4, 5, 6 ].forEach( ( level ) => {\n\t\t//the loop is based off on a constant therefore\n\t\t//the hook will execute the same way every time\n\t\t//eslint-disable-next-line react-hooks/rules-of-hooks\n\t\tuseShortcut(\n\t\t\t`core/edit-site/transform-paragraph-to-heading-${ level }`,\n\t\t\t( event ) => handleTextLevelShortcut( event, level )\n\t\t);\n\t} );\n\n\tuseShortcut( 'core/edit-site/toggle-distraction-free', () => {\n\t\ttoggleDistractionFree();\n\t} );\n\n\treturn null;\n}\n\nexport default KeyboardShortcutsEditMode;\n","export default function WelcomeGuideImage( { nonAnimatedSrc, animatedSrc } ) {\n\treturn (\n\t\t<picture className=\"edit-site-welcome-guide__image\">\n\t\t\t<source\n\t\t\t\tsrcSet={ nonAnimatedSrc }\n\t\t\t\tmedia=\"(prefers-reduced-motion: reduce)\"\n\t\t\t/>\n\t\t\t<img src={ animatedSrc } width=\"312\" height=\"240\" alt=\"\" />\n\t\t</picture>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { Guide } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { createInterpolateElement } from '@wordpress/element';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport WelcomeGuideImage from './image';\n\nexport default function WelcomeGuideEditor() {\n\tconst { toggle } = useDispatch( preferencesStore );\n\n\tconst isActive = useSelect(\n\t\t( select ) =>\n\t\t\t!! select( preferencesStore ).get(\n\t\t\t\t'core/edit-site',\n\t\t\t\t'welcomeGuide'\n\t\t\t),\n\t\t[]\n\t);\n\n\tif ( ! isActive ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Guide\n\t\t\tclassName=\"edit-site-welcome-guide guide-editor\"\n\t\t\tcontentLabel={ __( 'Welcome to the site editor' ) }\n\t\t\tfinishButtonText={ __( 'Get started' ) }\n\t\t\tonFinish={ () => toggle( 'core/edit-site', 'welcomeGuide' ) }\n\t\t\tpages={ [\n\t\t\t\t{\n\t\t\t\t\timage: (\n\t\t\t\t\t\t<WelcomeGuideImage\n\t\t\t\t\t\t\tnonAnimatedSrc=\"https://s.w.org/images/block-editor/edit-your-site.svg?1\"\n\t\t\t\t\t\t\tanimatedSrc=\"https://s.w.org/images/block-editor/edit-your-site.gif?1\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t),\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<h1 className=\"edit-site-welcome-guide__heading\">\n\t\t\t\t\t\t\t\t{ __( 'Edit your site' ) }\n\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t<p className=\"edit-site-welcome-guide__text\">\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Design everything on your site — from the header right down to the footer — using blocks.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t<p className=\"edit-site-welcome-guide__text\">\n\t\t\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t'Click <StylesIconImage /> to start designing your blocks, and choose your typography, layout, and colors.'\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tStylesIconImage: (\n\t\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\t\talt={ __( 'styles' ) }\n\t\t\t\t\t\t\t\t\t\t\t\tsrc=\"data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 4c-4.4 0-8 3.6-8 8v.1c0 4.1 3.2 7.5 7.2 7.9h.8c4.4 0 8-3.6 8-8s-3.6-8-8-8zm0 15V5c3.9 0 7 3.1 7 7s-3.1 7-7 7z' fill='%231E1E1E'/%3E%3C/svg%3E%0A\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</>\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t] }\n\t\t/>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { ExternalLink, Guide } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as interfaceStore } from '@wordpress/interface';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport WelcomeGuideImage from './image';\nimport { store as editSiteStore } from '../../store';\n\nexport default function WelcomeGuideStyles() {\n\tconst { toggle } = useDispatch( preferencesStore );\n\n\tconst { isActive, isStylesOpen } = useSelect( ( select ) => {\n\t\tconst sidebar = select( interfaceStore ).getActiveComplementaryArea(\n\t\t\teditSiteStore.name\n\t\t);\n\n\t\treturn {\n\t\t\tisActive: !! select( preferencesStore ).get(\n\t\t\t\t'core/edit-site',\n\t\t\t\t'welcomeGuideStyles'\n\t\t\t),\n\t\t\tisStylesOpen: sidebar === 'edit-site/global-styles',\n\t\t};\n\t}, [] );\n\n\tif ( ! isActive || ! isStylesOpen ) {\n\t\treturn null;\n\t}\n\n\tconst welcomeLabel = __( 'Welcome to Styles' );\n\n\treturn (\n\t\t<Guide\n\t\t\tclassName=\"edit-site-welcome-guide guide-styles\"\n\t\t\tcontentLabel={ welcomeLabel }\n\t\t\tfinishButtonText={ __( 'Get started' ) }\n\t\t\tonFinish={ () => toggle( 'core/edit-site', 'welcomeGuideStyles' ) }\n\t\t\tpages={ [\n\t\t\t\t{\n\t\t\t\t\timage: (\n\t\t\t\t\t\t<WelcomeGuideImage\n\t\t\t\t\t\t\tnonAnimatedSrc=\"https://s.w.org/images/block-editor/welcome-to-styles.svg?1\"\n\t\t\t\t\t\t\tanimatedSrc=\"https://s.w.org/images/block-editor/welcome-to-styles.gif?1\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t),\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<h1 className=\"edit-site-welcome-guide__heading\">\n\t\t\t\t\t\t\t\t{ welcomeLabel }\n\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t<p className=\"edit-site-welcome-guide__text\">\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Tweak your site, or give it a whole new look! Get creative — how about a new color palette for your buttons, or choosing a new font? Take a look at what you can do here.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</>\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\timage: (\n\t\t\t\t\t\t<WelcomeGuideImage\n\t\t\t\t\t\t\tnonAnimatedSrc=\"https://s.w.org/images/block-editor/set-the-design.svg?1\"\n\t\t\t\t\t\t\tanimatedSrc=\"https://s.w.org/images/block-editor/set-the-design.gif?1\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t),\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<h1 className=\"edit-site-welcome-guide__heading\">\n\t\t\t\t\t\t\t\t{ __( 'Set the design' ) }\n\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t<p className=\"edit-site-welcome-guide__text\">\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'You can customize your site as much as you like with different colors, typography, and layouts. Or if you prefer, just leave it up to your theme to handle!'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</>\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\timage: (\n\t\t\t\t\t\t<WelcomeGuideImage\n\t\t\t\t\t\t\tnonAnimatedSrc=\"https://s.w.org/images/block-editor/personalize-blocks.svg?1\"\n\t\t\t\t\t\t\tanimatedSrc=\"https://s.w.org/images/block-editor/personalize-blocks.gif?1\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t),\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<h1 className=\"edit-site-welcome-guide__heading\">\n\t\t\t\t\t\t\t\t{ __( 'Personalize blocks' ) }\n\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t<p className=\"edit-site-welcome-guide__text\">\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'You can adjust your blocks to ensure a cohesive experience across your site — add your unique colors to a branded Button block, or adjust the Heading block to your preferred size.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</>\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\timage: (\n\t\t\t\t\t\t<WelcomeGuideImage\n\t\t\t\t\t\t\tnonAnimatedSrc=\"https://s.w.org/images/block-editor/welcome-documentation.svg\"\n\t\t\t\t\t\t\tanimatedSrc=\"https://s.w.org/images/block-editor/welcome-documentation.gif\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t),\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<h1 className=\"edit-site-welcome-guide__heading\">\n\t\t\t\t\t\t\t\t{ __( 'Learn more' ) }\n\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t<p className=\"edit-site-welcome-guide__text\">\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'New to block themes and styling your site?'\n\t\t\t\t\t\t\t\t) }{ ' ' }\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t\t'https://wordpress.org/documentation/article/styles-overview/'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'Here’s a detailed guide to learn how to make the most of it.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</>\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t] }\n\t\t/>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { Guide } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\n\nexport default function WelcomeGuidePage() {\n\tconst { toggle } = useDispatch( preferencesStore );\n\n\tconst isVisible = useSelect( ( select ) => {\n\t\tconst isPageActive = !! select( preferencesStore ).get(\n\t\t\t'core/edit-site',\n\t\t\t'welcomeGuidePage'\n\t\t);\n\t\tconst isEditorActive = !! select( preferencesStore ).get(\n\t\t\t'core/edit-site',\n\t\t\t'welcomeGuide'\n\t\t);\n\t\tconst { isPage } = select( editSiteStore );\n\t\treturn isPageActive && ! isEditorActive && isPage();\n\t}, [] );\n\n\tif ( ! isVisible ) {\n\t\treturn null;\n\t}\n\n\tconst heading = __( 'Editing a page' );\n\n\treturn (\n\t\t<Guide\n\t\t\tclassName=\"edit-site-welcome-guide guide-page\"\n\t\t\tcontentLabel={ heading }\n\t\t\tfinishButtonText={ __( 'Continue' ) }\n\t\t\tonFinish={ () => toggle( 'core/edit-site', 'welcomeGuidePage' ) }\n\t\t\tpages={ [\n\t\t\t\t{\n\t\t\t\t\timage: (\n\t\t\t\t\t\t<video\n\t\t\t\t\t\t\tclassName=\"edit-site-welcome-guide__video\"\n\t\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\t\tloop\n\t\t\t\t\t\t\tmuted\n\t\t\t\t\t\t\twidth=\"312\"\n\t\t\t\t\t\t\theight=\"240\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<source\n\t\t\t\t\t\t\t\tsrc=\"https://s.w.org/images/block-editor/editing-your-page.mp4\"\n\t\t\t\t\t\t\t\ttype=\"video/mp4\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</video>\n\t\t\t\t\t),\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<h1 className=\"edit-site-welcome-guide__heading\">\n\t\t\t\t\t\t\t\t{ heading }\n\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t<p className=\"edit-site-welcome-guide__text\">\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'It’s now possible to edit page content in the site editor. To customise other parts of the page like the header and footer switch to editing the template using the settings sidebar.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</>\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t] }\n\t\t/>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { Guide } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\n\nexport default function WelcomeGuideTemplate() {\n\tconst { toggle } = useDispatch( preferencesStore );\n\n\tconst isVisible = useSelect( ( select ) => {\n\t\tconst isTemplateActive = !! select( preferencesStore ).get(\n\t\t\t'core/edit-site',\n\t\t\t'welcomeGuideTemplate'\n\t\t);\n\t\tconst isEditorActive = !! select( preferencesStore ).get(\n\t\t\t'core/edit-site',\n\t\t\t'welcomeGuide'\n\t\t);\n\t\tconst { isPage } = select( editSiteStore );\n\t\tconst { getRenderingMode } = select( editorStore );\n\t\treturn (\n\t\t\tisTemplateActive &&\n\t\t\t! isEditorActive &&\n\t\t\tisPage() &&\n\t\t\tgetRenderingMode() === 'template-only'\n\t\t);\n\t}, [] );\n\n\tif ( ! isVisible ) {\n\t\treturn null;\n\t}\n\n\tconst heading = __( 'Editing a template' );\n\n\treturn (\n\t\t<Guide\n\t\t\tclassName=\"edit-site-welcome-guide guide-template\"\n\t\t\tcontentLabel={ heading }\n\t\t\tfinishButtonText={ __( 'Continue' ) }\n\t\t\tonFinish={ () =>\n\t\t\t\ttoggle( 'core/edit-site', 'welcomeGuideTemplate' )\n\t\t\t}\n\t\t\tpages={ [\n\t\t\t\t{\n\t\t\t\t\timage: (\n\t\t\t\t\t\t<video\n\t\t\t\t\t\t\tclassName=\"edit-site-welcome-guide__video\"\n\t\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\t\tloop\n\t\t\t\t\t\t\tmuted\n\t\t\t\t\t\t\twidth=\"312\"\n\t\t\t\t\t\t\theight=\"240\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<source\n\t\t\t\t\t\t\t\tsrc=\"https://s.w.org/images/block-editor/editing-your-template.mp4\"\n\t\t\t\t\t\t\t\ttype=\"video/mp4\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</video>\n\t\t\t\t\t),\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<h1 className=\"edit-site-welcome-guide__heading\">\n\t\t\t\t\t\t\t\t{ heading }\n\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t<p className=\"edit-site-welcome-guide__text\">\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Note that the same template can be used by multiple pages, so any changes made here may affect other pages on the site. To switch back to editing the page content click the ‘Back’ button in the toolbar.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</>\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t] }\n\t\t/>\n\t);\n}\n","/**\n * Internal dependencies\n */\nimport WelcomeGuideEditor from './editor';\nimport WelcomeGuideStyles from './styles';\nimport WelcomeGuidePage from './page';\nimport WelcomeGuideTemplate from './template';\n\nexport default function WelcomeGuide() {\n\treturn (\n\t\t<>\n\t\t\t<WelcomeGuideEditor />\n\t\t\t<WelcomeGuideStyles />\n\t\t\t<WelcomeGuidePage />\n\t\t\t<WelcomeGuideTemplate />\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { Modal, Flex, FlexItem, Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState, useMemo } from '@wordpress/element';\nimport {\n\t__experimentalBlockPatternsList as BlockPatternsList,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { useAsyncList } from '@wordpress/compose';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { parse } from '@wordpress/blocks';\nimport { store as coreStore, useEntityBlockEditor } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nfunction useFallbackTemplateContent( slug, isCustom = false ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecord, getDefaultTemplateId } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst templateId = getDefaultTemplateId( {\n\t\t\t\tslug,\n\t\t\t\tis_custom: isCustom,\n\t\t\t\tignore_empty: true,\n\t\t\t} );\n\t\t\treturn templateId\n\t\t\t\t? getEntityRecord( 'postType', TEMPLATE_POST_TYPE, templateId )\n\t\t\t\t\t\t?.content?.raw\n\t\t\t\t: undefined;\n\t\t},\n\t\t[ slug, isCustom ]\n\t);\n}\n\nfunction useStartPatterns( fallbackContent ) {\n\tconst { slug, patterns } = useSelect( ( select ) => {\n\t\tconst { getEditedPostType, getEditedPostId } = select( editSiteStore );\n\t\tconst { getEntityRecord } = select( coreStore );\n\t\tconst postId = getEditedPostId();\n\t\tconst postType = getEditedPostType();\n\t\tconst record = getEntityRecord( 'postType', postType, postId );\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\tslug: record.slug,\n\t\t\tpatterns: getSettings().__experimentalBlockPatterns,\n\t\t};\n\t}, [] );\n\n\tconst currentThemeStylesheet = useSelect(\n\t\t( select ) => select( coreStore ).getCurrentTheme().stylesheet\n\t);\n\n\t// Duplicated from packages/block-library/src/pattern/edit.js.\n\tfunction injectThemeAttributeInBlockTemplateContent( block ) {\n\t\tif (\n\t\t\tblock.innerBlocks.find(\n\t\t\t\t( innerBlock ) => innerBlock.name === 'core/template-part'\n\t\t\t)\n\t\t) {\n\t\t\tblock.innerBlocks = block.innerBlocks.map( ( innerBlock ) => {\n\t\t\t\tif (\n\t\t\t\t\tinnerBlock.name === 'core/template-part' &&\n\t\t\t\t\tinnerBlock.attributes.theme === undefined\n\t\t\t\t) {\n\t\t\t\t\tinnerBlock.attributes.theme = currentThemeStylesheet;\n\t\t\t\t}\n\t\t\t\treturn innerBlock;\n\t\t\t} );\n\t\t}\n\n\t\tif (\n\t\t\tblock.name === 'core/template-part' &&\n\t\t\tblock.attributes.theme === undefined\n\t\t) {\n\t\t\tblock.attributes.theme = currentThemeStylesheet;\n\t\t}\n\t\treturn block;\n\t}\n\n\treturn useMemo( () => {\n\t\t// filter patterns that are supposed to be used in the current template being edited.\n\t\treturn [\n\t\t\t{\n\t\t\t\tname: 'fallback',\n\t\t\t\tblocks: parse( fallbackContent ),\n\t\t\t\ttitle: __( 'Fallback content' ),\n\t\t\t},\n\t\t\t...patterns\n\t\t\t\t.filter( ( pattern ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\tArray.isArray( pattern.templateTypes ) &&\n\t\t\t\t\t\tpattern.templateTypes.some( ( templateType ) =>\n\t\t\t\t\t\t\tslug.startsWith( templateType )\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t} )\n\t\t\t\t.map( ( pattern ) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...pattern,\n\t\t\t\t\t\tblocks: parse( pattern.content ).map( ( block ) =>\n\t\t\t\t\t\t\tinjectThemeAttributeInBlockTemplateContent( block )\n\t\t\t\t\t\t),\n\t\t\t\t\t};\n\t\t\t\t} ),\n\t\t];\n\t}, [ fallbackContent, slug, patterns ] );\n}\n\nfunction PatternSelection( { fallbackContent, onChoosePattern, postType } ) {\n\tconst [ , , onChange ] = useEntityBlockEditor( 'postType', postType );\n\tconst blockPatterns = useStartPatterns( fallbackContent );\n\tconst shownBlockPatterns = useAsyncList( blockPatterns );\n\treturn (\n\t\t<BlockPatternsList\n\t\t\tblockPatterns={ blockPatterns }\n\t\t\tshownPatterns={ shownBlockPatterns }\n\t\t\tonClickPattern={ ( pattern, blocks ) => {\n\t\t\t\tonChange( blocks, { selection: undefined } );\n\t\t\t\tonChoosePattern();\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nfunction StartModal( { slug, isCustom, onClose, postType } ) {\n\tconst fallbackContent = useFallbackTemplateContent( slug, isCustom );\n\tif ( ! fallbackContent ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<Modal\n\t\t\tclassName=\"edit-site-start-template-options__modal\"\n\t\t\ttitle={ __( 'Choose a pattern' ) }\n\t\t\tcloseLabel={ __( 'Cancel' ) }\n\t\t\tfocusOnMount=\"firstElement\"\n\t\t\tonRequestClose={ onClose }\n\t\t\tisFullScreen={ true }\n\t\t>\n\t\t\t<div className=\"edit-site-start-template-options__modal-content\">\n\t\t\t\t<PatternSelection\n\t\t\t\t\tfallbackContent={ fallbackContent }\n\t\t\t\t\tslug={ slug }\n\t\t\t\t\tisCustom={ isCustom }\n\t\t\t\t\tpostType={ postType }\n\t\t\t\t\tonChoosePattern={ () => {\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<Flex\n\t\t\t\tclassName=\"edit-site-start-template-options__modal__actions\"\n\t\t\t\tjustify=\"flex-end\"\n\t\t\t\texpanded={ false }\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button variant=\"tertiary\" onClick={ onClose }>\n\t\t\t\t\t\t{ __( 'Skip' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t</Modal>\n\t);\n}\n\nconst START_TEMPLATE_MODAL_STATES = {\n\tINITIAL: 'INITIAL',\n\tCLOSED: 'CLOSED',\n};\n\nexport default function StartTemplateOptions() {\n\tconst [ modalState, setModalState ] = useState(\n\t\tSTART_TEMPLATE_MODAL_STATES.INITIAL\n\t);\n\tconst { shouldOpenModal, slug, isCustom, postType } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedPostType, getEditedPostId } =\n\t\t\t\tselect( editSiteStore );\n\t\t\tconst _postType = getEditedPostType();\n\t\t\tconst postId = getEditedPostId();\n\t\t\tconst { getEditedEntityRecord, hasEditsForEntityRecord } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst templateRecord = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t_postType,\n\t\t\t\tpostId\n\t\t\t);\n\t\t\tconst hasEdits = hasEditsForEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t_postType,\n\t\t\t\tpostId\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tshouldOpenModal:\n\t\t\t\t\t! hasEdits &&\n\t\t\t\t\t'' === templateRecord.content &&\n\t\t\t\t\tTEMPLATE_POST_TYPE === _postType &&\n\t\t\t\t\t! select( preferencesStore ).get(\n\t\t\t\t\t\t'core/edit-site',\n\t\t\t\t\t\t'welcomeGuide'\n\t\t\t\t\t),\n\t\t\t\tslug: templateRecord.slug,\n\t\t\t\tisCustom: templateRecord.is_custom,\n\t\t\t\tpostType: _postType,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tif (\n\t\t( modalState === START_TEMPLATE_MODAL_STATES.INITIAL &&\n\t\t\t! shouldOpenModal ) ||\n\t\tmodalState === START_TEMPLATE_MODAL_STATES.CLOSED\n\t) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<StartModal\n\t\t\tslug={ slug }\n\t\t\tisCustom={ isCustom }\n\t\t\tpostType={ postType }\n\t\t\tonClose={ () =>\n\t\t\t\tsetModalState( START_TEMPLATE_MODAL_STATES.CLOSED )\n\t\t\t}\n\t\t/>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst { useGlobalStylesOutput } = unlock( blockEditorPrivateApis );\n\nfunction useGlobalStylesRenderer() {\n\tconst [ styles, settings ] = useGlobalStylesOutput();\n\tconst { getSettings } = useSelect( editSiteStore );\n\tconst { updateSettings } = useDispatch( editSiteStore );\n\n\tuseEffect( () => {\n\t\tif ( ! styles || ! settings ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentStoreSettings = getSettings();\n\t\tconst nonGlobalStyles = Object.values(\n\t\t\tcurrentStoreSettings.styles ?? []\n\t\t).filter( ( style ) => ! style.isGlobalStyles );\n\t\tupdateSettings( {\n\t\t\t...currentStoreSettings,\n\t\t\tstyles: [ ...nonGlobalStyles, ...styles ],\n\t\t\t__experimentalFeatures: settings,\n\t\t} );\n\t}, [ styles, settings, updateSettings, getSettings ] );\n}\n\nexport function GlobalStylesRenderer() {\n\tuseGlobalStylesRenderer();\n\n\treturn null;\n}\n","/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nexport default function useTitle( title ) {\n\tconst location = useLocation();\n\tconst siteTitle = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityRecord( 'root', 'site' )?.title,\n\t\t[]\n\t);\n\tconst isInitialLocationRef = useRef( true );\n\n\tuseEffect( () => {\n\t\tisInitialLocationRef.current = false;\n\t}, [ location ] );\n\n\tuseEffect( () => {\n\t\t// Don't update or announce the title for initial page load.\n\t\tif ( isInitialLocationRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( title && siteTitle ) {\n\t\t\t// @see https://github.com/WordPress/wordpress-develop/blob/94849898192d271d533e09756007e176feb80697/src/wp-admin/admin-header.php#L67-L68\n\t\t\tconst formattedTitle = sprintf(\n\t\t\t\t/* translators: Admin document title. 1: Admin screen name, 2: Network or site name. */\n\t\t\t\t__( '%1$s ‹ %2$s ‹ Editor — WordPress' ),\n\t\t\t\tdecodeEntities( title ),\n\t\t\t\tdecodeEntities( siteTitle )\n\t\t\t);\n\n\t\t\tdocument.title = formattedTitle;\n\n\t\t\t// Announce title on route change for screen readers.\n\t\t\tspeak( title, 'assertive' );\n\t\t}\n\t}, [ title, siteTitle, location ] );\n}\n","/**\n * WordPress dependencies\n */\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { useStylesPreviewColors } from '../global-styles/hooks';\n\nconst { ProgressBar, Theme } = unlock( componentsPrivateApis );\nconst { useGlobalStyle } = unlock( blockEditorPrivateApis );\n\nexport default function CanvasLoader( { id } ) {\n\tconst [ fallbackIndicatorColor ] = useGlobalStyle( 'color.text' );\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\tconst { highlightedColors } = useStylesPreviewColors();\n\tconst indicatorColor =\n\t\thighlightedColors[ 0 ]?.color ?? fallbackIndicatorColor;\n\tconst { elapsed, total } = useSelect( ( select ) => {\n\t\tconst selectorsByStatus = select( coreStore ).countSelectorsByStatus();\n\t\tconst resolving = selectorsByStatus.resolving ?? 0;\n\t\tconst finished = selectorsByStatus.finished ?? 0;\n\t\treturn {\n\t\t\telapsed: finished,\n\t\t\ttotal: finished + resolving,\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<div className=\"edit-site-canvas-loader\">\n\t\t\t<Theme accent={ indicatorColor } background={ backgroundColor }>\n\t\t\t\t<ProgressBar id={ id } max={ total } value={ elapsed } />\n\t\t\t</Theme>\n\t\t</div>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as interfaceStore } from '@wordpress/interface';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\n\n/**\n * Internal dependencies\n */\nimport { PATTERN_MODALS } from './';\nimport { unlock } from '../../lock-unlock';\nimport useEditedEntityRecord from '../use-edited-entity-record';\n\nconst { RenamePatternModal } = unlock( patternsPrivateApis );\n\nexport default function PatternRenameModal() {\n\tconst { record: pattern } = useEditedEntityRecord();\n\tconst { closeModal } = useDispatch( interfaceStore );\n\tconst isActive = useSelect( ( select ) =>\n\t\tselect( interfaceStore ).isModalActive( PATTERN_MODALS.rename )\n\t);\n\n\tif ( ! isActive ) {\n\t\treturn null;\n\t}\n\n\treturn <RenamePatternModal onClose={ closeModal } pattern={ pattern } />;\n}\n","/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as interfaceStore } from '@wordpress/interface';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { getQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { PATTERN_MODALS } from './';\nimport { PATTERN_TYPES } from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\nimport useEditedEntityRecord from '../use-edited-entity-record';\n\nconst { DuplicatePatternModal } = unlock( patternsPrivateApis );\nconst { useHistory } = unlock( routerPrivateApis );\n\nexport default function PatternDuplicateModal() {\n\tconst { record } = useEditedEntityRecord();\n\tconst { categoryType, categoryId } = getQueryArgs( window.location.href );\n\tconst { closeModal } = useDispatch( interfaceStore );\n\tconst history = useHistory();\n\n\tconst isActive = useSelect( ( select ) =>\n\t\tselect( interfaceStore ).isModalActive( PATTERN_MODALS.duplicate )\n\t);\n\n\tif ( ! isActive ) {\n\t\treturn null;\n\t}\n\n\tfunction onSuccess( { pattern: newPattern } ) {\n\t\thistory.push( {\n\t\t\tcategoryType,\n\t\t\tcategoryId,\n\t\t\tpostType: PATTERN_TYPES.user,\n\t\t\tpostId: newPattern.id,\n\t\t} );\n\n\t\tcloseModal();\n\t}\n\n\treturn (\n\t\t<DuplicatePatternModal\n\t\t\tonClose={ closeModal }\n\t\t\tonSuccess={ onSuccess }\n\t\t\tpattern={ record }\n\t\t/>\n\t);\n}\n","/**\n * Internal dependencies\n */\nimport PatternRenameModal from './rename';\nimport PatternDuplicateModal from './duplicate';\n\nexport const PATTERN_MODALS = {\n\trename: 'edit-site/pattern-rename',\n\tduplicate: 'edit-site/pattern-duplicate',\n};\n\nexport default function PatternModal() {\n\treturn (\n\t\t<>\n\t\t\t<PatternDuplicateModal />\n\t\t\t<PatternRenameModal />\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst arrowLeft = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M20 11.2H6.8l3.7-3.7-1-1L3.9 12l5.6 5.5 1-1-3.7-3.7H20z\" />\n\t</SVG>\n);\n\nexport default arrowLeft;\n","/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { arrowLeft } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_PART_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tPATTERN_TYPES,\n} from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\n\nconst { useLocation, useHistory } = unlock( routerPrivateApis );\n\nfunction BackButton() {\n\tconst location = useLocation();\n\tconst history = useHistory();\n\tconst isTemplatePart = location.params.postType === TEMPLATE_PART_POST_TYPE;\n\tconst isNavigationMenu = location.params.postType === NAVIGATION_POST_TYPE;\n\tconst isPattern = location.params.postType === PATTERN_TYPES.user;\n\tconst previousTemplateId = location.state?.fromTemplateId;\n\n\tconst isFocusMode = isTemplatePart || isNavigationMenu || isPattern;\n\n\tif ( ! isFocusMode || ( ! previousTemplateId && ! isPattern ) ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\tclassName=\"edit-site-visual-editor__back-button\"\n\t\t\ticon={ arrowLeft }\n\t\t\tonClick={ () => {\n\t\t\t\thistory.back();\n\t\t\t} }\n\t\t>\n\t\t\t{ __( 'Back' ) }\n\t\t</Button>\n\t);\n}\n\nexport default BackButton;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\nimport { useState, useEffect, useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport {\n\tFOCUSABLE_ENTITIES,\n\tNAVIGATION_POST_TYPE,\n} from '../../utils/constants';\n\nconst { EditorCanvas: EditorCanvasRoot } = unlock( editorPrivateApis );\n\nfunction EditorCanvas( { enableResizing, settings, children, ...props } ) {\n\tconst { hasBlocks, isFocusMode, templateType, canvasMode, isZoomOutMode } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst { getBlockCount, __unstableGetEditorMode } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { getEditedPostType, getCanvasMode } = unlock(\n\t\t\t\tselect( editSiteStore )\n\t\t\t);\n\t\t\tconst _templateType = getEditedPostType();\n\n\t\t\treturn {\n\t\t\t\ttemplateType: _templateType,\n\t\t\t\tisFocusMode: FOCUSABLE_ENTITIES.includes( _templateType ),\n\t\t\t\tisZoomOutMode: __unstableGetEditorMode() === 'zoom-out',\n\t\t\t\tcanvasMode: getCanvasMode(),\n\t\t\t\thasBlocks: !! getBlockCount(),\n\t\t\t};\n\t\t}, [] );\n\tconst { setCanvasMode } = unlock( useDispatch( editSiteStore ) );\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\n\tuseEffect( () => {\n\t\tif ( canvasMode === 'edit' ) {\n\t\t\tsetIsFocused( false );\n\t\t}\n\t}, [ canvasMode ] );\n\n\tconst viewModeProps = {\n\t\t'aria-label': __( 'Editor Canvas' ),\n\t\trole: 'button',\n\t\ttabIndex: 0,\n\t\tonFocus: () => setIsFocused( true ),\n\t\tonBlur: () => setIsFocused( false ),\n\t\tonKeyDown: ( event ) => {\n\t\t\tconst { keyCode } = event;\n\t\t\tif ( keyCode === ENTER || keyCode === SPACE ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tsetCanvasMode( 'edit' );\n\t\t\t}\n\t\t},\n\t\tonClick: () => setCanvasMode( 'edit' ),\n\t\treadonly: true,\n\t};\n\tconst isTemplateTypeNavigation = templateType === NAVIGATION_POST_TYPE;\n\tconst isNavigationFocusMode = isTemplateTypeNavigation && isFocusMode;\n\t// Hide the appender when:\n\t// - In navigation focus mode (should only allow the root Nav block).\n\t// - In view mode (i.e. not editing).\n\tconst showBlockAppender =\n\t\t( isNavigationFocusMode && hasBlocks ) || canvasMode === 'view'\n\t\t\t? false\n\t\t\t: undefined;\n\n\tconst styles = useMemo(\n\t\t() => [\n\t\t\t...settings.styles,\n\t\t\t{\n\t\t\t\t// Forming a \"block formatting context\" to prevent margin collapsing.\n\t\t\t\t// @see https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context\n\n\t\t\t\tcss: `.is-root-container{display:flow-root;${\n\t\t\t\t\t// Some themes will have `min-height: 100vh` for the root container,\n\t\t\t\t\t// which isn't a requirement in auto resize mode.\n\t\t\t\t\tenableResizing ? 'min-height:0!important;' : ''\n\t\t\t\t}}body{position:relative; ${\n\t\t\t\t\tcanvasMode === 'view'\n\t\t\t\t\t\t? 'cursor: pointer; min-height: 100vh;'\n\t\t\t\t\t\t: ''\n\t\t\t\t}}}`,\n\t\t\t},\n\t\t],\n\t\t[ settings.styles, enableResizing, canvasMode ]\n\t);\n\n\treturn (\n\t\t<EditorCanvasRoot\n\t\t\tclassName={ classnames( 'edit-site-editor-canvas__block-list', {\n\t\t\t\t'is-navigation-block': isTemplateTypeNavigation,\n\t\t\t} ) }\n\t\t\trenderAppender={ showBlockAppender }\n\t\t\tstyles={ styles }\n\t\t\tiframeProps={ {\n\t\t\t\texpand: isZoomOutMode,\n\t\t\t\tscale: isZoomOutMode ? 0.45 : undefined,\n\t\t\t\tframeSize: isZoomOutMode ? 100 : undefined,\n\t\t\t\tclassName: classnames(\n\t\t\t\t\t'edit-site-visual-editor__editor-canvas',\n\t\t\t\t\t{\n\t\t\t\t\t\t'is-focused': isFocused && canvasMode === 'view',\n\t\t\t\t\t}\n\t\t\t\t),\n\t\t\t\t...props,\n\t\t\t\t...( canvasMode === 'view' ? viewModeProps : {} ),\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</EditorCanvasRoot>\n\t);\n}\n\nexport default EditorCanvas;\n","/**\n * WordPress dependencies\n */\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { getPostLinkProps } from '../routes/link';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nexport function usePostLinkProps() {\n\tconst history = useHistory();\n\n\treturn ( params, state ) => {\n\t\treturn getPostLinkProps( history, params, state );\n\t};\n}\n","/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport { usePostLinkProps } from './use-post-link-props';\n\nconst { useBlockEditorSettings } = unlock( editorPrivateApis );\n\nfunction useArchiveLabel( templateSlug ) {\n\tconst taxonomyMatches = templateSlug?.match(\n\t\t/^(category|tag|taxonomy-([^-]+))$|^(((category|tag)|taxonomy-([^-]+))-(.+))$/\n\t);\n\tlet taxonomy;\n\tlet term;\n\tlet isAuthor = false;\n\tlet authorSlug;\n\tif ( taxonomyMatches ) {\n\t\t// If is for a all taxonomies of a type\n\t\tif ( taxonomyMatches[ 1 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 2 ]\n\t\t\t\t? taxonomyMatches[ 2 ]\n\t\t\t\t: taxonomyMatches[ 1 ];\n\t\t}\n\t\t// If is for a all taxonomies of a type\n\t\telse if ( taxonomyMatches[ 3 ] ) {\n\t\t\ttaxonomy = taxonomyMatches[ 6 ]\n\t\t\t\t? taxonomyMatches[ 6 ]\n\t\t\t\t: taxonomyMatches[ 4 ];\n\t\t\tterm = taxonomyMatches[ 7 ];\n\t\t}\n\t\ttaxonomy = taxonomy === 'tag' ? 'post_tag' : taxonomy;\n\n\t\t//getTaxonomy( 'category' );\n\t\t//wp.data.select('core').getEntityRecords( 'taxonomy', 'category', {slug: 'newcat'} );\n\t} else {\n\t\tconst authorMatches = templateSlug?.match( /^(author)$|^author-(.+)$/ );\n\t\tif ( authorMatches ) {\n\t\t\tisAuthor = true;\n\t\t\tif ( authorMatches[ 2 ] ) {\n\t\t\t\tauthorSlug = authorMatches[ 2 ];\n\t\t\t}\n\t\t}\n\t}\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, getTaxonomy, getAuthors } =\n\t\t\t\tselect( coreStore );\n\t\t\tlet archiveTypeLabel;\n\t\t\tlet archiveNameLabel;\n\t\t\tif ( taxonomy ) {\n\t\t\t\tarchiveTypeLabel =\n\t\t\t\t\tgetTaxonomy( taxonomy )?.labels?.singular_name;\n\t\t\t}\n\t\t\tif ( term ) {\n\t\t\t\tconst records = getEntityRecords( 'taxonomy', taxonomy, {\n\t\t\t\t\tslug: term,\n\t\t\t\t\tper_page: 1,\n\t\t\t\t} );\n\t\t\t\tif ( records && records[ 0 ] ) {\n\t\t\t\t\tarchiveNameLabel = records[ 0 ].name;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( isAuthor ) {\n\t\t\t\tarchiveTypeLabel = 'Author';\n\t\t\t\tif ( authorSlug ) {\n\t\t\t\t\tconst authorRecords = getAuthors( { slug: authorSlug } );\n\t\t\t\t\tif ( authorRecords && authorRecords[ 0 ] ) {\n\t\t\t\t\t\tarchiveNameLabel = authorRecords[ 0 ].name;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tarchiveTypeLabel,\n\t\t\t\tarchiveNameLabel,\n\t\t\t};\n\t\t},\n\t\t[ authorSlug, isAuthor, taxonomy, term ]\n\t);\n}\n\nexport function useSpecificEditorSettings() {\n\tconst getPostLinkProps = usePostLinkProps();\n\tconst { templateSlug, canvasMode, settings, postWithTemplate } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEditedPostType,\n\t\t\t\tgetEditedPostId,\n\t\t\t\tgetEditedPostContext,\n\t\t\t\tgetCanvasMode,\n\t\t\t\tgetSettings,\n\t\t\t} = unlock( select( editSiteStore ) );\n\t\t\tconst { getEditedEntityRecord } = select( coreStore );\n\t\t\tconst usedPostType = getEditedPostType();\n\t\t\tconst usedPostId = getEditedPostId();\n\t\t\tconst _record = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tusedPostType,\n\t\t\t\tusedPostId\n\t\t\t);\n\t\t\tconst _context = getEditedPostContext();\n\t\t\treturn {\n\t\t\t\ttemplateSlug: _record.slug,\n\t\t\t\tcanvasMode: getCanvasMode(),\n\t\t\t\tsettings: getSettings(),\n\t\t\t\tpostWithTemplate: _context?.postId,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst archiveLabels = useArchiveLabel( templateSlug );\n\tconst defaultRenderingMode = postWithTemplate ? 'template-locked' : 'all';\n\tconst defaultEditorSettings = useMemo( () => {\n\t\treturn {\n\t\t\t...settings,\n\n\t\t\trichEditingEnabled: true,\n\t\t\tsupportsTemplateMode: true,\n\t\t\tfocusMode: canvasMode !== 'view',\n\t\t\tdefaultRenderingMode,\n\t\t\tgetPostLinkProps,\n\t\t\t// I wonder if they should be set in the post editor too\n\t\t\t__experimentalArchiveTitleTypeLabel: archiveLabels.archiveTypeLabel,\n\t\t\t__experimentalArchiveTitleNameLabel: archiveLabels.archiveNameLabel,\n\t\t};\n\t}, [\n\t\tsettings,\n\t\tcanvasMode,\n\t\tdefaultRenderingMode,\n\t\tgetPostLinkProps,\n\t\tarchiveLabels.archiveTypeLabel,\n\t\tarchiveLabels.archiveNameLabel,\n\t] );\n\n\treturn defaultEditorSettings;\n}\n\nexport default function useSiteEditorSettings() {\n\tconst defaultEditorSettings = useSpecificEditorSettings();\n\tconst { postType, postId } = useSelect( ( select ) => {\n\t\tconst { getEditedPostType, getEditedPostId } = unlock(\n\t\t\tselect( editSiteStore )\n\t\t);\n\t\tconst usedPostType = getEditedPostType();\n\t\tconst usedPostId = getEditedPostId();\n\t\treturn {\n\t\t\tpostType: usedPostType,\n\t\t\tpostId: usedPostId,\n\t\t};\n\t}, [] );\n\treturn useBlockEditorSettings( defaultEditorSettings, postType, postId );\n}\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useViewportMatch, useResizeObserver } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BackButton from './back-button';\nimport ResizableEditor from './resizable-editor';\nimport EditorCanvas from './editor-canvas';\nimport EditorCanvasContainer from '../editor-canvas-container';\nimport useSiteEditorSettings from './use-site-editor-settings';\nimport { store as editSiteStore } from '../../store';\nimport {\n\tFOCUSABLE_ENTITIES,\n\tNAVIGATION_POST_TYPE,\n} from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\n\nexport default function SiteEditorCanvas() {\n\tconst { templateType, isFocusMode, isViewMode } = useSelect( ( select ) => {\n\t\tconst { getEditedPostType, getCanvasMode } = unlock(\n\t\t\tselect( editSiteStore )\n\t\t);\n\n\t\tconst _templateType = getEditedPostType();\n\n\t\treturn {\n\t\t\ttemplateType: _templateType,\n\t\t\tisFocusMode: FOCUSABLE_ENTITIES.includes( _templateType ),\n\t\t\tisViewMode: getCanvasMode() === 'view',\n\t\t};\n\t}, [] );\n\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\n\tconst settings = useSiteEditorSettings();\n\n\tconst isMobileViewport = useViewportMatch( 'small', '<' );\n\tconst enableResizing =\n\t\tisFocusMode &&\n\t\t! isViewMode &&\n\t\t// Disable resizing in mobile viewport.\n\t\t! isMobileViewport;\n\n\tconst isTemplateTypeNavigation = templateType === NAVIGATION_POST_TYPE;\n\tconst isNavigationFocusMode = isTemplateTypeNavigation && isFocusMode;\n\tconst forceFullHeight = isNavigationFocusMode;\n\n\treturn (\n\t\t<EditorCanvasContainer.Slot>\n\t\t\t{ ( [ editorCanvasView ] ) =>\n\t\t\t\teditorCanvasView ? (\n\t\t\t\t\t<div className=\"edit-site-visual-editor is-focus-mode\">\n\t\t\t\t\t\t{ editorCanvasView }\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ classnames( 'edit-site-visual-editor', {\n\t\t\t\t\t\t\t'is-focus-mode': isFocusMode || !! editorCanvasView,\n\t\t\t\t\t\t\t'is-view-mode': isViewMode,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<BackButton />\n\t\t\t\t\t\t<ResizableEditor\n\t\t\t\t\t\t\tenableResizing={ enableResizing }\n\t\t\t\t\t\t\theight={\n\t\t\t\t\t\t\t\tsizes.height && ! forceFullHeight\n\t\t\t\t\t\t\t\t\t? sizes.height\n\t\t\t\t\t\t\t\t\t: '100%'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<EditorCanvas\n\t\t\t\t\t\t\t\tenableResizing={ enableResizing }\n\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ resizeObserver }\n\t\t\t\t\t\t\t</EditorCanvas>\n\t\t\t\t\t\t</ResizableEditor>\n\t\t\t\t\t</div>\n\t\t\t\t)\n\t\t\t}\n\t\t</EditorCanvasContainer.Slot>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nexport default function ConvertToRegularBlocks( { clientId, onClose } ) {\n\tconst { getBlocks } = useSelect( blockEditorStore );\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\n\tconst canRemove = useSelect(\n\t\t( select ) => select( blockEditorStore ).canRemoveBlock( clientId ),\n\t\t[ clientId ]\n\t);\n\n\tif ( ! canRemove ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<MenuItem\n\t\t\tonClick={ () => {\n\t\t\t\treplaceBlocks( clientId, getBlocks( clientId ) );\n\t\t\t\tonClose();\n\t\t\t} }\n\t\t>\n\t\t\t{ __( 'Detach' ) }\n\t\t</MenuItem>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { MenuItem } from '@wordpress/components';\nimport { createBlock } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { symbolFilled } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport CreateTemplatePartModal from '../create-template-part-modal';\nimport { store as editSiteStore } from '../../store';\n\nexport default function ConvertToTemplatePart( { clientIds, blocks } ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\tconst { canCreate } = useSelect( ( select ) => {\n\t\tconst { supportsTemplatePartsMode } =\n\t\t\tselect( editSiteStore ).getSettings();\n\t\treturn {\n\t\t\tcanCreate: ! supportsTemplatePartsMode,\n\t\t};\n\t}, [] );\n\n\tif ( ! canCreate ) {\n\t\treturn null;\n\t}\n\n\tconst onConvert = async ( templatePart ) => {\n\t\treplaceBlocks(\n\t\t\tclientIds,\n\t\t\tcreateBlock( 'core/template-part', {\n\t\t\t\tslug: templatePart.slug,\n\t\t\t\ttheme: templatePart.theme,\n\t\t\t} )\n\t\t);\n\t\tcreateSuccessNotice( __( 'Template part created.' ), {\n\t\t\ttype: 'snackbar',\n\t\t} );\n\n\t\t// The modal and this component will be unmounted because of `replaceBlocks` above,\n\t\t// so no need to call `closeModal` or `onClose`.\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\ticon={ symbolFilled }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetIsModalOpen( true );\n\t\t\t\t} }\n\t\t\t\taria-expanded={ isModalOpen }\n\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t>\n\t\t\t\t{ __( 'Create template part' ) }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<CreateTemplatePartModal\n\t\t\t\t\tcloseModal={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tonCreate={ onConvert }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tBlockSettingsMenuControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport ConvertToRegularBlocks from './convert-to-regular';\nimport ConvertToTemplatePart from './convert-to-template-part';\n\nexport default function TemplatePartConverter() {\n\treturn (\n\t\t<BlockSettingsMenuControls>\n\t\t\t{ ( { selectedClientIds, onClose } ) => (\n\t\t\t\t<TemplatePartConverterMenuItem\n\t\t\t\t\tclientIds={ selectedClientIds }\n\t\t\t\t\tonClose={ onClose }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</BlockSettingsMenuControls>\n\t);\n}\n\nfunction TemplatePartConverterMenuItem( { clientIds, onClose } ) {\n\tconst blocks = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlocksByClientId( clientIds ),\n\t\t[ clientIds ]\n\t);\n\n\t// Allow converting a single template part to standard blocks.\n\tif ( blocks.length === 1 && blocks[ 0 ]?.name === 'core/template-part' ) {\n\t\treturn (\n\t\t\t<ConvertToRegularBlocks\n\t\t\t\tclientId={ clientIds[ 0 ] }\n\t\t\t\tonClose={ onClose }\n\t\t\t/>\n\t\t);\n\t}\n\treturn <ConvertToTemplatePart clientIds={ clientIds } blocks={ blocks } />;\n}\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { Notice } from '@wordpress/components';\nimport { useInstanceId, useViewportMatch } from '@wordpress/compose';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport {\n\tBlockBreadcrumb,\n\tBlockToolbar,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n\tBlockInspector,\n} from '@wordpress/block-editor';\nimport {\n\tInterfaceSkeleton,\n\tComplementaryArea,\n\tstore as interfaceStore,\n} from '@wordpress/interface';\nimport {\n\tEditorKeyboardShortcutsRegister,\n\tEditorKeyboardShortcuts,\n\tEditorNotices,\n\tEditorSnackbars,\n\tprivateApis as editorPrivateApis,\n\tstore as editorStore,\n} from '@wordpress/editor';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as coreDataStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tSidebarComplementaryAreaFills,\n\tSidebarInspectorFill,\n} from '../sidebar-edit-mode';\nimport CodeEditor from '../code-editor';\nimport KeyboardShortcutsEditMode from '../keyboard-shortcuts/edit-mode';\nimport WelcomeGuide from '../welcome-guide';\nimport StartTemplateOptions from '../start-template-options';\nimport { store as editSiteStore } from '../../store';\nimport { GlobalStylesRenderer } from '../global-styles-renderer';\nimport useTitle from '../routes/use-title';\nimport CanvasLoader from '../canvas-loader';\nimport { unlock } from '../../lock-unlock';\nimport useEditedEntityRecord from '../use-edited-entity-record';\nimport PatternModal from '../pattern-modal';\nimport { POST_TYPE_LABELS, TEMPLATE_POST_TYPE } from '../../utils/constants';\nimport SiteEditorCanvas from '../block-editor/site-editor-canvas';\nimport TemplatePartConverter from '../template-part-converter';\nimport { useSpecificEditorSettings } from '../block-editor/use-site-editor-settings';\n\nconst { BlockRemovalWarningModal } = unlock( blockEditorPrivateApis );\nconst {\n\tExperimentalEditorProvider: EditorProvider,\n\tInserterSidebar,\n\tListViewSidebar,\n} = unlock( editorPrivateApis );\n\nconst interfaceLabels = {\n\t/* translators: accessibility text for the editor content landmark region. */\n\tbody: __( 'Editor content' ),\n\t/* translators: accessibility text for the editor settings landmark region. */\n\tsidebar: __( 'Editor settings' ),\n\t/* translators: accessibility text for the editor publish landmark region. */\n\tactions: __( 'Editor publish' ),\n\t/* translators: accessibility text for the editor footer landmark region. */\n\tfooter: __( 'Editor footer' ),\n};\n\n// Prevent accidental removal of certain blocks, asking the user for\n// confirmation.\nconst blockRemovalRules = {\n\t'core/query': __( 'Query Loop displays a list of posts or pages.' ),\n\t'core/post-content': __(\n\t\t'Post Content displays the content of a post or page.'\n\t),\n\t'core/post-template': __(\n\t\t'Post Template displays each post or page in a Query Loop.'\n\t),\n};\n\nexport default function Editor( { isLoading } ) {\n\tconst {\n\t\trecord: editedPost,\n\t\tgetTitle,\n\t\tisLoaded: hasLoadedPost,\n\t} = useEditedEntityRecord();\n\n\tconst { type: editedPostType } = editedPost;\n\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\n\tconst {\n\t\tcontext,\n\t\tcontextPost,\n\t\teditorMode,\n\t\tcanvasMode,\n\t\trenderingMode,\n\t\tblockEditorMode,\n\t\tisRightSidebarOpen,\n\t\tisInserterOpen,\n\t\tisListViewOpen,\n\t\tshowIconLabels,\n\t\tshowBlockBreadcrumbs,\n\t} = useSelect( ( select ) => {\n\t\tconst { get } = select( preferencesStore );\n\t\tconst { getEditedPostContext, getEditorMode, getCanvasMode } = unlock(\n\t\t\tselect( editSiteStore )\n\t\t);\n\t\tconst { __unstableGetEditorMode } = select( blockEditorStore );\n\t\tconst { getActiveComplementaryArea } = select( interfaceStore );\n\t\tconst { getEntityRecord } = select( coreDataStore );\n\t\tconst { getRenderingMode, isInserterOpened, isListViewOpened } =\n\t\t\tselect( editorStore );\n\t\tconst _context = getEditedPostContext();\n\n\t\t// The currently selected entity to display.\n\t\t// Typically template or template part in the site editor.\n\t\treturn {\n\t\t\tcontext: _context,\n\t\t\tcontextPost: _context?.postId\n\t\t\t\t? getEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t_context.postType,\n\t\t\t\t\t\t_context.postId\n\t\t\t\t  )\n\t\t\t\t: undefined,\n\t\t\teditorMode: getEditorMode(),\n\t\t\tcanvasMode: getCanvasMode(),\n\t\t\trenderingMode: getRenderingMode(),\n\t\t\tblockEditorMode: __unstableGetEditorMode(),\n\t\t\tisInserterOpen: isInserterOpened(),\n\t\t\tisListViewOpen: isListViewOpened(),\n\t\t\tisRightSidebarOpen: getActiveComplementaryArea(\n\t\t\t\teditSiteStore.name\n\t\t\t),\n\t\t\tshowBlockBreadcrumbs: get( 'core', 'showBlockBreadcrumbs' ),\n\t\t\tshowIconLabels: get( 'core', 'showIconLabels' ),\n\t\t};\n\t}, [] );\n\n\tconst isViewMode = canvasMode === 'view';\n\tconst isEditMode = canvasMode === 'edit';\n\tconst showVisualEditor = isViewMode || editorMode === 'visual';\n\tconst shouldShowBlockBreadcrumbs =\n\t\tshowBlockBreadcrumbs &&\n\t\tisEditMode &&\n\t\tshowVisualEditor &&\n\t\tblockEditorMode !== 'zoom-out';\n\tconst shouldShowInserter = isEditMode && showVisualEditor && isInserterOpen;\n\tconst shouldShowListView = isEditMode && showVisualEditor && isListViewOpen;\n\tconst secondarySidebarLabel = isListViewOpen\n\t\t? __( 'List View' )\n\t\t: __( 'Block Library' );\n\tconst postWithTemplate = !! context?.postId;\n\n\tlet title;\n\tif ( hasLoadedPost ) {\n\t\ttitle = sprintf(\n\t\t\t// translators: A breadcrumb trail for the Admin document title. %1$s: title of template being edited, %2$s: type of template (Template or Template Part).\n\t\t\t__( '%1$s ‹ %2$s' ),\n\t\t\tgetTitle(),\n\t\t\tPOST_TYPE_LABELS[ editedPostType ] ??\n\t\t\t\tPOST_TYPE_LABELS[ TEMPLATE_POST_TYPE ]\n\t\t);\n\t}\n\n\t// Only announce the title once the editor is ready to prevent \"Replace\"\n\t// action in <URLQueryController> from double-announcing.\n\tuseTitle( hasLoadedPost && title );\n\n\tconst loadingProgressId = useInstanceId(\n\t\tCanvasLoader,\n\t\t'edit-site-editor__loading-progress'\n\t);\n\n\tconst settings = useSpecificEditorSettings();\n\tconst isReady =\n\t\t! isLoading &&\n\t\t( ( postWithTemplate && !! contextPost && !! editedPost ) ||\n\t\t\t( ! postWithTemplate && !! editedPost ) );\n\n\treturn (\n\t\t<>\n\t\t\t{ ! isReady ? <CanvasLoader id={ loadingProgressId } /> : null }\n\t\t\t{ isEditMode && <WelcomeGuide /> }\n\t\t\t{ hasLoadedPost && ! editedPost && (\n\t\t\t\t<Notice status=\"warning\" isDismissible={ false }>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t\"You attempted to edit an item that doesn't exist. Perhaps it was deleted?\"\n\t\t\t\t\t) }\n\t\t\t\t</Notice>\n\t\t\t) }\n\t\t\t{ isReady && (\n\t\t\t\t<EditorProvider\n\t\t\t\t\tpost={ postWithTemplate ? contextPost : editedPost }\n\t\t\t\t\t__unstableTemplate={\n\t\t\t\t\t\tpostWithTemplate ? editedPost : undefined\n\t\t\t\t\t}\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tuseSubRegistry={ false }\n\t\t\t\t>\n\t\t\t\t\t<SidebarComplementaryAreaFills />\n\t\t\t\t\t{ isEditMode && <StartTemplateOptions /> }\n\t\t\t\t\t<InterfaceSkeleton\n\t\t\t\t\t\tisDistractionFree={ true }\n\t\t\t\t\t\tenableRegionNavigation={ false }\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'edit-site-editor__interface-skeleton',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'show-icon-labels': showIconLabels,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tnotices={ <EditorSnackbars /> }\n\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<GlobalStylesRenderer />\n\t\t\t\t\t\t\t\t{ isEditMode && <EditorNotices /> }\n\t\t\t\t\t\t\t\t{ showVisualEditor && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<TemplatePartConverter />\n\t\t\t\t\t\t\t\t\t\t<SidebarInspectorFill>\n\t\t\t\t\t\t\t\t\t\t\t<BlockInspector />\n\t\t\t\t\t\t\t\t\t\t</SidebarInspectorFill>\n\t\t\t\t\t\t\t\t\t\t{ ! isLargeViewport && (\n\t\t\t\t\t\t\t\t\t\t\t<BlockToolbar hideDragHandle />\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t<SiteEditorCanvas />\n\t\t\t\t\t\t\t\t\t\t<BlockRemovalWarningModal\n\t\t\t\t\t\t\t\t\t\t\trules={ blockRemovalRules }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<PatternModal />\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ editorMode === 'text' && isEditMode && (\n\t\t\t\t\t\t\t\t\t<CodeEditor />\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ isEditMode && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<KeyboardShortcutsEditMode />\n\t\t\t\t\t\t\t\t\t\t<EditorKeyboardShortcutsRegister />\n\t\t\t\t\t\t\t\t\t\t<EditorKeyboardShortcuts />\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsecondarySidebar={\n\t\t\t\t\t\t\tisEditMode &&\n\t\t\t\t\t\t\t( ( shouldShowInserter && <InserterSidebar /> ) ||\n\t\t\t\t\t\t\t\t( shouldShowListView && <ListViewSidebar /> ) )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsidebar={\n\t\t\t\t\t\t\tisEditMode &&\n\t\t\t\t\t\t\tisRightSidebarOpen && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<ComplementaryArea.Slot scope=\"core/edit-site\" />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfooter={\n\t\t\t\t\t\t\tshouldShowBlockBreadcrumbs && (\n\t\t\t\t\t\t\t\t<BlockBreadcrumb\n\t\t\t\t\t\t\t\t\trootLabelText={\n\t\t\t\t\t\t\t\t\t\tpostWithTemplate &&\n\t\t\t\t\t\t\t\t\t\trenderingMode !== 'template-only'\n\t\t\t\t\t\t\t\t\t\t\t? __( 'Page' )\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Template' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlabels={ {\n\t\t\t\t\t\t\t...interfaceLabels,\n\t\t\t\t\t\t\tsecondarySidebar: secondarySidebarLabel,\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</EditorProvider>\n\t\t\t) }\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { Warning } from '@wordpress/block-editor';\nimport { useCopyToClipboard } from '@wordpress/compose';\n\nfunction CopyButton( { text, children } ) {\n\tconst ref = useCopyToClipboard( text );\n\treturn (\n\t\t<Button variant=\"secondary\" ref={ ref }>\n\t\t\t{ children }\n\t\t</Button>\n\t);\n}\n\nexport default function ErrorBoundaryWarning( { message, error } ) {\n\tconst actions = [\n\t\t<CopyButton key=\"copy-error\" text={ error.stack }>\n\t\t\t{ __( 'Copy Error' ) }\n\t\t</CopyButton>,\n\t];\n\n\treturn (\n\t\t<Warning className=\"editor-error-boundary\" actions={ actions }>\n\t\t\t{ message }\n\t\t</Warning>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { doAction } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport ErrorBoundaryWarning from './warning';\n\nexport default class ErrorBoundary extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.state = {\n\t\t\terror: null,\n\t\t};\n\t}\n\n\tcomponentDidCatch( error ) {\n\t\tdoAction( 'editor.ErrorBoundary.errorLogged', error );\n\t}\n\n\tstatic getDerivedStateFromError( error ) {\n\t\treturn { error };\n\t}\n\n\trender() {\n\t\tif ( ! this.state.error ) {\n\t\t\treturn this.props.children;\n\t\t}\n\n\t\treturn (\n\t\t\t<ErrorBoundaryWarning\n\t\t\t\tmessage={ __(\n\t\t\t\t\t'The editor has encountered an unexpected error.'\n\t\t\t\t) }\n\t\t\t\terror={ this.state.error }\n\t\t\t/>\n\t\t);\n\t}\n}\n","/**\n * Returns if the params match the list page route.\n *\n * @param {Object}  params                The url params.\n * @param {string}  params.path           The current path.\n * @param {string}  [params.categoryType] The current category type.\n * @param {string}  [params.categoryId]   The current category id.\n * @param {boolean} isMobileViewport      Is mobile viewport.\n *\n * @return {boolean} Is list page or not.\n */\nexport default function getIsListPage(\n\t{ path, categoryType, categoryId },\n\tisMobileViewport\n) {\n\treturn (\n\t\t[ '/wp_template/all', '/wp_template_part/all' ].includes( path ) ||\n\t\t( path === '/page' && window?.__experimentalAdminViews ) ||\n\t\t( path === '/patterns' &&\n\t\t\t// Don't treat \"/patterns\" without categoryType and categoryId as a\n\t\t\t// list page in mobile because the sidebar covers the whole page.\n\t\t\t( ! isMobileViewport || ( !! categoryType && !! categoryId ) ) )\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst next = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M6.6 6L5.4 7l4.5 5-4.5 5 1.1 1 5.5-6-5.4-6zm6 0l-1.1 1 4.5 5-4.5 5 1.1 1 5.5-6-5.5-6z\" />\n\t</SVG>\n);\n\nexport default next;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst previous = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M11.6 7l-1.1-1L5 12l5.5 6 1.1-1L7 12l4.6-5zm6 0l-1.1-1-5.5 6 5.5 6 1.1-1-4.6-5 4.6-5z\" />\n\t</SVG>\n);\n\nexport default previous;\n","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst external = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M19.5 4.5h-7V6h4.44l-5.97 5.97 1.06 1.06L18 7.06v4.44h1.5v-7Zm-13 1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-3H17v3a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h3V5.5h-3Z\" />\n\t</SVG>\n);\n\nexport default external;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nexport const textFormattingShortcuts = [\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'b' },\n\t\tdescription: __( 'Make the selected text bold.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'i' },\n\t\tdescription: __( 'Make the selected text italic.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'k' },\n\t\tdescription: __( 'Convert the selected text into a link.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primaryShift', character: 'k' },\n\t\tdescription: __( 'Remove a link.' ),\n\t},\n\t{\n\t\tkeyCombination: { character: '[[' },\n\t\tdescription: __( 'Insert a link to a post or page.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'primary', character: 'u' },\n\t\tdescription: __( 'Underline the selected text.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'access', character: 'd' },\n\t\tdescription: __( 'Strikethrough the selected text.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'access', character: 'x' },\n\t\tdescription: __( 'Make the selected text inline code.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'access', character: '0' },\n\t\tdescription: __( 'Convert the current heading to a paragraph.' ),\n\t},\n\t{\n\t\tkeyCombination: { modifier: 'access', character: '1-6' },\n\t\tdescription: __(\n\t\t\t'Convert the current paragraph or heading to a heading of level 1 to 6.'\n\t\t),\n\t},\n];\n","/**\n * WordPress dependencies\n */\nimport { Fragment } from '@wordpress/element';\nimport { displayShortcutList, shortcutAriaLabel } from '@wordpress/keycodes';\n\nfunction KeyCombination( { keyCombination, forceAriaLabel } ) {\n\tconst shortcut = keyCombination.modifier\n\t\t? displayShortcutList[ keyCombination.modifier ](\n\t\t\t\tkeyCombination.character\n\t\t  )\n\t\t: keyCombination.character;\n\tconst ariaLabel = keyCombination.modifier\n\t\t? shortcutAriaLabel[ keyCombination.modifier ](\n\t\t\t\tkeyCombination.character\n\t\t  )\n\t\t: keyCombination.character;\n\n\treturn (\n\t\t<kbd\n\t\t\tclassName=\"edit-site-keyboard-shortcut-help-modal__shortcut-key-combination\"\n\t\t\taria-label={ forceAriaLabel || ariaLabel }\n\t\t>\n\t\t\t{ ( Array.isArray( shortcut ) ? shortcut : [ shortcut ] ).map(\n\t\t\t\t( character, index ) => {\n\t\t\t\t\tif ( character === '+' ) {\n\t\t\t\t\t\treturn <Fragment key={ index }>{ character }</Fragment>;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<kbd\n\t\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\t\tclassName=\"edit-site-keyboard-shortcut-help-modal__shortcut-key\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ character }\n\t\t\t\t\t\t</kbd>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t) }\n\t\t</kbd>\n\t);\n}\n\nexport default function Shortcut( {\n\tdescription,\n\tkeyCombination,\n\taliases = [],\n\tariaLabel,\n} ) {\n\treturn (\n\t\t<>\n\t\t\t<div className=\"edit-site-keyboard-shortcut-help-modal__shortcut-description\">\n\t\t\t\t{ description }\n\t\t\t</div>\n\t\t\t<div className=\"edit-site-keyboard-shortcut-help-modal__shortcut-term\">\n\t\t\t\t<KeyCombination\n\t\t\t\t\tkeyCombination={ keyCombination }\n\t\t\t\t\tforceAriaLabel={ ariaLabel }\n\t\t\t\t/>\n\t\t\t\t{ aliases.map( ( alias, index ) => (\n\t\t\t\t\t<KeyCombination\n\t\t\t\t\t\tkeyCombination={ alias }\n\t\t\t\t\t\tforceAriaLabel={ ariaLabel }\n\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\n\n/**\n * Internal dependencies\n */\nimport Shortcut from './shortcut';\n\nexport default function DynamicShortcut( { name } ) {\n\tconst { keyCombination, description, aliases } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetShortcutKeyCombination,\n\t\t\t\tgetShortcutDescription,\n\t\t\t\tgetShortcutAliases,\n\t\t\t} = select( keyboardShortcutsStore );\n\n\t\t\treturn {\n\t\t\t\tkeyCombination: getShortcutKeyCombination( name ),\n\t\t\t\taliases: getShortcutAliases( name ),\n\t\t\t\tdescription: getShortcutDescription( name ),\n\t\t\t};\n\t\t},\n\t\t[ name ]\n\t);\n\n\tif ( ! keyCombination ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Shortcut\n\t\t\tkeyCombination={ keyCombination }\n\t\t\tdescription={ description }\n\t\t\taliases={ aliases }\n\t\t/>\n\t);\n}\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Modal } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseShortcut,\n\tstore as keyboardShortcutsStore,\n} from '@wordpress/keyboard-shortcuts';\nimport { store as interfaceStore } from '@wordpress/interface';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { textFormattingShortcuts } from './config';\nimport Shortcut from './shortcut';\nimport DynamicShortcut from './dynamic-shortcut';\n\nexport const KEYBOARD_SHORTCUT_HELP_MODAL_NAME =\n\t'edit-site/keyboard-shortcut-help';\n\nconst ShortcutList = ( { shortcuts } ) => (\n\t/*\n\t * Disable reason: The `list` ARIA role is redundant but\n\t * Safari+VoiceOver won't announce the list otherwise.\n\t */\n\t/* eslint-disable jsx-a11y/no-redundant-roles */\n\t<ul\n\t\tclassName=\"edit-site-keyboard-shortcut-help-modal__shortcut-list\"\n\t\trole=\"list\"\n\t>\n\t\t{ shortcuts.map( ( shortcut, index ) => (\n\t\t\t<li\n\t\t\t\tclassName=\"edit-site-keyboard-shortcut-help-modal__shortcut\"\n\t\t\t\tkey={ index }\n\t\t\t>\n\t\t\t\t{ typeof shortcut === 'string' ? (\n\t\t\t\t\t<DynamicShortcut name={ shortcut } />\n\t\t\t\t) : (\n\t\t\t\t\t<Shortcut { ...shortcut } />\n\t\t\t\t) }\n\t\t\t</li>\n\t\t) ) }\n\t</ul>\n\t/* eslint-enable jsx-a11y/no-redundant-roles */\n);\n\nconst ShortcutSection = ( { title, shortcuts, className } ) => (\n\t<section\n\t\tclassName={ classnames(\n\t\t\t'edit-site-keyboard-shortcut-help-modal__section',\n\t\t\tclassName\n\t\t) }\n\t>\n\t\t{ !! title && (\n\t\t\t<h2 className=\"edit-site-keyboard-shortcut-help-modal__section-title\">\n\t\t\t\t{ title }\n\t\t\t</h2>\n\t\t) }\n\t\t<ShortcutList shortcuts={ shortcuts } />\n\t</section>\n);\n\nconst ShortcutCategorySection = ( {\n\ttitle,\n\tcategoryName,\n\tadditionalShortcuts = [],\n} ) => {\n\tconst categoryShortcuts = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( keyboardShortcutsStore ).getCategoryShortcuts(\n\t\t\t\tcategoryName\n\t\t\t);\n\t\t},\n\t\t[ categoryName ]\n\t);\n\n\treturn (\n\t\t<ShortcutSection\n\t\t\ttitle={ title }\n\t\t\tshortcuts={ categoryShortcuts.concat( additionalShortcuts ) }\n\t\t/>\n\t);\n};\n\nexport default function KeyboardShortcutHelpModal() {\n\tconst isModalActive = useSelect( ( select ) =>\n\t\tselect( interfaceStore ).isModalActive(\n\t\t\tKEYBOARD_SHORTCUT_HELP_MODAL_NAME\n\t\t)\n\t);\n\tconst { closeModal, openModal } = useDispatch( interfaceStore );\n\tconst toggleModal = () =>\n\t\tisModalActive\n\t\t\t? closeModal()\n\t\t\t: openModal( KEYBOARD_SHORTCUT_HELP_MODAL_NAME );\n\tuseShortcut( 'core/edit-site/keyboard-shortcuts', toggleModal );\n\tif ( ! isModalActive ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<Modal\n\t\t\tclassName=\"edit-site-keyboard-shortcut-help-modal\"\n\t\t\ttitle={ __( 'Keyboard shortcuts' ) }\n\t\t\tonRequestClose={ toggleModal }\n\t\t>\n\t\t\t<ShortcutSection\n\t\t\t\tclassName=\"edit-site-keyboard-shortcut-help-modal__main-shortcuts\"\n\t\t\t\tshortcuts={ [ 'core/edit-site/keyboard-shortcuts' ] }\n\t\t\t/>\n\t\t\t<ShortcutCategorySection\n\t\t\t\ttitle={ __( 'Global shortcuts' ) }\n\t\t\t\tcategoryName=\"global\"\n\t\t\t/>\n\n\t\t\t<ShortcutCategorySection\n\t\t\t\ttitle={ __( 'Selection shortcuts' ) }\n\t\t\t\tcategoryName=\"selection\"\n\t\t\t/>\n\n\t\t\t<ShortcutCategorySection\n\t\t\t\ttitle={ __( 'Block shortcuts' ) }\n\t\t\t\tcategoryName=\"block\"\n\t\t\t\tadditionalShortcuts={ [\n\t\t\t\t\t{\n\t\t\t\t\t\tkeyCombination: { character: '/' },\n\t\t\t\t\t\tdescription: __(\n\t\t\t\t\t\t\t'Change the block type after adding a new paragraph.'\n\t\t\t\t\t\t),\n\t\t\t\t\t\t/* translators: The forward-slash character. e.g. '/'. */\n\t\t\t\t\t\tariaLabel: __( 'Forward-slash' ),\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t/>\n\t\t\t<ShortcutSection\n\t\t\t\ttitle={ __( 'Text formatting' ) }\n\t\t\t\tshortcuts={ textFormattingShortcuts }\n\t\t\t/>\n\t\t</Modal>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { ___unstablePreferencesModalBaseOption as BaseOption } from '@wordpress/interface';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\nexport default function EnableFeature( props ) {\n\tconst {\n\t\tscope = 'core/edit-site',\n\t\tfeatureName,\n\t\tonToggle = () => {},\n\t\t...remainingProps\n\t} = props;\n\tconst isChecked = useSelect(\n\t\t( select ) => !! select( preferencesStore ).get( scope, featureName ),\n\t\t[ scope, featureName ]\n\t);\n\tconst { toggle } = useDispatch( preferencesStore );\n\tconst onChange = () => {\n\t\tonToggle();\n\t\ttoggle( scope, featureName );\n\t};\n\treturn (\n\t\t<BaseOption\n\t\t\tonChange={ onChange }\n\t\t\tisChecked={ isChecked }\n\t\t\t{ ...remainingProps }\n\t\t/>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { compose, ifCondition } from '@wordpress/compose';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { ___unstablePreferencesModalBaseOption as BaseOption } from '@wordpress/interface';\nimport { store as editorStore } from '@wordpress/editor';\n\nexport default compose(\n\twithSelect( ( select, { panelName } ) => {\n\t\tconst { isEditorPanelEnabled, isEditorPanelRemoved } =\n\t\t\tselect( editorStore );\n\t\treturn {\n\t\t\tisRemoved: isEditorPanelRemoved( panelName ),\n\t\t\tisChecked: isEditorPanelEnabled( panelName ),\n\t\t};\n\t} ),\n\tifCondition( ( { isRemoved } ) => ! isRemoved ),\n\twithDispatch( ( dispatch, { panelName } ) => ( {\n\t\tonChange: () =>\n\t\t\tdispatch( editorStore ).toggleEditorPanelEnabled( panelName ),\n\t} ) )\n)( BaseOption );\n","/**\n * WordPress dependencies\n */\nimport {\n\tPreferencesModal,\n\tPreferencesModalTabs,\n\tPreferencesModalSection,\n\tstore as interfaceStore,\n} from '@wordpress/interface';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch, useRegistry } from '@wordpress/data';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport {\n\tPostTaxonomies,\n\tPostExcerptCheck,\n\tPageAttributesCheck,\n\tPostFeaturedImageCheck,\n\tPostTypeSupportCheck,\n\tstore as editorStore,\n} from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport EnableFeature from './enable-feature';\nimport EnablePanelOption from './enable-panel-option';\nimport { store as editSiteStore } from '../../store';\n\nexport const PREFERENCES_MODAL_NAME = 'edit-site/preferences';\n\nexport default function EditSitePreferencesModal() {\n\tconst isModalActive = useSelect( ( select ) =>\n\t\tselect( interfaceStore ).isModalActive( PREFERENCES_MODAL_NAME )\n\t);\n\tconst { closeModal, openModal } = useDispatch( interfaceStore );\n\tconst toggleModal = () =>\n\t\tisModalActive ? closeModal() : openModal( PREFERENCES_MODAL_NAME );\n\tconst registry = useRegistry();\n\tconst { closeGeneralSidebar } = useDispatch( editSiteStore );\n\tconst { setIsListViewOpened, setIsInserterOpened } =\n\t\tuseDispatch( editorStore );\n\n\tconst { set: setPreference } = useDispatch( preferencesStore );\n\tconst toggleDistractionFree = () => {\n\t\tregistry.batch( () => {\n\t\t\tsetPreference( 'core', 'fixedToolbar', true );\n\t\t\tsetIsInserterOpened( false );\n\t\t\tsetIsListViewOpened( false );\n\t\t\tcloseGeneralSidebar();\n\t\t} );\n\t};\n\n\tconst turnOffDistractionFree = () => {\n\t\tsetPreference( 'core', 'distractionFree', false );\n\t};\n\n\tconst sections = [\n\t\t{\n\t\t\tname: 'general',\n\t\t\ttabLabel: __( 'General' ),\n\t\t\tcontent: (\n\t\t\t\t<>\n\t\t\t\t\t<PreferencesModalSection title={ __( 'Interface' ) }>\n\t\t\t\t\t\t<EnableFeature\n\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\tfeatureName=\"showListViewByDefault\"\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Opens the block list view sidebar by default.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tlabel={ __( 'Always open list view' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<EnableFeature\n\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\tfeatureName=\"showBlockBreadcrumbs\"\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Shows block breadcrumbs at the bottom of the editor.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tlabel={ __( 'Display block breadcrumbs' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<EnableFeature\n\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\tfeatureName=\"allowRightClickOverrides\"\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Allows contextual list view menus via right-click, overriding browser defaults.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tlabel={ __( 'Allow right-click contextual menus' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PreferencesModalSection>\n\t\t\t\t\t<PreferencesModalSection\n\t\t\t\t\t\ttitle={ __( 'Document settings' ) }\n\t\t\t\t\t\tdescription={ __(\n\t\t\t\t\t\t\t'Select what settings are shown in the document panel.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<PostTaxonomies\n\t\t\t\t\t\t\ttaxonomyWrapper={ ( content, taxonomy ) => (\n\t\t\t\t\t\t\t\t<EnablePanelOption\n\t\t\t\t\t\t\t\t\tlabel={ taxonomy.labels.menu_name }\n\t\t\t\t\t\t\t\t\tpanelName={ `taxonomy-panel-${ taxonomy.slug }` }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<PostFeaturedImageCheck>\n\t\t\t\t\t\t\t<EnablePanelOption\n\t\t\t\t\t\t\t\tlabel={ __( 'Featured image' ) }\n\t\t\t\t\t\t\t\tpanelName=\"featured-image\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</PostFeaturedImageCheck>\n\t\t\t\t\t\t<PostExcerptCheck>\n\t\t\t\t\t\t\t<EnablePanelOption\n\t\t\t\t\t\t\t\tlabel={ __( 'Excerpt' ) }\n\t\t\t\t\t\t\t\tpanelName=\"post-excerpt\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</PostExcerptCheck>\n\t\t\t\t\t\t<PostTypeSupportCheck\n\t\t\t\t\t\t\tsupportKeys={ [ 'comments', 'trackbacks' ] }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<EnablePanelOption\n\t\t\t\t\t\t\t\tlabel={ __( 'Discussion' ) }\n\t\t\t\t\t\t\t\tpanelName=\"discussion-panel\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</PostTypeSupportCheck>\n\t\t\t\t\t\t<PageAttributesCheck>\n\t\t\t\t\t\t\t<EnablePanelOption\n\t\t\t\t\t\t\t\tlabel={ __( 'Page attributes' ) }\n\t\t\t\t\t\t\t\tpanelName=\"page-attributes\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</PageAttributesCheck>\n\t\t\t\t\t</PreferencesModalSection>\n\t\t\t\t</>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tname: 'appearance',\n\t\t\ttabLabel: __( 'Appearance' ),\n\t\t\tcontent: (\n\t\t\t\t<PreferencesModalSection\n\t\t\t\t\ttitle={ __( 'Appearance' ) }\n\t\t\t\t\tdescription={ __(\n\t\t\t\t\t\t'Customize the editor interface to suit your needs.'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<EnableFeature\n\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\tfeatureName=\"fixedToolbar\"\n\t\t\t\t\t\tonToggle={ turnOffDistractionFree }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Access all block and document tools in a single place.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tlabel={ __( 'Top toolbar' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<EnableFeature\n\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\tfeatureName=\"distractionFree\"\n\t\t\t\t\t\tonToggle={ toggleDistractionFree }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Reduce visual distractions by hiding the toolbar and other elements to focus on writing.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tlabel={ __( 'Distraction free' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<EnableFeature\n\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\tfeatureName=\"focusMode\"\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Highlights the current block and fades other content.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tlabel={ __( 'Spotlight mode' ) }\n\t\t\t\t\t/>\n\t\t\t\t</PreferencesModalSection>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tname: 'accessibility',\n\t\t\ttabLabel: __( 'Accessibility' ),\n\t\t\tcontent: (\n\t\t\t\t<>\n\t\t\t\t\t<PreferencesModalSection\n\t\t\t\t\t\ttitle={ __( 'Navigation' ) }\n\t\t\t\t\t\tdescription={ __(\n\t\t\t\t\t\t\t'Optimize the editing experience for enhanced control.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<EnableFeature\n\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\tfeatureName=\"keepCaretInsideBlock\"\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Keeps the text cursor within the block boundaries, aiding users with screen readers by preventing unintentional cursor movement outside the block.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tlabel={ __( 'Contain text cursor inside block' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PreferencesModalSection>\n\t\t\t\t\t<PreferencesModalSection title={ __( 'Interface' ) }>\n\t\t\t\t\t\t<EnableFeature\n\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\tfeatureName=\"showIconLabels\"\n\t\t\t\t\t\t\tlabel={ __( 'Show button text labels' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Show text instead of icons on buttons across the interface.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PreferencesModalSection>\n\t\t\t\t</>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tname: 'blocks',\n\t\t\ttabLabel: __( 'Blocks' ),\n\t\t\tcontent: (\n\t\t\t\t<>\n\t\t\t\t\t<PreferencesModalSection title={ __( 'Inserter' ) }>\n\t\t\t\t\t\t<EnableFeature\n\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\tfeatureName=\"mostUsedBlocks\"\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Adds a category with the most frequently used blocks in the inserter.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tlabel={ __( 'Show most used blocks' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PreferencesModalSection>\n\t\t\t\t</>\n\t\t\t),\n\t\t},\n\t];\n\tif ( ! isModalActive ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<PreferencesModal closeModal={ toggleModal }>\n\t\t\t<PreferencesModalTabs sections={ sections } />\n\t\t</PreferencesModal>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { createSlotFill } from '@wordpress/components';\n\nconst { Fill: ToolsMoreMenuGroup, Slot } = createSlotFill(\n\t'EditSiteToolsMoreMenuGroup'\n);\n\nToolsMoreMenuGroup.Slot = ( { fillProps } ) => (\n\t<Slot fillProps={ fillProps }>\n\t\t{ ( fills ) => fills && fills.length > 0 }\n\t</Slot>\n);\n\nexport default ToolsMoreMenuGroup;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst download = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M18 11.3l-1-1.1-4 4V3h-1.5v11.3L7 10.2l-1 1.1 6.2 5.8 5.8-5.8zm.5 3.7v3.5h-13V15H4v5h16v-5h-1.5z\" />\n\t</SVG>\n);\n\nexport default download;\n","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"blob\"];","/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { MenuItem } from '@wordpress/components';\nimport apiFetch from '@wordpress/api-fetch';\nimport { download } from '@wordpress/icons';\nimport { useDispatch } from '@wordpress/data';\nimport { downloadBlob } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\n\nexport default function SiteExport() {\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tasync function handleExport() {\n\t\ttry {\n\t\t\tconst response = await apiFetch( {\n\t\t\t\tpath: '/wp-block-editor/v1/export',\n\t\t\t\tparse: false,\n\t\t\t\theaders: {\n\t\t\t\t\tAccept: 'application/zip',\n\t\t\t\t},\n\t\t\t} );\n\t\t\tconst blob = await response.blob();\n\t\t\tconst contentDisposition = response.headers.get(\n\t\t\t\t'content-disposition'\n\t\t\t);\n\t\t\tconst contentDispositionMatches =\n\t\t\t\tcontentDisposition.match( /=(.+)\\.zip/ );\n\t\t\tconst fileName = contentDispositionMatches[ 1 ]\n\t\t\t\t? contentDispositionMatches[ 1 ]\n\t\t\t\t: 'edit-site-export';\n\n\t\t\tdownloadBlob( fileName + '.zip', blob, 'application/zip' );\n\t\t} catch ( errorResponse ) {\n\t\t\tlet error = {};\n\t\t\ttry {\n\t\t\t\terror = await errorResponse.json();\n\t\t\t} catch ( e ) {}\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while creating the site export.' );\n\n\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t}\n\t}\n\n\treturn (\n\t\t<MenuItem\n\t\t\trole=\"menuitem\"\n\t\t\ticon={ download }\n\t\t\tonClick={ handleExport }\n\t\t\tinfo={ __(\n\t\t\t\t'Download your theme with updated templates and styles.'\n\t\t\t) }\n\t\t>\n\t\t\t{ _x( 'Export', 'site exporter menu item' ) }\n\t\t</MenuItem>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { MenuItem } from '@wordpress/components';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\nexport default function WelcomeGuideMenuItem() {\n\tconst { toggle } = useDispatch( preferencesStore );\n\n\treturn (\n\t\t<MenuItem onClick={ () => toggle( 'core/edit-site', 'welcomeGuide' ) }>\n\t\t\t{ __( 'Welcome Guide' ) }\n\t\t</MenuItem>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { useCopyToClipboard } from '@wordpress/compose';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __unstableSerializeAndClean } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../../store';\n\nexport default function CopyContentMenuItem() {\n\tconst { createNotice } = useDispatch( noticesStore );\n\tconst { getEditedPostId, getEditedPostType } = useSelect( editSiteStore );\n\tconst { getEditedEntityRecord } = useSelect( coreStore );\n\n\tfunction getText() {\n\t\tconst record = getEditedEntityRecord(\n\t\t\t'postType',\n\t\t\tgetEditedPostType(),\n\t\t\tgetEditedPostId()\n\t\t);\n\t\tif ( ! record ) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif ( typeof record.content === 'function' ) {\n\t\t\treturn record.content( record );\n\t\t} else if ( record.blocks ) {\n\t\t\treturn __unstableSerializeAndClean( record.blocks );\n\t\t} else if ( record.content ) {\n\t\t\treturn record.content;\n\t\t}\n\t}\n\n\tfunction onSuccess() {\n\t\tcreateNotice( 'info', __( 'All content copied.' ), {\n\t\t\tisDismissible: true,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}\n\n\tconst ref = useCopyToClipboard( getText, onSuccess );\n\n\treturn <MenuItem ref={ ref }>{ __( 'Copy all blocks' ) }</MenuItem>;\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { MenuItemsChoice, MenuGroup } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../../store';\n\n/**\n * Set of available mode options.\n *\n * @type {Array}\n */\nconst MODES = [\n\t{\n\t\tvalue: 'visual',\n\t\tlabel: __( 'Visual editor' ),\n\t},\n\t{\n\t\tvalue: 'text',\n\t\tlabel: __( 'Code editor' ),\n\t},\n];\n\nfunction ModeSwitcher() {\n\tconst { shortcut, mode } = useSelect(\n\t\t( select ) => ( {\n\t\t\tshortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getShortcutRepresentation( 'core/edit-site/toggle-mode' ),\n\t\t\tmode: select( editSiteStore ).getEditorMode(),\n\t\t} ),\n\t\t[]\n\t);\n\tconst { switchEditorMode } = useDispatch( editSiteStore );\n\n\tconst choices = MODES.map( ( choice ) => {\n\t\tif ( choice.value !== mode ) {\n\t\t\treturn { ...choice, shortcut };\n\t\t}\n\t\treturn choice;\n\t} );\n\n\treturn (\n\t\t<MenuGroup label={ __( 'Editor' ) }>\n\t\t\t<MenuItemsChoice\n\t\t\t\tchoices={ choices }\n\t\t\t\tvalue={ mode }\n\t\t\t\tonSelect={ switchEditorMode }\n\t\t\t/>\n\t\t</MenuGroup>\n\t);\n}\n\nexport default ModeSwitcher;\n","/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { useDispatch, useRegistry } from '@wordpress/data';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { external } from '@wordpress/icons';\nimport { MenuGroup, MenuItem, VisuallyHidden } from '@wordpress/components';\nimport {\n\tActionItem,\n\tMoreMenuDropdown,\n\tstore as interfaceStore,\n} from '@wordpress/interface';\nimport {\n\tPreferenceToggleMenuItem,\n\tstore as preferencesStore,\n} from '@wordpress/preferences';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport {\n\tKEYBOARD_SHORTCUT_HELP_MODAL_NAME,\n\tdefault as KeyboardShortcutHelpModal,\n} from '../../keyboard-shortcut-help-modal';\nimport {\n\tPREFERENCES_MODAL_NAME,\n\tdefault as EditSitePreferencesModal,\n} from '../../preferences-modal';\nimport ToolsMoreMenuGroup from '../tools-more-menu-group';\nimport SiteExport from './site-export';\nimport WelcomeGuideMenuItem from './welcome-guide-menu-item';\nimport CopyContentMenuItem from './copy-content-menu-item';\nimport ModeSwitcher from '../mode-switcher';\nimport { store as siteEditorStore } from '../../../store';\n\nexport default function MoreMenu( { showIconLabels } ) {\n\tconst registry = useRegistry();\n\n\tconst { closeGeneralSidebar } = useDispatch( siteEditorStore );\n\tconst { setIsInserterOpened, setIsListViewOpened } =\n\t\tuseDispatch( editorStore );\n\tconst { openModal } = useDispatch( interfaceStore );\n\tconst { set: setPreference } = useDispatch( preferencesStore );\n\n\tconst toggleDistractionFree = () => {\n\t\tregistry.batch( () => {\n\t\t\tsetPreference( 'core', 'fixedToolbar', true );\n\t\t\tsetIsInserterOpened( false );\n\t\t\tsetIsListViewOpened( false );\n\t\t\tcloseGeneralSidebar();\n\t\t} );\n\t};\n\n\tconst turnOffDistractionFree = () => {\n\t\tsetPreference( 'core', 'distractionFree', false );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<MoreMenuDropdown\n\t\t\t\ttoggleProps={ {\n\t\t\t\t\tshowTooltip: ! showIconLabels,\n\t\t\t\t\t...( showIconLabels && { variant: 'tertiary' } ),\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<MenuGroup label={ _x( 'View', 'noun' ) }>\n\t\t\t\t\t\t\t<PreferenceToggleMenuItem\n\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\tname=\"fixedToolbar\"\n\t\t\t\t\t\t\t\tonToggle={ turnOffDistractionFree }\n\t\t\t\t\t\t\t\tlabel={ __( 'Top toolbar' ) }\n\t\t\t\t\t\t\t\tinfo={ __(\n\t\t\t\t\t\t\t\t\t'Access all block and document tools in a single place'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tmessageActivated={ __(\n\t\t\t\t\t\t\t\t\t'Top toolbar activated'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tmessageDeactivated={ __(\n\t\t\t\t\t\t\t\t\t'Top toolbar deactivated'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PreferenceToggleMenuItem\n\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\tname=\"distractionFree\"\n\t\t\t\t\t\t\t\tonToggle={ toggleDistractionFree }\n\t\t\t\t\t\t\t\tlabel={ __( 'Distraction free' ) }\n\t\t\t\t\t\t\t\tinfo={ __( 'Write with calmness' ) }\n\t\t\t\t\t\t\t\tmessageActivated={ __(\n\t\t\t\t\t\t\t\t\t'Distraction free mode activated'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tmessageDeactivated={ __(\n\t\t\t\t\t\t\t\t\t'Distraction free mode deactivated'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tshortcut={ displayShortcut.primaryShift(\n\t\t\t\t\t\t\t\t\t'\\\\'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PreferenceToggleMenuItem\n\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\tname=\"focusMode\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Spotlight mode' ) }\n\t\t\t\t\t\t\t\tinfo={ __( 'Focus on one block at a time' ) }\n\t\t\t\t\t\t\t\tmessageActivated={ __(\n\t\t\t\t\t\t\t\t\t'Spotlight mode activated'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tmessageDeactivated={ __(\n\t\t\t\t\t\t\t\t\t'Spotlight mode deactivated'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t<ModeSwitcher />\n\t\t\t\t\t\t<ActionItem.Slot\n\t\t\t\t\t\t\tname=\"core/edit-site/plugin-more-menu\"\n\t\t\t\t\t\t\tlabel={ __( 'Plugins' ) }\n\t\t\t\t\t\t\tas={ MenuGroup }\n\t\t\t\t\t\t\tfillProps={ { onClick: onClose } }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<MenuGroup label={ __( 'Tools' ) }>\n\t\t\t\t\t\t\t<SiteExport />\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\topenModal(\n\t\t\t\t\t\t\t\t\t\tKEYBOARD_SHORTCUT_HELP_MODAL_NAME\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tshortcut={ displayShortcut.access( 'h' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Keyboard shortcuts' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t<WelcomeGuideMenuItem />\n\t\t\t\t\t\t\t<CopyContentMenuItem />\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t\t\t\trole=\"menuitem\"\n\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t'https://wordpress.org/documentation/article/site-editor/'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Help' ) }\n\t\t\t\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t/* translators: accessibility text */\n\t\t\t\t\t\t\t\t\t\t__( '(opens in a new tab)' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t<ToolsMoreMenuGroup.Slot\n\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\topenModal( PREFERENCES_MODAL_NAME )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Preferences' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</MoreMenuDropdown>\n\t\t\t<KeyboardShortcutHelpModal />\n\t\t\t<EditSitePreferencesModal />\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst chevronUpDown = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"m12 20-4.5-3.6-.9 1.2L12 22l5.5-4.4-.9-1.2L12 20zm0-16 4.5 3.6.9-1.2L12 2 6.5 6.4l.9 1.2L12 4z\" />\n\t</SVG>\n);\n\nexport default chevronUpDown;\n","/**\n * WordPress dependencies\n */\nimport { useViewportMatch } from '@wordpress/compose';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { chevronUpDown } from '@wordpress/icons';\nimport { Button, ToolbarItem } from '@wordpress/components';\nimport {\n\tstore as editorStore,\n\tprivateApis as editorPrivateApis,\n} from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../../store';\nimport { unlock } from '../../../lock-unlock';\n\nconst { DocumentTools: EditorDocumentTools } = unlock( editorPrivateApis );\n\nexport default function DocumentTools( {\n\tblockEditorMode,\n\thasFixedToolbar,\n\tisDistractionFree,\n} ) {\n\tconst { isVisualMode } = useSelect( ( select ) => {\n\t\tconst { getEditorMode } = select( editSiteStore );\n\n\t\treturn {\n\t\t\tisVisualMode: getEditorMode() === 'visual',\n\t\t};\n\t}, [] );\n\tconst { __unstableSetEditorMode } = useDispatch( blockEditorStore );\n\tconst { setDeviceType } = useDispatch( editorStore );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isZoomedOutViewExperimentEnabled =\n\t\twindow?.__experimentalEnableZoomedOutView && isVisualMode;\n\tconst isZoomedOutView = blockEditorMode === 'zoom-out';\n\n\treturn (\n\t\t<EditorDocumentTools\n\t\t\tdisableBlockTools={ ! isVisualMode }\n\t\t\tlistViewLabel={ __( 'List View' ) }\n\t\t>\n\t\t\t{ isZoomedOutViewExperimentEnabled &&\n\t\t\t\tisLargeViewport &&\n\t\t\t\t! isDistractionFree &&\n\t\t\t\t! hasFixedToolbar && (\n\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\tclassName=\"edit-site-header-edit-mode__zoom-out-view-toggle\"\n\t\t\t\t\t\ticon={ chevronUpDown }\n\t\t\t\t\t\tisPressed={ isZoomedOutView }\n\t\t\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t\t\tlabel={ __( 'Zoom-out View' ) }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetDeviceType( 'Desktop' );\n\t\t\t\t\t\t\t__unstableSetEditorMode(\n\t\t\t\t\t\t\t\tisZoomedOutView ? 'edit' : 'zoom-out'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t</EditorDocumentTools>\n\t);\n}\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useViewportMatch, useReducedMotion } from '@wordpress/compose';\nimport {\n\tBlockToolbar,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { PinnedItems } from '@wordpress/interface';\nimport { __ } from '@wordpress/i18n';\nimport { next, previous } from '@wordpress/icons';\nimport {\n\tButton,\n\t__unstableMotion as motion,\n\tPopover,\n} from '@wordpress/components';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport {\n\tDocumentBar,\n\tstore as editorStore,\n\tprivateApis as editorPrivateApis,\n} from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport MoreMenu from './more-menu';\nimport SaveButton from '../save-button';\nimport DocumentTools from './document-tools';\nimport { store as editSiteStore } from '../../store';\nimport {\n\tgetEditorCanvasContainerTitle,\n\tuseHasEditorCanvasContainer,\n} from '../editor-canvas-container';\nimport { unlock } from '../../lock-unlock';\nimport { FOCUSABLE_ENTITIES } from '../../utils/constants';\n\nconst { PostViewLink, PreviewDropdown } = unlock( editorPrivateApis );\n\nexport default function HeaderEditMode() {\n\tconst {\n\t\ttemplateType,\n\t\tisDistractionFree,\n\t\tblockEditorMode,\n\t\tblockSelectionStart,\n\t\tshowIconLabels,\n\t\teditorCanvasView,\n\t\thasFixedToolbar,\n\t\tisZoomOutMode,\n\t} = useSelect( ( select ) => {\n\t\tconst { getEditedPostType } = select( editSiteStore );\n\t\tconst { getBlockSelectionStart, __unstableGetEditorMode } =\n\t\t\tselect( blockEditorStore );\n\t\tconst { get: getPreference } = select( preferencesStore );\n\t\tconst { getDeviceType } = select( editorStore );\n\n\t\treturn {\n\t\t\tdeviceType: getDeviceType(),\n\t\t\ttemplateType: getEditedPostType(),\n\t\t\tblockEditorMode: __unstableGetEditorMode(),\n\t\t\tblockSelectionStart: getBlockSelectionStart(),\n\t\t\tshowIconLabels: getPreference( 'core', 'showIconLabels' ),\n\t\t\teditorCanvasView: unlock(\n\t\t\t\tselect( editSiteStore )\n\t\t\t).getEditorCanvasContainerView(),\n\t\t\thasFixedToolbar: getPreference( 'core', 'fixedToolbar' ),\n\t\t\tisDistractionFree: getPreference( 'core', 'distractionFree' ),\n\t\t\tisZoomOutMode: __unstableGetEditorMode() === 'zoom-out',\n\t\t};\n\t}, [] );\n\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isTopToolbar = ! isZoomOutMode && hasFixedToolbar && isLargeViewport;\n\tconst blockToolbarRef = useRef();\n\tconst disableMotion = useReducedMotion();\n\n\tconst hasDefaultEditorCanvasView = ! useHasEditorCanvasContainer();\n\n\tconst isFocusMode = FOCUSABLE_ENTITIES.includes( templateType );\n\n\tconst isZoomedOutView = blockEditorMode === 'zoom-out';\n\n\tconst [ isBlockToolsCollapsed, setIsBlockToolsCollapsed ] =\n\t\tuseState( true );\n\n\tconst hasBlockSelected = !! blockSelectionStart;\n\n\tuseEffect( () => {\n\t\t// If we have a new block selection, show the block tools\n\t\tif ( blockSelectionStart ) {\n\t\t\tsetIsBlockToolsCollapsed( false );\n\t\t}\n\t}, [ blockSelectionStart ] );\n\n\tconst toolbarVariants = {\n\t\tisDistractionFree: { y: '-50px' },\n\t\tisDistractionFreeHovering: { y: 0 },\n\t\tview: { y: 0 },\n\t\tedit: { y: 0 },\n\t};\n\n\tconst toolbarTransition = {\n\t\ttype: 'tween',\n\t\tduration: disableMotion ? 0 : 0.2,\n\t\tease: 'easeOut',\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'edit-site-header-edit-mode', {\n\t\t\t\t'show-icon-labels': showIconLabels,\n\t\t\t} ) }\n\t\t>\n\t\t\t{ hasDefaultEditorCanvasView && (\n\t\t\t\t<motion.div\n\t\t\t\t\tclassName=\"edit-site-header-edit-mode__start\"\n\t\t\t\t\tvariants={ toolbarVariants }\n\t\t\t\t\ttransition={ toolbarTransition }\n\t\t\t\t>\n\t\t\t\t\t<DocumentTools\n\t\t\t\t\t\tblockEditorMode={ blockEditorMode }\n\t\t\t\t\t\tisDistractionFree={ isDistractionFree }\n\t\t\t\t\t/>\n\t\t\t\t\t{ isTopToolbar && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t'selected-block-tools-wrapper',\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t'is-collapsed': isBlockToolsCollapsed,\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<BlockToolbar hideDragHandle />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<Popover.Slot\n\t\t\t\t\t\t\t\tref={ blockToolbarRef }\n\t\t\t\t\t\t\t\tname=\"block-toolbar\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ hasBlockSelected && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-header-edit-mode__block-tools-toggle\"\n\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\tisBlockToolsCollapsed ? next : previous\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetIsBlockToolsCollapsed(\n\t\t\t\t\t\t\t\t\t\t\t( collapsed ) => ! collapsed\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t\tisBlockToolsCollapsed\n\t\t\t\t\t\t\t\t\t\t\t? __( 'Show block tools' )\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Hide block tools' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</motion.div>\n\t\t\t) }\n\n\t\t\t{ ! isDistractionFree && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'edit-site-header-edit-mode__center',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-collapsed':\n\t\t\t\t\t\t\t\t! isBlockToolsCollapsed && isLargeViewport,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ ! hasDefaultEditorCanvasView ? (\n\t\t\t\t\t\tgetEditorCanvasContainerTitle( editorCanvasView )\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<DocumentBar />\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t<div className=\"edit-site-header-edit-mode__end\">\n\t\t\t\t<motion.div\n\t\t\t\t\tclassName=\"edit-site-header-edit-mode__actions\"\n\t\t\t\t\tvariants={ toolbarVariants }\n\t\t\t\t\ttransition={ toolbarTransition }\n\t\t\t\t>\n\t\t\t\t\t{ isLargeViewport && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t'edit-site-header-edit-mode__preview-options',\n\t\t\t\t\t\t\t\t{ 'is-zoomed-out': isZoomedOutView }\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<PreviewDropdown\n\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\tisFocusMode || ! hasDefaultEditorCanvasView\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t<PostViewLink />\n\t\t\t\t\t<SaveButton />\n\t\t\t\t\t{ ! isDistractionFree && (\n\t\t\t\t\t\t<PinnedItems.Slot scope=\"core/edit-site\" />\n\t\t\t\t\t) }\n\t\t\t\t\t<MoreMenu showIconLabels={ showIconLabels } />\n\t\t\t\t</motion.div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst wordpress = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"-2 -2 24 24\">\n\t\t<Path d=\"M20 10c0-5.51-4.49-10-10-10C4.48 0 0 4.49 0 10c0 5.52 4.48 10 10 10 5.51 0 10-4.48 10-10zM7.78 15.37L4.37 6.22c.55-.02 1.17-.08 1.17-.08.5-.06.44-1.13-.06-1.11 0 0-1.45.11-2.37.11-.18 0-.37 0-.58-.01C4.12 2.69 6.87 1.11 10 1.11c2.33 0 4.45.87 6.05 2.34-.68-.11-1.65.39-1.65 1.58 0 .74.45 1.36.9 2.1.35.61.55 1.36.55 2.46 0 1.49-1.4 5-1.4 5l-3.03-8.37c.54-.02.82-.17.82-.17.5-.05.44-1.25-.06-1.22 0 0-1.44.12-2.38.12-.87 0-2.33-.12-2.33-.12-.5-.03-.56 1.2-.06 1.22l.92.08 1.26 3.41zM17.41 10c.24-.64.74-1.87.43-4.25.7 1.29 1.05 2.71 1.05 4.25 0 3.29-1.73 6.24-4.4 7.78.97-2.59 1.94-5.2 2.92-7.78zM6.1 18.09C3.12 16.65 1.11 13.53 1.11 10c0-1.3.23-2.48.72-3.59C3.25 10.3 4.67 14.2 6.1 18.09zm4.03-6.63l2.58 6.98c-.86.29-1.76.45-2.71.45-.79 0-1.57-.11-2.29-.33.81-2.38 1.62-4.74 2.42-7.1z\" />\n\t</SVG>\n);\n\nexport default wordpress;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { Icon } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { wordpress } from '@wordpress/icons';\nimport { store as coreDataStore } from '@wordpress/core-data';\n\nfunction SiteIcon( { className } ) {\n\tconst { isRequestingSite, siteIconUrl } = useSelect( ( select ) => {\n\t\tconst { getEntityRecord } = select( coreDataStore );\n\t\tconst siteData = getEntityRecord( 'root', '__unstableBase', undefined );\n\n\t\treturn {\n\t\t\tisRequestingSite: ! siteData,\n\t\t\tsiteIconUrl: siteData?.site_icon_url,\n\t\t};\n\t}, [] );\n\n\tif ( isRequestingSite && ! siteIconUrl ) {\n\t\treturn <div className=\"edit-site-site-icon__image\" />;\n\t}\n\n\tconst icon = siteIconUrl ? (\n\t\t<img\n\t\t\tclassName=\"edit-site-site-icon__image\"\n\t\t\talt={ __( 'Site Icon' ) }\n\t\t\tsrc={ siteIconUrl }\n\t\t/>\n\t) : (\n\t\t<Icon\n\t\t\tclassName=\"edit-site-site-icon__icon\"\n\t\t\tsize=\"48px\"\n\t\t\ticon={ wordpress }\n\t\t/>\n\t);\n\n\treturn (\n\t\t<div className={ classnames( className, 'edit-site-site-icon' ) }>\n\t\t\t{ icon }\n\t\t</div>\n\t);\n}\n\nexport default SiteIcon;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tButton,\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { useReducedMotion } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { memo } from '@wordpress/element';\nimport { search, external } from '@wordpress/icons';\nimport { store as commandsStore } from '@wordpress/commands';\nimport { displayShortcut } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport SiteIcon from '../site-icon';\nimport { unlock } from '../../lock-unlock';\n\nconst HUB_ANIMATION_DURATION = 0.3;\n\nconst SiteHub = memo( ( { isTransparent, className } ) => {\n\tconst { canvasMode, dashboardLink, homeUrl, siteTitle } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCanvasMode, getSettings } = unlock(\n\t\t\t\tselect( editSiteStore )\n\t\t\t);\n\n\t\t\tconst {\n\t\t\t\tgetSite,\n\t\t\t\tgetUnstableBase, // Site index.\n\t\t\t} = select( coreStore );\n\n\t\t\treturn {\n\t\t\t\tcanvasMode: getCanvasMode(),\n\t\t\t\tdashboardLink:\n\t\t\t\t\tgetSettings().__experimentalDashboardLink || 'index.php',\n\t\t\t\thomeUrl: getUnstableBase()?.home,\n\t\t\t\tsiteTitle: getSite()?.title,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst { open: openCommandCenter } = useDispatch( commandsStore );\n\n\tconst disableMotion = useReducedMotion();\n\tconst { setCanvasMode } = unlock( useDispatch( editSiteStore ) );\n\tconst { clearSelectedBlock } = useDispatch( blockEditorStore );\n\tconst { setDeviceType } = useDispatch( editorStore );\n\tconst isBackToDashboardButton = canvasMode === 'view';\n\tconst siteIconButtonProps = isBackToDashboardButton\n\t\t? {\n\t\t\t\thref: dashboardLink,\n\t\t\t\tlabel: __( 'Go to the Dashboard' ),\n\t\t  }\n\t\t: {\n\t\t\t\thref: dashboardLink, // We need to keep the `href` here so the component doesn't remount as a `<button>` and break the animation.\n\t\t\t\trole: 'button',\n\t\t\t\tlabel: __( 'Open Navigation' ),\n\t\t\t\tonClick: ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tif ( canvasMode === 'edit' ) {\n\t\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t\t\tsetDeviceType( 'Desktop' );\n\t\t\t\t\t\tsetCanvasMode( 'view' );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t  };\n\n\treturn (\n\t\t<motion.div\n\t\t\tclassName={ classnames( 'edit-site-site-hub', className ) }\n\t\t\tvariants={ {\n\t\t\t\tisDistractionFree: { x: '-100%' },\n\t\t\t\tisDistractionFreeHovering: { x: 0 },\n\t\t\t\tview: { x: 0 },\n\t\t\t\tedit: { x: 0 },\n\t\t\t} }\n\t\t\tinitial={ false }\n\t\t\ttransition={ {\n\t\t\t\ttype: 'tween',\n\t\t\t\tduration: disableMotion ? 0 : HUB_ANIMATION_DURATION,\n\t\t\t\tease: 'easeOut',\n\t\t\t} }\n\t\t>\n\t\t\t<HStack\n\t\t\t\tjustify=\"space-between\"\n\t\t\t\talignment=\"center\"\n\t\t\t\tclassName=\"edit-site-site-hub__container\"\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\tclassName=\"edit-site-site-hub__text-content\"\n\t\t\t\t\tspacing=\"0\"\n\t\t\t\t>\n\t\t\t\t\t<motion.div\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'edit-site-site-hub__view-mode-toggle-container',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'has-transparent-background': isTransparent,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tlayout\n\t\t\t\t\t\ttransition={ {\n\t\t\t\t\t\t\ttype: 'tween',\n\t\t\t\t\t\t\tduration: disableMotion\n\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t: HUB_ANIMATION_DURATION,\n\t\t\t\t\t\t\tease: 'easeOut',\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t{ ...siteIconButtonProps }\n\t\t\t\t\t\t\tclassName=\"edit-site-layout__view-mode-toggle\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<motion.div\n\t\t\t\t\t\t\t\tinitial={ false }\n\t\t\t\t\t\t\t\tanimate={ {\n\t\t\t\t\t\t\t\t\tscale: canvasMode === 'view' ? 0.5 : 1,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\twhileHover={ {\n\t\t\t\t\t\t\t\t\tscale: canvasMode === 'view' ? 0.5 : 0.96,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\ttransition={ {\n\t\t\t\t\t\t\t\t\ttype: 'tween',\n\t\t\t\t\t\t\t\t\tduration: disableMotion\n\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t: HUB_ANIMATION_DURATION,\n\t\t\t\t\t\t\t\t\tease: 'easeOut',\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<SiteIcon className=\"edit-site-layout__view-mode-toggle-icon\" />\n\t\t\t\t\t\t\t</motion.div>\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</motion.div>\n\n\t\t\t\t\t<AnimatePresence>\n\t\t\t\t\t\t<motion.div\n\t\t\t\t\t\t\tlayout={ canvasMode === 'edit' }\n\t\t\t\t\t\t\tanimate={ {\n\t\t\t\t\t\t\t\topacity: canvasMode === 'view' ? 1 : 0,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\texit={ {\n\t\t\t\t\t\t\t\topacity: 0,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t'edit-site-site-hub__site-title',\n\t\t\t\t\t\t\t\t{ 'is-transparent': isTransparent }\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\ttransition={ {\n\t\t\t\t\t\t\t\ttype: 'tween',\n\t\t\t\t\t\t\t\tduration: disableMotion ? 0 : 0.2,\n\t\t\t\t\t\t\t\tease: 'easeOut',\n\t\t\t\t\t\t\t\tdelay: canvasMode === 'view' ? 0.1 : 0,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ decodeEntities( siteTitle ) }\n\t\t\t\t\t\t</motion.div>\n\t\t\t\t\t</AnimatePresence>\n\t\t\t\t\t{ canvasMode === 'view' && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\thref={ homeUrl }\n\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\tlabel={ __( 'View site (opens in a new tab)' ) }\n\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t'View site (opens in a new tab)'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t\t\tclassName=\"edit-site-site-hub__site-view-link\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t\t{ canvasMode === 'view' && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'edit-site-site-hub_toggle-command-center',\n\t\t\t\t\t\t\t{ 'is-transparent': isTransparent }\n\t\t\t\t\t\t) }\n\t\t\t\t\t\ticon={ search }\n\t\t\t\t\t\tonClick={ () => openCommandCenter() }\n\t\t\t\t\t\tlabel={ __( 'Open command palette' ) }\n\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</motion.div>\n\t);\n} );\n\nexport default SiteHub;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useRef } from '@wordpress/element';\nimport {\n\tResizableBox,\n\tTooltip,\n\t__unstableMotion as motion,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\n\n// Removes the inline styles in the drag handles.\nconst HANDLE_STYLES_OVERRIDE = {\n\tposition: undefined,\n\tuserSelect: undefined,\n\tcursor: undefined,\n\twidth: undefined,\n\theight: undefined,\n\ttop: undefined,\n\tright: undefined,\n\tbottom: undefined,\n\tleft: undefined,\n};\n\n// The minimum width of the frame (in px) while resizing.\nconst FRAME_MIN_WIDTH = 320;\n// The reference width of the frame (in px) used to calculate the aspect ratio.\nconst FRAME_REFERENCE_WIDTH = 1300;\n// 9 : 19.5 is the target aspect ratio enforced (when possible) while resizing.\nconst FRAME_TARGET_ASPECT_RATIO = 9 / 19.5;\n// The minimum distance (in px) between the frame resize handle and the\n// viewport's edge. If the frame is resized to be closer to the viewport's edge\n// than this distance, then \"canvas mode\" will be enabled.\nconst SNAP_TO_EDIT_CANVAS_MODE_THRESHOLD = 200;\n// Default size for the `frameSize` state.\nconst INITIAL_FRAME_SIZE = { width: '100%', height: '100%' };\n\nfunction calculateNewHeight( width, initialAspectRatio ) {\n\tconst lerp = ( a, b, amount ) => {\n\t\treturn a + ( b - a ) * amount;\n\t};\n\n\t// Calculate the intermediate aspect ratio based on the current width.\n\tconst lerpFactor =\n\t\t1 -\n\t\tMath.max(\n\t\t\t0,\n\t\t\tMath.min(\n\t\t\t\t1,\n\t\t\t\t( width - FRAME_MIN_WIDTH ) /\n\t\t\t\t\t( FRAME_REFERENCE_WIDTH - FRAME_MIN_WIDTH )\n\t\t\t)\n\t\t);\n\n\t// Calculate the height based on the intermediate aspect ratio\n\t// ensuring the frame arrives at the target aspect ratio.\n\tconst intermediateAspectRatio = lerp(\n\t\tinitialAspectRatio,\n\t\tFRAME_TARGET_ASPECT_RATIO,\n\t\tlerpFactor\n\t);\n\n\treturn width / intermediateAspectRatio;\n}\n\nfunction ResizableFrame( {\n\tisFullWidth,\n\tisOversized,\n\tsetIsOversized,\n\tisReady,\n\tchildren,\n\t/** The default (unresized) width/height of the frame, based on the space availalbe in the viewport. */\n\tdefaultSize,\n\tinnerContentStyle,\n} ) {\n\tconst [ frameSize, setFrameSize ] = useState( INITIAL_FRAME_SIZE );\n\t// The width of the resizable frame when a new resize gesture starts.\n\tconst [ startingWidth, setStartingWidth ] = useState();\n\tconst [ isResizing, setIsResizing ] = useState( false );\n\tconst [ shouldShowHandle, setShouldShowHandle ] = useState( false );\n\tconst [ resizeRatio, setResizeRatio ] = useState( 1 );\n\tconst canvasMode = useSelect(\n\t\t( select ) => unlock( select( editSiteStore ) ).getCanvasMode(),\n\t\t[]\n\t);\n\tconst { setCanvasMode } = unlock( useDispatch( editSiteStore ) );\n\tconst FRAME_TRANSITION = { type: 'tween', duration: isResizing ? 0 : 0.5 };\n\tconst frameRef = useRef( null );\n\tconst resizableHandleHelpId = useInstanceId(\n\t\tResizableFrame,\n\t\t'edit-site-resizable-frame-handle-help'\n\t);\n\tconst defaultAspectRatio = defaultSize.width / defaultSize.height;\n\n\tconst handleResizeStart = ( _event, _direction, ref ) => {\n\t\t// Remember the starting width so we don't have to get `ref.offsetWidth` on\n\t\t// every resize event thereafter, which will cause layout thrashing.\n\t\tsetStartingWidth( ref.offsetWidth );\n\t\tsetIsResizing( true );\n\t};\n\n\t// Calculate the frame size based on the window width as its resized.\n\tconst handleResize = ( _event, _direction, _ref, delta ) => {\n\t\tconst normalizedDelta = delta.width / resizeRatio;\n\t\tconst deltaAbs = Math.abs( normalizedDelta );\n\t\tconst maxDoubledDelta =\n\t\t\tdelta.width < 0 // is shrinking\n\t\t\t\t? deltaAbs\n\t\t\t\t: ( defaultSize.width - startingWidth ) / 2;\n\t\tconst deltaToDouble = Math.min( deltaAbs, maxDoubledDelta );\n\t\tconst doubleSegment = deltaAbs === 0 ? 0 : deltaToDouble / deltaAbs;\n\t\tconst singleSegment = 1 - doubleSegment;\n\n\t\tsetResizeRatio( singleSegment + doubleSegment * 2 );\n\n\t\tconst updatedWidth = startingWidth + delta.width;\n\n\t\tsetIsOversized( updatedWidth > defaultSize.width );\n\n\t\t// Width will be controlled by the library (via `resizeRatio`),\n\t\t// so we only need to update the height.\n\t\tsetFrameSize( {\n\t\t\theight: isOversized\n\t\t\t\t? '100%'\n\t\t\t\t: calculateNewHeight( updatedWidth, defaultAspectRatio ),\n\t\t} );\n\t};\n\n\tconst handleResizeStop = ( _event, _direction, ref ) => {\n\t\tsetIsResizing( false );\n\n\t\tif ( ! isOversized ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetIsOversized( false );\n\n\t\tconst remainingWidth =\n\t\t\tref.ownerDocument.documentElement.offsetWidth - ref.offsetWidth;\n\n\t\tif ( remainingWidth > SNAP_TO_EDIT_CANVAS_MODE_THRESHOLD ) {\n\t\t\t// Reset the initial aspect ratio if the frame is resized slightly\n\t\t\t// above the sidebar but not far enough to trigger full screen.\n\t\t\tsetFrameSize( INITIAL_FRAME_SIZE );\n\t\t} else {\n\t\t\t// Trigger full screen if the frame is resized far enough to the left.\n\t\t\tsetCanvasMode( 'edit' );\n\t\t}\n\t};\n\n\t// Handle resize by arrow keys\n\tconst handleResizableHandleKeyDown = ( event ) => {\n\t\tif ( ! [ 'ArrowLeft', 'ArrowRight' ].includes( event.key ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\n\t\tconst step = 20 * ( event.shiftKey ? 5 : 1 );\n\t\tconst delta = step * ( event.key === 'ArrowLeft' ? 1 : -1 );\n\t\tconst newWidth = Math.min(\n\t\t\tMath.max(\n\t\t\t\tFRAME_MIN_WIDTH,\n\t\t\t\tframeRef.current.resizable.offsetWidth + delta\n\t\t\t),\n\t\t\tdefaultSize.width\n\t\t);\n\n\t\tsetFrameSize( {\n\t\t\twidth: newWidth,\n\t\t\theight: calculateNewHeight( newWidth, defaultAspectRatio ),\n\t\t} );\n\t};\n\n\tconst frameAnimationVariants = {\n\t\tdefault: {\n\t\t\tflexGrow: 0,\n\t\t\theight: frameSize.height,\n\t\t},\n\t\tfullWidth: {\n\t\t\tflexGrow: 1,\n\t\t\theight: frameSize.height,\n\t\t},\n\t};\n\n\tconst resizeHandleVariants = {\n\t\thidden: {\n\t\t\topacity: 0,\n\t\t\tleft: 0,\n\t\t},\n\t\tvisible: {\n\t\t\topacity: 1,\n\t\t\tleft: -16,\n\t\t},\n\t\tactive: {\n\t\t\topacity: 1,\n\t\t\tleft: -16,\n\t\t\tscaleY: 1.3,\n\t\t},\n\t};\n\tconst currentResizeHandleVariant = ( () => {\n\t\tif ( isResizing ) {\n\t\t\treturn 'active';\n\t\t}\n\t\treturn shouldShowHandle ? 'visible' : 'hidden';\n\t} )();\n\n\treturn (\n\t\t<ResizableBox\n\t\t\tas={ motion.div }\n\t\t\tref={ frameRef }\n\t\t\tinitial={ false }\n\t\t\tvariants={ frameAnimationVariants }\n\t\t\tanimate={ isFullWidth ? 'fullWidth' : 'default' }\n\t\t\tonAnimationComplete={ ( definition ) => {\n\t\t\t\tif ( definition === 'fullWidth' )\n\t\t\t\t\tsetFrameSize( { width: '100%', height: '100%' } );\n\t\t\t} }\n\t\t\ttransition={ FRAME_TRANSITION }\n\t\t\tsize={ frameSize }\n\t\t\tenable={ {\n\t\t\t\ttop: false,\n\t\t\t\tright: false,\n\t\t\t\tbottom: false,\n\t\t\t\t// Resizing will be disabled until the editor content is loaded.\n\t\t\t\tleft: isReady,\n\t\t\t\ttopRight: false,\n\t\t\t\tbottomRight: false,\n\t\t\t\tbottomLeft: false,\n\t\t\t\ttopLeft: false,\n\t\t\t} }\n\t\t\tresizeRatio={ resizeRatio }\n\t\t\thandleClasses={ undefined }\n\t\t\thandleStyles={ {\n\t\t\t\tleft: HANDLE_STYLES_OVERRIDE,\n\t\t\t\tright: HANDLE_STYLES_OVERRIDE,\n\t\t\t} }\n\t\t\tminWidth={ FRAME_MIN_WIDTH }\n\t\t\tmaxWidth={ isFullWidth ? '100%' : '150%' }\n\t\t\tmaxHeight={ '100%' }\n\t\t\tonFocus={ () => setShouldShowHandle( true ) }\n\t\t\tonBlur={ () => setShouldShowHandle( false ) }\n\t\t\tonMouseOver={ () => setShouldShowHandle( true ) }\n\t\t\tonMouseOut={ () => setShouldShowHandle( false ) }\n\t\t\thandleComponent={ {\n\t\t\t\tleft: canvasMode === 'view' && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Tooltip text={ __( 'Drag to resize' ) }>\n\t\t\t\t\t\t\t{ /* Disable reason: role=\"separator\" does in fact support aria-valuenow */ }\n\t\t\t\t\t\t\t{ /* eslint-disable-next-line jsx-a11y/role-supports-aria-props */ }\n\t\t\t\t\t\t\t<motion.button\n\t\t\t\t\t\t\t\tkey=\"handle\"\n\t\t\t\t\t\t\t\trole=\"separator\"\n\t\t\t\t\t\t\t\taria-orientation=\"vertical\"\n\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t'edit-site-resizable-frame__handle',\n\t\t\t\t\t\t\t\t\t{ 'is-resizing': isResizing }\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tvariants={ resizeHandleVariants }\n\t\t\t\t\t\t\t\tanimate={ currentResizeHandleVariant }\n\t\t\t\t\t\t\t\taria-label={ __( 'Drag to resize' ) }\n\t\t\t\t\t\t\t\taria-describedby={ resizableHandleHelpId }\n\t\t\t\t\t\t\t\taria-valuenow={\n\t\t\t\t\t\t\t\t\tframeRef.current?.resizable?.offsetWidth ||\n\t\t\t\t\t\t\t\t\tundefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taria-valuemin={ FRAME_MIN_WIDTH }\n\t\t\t\t\t\t\t\taria-valuemax={ defaultSize.width }\n\t\t\t\t\t\t\t\tonKeyDown={ handleResizableHandleKeyDown }\n\t\t\t\t\t\t\t\tinitial=\"hidden\"\n\t\t\t\t\t\t\t\texit=\"hidden\"\n\t\t\t\t\t\t\t\twhileFocus=\"active\"\n\t\t\t\t\t\t\t\twhileHover=\"active\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t<div hidden id={ resizableHandleHelpId }>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Use left and right arrow keys to resize the canvas. Hold shift to resize in larger increments.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</>\n\t\t\t\t),\n\t\t\t} }\n\t\t\tonResizeStart={ handleResizeStart }\n\t\t\tonResize={ handleResize }\n\t\t\tonResizeStop={ handleResizeStop }\n\t\t\tclassName={ classnames( 'edit-site-resizable-frame__inner', {\n\t\t\t\t'is-resizing': isResizing,\n\t\t\t} ) }\n\t\t>\n\t\t\t<motion.div\n\t\t\t\tclassName=\"edit-site-resizable-frame__inner-content\"\n\t\t\t\tanimate={ {\n\t\t\t\t\tborderRadius: isFullWidth ? 0 : 8,\n\t\t\t\t} }\n\t\t\t\ttransition={ FRAME_TRANSITION }\n\t\t\t\tstyle={ innerContentStyle }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</motion.div>\n\t\t</ResizableBox>\n\t);\n}\n\nexport default ResizableFrame;\n","/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst { useLocation, useHistory } = unlock( routerPrivateApis );\n\nexport default function useSyncCanvasModeWithURL() {\n\tconst history = useHistory();\n\tconst { params } = useLocation();\n\tconst canvasMode = useSelect(\n\t\t( select ) => unlock( select( editSiteStore ) ).getCanvasMode(),\n\t\t[]\n\t);\n\tconst { setCanvasMode } = unlock( useDispatch( editSiteStore ) );\n\tconst currentCanvasMode = useRef( canvasMode );\n\tconst { canvas: canvasInUrl } = params;\n\tconst currentCanvasInUrl = useRef( canvasInUrl );\n\tconst currentUrlParams = useRef( params );\n\tuseEffect( () => {\n\t\tcurrentUrlParams.current = params;\n\t}, [ params ] );\n\n\tuseEffect( () => {\n\t\tcurrentCanvasMode.current = canvasMode;\n\t\tif ( canvasMode === 'init' ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\tcanvasMode === 'edit' &&\n\t\t\tcurrentCanvasInUrl.current !== canvasMode\n\t\t) {\n\t\t\thistory.push( {\n\t\t\t\t...currentUrlParams.current,\n\t\t\t\tcanvas: 'edit',\n\t\t\t} );\n\t\t}\n\n\t\tif (\n\t\t\tcanvasMode === 'view' &&\n\t\t\tcurrentCanvasInUrl.current !== undefined\n\t\t) {\n\t\t\thistory.push( {\n\t\t\t\t...currentUrlParams.current,\n\t\t\t\tcanvas: undefined,\n\t\t\t} );\n\t\t}\n\t}, [ canvasMode, history ] );\n\n\tuseEffect( () => {\n\t\tcurrentCanvasInUrl.current = canvasInUrl;\n\t\tif ( canvasInUrl !== 'edit' && currentCanvasMode.current !== 'view' ) {\n\t\t\tsetCanvasMode( 'view' );\n\t\t} else if (\n\t\t\tcanvasInUrl === 'edit' &&\n\t\t\tcurrentCanvasMode.current !== 'edit'\n\t\t) {\n\t\t\tsetCanvasMode( 'edit' );\n\t\t}\n\t}, [ canvasInUrl, setCanvasMode ] );\n}\n","/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport {\n\tisPreviewingTheme,\n\tcurrentlyPreviewingTheme,\n} from './is-previewing-theme';\n\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\n\n/**\n * This should be refactored to use the REST API, once the REST API can activate themes.\n *\n * @return {Function} A function that activates the theme.\n */\nexport function useActivateTheme() {\n\tconst history = useHistory();\n\tconst location = useLocation();\n\tconst { startResolution, finishResolution } = useDispatch( coreStore );\n\n\treturn async () => {\n\t\tif ( isPreviewingTheme() ) {\n\t\t\tconst activationURL =\n\t\t\t\t'themes.php?action=activate&stylesheet=' +\n\t\t\t\tcurrentlyPreviewingTheme() +\n\t\t\t\t'&_wpnonce=' +\n\t\t\t\twindow.WP_BLOCK_THEME_ACTIVATE_NONCE;\n\t\t\tstartResolution( 'activateTheme' );\n\t\t\tawait window.fetch( activationURL );\n\t\t\tfinishResolution( 'activateTheme' );\n\t\t\tconst { wp_theme_preview: themePreview, ...params } =\n\t\t\t\tlocation.params;\n\t\t\thistory.replace( params );\n\t\t}\n\t};\n}\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Button, Modal } from '@wordpress/components';\nimport {\n\tEntitiesSavedStates,\n\tuseEntitiesSavedStatesIsDirty,\n\tprivateApis,\n} from '@wordpress/editor';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { NavigableRegion } from '@wordpress/interface';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport { useActivateTheme } from '../../utils/use-activate-theme';\nimport {\n\tcurrentlyPreviewingTheme,\n\tisPreviewingTheme,\n} from '../../utils/is-previewing-theme';\n\nconst { EntitiesSavedStatesExtensible } = unlock( privateApis );\n\nconst EntitiesSavedStatesForPreview = ( { onClose } ) => {\n\tconst isDirtyProps = useEntitiesSavedStatesIsDirty();\n\tlet activateSaveLabel;\n\tif ( isDirtyProps.isDirty ) {\n\t\tactivateSaveLabel = __( 'Activate & Save' );\n\t} else {\n\t\tactivateSaveLabel = __( 'Activate' );\n\t}\n\n\tconst themeName = useSelect( ( select ) => {\n\t\tconst theme = select( coreStore ).getTheme(\n\t\t\tcurrentlyPreviewingTheme()\n\t\t);\n\n\t\treturn theme?.name?.rendered;\n\t}, [] );\n\n\tconst additionalPrompt = (\n\t\t<p>\n\t\t\t{ sprintf(\n\t\t\t\t'Saving your changes will change your active theme to %s.',\n\t\t\t\tthemeName\n\t\t\t) }\n\t\t</p>\n\t);\n\n\tconst activateTheme = useActivateTheme();\n\tconst onSave = async ( values ) => {\n\t\tawait activateTheme();\n\t\treturn values;\n\t};\n\n\treturn (\n\t\t<EntitiesSavedStatesExtensible\n\t\t\t{ ...{\n\t\t\t\t...isDirtyProps,\n\t\t\t\tadditionalPrompt,\n\t\t\t\tclose: onClose,\n\t\t\t\tonSave,\n\t\t\t\tsaveEnabled: true,\n\t\t\t\tsaveLabel: activateSaveLabel,\n\t\t\t} }\n\t\t/>\n\t);\n};\n\nconst _EntitiesSavedStates = ( { onClose } ) => {\n\tif ( isPreviewingTheme() ) {\n\t\treturn <EntitiesSavedStatesForPreview onClose={ onClose } />;\n\t}\n\treturn <EntitiesSavedStates close={ onClose } />;\n};\n\nexport default function SavePanel() {\n\tconst { isSaveViewOpen, canvasMode } = useSelect( ( select ) => {\n\t\tconst { isSaveViewOpened, getCanvasMode } = unlock(\n\t\t\tselect( editSiteStore )\n\t\t);\n\n\t\t// The currently selected entity to display.\n\t\t// Typically template or template part in the site editor.\n\t\treturn {\n\t\t\tisSaveViewOpen: isSaveViewOpened(),\n\t\t\tcanvasMode: getCanvasMode(),\n\t\t};\n\t}, [] );\n\tconst { setIsSaveViewOpened } = useDispatch( editSiteStore );\n\tconst onClose = () => setIsSaveViewOpened( false );\n\n\tif ( canvasMode === 'view' ) {\n\t\treturn isSaveViewOpen ? (\n\t\t\t<Modal\n\t\t\t\tclassName=\"edit-site-save-panel__modal\"\n\t\t\t\tonRequestClose={ onClose }\n\t\t\t\t__experimentalHideHeader\n\t\t\t\tcontentLabel={ __(\n\t\t\t\t\t'Save site, content, and template changes'\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t<_EntitiesSavedStates onClose={ onClose } />\n\t\t\t</Modal>\n\t\t) : null;\n\t}\n\n\treturn (\n\t\t<NavigableRegion\n\t\t\tclassName={ classnames( 'edit-site-layout__actions', {\n\t\t\t\t'is-entity-save-view-open': isSaveViewOpen,\n\t\t\t} ) }\n\t\t\tariaLabel={ __( 'Save panel' ) }\n\t\t>\n\t\t\t{ isSaveViewOpen ? (\n\t\t\t\t<_EntitiesSavedStates onClose={ onClose } />\n\t\t\t) : (\n\t\t\t\t<div className=\"edit-site-editor__toggle-save-panel\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tclassName=\"edit-site-editor__toggle-save-panel-button\"\n\t\t\t\t\t\tonClick={ () => setIsSaveViewOpened( true ) }\n\t\t\t\t\t\taria-expanded={ false }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Open save panel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</NavigableRegion>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\nfunction KeyboardShortcutsRegister() {\n\t// Registering the shortcuts.\n\tconst { registerShortcut } = useDispatch( keyboardShortcutsStore );\n\tuseEffect( () => {\n\t\tregisterShortcut( {\n\t\t\tname: 'core/edit-site/save',\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Save your changes.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primary',\n\t\t\t\tcharacter: 's',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/edit-site/toggle-block-settings-sidebar',\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Show or hide the Settings sidebar.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primaryShift',\n\t\t\t\tcharacter: ',',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/edit-site/keyboard-shortcuts',\n\t\t\tcategory: 'main',\n\t\t\tdescription: __( 'Display these keyboard shortcuts.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'access',\n\t\t\t\tcharacter: 'h',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/edit-site/next-region',\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Navigate to the next part of the editor.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'ctrl',\n\t\t\t\tcharacter: '`',\n\t\t\t},\n\t\t\taliases: [\n\t\t\t\t{\n\t\t\t\t\tmodifier: 'access',\n\t\t\t\t\tcharacter: 'n',\n\t\t\t\t},\n\t\t\t],\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/edit-site/previous-region',\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Navigate to the previous part of the editor.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'ctrlShift',\n\t\t\t\tcharacter: '`',\n\t\t\t},\n\t\t\taliases: [\n\t\t\t\t{\n\t\t\t\t\tmodifier: 'access',\n\t\t\t\t\tcharacter: 'p',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tmodifier: 'ctrlShift',\n\t\t\t\t\tcharacter: '~',\n\t\t\t\t},\n\t\t\t],\n\t\t} );\n\t\tregisterShortcut( {\n\t\t\tname: 'core/edit-site/toggle-mode',\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Switch between visual editor and code editor.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'secondary',\n\t\t\t\tcharacter: 'm',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/edit-site/transform-heading-to-paragraph',\n\t\t\tcategory: 'block-library',\n\t\t\tdescription: __( 'Transform heading to paragraph.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'access',\n\t\t\t\tcharacter: `0`,\n\t\t\t},\n\t\t} );\n\n\t\t[ 1, 2, 3, 4, 5, 6 ].forEach( ( level ) => {\n\t\t\tregisterShortcut( {\n\t\t\t\tname: `core/edit-site/transform-paragraph-to-heading-${ level }`,\n\t\t\t\tcategory: 'block-library',\n\t\t\t\tdescription: __( 'Transform paragraph to heading.' ),\n\t\t\t\tkeyCombination: {\n\t\t\t\t\tmodifier: 'access',\n\t\t\t\t\tcharacter: `${ level }`,\n\t\t\t\t},\n\t\t\t} );\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/edit-site/toggle-distraction-free',\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Toggle distraction free mode.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primaryShift',\n\t\t\t\tcharacter: '\\\\',\n\t\t\t},\n\t\t} );\n\t}, [ registerShortcut ] );\n\n\treturn null;\n}\n\nexport default KeyboardShortcutsRegister;\n","/**\n * WordPress dependencies\n */\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\n\nfunction KeyboardShortcutsGlobal() {\n\tconst { __experimentalGetDirtyEntityRecords, isSavingEntityRecord } =\n\t\tuseSelect( coreStore );\n\tconst { setIsSaveViewOpened } = useDispatch( editSiteStore );\n\n\tuseShortcut( 'core/edit-site/save', ( event ) => {\n\t\tevent.preventDefault();\n\n\t\tconst dirtyEntityRecords = __experimentalGetDirtyEntityRecords();\n\t\tconst isDirty = !! dirtyEntityRecords.length;\n\t\tconst isSaving = dirtyEntityRecords.some( ( record ) =>\n\t\t\tisSavingEntityRecord( record.kind, record.name, record.key )\n\t\t);\n\n\t\tif ( ! isSaving && isDirty ) {\n\t\t\tsetIsSaveViewOpened( true );\n\t\t}\n\t} );\n\n\treturn null;\n}\n\nexport default KeyboardShortcutsGlobal;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst help = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M12 4.75a7.25 7.25 0 100 14.5 7.25 7.25 0 000-14.5zM3.25 12a8.75 8.75 0 1117.5 0 8.75 8.75 0 01-17.5 0zM12 8.75a1.5 1.5 0 01.167 2.99c-.465.052-.917.44-.917 1.01V14h1.5v-.845A3 3 0 109 10.25h1.5a1.5 1.5 0 011.5-1.5zM11.25 15v1.5h1.5V15h-1.5z\" />\n\t</SVG>\n);\n\nexport default help;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst rotateRight = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M15.1 4.8l-3-2.5V4c-4.4 0-8 3.6-8 8 0 3.7 2.5 6.9 6 7.7.3.1.6.1 1 .2l.2-1.5c-.4 0-.7-.1-1.1-.2l-.1.2v-.2c-2.6-.8-4.5-3.3-4.5-6.2 0-3.6 2.9-6.5 6.5-6.5v1.8l3-2.5zM20 11c-.2-1.4-.7-2.7-1.6-3.8l-1.2.8c.7.9 1.1 2 1.3 3.1L20 11zm-1.5 1.8c-.1.5-.2 1.1-.4 1.6s-.5 1-.8 1.5l1.2.9c.4-.5.8-1.1 1-1.8s.5-1.3.5-2l-1.5-.2zm-5.6 5.6l.2 1.5c1.4-.2 2.7-.7 3.8-1.6l-.9-1.1c-.9.7-2 1.1-3.1 1.2z\" />\n\t</SVG>\n);\n\nexport default rotateRight;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst rotateLeft = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M12 4V2.2L9 4.8l3 2.5V5.5c3.6 0 6.5 2.9 6.5 6.5 0 2.9-1.9 5.3-4.5 6.2v.2l-.1-.2c-.4.1-.7.2-1.1.2l.2 1.5c.3 0 .6-.1 1-.2 3.5-.9 6-4 6-7.7 0-4.4-3.6-8-8-8zm-7.9 7l1.5.2c.1-1.2.5-2.3 1.2-3.2l-1.1-.9C4.8 8.2 4.3 9.6 4.1 11zm1.5 1.8l-1.5.2c.1.7.3 1.4.5 2 .3.7.6 1.3 1 1.8l1.2-.8c-.3-.5-.6-1-.8-1.5s-.4-1.1-.4-1.7zm1.5 5.5c1.1.9 2.4 1.4 3.8 1.6l.2-1.5c-1.1-.1-2.2-.5-3.1-1.2l-.9 1.1z\" />\n\t</SVG>\n);\n\nexport default rotateLeft;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst brush = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M4 20h8v-1.5H4V20zM18.9 3.5c-.6-.6-1.5-.6-2.1 0l-7.2 7.2c-.4-.1-.7 0-1.1.1-.5.2-1.5.7-1.9 2.2-.4 1.7-.8 2.2-1.1 2.7-.1.1-.2.3-.3.4l-.6 1.1H6c2 0 3.4-.4 4.7-1.4.8-.6 1.2-1.4 1.3-2.3 0-.3 0-.5-.1-.7L19 5.7c.5-.6.5-1.6-.1-2.2zM9.7 14.7c-.7.5-1.5.8-2.4 1 .2-.5.5-1.2.8-2.3.2-.6.4-1 .8-1.1.5-.1 1 .1 1.3.3.2.2.3.5.2.8 0 .3-.1.9-.7 1.3z\" />\n\t</SVG>\n);\n\nexport default brush;\n","/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __, isRTL } from '@wordpress/i18n';\nimport {\n\trotateLeft,\n\trotateRight,\n\tbackup,\n\thelp,\n\tstyles,\n\texternal,\n\tbrush,\n} from '@wordpress/icons';\nimport { useCommandLoader, useCommand } from '@wordpress/commands';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport getIsListPage from '../../utils/get-is-list-page';\n\nconst { useGlobalStylesReset } = unlock( blockEditorPrivateApis );\nconst { useHistory, useLocation } = unlock( routerPrivateApis );\n\nfunction useGlobalStylesOpenStylesCommands() {\n\tconst { openGeneralSidebar, setCanvasMode } = unlock(\n\t\tuseDispatch( editSiteStore )\n\t);\n\tconst { params } = useLocation();\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst isEditorPage = ! getIsListPage( params, isMobileViewport );\n\tconst { getCanvasMode } = unlock( useSelect( editSiteStore ) );\n\tconst history = useHistory();\n\n\tconst isBlockBasedTheme = useSelect( ( select ) => {\n\t\treturn select( coreStore ).getCurrentTheme().is_block_theme;\n\t}, [] );\n\n\tconst commands = useMemo( () => {\n\t\tif ( ! isBlockBasedTheme ) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn [\n\t\t\t{\n\t\t\t\tname: 'core/edit-site/open-styles',\n\t\t\t\tlabel: __( 'Open styles' ),\n\t\t\t\tcallback: ( { close } ) => {\n\t\t\t\t\tclose();\n\t\t\t\t\tif ( ! isEditorPage ) {\n\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\tpath: '/wp_global_styles',\n\t\t\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t\tif ( isEditorPage && getCanvasMode() !== 'edit' ) {\n\t\t\t\t\t\tsetCanvasMode( 'edit' );\n\t\t\t\t\t}\n\t\t\t\t\topenGeneralSidebar( 'edit-site/global-styles' );\n\t\t\t\t},\n\t\t\t\ticon: styles,\n\t\t\t},\n\t\t];\n\t}, [\n\t\thistory,\n\t\topenGeneralSidebar,\n\t\tsetCanvasMode,\n\t\tisEditorPage,\n\t\tgetCanvasMode,\n\t\tisBlockBasedTheme,\n\t] );\n\n\treturn {\n\t\tisLoading: false,\n\t\tcommands,\n\t};\n}\n\nfunction useGlobalStylesToggleWelcomeGuideCommands() {\n\tconst { openGeneralSidebar, setCanvasMode } = unlock(\n\t\tuseDispatch( editSiteStore )\n\t);\n\tconst { params } = useLocation();\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst isEditorPage = ! getIsListPage( params, isMobileViewport );\n\tconst { getCanvasMode } = unlock( useSelect( editSiteStore ) );\n\tconst { set } = useDispatch( preferencesStore );\n\n\tconst history = useHistory();\n\tconst isBlockBasedTheme = useSelect( ( select ) => {\n\t\treturn select( coreStore ).getCurrentTheme().is_block_theme;\n\t}, [] );\n\n\tconst commands = useMemo( () => {\n\t\tif ( ! isBlockBasedTheme ) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn [\n\t\t\t{\n\t\t\t\tname: 'core/edit-site/toggle-styles-welcome-guide',\n\t\t\t\tlabel: __( 'Learn about styles' ),\n\t\t\t\tcallback: ( { close } ) => {\n\t\t\t\t\tclose();\n\t\t\t\t\tif ( ! isEditorPage ) {\n\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\tpath: '/wp_global_styles',\n\t\t\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t\tif ( isEditorPage && getCanvasMode() !== 'edit' ) {\n\t\t\t\t\t\tsetCanvasMode( 'edit' );\n\t\t\t\t\t}\n\t\t\t\t\topenGeneralSidebar( 'edit-site/global-styles' );\n\t\t\t\t\tset( 'core/edit-site', 'welcomeGuideStyles', true );\n\t\t\t\t\t// sometimes there's a focus loss that happens after some time\n\t\t\t\t\t// that closes the modal, we need to force reopening it.\n\t\t\t\t\tsetTimeout( () => {\n\t\t\t\t\t\tset( 'core/edit-site', 'welcomeGuideStyles', true );\n\t\t\t\t\t}, 500 );\n\t\t\t\t},\n\t\t\t\ticon: help,\n\t\t\t},\n\t\t];\n\t}, [\n\t\thistory,\n\t\topenGeneralSidebar,\n\t\tsetCanvasMode,\n\t\tisEditorPage,\n\t\tgetCanvasMode,\n\t\tisBlockBasedTheme,\n\t\tset,\n\t] );\n\n\treturn {\n\t\tisLoading: false,\n\t\tcommands,\n\t};\n}\n\nfunction useGlobalStylesResetCommands() {\n\tconst [ canReset, onReset ] = useGlobalStylesReset();\n\tconst commands = useMemo( () => {\n\t\tif ( ! canReset ) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn [\n\t\t\t{\n\t\t\t\tname: 'core/edit-site/reset-global-styles',\n\t\t\t\tlabel: __( 'Reset styles' ),\n\t\t\t\ticon: isRTL() ? rotateRight : rotateLeft,\n\t\t\t\tcallback: ( { close } ) => {\n\t\t\t\t\tclose();\n\t\t\t\t\tonReset();\n\t\t\t\t},\n\t\t\t},\n\t\t];\n\t}, [ canReset, onReset ] );\n\n\treturn {\n\t\tisLoading: false,\n\t\tcommands,\n\t};\n}\n\nfunction useGlobalStylesOpenCssCommands() {\n\tconst { openGeneralSidebar, setEditorCanvasContainerView, setCanvasMode } =\n\t\tunlock( useDispatch( editSiteStore ) );\n\tconst { params } = useLocation();\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst isListPage = getIsListPage( params, isMobileViewport );\n\tconst isEditorPage = ! isListPage;\n\tconst history = useHistory();\n\tconst { canEditCSS } = useSelect( ( select ) => {\n\t\tconst { getEntityRecord, __experimentalGetCurrentGlobalStylesId } =\n\t\t\tselect( coreStore );\n\n\t\tconst globalStylesId = __experimentalGetCurrentGlobalStylesId();\n\t\tconst globalStyles = globalStylesId\n\t\t\t? getEntityRecord( 'root', 'globalStyles', globalStylesId )\n\t\t\t: undefined;\n\n\t\treturn {\n\t\t\tcanEditCSS: !! globalStyles?._links?.[ 'wp:action-edit-css' ],\n\t\t};\n\t}, [] );\n\tconst { getCanvasMode } = unlock( useSelect( editSiteStore ) );\n\n\tconst commands = useMemo( () => {\n\t\tif ( ! canEditCSS ) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn [\n\t\t\t{\n\t\t\t\tname: 'core/edit-site/open-styles-css',\n\t\t\t\tlabel: __( 'Customize CSS' ),\n\t\t\t\ticon: brush,\n\t\t\t\tcallback: ( { close } ) => {\n\t\t\t\t\tclose();\n\t\t\t\t\tif ( ! isEditorPage ) {\n\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\tpath: '/wp_global_styles',\n\t\t\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t\tif ( isEditorPage && getCanvasMode() !== 'edit' ) {\n\t\t\t\t\t\tsetCanvasMode( 'edit' );\n\t\t\t\t\t}\n\t\t\t\t\topenGeneralSidebar( 'edit-site/global-styles' );\n\t\t\t\t\tsetEditorCanvasContainerView( 'global-styles-css' );\n\t\t\t\t},\n\t\t\t},\n\t\t];\n\t}, [\n\t\thistory,\n\t\topenGeneralSidebar,\n\t\tsetEditorCanvasContainerView,\n\t\tcanEditCSS,\n\t\tisEditorPage,\n\t\tgetCanvasMode,\n\t\tsetCanvasMode,\n\t] );\n\treturn {\n\t\tisLoading: false,\n\t\tcommands,\n\t};\n}\n\nfunction useGlobalStylesOpenRevisionsCommands() {\n\tconst { openGeneralSidebar, setEditorCanvasContainerView, setCanvasMode } =\n\t\tunlock( useDispatch( editSiteStore ) );\n\tconst { getCanvasMode } = unlock( useSelect( editSiteStore ) );\n\tconst { params } = useLocation();\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst isEditorPage = ! getIsListPage( params, isMobileViewport );\n\tconst history = useHistory();\n\tconst hasRevisions = useSelect( ( select ) => {\n\t\tconst { getEntityRecord, __experimentalGetCurrentGlobalStylesId } =\n\t\t\tselect( coreStore );\n\t\tconst globalStylesId = __experimentalGetCurrentGlobalStylesId();\n\t\tconst globalStyles = globalStylesId\n\t\t\t? getEntityRecord( 'root', 'globalStyles', globalStylesId )\n\t\t\t: undefined;\n\t\treturn !! globalStyles?._links?.[ 'version-history' ]?.[ 0 ]?.count;\n\t}, [] );\n\n\tconst commands = useMemo( () => {\n\t\tif ( ! hasRevisions ) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn [\n\t\t\t{\n\t\t\t\tname: 'core/edit-site/open-global-styles-revisions',\n\t\t\t\tlabel: __( 'Style revisions' ),\n\t\t\t\ticon: backup,\n\t\t\t\tcallback: ( { close } ) => {\n\t\t\t\t\tclose();\n\t\t\t\t\tif ( ! isEditorPage ) {\n\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\tpath: '/wp_global_styles',\n\t\t\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t\tif ( isEditorPage && getCanvasMode() !== 'edit' ) {\n\t\t\t\t\t\tsetCanvasMode( 'edit' );\n\t\t\t\t\t}\n\t\t\t\t\topenGeneralSidebar( 'edit-site/global-styles' );\n\t\t\t\t\tsetEditorCanvasContainerView( 'global-styles-revisions' );\n\t\t\t\t},\n\t\t\t},\n\t\t];\n\t}, [\n\t\thasRevisions,\n\t\thistory,\n\t\topenGeneralSidebar,\n\t\tsetEditorCanvasContainerView,\n\t\tisEditorPage,\n\t\tgetCanvasMode,\n\t\tsetCanvasMode,\n\t] );\n\n\treturn {\n\t\tisLoading: false,\n\t\tcommands,\n\t};\n}\n\nexport function useCommonCommands() {\n\tconst homeUrl = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetUnstableBase, // Site index.\n\t\t} = select( coreStore );\n\n\t\treturn getUnstableBase()?.home;\n\t}, [] );\n\n\tuseCommand( {\n\t\tname: 'core/edit-site/view-site',\n\t\tlabel: __( 'View site' ),\n\t\tcallback: ( { close } ) => {\n\t\t\tclose();\n\t\t\twindow.open( homeUrl, '_blank' );\n\t\t},\n\t\ticon: external,\n\t} );\n\n\tuseCommandLoader( {\n\t\tname: 'core/edit-site/open-styles',\n\t\thook: useGlobalStylesOpenStylesCommands,\n\t} );\n\n\tuseCommandLoader( {\n\t\tname: 'core/edit-site/toggle-styles-welcome-guide',\n\t\thook: useGlobalStylesToggleWelcomeGuideCommands,\n\t} );\n\n\tuseCommandLoader( {\n\t\tname: 'core/edit-site/reset-global-styles',\n\t\thook: useGlobalStylesResetCommands,\n\t} );\n\n\tuseCommandLoader( {\n\t\tname: 'core/edit-site/open-styles-css',\n\t\thook: useGlobalStylesOpenCssCommands,\n\t} );\n\n\tuseCommandLoader( {\n\t\tname: 'core/edit-site/open-styles-revisions',\n\t\thook: useGlobalStylesOpenRevisionsCommands,\n\t} );\n}\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst code = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"M20.8 10.7l-4.3-4.3-1.1 1.1 4.3 4.3c.1.1.1.3 0 .4l-4.3 4.3 1.1 1.1 4.3-4.3c.7-.8.7-1.9 0-2.6zM4.2 11.8l4.3-4.3-1-1-4.3 4.3c-.7.7-.7 1.8 0 2.5l4.3 4.3 1.1-1.1-4.3-4.3c-.2-.1-.2-.3-.1-.4z\" />\n\t</SVG>\n);\n\nexport default code;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst blockDefault = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M19 8h-1V6h-5v2h-2V6H6v2H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2zm.5 10c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-8c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v8z\" />\n\t</SVG>\n);\n\nexport default blockDefault;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst keyboard = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"m16 15.5h-8v-1.5h8zm-7.5-2.5h-2v-2h2zm3 0h-2v-2h2zm3 0h-2v-2h2zm3 0h-2v-2h2zm-9-3h-2v-2h2zm3 0h-2v-2h2zm3 0h-2v-2h2zm3 0h-2v-2h2z\" />\n\t\t<Path d=\"m18.5 6.5h-13a.5.5 0 0 0 -.5.5v9.5a.5.5 0 0 0 .5.5h13a.5.5 0 0 0 .5-.5v-9.5a.5.5 0 0 0 -.5-.5zm-13-1.5h13a2 2 0 0 1 2 2v9.5a2 2 0 0 1 -2 2h-13a2 2 0 0 1 -2-2v-9.5a2 2 0 0 1 2-2z\" />\n\t</SVG>\n);\n\nexport default keyboard;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst listView = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path d=\"M3 6h11v1.5H3V6Zm3.5 5.5h11V13h-11v-1.5ZM21 17H10v1.5h11V17Z\" />\n\t</SVG>\n);\n\nexport default listView;\n","/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, sprintf, isRTL } from '@wordpress/i18n';\nimport {\n\tedit,\n\ttrash,\n\trotateLeft,\n\trotateRight,\n\tlayout,\n\tpage,\n\tdrawerLeft,\n\tdrawerRight,\n\tblockDefault,\n\tcode,\n\tkeyboard,\n\tlistView,\n\tsymbol,\n} from '@wordpress/icons';\nimport { useCommandLoader } from '@wordpress/commands';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { store as interfaceStore } from '@wordpress/interface';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport useEditedEntityRecord from '../../components/use-edited-entity-record';\nimport isTemplateRemovable from '../../utils/is-template-removable';\nimport isTemplateRevertable from '../../utils/is-template-revertable';\nimport { KEYBOARD_SHORTCUT_HELP_MODAL_NAME } from '../../components/keyboard-shortcut-help-modal';\nimport { PREFERENCES_MODAL_NAME } from '../../components/preferences-modal';\nimport { PATTERN_MODALS } from '../../components/pattern-modal';\nimport { unlock } from '../../lock-unlock';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nfunction usePageContentFocusCommands() {\n\tconst { record: template } = useEditedEntityRecord();\n\tconst { isPage, canvasMode, renderingMode } = useSelect( ( select ) => {\n\t\tconst { isPage: _isPage, getCanvasMode } = unlock(\n\t\t\tselect( editSiteStore )\n\t\t);\n\t\tconst { getRenderingMode } = select( editorStore );\n\t\treturn {\n\t\t\tisPage: _isPage(),\n\t\t\tcanvasMode: getCanvasMode(),\n\t\t\trenderingMode: getRenderingMode(),\n\t\t};\n\t}, [] );\n\tconst { setRenderingMode } = useDispatch( editorStore );\n\n\tif ( ! isPage || canvasMode !== 'edit' ) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst commands = [];\n\n\tif ( renderingMode !== 'template-only' ) {\n\t\tcommands.push( {\n\t\t\tname: 'core/switch-to-template-focus',\n\t\t\t/* translators: %1$s: template title */\n\t\t\tlabel: sprintf(\n\t\t\t\t'Edit template: %s',\n\t\t\t\tdecodeEntities( template.title )\n\t\t\t),\n\t\t\ticon: layout,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tsetRenderingMode( 'template-only' );\n\t\t\t\tclose();\n\t\t\t},\n\t\t} );\n\t} else {\n\t\tcommands.push( {\n\t\t\tname: 'core/switch-to-page-focus',\n\t\t\tlabel: __( 'Back to page' ),\n\t\t\ticon: page,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tsetRenderingMode( 'template-locked' );\n\t\t\t\tclose();\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn { isLoading: false, commands };\n}\n\nfunction useEditorModeCommands() {\n\tconst { switchEditorMode } = useDispatch( editSiteStore );\n\tconst { canvasMode, editorMode } = useSelect(\n\t\t( select ) => ( {\n\t\t\tcanvasMode: unlock( select( editSiteStore ) ).getCanvasMode(),\n\t\t\teditorMode: select( editSiteStore ).getEditorMode(),\n\t\t} ),\n\t\t[]\n\t);\n\n\tif ( canvasMode !== 'edit' || editorMode !== 'text' ) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst commands = [];\n\n\tif ( editorMode === 'text' ) {\n\t\tcommands.push( {\n\t\t\tname: 'core/exit-code-editor',\n\t\t\tlabel: __( 'Exit code editor' ),\n\t\t\ticon: code,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tswitchEditorMode( 'visual' );\n\t\t\t\tclose();\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn { isLoading: false, commands };\n}\n\nfunction useManipulateDocumentCommands() {\n\tconst { isLoaded, record: template } = useEditedEntityRecord();\n\tconst { removeTemplate, revertTemplate } = useDispatch( editSiteStore );\n\tconst history = useHistory();\n\tconst isEditingPage = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editSiteStore ).isPage() &&\n\t\t\tselect( editorStore ).getRenderingMode() !== 'template-only',\n\t\t[]\n\t);\n\n\tif ( ! isLoaded ) {\n\t\treturn { isLoading: true, commands: [] };\n\t}\n\n\tconst commands = [];\n\n\tif ( isTemplateRevertable( template ) && ! isEditingPage ) {\n\t\tconst label =\n\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t? /* translators: %1$s: template title */\n\t\t\t\t  sprintf(\n\t\t\t\t\t\t'Reset template: %s',\n\t\t\t\t\t\tdecodeEntities( template.title )\n\t\t\t\t  )\n\t\t\t\t: /* translators: %1$s: template part title */\n\t\t\t\t  sprintf(\n\t\t\t\t\t\t'Reset template part: %s',\n\t\t\t\t\t\tdecodeEntities( template.title )\n\t\t\t\t  );\n\t\tcommands.push( {\n\t\t\tname: 'core/reset-template',\n\t\t\tlabel,\n\t\t\ticon: isRTL() ? rotateRight : rotateLeft,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\trevertTemplate( template );\n\t\t\t\tclose();\n\t\t\t},\n\t\t} );\n\t}\n\n\tif ( isTemplateRemovable( template ) && ! isEditingPage ) {\n\t\tconst label =\n\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t? /* translators: %1$s: template title */\n\t\t\t\t  sprintf(\n\t\t\t\t\t\t'Delete template: %s',\n\t\t\t\t\t\tdecodeEntities( template.title )\n\t\t\t\t  )\n\t\t\t\t: /* translators: %1$s: template part title */\n\t\t\t\t  sprintf(\n\t\t\t\t\t\t'Delete template part: %s',\n\t\t\t\t\t\tdecodeEntities( template.title )\n\t\t\t\t  );\n\t\tconst path =\n\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t? '/wp_template'\n\t\t\t\t: '/wp_template_part/all';\n\t\tcommands.push( {\n\t\t\tname: 'core/remove-template',\n\t\t\tlabel,\n\t\t\ticon: trash,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tremoveTemplate( template );\n\t\t\t\t// Navigate to the template list\n\t\t\t\thistory.push( {\n\t\t\t\t\tpath,\n\t\t\t\t} );\n\t\t\t\tclose();\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn {\n\t\tisLoading: ! isLoaded,\n\t\tcommands,\n\t};\n}\n\nfunction useEditUICommands() {\n\tconst {\n\t\topenGeneralSidebar,\n\t\tcloseGeneralSidebar,\n\t\ttoggleDistractionFree,\n\t\tsetIsListViewOpened,\n\t\tswitchEditorMode,\n\t} = useDispatch( editSiteStore );\n\tconst {\n\t\tcanvasMode,\n\t\teditorMode,\n\t\tactiveSidebar,\n\t\tshowBlockBreadcrumbs,\n\t\tisListViewOpen,\n\t\tisDistractionFree,\n\t} = useSelect( ( select ) => {\n\t\tconst { get } = select( preferencesStore );\n\t\tconst { getEditorMode } = select( editSiteStore );\n\t\tconst { isListViewOpened } = select( editorStore );\n\t\treturn {\n\t\t\tcanvasMode: unlock( select( editSiteStore ) ).getCanvasMode(),\n\t\t\teditorMode: getEditorMode(),\n\t\t\tactiveSidebar: select( interfaceStore ).getActiveComplementaryArea(\n\t\t\t\teditSiteStore.name\n\t\t\t),\n\t\t\tshowBlockBreadcrumbs: get( 'core', 'showBlockBreadcrumbs' ),\n\t\t\tisListViewOpen: isListViewOpened(),\n\t\t\tisDistractionFree: get( 'core', 'distractionFree' ),\n\t\t};\n\t}, [] );\n\tconst { openModal } = useDispatch( interfaceStore );\n\tconst { toggle } = useDispatch( preferencesStore );\n\tconst { createInfoNotice } = useDispatch( noticesStore );\n\n\tif ( canvasMode !== 'edit' ) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst commands = [];\n\n\tcommands.push( {\n\t\tname: 'core/open-settings-sidebar',\n\t\tlabel: __( 'Toggle settings sidebar' ),\n\t\ticon: isRTL() ? drawerLeft : drawerRight,\n\t\tcallback: ( { close } ) => {\n\t\t\tclose();\n\t\t\tif ( activeSidebar === 'edit-site/template' ) {\n\t\t\t\tcloseGeneralSidebar();\n\t\t\t} else {\n\t\t\t\topenGeneralSidebar( 'edit-site/template' );\n\t\t\t}\n\t\t},\n\t} );\n\n\tcommands.push( {\n\t\tname: 'core/open-block-inspector',\n\t\tlabel: __( 'Toggle block inspector' ),\n\t\ticon: blockDefault,\n\t\tcallback: ( { close } ) => {\n\t\t\tclose();\n\t\t\tif ( activeSidebar === 'edit-site/block-inspector' ) {\n\t\t\t\tcloseGeneralSidebar();\n\t\t\t} else {\n\t\t\t\topenGeneralSidebar( 'edit-site/block-inspector' );\n\t\t\t}\n\t\t},\n\t} );\n\n\tcommands.push( {\n\t\tname: 'core/toggle-spotlight-mode',\n\t\tlabel: __( 'Toggle spotlight mode' ),\n\t\tcallback: ( { close } ) => {\n\t\t\ttoggle( 'core', 'focusMode' );\n\t\t\tclose();\n\t\t},\n\t} );\n\n\tcommands.push( {\n\t\tname: 'core/toggle-distraction-free',\n\t\tlabel: __( 'Toggle distraction free' ),\n\t\tcallback: ( { close } ) => {\n\t\t\ttoggleDistractionFree();\n\t\t\tclose();\n\t\t},\n\t} );\n\n\tcommands.push( {\n\t\tname: 'core/toggle-top-toolbar',\n\t\tlabel: __( 'Toggle top toolbar' ),\n\t\tcallback: ( { close } ) => {\n\t\t\ttoggle( 'core', 'fixedToolbar' );\n\t\t\tif ( isDistractionFree ) {\n\t\t\t\ttoggleDistractionFree();\n\t\t\t}\n\t\t\tclose();\n\t\t},\n\t} );\n\n\tif ( editorMode === 'visual' ) {\n\t\tcommands.push( {\n\t\t\tname: 'core/toggle-code-editor',\n\t\t\tlabel: __( 'Open code editor' ),\n\t\t\ticon: code,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tswitchEditorMode( 'text' );\n\t\t\t\tclose();\n\t\t\t},\n\t\t} );\n\t}\n\n\tcommands.push( {\n\t\tname: 'core/open-preferences',\n\t\tlabel: __( 'Editor preferences' ),\n\t\tcallback: () => {\n\t\t\topenModal( PREFERENCES_MODAL_NAME );\n\t\t},\n\t} );\n\n\tcommands.push( {\n\t\tname: 'core/open-shortcut-help',\n\t\tlabel: __( 'Keyboard shortcuts' ),\n\t\ticon: keyboard,\n\t\tcallback: () => {\n\t\t\topenModal( KEYBOARD_SHORTCUT_HELP_MODAL_NAME );\n\t\t},\n\t} );\n\n\tcommands.push( {\n\t\tname: 'core/toggle-breadcrumbs',\n\t\tlabel: showBlockBreadcrumbs\n\t\t\t? __( 'Hide block breadcrumbs' )\n\t\t\t: __( 'Show block breadcrumbs' ),\n\t\tcallback: ( { close } ) => {\n\t\t\ttoggle( 'core', 'showBlockBreadcrumbs' );\n\t\t\tclose();\n\t\t\tcreateInfoNotice(\n\t\t\t\tshowBlockBreadcrumbs\n\t\t\t\t\t? __( 'Breadcrumbs hidden.' )\n\t\t\t\t\t: __( 'Breadcrumbs visible.' ),\n\t\t\t\t{\n\t\t\t\t\tid: 'core/edit-site/toggle-breadcrumbs/notice',\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\t} );\n\n\tcommands.push( {\n\t\tname: 'core/toggle-list-view',\n\t\tlabel: __( 'Toggle list view' ),\n\t\ticon: listView,\n\t\tcallback: ( { close } ) => {\n\t\t\tsetIsListViewOpened( ! isListViewOpen );\n\t\t\tclose();\n\t\t},\n\t} );\n\n\treturn {\n\t\tisLoading: false,\n\t\tcommands,\n\t};\n}\n\nfunction usePatternCommands() {\n\tconst { isLoaded, record: pattern } = useEditedEntityRecord();\n\tconst { openModal } = useDispatch( interfaceStore );\n\n\tif ( ! isLoaded ) {\n\t\treturn { isLoading: true, commands: [] };\n\t}\n\n\tconst commands = [];\n\n\tif ( pattern?.type === 'wp_block' ) {\n\t\tcommands.push( {\n\t\t\tname: 'core/rename-pattern',\n\t\t\tlabel: __( 'Rename pattern' ),\n\t\t\ticon: edit,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\topenModal( PATTERN_MODALS.rename );\n\t\t\t\tclose();\n\t\t\t},\n\t\t} );\n\t\tcommands.push( {\n\t\t\tname: 'core/duplicate-pattern',\n\t\t\tlabel: __( 'Duplicate pattern' ),\n\t\t\ticon: symbol,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\topenModal( PATTERN_MODALS.duplicate );\n\t\t\t\tclose();\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn { isLoading: false, commands };\n}\n\nexport function useEditModeCommands() {\n\tuseCommandLoader( {\n\t\tname: 'core/exit-code-editor',\n\t\thook: useEditorModeCommands,\n\t\tcontext: 'site-editor-edit',\n\t} );\n\n\tuseCommandLoader( {\n\t\tname: 'core/edit-site/page-content-focus',\n\t\thook: usePageContentFocusCommands,\n\t\tcontext: 'site-editor-edit',\n\t} );\n\n\tuseCommandLoader( {\n\t\tname: 'core/edit-site/manipulate-document',\n\t\thook: useManipulateDocumentCommands,\n\t} );\n\n\tuseCommandLoader( {\n\t\tname: 'core/edit-site/patterns',\n\t\thook: usePatternCommands,\n\t\tcontext: 'site-editor-edit',\n\t} );\n\n\tuseCommandLoader( {\n\t\tname: 'core/edit-site/edit-ui',\n\t\thook: useEditUICommands,\n\t} );\n}\n","/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHeading as Heading,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\tFlexBlock,\n\tFlexItem,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\n\nexport default function Header( { title, subTitle, actions } ) {\n\treturn (\n\t\t<HStack as=\"header\" alignment=\"left\" className=\"edit-site-page-header\">\n\t\t\t<FlexBlock className=\"edit-site-page-header__page-title\">\n\t\t\t\t<Heading\n\t\t\t\t\tas=\"h2\"\n\t\t\t\t\tlevel={ 3 }\n\t\t\t\t\tweight={ 500 }\n\t\t\t\t\tclassName=\"edit-site-page-header__title\"\n\t\t\t\t>\n\t\t\t\t\t{ title }\n\t\t\t\t</Heading>\n\t\t\t\t{ subTitle && (\n\t\t\t\t\t<Text as=\"p\" className=\"edit-site-page-header__sub-title\">\n\t\t\t\t\t\t{ subTitle }\n\t\t\t\t\t</Text>\n\t\t\t\t) }\n\t\t\t</FlexBlock>\n\t\t\t<FlexItem className=\"edit-site-page-header__actions\">\n\t\t\t\t{ actions }\n\t\t\t</FlexItem>\n\t\t</HStack>\n\t);\n}\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { NavigableRegion } from '@wordpress/interface';\nimport { EditorSnackbars } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport Header from './header';\n\nexport default function Page( {\n\ttitle,\n\tsubTitle,\n\tactions,\n\tchildren,\n\tclassName,\n\thideTitleFromUI = false,\n} ) {\n\tconst classes = classnames( 'edit-site-page', className );\n\n\treturn (\n\t\t<NavigableRegion className={ classes } ariaLabel={ title }>\n\t\t\t<div className=\"edit-site-page-content\">\n\t\t\t\t{ ! hideTitleFromUI && title && (\n\t\t\t\t\t<Header\n\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\tsubTitle={ subTitle }\n\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t\t<EditorSnackbars />\n\t\t</NavigableRegion>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\n/**\n * Internal dependencies\n */\nimport usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { RenamePatternCategoryModal } = unlock( patternsPrivateApis );\n\nexport default function RenameCategoryMenuItem( { category, onClose } ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem onClick={ () => setIsModalOpen( true ) }>\n\t\t\t\t{ __( 'Rename' ) }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<RenameModal\n\t\t\t\t\tcategory={ category }\n\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction RenameModal( { category, onClose } ) {\n\t// User created pattern categories have their properties updated when\n\t// retrieved via `getUserPatternCategories`. The rename modal expects an\n\t// object that will match the pattern category entity.\n\tconst normalizedCategory = {\n\t\tid: category.id,\n\t\tslug: category.slug,\n\t\tname: category.label,\n\t};\n\n\t// Optimization - only use pattern categories when the modal is open.\n\tconst existingCategories = usePatternCategories();\n\n\treturn (\n\t\t<RenamePatternCategoryModal\n\t\t\tcategory={ normalizedCategory }\n\t\t\texistingCategories={ existingCategories }\n\t\t\tonClose={ onClose }\n\t\t\toverlayClassName=\"edit-site-list__rename-modal\"\n\t\t/>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport {\n\tMenuItem,\n\t__experimentalConfirmDialog as ConfirmDialog,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { PATTERN_TYPES, PATTERN_DEFAULT_CATEGORY } from '../../utils/constants';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nexport default function DeleteCategoryMenuItem( { category, onClose } ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst history = useHistory();\n\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { deleteEntityRecord, invalidateResolution } =\n\t\tuseDispatch( coreStore );\n\n\tconst onDelete = async () => {\n\t\ttry {\n\t\t\tawait deleteEntityRecord(\n\t\t\t\t'taxonomy',\n\t\t\t\t'wp_pattern_category',\n\t\t\t\tcategory.id,\n\t\t\t\t{ force: true },\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\t// Prevent the need to refresh the page to get up-to-date categories\n\t\t\t// and pattern categorization.\n\t\t\tinvalidateResolution( 'getUserPatternCategories' );\n\t\t\tinvalidateResolution( 'getEntityRecords', [\n\t\t\t\t'postType',\n\t\t\t\tPATTERN_TYPES.user,\n\t\t\t\t{ per_page: -1 },\n\t\t\t] );\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: The pattern category's name */\n\t\t\t\t\t__( '\"%s\" deleted.' ),\n\t\t\t\t\tcategory.label\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar', id: 'pattern-category-delete' }\n\t\t\t);\n\n\t\t\tonClose?.();\n\t\t\thistory.push( {\n\t\t\t\tpath: `/patterns`,\n\t\t\t\tcategoryType: PATTERN_TYPES.theme,\n\t\t\t\tcategoryId: PATTERN_DEFAULT_CATEGORY,\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __(\n\t\t\t\t\t\t\t'An error occurred while deleting the pattern category.'\n\t\t\t\t\t  );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'pattern-category-delete',\n\t\t\t} );\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem isDestructive onClick={ () => setIsModalOpen( true ) }>\n\t\t\t\t{ __( 'Delete' ) }\n\t\t\t</MenuItem>\n\t\t\t<ConfirmDialog\n\t\t\t\tisOpen={ isModalOpen }\n\t\t\t\tonConfirm={ onDelete }\n\t\t\t\tonCancel={ () => setIsModalOpen( false ) }\n\t\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\t\tclassName=\"edit-site-patterns__delete-modal\"\n\t\t\t>\n\t\t\t\t{ sprintf(\n\t\t\t\t\t// translators: %s: The pattern category's name.\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Are you sure you want to delete the category \"%s\"? The patterns will not be deleted.'\n\t\t\t\t\t),\n\t\t\t\t\tdecodeEntities( category.label )\n\t\t\t\t) }\n\t\t\t</ConfirmDialog>\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport {\n\tDropdownMenu,\n\tMenuGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { store as editorStore } from '@wordpress/editor';\nimport { useSelect } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { moreVertical } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport RenameCategoryMenuItem from './rename-category-menu-item';\nimport DeleteCategoryMenuItem from './delete-category-menu-item';\nimport usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';\nimport { TEMPLATE_PART_POST_TYPE, PATTERN_TYPES } from '../../utils/constants';\n\nexport default function PatternsHeader( {\n\tcategoryId,\n\ttype,\n\ttitleId,\n\tdescriptionId,\n} ) {\n\tconst { patternCategories } = usePatternCategories();\n\tconst templatePartAreas = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).__experimentalGetDefaultTemplatePartAreas(),\n\t\t[]\n\t);\n\n\tlet title, description, patternCategory;\n\tif ( type === TEMPLATE_PART_POST_TYPE ) {\n\t\tconst templatePartArea = templatePartAreas.find(\n\t\t\t( area ) => area.area === categoryId\n\t\t);\n\t\ttitle = templatePartArea?.label;\n\t\tdescription = templatePartArea?.description;\n\t} else if ( type === PATTERN_TYPES.theme ) {\n\t\tpatternCategory = patternCategories.find(\n\t\t\t( category ) => category.name === categoryId\n\t\t);\n\t\ttitle = patternCategory?.label;\n\t\tdescription = patternCategory?.description;\n\t}\n\n\tif ( ! title ) return null;\n\n\treturn (\n\t\t<VStack className=\"edit-site-patterns__section-header\">\n\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t<Heading as=\"h2\" level={ 4 } id={ titleId }>\n\t\t\t\t\t{ title }\n\t\t\t\t</Heading>\n\t\t\t\t{ !! patternCategory?.id && (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\tclassName: 'edit-site-patterns__button',\n\t\t\t\t\t\t\tdescribedBy: sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: pattern category name */\n\t\t\t\t\t\t\t\t__( 'Action menu for %s pattern category' ),\n\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<RenameCategoryMenuItem\n\t\t\t\t\t\t\t\t\tcategory={ patternCategory }\n\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<DeleteCategoryMenuItem\n\t\t\t\t\t\t\t\t\tcategory={ patternCategory }\n\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t\t{ description ? (\n\t\t\t\t<Text variant=\"muted\" as=\"p\" id={ descriptionId }>\n\t\t\t\t\t{ description }\n\t\t\t\t</Text>\n\t\t\t) : null }\n\t\t</VStack>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst header = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M18.5 10.5H10v8h8a.5.5 0 00.5-.5v-7.5zm-10 0h-3V18a.5.5 0 00.5.5h2.5v-8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z\" />\n\t</SVG>\n);\n\nexport default header;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst footer = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path\n\t\t\tfillRule=\"evenodd\"\n\t\t\td=\"M18 5.5h-8v8h8.5V6a.5.5 0 00-.5-.5zm-9.5 8h-3V6a.5.5 0 01.5-.5h2.5v8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z\"\n\t\t/>\n\t</SVG>\n);\n\nexport default footer;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst lockSmall = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"M15 11h-.2V9c0-1.5-1.2-2.8-2.8-2.8S9.2 7.5 9.2 9v2H9c-.6 0-1 .4-1 1v4c0 .6.4 1 1 1h6c.6 0 1-.4 1-1v-4c0-.6-.4-1-1-1zm-1.8 0h-2.5V9c0-.7.6-1.2 1.2-1.2s1.2.6 1.2 1.2v2z\"\n\t\t/>\n\t</SVG>\n);\n\nexport default lockSmall;\n","var __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"reusableBlocks\"];","/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tMenuItem,\n\tModal,\n\tTextControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { TEMPLATE_PART_POST_TYPE } from '../../utils/constants';\n\nexport default function RenameMenuItem( { item, onClose } ) {\n\tconst [ title, setTitle ] = useState( () => item.title );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\n\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\tuseDispatch( coreStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tif ( item.type === TEMPLATE_PART_POST_TYPE && ! item.isCustom ) {\n\t\treturn null;\n\t}\n\n\tasync function onRename( event ) {\n\t\tevent.preventDefault();\n\n\t\ttry {\n\t\t\tawait editEntityRecord( 'postType', item.type, item.id, { title } );\n\n\t\t\t// Update state before saving rerenders the list.\n\t\t\tsetTitle( '' );\n\t\t\tsetIsModalOpen( false );\n\t\t\tonClose();\n\n\t\t\t// Persist edited entity.\n\t\t\tawait saveEditedEntityRecord( 'postType', item.type, item.id, {\n\t\t\t\tthrowOnError: true,\n\t\t\t} );\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\titem.type === TEMPLATE_PART_POST_TYPE\n\t\t\t\t\t? __( 'Template part renamed.' )\n\t\t\t\t\t: __( 'Pattern renamed.' ),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst fallbackErrorMessage =\n\t\t\t\titem.type === TEMPLATE_PART_POST_TYPE\n\t\t\t\t\t? __(\n\t\t\t\t\t\t\t'An error occurred while renaming the template part.'\n\t\t\t\t\t  )\n\t\t\t\t\t: __( 'An error occurred while renaming the pattern.' );\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t}\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetIsModalOpen( true );\n\t\t\t\t\tsetTitle( item.title );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ __( 'Rename' ) }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Rename' ) }\n\t\t\t\t\tonRequestClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\n\t\t\t\t\toverlayClassName=\"edit-site-list__rename-modal\"\n\t\t\t\t>\n\t\t\t\t\t<form onSubmit={ onRename }>\n\t\t\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t\t</Button>\n\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t</form>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { TEMPLATE_PART_POST_TYPE, PATTERN_TYPES } from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\nimport CreateTemplatePartModal from '../create-template-part-modal';\n\nconst { DuplicatePatternModal } = unlock( patternsPrivateApis );\nconst { useHistory } = unlock( routerPrivateApis );\n\nexport default function DuplicateMenuItem( {\n\tcategoryId,\n\titem,\n\tlabel = __( 'Duplicate' ),\n\tonClose,\n} ) {\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst history = useHistory();\n\n\tconst closeModal = () => setIsModalOpen( false );\n\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tconst isThemePattern = item.type === PATTERN_TYPES.theme;\n\n\tasync function onTemplatePartSuccess( templatePart ) {\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t// translators: %s: The new template part's title e.g. 'Call to action (copy)'.\n\t\t\t\t__( '\"%s\" duplicated.' ),\n\t\t\t\titem.title\n\t\t\t),\n\t\t\t{\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'edit-site-patterns-success',\n\t\t\t}\n\t\t);\n\n\t\thistory.push( {\n\t\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\t\tpostId: templatePart?.id,\n\t\t\tcategoryType: TEMPLATE_PART_POST_TYPE,\n\t\t\tcategoryId,\n\t\t} );\n\n\t\tonClose();\n\t}\n\n\tfunction onPatternSuccess( { pattern } ) {\n\t\thistory.push( {\n\t\t\tcategoryType: PATTERN_TYPES.theme,\n\t\t\tcategoryId,\n\t\t\tpostType: PATTERN_TYPES.user,\n\t\t\tpostId: pattern.id,\n\t\t} );\n\n\t\tonClose();\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\tonClick={ () => setIsModalOpen( true ) }\n\t\t\t\taria-expanded={ isModalOpen }\n\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t>\n\t\t\t\t{ label }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && ! isTemplatePart && (\n\t\t\t\t<DuplicatePatternModal\n\t\t\t\t\tonClose={ closeModal }\n\t\t\t\t\tonSuccess={ onPatternSuccess }\n\t\t\t\t\tpattern={ isThemePattern ? item : item.patternPost }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isModalOpen && isTemplatePart && (\n\t\t\t\t<CreateTemplatePartModal\n\t\t\t\t\tblocks={ item.blocks }\n\t\t\t\t\tcloseModal={ closeModal }\n\t\t\t\t\tconfirmLabel={ __( 'Duplicate' ) }\n\t\t\t\t\tdefaultArea={ item.templatePart.area }\n\t\t\t\t\tdefaultTitle={ sprintf(\n\t\t\t\t\t\t/* translators: %s: Existing template part title */\n\t\t\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\t\t\titem.title\n\t\t\t\t\t) }\n\t\t\t\t\tmodalTitle={ __( 'Duplicate template part' ) }\n\t\t\t\t\tonCreate={ onTemplatePartSuccess }\n\t\t\t\t\tonError={ closeModal }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { paramCase as kebabCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\t__experimentalHeading as Heading,\n\t__experimentalHStack as HStack,\n\tTooltip,\n\tFlex,\n} from '@wordpress/components';\nimport { useDispatch } from '@wordpress/data';\nimport { useState, useId, memo } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tIcon,\n\theader,\n\tfooter,\n\tsymbolFilled as uncategorized,\n\tsymbol,\n\tmoreVertical,\n\tlockSmall,\n} from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\nimport { downloadBlob } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport RenameMenuItem from './rename-menu-item';\nimport DuplicateMenuItem from './duplicate-menu-item';\nimport {\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_SYNC_TYPES,\n} from '../../utils/constants';\nimport { store as editSiteStore } from '../../store';\nimport { useLink } from '../routes/link';\nimport { unlock } from '../../lock-unlock';\n\nconst { useGlobalStyle } = unlock( blockEditorPrivateApis );\n\nconst templatePartIcons = { header, footer, uncategorized };\n\nfunction GridItem( { categoryId, item, ...props } ) {\n\tconst descriptionId = useId();\n\tconst [ isDeleteDialogOpen, setIsDeleteDialogOpen ] = useState( false );\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\n\tconst { removeTemplate } = useDispatch( editSiteStore );\n\tconst { __experimentalDeleteReusableBlock } =\n\t\tuseDispatch( reusableBlocksStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\tconst isNonUserPattern = item.type === PATTERN_TYPES.theme;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern ? item.id : item.name,\n\t\tcategoryId,\n\t\tcategoryType: isTemplatePart ? item.type : PATTERN_TYPES.theme,\n\t} );\n\n\tconst isEmpty = ! item.blocks?.length;\n\tconst patternClassNames = classnames( 'edit-site-patterns__pattern', {\n\t\t'is-placeholder': isEmpty,\n\t} );\n\tconst previewClassNames = classnames( 'edit-site-patterns__preview', {\n\t\t'is-inactive': isNonUserPattern,\n\t} );\n\n\tconst deletePattern = async () => {\n\t\ttry {\n\t\t\tawait __experimentalDeleteReusableBlock( item.id );\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The pattern's title e.g. 'Call to action'.\n\t\t\t\t\t__( '\"%s\" deleted.' ),\n\t\t\t\t\titem.title\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar', id: 'edit-site-patterns-success' }\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while deleting the pattern.' );\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'edit-site-patterns-error',\n\t\t\t} );\n\t\t}\n\t};\n\tconst deleteItem = () =>\n\t\tisTemplatePart ? removeTemplate( item ) : deletePattern();\n\tconst exportAsJSON = () => {\n\t\tconst json = {\n\t\t\t__file: item.type,\n\t\t\ttitle: item.title || item.name,\n\t\t\tcontent: item.patternPost.content.raw,\n\t\t\tsyncStatus: item.patternPost.wp_pattern_sync_status,\n\t\t};\n\n\t\treturn downloadBlob(\n\t\t\t`${ kebabCase( item.title || item.name ) }.json`,\n\t\t\tJSON.stringify( json, null, 2 ),\n\t\t\t'application/json'\n\t\t);\n\t};\n\n\t// Only custom patterns or custom template parts can be renamed or deleted.\n\tconst isCustomPattern =\n\t\tisUserPattern || ( isTemplatePart && item.isCustom );\n\tconst hasThemeFile = isTemplatePart && item.templatePart.has_theme_file;\n\tconst ariaDescriptions = [];\n\n\tif ( isCustomPattern ) {\n\t\t// User patterns don't have descriptions, but can be edited and deleted, so include some help text.\n\t\tariaDescriptions.push(\n\t\t\t__( 'Press Enter to edit, or Delete to delete the pattern.' )\n\t\t);\n\t} else if ( item.description ) {\n\t\tariaDescriptions.push( item.description );\n\t}\n\n\tif ( isNonUserPattern ) {\n\t\tariaDescriptions.push(\n\t\t\t__( 'Theme & plugin patterns cannot be edited.' )\n\t\t);\n\t}\n\n\tlet itemIcon;\n\tif ( ! isUserPattern && templatePartIcons[ categoryId ] ) {\n\t\titemIcon = templatePartIcons[ categoryId ];\n\t} else {\n\t\titemIcon =\n\t\t\titem.syncStatus === PATTERN_SYNC_TYPES.full ? symbol : undefined;\n\t}\n\n\tconst confirmButtonText = hasThemeFile ? __( 'Clear' ) : __( 'Delete' );\n\tconst confirmPrompt = hasThemeFile\n\t\t? __( 'Are you sure you want to clear these customizations?' )\n\t\t: sprintf(\n\t\t\t\t// translators: %s: The pattern or template part's title e.g. 'Call to action'.\n\t\t\t\t__( 'Are you sure you want to delete \"%s\"?' ),\n\t\t\t\titem.title || item.name\n\t\t  );\n\n\tconst additionalStyles = ! backgroundColor\n\t\t? [ { css: 'body { background: #fff; }' } ]\n\t\t: undefined;\n\n\treturn (\n\t\t<li className={ patternClassNames }>\n\t\t\t<button\n\t\t\t\tclassName={ previewClassNames }\n\t\t\t\t// Even though still incomplete, passing ids helps performance.\n\t\t\t\t// @see https://reakit.io/docs/composite/#performance.\n\t\t\t\tid={ `edit-site-patterns-${ item.name }` }\n\t\t\t\ttype=\"button\"\n\t\t\t\t{ ...props }\n\t\t\t\tonClick={\n\t\t\t\t\titem.type !== PATTERN_TYPES.theme ? onClick : undefined\n\t\t\t\t}\n\t\t\t\taria-disabled={\n\t\t\t\t\titem.type !== PATTERN_TYPES.theme ? 'false' : 'true'\n\t\t\t\t}\n\t\t\t\taria-label={ item.title }\n\t\t\t\taria-describedby={\n\t\t\t\t\tariaDescriptions.length\n\t\t\t\t\t\t? ariaDescriptions\n\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t( _, index ) =>\n\t\t\t\t\t\t\t\t\t\t`${ descriptionId }-${ index }`\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.join( ' ' )\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ isEmpty && isTemplatePart && __( 'Empty template part' ) }\n\t\t\t\t{ isEmpty && ! isTemplatePart && __( 'Empty pattern' ) }\n\t\t\t\t{ ! isEmpty && (\n\t\t\t\t\t<BlockPreview\n\t\t\t\t\t\tblocks={ item.blocks }\n\t\t\t\t\t\tadditionalStyles={ additionalStyles }\n\t\t\t\t\t\tviewportWidth={ item.viewportWidth }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</button>\n\t\t\t{ ariaDescriptions.map( ( ariaDescription, index ) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={ index }\n\t\t\t\t\thidden\n\t\t\t\t\tid={ `${ descriptionId }-${ index }` }\n\t\t\t\t>\n\t\t\t\t\t{ ariaDescription }\n\t\t\t\t</div>\n\t\t\t) ) }\n\t\t\t<HStack\n\t\t\t\tclassName=\"edit-site-patterns__footer\"\n\t\t\t\tjustify=\"space-between\"\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\talignment=\"center\"\n\t\t\t\t\tjustify=\"left\"\n\t\t\t\t\tspacing={ 3 }\n\t\t\t\t\tclassName=\"edit-site-patterns__pattern-title\"\n\t\t\t\t>\n\t\t\t\t\t{ itemIcon && ! isNonUserPattern && (\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t\t\t'Editing this pattern will also update anywhere it is used'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-icon\"\n\t\t\t\t\t\t\t\ticon={ itemIcon }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) }\n\t\t\t\t\t<Flex as=\"span\" gap={ 0 } justify=\"left\">\n\t\t\t\t\t\t{ item.type === PATTERN_TYPES.theme ? (\n\t\t\t\t\t\t\titem.title\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Heading level={ 5 }>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\t\t\t\t// Required for the grid's roving tab index system.\n\t\t\t\t\t\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.\n\t\t\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ item.title || item.name }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ item.type === PATTERN_TYPES.theme && (\n\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t\t\ttext={ __( 'This pattern cannot be edited.' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-lock-icon\"\n\t\t\t\t\t\t\t\t\ticon={ lockSmall }\n\t\t\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Flex>\n\t\t\t\t</HStack>\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\tclassName=\"edit-site-patterns__dropdown\"\n\t\t\t\t\tpopoverProps={ { placement: 'bottom-end' } }\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tclassName: 'edit-site-patterns__button',\n\t\t\t\t\t\tdescribedBy: sprintf(\n\t\t\t\t\t\t\t/* translators: %s: pattern name */\n\t\t\t\t\t\t\t__( 'Action menu for %s pattern' ),\n\t\t\t\t\t\t\titem.title\n\t\t\t\t\t\t),\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t{ isCustomPattern && ! hasThemeFile && (\n\t\t\t\t\t\t\t\t<RenameMenuItem\n\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<DuplicateMenuItem\n\t\t\t\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\tlabel={ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ item.type === PATTERN_TYPES.user && (\n\t\t\t\t\t\t\t\t<MenuItem onClick={ () => exportAsJSON() }>\n\t\t\t\t\t\t\t\t\t{ __( 'Export as JSON' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t\t{ isCustomPattern && (\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tisDestructive={ ! hasThemeFile }\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tsetIsDeleteDialogOpen( true )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ hasThemeFile\n\t\t\t\t\t\t\t\t\t\t? __( 'Clear customizations' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Delete' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t</HStack>\n\n\t\t\t{ isDeleteDialogOpen && (\n\t\t\t\t<ConfirmDialog\n\t\t\t\t\tconfirmButtonText={ confirmButtonText }\n\t\t\t\t\tonConfirm={ deleteItem }\n\t\t\t\t\tonCancel={ () => setIsDeleteDialogOpen( false ) }\n\t\t\t\t>\n\t\t\t\t\t{ confirmPrompt }\n\t\t\t\t</ConfirmDialog>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n\nexport default memo( GridItem );\n","/**\n * Internal dependencies\n */\nimport GridItem from './grid-item';\n\nexport default function Grid( { categoryId, items, ...props } ) {\n\tif ( ! items?.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ul className=\"edit-site-patterns__grid\" { ...props }>\n\t\t\t{ items.map( ( item ) => (\n\t\t\t\t<GridItem\n\t\t\t\t\tkey={ item.name }\n\t\t\t\t\titem={ item }\n\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</ul>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nexport default function NoPatterns() {\n\treturn (\n\t\t<div className=\"edit-site-patterns__no-results\">\n\t\t\t{ __( 'No patterns found.' ) }\n\t\t</div>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useState, useDeferredValue, useId, useMemo } from '@wordpress/element';\nimport {\n\tSearchControl,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tFlexBlock,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalHeading as Heading,\n\t__experimentalText as Text,\n} from '@wordpress/components';\nimport { __, _x, isRTL } from '@wordpress/i18n';\nimport { chevronLeft, chevronRight } from '@wordpress/icons';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport {\n\tuseAsyncList,\n\tuseViewportMatch,\n\tuseDebouncedInput,\n} from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport PatternsHeader from './header';\nimport Grid from './grid';\nimport NoPatterns from './no-patterns';\nimport usePatterns from './use-patterns';\nimport SidebarButton from '../sidebar-button';\nimport { unlock } from '../../lock-unlock';\nimport { PATTERN_SYNC_TYPES, PATTERN_TYPES } from '../../utils/constants';\nimport Pagination from '../pagination';\n\nconst { useLocation, useHistory } = unlock( routerPrivateApis );\n\nconst SYNC_FILTERS = {\n\tall: _x( 'All', 'Option that shows all patterns' ),\n\t[ PATTERN_SYNC_TYPES.full ]: _x(\n\t\t'Synced',\n\t\t'Option that shows all synchronized patterns'\n\t),\n\t[ PATTERN_SYNC_TYPES.unsynced ]: _x(\n\t\t'Not synced',\n\t\t'Option that shows all patterns that are not synchronized'\n\t),\n};\n\nconst SYNC_DESCRIPTIONS = {\n\tall: '',\n\t[ PATTERN_SYNC_TYPES.full ]: __(\n\t\t'Patterns that are kept in sync across the site.'\n\t),\n\t[ PATTERN_SYNC_TYPES.unsynced ]: __(\n\t\t'Patterns that can be changed freely without affecting the site.'\n\t),\n};\n\nconst PAGE_SIZE = 20;\n\nexport default function PatternsList( { categoryId, type } ) {\n\tconst location = useLocation();\n\tconst history = useHistory();\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst [ filterValue, setFilterValue, delayedFilterValue ] =\n\t\tuseDebouncedInput( '' );\n\tconst deferredFilterValue = useDeferredValue( delayedFilterValue );\n\n\tconst [ syncFilter, setSyncFilter ] = useState( 'all' );\n\tconst [ currentPage, setCurrentPage ] = useState( 1 );\n\n\tconst deferredSyncedFilter = useDeferredValue( syncFilter );\n\n\tconst isUncategorizedThemePatterns =\n\t\ttype === PATTERN_TYPES.theme && categoryId === 'uncategorized';\n\n\tconst { patterns, isResolving } = usePatterns(\n\t\ttype,\n\t\tisUncategorizedThemePatterns ? '' : categoryId,\n\t\t{\n\t\t\tsearch: deferredFilterValue,\n\t\t\tsyncStatus:\n\t\t\t\tdeferredSyncedFilter === 'all'\n\t\t\t\t\t? undefined\n\t\t\t\t\t: deferredSyncedFilter,\n\t\t}\n\t);\n\n\tconst updateSearchFilter = ( value ) => {\n\t\tsetCurrentPage( 1 );\n\t\tsetFilterValue( value );\n\t};\n\n\tconst updateSyncFilter = ( value ) => {\n\t\tsetCurrentPage( 1 );\n\t\tsetSyncFilter( value );\n\t};\n\n\tconst id = useId();\n\tconst titleId = `${ id }-title`;\n\tconst descriptionId = `${ id }-description`;\n\n\tconst hasPatterns = patterns.length;\n\tconst title = SYNC_FILTERS[ syncFilter ];\n\tconst description = SYNC_DESCRIPTIONS[ syncFilter ];\n\n\tconst totalItems = patterns.length;\n\tconst pageIndex = currentPage - 1;\n\tconst numPages = Math.ceil( patterns.length / PAGE_SIZE );\n\n\tconst list = useMemo( () => {\n\t\treturn patterns.slice(\n\t\t\tpageIndex * PAGE_SIZE,\n\t\t\tpageIndex * PAGE_SIZE + PAGE_SIZE\n\t\t);\n\t}, [ pageIndex, patterns ] );\n\n\tconst asyncList = useAsyncList( list, { step: 10 } );\n\n\tconst changePage = ( page ) => {\n\t\tconst scrollContainer = document.querySelector( '.edit-site-patterns' );\n\t\tscrollContainer?.scrollTo( 0, 0 );\n\n\t\tsetCurrentPage( page );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<VStack className=\"edit-site-patterns__header\" spacing={ 6 }>\n\t\t\t\t<PatternsHeader\n\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\ttype={ type }\n\t\t\t\t\ttitleId={ titleId }\n\t\t\t\t\tdescriptionId={ descriptionId }\n\t\t\t\t/>\n\t\t\t\t<Flex alignment=\"stretch\" wrap>\n\t\t\t\t\t{ isMobileViewport && (\n\t\t\t\t\t\t<SidebarButton\n\t\t\t\t\t\t\ticon={ isRTL() ? chevronRight : chevronLeft }\n\t\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t// Go back in history if we came from the Patterns page.\n\t\t\t\t\t\t\t\t// Otherwise push a stack onto the history.\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\tlocation.state?.backPath === '/patterns'\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\thistory.back();\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\thistory.push( { path: '/patterns' } );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<FlexBlock className=\"edit-site-patterns__search-block\">\n\t\t\t\t\t\t<SearchControl\n\t\t\t\t\t\t\tclassName=\"edit-site-patterns__search\"\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tupdateSearchFilter( value )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tplaceholder={ __( 'Search patterns' ) }\n\t\t\t\t\t\t\tlabel={ __( 'Search patterns' ) }\n\t\t\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexBlock>\n\t\t\t\t\t{ type === PATTERN_TYPES.theme && (\n\t\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t\tclassName=\"edit-site-patterns__sync-status-filter\"\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\tlabel={ __( 'Filter by sync status' ) }\n\t\t\t\t\t\t\tvalue={ syncFilter }\n\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\tonChange={ ( value ) => updateSyncFilter( value ) }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ Object.entries( SYNC_FILTERS ).map(\n\t\t\t\t\t\t\t\t( [ key, label ] ) => (\n\t\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\t\tclassName=\"edit-site-patterns__sync-status-filter-option\"\n\t\t\t\t\t\t\t\t\t\tkey={ key }\n\t\t\t\t\t\t\t\t\t\tvalue={ key }\n\t\t\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t\t) }\n\t\t\t\t</Flex>\n\t\t\t</VStack>\n\t\t\t<VStack\n\t\t\t\tclassName=\"edit-site-patterns__section\"\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t\tspacing={ 6 }\n\t\t\t>\n\t\t\t\t{ syncFilter !== 'all' && (\n\t\t\t\t\t<VStack className=\"edit-site-patterns__section-header\">\n\t\t\t\t\t\t<Heading as=\"h3\" level={ 5 } id={ titleId }>\n\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t{ description ? (\n\t\t\t\t\t\t\t<Text variant=\"muted\" as=\"p\" id={ descriptionId }>\n\t\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t) : null }\n\t\t\t\t\t</VStack>\n\t\t\t\t) }\n\t\t\t\t{ hasPatterns && (\n\t\t\t\t\t<Grid\n\t\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\t\titems={ asyncList }\n\t\t\t\t\t\taria-labelledby={ titleId }\n\t\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! isResolving && ! hasPatterns && <NoPatterns /> }\n\t\t\t</VStack>\n\t\t\t{ numPages > 1 && (\n\t\t\t\t<Pagination\n\t\t\t\t\tclassName=\"edit-site-patterns__pagination\"\n\t\t\t\t\tcurrentPage={ currentPage }\n\t\t\t\t\tnumPages={ numPages }\n\t\t\t\t\tchangePage={ changePage }\n\t\t\t\t\ttotalItems={ totalItems }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport { filterOutDuplicatesByName } from './utils';\n\nexport default function usePatternSettings() {\n\tconst storedSettings = useSelect( ( select ) => {\n\t\tconst { getSettings } = unlock( select( editSiteStore ) );\n\t\treturn getSettings();\n\t}, [] );\n\n\tconst settingsBlockPatterns =\n\t\tstoredSettings.__experimentalAdditionalBlockPatterns ?? // WP 6.0\n\t\tstoredSettings.__experimentalBlockPatterns; // WP 5.9\n\n\tconst restBlockPatterns = useSelect(\n\t\t( select ) => select( coreStore ).getBlockPatterns(),\n\t\t[]\n\t);\n\n\tconst blockPatterns = useMemo(\n\t\t() =>\n\t\t\t[\n\t\t\t\t...( settingsBlockPatterns || [] ),\n\t\t\t\t...( restBlockPatterns || [] ),\n\t\t\t].filter( filterOutDuplicatesByName ),\n\t\t[ settingsBlockPatterns, restBlockPatterns ]\n\t);\n\n\tconst settings = useMemo( () => {\n\t\tconst { __experimentalAdditionalBlockPatterns, ...restStoredSettings } =\n\t\t\tstoredSettings;\n\n\t\treturn {\n\t\t\t...restStoredSettings,\n\t\t\t__experimentalBlockPatterns: blockPatterns,\n\t\t\t__unstableIsPreviewMode: true,\n\t\t};\n\t}, [ storedSettings, blockPatterns ] );\n\n\treturn settings;\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { getQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { PATTERN_DEFAULT_CATEGORY, PATTERN_TYPES } from '../../utils/constants';\nimport Page from '../page';\nimport PatternsList from './patterns-list';\nimport usePatternSettings from './use-pattern-settings';\nimport { unlock } from '../../lock-unlock';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\n\nexport default function PagePatterns() {\n\tconst { categoryType, categoryId } = getQueryArgs( window.location.href );\n\tconst type = categoryType || PATTERN_TYPES.theme;\n\tconst category = categoryId || PATTERN_DEFAULT_CATEGORY;\n\tconst settings = usePatternSettings();\n\n\t// Wrap everything in a block editor provider.\n\t// This ensures 'styles' that are needed for the previews are synced\n\t// from the site editor store to the block editor store.\n\treturn (\n\t\t<ExperimentalBlockEditorProvider settings={ settings }>\n\t\t\t<Page\n\t\t\t\tclassName=\"edit-site-patterns\"\n\t\t\t\ttitle={ __( 'Patterns content' ) }\n\t\t\t\thideTitleFromUI\n\t\t\t>\n\t\t\t\t<PatternsList\n\t\t\t\t\t// Reset the states when switching between categories and types.\n\t\t\t\t\tkey={ `${ type }-${ category }` }\n\t\t\t\t\ttype={ type }\n\t\t\t\t\tcategoryId={ category }\n\t\t\t\t/>\n\t\t\t</Page>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n","/**\n * Helper util to sort data by text fields, when sorting is done client side.\n *\n * @param {Object}   params            Function params.\n * @param {Object[]} params.data       Data to sort.\n * @param {Object}   params.view       Current view object.\n * @param {Object[]} params.fields     Array of available fields.\n * @param {string[]} params.textFields Array of the field ids to sort.\n *\n * @return {Object[]} Sorted data.\n */\nexport const sortByTextFields = ( { data, view, fields, textFields } ) => {\n\tconst sortedData = [ ...data ];\n\tconst fieldId = view.sort.field;\n\tif ( textFields.includes( fieldId ) ) {\n\t\tconst fieldToSort = fields.find( ( field ) => {\n\t\t\treturn field.id === fieldId;\n\t\t} );\n\t\tsortedData.sort( ( a, b ) => {\n\t\t\tconst valueA = fieldToSort.getValue( { item: a } ) ?? '';\n\t\t\tconst valueB = fieldToSort.getValue( { item: b } ) ?? '';\n\t\t\treturn view.sort.direction === 'asc'\n\t\t\t\t? valueA.localeCompare( valueB )\n\t\t\t\t: valueB.localeCompare( valueA );\n\t\t} );\n\t}\n\treturn sortedData;\n};\n\n/**\n * Helper util to get the paginated data and the paginateInfo needed,\n * when pagination is done client side.\n *\n * @param {Object}   params      Function params.\n * @param {Object[]} params.data Available data.\n * @param {Object}   params.view Current view object.\n *\n * @return {Object} Paginated data and paginationInfo.\n */\nexport function getPaginationResults( { data, view } ) {\n\tconst start = ( view.page - 1 ) * view.perPage;\n\tconst totalItems = data?.length || 0;\n\tdata = data?.slice( start, start + view.perPage );\n\treturn {\n\t\tdata,\n\t\tpaginationInfo: {\n\t\t\ttotalItems,\n\t\t\ttotalPages: Math.ceil( totalItems / view.perPage ),\n\t\t},\n\t};\n}\n","/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalHStack as HStack,\n\tSelectControl,\n} from '@wordpress/components';\nimport { createInterpolateElement, memo } from '@wordpress/element';\nimport { sprintf, __, _x } from '@wordpress/i18n';\nimport { chevronRight, chevronLeft } from '@wordpress/icons';\n\nconst Pagination = memo( function Pagination( {\n\tview,\n\tonChangeView,\n\tpaginationInfo: { totalItems = 0, totalPages },\n} ) {\n\tif ( ! totalItems || ! totalPages ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t!! totalItems &&\n\t\ttotalPages !== 1 && (\n\t\t\t<HStack\n\t\t\t\texpanded={ false }\n\t\t\t\tspacing={ 6 }\n\t\t\t\tjustify=\"end\"\n\t\t\t\tclassName=\"dataviews-pagination\"\n\t\t\t>\n\t\t\t\t<HStack justify=\"flex-start\" expanded={ false } spacing={ 2 }>\n\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t// translators: %1$s: Current page number, %2$s: Total number of pages.\n\t\t\t\t\t\t\t_x(\n\t\t\t\t\t\t\t\t'Page <CurrenPageControl /> of %2$s',\n\t\t\t\t\t\t\t\t'paging'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tview.page,\n\t\t\t\t\t\t\ttotalPages\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tCurrenPageControl: (\n\t\t\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t\t\taria-label={ __( 'Current page' ) }\n\t\t\t\t\t\t\t\t\tvalue={ view.page }\n\t\t\t\t\t\t\t\t\toptions={ Array.from(\n\t\t\t\t\t\t\t\t\t\tArray( totalPages )\n\t\t\t\t\t\t\t\t\t).map( ( _, i ) => {\n\t\t\t\t\t\t\t\t\t\tconst page = i + 1;\n\t\t\t\t\t\t\t\t\t\treturn { value: page, label: page };\n\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\tpage: +newValue,\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tsize={ 'compact' }\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t\t<HStack expanded={ false } spacing={ 1 }>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\tonChangeView( { ...view, page: view.page - 1 } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdisabled={ view.page === 1 }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\tlabel={ __( 'Previous page' ) }\n\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\t/>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\tonChangeView( { ...view, page: view.page + 1 } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdisabled={ view.page >= totalPages }\n\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\tlabel={ __( 'Next page' ) }\n\t\t\t\t\t\ticon={ chevronRight }\n\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\t/>\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t)\n\t);\n} );\n\nexport default Pagination;\n","/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { memo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\nimport { VIEW_LAYOUTS, LAYOUT_TABLE, SORTING_DIRECTIONS } from './constants';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuRadioItemV2: DropdownMenuRadioItem,\n\tDropdownMenuCheckboxItemV2: DropdownMenuCheckboxItem,\n\tDropdownMenuItemLabelV2: DropdownMenuItemLabel,\n} = unlock( componentsPrivateApis );\n\nfunction ViewTypeMenu( { view, onChangeView, supportedLayouts } ) {\n\tlet _availableViews = VIEW_LAYOUTS;\n\tif ( supportedLayouts ) {\n\t\t_availableViews = _availableViews.filter( ( _view ) =>\n\t\t\tsupportedLayouts.includes( _view.type )\n\t\t);\n\t}\n\tif ( _availableViews.length === 1 ) {\n\t\treturn null;\n\t}\n\tconst activeView = _availableViews.find( ( v ) => view.type === v.type );\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<DropdownMenuItem\n\t\t\t\t\tsuffix={\n\t\t\t\t\t\t<span aria-hidden=\"true\">{ activeView.label }</span>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t{ __( 'Layout' ) }\n\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t}\n\t\t>\n\t\t\t{ _availableViews.map( ( availableView ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuRadioItem\n\t\t\t\t\t\tkey={ availableView.type }\n\t\t\t\t\t\tvalue={ availableView.type }\n\t\t\t\t\t\tname=\"view-actions-available-view\"\n\t\t\t\t\t\tchecked={ availableView.type === view.type }\n\t\t\t\t\t\thideOnClick={ true }\n\t\t\t\t\t\tonChange={ ( e ) => {\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\ttype: e.target.value,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t{ availableView.label }\n\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t</DropdownMenuRadioItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenu>\n\t);\n}\n\nconst PAGE_SIZE_VALUES = [ 10, 20, 50, 100 ];\nfunction PageSizeMenu( { view, onChangeView } ) {\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<DropdownMenuItem\n\t\t\t\t\tsuffix={ <span aria-hidden=\"true\">{ view.perPage }</span> }\n\t\t\t\t>\n\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t{ /* TODO: probably label per view type. */ }\n\t\t\t\t\t\t{ __( 'Rows per page' ) }\n\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t}\n\t\t>\n\t\t\t{ PAGE_SIZE_VALUES.map( ( size ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuRadioItem\n\t\t\t\t\t\tkey={ size }\n\t\t\t\t\t\tvalue={ size }\n\t\t\t\t\t\tname=\"view-actions-page-size\"\n\t\t\t\t\t\tchecked={ view.perPage === size }\n\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t// `e.target.value` holds the same value as `size` but as a string,\n\t\t\t\t\t\t\t\t// so we use `size` directly to avoid parsing to int.\n\t\t\t\t\t\t\t\tperPage: size,\n\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<DropdownMenuItemLabel>{ size }</DropdownMenuItemLabel>\n\t\t\t\t\t</DropdownMenuRadioItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction FieldsVisibilityMenu( { view, onChangeView, fields } ) {\n\tconst hidableFields = fields.filter(\n\t\t( field ) =>\n\t\t\tfield.enableHiding !== false && field.id !== view.layout.mediaField\n\t);\n\tif ( ! hidableFields?.length ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<DropdownMenuItem>\n\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t{ __( 'Fields' ) }\n\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t}\n\t\t>\n\t\t\t{ hidableFields?.map( ( field ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuCheckboxItem\n\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\tvalue={ field.id }\n\t\t\t\t\t\tchecked={ ! view.hiddenFields?.includes( field.id ) }\n\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\thiddenFields: view.hiddenFields?.includes(\n\t\t\t\t\t\t\t\t\tfield.id\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t? view.hiddenFields.filter(\n\t\t\t\t\t\t\t\t\t\t\t( id ) => id !== field.id\n\t\t\t\t\t\t\t\t\t  )\n\t\t\t\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t\t\t\t...( view.hiddenFields || [] ),\n\t\t\t\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t\t  ],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t</DropdownMenuCheckboxItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction SortMenu( { fields, view, onChangeView } ) {\n\tconst sortableFields = fields.filter(\n\t\t( field ) => field.enableSorting !== false\n\t);\n\tif ( ! sortableFields?.length ) {\n\t\treturn null;\n\t}\n\tconst currentSortedField = fields.find(\n\t\t( field ) => field.id === view.sort?.field\n\t);\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<DropdownMenuItem\n\t\t\t\t\tsuffix={\n\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t{ currentSortedField?.header }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t{ __( 'Sort by' ) }\n\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t}\n\t\t>\n\t\t\t{ sortableFields?.map( ( field ) => {\n\t\t\t\tconst sortedDirection = view.sort?.direction;\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t<DropdownMenuItem>\n\t\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\tminWidth: '220px',\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ Object.entries( SORTING_DIRECTIONS ).map(\n\t\t\t\t\t\t\t( [ direction, info ] ) => {\n\t\t\t\t\t\t\t\tconst isChecked =\n\t\t\t\t\t\t\t\t\tcurrentSortedField !== undefined &&\n\t\t\t\t\t\t\t\t\tsortedDirection === direction &&\n\t\t\t\t\t\t\t\t\tfield.id === currentSortedField.id;\n\n\t\t\t\t\t\t\t\tconst value = `${ field.id }-${ direction }`;\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<DropdownMenuRadioItem\n\t\t\t\t\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\t\t\t\t\t// All sorting radio items share the same name, so that\n\t\t\t\t\t\t\t\t\t\t// selecting a sorting option automatically deselects the\n\t\t\t\t\t\t\t\t\t\t// previously selected one, even if it is displayed in\n\t\t\t\t\t\t\t\t\t\t// another submenu. The field and direction are passed via\n\t\t\t\t\t\t\t\t\t\t// the `value` prop.\n\t\t\t\t\t\t\t\t\t\tname=\"view-actions-sorting\"\n\t\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\t\tchecked={ isChecked }\n\t\t\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\tsort: {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfield: field.id,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdirection,\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t{ info.label }\n\t\t\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t</DropdownMenuRadioItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenu>\n\t);\n}\n\nconst ViewActions = memo( function ViewActions( {\n\tfields,\n\tview,\n\tonChangeView,\n\tsupportedLayouts,\n} ) {\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\ticon={\n\t\t\t\t\t\tVIEW_LAYOUTS.find( ( v ) => v.type === view.type )\n\t\t\t\t\t\t\t?.icon ||\n\t\t\t\t\t\tVIEW_LAYOUTS.find( ( v ) => v.type === LAYOUT_TABLE )\n\t\t\t\t\t\t\t.icon\n\t\t\t\t\t}\n\t\t\t\t\tlabel={ __( 'View options' ) }\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t<DropdownMenuGroup>\n\t\t\t\t{ window?.__experimentalAdminViews && (\n\t\t\t\t\t<ViewTypeMenu\n\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\tsupportedLayouts={ supportedLayouts }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<SortMenu\n\t\t\t\t\tfields={ fields }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t/>\n\t\t\t\t<FieldsVisibilityMenu\n\t\t\t\t\tfields={ fields }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t/>\n\t\t\t\t<PageSizeMenu view={ view } onChangeView={ onChangeView } />\n\t\t\t</DropdownMenuGroup>\n\t\t</DropdownMenu>\n\t);\n} );\n\nexport default ViewActions;\n","/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tprivateApis as componentsPrivateApis,\n\tIcon,\n} from '@wordpress/components';\nimport { chevronDown } from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Children, Fragment } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { OPERATOR_IN, OPERATOR_NOT_IN, OPERATORS } from './constants';\nimport { unlock } from './lock-unlock';\nimport { DropdownMenuRadioItemCustom } from './dropdown-menu-helper';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuSeparatorV2: DropdownMenuSeparator,\n\tDropdownMenuItemLabelV2: DropdownMenuItemLabel,\n\tDropdownMenuItemHelpTextV2: DropdownMenuItemHelpText,\n} = unlock( componentsPrivateApis );\n\nconst FilterText = ( { activeElement, filterInView, filter } ) => {\n\tif ( activeElement === undefined ) {\n\t\treturn filter.name;\n\t}\n\n\tif (\n\t\tactiveElement !== undefined &&\n\t\tfilterInView?.operator === OPERATOR_IN\n\t) {\n\t\treturn sprintf(\n\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Author is Admin\". */\n\t\t\t__( '%1$s is %2$s' ),\n\t\t\tfilter.name,\n\t\t\tactiveElement.label\n\t\t);\n\t}\n\n\tif (\n\t\tactiveElement !== undefined &&\n\t\tfilterInView?.operator === OPERATOR_NOT_IN\n\t) {\n\t\treturn sprintf(\n\t\t\t/* translators: 1: Filter name. 2: Filter value. e.g.: \"Author is not Admin\". */\n\t\t\t__( '%1$s is not %2$s' ),\n\t\t\tfilter.name,\n\t\t\tactiveElement.label\n\t\t);\n\t}\n\n\treturn sprintf(\n\t\t/* translators: 1: Filter name e.g.: \"Unknown status for Author\". */\n\t\t__( 'Unknown status for %1$s' ),\n\t\tfilter.name\n\t);\n};\n\nfunction WithSeparators( { children } ) {\n\treturn Children.toArray( children )\n\t\t.filter( Boolean )\n\t\t.map( ( child, i ) => (\n\t\t\t<Fragment key={ i }>\n\t\t\t\t{ i > 0 && <DropdownMenuSeparator /> }\n\t\t\t\t{ child }\n\t\t\t</Fragment>\n\t\t) );\n}\n\nexport default function FilterSummary( { filter, view, onChangeView } ) {\n\tconst filterInView = view.filters.find( ( f ) => f.field === filter.field );\n\tconst otherFilters = view.filters.filter(\n\t\t( f ) => f.field !== filter.field\n\t);\n\tconst activeElement = filter.elements.find(\n\t\t( element ) => element.value === filterInView?.value\n\t);\n\tconst activeOperator = filterInView?.operator || filter.operators[ 0 ];\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\tkey={ filter.field }\n\t\t\ttrigger={\n\t\t\t\t<Button variant=\"tertiary\" size=\"compact\" label={ filter.name }>\n\t\t\t\t\t<FilterText\n\t\t\t\t\t\tactiveElement={ activeElement }\n\t\t\t\t\t\tfilterInView={ filterInView }\n\t\t\t\t\t\tfilter={ filter }\n\t\t\t\t\t/>\n\t\t\t\t\t<Icon icon={ chevronDown } style={ { flexShrink: 0 } } />\n\t\t\t\t</Button>\n\t\t\t}\n\t\t>\n\t\t\t<WithSeparators>\n\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t{ filter.elements.map( ( element ) => {\n\t\t\t\t\t\tconst isActive = activeElement?.value === element.value;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<DropdownMenuRadioItemCustom\n\t\t\t\t\t\t\t\tkey={ element.value }\n\t\t\t\t\t\t\t\tname={ `filter-summary-${ filter.field }` }\n\t\t\t\t\t\t\t\tvalue={ element.value }\n\t\t\t\t\t\t\t\tchecked={ isActive }\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\t\t\tfilters: [\n\t\t\t\t\t\t\t\t\t\t\t...otherFilters,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tfield: filter.field,\n\t\t\t\t\t\t\t\t\t\t\t\toperator: activeOperator,\n\t\t\t\t\t\t\t\t\t\t\t\tvalue: isActive\n\t\t\t\t\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t: element.value,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t{ element.label }\n\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t{ !! element.description && (\n\t\t\t\t\t\t\t\t\t<DropdownMenuItemHelpText>\n\t\t\t\t\t\t\t\t\t\t{ element.description }\n\t\t\t\t\t\t\t\t\t</DropdownMenuItemHelpText>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</DropdownMenuRadioItemCustom>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</DropdownMenuGroup>\n\t\t\t\t{ filter.operators.length > 1 && (\n\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t{ OPERATORS[ activeOperator ]?.label }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t{ __( 'Conditions' ) }\n\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{ Object.entries( OPERATORS ).map(\n\t\t\t\t\t\t\t( [ operator, { label, key } ] ) => (\n\t\t\t\t\t\t\t\t<DropdownMenuRadioItemCustom\n\t\t\t\t\t\t\t\t\tkey={ key }\n\t\t\t\t\t\t\t\t\tname={ `filter-summary-${ filter.field }-conditions` }\n\t\t\t\t\t\t\t\t\tvalue={ operator }\n\t\t\t\t\t\t\t\t\tchecked={ activeOperator === operator }\n\t\t\t\t\t\t\t\t\tonChange={ ( e ) => {\n\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\t\t\t\tfilters: [\n\t\t\t\t\t\t\t\t\t\t\t\t...otherFilters,\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tfield: filter.field,\n\t\t\t\t\t\t\t\t\t\t\t\t\toperator: e.target.value,\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: filterInView?.value,\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t</DropdownMenuRadioItemCustom>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t) }\n\t\t\t</WithSeparators>\n\t\t</DropdownMenu>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport {\n\tprivateApis as componentsPrivateApis,\n\tButton,\n} from '@wordpress/components';\nimport { funnel } from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Children, Fragment } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\nimport { LAYOUT_LIST, OPERATORS } from './constants';\nimport { DropdownMenuRadioItemCustom } from './dropdown-menu-helper';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuRadioItemV2: DropdownMenuRadioItem,\n\tDropdownMenuSeparatorV2: DropdownMenuSeparator,\n\tDropdownMenuItemLabelV2: DropdownMenuItemLabel,\n\tDropdownMenuItemHelpTextV2: DropdownMenuItemHelpText,\n} = unlock( componentsPrivateApis );\n\nfunction WithSeparators( { children } ) {\n\treturn Children.toArray( children )\n\t\t.filter( Boolean )\n\t\t.map( ( child, i ) => (\n\t\t\t<Fragment key={ i }>\n\t\t\t\t{ i > 0 && <DropdownMenuSeparator /> }\n\t\t\t\t{ child }\n\t\t\t</Fragment>\n\t\t) );\n}\n\nexport default function AddFilter( { filters, view, onChangeView } ) {\n\tif ( filters.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tconst filterCount = view.filters.reduce( ( acc, filter ) => {\n\t\tif ( filter.value !== undefined ) {\n\t\t\treturn acc + 1;\n\t\t}\n\t\treturn acc;\n\t}, 0 );\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\tlabel={ __( 'Filters' ) }\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\ticon={ funnel }\n\t\t\t\t\tclassName=\"dataviews-filters-button\"\n\t\t\t\t>\n\t\t\t\t\t{ view.type === LAYOUT_LIST && filterCount > 0 ? (\n\t\t\t\t\t\t<span className=\"dataviews-filters-count\">\n\t\t\t\t\t\t\t{ filterCount }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) : null }\n\t\t\t\t</Button>\n\t\t\t}\n\t\t\tstyle={ {\n\t\t\t\tminWidth: '230px',\n\t\t\t} }\n\t\t>\n\t\t\t<WithSeparators>\n\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t{ filters.map( ( filter ) => {\n\t\t\t\t\t\tconst filterInView = view.filters.find(\n\t\t\t\t\t\t\t( f ) => f.field === filter.field\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst otherFilters = view.filters.filter(\n\t\t\t\t\t\t\t( f ) => f.field !== filter.field\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst activeElement = filter.elements.find(\n\t\t\t\t\t\t\t( element ) => element.value === filterInView?.value\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst activeOperator =\n\t\t\t\t\t\t\tfilterInView?.operator || filter.operators[ 0 ];\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\t\tkey={ filter.field }\n\t\t\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t\t\t\tactiveElement && (\n\t\t\t\t\t\t\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ activeOperator in\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tOPERATORS &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t`${ OPERATORS[ activeOperator ].label } ` }\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ activeElement.label }\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t{ filter.name }\n\t\t\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\tminWidth: '200px',\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<WithSeparators>\n\t\t\t\t\t\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t\t\t\t\t\t{ filter.elements.map( ( element ) => {\n\t\t\t\t\t\t\t\t\t\t\tconst isActive =\n\t\t\t\t\t\t\t\t\t\t\t\tactiveElement?.value ===\n\t\t\t\t\t\t\t\t\t\t\t\telement.value;\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<DropdownMenuRadioItemCustom\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ element.value }\n\t\t\t\t\t\t\t\t\t\t\t\t\tname={ `add-filter-${ filter.field }` }\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={ element.value }\n\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={ isActive }\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={ ( e ) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilters: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...otherFilters,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield: filter.field,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toperator:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tactiveOperator,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: isActive\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: e\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.target\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.value,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ element.label }\n\t\t\t\t\t\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ !! element.description && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<DropdownMenuItemHelpText>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telement.description\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</DropdownMenuItemHelpText>\n\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t</DropdownMenuRadioItemCustom>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\t</DropdownMenuGroup>\n\t\t\t\t\t\t\t\t\t{ filter.operators.length > 1 && (\n\t\t\t\t\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\t\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tOPERATORS[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tactiveOperator\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]?.label\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Conditions' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ Object.entries( OPERATORS ).map(\n\t\t\t\t\t\t\t\t\t\t\t\t( [\n\t\t\t\t\t\t\t\t\t\t\t\t\toperator,\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ label, key },\n\t\t\t\t\t\t\t\t\t\t\t\t] ) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<DropdownMenuRadioItem\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ key }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tname={ `add-filter-${ filter.field }-conditions` }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={ operator }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tactiveOperator ===\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toperator\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={ ( e ) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilters: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...otherFilters,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield: filter.field,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toperator:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.target\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.value,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: filterInView?.value,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</DropdownMenuRadioItem>\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</DropdownMenu>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\t\t\t\t\tkey={ 'reset-filter-' + filter.name }\n\t\t\t\t\t\t\t\t\t\tdisabled={ ! activeElement }\n\t\t\t\t\t\t\t\t\t\thideOnClick={ false }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\t\t\t\t\tfilters: view.filters.filter(\n\t\t\t\t\t\t\t\t\t\t\t\t\t( f ) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tf.field !== filter.field\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: 1: Filter name. e.g.: \"Reset Author\". */\n\t\t\t\t\t\t\t\t\t\t\t\t__( 'Reset %1$s' ),\n\t\t\t\t\t\t\t\t\t\t\t\tfilter.name.toLowerCase()\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t\t\t</WithSeparators>\n\t\t\t\t\t\t\t</DropdownMenu>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</DropdownMenuGroup>\n\t\t\t\t<DropdownMenuItem\n\t\t\t\t\tdisabled={\n\t\t\t\t\t\tview.search === '' && view.filters?.length === 0\n\t\t\t\t\t}\n\t\t\t\t\thideOnClick={ false }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\tfilters: [],\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t{ __( 'Reset filters' ) }\n\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t</DropdownMenuItem>\n\t\t\t</WithSeparators>\n\t\t</DropdownMenu>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nexport default function ResetFilter( { view, onChangeView } ) {\n\treturn (\n\t\t<Button\n\t\t\tdisabled={ view.search === '' && view.filters?.length === 0 }\n\t\t\t__experimentalIsFocusable\n\t\t\tsize=\"compact\"\n\t\t\tvariant=\"tertiary\"\n\t\t\tonClick={ () => {\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tpage: 1,\n\t\t\t\t\tsearch: '',\n\t\t\t\t\tfilters: [],\n\t\t\t\t} );\n\t\t\t} }\n\t\t>\n\t\t\t{ __( 'Reset filters' ) }\n\t\t</Button>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { memo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport FilterSummary from './filter-summary';\nimport AddFilter from './add-filter';\nimport ResetFilters from './reset-filters';\nimport {\n\tENUMERATION_TYPE,\n\tOPERATOR_IN,\n\tOPERATOR_NOT_IN,\n\tLAYOUT_LIST,\n} from './constants';\n\nconst sanitizeOperators = ( field ) => {\n\tlet operators = field.filterBy?.operators;\n\tif ( ! operators || ! Array.isArray( operators ) ) {\n\t\toperators = [ OPERATOR_IN, OPERATOR_NOT_IN ];\n\t}\n\treturn operators.filter( ( operator ) =>\n\t\t[ OPERATOR_IN, OPERATOR_NOT_IN ].includes( operator )\n\t);\n};\n\nconst Filters = memo( function Filters( { fields, view, onChangeView } ) {\n\tconst filters = [];\n\tfields.forEach( ( field ) => {\n\t\tif ( ! field.type ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst operators = sanitizeOperators( field );\n\t\tif ( operators.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch ( field.type ) {\n\t\t\tcase ENUMERATION_TYPE:\n\t\t\t\tif ( ! field.elements?.length ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tfilters.push( {\n\t\t\t\t\tfield: field.id,\n\t\t\t\t\tname: field.header,\n\t\t\t\t\telements: field.elements,\n\t\t\t\t\toperators,\n\t\t\t\t\tisVisible: view.filters.some(\n\t\t\t\t\t\t( f ) =>\n\t\t\t\t\t\t\tf.field === field.id &&\n\t\t\t\t\t\t\t[ OPERATOR_IN, OPERATOR_NOT_IN ].includes(\n\t\t\t\t\t\t\t\tf.operator\n\t\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t\t} );\n\t\t}\n\t} );\n\n\tconst addFilter = (\n\t\t<AddFilter\n\t\t\tkey=\"add-filter\"\n\t\t\tfilters={ filters }\n\t\t\tview={ view }\n\t\t\tonChangeView={ onChangeView }\n\t\t/>\n\t);\n\tconst filterComponents = [\n\t\taddFilter,\n\t\t...filters.map( ( filter ) => {\n\t\t\tif ( ! filter.isVisible || view.type === LAYOUT_LIST ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<FilterSummary\n\t\t\t\t\tkey={ filter.field }\n\t\t\t\t\tfilter={ filter }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t/>\n\t\t\t);\n\t\t} ),\n\t];\n\n\tif ( filterComponents.length > 1 && view.type !== LAYOUT_LIST ) {\n\t\tfilterComponents.push(\n\t\t\t<ResetFilters\n\t\t\t\tkey=\"reset-filters\"\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn filterComponents;\n} );\n\nexport default Filters;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect, useRef, memo } from '@wordpress/element';\nimport { SearchControl } from '@wordpress/components';\nimport { useDebouncedInput } from '@wordpress/compose';\n\nconst Search = memo( function Search( { label, view, onChangeView } ) {\n\tconst [ search, setSearch, debouncedSearch ] = useDebouncedInput(\n\t\tview.search\n\t);\n\tuseEffect( () => {\n\t\tsetSearch( view.search );\n\t}, [ view ] );\n\tconst onChangeViewRef = useRef( onChangeView );\n\tuseEffect( () => {\n\t\tonChangeViewRef.current = onChangeView;\n\t}, [ onChangeView ] );\n\tuseEffect( () => {\n\t\tonChangeViewRef.current( {\n\t\t\t...view,\n\t\t\tpage: 1,\n\t\t\tsearch: debouncedSearch,\n\t\t} );\n\t}, [ debouncedSearch ] );\n\tconst searchLabel = label || __( 'Filter list' );\n\treturn (\n\t\t<SearchControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\tonChange={ setSearch }\n\t\t\tvalue={ search }\n\t\t\tlabel={ searchLabel }\n\t\t\tplaceholder={ searchLabel }\n\t\t\tsize=\"compact\"\n\t\t/>\n\t);\n} );\n\nexport default Search;\n","/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { useMemo, useState, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Pagination from './pagination';\nimport ViewActions from './view-actions';\nimport Filters from './filters';\nimport Search from './search';\nimport { VIEW_LAYOUTS } from './constants';\n\nconst defaultGetItemId = ( item ) => item.id;\nconst defaultOnSelectionChange = () => {};\n\nexport default function DataViews( {\n\tview,\n\tonChangeView,\n\tfields,\n\tsearch = true,\n\tsearchLabel = undefined,\n\tactions,\n\tdata,\n\tgetItemId = defaultGetItemId,\n\tisLoading = false,\n\tpaginationInfo,\n\tsupportedLayouts,\n\tonSelectionChange = defaultOnSelectionChange,\n\tonDetailsChange = null,\n\tdeferredRendering = false,\n} ) {\n\tconst [ selection, setSelection ] = useState( [] );\n\n\tconst onSetSelection = useCallback(\n\t\t( items ) => {\n\t\t\tsetSelection( items.map( ( item ) => item.id ) );\n\t\t\tonSelectionChange( items );\n\t\t},\n\t\t[ setSelection, onSelectionChange ]\n\t);\n\n\tconst ViewComponent = VIEW_LAYOUTS.find(\n\t\t( v ) => v.type === view.type\n\t).component;\n\tconst _fields = useMemo( () => {\n\t\treturn fields.map( ( field ) => ( {\n\t\t\t...field,\n\t\t\trender: field.render || field.getValue,\n\t\t} ) );\n\t}, [ fields ] );\n\treturn (\n\t\t<div className=\"dataviews-wrapper\">\n\t\t\t<VStack spacing={ 0 } justify=\"flex-start\">\n\t\t\t\t<HStack\n\t\t\t\t\talignment=\"flex-start\"\n\t\t\t\t\tclassName=\"dataviews-filters__view-actions\"\n\t\t\t\t>\n\t\t\t\t\t<HStack justify=\"start\" wrap>\n\t\t\t\t\t\t{ search && (\n\t\t\t\t\t\t\t<Search\n\t\t\t\t\t\t\t\tlabel={ searchLabel }\n\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<Filters\n\t\t\t\t\t\t\tfields={ _fields }\n\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</HStack>\n\t\t\t\t\t<ViewActions\n\t\t\t\t\t\tfields={ _fields }\n\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\tsupportedLayouts={ supportedLayouts }\n\t\t\t\t\t/>\n\t\t\t\t</HStack>\n\t\t\t\t<ViewComponent\n\t\t\t\t\tfields={ _fields }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\tactions={ actions }\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\tisLoading={ isLoading }\n\t\t\t\t\tonSelectionChange={ onSetSelection }\n\t\t\t\t\tonDetailsChange={ onDetailsChange }\n\t\t\t\t\tselection={ selection }\n\t\t\t\t\tdeferredRendering={ deferredRendering }\n\t\t\t\t/>\n\t\t\t\t<Pagination\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\t/>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n","/**\n * External dependencies\n */\nimport { paramCase as kebabCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport { getQueryArgs } from '@wordpress/url';\nimport { downloadBlob } from '@wordpress/blob';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport {\n\tButton,\n\tTextControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalText as Text,\n} from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport {\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_DEFAULT_CATEGORY,\n} from '../../utils/constants';\nimport { CreateTemplatePartModalContents } from '../create-template-part-modal';\n\nconst { useHistory } = unlock( routerPrivateApis );\nconst { CreatePatternModalContents, useDuplicatePatternProps } =\n\tunlock( patternsPrivateApis );\n\nexport const exportJSONaction = {\n\tid: 'export-pattern',\n\tlabel: __( 'Export as JSON' ),\n\tisEligible: ( item ) => item.type === PATTERN_TYPES.user,\n\tcallback: ( item ) => {\n\t\tconst json = {\n\t\t\t__file: item.type,\n\t\t\ttitle: item.title || item.name,\n\t\t\tcontent: item.patternPost.content.raw,\n\t\t\tsyncStatus: item.patternPost.wp_pattern_sync_status,\n\t\t};\n\t\treturn downloadBlob(\n\t\t\t`${ kebabCase( item.title || item.name ) }.json`,\n\t\t\tJSON.stringify( json, null, 2 ),\n\t\t\t'application/json'\n\t\t);\n\t},\n};\n\nexport const renameAction = {\n\tid: 'rename-pattern',\n\tlabel: __( 'Rename' ),\n\tisEligible: ( item ) => {\n\t\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\t\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\t\tconst isCustomPattern =\n\t\t\tisUserPattern || ( isTemplatePart && item.isCustom );\n\t\tconst hasThemeFile = isTemplatePart && item.templatePart.has_theme_file;\n\t\treturn isCustomPattern && ! hasThemeFile;\n\t},\n\tRenderModal: ( { item, closeModal } ) => {\n\t\tconst [ title, setTitle ] = useState( () => item.title );\n\t\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\t\tuseDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tasync function onRename( event ) {\n\t\t\tevent.preventDefault();\n\t\t\ttry {\n\t\t\t\tawait editEntityRecord( 'postType', item.type, item.id, {\n\t\t\t\t\ttitle,\n\t\t\t\t} );\n\t\t\t\t// Update state before saving rerenders the list.\n\t\t\t\tsetTitle( '' );\n\t\t\t\tcloseModal();\n\t\t\t\t// Persist edited entity.\n\t\t\t\tawait saveEditedEntityRecord( 'postType', item.type, item.id, {\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t} );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\titem.type === TEMPLATE_PART_POST_TYPE\n\t\t\t\t\t\t? __( 'Template part renamed.' )\n\t\t\t\t\t\t: __( 'Pattern renamed.' ),\n\t\t\t\t\t{ type: 'snackbar' }\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tconst fallbackErrorMessage =\n\t\t\t\t\titem.type === TEMPLATE_PART_POST_TYPE\n\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t'An error occurred while renaming the template part.'\n\t\t\t\t\t\t  )\n\t\t\t\t\t\t: __( 'An error occurred while renaming the pattern.' );\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: fallbackErrorMessage;\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t}\n\t\treturn (\n\t\t\t<form onSubmit={ onRename }>\n\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t);\n\t},\n};\n\nconst canDeleteOrReset = ( item ) => {\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\treturn isUserPattern || ( isTemplatePart && item.isCustom );\n};\n\nexport const deleteAction = {\n\tid: 'delete-pattern',\n\tlabel: __( 'Delete' ),\n\tisEligible: ( item ) => {\n\t\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\t\tconst hasThemeFile = isTemplatePart && item.templatePart.has_theme_file;\n\t\treturn canDeleteOrReset( item ) && ! hasThemeFile;\n\t},\n\thideModalHeader: true,\n\tRenderModal: ( { item, closeModal } ) => {\n\t\tconst { __experimentalDeleteReusableBlock } =\n\t\t\tuseDispatch( reusableBlocksStore );\n\t\tconst { createErrorNotice, createSuccessNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst { removeTemplate } = useDispatch( editSiteStore );\n\n\t\tconst deletePattern = async () => {\n\t\t\ttry {\n\t\t\t\tawait __experimentalDeleteReusableBlock( item.id );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: The pattern's title e.g. 'Call to action'.\n\t\t\t\t\t\t__( '\"%s\" deleted.' ),\n\t\t\t\t\t\titem.title\n\t\t\t\t\t),\n\t\t\t\t\t{ type: 'snackbar', id: 'edit-site-patterns-success' }\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: __( 'An error occurred while deleting the pattern.' );\n\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tid: 'edit-site-patterns-error',\n\t\t\t\t} );\n\t\t\t}\n\t\t};\n\t\tconst deleteItem = () =>\n\t\t\titem.type === TEMPLATE_PART_POST_TYPE\n\t\t\t\t? removeTemplate( item )\n\t\t\t\t: deletePattern();\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t// translators: %s: The pattern or template part's title e.g. 'Call to action'.\n\t\t\t\t\t\t__( 'Are you sure you want to delete \"%s\"?' ),\n\t\t\t\t\t\tdecodeEntities( item.title || item.name )\n\t\t\t\t\t) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button variant=\"tertiary\" onClick={ closeModal }>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button variant=\"primary\" onClick={ deleteItem }>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nexport const resetAction = {\n\tid: 'reset-action',\n\tlabel: __( 'Clear customizations' ),\n\tisEligible: ( item ) => {\n\t\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\t\tconst hasThemeFile = isTemplatePart && item.templatePart.has_theme_file;\n\t\treturn canDeleteOrReset( item ) && hasThemeFile;\n\t},\n\thideModalHeader: true,\n\tRenderModal: ( { item, closeModal } ) => {\n\t\tconst { removeTemplate } = useDispatch( editSiteStore );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Are you sure you want to clear these customizations?'\n\t\t\t\t\t) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button variant=\"tertiary\" onClick={ closeModal }>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ () => removeTemplate( item ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Clear' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nexport const duplicatePatternAction = {\n\tid: 'duplicate-pattern',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible: ( item ) => item.type !== TEMPLATE_PART_POST_TYPE,\n\tmodalHeader: _x( 'Duplicate pattern', 'action label' ),\n\tRenderModal: ( { item, closeModal } ) => {\n\t\tconst { categoryId = PATTERN_DEFAULT_CATEGORY } = getQueryArgs(\n\t\t\twindow.location.href\n\t\t);\n\t\tconst isThemePattern = item.type === PATTERN_TYPES.theme;\n\t\tconst history = useHistory();\n\t\tfunction onPatternSuccess( { pattern } ) {\n\t\t\thistory.push( {\n\t\t\t\tcategoryType: PATTERN_TYPES.theme,\n\t\t\t\tcategoryId,\n\t\t\t\tpostType: PATTERN_TYPES.user,\n\t\t\t\tpostId: pattern.id,\n\t\t\t} );\n\t\t\tcloseModal();\n\t\t}\n\t\tconst duplicatedProps = useDuplicatePatternProps( {\n\t\t\tpattern: isThemePattern ? item : item.patternPost,\n\t\t\tonSuccess: onPatternSuccess,\n\t\t} );\n\t\treturn (\n\t\t\t<CreatePatternModalContents\n\t\t\t\tonClose={ closeModal }\n\t\t\t\tconfirmLabel={ _x( 'Duplicate', 'action label' ) }\n\t\t\t\t{ ...duplicatedProps }\n\t\t\t/>\n\t\t);\n\t},\n};\n\nexport const duplicateTemplatePartAction = {\n\tid: 'duplicate-template-part',\n\tlabel: _x( 'Duplicate', 'action label' ),\n\tisEligible: ( item ) => item.type === TEMPLATE_PART_POST_TYPE,\n\tmodalHeader: _x( 'Duplicate template part', 'action label' ),\n\tRenderModal: ( { item, closeModal } ) => {\n\t\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\t\tconst { categoryId = PATTERN_DEFAULT_CATEGORY } = getQueryArgs(\n\t\t\twindow.location.href\n\t\t);\n\t\tconst history = useHistory();\n\t\tasync function onTemplatePartSuccess( templatePart ) {\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The new template part's title e.g. 'Call to action (copy)'.\n\t\t\t\t\t__( '\"%s\" duplicated.' ),\n\t\t\t\t\titem.title\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar', id: 'edit-site-patterns-success' }\n\t\t\t);\n\t\t\thistory.push( {\n\t\t\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\t\t\tpostId: templatePart?.id,\n\t\t\t\tcategoryType: TEMPLATE_PART_POST_TYPE,\n\t\t\t\tcategoryId,\n\t\t\t} );\n\t\t\tcloseModal();\n\t\t}\n\t\treturn (\n\t\t\t<CreateTemplatePartModalContents\n\t\t\t\tblocks={ item.blocks }\n\t\t\t\tdefaultArea={ item.templatePart.area }\n\t\t\t\tdefaultTitle={ sprintf(\n\t\t\t\t\t/* translators: %s: Existing template part title */\n\t\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\t\titem.title\n\t\t\t\t) }\n\t\t\t\tonCreate={ onTemplatePartSuccess }\n\t\t\t\tonError={ closeModal }\n\t\t\t\tconfirmLabel={ _x( 'Duplicate', 'action label' ) }\n\t\t\t/>\n\t\t);\n\t},\n};\n","/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\tButton,\n\t__experimentalHeading as Heading,\n\tTooltip,\n\tFlex,\n} from '@wordpress/components';\nimport { getQueryArgs } from '@wordpress/url';\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tuseState,\n\tuseMemo,\n\tuseCallback,\n\tuseId,\n\tuseEffect,\n} from '@wordpress/element';\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tDataViews,\n\tsortByTextFields,\n\tgetPaginationResults,\n} from '@wordpress/dataviews';\nimport {\n\tIcon,\n\theader,\n\tfooter,\n\tsymbolFilled as uncategorized,\n\tsymbol,\n\tlockSmall,\n} from '@wordpress/icons';\nimport { usePrevious } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Page from '../page';\nimport {\n\tLAYOUT_GRID,\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_SYNC_TYPES,\n\tPATTERN_DEFAULT_CATEGORY,\n\tENUMERATION_TYPE,\n\tOPERATOR_IN,\n} from '../../utils/constants';\nimport {\n\texportJSONaction,\n\trenameAction,\n\tresetAction,\n\tdeleteAction,\n\tduplicatePatternAction,\n\tduplicateTemplatePartAction,\n} from './dataviews-pattern-actions';\nimport usePatternSettings from './use-pattern-settings';\nimport { unlock } from '../../lock-unlock';\nimport usePatterns from './use-patterns';\nimport PatternsHeader from './header';\nimport { useLink } from '../routes/link';\n\nconst { ExperimentalBlockEditorProvider, useGlobalStyle } = unlock(\n\tblockEditorPrivateApis\n);\n\nconst templatePartIcons = { header, footer, uncategorized };\nconst EMPTY_ARRAY = [];\nconst defaultConfigPerViewType = {\n\t[ LAYOUT_GRID ]: {\n\t\tmediaField: 'preview',\n\t\tprimaryField: 'title',\n\t},\n};\nconst DEFAULT_VIEW = {\n\ttype: LAYOUT_GRID,\n\tsearch: '',\n\tpage: 1,\n\tperPage: 20,\n\thiddenFields: [ 'sync-status' ],\n\tlayout: {\n\t\t...defaultConfigPerViewType[ LAYOUT_GRID ],\n\t},\n\tfilters: [],\n};\n\nconst SYNC_FILTERS = [\n\t{\n\t\tvalue: PATTERN_SYNC_TYPES.full,\n\t\tlabel: _x( 'Synced', 'Option that shows all synchronized patterns' ),\n\t\tdescription: __( 'Patterns that are kept in sync across the site.' ),\n\t},\n\t{\n\t\tvalue: PATTERN_SYNC_TYPES.unsynced,\n\t\tlabel: _x(\n\t\t\t'Not synced',\n\t\t\t'Option that shows all patterns that are not synchronized'\n\t\t),\n\t\tdescription: __(\n\t\t\t'Patterns that can be changed freely without affecting the site.'\n\t\t),\n\t},\n];\n\nfunction Preview( { item, viewType } ) {\n\tconst descriptionId = useId();\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\tconst isNonUserPattern = item.type === PATTERN_TYPES.theme;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tconst isEmpty = ! item.blocks?.length;\n\t// Only custom patterns or custom template parts can be renamed or deleted.\n\tconst isCustomPattern =\n\t\tisUserPattern || ( isTemplatePart && item.isCustom );\n\tconst ariaDescriptions = [];\n\tif ( isCustomPattern ) {\n\t\t// User patterns don't have descriptions, but can be edited and deleted, so include some help text.\n\t\tariaDescriptions.push(\n\t\t\t__( 'Press Enter to edit, or Delete to delete the pattern.' )\n\t\t);\n\t} else if ( item.description ) {\n\t\tariaDescriptions.push( item.description );\n\t}\n\n\tif ( isNonUserPattern ) {\n\t\tariaDescriptions.push(\n\t\t\t__( 'Theme & plugin patterns cannot be edited.' )\n\t\t);\n\t}\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tclassName={ `page-patterns-preview-field is-viewtype-${ viewType }` }\n\t\t\t\tstyle={ { backgroundColor } }\n\t\t\t>\n\t\t\t\t{ isEmpty && isTemplatePart && __( 'Empty template part' ) }\n\t\t\t\t{ isEmpty && ! isTemplatePart && __( 'Empty pattern' ) }\n\t\t\t\t{ ! isEmpty && <BlockPreview blocks={ item.blocks } /> }\n\t\t\t</div>\n\t\t\t{ ariaDescriptions.map( ( ariaDescription, index ) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={ index }\n\t\t\t\t\thidden\n\t\t\t\t\tid={ `${ descriptionId }-${ index }` }\n\t\t\t\t>\n\t\t\t\t\t{ ariaDescription }\n\t\t\t\t</div>\n\t\t\t) ) }\n\t\t</>\n\t);\n}\n\nfunction Title( { item, categoryId } ) {\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\tconst isNonUserPattern = item.type === PATTERN_TYPES.theme;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\tlet itemIcon;\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern ? item.id : item.name,\n\t\tcategoryId,\n\t\tcategoryType: isTemplatePart ? item.type : PATTERN_TYPES.theme,\n\t} );\n\tif ( ! isUserPattern && templatePartIcons[ categoryId ] ) {\n\t\titemIcon = templatePartIcons[ categoryId ];\n\t} else {\n\t\titemIcon =\n\t\t\titem.syncStatus === PATTERN_SYNC_TYPES.full ? symbol : undefined;\n\t}\n\treturn (\n\t\t<HStack alignment=\"center\" justify=\"flex-start\" spacing={ 2 }>\n\t\t\t{ itemIcon && ! isNonUserPattern && (\n\t\t\t\t<Tooltip\n\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t'Editing this pattern will also update anywhere it is used'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-icon\"\n\t\t\t\t\t\ticon={ itemIcon }\n\t\t\t\t\t/>\n\t\t\t\t</Tooltip>\n\t\t\t) }\n\t\t\t{ item.type === PATTERN_TYPES.theme && (\n\t\t\t\t<Tooltip\n\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\ttext={ __( 'This pattern cannot be edited.' ) }\n\t\t\t\t>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-lock-icon\"\n\t\t\t\t\t\ticon={ lockSmall }\n\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t/>\n\t\t\t\t</Tooltip>\n\t\t\t) }\n\t\t\t<Flex as=\"span\" gap={ 0 } justify=\"left\">\n\t\t\t\t{ item.type === PATTERN_TYPES.theme ? (\n\t\t\t\t\t<span className=\"dataviews-view-grid__title-field\">\n\t\t\t\t\t\t{ item.title }\n\t\t\t\t\t</span>\n\t\t\t\t) : (\n\t\t\t\t\t<Heading level={ 5 }>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\t\t// Required for the grid's roving tab index system.\n\t\t\t\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.\n\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__title-field\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ item.title || item.name }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</Heading>\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t</HStack>\n\t);\n}\n\nexport default function DataviewsPatterns() {\n\tconst { categoryType, categoryId = PATTERN_DEFAULT_CATEGORY } =\n\t\tgetQueryArgs( window.location.href );\n\tconst type = categoryType || PATTERN_TYPES.theme;\n\tconst [ view, setView ] = useState( DEFAULT_VIEW );\n\tconst isUncategorizedThemePatterns =\n\t\ttype === PATTERN_TYPES.theme && categoryId === 'uncategorized';\n\tconst previousCategoryId = usePrevious( categoryId );\n\tconst viewSyncStatus = view.filters?.find(\n\t\t( { field } ) => field === 'sync-status'\n\t)?.value;\n\tconst { patterns, isResolving } = usePatterns(\n\t\ttype,\n\t\tisUncategorizedThemePatterns ? '' : categoryId,\n\t\t{\n\t\t\tsearch: view.search,\n\t\t\tsyncStatus: viewSyncStatus,\n\t\t}\n\t);\n\tconst fields = useMemo( () => {\n\t\tconst _fields = [\n\t\t\t{\n\t\t\t\theader: __( 'Preview' ),\n\t\t\t\tid: 'preview',\n\t\t\t\trender: ( { item } ) => (\n\t\t\t\t\t<Preview item={ item } viewType={ view.type } />\n\t\t\t\t),\n\t\t\t\tenableSorting: false,\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Title' ),\n\t\t\t\tid: 'title',\n\t\t\t\tgetValue: ( { item } ) => item.title,\n\t\t\t\trender: ( { item } ) => (\n\t\t\t\t\t<Title item={ item } categoryId={ categoryId } />\n\t\t\t\t),\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t];\n\t\tif ( type === PATTERN_TYPES.theme ) {\n\t\t\t_fields.push( {\n\t\t\t\theader: __( 'Sync Status' ),\n\t\t\t\tid: 'sync-status',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\t// User patterns can have their sync statuses checked directly.\n\t\t\t\t\t// Non-user patterns are all unsynced for the time being.\n\t\t\t\t\treturn (\n\t\t\t\t\t\tSYNC_FILTERS.find(\n\t\t\t\t\t\t\t( { value } ) => value === item.syncStatus\n\t\t\t\t\t\t)?.label ||\n\t\t\t\t\t\tSYNC_FILTERS.find(\n\t\t\t\t\t\t\t( { value } ) =>\n\t\t\t\t\t\t\t\tvalue === PATTERN_SYNC_TYPES.unsynced\n\t\t\t\t\t\t).label\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\ttype: ENUMERATION_TYPE,\n\t\t\t\telements: SYNC_FILTERS,\n\t\t\t\tfilterBy: {\n\t\t\t\t\toperators: [ OPERATOR_IN ],\n\t\t\t\t},\n\t\t\t\tenableSorting: false,\n\t\t\t} );\n\t\t}\n\t\treturn _fields;\n\t}, [ view.type, categoryId, type ] );\n\t// Reset the page number when the category changes.\n\tuseEffect( () => {\n\t\tif ( previousCategoryId !== categoryId ) {\n\t\t\tsetView( DEFAULT_VIEW );\n\t\t}\n\t}, [ categoryId, previousCategoryId ] );\n\tconst { data, paginationInfo } = useMemo( () => {\n\t\tif ( ! patterns ) {\n\t\t\treturn {\n\t\t\t\tdata: EMPTY_ARRAY,\n\t\t\t\tpaginationInfo: { totalItems: 0, totalPages: 0 },\n\t\t\t};\n\t\t}\n\t\tlet filteredData = [ ...patterns ];\n\t\t// Handle sorting.\n\t\tif ( view.sort ) {\n\t\t\tfilteredData = sortByTextFields( {\n\t\t\t\tdata: filteredData,\n\t\t\t\tview,\n\t\t\t\tfields,\n\t\t\t\ttextFields: [ 'title', 'author' ],\n\t\t\t} );\n\t\t}\n\t\t// Handle pagination.\n\t\treturn getPaginationResults( {\n\t\t\tdata: filteredData,\n\t\t\tview,\n\t\t} );\n\t}, [ patterns, view, fields ] );\n\n\tconst actions = useMemo(\n\t\t() => [\n\t\t\trenameAction,\n\t\t\tduplicatePatternAction,\n\t\t\tduplicateTemplatePartAction,\n\t\t\texportJSONaction,\n\t\t\tresetAction,\n\t\t\tdeleteAction,\n\t\t],\n\t\t[]\n\t);\n\tconst onChangeView = useCallback(\n\t\t( newView ) => {\n\t\t\tif ( newView.type !== view.type ) {\n\t\t\t\tnewView = {\n\t\t\t\t\t...newView,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...defaultConfigPerViewType[ newView.type ],\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\t\t\tsetView( newView );\n\t\t},\n\t\t[ view.type, setView ]\n\t);\n\tconst id = useId();\n\tconst settings = usePatternSettings();\n\t// Wrap everything in a block editor provider.\n\t// This ensures 'styles' that are needed for the previews are synced\n\t// from the site editor store to the block editor store.\n\t// TODO: check if I add the provider in every preview like in templates...\n\treturn (\n\t\t<ExperimentalBlockEditorProvider settings={ settings }>\n\t\t\t<Page\n\t\t\t\ttitle={ __( 'Patterns content' ) }\n\t\t\t\tclassName=\"edit-site-page-patterns-dataviews\"\n\t\t\t\thideTitleFromUI\n\t\t\t>\n\t\t\t\t<PatternsHeader\n\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\ttype={ type }\n\t\t\t\t\ttitleId={ `${ id }-title` }\n\t\t\t\t\tdescriptionId={ `${ id }-description` }\n\t\t\t\t/>\n\t\t\t\t<DataViews\n\t\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\t\tfields={ fields }\n\t\t\t\t\tactions={ actions }\n\t\t\t\t\tdata={ data || EMPTY_ARRAY }\n\t\t\t\t\tgetItemId={ ( item ) => item.name }\n\t\t\t\t\tisLoading={ isResolving }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\tdeferredRendering={ true }\n\t\t\t\t\tsupportedLayouts={ [ LAYOUT_GRID ] }\n\t\t\t\t/>\n\t\t\t</Page>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n","export default function Table( { data, columns } ) {\n\treturn (\n\t\t<div className=\"edit-site-table-wrapper\">\n\t\t\t<table className=\"edit-site-table\">\n\t\t\t\t<thead>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t{ columns.map( ( column ) => (\n\t\t\t\t\t\t\t<th key={ column.header }>{ column.header }</th>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t<tbody>\n\t\t\t\t\t{ data.map( ( row, rowIndex ) => (\n\t\t\t\t\t\t<tr key={ rowIndex }>\n\t\t\t\t\t\t\t{ columns.map( ( column, columnIndex ) => (\n\t\t\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\tmaxWidth: column.maxWidth\n\t\t\t\t\t\t\t\t\t\t\t? column.maxWidth\n\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tkey={ columnIndex }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ column.cell( row ) }\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t) ) }\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t</div>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState } from '@wordpress/element';\nimport { Button } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport CreateTemplatePartModal from '../create-template-part-modal';\nimport { TEMPLATE_PART_POST_TYPE } from '../../utils/constants';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nexport default function AddNewTemplatePart() {\n\tconst { canCreate, postType } = useSelect( ( select ) => {\n\t\tconst { supportsTemplatePartsMode } =\n\t\t\tselect( editSiteStore ).getSettings();\n\t\treturn {\n\t\t\tcanCreate: ! supportsTemplatePartsMode,\n\t\t\tpostType: select( coreStore ).getPostType(\n\t\t\t\tTEMPLATE_PART_POST_TYPE\n\t\t\t),\n\t\t};\n\t}, [] );\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst history = useHistory();\n\n\tif ( ! canCreate || ! postType ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Button variant=\"primary\" onClick={ () => setIsModalOpen( true ) }>\n\t\t\t\t{ postType.labels.add_new_item }\n\t\t\t</Button>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<CreateTemplatePartModal\n\t\t\t\t\tcloseModal={ () => setIsModalOpen( false ) }\n\t\t\t\t\tblocks={ [] }\n\t\t\t\t\tonCreate={ ( templatePart ) => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\tpostId: templatePart.id,\n\t\t\t\t\t\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\t\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tonError={ () => setIsModalOpen( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport {\n\tVisuallyHidden,\n\t__experimentalHeading as Heading,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport Page from '../page';\nimport Table from '../table';\nimport Link from '../routes/link';\nimport AddedBy from '../list/added-by';\nimport TemplateActions from '../template-actions';\nimport AddNewTemplatePart from './add-new-template-part';\nimport { TEMPLATE_PART_POST_TYPE } from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nexport default function PageTemplateParts() {\n\tconst {\n\t\tparams: { didAccessPatternsPage },\n\t} = useLocation();\n\n\tconst { records: templateParts } = useEntityRecords(\n\t\t'postType',\n\t\tTEMPLATE_PART_POST_TYPE,\n\t\t{\n\t\t\tper_page: -1,\n\t\t}\n\t);\n\n\tconst columns = [\n\t\t{\n\t\t\theader: __( 'Template Part' ),\n\t\t\tcell: ( templatePart ) => (\n\t\t\t\t<VStack>\n\t\t\t\t\t<Heading as=\"h3\" level={ 5 }>\n\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\tparams={ {\n\t\t\t\t\t\t\t\tpostId: templatePart.id,\n\t\t\t\t\t\t\t\tpostType: templatePart.type,\n\t\t\t\t\t\t\t\tdidAccessPatternsPage: !! didAccessPatternsPage\n\t\t\t\t\t\t\t\t\t? 1\n\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tstate={ {\n\t\t\t\t\t\t\t\tbackPath: '/wp_template_part/all',\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ decodeEntities(\n\t\t\t\t\t\t\t\ttemplatePart.title?.rendered ||\n\t\t\t\t\t\t\t\t\ttemplatePart.slug\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Link>\n\t\t\t\t\t</Heading>\n\t\t\t\t</VStack>\n\t\t\t),\n\t\t\tmaxWidth: 400,\n\t\t},\n\t\t{\n\t\t\theader: __( 'Added by' ),\n\t\t\tcell: ( templatePart ) => (\n\t\t\t\t<AddedBy\n\t\t\t\t\tpostType={ templatePart.type }\n\t\t\t\t\tpostId={ templatePart.id }\n\t\t\t\t/>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\theader: <VisuallyHidden>{ __( 'Actions' ) }</VisuallyHidden>,\n\t\t\tcell: ( templatePart ) => (\n\t\t\t\t<TemplateActions\n\t\t\t\t\tpostType={ templatePart.type }\n\t\t\t\t\tpostId={ templatePart.id }\n\t\t\t\t/>\n\t\t\t),\n\t\t},\n\t];\n\n\treturn (\n\t\t<Page\n\t\t\ttitle={ __( 'Template Parts' ) }\n\t\t\tactions={ <AddNewTemplatePart /> }\n\t\t>\n\t\t\t{ templateParts && (\n\t\t\t\t<Table data={ templateParts } columns={ columns } />\n\t\t\t) }\n\t\t</Page>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { backup, trash } from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { useMemo, useState } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport {\n\tButton,\n\tTextControl,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport isTemplateRevertable from '../../utils/is-template-revertable';\nimport isTemplateRemovable from '../../utils/is-template-removable';\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nexport function useResetTemplateAction() {\n\tconst { revertTemplate } = useDispatch( editSiteStore );\n\tconst { saveEditedEntityRecord } = useDispatch( coreStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\treturn useMemo(\n\t\t() => ( {\n\t\t\tid: 'reset-template',\n\t\t\tlabel: __( 'Reset template' ),\n\t\t\tisPrimary: true,\n\t\t\ticon: backup,\n\t\t\tisEligible: isTemplateRevertable,\n\t\t\tasync callback( template ) {\n\t\t\t\ttry {\n\t\t\t\t\tawait revertTemplate( template, { allowUndo: false } );\n\t\t\t\t\tawait saveEditedEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\ttemplate.type,\n\t\t\t\t\t\ttemplate.id\n\t\t\t\t\t);\n\n\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t/* translators: The template/part's name. */\n\t\t\t\t\t\t\t__( '\"%s\" reverted.' ),\n\t\t\t\t\t\t\tdecodeEntities( template.title.rendered )\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'edit-site-template-reverted',\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t} catch ( error ) {\n\t\t\t\t\tconst fallbackErrorMessage =\n\t\t\t\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template.'\n\t\t\t\t\t\t\t  )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'An error occurred while reverting the template part.'\n\t\t\t\t\t\t\t  );\n\t\t\t\t\tconst errorMessage =\n\t\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t\t}\n\t\t\t},\n\t\t} ),\n\t\t[\n\t\t\tcreateErrorNotice,\n\t\t\tcreateSuccessNotice,\n\t\t\trevertTemplate,\n\t\t\tsaveEditedEntityRecord,\n\t\t]\n\t);\n}\n\nexport const deleteTemplateAction = {\n\tid: 'delete-template',\n\tlabel: __( 'Delete template' ),\n\tisPrimary: true,\n\ticon: trash,\n\tisEligible: isTemplateRemovable,\n\thideModalHeader: true,\n\tRenderModal: ( { item: template, closeModal } ) => {\n\t\tconst { removeTemplate } = useDispatch( editSiteStore );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t// translators: %s: The template or template part's title.\n\t\t\t\t\t\t__( 'Are you sure you want to delete \"%s\"?' ),\n\t\t\t\t\t\tdecodeEntities( template.title.rendered )\n\t\t\t\t\t) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button variant=\"tertiary\" onClick={ closeModal }>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\tremoveTemplate( template, {\n\t\t\t\t\t\t\t\tallowUndo: false,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nexport const renameTemplateAction = {\n\tid: 'rename-template',\n\tlabel: __( 'Rename' ),\n\tisEligible: ( template ) =>\n\t\tisTemplateRemovable( template ) && template.is_custom,\n\tRenderModal: ( { item: template, closeModal } ) => {\n\t\tconst title = decodeEntities( template.title.rendered );\n\t\tconst [ editedTitle, setEditedTitle ] = useState( title );\n\t\tconst {\n\t\t\teditEntityRecord,\n\t\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t\t} = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tasync function onTemplateRename( event ) {\n\t\t\tevent.preventDefault();\n\t\t\ttry {\n\t\t\t\tawait editEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\ttemplate.type,\n\t\t\t\t\ttemplate.id,\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: editedTitle,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\t// Update state before saving rerenders the list.\n\t\t\t\tsetEditedTitle( '' );\n\t\t\t\tcloseModal();\n\t\t\t\t// Persist edited entity.\n\t\t\t\tawait saveSpecifiedEntityEdits(\n\t\t\t\t\t'postType',\n\t\t\t\t\ttemplate.type,\n\t\t\t\t\ttemplate.id,\n\t\t\t\t\t[ 'title' ], // Only save title to avoid persisting other edits.\n\t\t\t\t\t{\n\t\t\t\t\t\tthrowOnError: true,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\t// TODO: this action will be reused in template parts list, so\n\t\t\t\t// let's keep this for a bit, even it's always a `template` now.\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? __( 'Template renamed.' )\n\t\t\t\t\t\t: __( 'Template part renamed.' ),\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tconst fallbackErrorMessage =\n\t\t\t\t\ttemplate.type === TEMPLATE_POST_TYPE\n\t\t\t\t\t\t? __( 'An error occurred while renaming the template.' )\n\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t'An error occurred while renaming the template part.'\n\t\t\t\t\t\t  );\n\t\t\t\tconst errorMessage =\n\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t: fallbackErrorMessage;\n\n\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t}\n\t\t}\n\t\treturn (\n\t\t\t<form onSubmit={ onTemplateRename }>\n\t\t\t\t<VStack spacing=\"5\">\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ editedTitle }\n\t\t\t\t\t\tonChange={ setEditedTitle }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button variant=\"tertiary\" onClick={ closeModal }>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button variant=\"primary\" type=\"submit\">\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t);\n\t},\n};\n","/**\n * WordPress dependencies\n */\nimport { external, trash, backup } from '@wordpress/icons';\nimport { addQueryArgs } from '@wordpress/url';\nimport { useDispatch } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useMemo } from '@wordpress/element';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport {\n\tButton,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nexport const trashPostAction = {\n\tid: 'move-to-trash',\n\tlabel: __( 'Move to Trash' ),\n\tisPrimary: true,\n\ticon: trash,\n\tisEligible( { status } ) {\n\t\treturn status !== 'trash';\n\t},\n\thideModalHeader: true,\n\tRenderModal: ( { item: post, closeModal } ) => {\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t// translators: %s: The page's title.\n\t\t\t\t\t\t__( 'Are you sure you want to delete \"%s\"?' ),\n\t\t\t\t\t\tdecodeEntities( post.title.rendered )\n\t\t\t\t\t) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t<Button variant=\"tertiary\" onClick={ closeModal }>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tawait deleteEntityRecord(\n\t\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: The page's title. */\n\t\t\t\t\t\t\t\t\t\t__( '\"%s\" moved to the Trash.' ),\n\t\t\t\t\t\t\t\t\t\tdecodeEntities( post.title.rendered )\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t\t\tid: 'edit-site-page-trashed',\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} catch ( error ) {\n\t\t\t\t\t\t\t\tconst errorMessage =\n\t\t\t\t\t\t\t\t\terror.message &&\n\t\t\t\t\t\t\t\t\terror.code !== 'unknown_error'\n\t\t\t\t\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving the page to the trash.'\n\t\t\t\t\t\t\t\t\t\t  );\n\n\t\t\t\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\nexport function usePermanentlyDeletePostAction() {\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\n\treturn useMemo(\n\t\t() => ( {\n\t\t\tid: 'permanently-delete',\n\t\t\tlabel: __( 'Permanently delete' ),\n\t\t\tisPrimary: true,\n\t\t\ticon: trash,\n\t\t\tisEligible( { status } ) {\n\t\t\t\treturn status === 'trash';\n\t\t\t},\n\t\t\tasync callback( post ) {\n\t\t\t\ttry {\n\t\t\t\t\tawait deleteEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t{ force: true },\n\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t);\n\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t/* translators: The posts's title. */\n\t\t\t\t\t\t\t__( '\"%s\" permanently deleted.' ),\n\t\t\t\t\t\t\tdecodeEntities( post.title.rendered )\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'edit-site-post-permanently-deleted',\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t} catch ( error ) {\n\t\t\t\t\tconst errorMessage =\n\t\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the post.'\n\t\t\t\t\t\t\t  );\n\n\t\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t\t}\n\t\t\t},\n\t\t} ),\n\t\t[ createSuccessNotice, createErrorNotice, deleteEntityRecord ]\n\t);\n}\n\nexport function useRestorePostAction() {\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\tuseDispatch( coreStore );\n\n\treturn useMemo(\n\t\t() => ( {\n\t\t\tid: 'restore',\n\t\t\tlabel: __( 'Restore' ),\n\t\t\tisPrimary: true,\n\t\t\ticon: backup,\n\t\t\tisEligible( { status } ) {\n\t\t\t\treturn status === 'trash';\n\t\t\t},\n\t\t\tasync callback( post ) {\n\t\t\t\tawait editEntityRecord( 'postType', post.type, post.id, {\n\t\t\t\t\tstatus: 'draft',\n\t\t\t\t} );\n\t\t\t\ttry {\n\t\t\t\t\tawait saveEditedEntityRecord(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t);\n\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t/* translators: The posts's title. */\n\t\t\t\t\t\t\t__( '\"%s\" has been restored.' ),\n\t\t\t\t\t\t\tdecodeEntities( post.title.rendered )\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'edit-site-post-restored',\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t} catch ( error ) {\n\t\t\t\t\tconst errorMessage =\n\t\t\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'An error occurred while restoring the post.'\n\t\t\t\t\t\t\t  );\n\n\t\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t\t}\n\t\t\t},\n\t\t} ),\n\t\t[\n\t\t\tcreateSuccessNotice,\n\t\t\tcreateErrorNotice,\n\t\t\teditEntityRecord,\n\t\t\tsaveEditedEntityRecord,\n\t\t]\n\t);\n}\n\nexport const viewPostAction = {\n\tid: 'view-post',\n\tlabel: __( 'View' ),\n\tisPrimary: true,\n\ticon: external,\n\tisEligible( post ) {\n\t\treturn post.status !== 'trash';\n\t},\n\tcallback( post ) {\n\t\tdocument.location.href = post.link;\n\t},\n};\n\nexport function useEditPostAction() {\n\tconst history = useHistory();\n\treturn useMemo(\n\t\t() => ( {\n\t\t\tid: 'edit-post',\n\t\t\tlabel: __( 'Edit' ),\n\t\t\tisEligible( { status } ) {\n\t\t\t\treturn status !== 'trash';\n\t\t\t},\n\t\t\tcallback( post ) {\n\t\t\t\thistory.push( {\n\t\t\t\t\tpostId: post.id,\n\t\t\t\t\tpostType: post.type,\n\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t} );\n\t\t\t},\n\t\t} ),\n\t\t[ history ]\n\t);\n}\nexport const postRevisionsAction = {\n\tid: 'view-post-revisions',\n\tlabel: __( 'View revisions' ),\n\tisPrimary: false,\n\tisEligible: ( post ) => {\n\t\tif ( post.status === 'trash' ) {\n\t\t\treturn false;\n\t\t}\n\t\tconst lastRevisionId =\n\t\t\tpost?._links?.[ 'predecessor-version' ]?.[ 0 ]?.id ?? null;\n\t\tconst revisionsCount =\n\t\t\tpost?._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0;\n\t\treturn lastRevisionId && revisionsCount > 1;\n\t},\n\tcallback( post ) {\n\t\tconst href = addQueryArgs( 'revision.php', {\n\t\t\trevision: post?._links?.[ 'predecessor-version' ]?.[ 0 ]?.id,\n\t\t} );\n\t\tdocument.location.href = href;\n\t},\n};\n","/**\n * WordPress dependencies\n */\nimport { useEffect, useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport useEditedEntityRecord from '../use-edited-entity-record';\n\nconst MAX_LOADING_TIME = 10000; // 10 seconds\n\nexport function useIsSiteEditorLoading() {\n\tconst { isLoaded: hasLoadedPost } = useEditedEntityRecord();\n\tconst [ loaded, setLoaded ] = useState( false );\n\tconst inLoadingPause = useSelect(\n\t\t( select ) => {\n\t\t\tconst hasResolvingSelectors =\n\t\t\t\tselect( coreStore ).hasResolvingSelectors();\n\t\t\treturn ! loaded && ! hasResolvingSelectors;\n\t\t},\n\t\t[ loaded ]\n\t);\n\n\t/*\n\t * If the maximum expected loading time has passed, we're marking the\n\t * editor as loaded, in order to prevent any failed requests from blocking\n\t * the editor canvas from appearing.\n\t */\n\tuseEffect( () => {\n\t\tlet timeout;\n\n\t\tif ( ! loaded ) {\n\t\t\ttimeout = setTimeout( () => {\n\t\t\t\tsetLoaded( true );\n\t\t\t}, MAX_LOADING_TIME );\n\t\t}\n\n\t\treturn () => {\n\t\t\tclearTimeout( timeout );\n\t\t};\n\t}, [ loaded ] );\n\n\tuseEffect( () => {\n\t\tif ( inLoadingPause ) {\n\t\t\t/*\n\t\t\t * We're using an arbitrary 1s timeout here to catch brief moments\n\t\t\t * without any resolving selectors that would result in displaying\n\t\t\t * brief flickers of loading state and loaded state.\n\t\t\t *\n\t\t\t * It's worth experimenting with different values, since this also\n\t\t\t * adds 1s of artificial delay after loading has finished.\n\t\t\t */\n\t\t\tconst timeout = setTimeout( () => {\n\t\t\t\tsetLoaded( true );\n\t\t\t}, 1000 );\n\n\t\t\treturn () => {\n\t\t\t\tclearTimeout( timeout );\n\t\t\t};\n\t\t}\n\t}, [ inLoadingPause ] );\n\n\treturn ! loaded || ! hasLoadedPost;\n}\n","/**\n * Internal dependencies\n */\nimport Editor from '../editor';\nimport { useInitEditedEntity } from '../sync-state-with-url/use-init-edited-entity-from-url';\nimport { useIsSiteEditorLoading } from '../layout/hooks';\n\nexport default function PostPreview( { postType, postId } ) {\n\tuseInitEditedEntity( {\n\t\tpostId,\n\t\tpostType,\n\t} );\n\tconst isEditorLoading = useIsSiteEditorLoading();\n\n\treturn <Editor isLoading={ isEditorLoading } />;\n}\n","/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tIcon,\n\t__experimentalView as View,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState, useMemo, useCallback } from '@wordpress/element';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\nimport { parse } from '@wordpress/blocks';\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tDataViews,\n\tsortByTextFields,\n\tgetPaginationResults,\n} from '@wordpress/dataviews';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport Page from '../page';\nimport Link from '../routes/link';\nimport AddNewTemplate from '../add-new-template';\nimport { useAddedBy, AvatarImage } from '../list/added-by';\nimport {\n\tTEMPLATE_POST_TYPE,\n\tENUMERATION_TYPE,\n\tOPERATOR_IN,\n\tOPERATOR_NOT_IN,\n\tLAYOUT_GRID,\n\tLAYOUT_TABLE,\n\tLAYOUT_LIST,\n} from '../../utils/constants';\nimport {\n\tuseResetTemplateAction,\n\tdeleteTemplateAction,\n\trenameTemplateAction,\n} from './template-actions';\nimport { postRevisionsAction } from '../actions';\nimport usePatternSettings from '../page-patterns/use-pattern-settings';\nimport { unlock } from '../../lock-unlock';\nimport PostPreview from '../post-preview';\n\nconst { ExperimentalBlockEditorProvider, useGlobalStyle } = unlock(\n\tblockEditorPrivateApis\n);\nconst { useHistory } = unlock( routerPrivateApis );\n\nconst EMPTY_ARRAY = [];\n\nconst defaultConfigPerViewType = {\n\t[ LAYOUT_TABLE ]: {},\n\t[ LAYOUT_GRID ]: {\n\t\tmediaField: 'preview',\n\t\tprimaryField: 'title',\n\t},\n\t[ LAYOUT_LIST ]: {\n\t\tprimaryField: 'title',\n\t\tmediaField: 'preview',\n\t},\n};\n\nconst DEFAULT_VIEW = {\n\ttype: LAYOUT_TABLE,\n\tsearch: '',\n\tpage: 1,\n\tperPage: 20,\n\t// All fields are visible by default, so it's\n\t// better to keep track of the hidden ones.\n\thiddenFields: [ 'preview' ],\n\tlayout: {},\n\tfilters: [],\n};\n\nfunction normalizeSearchInput( input = '' ) {\n\treturn removeAccents( input.trim().toLowerCase() );\n}\n\nfunction TemplateTitle( { item, viewType } ) {\n\tif ( viewType === LAYOUT_LIST ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ decodeEntities( item.title?.rendered ) || __( '(no title)' ) }\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<VStack spacing={ 1 }>\n\t\t\t<View as=\"span\" className=\"dataviews-view-grid__title-field\">\n\t\t\t\t<Link\n\t\t\t\t\tparams={ {\n\t\t\t\t\t\tpostId: item.id,\n\t\t\t\t\t\tpostType: item.type,\n\t\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ decodeEntities( item.title?.rendered ) ||\n\t\t\t\t\t\t__( '(no title)' ) }\n\t\t\t\t</Link>\n\t\t\t</View>\n\t\t</VStack>\n\t);\n}\n\nfunction AuthorField( { item, viewType } ) {\n\tconst { text, icon, imageUrl } = useAddedBy( item.type, item.id );\n\tconst withIcon = viewType !== LAYOUT_LIST;\n\n\treturn (\n\t\t<HStack alignment=\"left\" spacing={ 1 }>\n\t\t\t{ withIcon && imageUrl && <AvatarImage imageUrl={ imageUrl } /> }\n\t\t\t{ withIcon && ! imageUrl && (\n\t\t\t\t<div className=\"edit-site-list-added-by__icon\">\n\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<span>{ text }</span>\n\t\t</HStack>\n\t);\n}\n\nfunction TemplatePreview( { content, viewType } ) {\n\tconst settings = usePatternSettings();\n\tconst [ backgroundColor = 'white' ] = useGlobalStyle( 'color.background' );\n\tconst blocks = useMemo( () => {\n\t\treturn parse( content );\n\t}, [ content ] );\n\tif ( ! blocks?.length ) {\n\t\treturn null;\n\t}\n\t// Wrap everything in a block editor provider to ensure 'styles' that are needed\n\t// for the previews are synced between the site editor store and the block editor store.\n\t// Additionally we need to have the `__experimentalBlockPatterns` setting in order to\n\t// render patterns inside the previews.\n\t// TODO: Same approach is used in the patterns list and it becomes obvious that some of\n\t// the block editor settings are needed in context where we don't have the block editor.\n\t// Explore how we can solve this in a better way.\n\treturn (\n\t\t<ExperimentalBlockEditorProvider settings={ settings }>\n\t\t\t<div\n\t\t\t\tclassName={ `page-templates-preview-field is-viewtype-${ viewType }` }\n\t\t\t\tstyle={ { backgroundColor } }\n\t\t\t>\n\t\t\t\t<BlockPreview blocks={ blocks } />\n\t\t\t</div>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n\nexport default function DataviewsTemplates() {\n\tconst [ templateId, setTemplateId ] = useState( null );\n\tconst [ view, setView ] = useState( DEFAULT_VIEW );\n\tconst { records: allTemplates, isResolving: isLoadingData } =\n\t\tuseEntityRecords( 'postType', TEMPLATE_POST_TYPE, {\n\t\t\tper_page: -1,\n\t\t} );\n\tconst history = useHistory();\n\n\tconst onSelectionChange = useCallback(\n\t\t( items ) =>\n\t\t\tsetTemplateId( items?.length === 1 ? items[ 0 ].id : null ),\n\t\t[ setTemplateId ]\n\t);\n\n\tconst authors = useMemo( () => {\n\t\tif ( ! allTemplates ) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\tconst authorsSet = new Set();\n\t\tallTemplates.forEach( ( template ) => {\n\t\t\tauthorsSet.add( template.author_text );\n\t\t} );\n\t\treturn Array.from( authorsSet ).map( ( author ) => ( {\n\t\t\tvalue: author,\n\t\t\tlabel: author,\n\t\t} ) );\n\t}, [ allTemplates ] );\n\n\tconst fields = useMemo(\n\t\t() => [\n\t\t\t{\n\t\t\t\theader: __( 'Preview' ),\n\t\t\t\tid: 'preview',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<TemplatePreview\n\t\t\t\t\t\t\tcontent={ item.content.raw }\n\t\t\t\t\t\t\tviewType={ view.type }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tminWidth: 120,\n\t\t\t\tmaxWidth: 120,\n\t\t\t\tenableSorting: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Template' ),\n\t\t\t\tid: 'title',\n\t\t\t\tgetValue: ( { item } ) => item.title?.rendered,\n\t\t\t\trender: ( { item } ) => (\n\t\t\t\t\t<TemplateTitle item={ item } viewType={ view.type } />\n\t\t\t\t),\n\t\t\t\tmaxWidth: 400,\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Description' ),\n\t\t\t\tid: 'description',\n\t\t\t\tgetValue: ( { item } ) => item.description,\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn item.description ? (\n\t\t\t\t\t\tdecodeEntities( item.description )\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Text variant=\"muted\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t&#8212;\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t\t\t\t{ __( 'No description.' ) }\n\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t</>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tmaxWidth: 200,\n\t\t\t\tenableSorting: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Author' ),\n\t\t\t\tid: 'author',\n\t\t\t\tgetValue: ( { item } ) => item.author_text,\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn <AuthorField viewType={ view.type } item={ item } />;\n\t\t\t\t},\n\t\t\t\tenableHiding: false,\n\t\t\t\ttype: ENUMERATION_TYPE,\n\t\t\t\telements: authors,\n\t\t\t},\n\t\t],\n\t\t[ authors, view.type ]\n\t);\n\n\tconst { data, paginationInfo } = useMemo( () => {\n\t\tif ( ! allTemplates ) {\n\t\t\treturn {\n\t\t\t\tdata: EMPTY_ARRAY,\n\t\t\t\tpaginationInfo: { totalItems: 0, totalPages: 0 },\n\t\t\t};\n\t\t}\n\t\tlet filteredTemplates = [ ...allTemplates ];\n\t\t// Handle global search.\n\t\tif ( view.search ) {\n\t\t\tconst normalizedSearch = normalizeSearchInput( view.search );\n\t\t\tfilteredTemplates = filteredTemplates.filter( ( item ) => {\n\t\t\t\tconst title = item.title?.rendered || item.slug;\n\t\t\t\treturn (\n\t\t\t\t\tnormalizeSearchInput( title ).includes(\n\t\t\t\t\t\tnormalizedSearch\n\t\t\t\t\t) ||\n\t\t\t\t\tnormalizeSearchInput( item.description ).includes(\n\t\t\t\t\t\tnormalizedSearch\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\t// Handle filters.\n\t\tif ( view.filters.length > 0 ) {\n\t\t\tview.filters.forEach( ( filter ) => {\n\t\t\t\tif (\n\t\t\t\t\tfilter.field === 'author' &&\n\t\t\t\t\tfilter.operator === OPERATOR_IN &&\n\t\t\t\t\t!! filter.value\n\t\t\t\t) {\n\t\t\t\t\tfilteredTemplates = filteredTemplates.filter( ( item ) => {\n\t\t\t\t\t\treturn item.author_text === filter.value;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.field === 'author' &&\n\t\t\t\t\tfilter.operator === OPERATOR_NOT_IN &&\n\t\t\t\t\t!! filter.value\n\t\t\t\t) {\n\t\t\t\t\tfilteredTemplates = filteredTemplates.filter( ( item ) => {\n\t\t\t\t\t\treturn item.author_text !== filter.value;\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Handle sorting.\n\t\tif ( view.sort ) {\n\t\t\tfilteredTemplates = sortByTextFields( {\n\t\t\t\tdata: filteredTemplates,\n\t\t\t\tview,\n\t\t\t\tfields,\n\t\t\t\ttextFields: [ 'title' ],\n\t\t\t} );\n\t\t}\n\t\t// Handle pagination.\n\t\treturn getPaginationResults( {\n\t\t\tdata: filteredTemplates,\n\t\t\tview,\n\t\t} );\n\t}, [ allTemplates, view, fields ] );\n\n\tconst resetTemplateAction = useResetTemplateAction();\n\tconst actions = useMemo(\n\t\t() => [\n\t\t\tresetTemplateAction,\n\t\t\tdeleteTemplateAction,\n\t\t\trenameTemplateAction,\n\t\t\tpostRevisionsAction,\n\t\t],\n\t\t[ resetTemplateAction ]\n\t);\n\n\tconst onChangeView = useCallback(\n\t\t( newView ) => {\n\t\t\tif ( newView.type !== view.type ) {\n\t\t\t\tnewView = {\n\t\t\t\t\t...newView,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...defaultConfigPerViewType[ newView.type ],\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tsetView( newView );\n\t\t},\n\t\t[ view.type, setView ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<Page\n\t\t\t\tclassName={\n\t\t\t\t\tview.type === LAYOUT_LIST\n\t\t\t\t\t\t? 'edit-site-template-pages-list-view'\n\t\t\t\t\t\t: null\n\t\t\t\t}\n\t\t\t\ttitle={ __( 'Templates' ) }\n\t\t\t\tactions={\n\t\t\t\t\t<AddNewTemplate\n\t\t\t\t\t\ttemplateType={ TEMPLATE_POST_TYPE }\n\t\t\t\t\t\tshowIcon={ false }\n\t\t\t\t\t\ttoggleProps={ { variant: 'primary' } }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<DataViews\n\t\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\t\tfields={ fields }\n\t\t\t\t\tactions={ actions }\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tisLoading={ isLoadingData }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\tdeferredRendering={\n\t\t\t\t\t\t! view.hiddenFields?.includes( 'preview' )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</Page>\n\t\t\t{ view.type === LAYOUT_LIST && (\n\t\t\t\t<Page>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"edit-site-template-pages-preview\"\n\t\t\t\t\t\ttabIndex={ 0 }\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\tconst { keyCode } = event;\n\t\t\t\t\t\t\tif ( keyCode === ENTER || keyCode === SPACE ) {\n\t\t\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\t\t\tpostId: templateId,\n\t\t\t\t\t\t\t\t\tpostType: TEMPLATE_POST_TYPE,\n\t\t\t\t\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\t\tpostId: templateId,\n\t\t\t\t\t\t\t\tpostType: TEMPLATE_POST_TYPE,\n\t\t\t\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{ templateId !== null ? (\n\t\t\t\t\t\t\t<PostPreview\n\t\t\t\t\t\t\t\tpostId={ templateId }\n\t\t\t\t\t\t\t\tpostType={ TEMPLATE_POST_TYPE }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\t\ttextAlign: 'center',\n\t\t\t\t\t\t\t\t\theight: '100%',\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<p>{ __( 'Select a template to preview' ) }</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t</Page>\n\t\t\t) }\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useEntityRecord } from '@wordpress/core-data';\n\nfunction Media( { id, size = [ 'large', 'medium', 'thumbnail' ], ...props } ) {\n\tconst { record: media } = useEntityRecord( 'root', 'media', id );\n\tconst currentSize = size.find(\n\t\t( s ) => !! media?.media_details?.sizes[ s ]\n\t);\n\tconst mediaDetails = media?.media_details?.sizes[ currentSize ];\n\tif ( ! mediaDetails ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<img\n\t\t\t{ ...props }\n\t\t\tsrc={ mediaDetails.source_url }\n\t\t\talt={ media.alt_text }\n\t\t/>\n\t);\n}\n\nexport default Media;\n","/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalView as View,\n\t__experimentalVStack as VStack,\n\tButton,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useEntityRecords, store as coreStore } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useState, useMemo, useCallback, useEffect } from '@wordpress/element';\nimport { dateI18n, getDate, getSettings } from '@wordpress/date';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { DataViews } from '@wordpress/dataviews';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport Page from '../page';\nimport Link from '../routes/link';\nimport {\n\tDEFAULT_VIEWS,\n\tDEFAULT_CONFIG_PER_VIEW_TYPE,\n} from '../sidebar-dataviews/default-views';\nimport {\n\tENUMERATION_TYPE,\n\tLAYOUT_GRID,\n\tLAYOUT_TABLE,\n\tLAYOUT_LIST,\n\tOPERATOR_IN,\n\tOPERATOR_NOT_IN,\n} from '../../utils/constants';\n\nimport {\n\ttrashPostAction,\n\tusePermanentlyDeletePostAction,\n\tuseRestorePostAction,\n\tpostRevisionsAction,\n\tviewPostAction,\n\tuseEditPostAction,\n} from '../actions';\nimport PostPreview from '../post-preview';\nimport AddNewPageModal from '../add-new-page';\nimport Media from '../media';\nimport { unlock } from '../../lock-unlock';\nconst { useLocation, useHistory } = unlock( routerPrivateApis );\n\nconst EMPTY_ARRAY = [];\n\nfunction useView( type ) {\n\tconst {\n\t\tparams: { activeView = 'all', isCustom = 'false' },\n\t} = useLocation();\n\tconst selectedDefaultView =\n\t\tisCustom === 'false' &&\n\t\tDEFAULT_VIEWS[ type ].find( ( { slug } ) => slug === activeView )?.view;\n\tconst [ view, setView ] = useState( selectedDefaultView );\n\n\tuseEffect( () => {\n\t\tif ( selectedDefaultView ) {\n\t\t\tsetView( selectedDefaultView );\n\t\t}\n\t}, [ selectedDefaultView ] );\n\tconst editedViewRecord = useSelect(\n\t\t( select ) => {\n\t\t\tif ( isCustom !== 'true' ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { getEditedEntityRecord } = select( coreStore );\n\t\t\tconst dataviewRecord = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_dataviews',\n\t\t\t\tNumber( activeView )\n\t\t\t);\n\t\t\treturn dataviewRecord;\n\t\t},\n\t\t[ activeView, isCustom ]\n\t);\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst customView = useMemo( () => {\n\t\treturn (\n\t\t\teditedViewRecord?.content && JSON.parse( editedViewRecord?.content )\n\t\t);\n\t}, [ editedViewRecord?.content ] );\n\tconst setCustomView = useCallback(\n\t\t( viewToSet ) => {\n\t\t\teditEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_dataviews',\n\t\t\t\teditedViewRecord?.id,\n\t\t\t\t{\n\t\t\t\t\tcontent: JSON.stringify( viewToSet ),\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\t\t[ editEntityRecord, editedViewRecord?.id ]\n\t);\n\n\tif ( isCustom === 'false' ) {\n\t\treturn [ view, setView ];\n\t} else if ( isCustom === 'true' && customView ) {\n\t\treturn [ customView, setCustomView ];\n\t}\n\t// Loading state where no the view was not found on custom views or default views.\n\treturn [ DEFAULT_VIEWS[ type ][ 0 ].view, setView ];\n}\n\n// See https://github.com/WordPress/gutenberg/issues/55886\n// We do not support custom statutes at the moment.\nconst STATUSES = [\n\t{ value: 'draft', label: __( 'Draft' ) },\n\t{ value: 'future', label: __( 'Scheduled' ) },\n\t{ value: 'pending', label: __( 'Pending Review' ) },\n\t{ value: 'private', label: __( 'Private' ) },\n\t{ value: 'publish', label: __( 'Published' ) },\n\t{ value: 'trash', label: __( 'Trash' ) },\n];\nconst DEFAULT_STATUSES = 'draft,future,pending,private,publish'; // All but 'trash'.\n\nexport default function PagePages() {\n\tconst postType = 'page';\n\tconst [ view, setView ] = useView( postType );\n\tconst [ pageId, setPageId ] = useState( null );\n\tconst history = useHistory();\n\n\tconst onSelectionChange = useCallback(\n\t\t( items ) => setPageId( items?.length === 1 ? items[ 0 ].id : null ),\n\t\t[ setPageId ]\n\t);\n\n\tconst onDetailsChange = useCallback(\n\t\t( items ) => {\n\t\t\tif ( !! postType && items?.length === 1 ) {\n\t\t\t\thistory.push( {\n\t\t\t\t\tpostId: items[ 0 ].id,\n\t\t\t\t\tpostType,\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[ history, postType ]\n\t);\n\n\tconst queryArgs = useMemo( () => {\n\t\tconst filters = {};\n\t\tview.filters.forEach( ( filter ) => {\n\t\t\tif (\n\t\t\t\tfilter.field === 'status' &&\n\t\t\t\tfilter.operator === OPERATOR_IN\n\t\t\t) {\n\t\t\t\tfilters.status = filter.value;\n\t\t\t}\n\t\t\tif (\n\t\t\t\tfilter.field === 'author' &&\n\t\t\t\tfilter.operator === OPERATOR_IN\n\t\t\t) {\n\t\t\t\tfilters.author = filter.value;\n\t\t\t} else if (\n\t\t\t\tfilter.field === 'author' &&\n\t\t\t\tfilter.operator === OPERATOR_NOT_IN\n\t\t\t) {\n\t\t\t\tfilters.author_exclude = filter.value;\n\t\t\t}\n\t\t} );\n\t\t// We want to provide a different default item for the status filter\n\t\t// than the REST API provides.\n\t\tif ( ! filters.status || filters.status === '' ) {\n\t\t\tfilters.status = DEFAULT_STATUSES;\n\t\t}\n\n\t\treturn {\n\t\t\tper_page: view.perPage,\n\t\t\tpage: view.page,\n\t\t\t_embed: 'author',\n\t\t\torder: view.sort?.direction,\n\t\t\torderby: view.sort?.field,\n\t\t\tsearch: view.search,\n\t\t\t...filters,\n\t\t};\n\t}, [ view ] );\n\tconst {\n\t\trecords: pages,\n\t\tisResolving: isLoadingPages,\n\t\ttotalItems,\n\t\ttotalPages,\n\t} = useEntityRecords( 'postType', postType, queryArgs );\n\n\tconst { records: authors, isResolving: isLoadingAuthors } =\n\t\tuseEntityRecords( 'root', 'user' );\n\n\tconst paginationInfo = useMemo(\n\t\t() => ( {\n\t\t\ttotalItems,\n\t\t\ttotalPages,\n\t\t} ),\n\t\t[ totalItems, totalPages ]\n\t);\n\n\tconst fields = useMemo(\n\t\t() => [\n\t\t\t{\n\t\t\t\tid: 'featured-image',\n\t\t\t\theader: __( 'Featured Image' ),\n\t\t\t\tgetValue: ( { item } ) => item.featured_media,\n\t\t\t\trender: ( { item } ) =>\n\t\t\t\t\t!! item.featured_media ? (\n\t\t\t\t\t\t<Media\n\t\t\t\t\t\t\tclassName=\"edit-site-page-pages__featured-image\"\n\t\t\t\t\t\t\tid={ item.featured_media }\n\t\t\t\t\t\t\tsize={\n\t\t\t\t\t\t\t\tview.type === LAYOUT_GRID\n\t\t\t\t\t\t\t\t\t? [ 'large', 'full', 'medium', 'thumbnail' ]\n\t\t\t\t\t\t\t\t\t: [ 'thumbnail', 'medium', 'large', 'full' ]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : null,\n\t\t\t\tenableSorting: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Title' ),\n\t\t\t\tid: 'title',\n\t\t\t\tgetValue: ( { item } ) => item.title?.rendered,\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__title-field\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ [ LAYOUT_TABLE, LAYOUT_GRID ].includes(\n\t\t\t\t\t\t\t\t\tview.type\n\t\t\t\t\t\t\t\t) ? (\n\t\t\t\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\t\t\t\tparams={ {\n\t\t\t\t\t\t\t\t\t\t\tpostId: item.id,\n\t\t\t\t\t\t\t\t\t\t\tpostType: item.type,\n\t\t\t\t\t\t\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ decodeEntities(\n\t\t\t\t\t\t\t\t\t\t\titem.title?.rendered\n\t\t\t\t\t\t\t\t\t\t) || __( '(no title)' ) }\n\t\t\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\tdecodeEntities( item.title?.rendered ) ||\n\t\t\t\t\t\t\t\t\t__( '(no title)' )\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tmaxWidth: 400,\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Author' ),\n\t\t\t\tid: 'author',\n\t\t\t\tgetValue: ( { item } ) => item._embedded?.author[ 0 ]?.name,\n\t\t\t\ttype: ENUMERATION_TYPE,\n\t\t\t\telements:\n\t\t\t\t\tauthors?.map( ( { id, name } ) => ( {\n\t\t\t\t\t\tvalue: id,\n\t\t\t\t\t\tlabel: name,\n\t\t\t\t\t} ) ) || [],\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Status' ),\n\t\t\t\tid: 'status',\n\t\t\t\tgetValue: ( { item } ) =>\n\t\t\t\t\tSTATUSES.find( ( { value } ) => value === item.status )\n\t\t\t\t\t\t?.label ?? item.status,\n\t\t\t\ttype: ENUMERATION_TYPE,\n\t\t\t\telements: STATUSES,\n\t\t\t\tenableSorting: false,\n\t\t\t\tfilterBy: {\n\t\t\t\t\toperators: [ OPERATOR_IN ],\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Date' ),\n\t\t\t\tid: 'date',\n\t\t\t\tgetValue: ( { item } ) => item.date,\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\tconst formattedDate = dateI18n(\n\t\t\t\t\t\tgetSettings().formats.datetimeAbbreviated,\n\t\t\t\t\t\tgetDate( item.date )\n\t\t\t\t\t);\n\t\t\t\t\treturn <time>{ formattedDate }</time>;\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\t[ authors, view.type ]\n\t);\n\n\tconst permanentlyDeletePostAction = usePermanentlyDeletePostAction();\n\tconst restorePostAction = useRestorePostAction();\n\tconst editPostAction = useEditPostAction();\n\tconst actions = useMemo(\n\t\t() => [\n\t\t\tviewPostAction,\n\t\t\ttrashPostAction,\n\t\t\trestorePostAction,\n\t\t\tpermanentlyDeletePostAction,\n\t\t\teditPostAction,\n\t\t\tpostRevisionsAction,\n\t\t],\n\t\t[ permanentlyDeletePostAction, restorePostAction, editPostAction ]\n\t);\n\tconst onChangeView = useCallback(\n\t\t( newView ) => {\n\t\t\tif ( newView.type !== view.type ) {\n\t\t\t\tnewView = {\n\t\t\t\t\t...newView,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...DEFAULT_CONFIG_PER_VIEW_TYPE[ newView.type ],\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tsetView( newView );\n\t\t},\n\t\t[ view.type, setView ]\n\t);\n\n\tconst [ showAddPageModal, setShowAddPageModal ] = useState( false );\n\tconst openModal = useCallback( () => {\n\t\tif ( ! showAddPageModal ) {\n\t\t\tsetShowAddPageModal( true );\n\t\t}\n\t}, [ showAddPageModal ] );\n\tconst closeModal = useCallback( () => {\n\t\tif ( showAddPageModal ) {\n\t\t\tsetShowAddPageModal( false );\n\t\t}\n\t}, [ showAddPageModal ] );\n\tconst handleNewPage = useCallback(\n\t\t( { type, id } ) => {\n\t\t\thistory.push( {\n\t\t\t\tpostId: id,\n\t\t\t\tpostType: type,\n\t\t\t\tcanvas: 'edit',\n\t\t\t} );\n\t\t\tcloseModal();\n\t\t},\n\t\t[ history ]\n\t);\n\n\t// TODO: we need to handle properly `data={ data || EMPTY_ARRAY }` for when `isLoading`.\n\treturn (\n\t\t<>\n\t\t\t<Page\n\t\t\t\tclassName={\n\t\t\t\t\tview.type === LAYOUT_LIST\n\t\t\t\t\t\t? 'edit-site-page-pages-list-view'\n\t\t\t\t\t\t: null\n\t\t\t\t}\n\t\t\t\ttitle={ __( 'Pages' ) }\n\t\t\t\tactions={\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Button variant=\"primary\" onClick={ openModal }>\n\t\t\t\t\t\t\t{ __( 'Add new page' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t{ showAddPageModal && (\n\t\t\t\t\t\t\t<AddNewPageModal\n\t\t\t\t\t\t\t\tonSave={ handleNewPage }\n\t\t\t\t\t\t\t\tonClose={ closeModal }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<DataViews\n\t\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t\t\tfields={ fields }\n\t\t\t\t\tactions={ actions }\n\t\t\t\t\tdata={ pages || EMPTY_ARRAY }\n\t\t\t\t\tisLoading={ isLoadingPages || isLoadingAuthors }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\tonDetailsChange={ onDetailsChange }\n\t\t\t\t/>\n\t\t\t</Page>\n\t\t\t{ view.type === LAYOUT_LIST && (\n\t\t\t\t<Page>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"edit-site-page-pages-preview\"\n\t\t\t\t\t\ttabIndex={ 0 }\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\tconst { keyCode } = event;\n\t\t\t\t\t\t\tif ( keyCode === ENTER || keyCode === SPACE ) {\n\t\t\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\t\t\tpostId: pageId,\n\t\t\t\t\t\t\t\t\tpostType,\n\t\t\t\t\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\t\tpostId: pageId,\n\t\t\t\t\t\t\t\tpostType,\n\t\t\t\t\t\t\t\tcanvas: 'edit',\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{ pageId !== null ? (\n\t\t\t\t\t\t\t<PostPreview\n\t\t\t\t\t\t\t\tpostId={ pageId }\n\t\t\t\t\t\t\t\tpostType={ postType }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\t\t\t\t\tjustifyContent: 'center',\n\t\t\t\t\t\t\t\t\ttextAlign: 'center',\n\t\t\t\t\t\t\t\t\theight: '100%',\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<p>{ __( 'Select a page to preview' ) }</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t</Page>\n\t\t\t) }\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport PagePatterns from '../page-patterns';\nimport DataviewsPatterns from '../page-patterns/dataviews-patterns';\nimport PageTemplateParts from '../page-template-parts';\nimport PageTemplates from '../page-templates';\nimport PagePages from '../page-pages';\nimport { unlock } from '../../lock-unlock';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nexport default function PageMain() {\n\tconst {\n\t\tparams: { path },\n\t} = useLocation();\n\n\tif ( path === '/wp_template/all' ) {\n\t\treturn <PageTemplates />;\n\t} else if ( path === '/wp_template_part/all' ) {\n\t\treturn <PageTemplateParts />;\n\t} else if ( path === '/patterns' ) {\n\t\treturn window?.__experimentalAdminViews ? (\n\t\t\t<DataviewsPatterns />\n\t\t) : (\n\t\t\t<PagePatterns />\n\t\t);\n\t} else if ( window?.__experimentalAdminViews && path === '/page' ) {\n\t\treturn <PagePages />;\n\t}\n\n\treturn null;\n}\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n\t__unstableUseNavigateRegions as useNavigateRegions,\n} from '@wordpress/components';\nimport {\n\tuseReducedMotion,\n\tuseViewportMatch,\n\tuseResizeObserver,\n} from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { NavigableRegion } from '@wordpress/interface';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport {\n\tCommandMenu,\n\tprivateApis as commandsPrivateApis,\n} from '@wordpress/commands';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tuseBlockCommands,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { privateApis as coreCommandsPrivateApis } from '@wordpress/core-commands';\n\n/**\n * Internal dependencies\n */\nimport Sidebar from '../sidebar';\nimport Editor from '../editor';\nimport ErrorBoundary from '../error-boundary';\nimport { store as editSiteStore } from '../../store';\nimport getIsListPage from '../../utils/get-is-list-page';\nimport Header from '../header-edit-mode';\nimport useInitEditedEntityFromURL from '../sync-state-with-url/use-init-edited-entity-from-url';\nimport SiteHub from '../site-hub';\nimport ResizableFrame from '../resizable-frame';\nimport useSyncCanvasModeWithURL from '../sync-state-with-url/use-sync-canvas-mode-with-url';\nimport { unlock } from '../../lock-unlock';\nimport SavePanel from '../save-panel';\nimport KeyboardShortcutsRegister from '../keyboard-shortcuts/register';\nimport KeyboardShortcutsGlobal from '../keyboard-shortcuts/global';\nimport { useCommonCommands } from '../../hooks/commands/use-common-commands';\nimport { useEditModeCommands } from '../../hooks/commands/use-edit-mode-commands';\nimport PageMain from '../page-main';\nimport { useIsSiteEditorLoading } from './hooks';\n\nconst { useCommands } = unlock( coreCommandsPrivateApis );\nconst { useCommandContext } = unlock( commandsPrivateApis );\nconst { useLocation } = unlock( routerPrivateApis );\nconst { useGlobalStyle } = unlock( blockEditorPrivateApis );\n\nconst ANIMATION_DURATION = 0.5;\n\nexport default function Layout() {\n\t// This ensures the edited entity id and type are initialized properly.\n\tuseInitEditedEntityFromURL();\n\tuseSyncCanvasModeWithURL();\n\tuseCommands();\n\tuseEditModeCommands();\n\tuseCommonCommands();\n\tuseBlockCommands();\n\n\tconst { params } = useLocation();\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst isListPage = getIsListPage( params, isMobileViewport );\n\tconst isEditorPage = ! isListPage;\n\n\tconst {\n\t\tisDistractionFree,\n\t\thasFixedToolbar,\n\t\thasBlockSelected,\n\t\tcanvasMode,\n\t\tpreviousShortcut,\n\t\tnextShortcut,\n\t} = useSelect( ( select ) => {\n\t\tconst { getAllShortcutKeyCombinations } = select(\n\t\t\tkeyboardShortcutsStore\n\t\t);\n\t\tconst { getCanvasMode } = unlock( select( editSiteStore ) );\n\t\treturn {\n\t\t\tcanvasMode: getCanvasMode(),\n\t\t\tpreviousShortcut: getAllShortcutKeyCombinations(\n\t\t\t\t'core/edit-site/previous-region'\n\t\t\t),\n\t\t\tnextShortcut: getAllShortcutKeyCombinations(\n\t\t\t\t'core/edit-site/next-region'\n\t\t\t),\n\t\t\thasFixedToolbar: select( preferencesStore ).get(\n\t\t\t\t'core',\n\t\t\t\t'fixedToolbar'\n\t\t\t),\n\t\t\tisDistractionFree: select( preferencesStore ).get(\n\t\t\t\t'core',\n\t\t\t\t'distractionFree'\n\t\t\t),\n\t\t\thasBlockSelected:\n\t\t\t\tselect( blockEditorStore ).getBlockSelectionStart(),\n\t\t};\n\t}, [] );\n\tconst isEditing = canvasMode === 'edit';\n\tconst navigateRegionsProps = useNavigateRegions( {\n\t\tprevious: previousShortcut,\n\t\tnext: nextShortcut,\n\t} );\n\tconst disableMotion = useReducedMotion();\n\tconst showSidebar =\n\t\t( isMobileViewport && canvasMode === 'view' && ! isListPage ) ||\n\t\t( ! isMobileViewport && ( canvasMode === 'view' || ! isEditorPage ) );\n\tconst showCanvas =\n\t\t( isMobileViewport && isEditorPage && isEditing ) ||\n\t\t! isMobileViewport ||\n\t\t! isEditorPage;\n\tconst isFullCanvas =\n\t\t( isMobileViewport && isListPage ) || ( isEditorPage && isEditing );\n\tconst [ canvasResizer, canvasSize ] = useResizeObserver();\n\tconst [ fullResizer ] = useResizeObserver();\n\tconst isEditorLoading = useIsSiteEditorLoading();\n\tconst [ isResizableFrameOversized, setIsResizableFrameOversized ] =\n\t\tuseState( false );\n\n\t// This determines which animation variant should apply to the header.\n\t// There is also a `isDistractionFreeHovering` state that gets priority\n\t// when hovering the `edit-site-layout__header-container` in distraction\n\t// free mode. It's set via framer and trickles down to all the children\n\t// so they can use this variant state too.\n\t//\n\t// TODO: The issue with this is we want to have the hover state stick when hovering\n\t// a popover opened via the header. We'll probably need to lift this state to\n\t// handle it ourselves. Also, focusWithin the header needs to be handled.\n\tlet headerAnimationState;\n\n\tif ( canvasMode === 'view' ) {\n\t\t// We need 'view' to always take priority so 'isDistractionFree'\n\t\t// doesn't bleed over into the view (sidebar) state\n\t\theaderAnimationState = 'view';\n\t} else if ( isDistractionFree ) {\n\t\theaderAnimationState = 'isDistractionFree';\n\t} else {\n\t\theaderAnimationState = canvasMode; // edit, view, init\n\t}\n\n\t// Sets the right context for the command palette\n\tlet commandContext = 'site-editor';\n\n\tif ( canvasMode === 'edit' && isEditorPage ) {\n\t\tcommandContext = 'site-editor-edit';\n\t}\n\tif ( hasBlockSelected ) {\n\t\tcommandContext = 'block-selection-edit';\n\t}\n\tuseCommandContext( commandContext );\n\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\tconst [ gradientValue ] = useGlobalStyle( 'color.gradient' );\n\n\t// Synchronizing the URL with the store value of canvasMode happens in an effect\n\t// This condition ensures the component is only rendered after the synchronization happens\n\t// which prevents any animations due to potential canvasMode value change.\n\tif ( canvasMode === 'init' ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<CommandMenu />\n\t\t\t<KeyboardShortcutsRegister />\n\t\t\t<KeyboardShortcutsGlobal />\n\t\t\t{ fullResizer }\n\t\t\t<div\n\t\t\t\t{ ...navigateRegionsProps }\n\t\t\t\tref={ navigateRegionsProps.ref }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'edit-site-layout',\n\t\t\t\t\tnavigateRegionsProps.className,\n\t\t\t\t\t{\n\t\t\t\t\t\t'is-distraction-free': isDistractionFree && isEditing,\n\t\t\t\t\t\t'is-full-canvas': isFullCanvas,\n\t\t\t\t\t\t'is-edit-mode': isEditing,\n\t\t\t\t\t\t'has-fixed-toolbar': hasFixedToolbar,\n\t\t\t\t\t\t'is-block-toolbar-visible': hasBlockSelected,\n\t\t\t\t\t}\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t<motion.div\n\t\t\t\t\tclassName=\"edit-site-layout__header-container\"\n\t\t\t\t\tvariants={ {\n\t\t\t\t\t\tisDistractionFree: {\n\t\t\t\t\t\t\topacity: 0,\n\t\t\t\t\t\t\ttransition: {\n\t\t\t\t\t\t\t\ttype: 'tween',\n\t\t\t\t\t\t\t\tdelay: 0.8,\n\t\t\t\t\t\t\t\tdelayChildren: 0.8,\n\t\t\t\t\t\t\t}, // How long to wait before the header exits\n\t\t\t\t\t\t},\n\t\t\t\t\t\tisDistractionFreeHovering: {\n\t\t\t\t\t\t\topacity: 1,\n\t\t\t\t\t\t\ttransition: {\n\t\t\t\t\t\t\t\ttype: 'tween',\n\t\t\t\t\t\t\t\tdelay: 0.2,\n\t\t\t\t\t\t\t\tdelayChildren: 0.2,\n\t\t\t\t\t\t\t}, // How long to wait before the header shows\n\t\t\t\t\t\t},\n\t\t\t\t\t\tview: { opacity: 1 },\n\t\t\t\t\t\tedit: { opacity: 1 },\n\t\t\t\t\t} }\n\t\t\t\t\twhileHover={\n\t\t\t\t\t\tisDistractionFree\n\t\t\t\t\t\t\t? 'isDistractionFreeHovering'\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\tanimate={ headerAnimationState }\n\t\t\t\t>\n\t\t\t\t\t<SiteHub\n\t\t\t\t\t\tisTransparent={ isResizableFrameOversized }\n\t\t\t\t\t\tclassName=\"edit-site-layout__hub\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<AnimatePresence initial={ false }>\n\t\t\t\t\t\t{ isEditorPage && isEditing && (\n\t\t\t\t\t\t\t<NavigableRegion\n\t\t\t\t\t\t\t\tkey=\"header\"\n\t\t\t\t\t\t\t\tclassName=\"edit-site-layout__header\"\n\t\t\t\t\t\t\t\tariaLabel={ __( 'Editor top bar' ) }\n\t\t\t\t\t\t\t\tas={ motion.div }\n\t\t\t\t\t\t\t\tvariants={ {\n\t\t\t\t\t\t\t\t\tisDistractionFree: { opacity: 0, y: 0 },\n\t\t\t\t\t\t\t\t\tisDistractionFreeHovering: {\n\t\t\t\t\t\t\t\t\t\topacity: 1,\n\t\t\t\t\t\t\t\t\t\ty: 0,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tview: { opacity: 1, y: '-100%' },\n\t\t\t\t\t\t\t\t\tedit: { opacity: 1, y: 0 },\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\texit={ {\n\t\t\t\t\t\t\t\t\ty: '-100%',\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tinitial={ {\n\t\t\t\t\t\t\t\t\topacity: isDistractionFree ? 1 : 0,\n\t\t\t\t\t\t\t\t\ty: isDistractionFree ? 0 : '-100%',\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\ttransition={ {\n\t\t\t\t\t\t\t\t\ttype: 'tween',\n\t\t\t\t\t\t\t\t\tduration: disableMotion ? 0 : 0.2,\n\t\t\t\t\t\t\t\t\tease: 'easeOut',\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Header />\n\t\t\t\t\t\t\t</NavigableRegion>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</AnimatePresence>\n\t\t\t\t</motion.div>\n\n\t\t\t\t<div className=\"edit-site-layout__content\">\n\t\t\t\t\t{ /*\n\t\t\t\t\t\tThe NavigableRegion must always be rendered and not use\n\t\t\t\t\t\t`inert` otherwise `useNavigateRegions` will fail.\n\t\t\t\t\t*/ }\n\t\t\t\t\t<NavigableRegion\n\t\t\t\t\t\tariaLabel={ __( 'Navigation' ) }\n\t\t\t\t\t\tclassName=\"edit-site-layout__sidebar-region\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<AnimatePresence>\n\t\t\t\t\t\t\t{ showSidebar && (\n\t\t\t\t\t\t\t\t<motion.div\n\t\t\t\t\t\t\t\t\tinitial={ { opacity: 0 } }\n\t\t\t\t\t\t\t\t\tanimate={ { opacity: 1 } }\n\t\t\t\t\t\t\t\t\texit={ { opacity: 0 } }\n\t\t\t\t\t\t\t\t\ttransition={ {\n\t\t\t\t\t\t\t\t\t\ttype: 'tween',\n\t\t\t\t\t\t\t\t\t\tduration:\n\t\t\t\t\t\t\t\t\t\t\t// Disable transition in mobile to emulate a full page transition.\n\t\t\t\t\t\t\t\t\t\t\tdisableMotion || isMobileViewport\n\t\t\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t\t\t: ANIMATION_DURATION,\n\t\t\t\t\t\t\t\t\t\tease: 'easeOut',\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-layout__sidebar\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Sidebar />\n\t\t\t\t\t\t\t\t</motion.div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</AnimatePresence>\n\t\t\t\t\t</NavigableRegion>\n\n\t\t\t\t\t<SavePanel />\n\n\t\t\t\t\t{ showCanvas && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ isListPage && <PageMain /> }\n\t\t\t\t\t\t\t{ isEditorPage && (\n\t\t\t\t\t\t\t\t<div className=\"edit-site-layout__canvas-container\">\n\t\t\t\t\t\t\t\t\t{ canvasResizer }\n\t\t\t\t\t\t\t\t\t{ !! canvasSize.width && (\n\t\t\t\t\t\t\t\t\t\t<motion.div\n\t\t\t\t\t\t\t\t\t\t\twhileHover={\n\t\t\t\t\t\t\t\t\t\t\t\tisEditorPage &&\n\t\t\t\t\t\t\t\t\t\t\t\tcanvasMode === 'view'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tscale: 1.005,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttransition: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tduration:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisableMotion\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 0.5,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tease: 'easeOut',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t  }\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tinitial={ false }\n\t\t\t\t\t\t\t\t\t\t\tlayout=\"position\"\n\t\t\t\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t\t\t\t'edit-site-layout__canvas',\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t'is-right-aligned':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisResizableFrameOversized,\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\ttransition={ {\n\t\t\t\t\t\t\t\t\t\t\t\ttype: 'tween',\n\t\t\t\t\t\t\t\t\t\t\t\tduration: disableMotion\n\t\t\t\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t: ANIMATION_DURATION,\n\t\t\t\t\t\t\t\t\t\t\t\tease: 'easeOut',\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<ErrorBoundary>\n\t\t\t\t\t\t\t\t\t\t\t\t<ResizableFrame\n\t\t\t\t\t\t\t\t\t\t\t\t\tisReady={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t! isEditorLoading\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tisFullWidth={ isEditing }\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefaultSize={ {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcanvasSize.width -\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t24 /* $canvas-padding */,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theight: canvasSize.height,\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\tisOversized={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisResizableFrameOversized\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsOversized={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsResizableFrameOversized\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tinnerContentStyle={ {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackground:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgradientValue ??\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbackgroundColor,\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Editor\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisLoading={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisEditorLoading\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</ResizableFrame>\n\t\t\t\t\t\t\t\t\t\t\t</ErrorBoundary>\n\t\t\t\t\t\t\t\t\t\t</motion.div>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { SlotFillProvider } from '@wordpress/components';\nimport { UnsavedChangesWarning } from '@wordpress/editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useDispatch } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { PluginArea } from '@wordpress/plugins';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport Layout from '../layout';\nimport { GlobalStylesProvider } from '../global-styles/global-styles-provider';\nimport { unlock } from '../../lock-unlock';\n\nconst { RouterProvider } = unlock( routerPrivateApis );\n\nexport default function App() {\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tfunction onPluginAreaError( name ) {\n\t\tcreateErrorNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: plugin name */\n\t\t\t\t__(\n\t\t\t\t\t'The \"%s\" plugin has encountered an error and cannot be rendered.'\n\t\t\t\t),\n\t\t\t\tname\n\t\t\t)\n\t\t);\n\t}\n\n\treturn (\n\t\t<SlotFillProvider>\n\t\t\t<GlobalStylesProvider>\n\t\t\t\t<UnsavedChangesWarning />\n\t\t\t\t<RouterProvider>\n\t\t\t\t\t<Layout />\n\t\t\t\t\t<PluginArea onError={ onPluginAreaError } />\n\t\t\t\t</RouterProvider>\n\t\t\t</GlobalStylesProvider>\n\t\t</SlotFillProvider>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { ComplementaryArea } from '@wordpress/interface';\n\n/**\n * Renders a sidebar when activated. The contents within the `PluginSidebar` will appear as content within the sidebar.\n * It also automatically renders a corresponding `PluginSidebarMenuItem` component when `isPinnable` flag is set to `true`.\n * If you wish to display the sidebar, you can with use the `PluginSidebarMoreMenuItem` component or the `wp.data.dispatch` API:\n *\n * ```js\n * wp.data.dispatch( 'core/edit-site' ).openGeneralSidebar( 'plugin-name/sidebar-name' );\n * ```\n *\n * @see PluginSidebarMoreMenuItem\n *\n * @param {Object}                props                                 Element props.\n * @param {string}                props.name                            A string identifying the sidebar. Must be unique for every sidebar registered within the scope of your plugin.\n * @param {string}                [props.className]                     An optional class name added to the sidebar body.\n * @param {string}                props.title                           Title displayed at the top of the sidebar.\n * @param {boolean}               [props.isPinnable=true]               Whether to allow to pin sidebar to the toolbar. When set to `true` it also automatically renders a corresponding menu item.\n * @param {WPBlockTypeIconRender} [props.icon=inherits from the plugin] The [Dashicon](https://developer.wordpress.org/resource/dashicons/) icon slug string, or an SVG WP element, to be rendered when the sidebar is pinned to toolbar.\n *\n * @example\n * ```js\n * // Using ES5 syntax\n * var __ = wp.i18n.__;\n * var el = wp.element.createElement;\n * var PanelBody = wp.components.PanelBody;\n * var PluginSidebar = wp.editSite.PluginSidebar;\n * var moreIcon = wp.element.createElement( 'svg' ); //... svg element.\n *\n * function MyPluginSidebar() {\n * \treturn el(\n * \t\t\tPluginSidebar,\n * \t\t\t{\n * \t\t\t\tname: 'my-sidebar',\n * \t\t\t\ttitle: 'My sidebar title',\n * \t\t\t\ticon: moreIcon,\n * \t\t\t},\n * \t\t\tel(\n * \t\t\t\tPanelBody,\n * \t\t\t\t{},\n * \t\t\t\t__( 'My sidebar content' )\n * \t\t\t)\n * \t);\n * }\n * ```\n *\n * @example\n * ```jsx\n * // Using ESNext syntax\n * import { __ } from '@wordpress/i18n';\n * import { PanelBody } from '@wordpress/components';\n * import { PluginSidebar } from '@wordpress/edit-site';\n * import { more } from '@wordpress/icons';\n *\n * const MyPluginSidebar = () => (\n * \t<PluginSidebar\n * \t\tname=\"my-sidebar\"\n * \t\ttitle=\"My sidebar title\"\n * \t\ticon={ more }\n * \t>\n * \t\t<PanelBody>\n * \t\t\t{ __( 'My sidebar content' ) }\n * \t\t</PanelBody>\n * \t</PluginSidebar>\n * );\n * ```\n */\nexport default function PluginSidebarEditSite( { className, ...props } ) {\n\treturn (\n\t\t<ComplementaryArea\n\t\t\tpanelClassName={ className }\n\t\t\tclassName=\"edit-site-sidebar-edit-mode\"\n\t\t\tscope=\"core/edit-site\"\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { ComplementaryAreaMoreMenuItem } from '@wordpress/interface';\n\n/**\n * Renders a menu item in `Plugins` group in `More Menu` drop down,\n * and can be used to activate the corresponding `PluginSidebar` component.\n * The text within the component appears as the menu item label.\n *\n * @param {Object}                props                                 Component props.\n * @param {string}                props.target                          A string identifying the target sidebar you wish to be activated by this menu item. Must be the same as the `name` prop you have given to that sidebar.\n * @param {WPBlockTypeIconRender} [props.icon=inherits from the plugin] The [Dashicon](https://developer.wordpress.org/resource/dashicons/) icon slug string, or an SVG WP element, to be rendered to the left of the menu item label.\n *\n * @example\n * ```js\n * // Using ES5 syntax\n * var __ = wp.i18n.__;\n * var PluginSidebarMoreMenuItem = wp.editSite.PluginSidebarMoreMenuItem;\n * var moreIcon = wp.element.createElement( 'svg' ); //... svg element.\n *\n * function MySidebarMoreMenuItem() {\n * \treturn wp.element.createElement(\n * \t\tPluginSidebarMoreMenuItem,\n * \t\t{\n * \t\t\ttarget: 'my-sidebar',\n * \t\t\ticon: moreIcon,\n * \t\t},\n * \t\t__( 'My sidebar title' )\n * \t)\n * }\n * ```\n *\n * @example\n * ```jsx\n * // Using ESNext syntax\n * import { __ } from '@wordpress/i18n';\n * import { PluginSidebarMoreMenuItem } from '@wordpress/edit-site';\n * import { more } from '@wordpress/icons';\n *\n * const MySidebarMoreMenuItem = () => (\n * \t<PluginSidebarMoreMenuItem\n * \t\ttarget=\"my-sidebar\"\n * \t\ticon={ more }\n * \t>\n * \t\t{ __( 'My sidebar title' ) }\n * \t</PluginSidebarMoreMenuItem>\n * );\n * ```\n *\n * @return {Component} The component to be rendered.\n */\n\nexport default function PluginSidebarMoreMenuItem( props ) {\n\treturn (\n\t\t<ComplementaryAreaMoreMenuItem\n\t\t\t// Menu item is marked with unstable prop for backward compatibility.\n\t\t\t// @see https://github.com/WordPress/gutenberg/issues/14457\n\t\t\t__unstableExplicitMenuItem\n\t\t\tscope=\"core/edit-site\"\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { ActionItem } from '@wordpress/interface';\nimport { compose } from '@wordpress/compose';\nimport { MenuItem } from '@wordpress/components';\nimport { withPluginContext } from '@wordpress/plugins';\n\n/**\n * Renders a menu item in `Plugins` group in `More Menu` drop down, and can be used to as a button or link depending on the props provided.\n * The text within the component appears as the menu item label.\n *\n * @param {Object}                props                                 Component properties.\n * @param {string}                [props.href]                          When `href` is provided then the menu item is represented as an anchor rather than button. It corresponds to the `href` attribute of the anchor.\n * @param {WPBlockTypeIconRender} [props.icon=inherits from the plugin] The [Dashicon](https://developer.wordpress.org/resource/dashicons/) icon slug string, or an SVG WP element, to be rendered to the left of the menu item label.\n * @param {Function}              [props.onClick=noop]                  The callback function to be executed when the user clicks the menu item.\n * @param {...*}                  [props.other]                         Any additional props are passed through to the underlying [Button](/packages/components/src/button/README.md) component.\n *\n * @example\n * ```js\n * // Using ES5 syntax\n * var __ = wp.i18n.__;\n * var PluginMoreMenuItem = wp.editSite.PluginMoreMenuItem;\n * var moreIcon = wp.element.createElement( 'svg' ); //... svg element.\n *\n * function onButtonClick() {\n * \talert( 'Button clicked.' );\n * }\n *\n * function MyButtonMoreMenuItem() {\n * \treturn wp.element.createElement(\n * \t\tPluginMoreMenuItem,\n * \t\t{\n * \t\t\ticon: moreIcon,\n * \t\t\tonClick: onButtonClick,\n * \t\t},\n * \t\t__( 'My button title' )\n * \t);\n * }\n * ```\n *\n * @example\n * ```jsx\n * // Using ESNext syntax\n * import { __ } from '@wordpress/i18n';\n * import { PluginMoreMenuItem } from '@wordpress/edit-site';\n * import { more } from '@wordpress/icons';\n *\n * function onButtonClick() {\n * \talert( 'Button clicked.' );\n * }\n *\n * const MyButtonMoreMenuItem = () => (\n * \t<PluginMoreMenuItem\n * \t\ticon={ more }\n * \t\tonClick={ onButtonClick }\n * \t>\n * \t\t{ __( 'My button title' ) }\n * \t</PluginMoreMenuItem>\n * );\n * ```\n *\n * @return {Component} The component to be rendered.\n */\nexport default compose(\n\twithPluginContext( ( context, ownProps ) => {\n\t\treturn {\n\t\t\tas: ownProps.as ?? MenuItem,\n\t\t\ticon: ownProps.icon || context.icon,\n\t\t\tname: 'core/edit-site/plugin-more-menu',\n\t\t};\n\t} )\n)( ActionItem );\n","/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport {\n\tregisterCoreBlocks,\n\t__experimentalGetCoreBlocks,\n\t__experimentalRegisterExperimentalCoreBlocks,\n} from '@wordpress/block-library';\nimport { dispatch } from '@wordpress/data';\nimport deprecated from '@wordpress/deprecated';\nimport { createRoot } from '@wordpress/element';\nimport { store as editorStore } from '@wordpress/editor';\nimport { store as interfaceStore } from '@wordpress/interface';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport {\n\tregisterLegacyWidgetBlock,\n\tregisterWidgetGroupBlock,\n} from '@wordpress/widgets';\n\n/**\n * Internal dependencies\n */\nimport './hooks';\nimport { store as editSiteStore } from './store';\nimport App from './components/app';\n\n/**\n * Initializes the site editor screen.\n *\n * @param {string} id       ID of the root element to render the screen in.\n * @param {Object} settings Editor settings.\n */\nexport function initializeEditor( id, settings ) {\n\tconst target = document.getElementById( id );\n\tconst root = createRoot( target );\n\n\tdispatch( blocksStore ).reapplyBlockTypeFilters();\n\tconst coreBlocks = __experimentalGetCoreBlocks().filter(\n\t\t( { name } ) => name !== 'core/freeform'\n\t);\n\tregisterCoreBlocks( coreBlocks );\n\tdispatch( blocksStore ).setFreeformFallbackBlockName( 'core/html' );\n\tregisterLegacyWidgetBlock( { inserter: false } );\n\tregisterWidgetGroupBlock( { inserter: false } );\n\tif ( process.env.IS_GUTENBERG_PLUGIN ) {\n\t\t__experimentalRegisterExperimentalCoreBlocks( {\n\t\t\tenableFSEBlocks: true,\n\t\t} );\n\t}\n\n\t// We dispatch actions and update the store synchronously before rendering\n\t// so that we won't trigger unnecessary re-renders with useEffect.\n\tdispatch( preferencesStore ).setDefaults( 'core/edit-site', {\n\t\teditorMode: 'visual',\n\t\twelcomeGuide: true,\n\t\twelcomeGuideStyles: true,\n\t\twelcomeGuidePage: true,\n\t\twelcomeGuideTemplate: true,\n\t} );\n\n\tdispatch( preferencesStore ).setDefaults( 'core', {\n\t\tallowRightClickOverrides: true,\n\t\tdistractionFree: false,\n\t\tfixedToolbar: false,\n\t\tfocusMode: false,\n\t\tinactivePanels: [],\n\t\tkeepCaretInsideBlock: false,\n\t\topenPanels: [ 'post-status' ],\n\t\tshowBlockBreadcrumbs: true,\n\t\tshowListViewByDefault: false,\n\t} );\n\n\tdispatch( interfaceStore ).setDefaultComplementaryArea(\n\t\t'core/edit-site',\n\t\t'edit-site/template'\n\t);\n\n\tdispatch( editSiteStore ).updateSettings( settings );\n\n\t// Keep the defaultTemplateTypes in the core/editor settings too,\n\t// so that they can be selected with core/editor selectors in any editor.\n\t// This is needed because edit-site doesn't initialize with EditorProvider,\n\t// which internally uses updateEditorSettings as well.\n\tdispatch( editorStore ).updateEditorSettings( {\n\t\tdefaultTemplateTypes: settings.defaultTemplateTypes,\n\t\tdefaultTemplatePartAreas: settings.defaultTemplatePartAreas,\n\t} );\n\n\t// Prevent the default browser action for files dropped outside of dropzones.\n\twindow.addEventListener( 'dragover', ( e ) => e.preventDefault(), false );\n\twindow.addEventListener( 'drop', ( e ) => e.preventDefault(), false );\n\n\troot.render( <App /> );\n\n\treturn root;\n}\n\nexport function reinitializeEditor() {\n\tdeprecated( 'wp.editSite.reinitializeEditor', {\n\t\tsince: '6.2',\n\t\tversion: '6.3',\n\t} );\n}\n\nexport { default as PluginSidebar } from './components/sidebar-edit-mode/plugin-sidebar';\nexport { default as PluginSidebarMoreMenuItem } from './components/header-edit-mode/plugin-sidebar-more-menu-item';\nexport { default as PluginMoreMenuItem } from './components/header-edit-mode/plugin-more-menu-item';\nexport { default as PluginTemplateSettingPanel } from './components/plugin-template-setting-panel';\nexport { store } from './store';\n"],"names":["module","exports","keys","values","map","Map","has","key","indexOf","get","set","value","push","delete","index","splice","createEvent","name","Event","bubbles","e","evt","document","initEvent","assign","ta","nodeName","heightOffset","clientWidth","cachedHeight","pageResize","update","destroy","style","window","removeEventListener","Object","forEach","bind","height","resize","overflowY","overflowX","wordWrap","addEventListener","getComputedStyle","boxSizing","parseFloat","paddingTop","paddingBottom","borderTopWidth","borderBottomWidth","isNaN","changeOverflow","width","offsetWidth","scrollHeight","overflows","el","arr","parentNode","Element","scrollTop","node","getParentOverflows","docTop","documentElement","styleHeight","Math","round","computed","actualHeight","offsetHeight","dispatchEvent","err","methods","autosize","options","Array","prototype","call","length","x","default","hasOwn","hasOwnProperty","classNames","classes","i","arguments","arg","argType","isArray","inner","apply","toString","join","prop","currentStyle","replace","word","letter","toUpperCase","isMergeableObject","isNonNullObject","stringValue","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","Symbol","for","cloneUnlessOtherwiseSpecified","clone","deepmerge","val","defaultArrayMerge","target","source","concat","element","getKeys","getOwnPropertySymbols","filter","symbol","propertyIsEnumerable","getEnumerableOwnPropertySymbols","propertyIsOnObject","object","property","_","arrayMerge","sourceIsArray","destination","propertyIsUnsafe","customMerge","getMergeFunction","mergeObject","all","array","Error","reduce","prev","next","deepmerge_1","computedStyle","lnHeightStr","lnHeight","_lnHeightStyle","lineHeight","_node","createElement","innerHTML","setAttribute","fontSizeStr","fontSize","padding","border","body","appendChild","removeChild","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","getShim","isRequired","ReactPropTypes","bool","func","number","string","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","extendStatics","__extends","this","setPrototypeOf","__proto__","d","b","p","__","constructor","create","__assign","t","s","n","__rest","__esModule","React","getLineHeight","RESIZED","TextareaAutosizeClass","_super","_this","state","textarea","onResize","updateLineHeight","setState","onChange","currentValue","currentTarget","componentDidMount","_a","maxRows","async","setTimeout","componentWillUnmount","render","_b","children","innerRef","maxHeight","ref","current","componentDidUpdate","defaultProps","rows","propTypes","Component","TextareaAutosize","forwardRef","TextareaAutosize_1","characterMap","chars","allAccents","RegExp","firstAccent","matcher","match","removeAccents","remove","r","o","f","u","a","code","require","TYPED_OK","Uint8Array","Uint16Array","Int32Array","_has","obj","sources","slice","shift","TypeError","shrinkBuf","buf","size","subarray","fnTyped","arraySet","dest","src","src_offs","len","dest_offs","flattenChunks","chunks","l","pos","chunk","result","fnUntyped","setTyped","on","Buf8","Buf16","Buf32","utils","STR_APPLY_OK","STR_APPLY_UIA_OK","String","fromCharCode","_utf8len","q","buf2binstring","string2buf","str","c","c2","m_pos","str_len","buf_len","charCodeAt","binstring2buf","buf2string","max","out","c_len","utf16buf","utf8border","adler","s1","s2","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_BLOCK","Z_TREES","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","crcTable","table","k","makeTable","crc","end","text","time","xflags","os","extra","extra_len","comment","hcrc","done","strm","start","_in","last","_out","beg","dmax","wsize","whave","wnext","s_window","hold","bits","lcode","dcode","lmask","dmask","here","op","dist","from","from_source","input","output","next_in","avail_in","next_out","avail_out","lencode","distcode","lenbits","distbits","top","dolen","mode","msg","dodist","sane","adler32","crc32","inflate_fast","inflate_table","LENS","DISTS","HEAD","TYPE","BAD","ENOUGH_LENS","ENOUGH_DISTS","zswap32","InflateState","wrap","havedict","flags","check","total","head","wbits","offset","ncode","nlen","ndist","have","lens","work","lendyn","distdyn","back","was","inflateResetKeep","total_in","total_out","inflateReset","inflateReset2","windowBits","inflateInit2","ret","lenfix","distfix","virgin","fixedtables","sym","updatewindow","copy","inflateInit","inflate","flush","put","left","here_bits","here_op","here_val","last_bits","last_op","last_val","opts","hbuf","order","inf_leave","data_type","inflateEnd","inflateGetHeader","inflateSetDictionary","dictionary","dictLength","inflateInfo","MAXBITS","lbase","lext","dbase","dext","type","lens_index","codes","table_index","incr","fill","low","mask","min","root","curr","drop","used","huff","base","base_index","count","offs","extra_index","zlib_inflate","strings","ZStream","GZheader","Inflate","chunkSize","to","opt","raw","ended","status","header","inflator","data","_mode","next_out_utf8","tail","utf8str","allowBufError","onEnd","onData","inflateRaw","ungzip","BROTLI_READ_SIZE","kBitMask","Uint32Array","BrotliBitReader","buf_","input_","reset","READ_SIZE","IBUF_MASK","buf_ptr_","val_","pos_","bit_pos_","bit_end_pos_","eos_","readMoreInput","dst","bytes_read","read","fillBitWindow","readBits","n_bits","lookup","lookupOffsets","BrotliInput","BrotliOutput","BrotliDictionary","HuffmanCode","BrotliBuildHuffmanTable","Context","Prefix","Transform","kDefaultCodeLength","kCodeLengthRepeatCode","kNumLiteralCodes","kNumInsertAndCopyCodes","kNumBlockLengthCodes","kLiteralContextBits","kDistanceContextBits","HUFFMAN_TABLE_BITS","HUFFMAN_TABLE_MASK","HUFFMAN_MAX_TABLE_SIZE","CODE_LENGTH_CODES","kCodeLengthCodeOrder","NUM_DISTANCE_SHORT_CODES","kDistanceShortCodeIndexOffset","kDistanceShortCodeValueOffset","Int8Array","kMaxHuffmanTableSize","DecodeWindowBits","br","DecodeVarLenUint8","nbits","MetaBlockLength","meta_block_length","input_end","is_uncompressed","is_metadata","DecodeMetaBlockLength","size_nibbles","size_bytes","next_byte","next_nibble","ReadSymbol","ReadHuffmanCode","alphabet_size","tables","simple_code_or_skip","table_size","code_lengths","max_bits_counter","max_bits","symbols","num_symbols","code_length_code_lengths","space","num_codes","v","code_len_idx","prev_code_len","repeat","repeat_code_len","code_len","old_repeat","repeat_delta","extra_bits","new_len","ReadHuffmanCodeLengths","ReadBlockLength","kBlockLengthPrefixCode","TranslateShortCodes","ringbuffer","MoveToFront","HuffmanTreeGroup","num_htrees","htrees","DecodeContextMap","context_map_size","context_map","max_run_length_prefix","reps","v_len","mtf","InverseMoveToFrontTransform","DecodeBlockType","max_block_type","trees","tree_type","block_types","ringbuffers","indexes","block_type","type_code","CopyUncompressedBlockToOutput","ringbuffer_mask","nbytes","rb_size","rb_pos","br_pos","write","JumpToByteBoundary","new_bit_pos","BrotliDecompressedSize","buffer","BrotliDecompress","max_backward_distance","ringbuffer_size","ringbuffer_end","block_type_trees","block_len_trees","window_bits","max_distance","dist_rb","dist_rb_idx","prev_byte1","prev_byte2","hgroup","kRingBufferWriteAheadSlack","maxDictionaryWordLength","distance_postfix_bits","num_direct_distance_codes","distance_postfix_mask","num_distance_codes","num_literal_htrees","num_dist_htrees","context_mode","htree_command","meta_block_remaining_len","block_length","num_block_types","block_type_rb","block_type_rb_index","context_modes","dist_context_map","context_map_slice","literal_htree_index","dist_context_map_slice","dist_htree_index","context_lookup_offset1","context_lookup_offset2","tmp","_o1","_o2","decode","cmd_code","range_idx","insert_code","copy_code","insert_length","copy_length","distance_code","distance","j","copy_dst","postfix","kInsertRangeLut","kCopyRangeLut","kInsertLengthPrefixCode","kCopyLengthPrefixCode","minDictionaryWordLength","offsetsByLength","word_id","sizeBitsByLength","transform_idx","kNumTransforms","transformDictionaryWord","_x","BrotliDecompressBuffer","output_size","output_buffer","init","base64","toByteArray","MAX_LENGTH","GetNextKey","step","ReplicateValue","NextTableBitSize","root_bits","root_table","code_lengths_size","table_bits","total_size","sorted","start_table","byteLength","b64","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","fromByteArray","uint8","extraBytes","parts","maxChunkLength","len2","encodeChunk","num","PrefixCodeRange","kUppercaseFirst","kUppercaseAll","prefix","transform","suffix","kTransforms","ToUpperCase","idx","uppercase","skip","start_idx","prefix_pos","suffix_pos","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","definition","defineProperty","enumerable","toStringTag","SVG","xmlns","viewBox","Path","fillRule","clipRule","setDefaultComplementaryArea","scope","area","enableComplementaryArea","registry","dispatch","select","preferencesStore","disableComplementaryArea","pinItem","item","pinnedItems","unpinItem","toggleFeature","featureName","deprecated","since","alternative","toggle","setFeatureValue","setFeatureDefaults","defaults","setDefaults","openModal","closeModal","getActiveComplementaryArea","createRegistrySelector","isComplementaryAreaVisible","complementaryAreas","isComplementaryAreaLoading","isVisible","identifier","isItemPinned","_pinnedItems$item","isFeatureActive","isModalActive","modalName","activeModal","combineReducers","action","store","createReduxStore","reducer","actions","selectors","register","withPluginContext","context","ownProps","icon","complementaryAreaContext","as","Button","selectedIcon","ComponentToUse","isSelected","useSelect","interfaceStore","useDispatch","onClick","ComplementaryAreaHeader","smallScreenTitle","className","toggleButtonProps","toggleButton","ComplementaryAreaToggle","closeSmall","Fragment","classnames","tabIndex","noop","ActionItem","Fill","fpOnClick","args","Slot","ButtonGroup","fillProps","bubblesVirtually","fills","Children","toArray","initializedByPlugins","__unstableExplicitMenuItem","__unstableTarget","child","includes","PluginsMenuItem","restProps","MenuItem","ComplementaryAreaMoreMenuItem","toggleProps","role","PinnedItems","ComplementaryAreaFill","id","ComplementaryAreaWrapped","withComplementaryAreaContext","closeLabel","headerClassName","isPinnable","panelClassName","title","toggleShortcut","isActiveByDefault","isLoading","isActive","isPinned","activeArea","isSmall","isLarge","showIconLabels","_activeArea","viewportStore","isViewportMatch","previousIsSmall","useRef","shouldOpenWhenNotSmall","useEffect","useAdjustComplementaryListener","isPressed","label","showTooltip","variant","onClose","shortcut","starFilled","starEmpty","Panel","NavigableRegion","ariaLabel","Tag","headerVariants","hidden","opacity","hover","transition","delay","delayChildren","distractionFreeInactive","isDistractionFree","footer","editorNotices","sidebar","secondarySidebar","notices","content","labels","enableRegionNavigation","shortcuts","navigateRegionsProps","useNavigateRegions","querySelector","classList","useHTMLClass","mergedLabels","useMergeRefs","motion","div","initial","whileHover","animate","variants","MoreMenuDropdown","DropdownComponent","DropdownMenu","popoverProps","moreVertical","placement","tooltipPosition","PreferencesModal","Modal","onRequestClose","cloneElement","PREFERENCES_MENU","PreferencesModalTabs","sections","isLargeViewport","useViewportMatch","activeMenu","setActiveMenu","useState","tabs","sectionsContentMap","useMemo","mappedTabs","accumulator","tabLabel","getCurrentTab","useCallback","tab","modalContent","TabPanel","initialTabName","onSelect","orientation","NavigatorProvider","initialPath","NavigatorScreen","path","Card","isBorderless","CardBody","ItemGroup","NavigatorButton","Item","isAction","HStack","justify","FlexItem","Truncate","Icon","isRTL","chevronLeft","chevronRight","section","CardHeader","gap","NavigatorBackButton","Text","Section","description","help","isChecked","ToggleControl","__nextHasNoMarginBottom","checked","addFilter","MediaUpload","grad","turn","rad","PI","pow","isFinite","g","h","floor","m","y","exec","parseInt","substr","Number","N","M","H","$","parsed","trim","rgba","isValid","brightness","isDark","isLight","toHex","toRgb","toRgbString","toHsl","toHslString","toHsv","invert","w","saturate","desaturate","grayscale","lighten","darken","rotate","hue","alpha","isEqual","S","lock","unlock","__dangerousOptInToUnstableAPIsOnlyForCoreModules","useGlobalSetting","useGlobalStyle","blockEditorPrivateApis","useStylesPreviewColors","textColor","backgroundColor","headingColor","coreColors","themeColors","customColors","paletteColors","highlightedColors","color","extend","luminance","contrast","isReadable","level","cleanEmptyObject","GlobalStylesContext","STYLE_PROPERTY","__EXPERIMENTAL_STYLE_PROPERTY","blockGap","STYLE_PATH_TO_CSS_VAR_INFIX","STYLE_PATH_TO_PRESET_BLOCK_ATTRIBUTE","SUPPORTED_STYLES","getValueFromObjectPath","fieldName","flatBorderProperties","sides","getFallbackBorderStyleChange","side","globalBorderStyle","setNestedValue","acc","isInteger","cloneDeep","JSON","parse","stringify","PushChangesToGlobalStylesControl","attributes","setAttributes","user","userConfig","setUserConfig","useContext","changes","supports","supportedPanels","blocksStore","getSupportedStyles","useSupportedStyles","blockUserConfig","styles","blocks","flatMap","presetAttributeKey","presetAttributeValue","linkChanges","hoverPath","hoverValue","borderChanges","currentPath","presetColor","userStyle","customColor","getBorderStyleChanges","borderColor","change","useChangesToPush","__unstableMarkNextChangeAsNotPersistent","blockEditorStore","createSuccessNotice","noticesStore","pushChanges","blockStyles","newBlockStyles","newUserConfig","newBlockAttributes","gradient","fontFamily","undoIgnore","sprintf","getBlockType","BaseControl","VisualLabel","disabled","withPushChangesToGlobalStyles","createHigherOrderComponent","BlockEdit","blockEditingMode","useBlockEditingMode","isBlockBasedTheme","coreStore","getCurrentTheme","is_block_theme","supportsStyles","some","feature","hasBlockSupport","InspectorAdvancedControls","isPreviewingTheme","getQueryArg","href","currentlyPreviewingTheme","useHistory","routerPrivateApis","getPostLinkProps","history","params","shouldReplace","currentArgs","getQueryArgs","currentUrlWithoutArgs","removeQueryArgs","wp_theme_preview","addQueryArgs","event","preventDefault","useLink","Link","NAVIGATION_POST_TYPE","TEMPLATE_POST_TYPE","TEMPLATE_PART_POST_TYPE","TEMPLATE_ORIGINS","custom","theme","plugin","TEMPLATE_PART_AREA_DEFAULT_CATEGORY","PATTERN_TYPES","PATTERN_DEFAULT_CATEGORY","PATTERN_USER_CATEGORY","EXCLUDED_PATTERN_SOURCES","PATTERN_SYNC_TYPES","patternPrivateApis","FOCUSABLE_ENTITIES","POST_TYPE_LABELS","LAYOUT_GRID","LAYOUT_TABLE","LAYOUT_LIST","ENUMERATION_TYPE","OPERATOR_IN","OPERATOR_NOT_IN","useLocation","EditTemplatePartMenuItem","slug","templatePart","getEntityRecord","stylesheet","linkProps","postId","postType","canvas","fromTemplateId","BlockControls","group","ToolbarButton","withEditBlockControls","isDisplayed","NavigationMenuEdit","navigationMenu","settings","editedPost","saveViewPanel","isOpen","canvasMode","editorCanvasContainerView","view","STORE_NAME","isTemplateRevertable","template","has_theme_file","__experimentalSetPreviewDeviceType","deviceType","version","hint","editorStore","setDeviceType","setTemplate","addTemplate","newTemplate","saveEntityRecord","editEntityRecord","removeTemplate","deleteEntityRecord","force","lastError","getLastEntityDeleteError","templateTitle","rendered","decodeEntities","error","errorMessage","message","createErrorNotice","setTemplatePart","templatePartId","setNavigationMenu","navigationMenuId","setEditedEntity","setHomeTemplateId","setEditedPostContext","setPage","setNavigationPanelActiveMenu","openNavigationPanelToMenu","setIsNavigationPanelOpened","setIsInserterOpened","setIsListViewOpened","updateSettings","setIsSaveViewOpened","revertTemplate","allowUndo","noticeId","removeNotice","templateEntityConfig","getEntityConfig","fileTemplatePath","baseURL","fileTemplate","apiFetch","serializeBlocks","blocksForSerialization","__unstableSerializeAndClean","edited","getEditedEntityRecord","undoRevert","openGeneralSidebar","toggleDistractionFree","editSiteStoreName","closeGeneralSidebar","switchEditorMode","clearSelectedBlock","speak","setHasPageContentFocus","hasPageContentFocus","batch","createInfoNotice","setCanvasMode","__unstableSetEditorMode","setEditorCanvasContainerView","EMPTY_ARRAY","memoizedGetFilteredTemplatePartBlocks","fn","memoized","searchCache","maxSize","clear","memoize","templateParts","templatePartsById","newTemplateParts","part","stack","innerBlocks","block","unshift","isTemplatePart","__experimentalGetPreviewDeviceType","getDeviceType","getCanUserCreateMedia","coreDataStore","canUser","getReusableBlocks","Platform","OS","getEntityRecords","per_page","getSettings","getHomeTemplateId","getEditedPostType","getEditedPostId","getEditedPostContext","getPage","isInserterOpened","__experimentalGetInsertionPoint","getInsertionPoint","isListViewOpened","isSaveViewOpened","getCurrentTemplateTemplateParts","clientIds","__experimentalGetGlobalBlocksByName","getBlocksByClientId","getFilteredTemplatePartBlocks","getEditorMode","getCurrentTemplateNavigationPanelSubMenu","getNavigationPanelActiveMenu","isNavigationOpened","isPage","getCanvasMode","getEditorCanvasContainerView","storeConfig","registerPrivateSelectors","privateSelectors","registerPrivateActions","privateActions","SidebarButton","SidebarNavigationScreen","isRoot","meta","backPath","backPathProp","dashboardLink","dashboardLinkText","editSiteStore","__experimentalDashboardLink","__experimentalDashboardLinkText","getTheme","navigator","useNavigator","VStack","spacing","alignment","goTo","isBack","goToParent","Heading","SidebarNavigationItem","withChevron","FlexBlock","chevronLeftSmall","chevronRightSmall","isObject","isPlainObject","ctor","prot","mergeBaseAndUserConfigs","GlobalStylesProvider","isUserConfigReady","globalStylesId","isReady","hasFinishedResolution","_globalStylesId","__experimentalGetCurrentGlobalStylesId","record","hasResolved","callback","_record$styles","_record$settings","updatedConfig","useGlobalStylesUserConfig","isBaseConfigReady","baseConfig","__experimentalGetCurrentThemeBaseGlobalStyles","useGlobalStylesBaseConfig","mergedConfig","merged","useGlobalStylesContext","Provider","useGlobalStylesOutput","firstFrame","scale","midFrame","secondFrame","THROTTLE_OPTIONS","leading","trailing","StylesPreview","isFocused","withHoverView","fontWeight","headingFontFamily","headingFontWeight","gradientValue","disableMotion","useReducedMotion","isHovered","setIsHovered","containerResizeListener","useResizeObserver","throttledWidth","setThrottledWidthState","ratioState","setRatioState","setThrottledWidth","useThrottle","useLayoutEffect","newRatio","ratioDiff","abs","ratio","editorStyles","css","isGlobalStyles","position","Iframe","onMouseEnter","onMouseLeave","EditorStyles","background","cursor","overflow","borderRadius","flexGrow","textAlign","areGlobalStyleConfigsEqual","Variation","variation","setIsFocused","_variation$settings","_variation$styles","selectVariation","onKeyDown","keyCode","ENTER","onFocus","onBlur","StyleVariationsContainer","variations","__experimentalGetCurrentThemeGlobalStylesVariations","withEmptyVariation","_variation$settings2","_variation$styles2","Grid","columns","ResizeHandle","direction","resizeWidthBy","LEFT","RIGHT","VisuallyHidden","HANDLE_STYLES_OVERRIDE","userSelect","right","bottom","enableResizing","setWidth","resizableRef","deltaPixels","ResizableBox","api","resizable","onResizeStop","minWidth","maxWidth","enable","showHandle","resizeRatio","handleComponent","handleClasses","handleStyles","getEditorCanvasContainerTitle","createPrivateSlotFill","componentsPrivateApis","privateKey","EditorCanvasContainerSlot","EditorCanvasContainerFill","EditorCanvasContainer","closeButtonLabel","showListViewByDefault","isClosed","setIsClosed","focusOnMountRef","useFocusOnMount","sectionFocusReturnRef","useFocusReturn","onCloseContainer","childrenWithProps","shouldShowCloseButton","ResizableEditor","ESCAPE","defaultPrevented","ExperimentalBlockEditorProvider","useGlobalStylesOutputWithConfig","CompositeV2","Composite","CompositeItemV2","CompositeItem","useCompositeStoreV2","useCompositeStore","Tabs","isObjectEmpty","getExamples","category","createBlock","getBlockTypes","blockType","example","inserter","getBlockFromExample","StyleBookBody","examples","sizes","buttonModeProps","SPACE","readonly","buttonModeStyles","Examples","memo","compositeStore","Example","originalSettings","__unstableIsPreviewMode","renderedBlocks","Disabled","BlockList","renderAppender","showCloseButton","showTabs","resizeObserver","getCategories","globalStyles","TabList","Tab","tabId","focusable","SITE_EDITOR_AUTHORS_QUERY","_fields","capabilities","DEFAULT_QUERY","page","useGlobalStylesRevisions","query","_query","authors","currentUser","isDirty","revisions","isLoadingGlobalStylesRevisions","revisionsCount","_globalStyles$_links$","__experimentalGetDirtyEntityRecords","getCurrentUser","getUsers","getRevisions","isResolving","dirtyEntityRecords","_currentUser","_isDirty","_revisionsCount","_links","globalStylesRevisions","hasUnsavedChanges","_modifiedRevisions","revision","author","find","isLatest","unsavedRevision","avatar_urls","modified","Date","ceil","SidebarNavigationScreenDetailsPanelLabel","SidebarNavigationScreenDetailsPanelRow","extraProps","SidebarNavigationScreenDetailsPanelValue","SidebarNavigationScreenDetailsPanel","SidebarNavigationScreenDetailsFooter","otherProps","hrefProps","createInterpolateElement","humanTimeDiff","dateTime","backup","SidebarNavigationItemGlobalStyles","SidebarNavigationScreenGlobalStylesContent","storedSettings","BlockEditorProvider","onInput","SidebarNavigationScreenGlobalStyles","isLoadingRevisions","isMobileViewport","isViewMode","isStyleBookOpened","openGlobalStyles","Promise","openStyleBook","openRevisions","hasRevisions","modifiedDateTime","shouldShowGlobalStylesFooter","seen","edit","StyleBook","PREFERENCE_NAME","TemplatePartHint","showTemplatePartHint","_select$get","setPreference","Notice","politeness","onRemove","SidebarNavigationScreenMain","navigation","layout","split","useExistingTemplates","useDefaultTemplateTypes","__experimentalGetDefaultTemplateTypes","usePublicPostTypes","postTypes","getPostTypes","excludedPostTypes","viewable","usePostTypeNeedsUniqueIdentifier","publicPostTypes","postTypeLabels","singularName","singular_name","toLowerCase","usePostTypeArchiveMenuItems","postTypesWithArchives","has_archive","existingTemplates","needsUniqueIdentifier","existingTemplate","startsWith","archive","templatePrefix","usePostTypeMenuItems","onClickMenuItem","defaultTemplateTypes","templatePrefixes","postTypesInfo","useEntitiesInfo","existingTemplateSlugs","menuItems","generalTemplateSlug","defaultTemplateType","_slug","hasGeneralTemplate","_needsUniqueIdentifier","menuItemTitle","menuItem","post","hasEntities","config","recordNamePath","queryArgs","search","orderBy","exclude","existingEntitiesIds","getSpecificTemplate","suggestion","templateSlug","postTypesMenuItems","defaultPostTypesMenuItems","useTaxonomiesMenuItems","publicTaxonomies","usePublicTaxonomies","taxonomies","getTaxonomies","visibility","publicly_queryable","taxonomyLabels","taxonomiesInfo","taxonomy","blockMeta","defaultTaxonomiesMenuItems","taxonomiesMenuItems","USE_AUTHOR_MENU_ITEM_TEMPLATE_PREFIX","USE_AUTHOR_MENU_ITEM_QUERY_PARAMETERS","who","entityName","additionalQueryParameters","recordsToExcludePerEntity","useTemplatesToExclude","slugsToExcludePerEntity","entries","slugsWithTemplates","_accumulator","_prefix","substring","useExistingTemplateSlugs","entitiesWithTemplates","SuggestionListItem","entityForSuggestions","baseCssClass","weight","TextHighlight","highlight","link","SuggestionList","composite","setSearch","debouncedSearch","useDebouncedInput","suggestions","records","searchResults","searchHasResolved","useEntityRecords","setSuggestions","newSuggestions","mapToIHasNameAndId","entities","entity","useSearchSuggestions","showSearchControl","setShowSearchControl","SearchControl","search_items","placeholder","not_found","showSearchEntities","setShowSearchEntities","Flex","align","isBlock","all_items","lowerCase","SuppressedError","DEFAULT_SPLIT_REGEXP","DEFAULT_STRIP_REGEXP","noCase","splitRegexp","stripRegexp","delimiter","charAt","re","paramCase","dotCase","createTemplate","setTitle","defaultTitle","isBusy","setIsBusy","onSubmit","kebabCase","TextControl","TemplateActionsLoadingScreen","isFullScreen","isDismissible","shouldCloseOnClickOutside","shouldCloseOnEsc","__experimentalHideHeader","Spinner","DEFAULT_TEMPLATE_SLUGS","TEMPLATE_ICONS","home","verse","single","pin","notFound","list","commentAuthorAvatar","date","calendar","tag","attachment","media","TemplateListItem","modalContentMap","templatesList","customTemplate","customGenericTemplate","NewTemplate","showIcon","showModal","setShowModal","setModalContent","setEntityForSuggestions","isCreatingTemplate","setIsCreatingTemplate","homeUrl","getUnstableBase","TEMPLATE_SHORT_DESCRIPTIONS","getFullYear","isWPSuggestion","is_wp_suggestion","throwOnError","onModalClose","missingTemplates","_entityForSuggestions","enhancedMissingDefaultTemplateTypes","authorMenuItem","authorInfo","useAuthorMenuItem","matchIndex","findIndex","sort","template1","template2","useMissingTemplates","Toggle","restToggleProps","modalTitle","plus","add_new_item","overlayClassName","AddCustomTemplateModalContent","AddCustomGenericTemplateModalContent","AddNewTemplate","templateType","getPostType","TemplateItem","linkInfo","SidebarNavigationScreenTemplates","templates","sortedTemplates","localeCompare","browseAllLink","canCreate","TemplateAreaButton","templatePartArea","__experimentalGetDefaultTemplatePartAreas","defaultArea","limit","ellipsizeMode","numberOfLines","TemplateAreas","templatePartAreas","currentTemplateParts","defaultTemplatePartAreas","templateAreas","templatePartIds","Set","currentTemplatePart","add","clientId","useEditedEntityRecord","isLoaded","__experimentalGetTemplateInfo","getTemplateInfo","usedPostType","usedPostId","_record","_isLoaded","templateInfo","getTitle","getDescription","useAddedBy","getMedia","getUser","originalSource","original_source","authorText","author_text","themeIcon","isCustomized","pluginIcon","siteData","globeIcon","imageUrl","site_logo","source_url","authorIcon","AvatarImage","isImageLoaded","setIsImageLoaded","onLoad","alt","AddedBy","isTemplateRemovable","RenameMenuItem","editedTitle","setEditedTitle","isModalOpen","setIsModalOpen","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","is_custom","fallbackErrorMessage","__next40pxDefaultSize","required","TemplateActions","saveEditedEntityRecord","isRemovable","isRevertable","MenuGroup","DeleteMenuItem","info","revertAndSaveTemplate","isDestructive","ConfirmDialog","onConfirm","onCancel","confirmButtonText","EMPTY_OBJECT","HomeTemplateDetails","allowCommentsOnNewPosts","postsPerPage","postsPageTitle","postsPageId","siteSettings","_postsPageRecord","page_for_posts","default_comment_status","posts_per_page","commentsOnNewPostsValue","setCommentsOnNewPostsValue","postsCountValue","setPostsCountValue","postsPageTitleValue","setPostsPageTitleValue","InputControl","debounce","newValue","NumberControl","spinControls","CheckboxControl","SidebarNavigationScreenTemplate","currentTheme","addedBy","isAddedByActiveTheme","descriptionText","useTemplateDetails","pencil","useExistingTemplateParts","getUniqueTemplatePartTitle","lowercaseTitle","existingTitles","getCleanTemplatePartSlug","CreateTemplatePartModal","CreateTemplatePartModalContents","confirmLabel","onCreate","onError","existingTemplateParts","setArea","isSubmitting","setIsSubmitting","instanceId","useInstanceId","uniqueTitle","cleanSlug","serialize","createTemplatePart","RadioGroup","Radio","filterOutDuplicatesByName","currentItem","items","LEAF_KEY","isShallowEqual","fromIndex","selector","getDependants","rootCache","normalizedGetDependants","WeakMap","callSelector","cache","dependants","dependant","caches","isUniqueByDependants","createCache","getCache","lastDependants","defaultGetName","defaultGetTitle","defaultGetDescription","defaultGetKeywords","keywords","defaultHasCategory","extractWords","Boolean","normalizeSearchInput","getNormalizedSearchTerms","searchItems","searchInput","normalizedSearchTerms","onlyFilterByCategory","categoryId","searchRankConfig","threshold","rankedItems","getItemSearchRank","rank","rank1","rank2","searchTerm","getName","getKeywords","hasCategory","normalizedSearchInput","normalizedTitle","terms","unmatchedTerms","unprocessedTerms","term","unprocessedTerm","removeMatchingTerms","EMPTY_PATTERN_LIST","createTemplatePartId","selectTemplatePartsAsPatterns","createSelector","_getEntityRecords","getIsResolving","__unstableSkipMigrationLogs","categories","isCustom","templatePartToPattern","patterns","templatePartHasCategory","selectThemePatterns","_settings$__experimen","__experimentalAdditionalBlockPatterns","__experimentalBlockPatterns","getBlockPatterns","pattern","selectPatterns","syncStatus","themePatterns","userPatterns","selectUserPatterns","unsynced","currentCategory","getUserPatternCategories","patternPosts","userPatternCategories","userCategory","convertPatternPostToItem","patternPost","wp_pattern_category","patternCategoryId","termLabels","wp_pattern_sync_status","full","usePatterns","categoryType","usePatternCategories","defaultCategories","blockPatternCategories","__experimentalAdditionalBlockPatternCategories","__experimentalBlockPatternCategories","getBlockPatternCategories","useDefaultPatternCategories","blockPatterns","_getSettings$__experi","restBlockPatterns","useThemePatterns","patternCategories","categoryMap","categoriesWithCounts","uncategorized","cat","sortedCategories","hasPatterns","CreatePatternModal","editPatternsPrivateApis","AddNewPattern","showPatternModal","setShowPatternModal","showTemplatePartModal","setShowTemplatePartModal","createPatternFromFile","patternsStore","patternUploadInputRef","handleError","controls","symbolFilled","upload","click","onSuccess","accept","file","files","currentCategoryId","CategoryItem","useTemplatePartsGroupedByArea","allItems","knownAreas","TemplatePartGroup","areas","currentArea","currentType","getTemplatePartIcon","PatternCategoriesGroup","SidebarNavigationScreenPatterns","hasTemplateParts","useTemplatePartAreas","isTemplatePartsMode","supportsTemplatePartsMode","templatePartsLink","didAccessPatternsPage","postTypesWithoutParentTemplate","useInitEditedEntity","hasLoadedAllDependencies","homepageId","url","frontPageTemplateId","getSite","_frontPateTemplateId","frontPageTemplate","show_on_front","page_on_front","resolvedTemplateId","getDefaultTemplateId","__experimentalGetTemplateForLink","resolveTemplateForPostTypeAndId","postTypeToResolve","postIdToResolve","editedEntity","currentTemplateSlug","currentTemplate","useResolveEditedEntityAndContext","useInitEditedEntityFromURL","sentenceCaseTransform","upperCaseFirst","getPathFromURL","urlParams","_urlParams$path","encodeURIComponent","POPOVER_PROPS","LeafMoreMenu","moveBlocksDown","moveBlocksUp","removeBlocks","removeLabel","BlockTitle","maximumLength","goToLabel","rootClientId","getBlockRootClientId","onGoToPage","selectedBlock","kind","noIcons","chevronUp","chevronDown","PrivateListView","PAGES_QUERY","orderby","NavigationMenuContent","listViewRootClientId","areInnerBlocksControlled","getBlockName","getBlockCount","getBlockOrder","blockClientIds","pageListHasBlocks","isLoadingPages","replaceBlock","offCanvasOnselect","blockSettingsMenu","showAppender","NavigationMenuEditor","useNavigationMenuTitle","editedRecord","TemplatePartNavigationMenu","upperCase","TemplatePartNavigationMenuListItem","TemplatePartNavigationMenuList","menus","menuId","TemplatePartNavigationMenus","useNavigationMenuContent","getBlocksFromRecord","navigationBlocks","targetBlockType","findInBlocks","_blocks","innerNavigationBlocks","getBlocksOfTypeFromBlocks","navigationMenuIds","uniqueNavigationMenuIds","SidebarNavigationScreenPattern","patternDetails","details","areaDetailValue","origin","usePatternDetails","PRELOADED_NAVIGATION_MENUS_QUERY","notEmptyString","testString","RenameModal","menuTitle","onSave","editedMenuTitle","setEditedMenuTitle","isEditedMenuTitleValid","ScreenNavigationMoreMenu","onDelete","onDuplicate","renameModalOpen","setRenameModalOpen","deleteModalOpen","setDeleteModalOpen","closeModals","DeleteModal","buildNavigationLabel","EditButton","SingleNavigationMenu","handleDelete","handleDuplicate","handleSave","SidebarNavigationScreenWrapper","SidebarNavigationScreenNavigationMenu","useEntityRecord","isSaving","isDeleting","isSavingEntityRecord","isDeletingEntityRecord","useNavigationMenuHandlers","_handleDelete","_handleSave","edits","_handleDuplicate","useDeleteNavigationMenu","useSaveNavigationMenu","getEditedEntityRecordSelector","originalRecord","recordPropertiesToSave","useDuplicateNavigationMenu","savedRecord","hasCreatedFallback","SidebarNavigationScreenNavigationMenus","navigationMenus","isResolvingNavigationMenus","hasResolvedNavigationMenus","getNavigationFallbackId","firstNavigationMenu","hasNavigationMenus","NavMenuItem","buildMenuLabel","SidebarNavigationScreenTemplatesBrowse","SaveButton","defaultLabel","isSaveViewOpen","previewingThemeName","isActivatingTheme","previewingTheme","activateSaveEnabled","displayShortcut","primary","PUBLISH_ON_SAVE_ENTITIES","SaveHub","saveNoticeId","__unstableMarkLastChangeAsPersistent","dirtyCurrentEntity","countUnsavedChanges","calcDirtyCurrentEntity","_n","typeToPublish","AddNewPageModal","isCreatingPage","setIsCreatingPage","newPage","PageItem","SidebarNavigationScreenPages","pages","isLoadingTemplates","dynamicPageTemplates","homeTemplate","pagesAndTemplates","frontPage","postsPage","isHomePageBlog","reorderedPages","homePageIndex","homePage","postsPageIndex","blogPage","showAddPage","setShowAddPage","getPageProps","itemIcon","postsPageTemplateId","pagesLink","manageAllPagesProps","__experimentalAdminViews","handleNewPage","DEFAULT_CONFIG_PER_VIEW_TYPE","mediaField","primaryField","DEFAULT_PAGE_BASE","filters","perPage","field","hiddenFields","DEFAULT_VIEWS","operator","trash","DropdownMenuV2","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuItemLabelV2","DropdownMenuItemLabel","ButtonTrigger","DropdownMenuItemTrigger","hideOnClick","RenderModal","ActionWithModal","ActionTrigger","actionTriggerProps","hideModalHeader","modalHeader","ActionsDropdownMenuGroup","ItemActions","isCompact","primaryActions","secondaryActions","isEligible","isPrimary","CompactItemActions","flexShrink","trigger","radioCheck","Circle","cx","cy","DropdownMenuRadioItemCustom","DropdownMenuRadioItemV2","DropdownMenuRadioItem","DropdownMenuSeparatorV2","DropdownMenuSeparator","DropdownMenuItemHelpTextV2","DropdownMenuItemHelpText","sortArrows","asc","desc","HeaderMenu","onChangeView","onHide","isHidable","enableHiding","isSortable","enableSorting","isSorted","filterInView","activeElement","activeOperator","otherFilters","operators","filterBy","OPERATORS","sanitizeOperators","elements","isFilterable","WithSeparators","SORTING_DIRECTIONS","unseen","funnel","VIEW_LAYOUTS","component","fields","getItemId","deferredRendering","headerMenuRefs","headerMenuToFocusRef","nextHeaderMenuToFocus","setNextHeaderMenuToFocus","focus","asyncData","useAsyncList","tableNoticeId","useId","fallback","visibleFields","usedData","hasData","sortValues","blockTable","shownData","renderedValue","onSelectionChange","onDetailsChange","selection","onEnter","formatListBulletsRTL","formatListBullets","DataViewItem","customViewId","iconToUse","activeView","AddNewItemModalContent","setIsAdding","setIsSaving","resolveSelect","dataViewTaxonomyId","dataViewTypeRecords","wp_dataviews_type","AddNewItem","isAdding","RenameItemModalContent","dataviewId","currentTitle","setIsRenaming","CustomDataViewItem","dataview","isRenaming","CustomDataViewsList","customDataViews","useCustomDataViews","customViewRecord","PATH_TO_TYPE","DataViewsSidebarContent","SidebarNavigationScreenPagesDataViews","templateRecords","StatusLabel","short","relateToNow","statusLabel","formattedDate","dateI18n","getDate","AVERAGE_READING_RATE","PageDetails","parentTitle","isPostsPage","_templateTitle","_parentTitle","parent","password","safeDecodeURIComponent","generated_slug","wordCountType","wordsCounted","wordCount","readingTime","toLocaleString","getPageDetails","TrashPageMenuItem","removePage","PageActions","SidebarNavigationScreenPage","featuredMediaAltText","featuredMediaSourceUrl","attachedMedia","featured_media","media_details","medium","escapeAttribute","alt_text","featureImageAltText","ExternalLink","filterURLForDisplay","excerpt","stripHTML","SidebarScreenWrapper","SidebarScreens","navigatorLocation","navigatorParams","isMounting","updateUrlParams","newUrlParams","subset","superset","every","updatedParams","useSyncPathWithURL","DefaultSidebar","ComplementaryArea","IconWithCurrentColor","GenericNavigationButton","NavigationButtonAsItem","useHasDimensionsPanel","useHasTypographyPanel","useHasColorPanel","useSettingsForBlockElement","rawSettings","hasTypographyPanel","hasColorPanel","hasLayoutPanel","typography","customCSS","hasVariations","canEditCSS","CardMedia","RootMenu","CardDivider","Spacer","paddingX","marginBottom","useBlockVariations","getBlockStyles","VariationsPanel","coreBlockStyles","isBordered","isSeparated","isDefault","onBack","View","paddingY","NavigatorToParentButton","useHasBorderPanel","useBlockHasGlobalStyles","blockName","hasBorderPanel","hasDimensionsPanel","hasVariationsPanel","BlockMenuItem","navigationButtonLabel","BlockIcon","MemoizedBlockList","filterValue","sortedBlockTypes","blockItems","core","coreItems","noncore","nonCoreItems","groupByType","useSortedBlockTypes","debouncedSpeak","useDebounce","isMatchingSearchTerm","filteredBlockTypes","blockTypesListRef","childElementCount","resultsFoundMessage","setFilterValue","deferredFilterValue","useDeferredValue","ScreenHeader","BlockPreviewPanel","_blockExample$viewpor","blockExample","viewportWidth","previewHeight","marginX","BlockPreview","minHeight","additionalStyles","applyFallbackStyle","hasColorOrWidth","useHasEffectsPanel","useHasFiltersPanel","useHasImageSettingsPanel","BorderPanel","StylesBorderPanel","ColorPanel","StylesColorPanel","TypographyPanel","StylesTypographyPanel","DimensionsPanel","StylesDimensionsPanel","EffectsPanel","StylesEffectsPanel","FiltersPanel","StylesFiltersPanel","ImageSettingsPanel","AdvancedPanel","StylesAdvancedPanel","prefixParts","shouldDecodeEncode","inheritedStyle","setStyle","userSettings","setSettings","__experimentalSkipSerialization","spacingType","blockVariations","hasEffectsPanel","hasFiltersPanel","hasImageSettingsPanel","currentBlockStyle","inheritedStyleWithLayout","styleWithLayout","Subtitle","inheritedValue","newStyle","updatedStyle","includeLayoutControls","radius","newBorder","hasSplitBorders","applyAllFallbackStyles","updatedBorder","newSetting","lightbox","PanelBody","initialOpen","ElementItem","parentMenu","extraStyles","textDecoration","fontStyle","letterSpacing","ALLOWED_FILE_EXTENSIONS","FONT_WEIGHTS","FONT_STYLES","normal","italic","setUIValuesNeeded","font","extraValues","getFontFaceVariantName","face","mergeFontFaces","existing","incoming","loadFontFaceInBrowser","fontFace","addTo","dataSource","File","arrayBuffer","newFont","FontFace","loadedFace","load","fonts","contentDocument","getDisplaySrcFromFontFace","urlPrefix","decodeURIComponent","encodeURI","toggleFont","initialfonts","isFontActivated","activatedFont","isFaceActivated","newFontFaces","toggleFontVariant","toggleEntireFontFamily","FontLibraryContext","createContext","fontFamiliesHasChanges","fontFamilies","isInstalling","setIsInstalling","refreshKey","setRefreshKey","refreshLibrary","now","libraryPosts","isResolvingLibrary","hasResolvedLibrary","libraryFonts","setFontFamilies","baseFontFamilies","modalTabOpen","setModalTabOpen","libraryFontSelected","setLibraryFontSelected","baseThemeFonts","themeFonts","customFonts","baseCustomFonts","loadedFontUrls","site","themeUrl","getAvailableFontsOutline","availableFontFamilies","availableFontFaces","getActivatedFontsOutline","collections","setFontCollections","response","method","fetchFontCollections","getFontCollections","handleSetLibraryFontSelected","fontSelected","getFontFacesActivated","loadFontFaceAsset","installFont","formData","FormData","newFontFamily","faceIndex","fileId","append","faceWithoutFileProperty","uploadedFile","makeFormDataFromFontFamily","fetchInstallFont","fontToBeActivated","matches","incomingFont","existingFont","matchingFaces","getIntersectingFontFaces","successes","fontsToAdd","newCustomFonts","incomingFontFaces","restIncoming","mergedFontFaces","mergeFontFamilies","activateCustomFontFamilies","errors","uninstallFont","font_families","fetchUninstallFonts","_fontFamilies$font$so","deactivateFontFamily","console","toggleActivateFont","_fontFamilies$font$so2","newFonts","toggleModal","tabName","saveFontFamilies","getFontCollection","collection","fetchFontCollection","updatedCollections","handleBack","margin","pageSize","lastItem","setLastItem","itemsLimit","observer","IntersectionObserver","entry","isIntersecting","prevPage","observe","disconnect","formatFontFamily","getFamilyPreviewStyle","family","normalFaces","normalWeights","fontFaces","weights","extractFontWeights","nearestWeight","numbers","customPreviewUrl","setIsIntersecting","isAssetLoaded","setIsAssetLoaded","previewUrl","preview","getPreviewUrl","isPreviewImage","textDemoStyle","whiteSpace","loadAsset","loading","isIstalled","displayName","checkboxId","htmlFor","FontFaceDemo","handleToggleActivation","getNumericFontWeight","sortFontFaces","faces","LibraryFontVariant","variantsText","fakeFontFace","fake","displayFontFace","demoStyle","variantsCount","FontDemo","variantsInstalled","variantsActive","FontCard","isConfirmDeleteOpen","handleConfirmUninstall","handleCancelUninstall","cancelButtonText","getNoticeFromInstallResponse","ProgressBar","Footer","shouldDisplayDeleteButton","handleUninstallClick","setIsConfirmDeleteOpen","handleUnselectFont","handleSelectFont","notice","setNotice","uninstallNotice","getNoticeFromUninstallResponse","tabDescription","timeout","clearTimeout","TabPanelLayout","ConfirmDeleteDialog","FontsGrid","LibraryFontCard","LibraryFontDetails","handleToggleVariant","selected","isFontFontFaceInOutline","outline","fontToInstallOutline","CollectionFontVariant","handleConfirm","localStorage","setItem","DEFAULT_CATEGORY","handleInstall","_selectedCollection$d2","requiresPermission","getGoogleFontsPermissionFromStorage","getItem","selectedFont","setSelectedFont","fontsToInstall","setFontsToInstall","setFilters","renderConfirmDialog","setRenderConfirmDialog","selectedCollection","handleStorage","resetFilters","duration","_notice$duration","collectionFonts","_selectedCollection$d","collectionCategories","filteredFonts","filterFonts","debouncedUpdateSearchInput","getFontsOutline","installNotice","GoogleFontsConfirmDialog","resetSearch","SelectControl","CollectionFontDetails","newFontsToInstall","globalThis","fetch","detail","writable","__mayPropagate","stopPropagation","valueOf","EventManager","listeners","listener","useCapture","bin","startDate","getTime","Parser","dict","increment","getValue","currentPosition","padStart","trace","uint32","fixed","int16","uint16","legacyFixed","major","minor","uint24","uint128","byte","longdatetime","int64","fword","ufword","Offset16","Offset32","F2DOT14","verifyLength","readBytes","signed","ParsedData","parser","pGetter","startGetter","struct","getOwnPropertyDescriptor","SimpleTable","super","lazy$1","SFNT","createTable","numTables","searchRange","entrySelector","rangeShift","directory","TableRecord","checksum","gzipDecode","WOFF$1","signature","flavor","totalSfntSize","majorVersion","minorVersion","metaOffset","metaLength","metaOrigLength","privOffset","privLength","WoffTableDirectoryEntry","buildWoffLazyLookups","compLength","origLength","origChecksum","woff","unpacked","onerror","DataView","brotliDecode","WOFF2$1","totalCompressedSize","Woff2TableDirectoryEntry","decoded","dictOffset","transformLength","woff2","buildWoff2LazyLookups","tagNumber","hasTransforms","transformVersion","tableClasses","tableClassesLoaded","Type","warn","loadTableClasses","checkLoaded","resolve","reject","then","cmap$1","head$1","hhea$1","hmtx$1","maxp$1","name$1","OS2$1","post$1","BASE$1","GDEF$1","GSUB$1","GPOS$1","SVG$1","fvar$1","cvt$1","fpgm$1","gasp$1","glyf$1","loca$1","prep$1","CFF$1","CFF2$1","VORG$1","EBLC$1","EBDT$1","EBSC$1","CBLC$1","CBDT$1","sbix$1","COLR$1","CPAL$1","DSIG$1","hdmx$1","kern$1","LTSH$1","MERG$1","meta$1","PCLT$1","VDMX$1","vhea$1","vmtx$1","TTF","OTF","WOFF","WOFF2","ar1","ar2","Font","metrics","__src","skipStyleSheet","format","errorOnStyle","lastIndexOf","ext","ttf","otf","eot","svg","fon","ttc","getFontCSSFormat","rules","styleRules","textContent","setupFontFace","loadFont","filename","ok","statusText","checkFetchResponseStatus","fromDataBuffer","catch","filenameOrUrL","fontData","LEAD_BYTES","getUint8","validFontFormat","parseBasicData","onload","opentype","getGlyphId","char","cmap","reverse","glyphid","supportsVariation","measureText","__unloaded","bbox","getBoundingClientRect","OS2","ascender","sTypoAscender","descender","sTypoDescender","unload","styleElement","removeElement","onunload","_unloaded","Subtable","plaformID","encodingID","Format0","platformID","language","glyphIdArray","charCode","glyphID","getSupportedCharCodes","Format2","subHeaderKeys","subHeaderCount","subHeaderOffset","SubHeader","glyphIndexOffset","high","subHeaderKey","subHeaders","subheader","first","firstCode","entryCount","preservePropNames","lastCode","idDelta","idRangeOffset","Format4","segCountX2","segCount","endCodePosition","startCodePosition","idDeltaPosition","idRangePosition","glyphIdArrayPosition","glyphIdArrayLength","tableStart","buildSegments","startCode","endCode","idRangeOffsetPointer","glyphIDs","segments","unicode","fromCodePoint","segment","Format6","Format8","is32","numGroups","SequentialMapGroup$1","groups","startcharCode","endcharCode","startGlyphID","Format10","startCharCode","numChars","endCharCode","Format12","SequentialMapGroup","Format13","ConstantMapGroup","Format14","subTableStart","numVarSelectorRecords","VariationSelector","varSelector","uvs","getSupportedVariations","varSelectors","defaultUVSOffset","nonDefaultUVSOffset","EncodingRecord","createSubTable","freeze","encodingRecords","getSubTable","tableID","getSupportedEncodings","encodingId","recordID","fontRevision","checkSumAdjustment","magicNumber","unitsPerEm","created","xMin","yMin","xMax","yMax","macStyle","lowestRecPPEM","fontDirectionHint","indexToLocFormat","glyphDataFormat","hhea","lineGap","advanceWidthMax","minLeftSideBearing","minRightSideBearing","xMaxExtent","caretSlopeRise","caretSlopeRun","caretOffset","metricDataFormat","numberOfHMetrics","LongHorMetric","advanceWidth","lsb","hmtx","numGlyphs","maxp","metricsStart","lsbStart","maxPoints","maxContours","maxCompositePoints","maxCompositeContours","maxZones","maxTwilightPoints","maxStorage","maxFunctionDefs","maxInstructionDefs","maxStackElements","maxSizeOfInstructions","maxComponentElements","maxComponentDepth","LangTagRecord","NameRecord","nameTable","languageID","nameID","stringStart","bytes","decodeString","stringOffset","nameRecords","langTagCount","langTagRecords","xAvgCharWidth","usWeightClass","usWidthClass","fsType","ySubscriptXSize","ySubscriptYSize","ySubscriptXOffset","ySubscriptYOffset","ySuperscriptXSize","ySuperscriptYSize","ySuperscriptXOffset","ySuperscriptYOffset","yStrikeoutSize","yStrikeoutPosition","sFamilyClass","panose","ulUnicodeRange1","ulUnicodeRange2","ulUnicodeRange3","ulUnicodeRange4","achVendID","fsSelection","usFirstCharIndex","usLastCharIndex","sTypoLineGap","usWinAscent","usWinDescent","ulCodePageRange1","ulCodePageRange2","sxHeight","sCapHeight","usDefaultChar","usBreakChar","usMaxContext","usLowerOpticalPointSize","usUpperOpticalPointSize","macStrings","italicAngle","underlinePosition","underlineThickness","isFixedPitch","minMemType42","maxMemType42","minMemType1","maxMemType1","glyphNameIndex","namesOffset","glyphNameOffsets","bytelength","int8","getGlyphName","AxisTable","baseTagListOffset","baseScriptListOffset","BaseTagListTable","BaseScriptListTable","baseTagCount","baselineTags","baseScriptCount","recordStart","BaseScriptRecord","baseScriptListTableStart","baseScriptTag","baseScriptOffset","BaseScriptTable","baseValuesOffset","defaultMinMaxOffset","baseLangSysCount","baseLangSysRecords","BaseLangSysRecord","BaseValuesTable","MinMaxTable","baseScriptTableStart","baseLangSysTag","minMaxOffset","defaultBaselineIndex","baseCoordCount","baseCoords","getTable","BaseCoordTable","minCoord","maxCoord","featMinMaxCount","FeatMinMaxRecord","featureTableTag","baseCoordFormat","coordinate","referenceGlyph","baseCoordPoint","deviceTable","BASE","horizAxisOffset","vertAxisOffset","itemVarStoreOffset","ClassDefinition","classFormat","glyphCount","classValueArray","classRangeCount","classRangeRecords","ClassRangeRecord","endGlyphID","class","CoverageTable","coverageFormat","glyphArray","rangeCount","rangeRecords","CoverageRangeRecord","startCoverageIndex","ItemVariationStoreTable","variationRegionListOffset","itemVariationDataCount","itemVariationDataOffsets","AttachList","coverageOffset","attachPointOffsets","getPoint","pointID","AttachPoint","pointCount","pointIndices","LigCaretList","ligGlyphCount","ligGlyphOffsets","getLigGlyph","ligGlyphID","LigGlyph","caretCount","caretValueOffsets","getCaretValue","caretID","CaretValue","caretValueFormat","caretValuePointIndex","deviceOffset","MarkGlyphSetsTable","markGlyphSetTableFormat","markGlyphSetCount","coverageOffsets","getMarkGlyphSet","markGlyphSetID","GDEF","glyphClassDefOffset","attachListOffset","ligCaretListOffset","markAttachClassDefOffset","markGlyphSetsDefOffset","ScriptList","static","scriptCount","scriptRecords","ScriptRecord","scriptTag","scriptOffset","ScriptTable","defaultLangSys","langSysCount","langSysRecords","LangSysRecord","langSysTag","langSysOffset","LangSysTable","lookupOrder","requiredFeatureIndex","featureIndexCount","featureIndices","FeatureList","featureCount","featureRecords","FeatureRecord","featureTag","featureOffset","FeatureTable","featureParams","lookupIndexCount","lookupListIndices","getFeatureParams","Size","CharacterVariant","StylisticSet","featUiLabelNameId","featUiTooltipTextNameId","sampleTextNameId","numNamedParameters","firstParamUiLabelNameId","charCount","character","designSize","subfamilyIdentifier","subfamilyNameID","smallEnd","largeEnd","UINameID","undoCoverageOffsetParsing","instance","getCoverageTable","LookupType$1","substFormat","SubstLookupRecord","glyphSequenceIndex","lookupListIndex","LookupType1$1","deltaGlyphID","LookupType2$1","sequenceCount","sequenceOffsets","getSequence","SequenceTable","substituteGlyphIDs","LookupType3$1","alternateSetCount","alternateSetOffsets","getAlternateSet","AlternateSetTable","alternateGlyphIDs","LookupType4$1","ligatureSetCount","ligatureSetOffsets","getLigatureSet","LigatureSetTable","ligatureCount","ligatureOffsets","getLigature","LigatureTable","ligatureGlyph","componentCount","componentGlyphIDs","LookupType5$1","subRuleSetCount","subRuleSetOffsets","classDefOffset","subClassSetCount","subClassSetOffsets","substitutionCount","substLookupRecords","getSubRuleSet","SubRuleSetTable","getSubClassSet","SubClassSetTable","subRuleCount","subRuleOffsets","getSubRule","SubRuleTable","inputSequence","subClassRuleCount","subClassRuleOffsets","getSubClass","SubClassRuleTable","LookupType6$1","chainSubRuleSetCount","chainSubRuleSetOffsets","backtrackClassDefOffset","inputClassDefOffset","lookaheadClassDefOffset","chainSubClassSetCount","chainSubClassSetOffsets","backtrackGlyphCount","backtrackCoverageOffsets","inputGlyphCount","inputCoverageOffsets","lookaheadGlyphCount","lookaheadCoverageOffsets","seqLookupCount","seqLookupRecords","SequenceLookupRecord","getChainSubRuleSet","ChainSubRuleSetTable","getChainSubClassSet","ChainSubClassSetTable","getCoverageFromOffset","chainSubRuleCount","chainSubRuleOffsets","ChainSubRuleTable","backtrackSequence","lookAheadSequence","lookAheadGlyphCount","SubstCount","chainSubClassRuleCount","chainSubClassRuleOffsets","ChainSubClassRuleTable","sequenceIndex","LookupType7$1","extensionLookupType","extensionOffset","LookupType8$1","GSUBtables","buildSubtable","subtable","LookupType","LookupType1","log","LookupType2","LookupType3","LookupType4","LookupType5","LookupType6","LookupType7","LookupType8","LookupType9","GPOStables","LookupList","lookupCount","lookups","LookupTable","ctType","lookupType","lookupFlag","subTableCount","subtableOffsets","markFilteringSet","rightToLeft","ignoreBaseGlyphs","ignoreLigatures","ignoreMarks","useMarkFilteringSet","markAttachmentType","builder","CommonLayoutTable","scriptListOffset","featureListOffset","lookupListOffset","featureVariationsOffset","no_content","EMPTY","FeatureVariations","getSupportedScripts","scriptList","getScriptTable","ensureScriptTable","getSupportedLangSys","scriptTable","hasDefault","supported","getDefaultLangSysTable","defaultForScript","getLangSysTable","getFeatures","langSysTable","getFeature","indexOrTag","featureList","getLookups","featureTable","getLookup","lookupIndex","lookupOffset","lookupList","GSUB","GPOS","SVGDocumentList","numEntries","documentRecords","SVGDocumentRecord","getDocument","documentID","svgDocOffset","svgDocLength","getDocumentForGlyph","offsetToSVGDocumentList","documentList","VariationAxisRecord","minValue","defaultValue","maxValue","axisNameID","InstanceRecord","axisCount","coordinates","postScriptNameID","fvar","axesArrayOffset","axisSize","instanceCount","instanceSize","axisStart","instanceStart","instances","getSupportedAxes","axes","getAxis","cvt","fpgm","GASPRange","rangeMaxPPEM","rangeGaspBehavior","gasp","numRanges","glyf","getGlyphData","loca","x2","getGlyphDataOffsetAndLength","offsets","prep","CFF","CFF2","VertOriginYMetric","glyphIndex","vertOriginY","VORG","defaultVertOriginY","numVertOriginYMetrics","BitmapSize","indexSubTableArrayOffset","indexTablesSize","numberofIndexSubTables","colorRef","hori","SbitLineMetrics","vert","startGlyphIndex","endGlyphIndex","ppemX","ppemY","bitDepth","BitmapScale","substitutePpemX","substitutePpemY","widthMax","caretSlopeNumerator","caretSlopeDenominator","minOriginSB","minAdvanceSB","maxBeforeBL","minAfterBL","pad1","pad2","EBLC","numSizes","EBDT","EBSC","CBLC","CBDT","sbix","numStrikes","BaseGlyphRecord","gID","firstLayerIndex","numLayers","LayerRecord","paletteIndex","COLR","numBaseGlyphRecords","baseGlyphRecordsOffset","layerRecordsOffset","numLayerRecords","getBaseGlyphRecord","firstID","lastID","mid","middle","midID","getLayers","ColorRecord","blue","green","red","PaletteTypeArray","numPalettes","paletteTypes","PaletteLabelsArray","paletteLabels","PaletteEntryLabelArray","paletteEntryLabels","CPAL","numPaletteEntries","numColorRecords","offsetFirstColorRecord","colorRecordIndices","offsetPaletteTypeArray","offsetPaletteLabelArray","offsetPaletteEntryLabelArray","SignatureRecord","SignatureBlockFormat1","signatureLength","DSIG","numSignatures","signatureRecords","getData","signatureID","DeviceRecord","pixelSize","widths","hdmx","numRecords","sizeDeviceRecord","int32","KernSubTable","coverage","nPairs","Pair","horizontal","minimum","crossstream","override","kern","nTables","LTSH","yPels","MERG","mergeClassCount","mergeDataOffset","classDefCount","offsetToClassDefOffsets","DataMap","dataOffset","dataLength","currentField","dataMapsCount","dataMaps","PCLT","RatioRange","bCharSet","xRatio","yStartRatio","yEndRatio","VDMXGroup","recs","startsz","endsz","vTable","yPelHeight","VDMX","numRecs","numRatios","ratRanges","VDMXGroups","vhea","ascent","vertTypoAscender","descent","vertTypoDescender","vertTypoLineGap","advanceHeightMax","minTopSideBearing","minBottomSideBearing","yMaxExtent","reserved","numOfLongVerMetrics","LongVertMetric","advanceHeight","topSideBearing","vmtx","lazy","tsbStart","isUploading","setIsUploading","supportedFormats","extension","handleFilesUpload","uniqueFilenames","allowedFiles","fileExtension","pop","loadFiles","fontFacesLoaded","fontFaceData","getFontFaceMetadata","fontFile","reader","FileReader","readAsArrayBuffer","readFileAsArrayBuffer","fontObj","fontName","isItalic","weightAxis","fontFamiliesObject","makeFamiliesFromFaces","DropZone","onFilesDrop","FormFileUpload","multiple","openFileDialog","LocalFonts","DEFAULT_TABS","tabsFromCollections","initialTabId","contents","UploadFonts","InstalledFonts","FontCollection","previewStyle","handleClick","FontFamilies","FontLibraryModal","Tooltip","FontFamilyItem","FontLibraryProvider","__experimentalDisableFontLibrary","TypographyElements","headingLevel","TypographyPreview","heading","caption","button","setHeadingLevel","ToggleGroupControl","hideLabelFromVision","ToggleGroupControlOption","EMPTY_COLORS","defaultColors","defaultPaletteEnabled","randomizeThemeColors","setThemeColors","useColorRandomizer","__experimentalEnableColorRandomizer","randomRotationValue","random","newColors","colorObject","newColor","colord","colors","screenPath","paletteButtonText","ZStack","isLayered","ColorIndicatorWrapper","ColorIndicator","colorValue","shuffle","Palette","mobilePopoverProps","ColorPalettePanel","baseThemeColors","setDefaultColors","baseDefaultColors","setCustomColors","PaletteEdit","canReset","canOnlyChangeValues","paletteLabel","paletteLabelHeadingLevel","emptyMessage","slugPrefix","GradientPalettePanel","themeGradients","setThemeGradients","baseThemeGradients","defaultGradients","setDefaultGradients","baseDefaultGradients","customGradients","setCustomGradients","customDuotone","defaultDuotone","themeDuotone","defaultDuotoneEnabled","duotonePalette","gradients","paletteLabelLevel","DuotonePicker","disableCustomDuotone","disableCustomColors","clearable","DEFAULT_CONTROLS","contentSize","wideSize","childLayout","updatedSettings","definitions","defaultControls","__unstableGetEditorMode","shouldRevertInitialMode","renderedBlocksArray","getGlobalStylesChanges","ChangesSummary","previousRevision","maxResults","userRevisions","selectedRevisionId","canApplyRevision","onApplyRevision","currentThemeName","dateNowInMs","datetimeAbbreviated","formats","isUnsaved","revisionAuthor","authorDisplayName","authorAvatar","areStylesEqual","isReset","modifiedDate","displayDate","revisionLabel","formattedModifiedDate","getRevisionLabel","Pagination","currentPage","numPages","changePage","totalItems","buttonVariant","expanded","currentEditorGlobalStyles","getBlocks","setCurrentPage","currentRevisions","setCurrentRevisions","currentlySelectedRevision","setCurrentlySelectedRevision","isLoadingRevisionWithUnsavedChanges","setIsLoadingRevisionWithUnsavedChanges","selectedRevisionMatchesEditorStyles","onCloseRevisions","restoreRevision","firstRevision","currentlySelectedRevisionId","shouldSelectFirstItem","isLoadButtonEnabled","Revisions","RevisionsButtons","useGlobalStylesReset","GlobalStylesMenuSlot","GlobalStylesMenuFill","createSlotFill","GlobalStylesActionMenu","onReset","loadCustomCSS","GlobalStylesNavigationScreen","BlockStylesNavigationScreens","ScreenBlock","ContextScreens","blockStyleVariations","ScreenColorPalette","GlobalStylesStyleBook","GlobalStylesBlockLink","selectedBlockName","selectedBlockClientId","getSelectedBlockClientId","blockHasGlobalStyles","newPath","skipFocus","GlobalStylesEditorCanvasContainerLink","ScreenRoot","ScreenStyleVariations","ScreenBlockList","ScreenTypography","ScreenTypographyElement","ScreenColors","ScreenLayout","ScreenCSS","ScreenRevisions","GlobalStylesSidebar","shouldClearCanvasContainerView","isRevisionsOpened","isRevisionsStyleBookOpened","canvasContainerView","_isVisualEditorMode","_isEditCanvasMode","_showListViewByDefault","toggleStyleBook","toggleRevisions","GlobalStylesUI","SIDEBAR_TEMPLATE","SIDEBAR_BLOCK","SettingsHeader","sidebarName","isEditingPage","entityType","getRenderingMode","entityLabel","templateAriaLabel","openTemplateSettings","openBlockSettings","SidebarCard","BlockQuickNavigation","PageContent","clientIdsTree","getEnabledClientIdsTree","PostPanelRow","editorPrivateApis","STATUS_OPTIONS","PageStatus","showPassword","setShowPassword","popoverAnchor","setPopoverAnchor","anchor","saveStatus","newStatus","newPassword","newDate","handleTogglePassword","handleStatus","setDate","Dropdown","contentClassName","focusOnMount","renderToggle","onToggle","renderContent","InspectorPopoverHeader","RadioControl","PageSummary","PostSchedulePanel","PostTemplatePanel","PostURLPanel","PostAuthorPanel","PagePanels","renderingMode","pageIcon","PostLastRevisionPanel","PostTaxonomiesPanel","PostFeaturedImagePanel","PostExcerptPanel","PostDiscussionPanel","PageAttributesPanel","ReplaceTemplateButton","availableTemplates","TemplatesList","selectedTemplate","shownTemplates","BlockPatternsList","shownPatterns","onClickPattern","injectThemeAttributeInBlockTemplateContent","currentThemeStylesheet","innerBlock","preparePatterns","filterOutExcludedPatternSources","templateTypes","filterCompatiblePatterns","Actions","availablePatterns","useAvailablePatterns","TemplateAreaItem","selectBlock","toggleBlockHighlight","highlightBlock","cancelHighlightBlock","onMouseOver","CARD_ICONS","wp_block","wp_navigation","TemplatePanel","_CARD_ICONS$record$ty","PluginTemplateSettingPanel","InspectorSlot","InspectorFill","SidebarInspectorFill","SidebarComplementaryAreaFills","isEditorSidebarOpened","hasBlockSelection","supportsGlobalStyles","_sidebar","_isEditorSidebarOpened","getBlockSelectionStart","drawerLeft","drawerRight","CodeEditor","getShortcutRepresentation","keyboardShortcutsStore","_type","_id","realContent","Function","Textarea","autoComplete","dir","isBlockInspectorOpen","replaceBlocks","getBlockAttributes","handleTextLevelShortcut","destinationBlockName","currentClientId","destinationTextAlign","useShortcut","WelcomeGuideImage","nonAnimatedSrc","animatedSrc","srcSet","WelcomeGuideEditor","Guide","contentLabel","finishButtonText","onFinish","image","StylesIconImage","WelcomeGuideStyles","isStylesOpen","welcomeLabel","WelcomeGuidePage","isPageActive","isEditorActive","autoPlay","loop","muted","WelcomeGuideTemplate","isTemplateActive","WelcomeGuide","PatternSelection","fallbackContent","onChoosePattern","useEntityBlockEditor","useStartPatterns","shownBlockPatterns","StartModal","templateId","ignore_empty","useFallbackTemplateContent","START_TEMPLATE_MODAL_STATES","INITIAL","CLOSED","StartTemplateOptions","modalState","setModalState","shouldOpenModal","_postType","hasEditsForEntityRecord","templateRecord","GlobalStylesRenderer","_currentStoreSettings","currentStoreSettings","nonGlobalStyles","__experimentalFeatures","useGlobalStylesRenderer","Theme","CanvasLoader","_highlightedColors$0$","fallbackIndicatorColor","indicatorColor","elapsed","_selectorsByStatus$re","_selectorsByStatus$fi","selectorsByStatus","countSelectorsByStatus","resolving","finished","accent","RenamePatternModal","patternsPrivateApis","PatternRenameModal","PATTERN_MODALS","rename","DuplicatePatternModal","PatternDuplicateModal","duplicate","newPattern","PatternModal","isNavigationMenu","isPattern","previousTemplateId","arrowLeft","EditorCanvas","EditorCanvasRoot","hasBlocks","isFocusMode","isZoomOutMode","_templateType","viewModeProps","isTemplateTypeNavigation","showBlockAppender","iframeProps","expand","frameSize","usePostLinkProps","useBlockEditorSettings","useSpecificEditorSettings","postWithTemplate","_context","archiveLabels","taxonomyMatches","authorSlug","isAuthor","authorMatches","getTaxonomy","getAuthors","archiveTypeLabel","archiveNameLabel","authorRecords","useArchiveLabel","defaultRenderingMode","richEditingEnabled","supportsTemplateMode","focusMode","__experimentalArchiveTitleTypeLabel","__experimentalArchiveTitleNameLabel","SiteEditorCanvas","defaultEditorSettings","useSiteEditorSettings","forceFullHeight","editorCanvasView","BackButton","ConvertToRegularBlocks","canRemoveBlock","ConvertToTemplatePart","TemplatePartConverter","BlockSettingsMenuControls","selectedClientIds","TemplatePartConverterMenuItem","BlockRemovalWarningModal","ExperimentalEditorProvider","EditorProvider","InserterSidebar","ListViewSidebar","interfaceLabels","blockRemovalRules","Editor","hasLoadedPost","editedPostType","contextPost","editorMode","blockEditorMode","isRightSidebarOpen","isInserterOpen","isListViewOpen","showBlockBreadcrumbs","isEditMode","showVisualEditor","shouldShowBlockBreadcrumbs","shouldShowInserter","shouldShowListView","secondarySidebarLabel","_POST_TYPE_LABELS$edi","siteTitle","isInitialLocationRef","formattedTitle","useTitle","loadingProgressId","__unstableTemplate","useSubRegistry","InterfaceSkeleton","EditorSnackbars","EditorNotices","BlockInspector","BlockToolbar","hideDragHandle","KeyboardShortcutsEditMode","EditorKeyboardShortcutsRegister","EditorKeyboardShortcuts","BlockBreadcrumb","rootLabelText","CopyButton","useCopyToClipboard","ErrorBoundaryWarning","Warning","ErrorBoundary","componentDidCatch","doAction","getDerivedStateFromError","getIsListPage","textFormattingShortcuts","keyCombination","modifier","KeyCombination","forceAriaLabel","displayShortcutList","shortcutAriaLabel","Shortcut","aliases","alias","DynamicShortcut","getShortcutKeyCombination","getShortcutDescription","getShortcutAliases","KEYBOARD_SHORTCUT_HELP_MODAL_NAME","ShortcutList","ShortcutSection","ShortcutCategorySection","categoryName","additionalShortcuts","categoryShortcuts","getCategoryShortcuts","KeyboardShortcutHelpModal","EnableFeature","remainingProps","BaseOption","compose","withSelect","panelName","isEditorPanelEnabled","isEditorPanelRemoved","isRemoved","ifCondition","withDispatch","toggleEditorPanelEnabled","PREFERENCES_MODAL_NAME","EditSitePreferencesModal","useRegistry","PreferencesModalSection","PostTaxonomies","taxonomyWrapper","EnablePanelOption","menu_name","PostFeaturedImageCheck","PostExcerptCheck","PostTypeSupportCheck","supportKeys","PageAttributesCheck","turnOffDistractionFree","ToolsMoreMenuGroup","SiteExport","download","headers","Accept","blob","contentDispositionMatches","fileName","downloadBlob","errorResponse","json","WelcomeGuideMenuItem","CopyContentMenuItem","createNotice","MODES","choices","choice","MenuItemsChoice","MoreMenu","siteEditorStore","PreferenceToggleMenuItem","messageActivated","messageDeactivated","primaryShift","ModeSwitcher","access","external","rel","DocumentTools","EditorDocumentTools","hasFixedToolbar","isVisualMode","isZoomedOutViewExperimentEnabled","__experimentalEnableZoomedOutView","isZoomedOutView","disableBlockTools","listViewLabel","ToolbarItem","chevronUpDown","PostViewLink","PreviewDropdown","HeaderEditMode","blockSelectionStart","getPreference","isTopToolbar","blockToolbarRef","hasDefaultEditorCanvasView","useSlotFills","useHasEditorCanvasContainer","isBlockToolsCollapsed","setIsBlockToolsCollapsed","hasBlockSelected","toolbarVariants","isDistractionFreeHovering","toolbarTransition","ease","Popover","previous","collapsed","DocumentBar","isRequestingSite","siteIconUrl","site_icon_url","wordpress","SiteHub","isTransparent","open","openCommandCenter","commandsStore","siteIconButtonProps","SiteIcon","AnimatePresence","exit","FRAME_MIN_WIDTH","INITIAL_FRAME_SIZE","calculateNewHeight","initialAspectRatio","intermediateAspectRatio","lerp","amount","FRAME_TARGET_ASPECT_RATIO","ResizableFrame","isFullWidth","isOversized","setIsOversized","defaultSize","innerContentStyle","setFrameSize","startingWidth","setStartingWidth","isResizing","setIsResizing","shouldShowHandle","setShouldShowHandle","setResizeRatio","FRAME_TRANSITION","frameRef","resizableHandleHelpId","defaultAspectRatio","frameAnimationVariants","fullWidth","currentResizeHandleVariant","onAnimationComplete","topRight","bottomRight","bottomLeft","topLeft","onMouseOut","visible","active","scaleY","delta","shiftKey","newWidth","whileFocus","onResizeStart","handleResizeStart","_event","_direction","handleResize","_ref","normalizedDelta","deltaAbs","maxDoubledDelta","deltaToDouble","doubleSegment","updatedWidth","handleResizeStop","ownerDocument","EntitiesSavedStatesExtensible","privateApis","EntitiesSavedStatesForPreview","isDirtyProps","useEntitiesSavedStatesIsDirty","activateSaveLabel","themeName","additionalPrompt","activateTheme","startResolution","finishResolution","activationURL","WP_BLOCK_THEME_ACTIVATE_NONCE","themePreview","useActivateTheme","close","saveEnabled","saveLabel","_EntitiesSavedStates","EntitiesSavedStates","SavePanel","registerShortcut","useGlobalStylesOpenStylesCommands","isEditorPage","commands","useGlobalStylesToggleWelcomeGuideCommands","useGlobalStylesResetCommands","rotateRight","rotateLeft","useGlobalStylesOpenCssCommands","brush","useGlobalStylesOpenRevisionsCommands","usePageContentFocusCommands","_isPage","setRenderingMode","useEditorModeCommands","useManipulateDocumentCommands","useEditUICommands","activeSidebar","blockDefault","keyboard","listView","usePatternCommands","Header","subTitle","Page","hideTitleFromUI","RenamePatternCategoryModal","RenameCategoryMenuItem","normalizedCategory","existingCategories","DeleteCategoryMenuItem","invalidateResolution","PatternsHeader","titleId","descriptionId","patternCategory","describedBy","DuplicateMenuItem","isThemePattern","templatePartIcons","isDeleteDialogOpen","setIsDeleteDialogOpen","__experimentalDeleteReusableBlock","reusableBlocksStore","isUserPattern","isNonUserPattern","isEmpty","patternClassNames","previewClassNames","isCustomPattern","hasThemeFile","ariaDescriptions","confirmPrompt","ariaDescription","lockSmall","exportAsJSON","__file","deleteItem","deletePattern","GridItem","NoPatterns","SYNC_FILTERS","SYNC_DESCRIPTIONS","PAGE_SIZE","PatternsList","delayedFilterValue","syncFilter","setSyncFilter","deferredSyncedFilter","isUncategorizedThemePatterns","pageIndex","asyncList","updateSearchFilter","updateSyncFilter","scrollContainer","scrollTo","usePatternSettings","_storedSettings$__exp","settingsBlockPatterns","restStoredSettings","PagePatterns","sortByTextFields","textFields","sortedData","fieldId","fieldToSort","_fieldToSort$getValue","_fieldToSort$getValue2","valueA","valueB","getPaginationResults","paginationInfo","totalPages","CurrenPageControl","__experimentalIsFocusable","DropdownMenuCheckboxItemV2","DropdownMenuCheckboxItem","ViewTypeMenu","supportedLayouts","_availableViews","_view","availableView","PAGE_SIZE_VALUES","PageSizeMenu","FieldsVisibilityMenu","hidableFields","SortMenu","sortableFields","currentSortedField","sortedDirection","ViewActions","FilterText","FilterSummary","AddFilter","filterCount","ResetFilter","Filters","filterComponents","ResetFilters","onChangeViewRef","searchLabel","defaultGetItemId","defaultOnSelectionChange","DataViews","setSelection","onSetSelection","ViewComponent","Search","CreatePatternModalContents","useDuplicatePatternProps","exportJSONaction","renameAction","canDeleteOrReset","deleteAction","resetAction","duplicatePatternAction","duplicatedProps","duplicateTemplatePartAction","defaultConfigPerViewType","DEFAULT_VIEW","Preview","viewType","Title","DataviewsPatterns","setView","previousCategoryId","usePrevious","viewSyncStatus","filteredData","newView","Table","column","row","rowIndex","columnIndex","cell","AddNewTemplatePart","PageTemplateParts","deleteTemplateAction","renameTemplateAction","trashPostAction","viewPostAction","postRevisionsAction","_post$_links$predeces","_post$_links$version","lastRevisionId","MAX_LOADING_TIME","useIsSiteEditorLoading","loaded","setLoaded","inLoadingPause","hasResolvingSelectors","PostPreview","isEditorLoading","TemplateTitle","AuthorField","withIcon","TemplatePreview","DataviewsTemplates","setTemplateId","allTemplates","isLoadingData","authorsSet","filteredTemplates","normalizedSearch","resetTemplateAction","useResetTemplateAction","display","flexDirection","justifyContent","currentSize","mediaDetails","STATUSES","DEFAULT_STATUSES","PagePages","selectedDefaultView","editedViewRecord","customView","setCustomView","viewToSet","useView","pageId","setPageId","author_exclude","_embed","isLoadingAuthors","Media","_embedded","_STATUSES$find$label","permanentlyDeletePostAction","usePermanentlyDeletePostAction","restorePostAction","useRestorePostAction","editPostAction","useEditPostAction","showAddPageModal","setShowAddPageModal","PageMain","PageTemplates","useCommands","coreCommandsPrivateApis","useCommandContext","commandsPrivateApis","ANIMATION_DURATION","Layout","currentCanvasMode","canvasInUrl","currentCanvasInUrl","currentUrlParams","useSyncCanvasModeWithURL","useCommandLoader","hook","useCommand","useCommonCommands","useBlockCommands","isListPage","previousShortcut","nextShortcut","getAllShortcutKeyCombinations","isEditing","showSidebar","showCanvas","isFullCanvas","canvasResizer","canvasSize","fullResizer","isResizableFrameOversized","setIsResizableFrameOversized","headerAnimationState","commandContext","CommandMenu","KeyboardShortcutsRegister","KeyboardShortcutsGlobal","Sidebar","RouterProvider","App","SlotFillProvider","UnsavedChangesWarning","PluginArea","PluginSidebarEditSite","PluginSidebarMoreMenuItem","_ownProps$as","initializeEditor","getElementById","createRoot","reapplyBlockTypeFilters","coreBlocks","__experimentalGetCoreBlocks","registerCoreBlocks","setFreeformFallbackBlockName","registerLegacyWidgetBlock","registerWidgetGroupBlock","__experimentalRegisterExperimentalCoreBlocks","enableFSEBlocks","welcomeGuide","welcomeGuideStyles","welcomeGuidePage","welcomeGuideTemplate","allowRightClickOverrides","distractionFree","fixedToolbar","inactivePanels","keepCaretInsideBlock","openPanels","updateEditorSettings","reinitializeEditor"],"sourceRoot":""}