Plugin Directory

Changeset 3150228


Ignore:
Timestamp:
09/11/2024 04:23:11 PM (19 months ago)
Author:
Mat Lipe
Message:

Update to version 9.6.1 from GitHub

Location:
advanced-sidebar-menu
Files:
4 added
16 edited
1 copied

Legend:

Unmodified
Added
Removed
  • advanced-sidebar-menu/tags/9.6.1/advanced-sidebar-menu.php

    r3123446 r3150228  
    55 * Description: Creates dynamic menus based on parent/child relationship of your pages or categories.
    66 * Author: OnPoint Plugins
    7  * Version: 9.6.0
     7 * Version: 9.6.1
    88 * Author URI: https://onpointplugins.com
    99 * Text Domain: advanced-sidebar-menu
     
    2020}
    2121
    22 define( 'ADVANCED_SIDEBAR_MENU_BASIC_VERSION', '9.6.0' );
     22define( 'ADVANCED_SIDEBAR_MENU_BASIC_VERSION', '9.6.1' );
    2323define( 'ADVANCED_SIDEBAR_MENU_REQUIRED_PRO_VERSION', '9.4.0' );
    2424define( 'ADVANCED_SIDEBAR_MENU_DIR', plugin_dir_path( __FILE__ ) );
  • advanced-sidebar-menu/tags/9.6.1/js/dist/advanced-sidebar-menu-admin.css

    r3123446 r3150228  
    510510  }
    511511}
     512
     513/*# sourceMappingURL=advanced-sidebar-menu-admin.css.map*/
  • advanced-sidebar-menu/tags/9.6.1/js/dist/advanced-sidebar-menu-block-editor.css

    r3123446 r3150228  
    6666  padding: 10px
    6767}
     68
     69/*# sourceMappingURL=advanced-sidebar-menu-block-editor.css.map*/
  • advanced-sidebar-menu/tags/9.6.1/js/dist/advanced-sidebar-menu-block-editor.js.map

    r3123446 r3150228  
    1 {"version":3,"file":"advanced-sidebar-menu-block-editor.js","mappings":"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nB;AACD;;AAGA;AACA;AACA;AACA;AACA;AACA,iEAAe,MAAM;EACpB;EACA,IAAK,GAAG,KAAKrP,mDAAM,CAACsP,SAAS,EAAG;IAC/B;EACD;EACA;EACAC,MAAM,CAAEL,QAAS,CAAC,CAACM,EAAE,CAAE,cAAc,EAAE,YAAW;IACjDV,qBAAqB,CAAC,CAAC;EACxB,CAAE,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;AC7CD;AACA,iEAAe,CAAC,oCAAoC;;;;;;;;;;;;;;;ACDpD;AACA,iEAAe,CAAC,gEAAgE;;;;;;;;;;;;;;;ACDhF;AACA,iEAAe,CAAC,0BAA0B;;;;;;;;;;;;;;;ACD1C;AACA,iEAAe,CAAC,+PAA+P;;;;;;;;;;;ACDlQ;;AAEb,QAAQ,mBAAO,CAAC,qBAAW;AAC3B,IAAI,KAAqC,EAAE,EAG1C,CAAC;AACF;AACA,EAAE,kBAAkB;AACpB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,EAAE,mBAAmB;AACrB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;;;;;;;;;;ACxBA;;AAEA;AACA,EAAE,KAA4D;AAC9D,EAAE,CACwG;AAC1G,CAAC,uBAAuB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,UAAU;AACd;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB,eAAe,UAAU;AACzB;AACA;AACA;AACA,6FAA6F,aAAa;AAC1G;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB,eAAe,UAAU;AACzB;AACA;AACA;AACA,6EAA6E,eAAe;AAC5F;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,OAAO;AACpB,aAAa,UAAU;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,EAAE,iBAAiB,EAAE,MAAM;AAC3D;AACA,+BAA+B,QAAQ;AACvC,wDAAwD;AACxD,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,0BAA0B;AACvC,aAAa,mBAAmB;AAChC,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;AACA;AACA,4CAA4C;;AAE5C;AACA;AACA,kBAAkB,sBAAsB;AACxC,kBAAkB,sBAAsB;AACxC,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,+CAA+C;;AAE/C;AACA;AACA,6CAA6C;;AAE7C;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kDAAkD;;AAElD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4EAA4E;AAC5E,4EAA4E;AAC5E,wFAAwF;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF;AAClF,0EAA0E;AAC1E,0EAA0E;AAC1E;AACA,uDAAuD;AACvD,uDAAuD;AACvD,sEAAsE;AACtE,yEAAyE;AACzE,4DAA4D;AAC5D,iDAAiD;AACjD,oDAAoD;AACpD,4CAA4C;AAC5C,8DAA8D;AAC9D,8DAA8D;AAC9D,4CAA4C;AAC5C,iDAAiD;AACjD,gEAAgE;AAChE,iDAAiD;AACjD,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD,+CAA+C;;AAE/C;AACA;AACA;AACA;AACA,oDAAoD;;AAEpD;AACA;AACA;AACA,oCAAoC;AACpC,uCAAuC;;AAEvC;AACA,gBAAgB,SAAS;AACzB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,UAAU;AACV;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,MAAM;AACtB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C;AAC5C,sFAAsF,6DAA6D;AACnJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uTAAuT;AACvT;AACA;AACA;AACA,QAAQ,wCAAwC,oFAAoF,oKAAoK,iHAAiH;AACzZ;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;AACD;;;;;;;;;;;;ACzhDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,IAAI,IAAqC;AACzC;AACA;;AAEA,YAAY,mBAAO,CAAC,iBAAO;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,iGAAiG,eAAe;AAChH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA,KAAK,GAAG;;AAER,kDAAkD;AAClD;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,4BAA4B;AAC5B;AACA,qCAAqC;;AAErC,gCAAgC;AAChC;AACA;;AAEA,gCAAgC;;AAEhC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;;AAGF;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,sBAAsB;AACtB;AACA,SAAS;AACT,uBAAuB;AACvB;AACA,SAAS;AACT,uBAAuB;AACvB;AACA,SAAS;AACT,wBAAwB;AACxB;AACA,SAAS;AACT,wBAAwB;AACxB;AACA,SAAS;AACT,iCAAiC;AACjC;AACA,SAAS;AACT,2BAA2B;AAC3B;AACA,SAAS;AACT,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,2DAA2D;;AAE3D;AACA;;AAEA;AACA,yDAAyD;AACzD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;;AAEA;AACA;AACA,gFAAgF;AAChF;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;;;AAGlB;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;;;AAGJ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2HAA2H;AAC3H;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA,oEAAoE;;AAEpE;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,eAAe;AAC1B,WAAW,GAAG;AACd,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;;AAER;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;;AAEA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA,oBAAoB;AACpB,2DAA2D,UAAU;AACrE,yBAAyB,UAAU;AACnC;AACA,aAAa,UAAU;AACvB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,GAAG;AACd;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,6DAA6D;AAC7D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,GAAG;AACd;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,iBAAiB;AACvC;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,4CAA4C;;AAE5C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB;;;AAGA;AACA;AACA;;AAEA,oBAAoB,iBAAiB;AACrC;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C;AAC9C;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA,0DAA0D;AAC1D;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sCAAsC;AACtC;;AAEA;;AAEA,gBAAgB;AAChB,WAAW;AACX,YAAY;AACZ,GAAG;AACH;;;;;;;;;;;;ACjyCa;;AAEb,IAAI,KAAqC,EAAE,EAE1C,CAAC;AACF,EAAE,wFAAkE;AACpE;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,EAAE,EAAE,OAAO;AAC5C;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,YAAY;AACvB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,0CAA0C,YAAY;AACtD,cAAc,oEAAoE;AAClF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;;;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzBA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;;;;;WCVA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;ACNwC;AAExC9N,OAAO,CAAC0O,KAAK,CAAE,2BAA4B,CAAC;AAE5CD,4DAAO,CAAC,CAAC;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAK,OAAO9N,MAAM,CAACgO,EAAE,CAACpF,OAAO,KAAK,WAAW,IAAI,OAAO5I,MAAM,CAACgO,EAAE,CAACC,OAAO,KAAK,WAAW,EAAG;EAC3FlB,yDAAgC,CAAC,CAAC;AACnC,CAAC,MAAM,IAAK,OAAO/M,MAAM,CAACgO,EAAE,CAACG,SAAS,KAAK,WAAW,EAAG;EACxDnO,MAAM,CAACgO,EAAE,CAACG,SAAS,CAACC,IAAI,CAAE,OAAO,EAAE,MAAM;IACxCrB,yDAAgC,CAAC,CAAC;EACnC,CAAE,CAAC;AACJ,C","sources":["webpack://@onpointplugins/advanced-sidebar-menu/./.yarn/__virtual__/@lipemat-js-boilerplate-gutenberg-virtual-329647b4db/0/cache/@lipemat-js-boilerplate-gutenberg-npm-3.4.2-78591b901d-4704295112.zip/node_modules/@lipemat/js-boilerplate-gutenberg/dist/index.module.js","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/components/ErrorBoundary.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/components/TransformNotice.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/globals/config.ts","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/SideLoad.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/Display.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/ExcludeField.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/InfoPanel.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/Preview.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/categories/Edit.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/categories/block.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/pages/Edit.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/pages/block.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/helpers.ts","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/index.ts","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/modules/widgets.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/components/transform-notice.pcss","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/info-panel.pcss","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/pages/edit.pcss","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/preview.pcss","webpack://@onpointplugins/advanced-sidebar-menu/./.yarn/__virtual__/react-dom-virtual-da4ced7575/0/cache/react-dom-npm-18.2.0-dd675bca1c-66dfc5f93e.zip/node_modules/react-dom/client.js","webpack://@onpointplugins/advanced-sidebar-menu/./.yarn/cache/dompurify-npm-3.1.6-344fd47e23-3de1cca187.zip/node_modules/dompurify/dist/purify.js","webpack://@onpointplugins/advanced-sidebar-menu/./.yarn/cache/react-npm-18.2.0-1eae08fee2-b562d9b569.zip/node_modules/react/cjs/react-jsx-runtime.development.js","webpack://@onpointplugins/advanced-sidebar-menu/./.yarn/cache/react-npm-18.2.0-1eae08fee2-b562d9b569.zip/node_modules/react/jsx-runtime.js","webpack://@onpointplugins/advanced-sidebar-menu/./.yarn/cache/react-string-replace-npm-1.1.1-614c815872-5a4a4fd9c3.zip/node_modules/react-string-replace/index.js","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/ sync block\\.tsx$","webpack://@onpointplugins/advanced-sidebar-menu/external var \"React\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"ReactDOM\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"jQuery\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"lodash\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.apiFetch\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.blockEditor\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.blocks\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.components\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.data\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.hooks\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.htmlEntities\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.i18n\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.plugins\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.richText\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.serverSideRender\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.url\"","webpack://@onpointplugins/advanced-sidebar-menu/webpack/bootstrap","webpack://@onpointplugins/advanced-sidebar-menu/webpack/runtime/compat get default export","webpack://@onpointplugins/advanced-sidebar-menu/webpack/runtime/define property getters","webpack://@onpointplugins/advanced-sidebar-menu/webpack/runtime/harmony module decorator","webpack://@onpointplugins/advanced-sidebar-menu/webpack/runtime/hasOwnProperty shorthand","webpack://@onpointplugins/advanced-sidebar-menu/webpack/runtime/make namespace object","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/block-editor.ts"],"sourcesContent":["import e from\"@wordpress/api-fetch\";import{__ as t}from\"@wordpress/i18n\";import{addQueryArgs as n}from\"@wordpress/url\";import{registerBlockType as r,unregisterBlockType as o}from\"@wordpress/blocks\";import{registerPlugin as i,unregisterPlugin as u}from\"@wordpress/plugins\";import{select as c,dispatch as s,useDispatch as a,useSelect as f}from\"@wordpress/data\";import{registerFormatType as d,unregisterFormatType as l}from\"@wordpress/rich-text\";function p(){return(p=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var v,h,m=[];function g(e){return m.push(e),m.length-1}function w(e){return delete m[e],m}function b(){return void 0!==h}function P(e){E(),h=g(function(e){function t(e,n){var r=e.headers,o=void 0===r?{}:r;for(var i in o)\"x-wp-nonce\"===i.toLowerCase()&&delete o[i];return n(p({},e,{headers:p({},o,{\"X-WP-Nonce\":t.nonce})}))}return t.nonce=e,t}(e))}function y(){void 0!==h&&(w(h),h=void 0),void 0===v&&(v=g(function(e,t){if(void 0!==e.headers)for(var n in e.headers)\"x-wp-nonce\"===n.toLowerCase()&&delete e.headers[n];return t(e,t)}))}function E(){void 0!==h&&w(h),void 0!==v&&w(v),h=void 0,v=void 0}var T=function(e,t){return void 0===t&&(t=!0),Promise.resolve(function(e,t){return void 0===t&&(t=!0),t?204===e.status?null:e.json?e.json():Promise.reject(e):e}(e,t)).catch(function(e){return k(e,t)})};function k(e,n){if(void 0===n&&(n=!0),!n)throw e;return function(e){var n={code:\"invalid_json\",message:t(\"The response is not a valid JSON response.\")};if(!e||!e.json)throw n;return e.json().catch(function(){throw n})}(e).then(function(e){var n={code:\"unknown_error\",message:t(\"An unknown error occurred.\")};throw\"rest_cookie_invalid_nonce\"===e.code&&b()&&(e.code=\"external_rest_cookie_invalid_nonce\"),e||n})}var j,x=[\"url\",\"path\",\"data\",\"parse\"],_={Accept:\"application/json, */*;q=0.1\"},O={credentials:\"include\"},B=function(e){if(e.status>=200&&e.status<300)return e;throw e},C=function(e){var n=function e(t,n){return function(r){return void 0===n[t]?r:(0,n[t])(r,t===n.length-1?function(e){return e}:e(t+1,n))}}(0,m.filter(Boolean))(p({},O,e)),r=n.url,o=n.path,i=n.data,u=n.parse,c=void 0===u||u,s=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t.indexOf(n=i[r])>=0||(o[n]=e[n]);return o}(n,x),a=n.body,f=n.headers;return f=p({},_,f),i&&(a=JSON.stringify(i),f[\"Content-Type\"]=\"application/json\"),window.fetch(r||o||\"\",p({},s,{body:a,headers:f})).then(function(e){return Promise.resolve(e).then(B).catch(function(e){return k(e,c)}).then(function(e){return T(e,c)})},function(){throw{code:\"fetch_error\",message:t(\"You are probably offline.\")}})},G=function(e,t,n){return Promise.resolve(R(e,t,n,!1)).then(function(e){return Promise.resolve(T(e)).then(function(t){return{items:t,totalPages:parseInt(e.headers.get(\"X-WP-TotalPages\")||\"1\"),totalItems:parseInt(e.headers.get(\"X-WP-Total\")||\"0\")}})})},R=function(t,r,o,i){void 0===i&&(i=!0);try{return Promise.resolve(e(void 0===o||\"GET\"===r||\"OPTIONS\"===r?{method:r,parse:i,path:n(t,null!=o?o:{})}:{data:o,method:r,parse:i,path:t}))}catch(e){return Promise.reject(e)}};function I(e){return{create:function(t){return R(e,\"POST\",t)},delete:function(t){return R(e+\"/\"+t,\"DELETE\",{force:!0})},get:function(t){return R(e,\"GET\",t)},getById:function(t,n){return R(e+\"/\"+t,\"GET\",n)},getWithPagination:function(t){return G(e,\"GET\",t)},trash:function(t){return R(e+\"/\"+t,\"DELETE\")},update:function(t){return R(e+\"/\"+t.id,\"PATCH\",t)}}}function S(t){var n={};return[\"categories\",\"comments\",\"blocks\",\"media\",\"menus\",\"menu-locations\",\"menu-items\",\"statuses\",\"pages\",\"posts\",\"tags\",\"taxonomies\",\"search\"].map(function(e){return n[e]=function(){return I(\"/wp/v2/\"+e)}}),n.menuLocations=function(){return I(\"/wp/v2/menu-locations\")},n.menuItems=function(){return I(\"/wp/v2/menu-items\")},n.users=function(){var e=I(\"/wp/v2/users\");return e.delete=function(e,t){return void 0===t&&(t=!1),R(\"/wp/v2/users/\"+e,\"DELETE\",{force:!0,reassign:t})},e},n.applicationPasswords=function(){return{create:function(e,t){return R(\"/wp/v2/users/\"+e+\"/application-passwords\",\"POST\",t)},delete:function(e,t){return R(\"/wp/v2/users/\"+e+\"/application-passwords/\"+t,\"DELETE\")},get:function(e){return R(\"/wp/v2/users/\"+e+\"/application-passwords\",\"GET\")},getById:function(e,t){return R(\"/wp/v2/users/\"+e+\"/application-passwords/\"+t,\"GET\")},introspect:function(e){return R(\"/wp/v2/users/\"+e+\"/application-passwords/introspect\",\"GET\")},update:function(e,t,n){return R(\"/wp/v2/users/\"+e+\"/application-passwords/\"+t,\"PUT\",n)}}},n.settings=function(){return{get:function(){return R(\"/wp/v2/settings\",\"GET\")},update:function(e){return R(\"/wp/v2/settings\",\"POST\",e)}}},n.types=function(){return{get:function(){return R(\"/wp/v2/types\",\"GET\")},getById:function(e){return R(\"'/wp/v2/types'/\"+e,\"GET\")}}},void 0!==t&&Object.keys(t).map(function(e){return n[e]=t[e]}),e.setFetchHandler(C),n}function A(){w(j)}function L(t,n){j&&w(j),j=g(e.createRootURLMiddleware(t.replace(/\\/$/,\"\")+\"/\")),window.location.hostname&&new URL(t).hostname===window.location.hostname?E():void 0!==n?P(n):b()||y()}var M,D=function(r){return Promise.resolve(function(o,i){try{var u=Promise.resolve(e({path:\"/\",method:\"GET\"})).then(function(e){return e.authentication[\"application-passwords\"]?n(e.authentication[\"application-passwords\"].endpoints.authorization,r):{code:\"application_passwords_disabled\",message:t(\"Application passwords are not enabled on this site.\"),data:null}})}catch(e){return e}return u&&u.then?u.then(void 0,function(e){return e}):u}())};function N(){return void 0!==M}function W(){void 0!==M&&(w(M),M=void 0)}function U(e,t){W(),M=g(function(n,r){var o=n.headers;return r(p({},n,{headers:p({},void 0===o?{}:o,{Authorization:\"Basic \"+btoa(e+\":\"+t)})}),r)})}function X(e,t,n){if(!e.s){if(n instanceof z){if(!n.s)return void(n.o=X.bind(null,e,t));1&t&&(t=n.s),n=n.v}if(n&&n.then)return void n.then(X.bind(null,e,t),X.bind(null,e,2));e.s=t,e.v=n;const r=e.o;r&&r(e)}}var z=function(){function e(){}return e.prototype.then=function(t,n){var r=new e,o=this.s;if(o){var i=1&o?t:n;if(i){try{X(r,1,i(this.v))}catch(e){X(r,2,e)}return r}return this}return this.o=function(e){try{var o=e.v;1&e.s?X(r,1,t?t(o):o):n?X(r,1,n(o)):X(r,2,o)}catch(e){X(r,2,e)}},r},e}(),H=function(e,t){F({afterReload:Q,beforeReload:K,getContext:e,pluginModule:t,register:r,unregister:o,type:\"block\"})},J=function(e,t){F({afterReload:function(){},beforeReload:function(){},getContext:e,pluginModule:t,register:i,unregister:u,type:\"plugin\"})},q=function(e,t){F({afterReload:function(){},beforeReload:function(){},getContext:e,pluginModule:t,register:d,unregister:l,type:\"format\"})},F=function(e){var t=e.afterReload,n=e.beforeReload,r=e.getContext,o=e.pluginModule,i=e.register,u=e.unregister,c=e.type,s={},a=function(){n();var e=r();if(e){var o=[];return e.keys().forEach(function(t){var n=e(t);n.exclude||n!==s[t]&&(s[n.name+\"-\"+c]&&u(n.name),i(n.name,n.settings),o.push(n.name),s[n.name+\"-\"+c]=n)}),t(o),e}},f=a();o.hot&&null!=f&&f.id&&o.hot.accept(f.id.toString(),a)},Y=null,$=[],K=function(){Y=c(\"core/block-editor\").getSelectedBlockClientId()},Q=function(e){void 0===e&&(e=[]);try{return Promise.resolve(s(\"core/block-editor\").clearSelectedBlock()).then(function(){function t(){function e(){$=[],Y=null}var t=Y?Promise.resolve(s(\"core/block-editor\").selectBlock(Y)).then(function(){}):Promise.resolve(s(\"core/block-editor\").clearSelectedBlock()).then(function(){});return t&&t.then?t.then(e):e()}c(\"core/block-editor\").getBlocks().forEach(function(t){return function e(t,n){void 0===t&&(t=[]);var r=n.clientId,o=n.innerBlocks;t.includes(n.name)&&$.push(r),o.forEach(function(n){return e(t,n)})}(e,t)});var n=function(e,t,n){var r,o,i=-1;return function n(u){try{for(;++i<e.length;)if((u=t(i))&&u.then){if(!((c=u)instanceof z&&1&c.s))return void u.then(n,o||(o=X.bind(null,r=new z,2)));u=u.v}r?X(r,1,u):r=u}catch(e){X(r||(r=new z),2,e)}var c}(),r}($,function(e){return Promise.resolve(s(\"core/block-editor\").selectBlock($[e])).then(function(){})});return n&&n.then?n.then(t):t()})}catch(e){return Promise.reject(e)}};function V(e,t){var n={current:e},r={current:t};return t.some(function(e,t){return e!==r.current[t]})&&(n.current=e,r.current=t),function(){return n.current.apply(n,[].slice.call(arguments))}}function Z(e){var t=a(\"core/editor\").editPost,n=f(function(e){return{previous:e(\"core/editor\").getCurrentPostAttribute(\"meta\"),current:e(\"core/editor\").getEditedPostAttribute(\"meta\")}}),r=\"string\"==typeof e&&\"\"!==e,o=r?n.current[e]:n.current,i=r?n.previous[e]:n.previous,u=V(function(n){var o;r&&t({meta:(o={},o[e]=n,o)})},[t,e,r]),c=V(function(e,n){var r;t({meta:(r={},r[e]=n,r)})},[t]);return r?[o,u,i]:[o,c,i]}function ee(e){var t=a(\"core/editor\").editPost,n=f(function(t){var n=t(\"core\").getTaxonomy(e);return n?{taxonomy:n,current:t(\"core/editor\").getEditedPostAttribute(n.rest_base),previous:t(\"core/editor\").getCurrentPostAttribute(n.rest_base)}:{current:[],previous:[]}}),r=V(function(e){try{var r;return Promise.resolve(n.taxonomy?t(((r={})[n.taxonomy.rest_base]=e,r)):void 0)}catch(e){return Promise.reject(e)}},[n,t]);return[n.current,r,n.previous]}export{g as addMiddleware,F as autoload,H as autoloadBlocks,q as autoloadFormats,J as autoloadPlugins,W as clearApplicationPassword,y as clearNonce,I as createMethods,C as defaultFetchHandler,R as doRequest,G as doRequestWithPagination,U as enableApplicationPassword,D as getAuthorizationUrl,N as hasApplicationPassword,b as hasExternalNonce,w as removeMiddleware,E as restoreNonce,A as restoreRootURL,P as setNonce,L as setRootURL,Z as usePostMeta,ee as useTerms,S as wpapi};\n//# sourceMappingURL=index.module.js.map\n","import {Component, ErrorInfo, PropsWithChildren} from 'react';\nimport {CONFIG} from '../globals/config';\nimport {addQueryArgs} from '@wordpress/url';\nimport {sanitize} from 'dompurify';\n\ntype Props = {\n\tattributes: object,\n\tblock: string;\n\tsection: string;\n}\n\n/**\n * Wrap any component in me, which may throw errors, and I will\n * prevent the entire UI from disappearing.\n *\n * Custom version special to Advanced Sidebar Menu with links to\n * support as well as debugging information.\n *\n * @link https://reactjs.org/docs/error-boundaries.html#introducing-error-boundaries\n */\nclass ErrorBoundary extends Component<PropsWithChildren<Props>, {\n\thasError: boolean,\n\terror: Error | null\n}> {\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.state = {\n\t\t\thasError: false,\n\t\t\terror: null,\n\t\t};\n\t}\n\n\tstatic getDerivedStateFromError() {\n\t\t// Update state, so the next render will show the fallback UI.\n\t\treturn {\n\t\t\thasError: true,\n\t\t};\n\t}\n\n\t/**\n\t * Log information about the error when it happens.\n\t *\n\t * @notice Will log \"Error: A cross-origin error was thrown. React doesn't have\n\t *         access to the actual error object in development\" in React development\n\t *         mode but provides full error info in React production.\n\t */\n\tcomponentDidCatch( error: Error, info: ErrorInfo ) {\n\t\tconsole.log( '%cError caught by the Advanced Sidebar ErrorBoundary!', 'color:orange; font-size: large; font-weight: bold' );\n\t\tconsole.log( this.props );\n\t\tconsole.log( error );\n\t\tconsole.log( info );\n\t\tthis.setState( {\n\t\t\terror,\n\t\t} );\n\t}\n\n\trender() {\n\t\tif ( this.state.hasError ) {\n\t\t\tif ( ! CONFIG.siteInfo.scriptDebug ) {\n\t\t\t\treturn ( <div className={'components-panel__body is-opened'}>\n\t\t\t\t\t<h4 style={{color: 'red'}}>\n\t\t\t\t\t\tSomething went wrong!\n\t\t\t\t\t</h4>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tPlease <a\n\t\t\t\t\t\t\thref={addQueryArgs( sanitize( window.location.href ), {\n\t\t\t\t\t\t\t\t'script-debug': 'true',\n\t\t\t\t\t\t\t}, )}\n\t\t\t\t\t\t>enable script debug</a> to retrieve error information.\n\t\t\t\t\t</p>\n\t\t\t\t</div> );\n\t\t\t}\n\t\t\treturn (\n\t\t\t\t<div className={'components-panel__body is-opened'}>\n\t\t\t\t\t<h4 style={{color: 'red'}}>\n\t\t\t\t\t\tSomething went wrong!\n\t\t\t\t\t</h4>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tPlease <a target=\"_blank\" href={CONFIG.support} rel=\"noreferrer\">\n\t\t\t\t\t\t\tcreate a support request\n\t\t\t\t\t\t</a> with the following:\n\t\t\t\t\t</p>\n\t\t\t\t\t<ol>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\tThe <a\n\t\t\t\t\t\t\t\thref={'https://onpointplugins.com/how-to-retrieve-console-logs-from-your-browser/'}\n\t\t\t\t\t\t\t\ttarget={'_blank'} rel=\"noreferrer\">\n\t\t\t\t\t\t\t\tlogs from your browser console.\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\tThe following information.\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ol>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tborder: '2px groove',\n\t\t\t\t\t\t\tpadding: '10px',\n\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t\toverflowWrap: 'break-word',\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<strong><em>Section</em></strong> <br />\n\t\t\t\t\t\t\t<code>\n\t\t\t\t\t\t\t\t{this.props.section}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<strong><em>Screen</em></strong> <br />\n\t\t\t\t\t\t\t<code>\n\t\t\t\t\t\t\t\t{CONFIG.currentScreen}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<strong><em>Message</em></strong> <br />\n\t\t\t\t\t\t\t<code>\n\t\t\t\t\t\t\t\t{this.state.error?.message}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<strong><em>Block</em></strong> <br />\n\t\t\t\t\t\t\t<code>\n\t\t\t\t\t\t\t\t{this.props.block}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<strong><em>Attributes</em></strong> <br />\n\t\t\t\t\t\t\t<code>\n\t\t\t\t\t\t\t\t{JSON.stringify( this.props.attributes )}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<strong><em>Site Info</em></strong> <br />\n\t\t\t\t\t\t\t<code>\n\t\t\t\t\t\t\t\t{JSON.stringify( CONFIG.siteInfo )}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<strong><em>Stack</em></strong> <br />\n\t\t\t\t\t\t\t<code>\n\t\t\t\t\t\t\t\t{this.state.error?.stack}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</div>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t&nbsp;\n\t\t\t\t\t</p>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t&nbsp;\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn this.props.children;\n\t}\n}\n\nexport default ErrorBoundary;\n","import {__} from '@wordpress/i18n';\nimport {useState} from 'react';\nimport {Notice} from '@wordpress/components';\n\nimport styles from './transform-notice.pcss';\n\ntype Props = Record<string, never>;\n\nexport const DISMISS_KEY = 'advanced-sidebar-menu/transform-notice-dismissed';\n\n/**\n * Display a dismissible notice above widget forms to inform\n * users the widget may be transformed into a block.\n *\n * Only applies to legacy widgets which should theoretically\n * be phased out in favor of blocks.\n * This notice is intended to help facilitate the transition.\n *\n */\nconst TransformNotice = ( {}: Props ) => {\n\tconst [ shown, setShown ] = useState<boolean>( true );\n\n\tif ( ! shown ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Notice\n\t\t\tclassName={styles.wrap}\n\t\t\tpoliteness={'polite'}\n\t\t\tonDismiss={() => {\n\t\t\t\tsetShown( false );\n\t\t\t\tlocalStorage.setItem( DISMISS_KEY, '1' );\n\t\t\t}}\n\t\t\tactions={[ {\n\t\t\t\tlabel: __( 'Blocks are the future of Advanced Sidebar Menu.', 'advanced-sidebar-menu' ),\n\t\t\t\turl: 'https://onpointplugins.com/advanced-sidebar-menu/advanced-sidebar-menu-gutenberg-blocks/#transform-widgets-to-blocks',\n\t\t\t\tvariant: 'link',\n\t\t\t} ]}\n\t\t>\n\t\t\t<span className=\"dashicons dashicons-arrow-up-alt\" />&nbsp;\n\t\t\t{__( 'This widget may be transformed into a block.', 'advanced-sidebar-menu' )}\n\t\t</Notice>\n\t);\n};\n\nexport default TransformNotice;\n","import {ComponentClass, FunctionComponent} from 'react';\nimport {TransformLegacy} from '../gutenberg/helpers';\nimport type {Attr as PageAttr} from '../gutenberg/blocks/pages/block';\nimport type {Attr as CategoryAttr} from '../gutenberg/blocks/categories/block';\nimport type {BlockAttributes, BlockSettings} from '@wordpress/blocks';\n\nexport type Screen = 'site-editor' | 'widgets' | 'post' | 'customize';\n\nexport type WPBoolean = '1' | '';\n\ninterface JSConfig {\n\tblocks: {\n\t\tcategories: {\n\t\t\tid: 'advanced-sidebar-menu/categories';\n\t\t\tattributes: BlockAttributes<CategoryAttr>;\n\t\t\tsupports: BlockSettings<CategoryAttr>['supports'];\n\t\t};\n\t\tpages: {\n\t\t\tid: 'advanced-sidebar-menu/pages';\n\t\t\tattributes: BlockAttributes<PageAttr>;\n\t\t\tsupports: BlockSettings<PageAttr>['supports'];\n\t\t};\n\t\tnavigation?: {\n\t\t\tid: 'advanced-sidebar-menu/navigation';\n\t\t\tattributes: BlockAttributes<object>;\n\t\t\tsupports: BlockSettings<object>['supports'];\n\t\t}\n\t};\n\tcategories: {\n\t\tdisplayEach: {\n\t\t\tlist: string;\n\t\t\twidget: string;\n\t\t};\n\t};\n\tcurrentScreen: Screen;\n\tdocs: {\n\t\tpage: string;\n\t\tcategory: string;\n\t};\n\terror: string;\n\tErrorBoundary: ComponentClass<{\n\t\tattributes: object,\n\t\tblock: string;\n\t\tsection: string;\n\t}>;\n\tfeatures: Array<string>;\n\tisPostEdit: WPBoolean;\n\tisPro: WPBoolean;\n\tisWidgets: WPBoolean;\n\tpages: {\n\t\torderBy: { [ value: string ]: string };\n\t};\n\tPreview: FunctionComponent<object>;\n\tsiteInfo: {\n\t\tbasic: string;\n\t\tclassicWidgets: boolean;\n\t\tphp: string;\n\t\tpro: string;\n\t\tscriptDebug: boolean;\n\t\twordpress: string;\n\t};\n\tsupport: string;\n\ttransformLegacyWidget: TransformLegacy;\n}\n\n\ndeclare global {\n\tinterface Window {\n\t\tADVANCED_SIDEBAR_MENU: JSConfig;\n\t\tadvancedSidebarMenuAdmin: {\n\t\t\tinit: () => void;\n\t\t\thandlePreviews: () => void;\n\t\t\tshowHideElements: () => void;\n\t\t\tclickReveal: ( id: string ) => void;\n\t\t\tsetHideState( target: JQuery<HTMLElement> ): void;\n\t\t};\n\t\t__TEST__?: boolean;\n\t}\n}\n\nexport const CONFIG: JSConfig = window.ADVANCED_SIDEBAR_MENU;\n","import {withFilters} from '@wordpress/components';\nimport {select} from '@wordpress/data';\nimport {isEmpty} from 'lodash';\n\ntype Props = {\n\tclientId: string;\n};\n\nlet firstClientId = '';\n/**\n * The customizer area does not include a `PluginArea` component,\n * so our slot fills do not load.\n *\n * We can use filters, but the Fills double up each time\n * another block is added to the page.\n *\n * Track the clientId of the first block we add the Fill to\n * and only return the Fill for that block. The rest of the blocks\n * inherit the Fill from the first block via their Slots.\n */\nconst SideLoad = ( {clientId, children} ) => {\n\tif ( ! isEmpty( firstClientId ) && clientId !== firstClientId ) {\n\t\t// Make sure block still exists.\n\t\tif ( -1 !== select( 'core/block-editor' ).getBlockIndex( firstClientId ) ) {\n\t\t\treturn null;\n\t\t}\n\t}\n\tfirstClientId = clientId;\n\treturn children ?? null;\n};\n\nexport default withFilters<Props>( 'advanced-sidebar-menu.blocks.side-load' )( SideLoad );\n","import {CheckboxControl, PanelBody, Slot} from '@wordpress/components';\nimport {CONFIG} from '../../globals/config';\nimport type {Attr as PageAttr} from './pages/block';\nimport type {Attr as CategoryAttr} from './categories/block';\nimport {__, sprintf} from '@wordpress/i18n';\nimport {Type} from '@wordpress/api/types';\nimport {range} from 'lodash';\nimport reactStringReplace from 'react-string-replace';\nimport {Taxonomy} from '@wordpress/api/taxonomies';\nimport ErrorBoundary from '../../components/ErrorBoundary';\nimport {BlockEditProps} from '@wordpress/blocks';\nimport {PropsWithChildren} from 'react';\n\n\nexport type DisplayOptions = {\n\tdisplay_all?: boolean;\n\tinclude_childless_parent?: boolean;\n\tinclude_parent?: boolean;\n\tlevels: number;\n}\n\nexport type FillProps =\n\tPick<BlockEditProps<PageAttr | CategoryAttr>, 'clientId' | 'attributes' | 'setAttributes' | 'name'>\n\t& { type?: Type<'edit'> | Taxonomy<'edit'> }\n\ntype Props = PropsWithChildren<{\n\tattributes: PageAttr | CategoryAttr;\n\tsetAttributes: BlockEditProps<PageAttr | CategoryAttr>['setAttributes'];\n\ttype?: Type<'edit'> | Taxonomy<'edit'>;\n\tname: string;\n\tclientId: string;\n}>;\n\nconst checkboxes: { [attr in keyof Partial<DisplayOptions>]: string } = {\n\t/* translators: Selected taxonomy single label */\n\tinclude_parent: __( 'Display highest level parent %s', 'advanced-sidebar-menu' ),\n\t/* translators: Selected taxonomy single label */\n\tinclude_childless_parent: __( 'Display menu when there is only the parent %s', 'advanced-sidebar-menu' ),\n\t/* translators: Selected taxonomy plural label */\n\tdisplay_all: __( 'Always display child %s', 'advanced-sidebar-menu' ),\n};\n\n/**\n * Display Options shared between widgets.\n *\n * 1. Display the highest level parent page.\n * 2. Display menu when there is only the parent page.\n * 3. Always display child pages.\n * 5. Display levels of child pages.\n *\n */\nconst Display = ( {\n\tattributes,\n\tsetAttributes,\n\ttype,\n\tname,\n\tclientId,\n\tchildren,\n}: Props ) => {\n\tconst showLevels = ( CONFIG.blocks.pages.id === name && '1' === CONFIG.isPro ) || true === attributes.display_all;\n\n\tconst fillProps: FillProps = {\n\t\ttype,\n\t\tattributes,\n\t\tname,\n\t\tsetAttributes,\n\t\tclientId,\n\t};\n\n\treturn (\n\t\t<PanelBody title={__( 'Display', 'advanced-sidebar-menu' )}>\n\t\t\t{Object.keys( checkboxes ).map( item => {\n\t\t\t\tlet label = type?.labels?.singular_name.toLowerCase() ?? '';\n\t\t\t\tif ( 'display_all' === item ) {\n\t\t\t\t\tlabel = type?.labels?.name.toLowerCase() ?? '';\n\t\t\t\t}\n\t\t\t\treturn <CheckboxControl\n\t\t\t\t\tkey={item}\n\t\t\t\t\t//eslint-disable-next-line @wordpress/valid-sprintf\n\t\t\t\t\tlabel={sprintf( checkboxes[ item ], label )}\n\t\t\t\t\tchecked={true === attributes[ item ]}\n\t\t\t\t\tonChange={checked => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t[ item ]: checked,\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{showLevels && <div className={'components-base-control'}>\n\t\t\t\t{/* translators: {select HTML input}, {post type plural label} */\n\t\t\t\t\treactStringReplace( __( 'Display %1$s levels of child %2$s', 'advanced-sidebar-menu' ).replace( '%2$s', type?.labels?.name.toLowerCase() ?? '' ), '%1$s',\n\t\t\t\t\t\t() => (\n\t\t\t\t\t\t\t<select\n\t\t\t\t\t\t\t\tkey={'levels'}\n\t\t\t\t\t\t\t\tclassName={'advanced-sidebar-menu-display-select'}\n\t\t\t\t\t\t\t\tvalue={attributes.levels}\n\t\t\t\t\t\t\t\tonChange={ev => setAttributes( {levels: parseInt( ev.target.value )} )}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<option value=\"100\">\n\t\t\t\t\t\t\t\t\t{__( '- All -', 'advanced-sidebar-menu' )}\n\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t{range( 1, 10 ).map( n => <option key={n} value={n}>\n\t\t\t\t\t\t\t\t\t{n}\n\t\t\t\t\t\t\t\t</option> )}\n\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t) )}\n\t\t\t</div>}\n\n\t\t\t{children}\n\n\t\t\t<ErrorBoundary attributes={attributes} block={name} section={'Display/slots'}>\n\t\t\t\t{CONFIG.blocks.pages.id === name &&\n\t\t\t\t\t<Slot<FillProps>\n\t\t\t\t\t\tname=\"advanced-sidebar-menu/pages/display\"\n\t\t\t\t\t\tfillProps={fillProps} />}\n\t\t\t\t{CONFIG.blocks.categories.id === name &&\n\t\t\t\t\t<Slot<FillProps>\n\t\t\t\t\t\tname=\"advanced-sidebar-menu/categories/display\"\n\t\t\t\t\t\tfillProps={fillProps} />}\n\t\t\t</ErrorBoundary>\n\n\t\t</PanelBody>\n\t);\n};\n\nexport default Display;\n","import {TextControl, withFilters} from '@wordpress/components';\nimport {__, sprintf} from '@wordpress/i18n';\nimport {Type} from '@wordpress/api/types';\nimport {Attr as PageAttr} from './pages/block';\nimport {Attr as CategoryAttr} from './categories/block';\nimport {BlockEditProps} from '@wordpress/blocks';\nimport {Taxonomy} from '@wordpress/api/taxonomies';\n\ntype Props = {\n\tattributes: PageAttr | CategoryAttr;\n\tsetAttributes: BlockEditProps<PageAttr | CategoryAttr>['setAttributes'];\n\ttype?: Type<'edit'> | Taxonomy<'edit'>;\n};\n\n/**\n * The Exclude field shared between widgets.\n *\n * Removed and replaced via filter by the PRO version.\n */\nconst ExcludeField = ( {type, attributes, setAttributes}: Props ) => {\n\tconst help = <span\n\t\tdangerouslySetInnerHTML={{ //phpcs:ignore\n\t\t\t__html: sprintf(\n\t\t\t\t/* translators: 1: Opening anchor tag, 2: Closing anchor tag */\n\t\t\t\t__( 'For more robust and intuitive exclusions use the %1$sPRO version%2$s.', 'advanced-sidebar-menu' ), '<a href=\"https://onpointplugins.com/advanced-sidebar-menu/advanced-sidebar-menu-pro-widget-docs/advanced-sidebar-menu-pro-excluding-menu-items/?utm_source=exclude-field&utm_campaign=gopro&utm_medium=wp-dash\" target=\"_blank\">', '</a>' ),\n\t\t}} />;\n\n\treturn (\n\t\t<TextControl\n\t\t\t/* translators: Selected post type plural label */\n\t\t\tlabel={sprintf( __( '%s to exclude (ids, comma separated)', 'advanced-sidebar-menu' ), type?.labels?.name ?? '' )}\n\t\t\tvalue={attributes.exclude}\n\t\t\thelp={help}\n\t\t\tonChange={value => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\texclude: value,\n\t\t\t\t} );\n\t\t\t}} />\n\t);\n};\n\nexport default withFilters<Props>( 'advanced-sidebar-menu.blocks.exclude-field' )( ExcludeField );\n","import {CONFIG} from '../../globals/config';\nimport {Button, PanelBody, withFilters} from '@wordpress/components';\nimport {InspectorControls} from '@wordpress/block-editor';\nimport {decodeEntities} from '@wordpress/html-entities';\nimport {__} from '@wordpress/i18n';\n\nimport styles from './info-panel.pcss';\n\ntype Props = {\n\tclientId: string;\n};\n\nconst titleStyles = {\n\tcolor: '#3db634',\n\tfontWeight: 700,\n};\n\nconst headingStyles = {\n\tmargin: '16px 0 0',\n\tfontSize: '1.2em',\n};\n\nconst InfoPanel = ( {}: Props ) => {\n\treturn ( <InspectorControls>\n\t\t<PanelBody\n\t\t\ttitle={<span style={titleStyles}>\n\t\t\t\t{__( 'Go PRO', 'advanced-sidebar-menu' )}\n\t\t\t</span>}\n\t\t\tclassName={styles.wrap}\n\t\t\tinitialOpen={false}\n\t\t>\n\t\t\t<h2 style={headingStyles}>\n\t\t\t\t{__( 'Advanced Sidebar Menu PRO', 'advanced-sidebar-menu' )}\n\t\t\t</h2>\n\t\t\t<ul>\n\t\t\t\t{CONFIG.features.map( feature => (\n\t\t\t\t\t<li key={feature}>\n\t\t\t\t\t\t{decodeEntities( feature )}\n\t\t\t\t\t</li>\n\t\t\t\t) )}\n\t\t\t\t<li>\n\t\t\t\t\t{__( 'And so much more…', 'advanced-sidebar-menu' )}\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t\t<Button\n\t\t\t\tclassName={styles.button}\n\t\t\t\thref={'https://onpointplugins.com/product/advanced-sidebar-menu-pro/?utm_source=block-upgrade&utm_campaign=gopro&utm_medium=wp-dash#buy-now-choices'}\n\t\t\t\ttarget={'_blank'}\n\t\t\t\trel={'noreferrer'}\n\t\t\t\tisPrimary\n\t\t\t>\n\t\t\t\t{__( 'Upgrade', 'advanced-sidebar-menu' )}\n\t\t\t</Button>\n\t\t</PanelBody>\n\t</InspectorControls> );\n};\n\nexport default withFilters<Props>( 'advanced-sidebar-menu.blocks.info-panel' )( InfoPanel );\n","import {ReactElement, useEffect} from 'react';\nimport {CONFIG} from '../../globals/config';\nimport ServerSideRender from '@wordpress/server-side-render';\nimport {Placeholder, Spinner} from '@wordpress/components';\nimport {useBlockProps} from '@wordpress/block-editor';\nimport {sanitize} from 'dompurify';\nimport {doAction} from '@wordpress/hooks';\nimport {__} from '@wordpress/i18n';\nimport {select} from '@wordpress/data';\nimport {isScreen} from '../helpers';\n\nimport styles from './preview.pcss';\n\n\nexport type PreviewOptions = {\n\tisServerSideRenderRequest: boolean;\n\tclientId: string;\n\tsidebarId: string;\n}\n\ntype Props<A> = {\n\tattributes: A;\n\tblock: string;\n\tclientId: string;\n};\n\n/**\n * Same as the Dashicons `welcome-widgets-menus` icon but available inside\n * iframe editors which don't enqueue the Dashicons font.\n */\nconst ICON = <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n\t<rect x=\"0\" fill=\"none\" width=\"20\" height=\"20\" />\n\t<g>\n\t\t<path d=\"M19 16V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v13c0 .55.45 1 1 1h15c.55 0 1-.45 1-1zM4 4h13v4H4V4zm1 1v2h3V5H5zm4 0v2h3V5H9zm4 0v2h3V5h-3zm-8.5 5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zM6 10h4v1H6v-1zm6 0h5v5h-5v-5zm-7.5 2c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zM6 12h4v1H6v-1zm7 0v2h3v-2h-3zm-8.5 2c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zM6 14h4v1H6v-1z\" />\n\t</g>\n</svg>;\n\n/**\n * Sanitize a client id for use as an HTML id.\n *\n * Must not start with a `-` or a digit.\n *\n */\nexport const sanitizeClientId = ( clientId: string ): string => {\n\treturn clientId.replace( /^([\\d-])/, '_$1' );\n};\n\n/**\n * If we are in the widgets' area, the block is wrapped in\n * a \"sidebar\" block. We retrieve the id to pass along with\n * the request to use the `widget_args` within the preview.\n *\n */\nconst getSidebarId = ( clientId: string ): string => {\n\tif ( ! isScreen( [ 'widgets' ] ) ) {\n\t\treturn '';\n\t}\n\tconst rootId = select( 'core/block-editor' ).getBlockRootClientId( clientId );\n\tif ( 'undefined' !== typeof rootId && '' !== rootId ) {\n\t\tconst ParentBlock = select( 'core/block-editor' ).getBlocksByClientId( [ rootId ] );\n\t\tif ( null !== ParentBlock[ 0 ] && 'undefined' !== typeof ParentBlock[ 0 ] && 'core/widget-area' === ParentBlock[ 0 ]?.name ) {\n\t\t\treturn ParentBlock[ 0 ]?.attributes?.id;\n\t\t}\n\t}\n\n\treturn '';\n};\n\n/**\n * @notice Must use static constants, or the ServerSide requests\n *         will fire anytime something on the page is changed\n *         because the component re-renders.\n */\nconst Page = () => <Placeholder\n\tclassName={styles.placeholder}\n\ticon={ICON}\n\tlabel={__( 'Advanced Sidebar - Pages', 'advanced-sidebar-menu' )}\n\tinstructions={__( 'No preview available', 'advanced-sidebar-menu' )}\n/>;\n\nconst Category = () => <Placeholder\n\tclassName={styles.placeholder}\n\ticon={ICON}\n\tlabel={__( 'Advanced Sidebar - Categories', 'advanced-sidebar-menu' )}\n\tinstructions={__( 'No preview available', 'advanced-sidebar-menu' )}\n/>;\n\nconst Navigation = () => <Placeholder\n\tclassName={styles.placeholder}\n\ticon={ICON}\n\tlabel={__( 'Advanced Sidebar - Navigation', 'advanced-sidebar-menu' )}\n\tinstructions={__( 'No preview available', 'advanced-sidebar-menu' )}\n/>;\n\n/**\n * @notice The styles will not display for the preview\n *         in the block inserter sidebar when Webpack\n *         is enabled because the iframe has a late init.\n *\n */\nconst placeholder = ( block: string ): () => ReactElement => {\n\tswitch ( block ) {\n\t\tcase CONFIG.blocks.pages.id:\n\t\t\treturn Page;\n\t\tcase CONFIG.blocks.categories.id:\n\t\t\treturn Category;\n\t\tcase CONFIG.blocks.navigation?.id:\n\t\t\treturn Navigation;\n\t}\n\treturn () => <></>;\n};\n\n\n/**\n * Same as the `DefaultLoadingResponsePlaceholder` except we trigger\n * an action when the loading component is unmounted to allow\n * components to hook into when ServerSideRender has finished loading.\n *\n * @notice Using a constant to prevent a reload on every content change.\n *\n */\nconst TriggerWhenLoadingFinished = ( {\n\tchildren,\n\tattributes = {\n\t\tclientId: '',\n\t},\n} ) => {\n\tuseEffect( () => {\n\t\t// Call action when the loading component unmounts because loading is finished.\n\t\treturn () => {\n\t\t\t// Give the preview a chance to load on WP 5.8.\n\t\t\tsetTimeout( () => {\n\t\t\t\tdoAction( 'advanced-sidebar-menu.blocks.preview.loading-finished', {\n\t\t\t\t\tvalues: attributes,\n\t\t\t\t\tclientId: attributes.clientId,\n\t\t\t\t} );\n\t\t\t}, 100 );\n\t\t};\n\t} );\n\n\t/**\n\t * ServerSideRender returns a <RawHTML /> filled with an error object when fetch fails.\n\t *\n\t * We throw an error, so our `ErrorBoundary` will catch it, otherwise we end up\n\t * with a \"React objects may not be used as children\" error, which means nothing.\n\t */\n\tif ( 'string' === typeof children?.props?.children?.errorMsg ) {\n\t\tthrow new Error( children?.props?.children?.errorMsg ?? 'Failed' );\n\t}\n\n\treturn (\n\t\t<div className={styles.spinWrap}>\n\t\t\t<div className={styles.spin}>\n\t\t\t\t<Spinner />\n\t\t\t</div>\n\t\t\t<div className={styles.spinContent}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\n\nconst Preview = <A, >( {attributes, block, clientId}: Props<A> ) => {\n\tconst blockProps = useBlockProps();\n\n\tif ( '' !== CONFIG.error ) {\n\t\treturn <div\n\t\t\tclassName={styles.error}\n\t\t\tdangerouslySetInnerHTML={{__html: sanitize( CONFIG.error )}} />;\n\t}\n\n\n\tconst sanitizedClientId = sanitizeClientId( clientId );\n\n\t// Prevent styles from doubling up as they are already added via render in PHP.\n\tdelete blockProps.style;\n\n\treturn (\n\t\t// eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\t{...blockProps}\n\t\t\tonClick={ev => {\n\t\t\t\tconst element = ev.target as HTMLElement;\n\t\t\t\tif ( 'A' === element.nodeName ) {\n\t\t\t\t\tev.preventDefault();\n\t\t\t\t}\n\t\t\t}}\n\t\t>\n\t\t\t<ServerSideRender<A & PreviewOptions>\n\t\t\t\tEmptyResponsePlaceholder={placeholder( block )}\n\t\t\t\tLoadingResponsePlaceholder={TriggerWhenLoadingFinished}\n\t\t\t\tattributes={{\n\t\t\t\t\t...attributes,\n\t\t\t\t\t// Send custom attribute to determine server side renders.\n\t\t\t\t\tisServerSideRenderRequest: true,\n\t\t\t\t\tclientId: sanitizedClientId,\n\t\t\t\t\tsidebarId: getSidebarId( clientId ),\n\t\t\t\t}}\n\t\t\t\tblock={block}\n\t\t\t\thttpMethod={'POST'}\n\t\t\t/>\n\t\t</div>\n\t);\n};\n\nexport default Preview;\n","import {useSelect} from '@wordpress/data';\nimport {CONFIG} from '../../../globals/config';\nimport {sanitize} from 'dompurify';\nimport {BlockControls, InspectorControls} from '@wordpress/block-editor';\nimport Preview from '../Preview';\nimport {Attr, block} from './block';\nimport {Taxonomy} from '@wordpress/api/taxonomies';\nimport {BlockEditProps} from '@wordpress/blocks';\nimport ErrorBoundary from '../../../components/ErrorBoundary';\nimport Display from '../Display';\nimport {CheckboxControl, PanelBody, SelectControl, Slot, TextControl} from '@wordpress/components';\nimport {__, sprintf} from '@wordpress/i18n';\nimport InfoPanel from '../InfoPanel';\nimport SideLoad from '../../SideLoad';\nimport {isScreen} from '../../helpers';\n\nimport styles from '../pages/edit.pcss';\nimport ExcludeField from '../ExcludeField';\n\nexport type FillProps =\n\tPick<BlockEditProps<Attr>, 'clientId' | 'attributes' | 'setAttributes' | 'name'>\n\t& { type?: Taxonomy }\n\ntype Props = BlockEditProps<Attr>;\n\nconst Edit = ( {attributes, setAttributes, clientId, name}: Props ) => {\n\tconst taxonomy: Taxonomy<'edit'> | undefined = useSelect( select => {\n\t\tconst type = select( 'core' ).getTaxonomy( attributes.taxonomy ?? 'category' );\n\t\treturn type ?? select( 'core' ).getTaxonomy( 'category' );\n\t}, [ attributes.taxonomy ] );\n\n\t// We have a version conflict or license error.\n\tif ( '' !== CONFIG.error ) {\n\t\treturn ( <>\n\t\t\t<InspectorControls>\n\t\t\t\t<div\n\t\t\t\t\tclassName={styles.error}\n\t\t\t\t\tdangerouslySetInnerHTML={{__html: sanitize( CONFIG.error )}} />\n\t\t\t</InspectorControls>\n\t\t\t<Preview<Attr> attributes={attributes} block={block.id} clientId={clientId} />\n\t\t</> );\n\t}\n\n\tconst fillProps: FillProps = {\n\t\ttype: taxonomy,\n\t\tattributes,\n\t\tname,\n\t\tsetAttributes,\n\t\tclientId,\n\t};\n\n\treturn ( <>\n\t\t<InspectorControls>\n\t\t\t{isScreen( [ 'widgets', 'site-editor', 'customize' ] ) && <PanelBody>\n\t\t\t\t<TextControl\n\t\t\t\t\tvalue={attributes.title ?? ''}\n\t\t\t\t\tlabel={__( 'Title', 'advanced-sidebar-menu' )}\n\t\t\t\t\tonChange={title => setAttributes( {title} )} />\n\t\t\t</PanelBody>}\n\t\t\t<ErrorBoundary attributes={attributes} block={name} section={'categories/Edit/general'}>\n\t\t\t\t<Display\n\t\t\t\t\tattributes={attributes}\n\t\t\t\t\tclientId={clientId}\n\t\t\t\t\tname={name}\n\t\t\t\t\tsetAttributes={setAttributes}\n\t\t\t\t\ttype={taxonomy}\n\t\t\t\t>\n\t\t\t\t\t{/* Not offering \"Display categories on single posts\"\n\t\t                when editing a post because this must be true, or\n\t\t                the block won't display.\n\n\t\t                We default the attribute to `true` if we are editing\n\t\t                a post during register of block attributes. */}\n\t\t\t\t\t{isScreen( [ 'post' ] ) && <CheckboxControl\n\t\t\t\t\t\t/* translators: Selected taxonomy plural label */\n\t\t\t\t\t\tlabel={sprintf( __( 'Display %s on single posts', 'advanced-sidebar-menu' ), taxonomy?.labels?.name.toLowerCase() ?? '' )}\n\t\t\t\t\t\tchecked={attributes.single}\n\t\t\t\t\t\tonChange={value => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tsingle: 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{/*\n\t\t\t\t\t\t  Only widget screens support this option because we\n\t\t\t\t\t\t  have no widget wrap to use on other screens, so they are\n\t\t\t\t\t\t  list only. */}\n\t\t\t\t\t{isScreen( [ 'widgets', 'customize' ] ) && attributes.single &&\n\t\t\t\t\t\t<SelectControl<'list' | 'widget'>\n\t\t\t\t\t\t\t/* translators: Selected taxonomy single label */\n\t\t\t\t\t\t\tlabel={sprintf( __( 'Display each single post\\'s %s', 'advanced-sidebar-menu' ), taxonomy?.labels?.name.toLowerCase() ?? '' )}\n\t\t\t\t\t\t\tvalue={attributes.new_widget}\n\t\t\t\t\t\t\toptions={Object.keys( CONFIG.categories.displayEach ).map( ( key: 'list' | 'widget' ) => ( {\n\t\t\t\t\t\t\t\tvalue: key,\n\t\t\t\t\t\t\t\tlabel: CONFIG.categories.displayEach[ key ],\n\t\t\t\t\t\t\t} ) )}\n\t\t\t\t\t\t\t/* eslint-disable-next-line camelcase */\n\t\t\t\t\t\t\tonChange={new_widget => setAttributes( {new_widget} )}\n\t\t\t\t\t\t/>}\n\t\t\t\t</Display>\n\n\t\t\t\t<div className={'components-panel__body is-opened'}>\n\n\t\t\t\t\t<Slot<FillProps>\n\t\t\t\t\t\tname=\"advanced-sidebar-menu/categories/general\"\n\t\t\t\t\t\tfillProps={fillProps} />\n\n\t\t\t\t\t<ExcludeField\n\t\t\t\t\t\ttype={taxonomy}\n\t\t\t\t\t\tattributes={attributes}\n\t\t\t\t\t\tsetAttributes={setAttributes} />\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref={CONFIG.docs.category}\n\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{__( 'block documentation', 'advanced-sidebar-menu' )}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t</ErrorBoundary>\n\t\t\t<ErrorBoundary\n\t\t\t\tattributes={attributes}\n\t\t\t\tblock={name}\n\t\t\t\tsection={'categories/Edit/inspector'}\n\t\t\t>\n\t\t\t\t<Slot<FillProps>\n\t\t\t\t\tname=\"advanced-sidebar-menu/categories/inspector\"\n\t\t\t\t\tfillProps={fillProps} />\n\n\t\t\t</ErrorBoundary>\n\t\t</InspectorControls>\n\n\t\t<BlockControls>\n\t\t\t<ErrorBoundary\n\t\t\t\tattributes={attributes}\n\t\t\t\tblock={name}\n\t\t\t\tsection={'categories/Edit/block-controls'}\n\t\t\t>\n\t\t\t\t<Slot<FillProps>\n\t\t\t\t\tname=\"advanced-sidebar-menu/categories/block-controls\"\n\t\t\t\t\tfillProps={fillProps} />\n\t\t\t</ErrorBoundary>\n\t\t</BlockControls>\n\n\t\t<InfoPanel clientId={clientId} />\n\n\t\t<ErrorBoundary attributes={attributes} block={name} section={'categories/Edit/preview'}>\n\t\t\t<Preview<Attr> attributes={attributes} block={block.id} clientId={clientId} />\n\t\t</ErrorBoundary>\n\n\t\t<SideLoad clientId={clientId} />\n\t</> );\n};\n\nexport default Edit;\n","import {CONFIG} from '../../../globals/config';\nimport {BlockSettings, LegacyWidget} from '@wordpress/blocks';\nimport Edit from './Edit';\nimport {DisplayOptions} from '../Display';\nimport {transformLegacyWidget} from '../../helpers';\nimport {__} from '@wordpress/i18n';\n\n/**\n * Attributes specific to the widget as well as shared\n * widget attributes.\n *\n * @see \\Advanced_Sidebar_Menu\\Blocks\\Block_Abstract::get_all_attributes\n * @see \\Advanced_Sidebar_Menu\\Blocks\\Pages::get_attributes\n */\nexport type Attr = {\n\texclude: string;\n\tnew_widget: 'widget' | 'list';\n\tsingle: boolean;\n\ttitle?: string;\n} & DisplayOptions & ProRegistered;\n\n// Options used by basic when available from PRO.\ntype ProRegistered = {\n\ttaxonomy: string;\n}\n\nexport type setAttributes = ( newValue: {\n\t[attribute in keyof Attr]?: Attr[attribute]\n} ) => void;\n\n/**\n * Attributes used for the example preview.\n * Combines some PRO and basic attributes.\n * The PRO attributes will only be sent if PRO is active.\n */\nconst EXAMPLE = {\n\t'display-posts': 'all',\n\t'display-posts/limit': 2,\n\tapply_current_page_parent_styles_to_parent: true,\n\tapply_current_page_styles_to_parent: true,\n\tblock_style: true,\n\tborder: true,\n\tborder_color: '#333',\n\tbullet_style: 'none',\n\tchild_page_bg_color: '#666',\n\tchild_page_color: '#fff',\n\tparent_page_bg_color: '#282828',\n\tparent_page_color: '#0cc4c6',\n\tparent_page_font_weight: 'normal',\n\tdisplay_all: true,\n\tgrandchild_page_bg_color: '#989898',\n\tgrandchild_page_color: '#282828',\n\tgrandchild_page_font_weight: 'bold',\n\tinclude_childless_parent: true,\n\tinclude_parent: true,\n\tlevels: 2,\n};\n\n\nexport const block = CONFIG.blocks.categories;\n\nexport const name = block.id;\n\nexport const settings: BlockSettings<Attr, '', LegacyWidget<Attr & { title: string }>> = {\n\ttitle: __( 'Advanced Sidebar - Categories', 'advanced-sidebar-menu' ),\n\ticon: 'welcome-widgets-menus',\n\tcategory: 'widgets',\n\texample: {\n\t\tattributes: EXAMPLE,\n\t},\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/legacy-widget' ],\n\t\t\t\tisMatch: ( {idBase, instance} ) => {\n\t\t\t\t\tif ( null === instance?.raw ) {\n\t\t\t\t\t\t// Can't transform if raw instance is not shown in REST API.\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn 'advanced_sidebar_menu_category' === idBase;\n\t\t\t\t},\n\t\t\t\ttransform: transformLegacyWidget<Attr>( name ),\n\t\t\t},\n\t\t],\n\t},\n\tattributes: block.attributes,\n\tsupports: block.supports,\n\tedit: props => (\n\t\t<Edit {...props} />\n\t),\n\tsave: () => null,\n\tapiVersion: 3,\n};\n","import {BlockControls, InspectorControls} from '@wordpress/block-editor';\nimport {PanelBody, SelectControl, Slot, TextControl} from '@wordpress/components';\nimport {BlockEditProps} from '@wordpress/blocks';\nimport {Attr, block} from './block';\nimport Preview from '../Preview';\nimport Display from '../Display';\nimport {useSelect} from '@wordpress/data';\nimport InfoPanel from '../InfoPanel';\nimport {CONFIG} from '../../../globals/config';\nimport {sanitize} from 'dompurify';\nimport {__} from '@wordpress/i18n';\nimport {Type} from '@wordpress/api/types';\nimport ErrorBoundary from '../../../components/ErrorBoundary';\nimport SideLoad from '../../SideLoad';\nimport {isScreen} from '../../helpers';\n\nimport styles from './edit.pcss';\nimport ExcludeField from '../ExcludeField';\n\n\nexport type FillProps =\n\tPick<BlockEditProps<Attr>, 'clientId' | 'attributes' | 'setAttributes' | 'name'>\n\t& { type?: Type }\n\ntype Props = BlockEditProps<Attr>;\n\n/**\n * Pages block content in the editor.\n */\nconst Edit = ( {attributes, setAttributes, clientId, name}: Props ) => {\n\tconst postType: Type<'edit'> | undefined = useSelect( select => {\n\t\tconst type = select( 'core' ).getPostType( attributes.post_type ?? 'page' );\n\t\treturn type ?? select( 'core' ).getPostType( 'page' );\n\t}, [ attributes.post_type ] );\n\n\t// We have a version conflict or license error.\n\tif ( '' !== CONFIG.error ) {\n\t\treturn ( <>\n\t\t\t<InspectorControls>\n\t\t\t\t<div\n\t\t\t\t\tclassName={styles.error}\n\t\t\t\t\tdangerouslySetInnerHTML={{__html: sanitize( CONFIG.error )}} />\n\t\t\t</InspectorControls>\n\t\t\t<Preview<Attr> attributes={attributes} block={block.id} clientId={clientId} />\n\t\t</> );\n\t}\n\n\tconst fillProps: FillProps = {\n\t\ttype: postType,\n\t\tattributes,\n\t\tname,\n\t\tsetAttributes,\n\t\tclientId,\n\t};\n\n\n\treturn ( <>\n\t\t<InspectorControls>\n\t\t\t{isScreen( [ 'widgets', 'site-editor', 'customize' ] ) && <PanelBody>\n\t\t\t\t<TextControl\n\t\t\t\t\tvalue={attributes.title ?? ''}\n\t\t\t\t\tlabel={__( 'Title', 'advanced-sidebar-menu' )}\n\t\t\t\t\tonChange={title => setAttributes( {title} )} />\n\t\t\t</PanelBody>}\n\t\t\t<ErrorBoundary attributes={attributes} block={name} section={'pages/Edit/general'}>\n\t\t\t\t<Display\n\t\t\t\t\tattributes={attributes}\n\t\t\t\t\tclientId={clientId}\n\t\t\t\t\tname={name}\n\t\t\t\t\tsetAttributes={setAttributes}\n\t\t\t\t\ttype={postType} />\n\n\t\t\t\t<div className={'components-panel__body is-opened'}>\n\n\t\t\t\t\t<Slot<FillProps>\n\t\t\t\t\t\tname=\"advanced-sidebar-menu/pages/general\"\n\t\t\t\t\t\tfillProps={fillProps} />\n\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={__( 'Order by', 'advanced-sidebar-menu' )}\n\t\t\t\t\t\tvalue={attributes.order_by}\n\t\t\t\t\t\tlabelPosition={'side'}\n\t\t\t\t\t\toptions={Object.entries( CONFIG.pages.orderBy ).map( ( [ value, label ] ) => ( {\n\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\tlabel,\n\t\t\t\t\t\t} ) )}\n\t\t\t\t\t\tonChange={value => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\torder_by: value,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}} />\n\n\t\t\t\t\t<ExcludeField\n\t\t\t\t\t\ttype={postType}\n\t\t\t\t\t\tattributes={attributes}\n\t\t\t\t\t\tsetAttributes={setAttributes} />\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref={CONFIG.docs.page}\n\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{__( 'block documentation', 'advanced-sidebar-menu' )}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t</ErrorBoundary>\n\t\t\t<ErrorBoundary attributes={attributes} block={name} section={'pages/Edit/inspector'}>\n\t\t\t\t<Slot<FillProps>\n\t\t\t\t\tname=\"advanced-sidebar-menu/pages/inspector\"\n\t\t\t\t\tfillProps={fillProps} />\n\n\t\t\t</ErrorBoundary>\n\t\t</InspectorControls>\n\n\t\t<BlockControls>\n\t\t\t<ErrorBoundary\n\t\t\t\tattributes={attributes}\n\t\t\t\tblock={name}\n\t\t\t\tsection={'pages/Edit/block-controls'}\n\t\t\t>\n\t\t\t\t<Slot<FillProps>\n\t\t\t\t\tname=\"advanced-sidebar-menu/pages/block-controls\"\n\t\t\t\t\tfillProps={fillProps} />\n\t\t\t</ErrorBoundary>\n\t\t</BlockControls>\n\n\t\t<InfoPanel clientId={clientId} />\n\n\t\t<ErrorBoundary attributes={attributes} block={name} section={'pages/Edit/preview'}>\n\t\t\t<Preview<Attr> attributes={attributes} block={block.id} clientId={clientId} />\n\t\t</ErrorBoundary>\n\n\t\t<SideLoad clientId={clientId} />\n\t</> );\n};\n\nexport default Edit;\n","import {BlockSettings, LegacyWidget} from '@wordpress/blocks';\nimport {CONFIG} from '../../../globals/config';\nimport Edit from './Edit';\nimport {DisplayOptions} from '../Display';\nimport {transformLegacyWidget} from '../../helpers';\nimport {__} from '@wordpress/i18n';\n\n/**\n * Attributes specific to the widget as well as shared\n * widget attributes.\n *\n * @see \\Advanced_Sidebar_Menu\\Blocks\\Block_Abstract::get_all_attributes\n * @see \\Advanced_Sidebar_Menu\\Blocks\\Pages::get_attributes\n */\nexport type Attr = {\n\texclude: string;\n\torder_by: string;\n\ttitle?: string;\n} & DisplayOptions & ProRegistered;\n\n// Options used by basic when available from PRO.\ntype ProRegistered = {\n\tpost_type: string;\n}\n\nexport type setAttributes = ( newValue: {\n\t[attribute in keyof Attr]?: Attr[attribute]\n} ) => void;\n\n\n/**\n * Attributes used for the example preview.\n * Combines some PRO and basic attributes.\n * The PRO attributes will only be sent if PRO is active.\n */\nconst EXAMPLE = {\n\tapply_current_page_parent_styles_to_parent: true,\n\tapply_current_page_styles_to_parent: true,\n\tblock_style: true,\n\tborder: true,\n\tborder_color: '#333',\n\tbullet_style: 'none',\n\tchild_page_bg_color: '#666',\n\tchild_page_color: '#fff',\n\tcurrent_page_bg_color: '#282828',\n\tcurrent_page_color: '#0cc4c6',\n\tcurrent_page_font_weight: 'normal',\n\tcurrent_page_parent_bg_color: '#333',\n\tdisplay_all: true,\n\tgrandchild_page_bg_color: '#989898',\n\tgrandchild_page_color: '#282828',\n\tgrandchild_page_font_weight: 'bold',\n\tinclude_childless_parent: true,\n\tinclude_parent: true,\n\tlevels: 2,\n\tparent_page_bg_color: '#666',\n\tparent_page_color: '#fff',\n};\n\nexport const block = CONFIG.blocks.pages;\n\nexport const name = block.id;\n\nexport const settings: BlockSettings<Attr, '', LegacyWidget<Attr & { title: string }>> = {\n\ttitle: __( 'Advanced Sidebar - Pages', 'advanced-sidebar-menu' ),\n\ticon: 'welcome-widgets-menus',\n\tcategory: 'widgets',\n\texample: {\n\t\tattributes: EXAMPLE,\n\t},\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/legacy-widget' ],\n\t\t\t\tisMatch: ( {idBase, instance} ) => {\n\t\t\t\t\tif ( null === instance?.raw ) {\n\t\t\t\t\t\t// Can't transform if raw instance is not shown in REST API.\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn 'advanced_sidebar_menu' === idBase;\n\t\t\t\t},\n\t\t\t\ttransform: transformLegacyWidget<Attr>( name ),\n\t\t\t},\n\t\t],\n\t},\n\tattributes: block.attributes,\n\tsupports: block.supports,\n\tedit: props => (\n\t\t<Edit {...props} />\n\t),\n\tsave: () => null,\n\tapiVersion: 3,\n};\n","import {createBlock, CreateBlock} from '@wordpress/blocks';\nimport {CONFIG, Screen} from '../globals/config';\n\nexport type TransformLegacy = <Attr>( name: string ) => ( widgetValues: {\n\tinstance: { [ key: string ]: string | number | object | boolean }\n} ) => CreateBlock<Attr>;\n\n/**\n * Are we on one of the provided screens?\n */\nexport const isScreen = ( screens: Array<Screen> ): boolean => {\n\treturn screens.includes( CONFIG.currentScreen );\n};\n\n/**\n * Transform a legacy widget to the matching block.\n *\n */\nexport const transformLegacyWidget: TransformLegacy = <A>( name: string ) => ( {instance} ) => {\n\treturn createBlock<A>( name, translateLegacyWidget<A>( instance.raw ) );\n};\n\n/**\n * Translate the widget's \"checked\" to the boolean\n * version used in the block.\n *\n */\nconst translateLegacyWidget = <A>( settings ): A => {\n\tObject.entries( settings ).forEach( ( [ key, value ] ) => {\n\t\tif ( 'checked' === value ) {\n\t\t\tsettings[ key ] = true;\n\t\t}\n\t\tif ( 'object' === typeof value ) {\n\t\t\ttranslateLegacyWidget( settings[ key ] );\n\t\t}\n\t\t// Old widgets used to use \"0\" for some defaults.\n\t\tif ( '0' === value ) {\n\t\t\tdelete settings[ key ];\n\t\t}\n\t} );\n\treturn settings;\n};\n","import {autoloadBlocks} from '@lipemat/js-boilerplate-gutenberg';\nimport Preview from './blocks/Preview';\nimport {transformLegacyWidget} from './helpers';\nimport ErrorBoundary from '../components/ErrorBoundary';\n\n/**\n * Use our custom autoloader to automatically require,\n * register and add HMR support to Gutenberg related items.\n *\n * Will load from specified directory recursively.\n */\nexport default () => {\n\t// Load all blocks\n\tautoloadBlocks( () => require.context( './blocks', true, /block\\.tsx$/ ), module );\n\n\t// Expose helpers and Preview component to window, so we can use them in PRO.\n\twindow.ADVANCED_SIDEBAR_MENU.ErrorBoundary = ErrorBoundary;\n\twindow.ADVANCED_SIDEBAR_MENU.Preview = Preview;\n\twindow.ADVANCED_SIDEBAR_MENU.transformLegacyWidget = transformLegacyWidget;\n}\n","import {createRoot} from 'react-dom/client';\nimport TransformNotice, {DISMISS_KEY} from '../components/TransformNotice';\nimport {CONFIG} from '../globals/config';\n\n\nfunction renderTransformNotice() {\n\t// Only render on the block based widgets screen.\n\tif ( CONFIG.siteInfo.classicWidgets ) {\n\t\treturn;\n\t}\n\t// Don't render if the user has dismissed the notice.\n\tif ( '1' === localStorage.getItem( DISMISS_KEY ) ) {\n\t\treturn;\n\t}\n\tconst placeholders = document.querySelectorAll( '[data-js=\"advanced-sidebar-menu/transform-notice\"]' );\n\n\t/**\n\t * This is not a priority component, so it anything fails\n\t * we fail silently.\n\t */\n\ttry {\n\t\tplaceholders.forEach( placeholder => {\n\t\t\tconst root = createRoot( placeholder );\n\t\t\troot.render( <TransformNotice /> );\n\t\t} );\n\t} catch ( e ) {\n\t\tconsole.error( e );\n\t}\n}\n\n\n/**\n * Modern JS for legacy widgets on the widgets screen.\n *\n * @see resources/js/advanced-sidebar-menu.js for the legacy JS.\n */\nexport default () => {\n\t// Only load on the widgets screen.\n\tif ( '1' !== CONFIG.isWidgets ) {\n\t\treturn;\n\t}\n\t// Fire when each widget loads.\n\tjQuery( document ).on( 'widget-added', function() {\n\t\trenderTransformNotice();\n\t} );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"transform-notice__wrap__mq\"};","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"info-panel__wrap__k_\",\"button\":\"info-panel__button__Fg\"};","// extracted by mini-css-extract-plugin\nexport default {\"error\":\"edit__error__lZ\"};","// extracted by mini-css-extract-plugin\nexport default {\"placeholder\":\"preview__placeholder__HI\",\"error\":\"preview__error__Nl\",\"spin-wrap\":\"preview__spin-wrap__o0\",\"spinWrap\":\"preview__spin-wrap__o0\",\"spin\":\"preview__spin__Oj\",\"spin-content\":\"preview__spin-content__uC\",\"spinContent\":\"preview__spin-content__uC\"};","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n  exports.createRoot = m.createRoot;\n  exports.hydrateRoot = m.hydrateRoot;\n} else {\n  var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n  exports.createRoot = function(c, o) {\n    i.usingClientEntryPoint = true;\n    try {\n      return m.createRoot(c, o);\n    } finally {\n      i.usingClientEntryPoint = false;\n    }\n  };\n  exports.hydrateRoot = function(c, h, o) {\n    i.usingClientEntryPoint = true;\n    try {\n      return m.hydrateRoot(c, h, o);\n    } finally {\n      i.usingClientEntryPoint = false;\n    }\n  };\n}\n","/*! @license DOMPurify 3.1.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.6/LICENSE */\n\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n  typeof define === 'function' && define.amd ? define(factory) :\n  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.DOMPurify = factory());\n})(this, (function () { 'use strict';\n\n  const {\n    entries,\n    setPrototypeOf,\n    isFrozen,\n    getPrototypeOf,\n    getOwnPropertyDescriptor\n  } = Object;\n  let {\n    freeze,\n    seal,\n    create\n  } = Object; // eslint-disable-line import/no-mutable-exports\n  let {\n    apply,\n    construct\n  } = typeof Reflect !== 'undefined' && Reflect;\n  if (!freeze) {\n    freeze = function freeze(x) {\n      return x;\n    };\n  }\n  if (!seal) {\n    seal = function seal(x) {\n      return x;\n    };\n  }\n  if (!apply) {\n    apply = function apply(fun, thisValue, args) {\n      return fun.apply(thisValue, args);\n    };\n  }\n  if (!construct) {\n    construct = function construct(Func, args) {\n      return new Func(...args);\n    };\n  }\n  const arrayForEach = unapply(Array.prototype.forEach);\n  const arrayPop = unapply(Array.prototype.pop);\n  const arrayPush = unapply(Array.prototype.push);\n  const stringToLowerCase = unapply(String.prototype.toLowerCase);\n  const stringToString = unapply(String.prototype.toString);\n  const stringMatch = unapply(String.prototype.match);\n  const stringReplace = unapply(String.prototype.replace);\n  const stringIndexOf = unapply(String.prototype.indexOf);\n  const stringTrim = unapply(String.prototype.trim);\n  const objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\n  const regExpTest = unapply(RegExp.prototype.test);\n  const typeErrorCreate = unconstruct(TypeError);\n\n  /**\n   * Creates a new function that calls the given function with a specified thisArg and arguments.\n   *\n   * @param {Function} func - The function to be wrapped and called.\n   * @returns {Function} A new function that calls the given function with a specified thisArg and arguments.\n   */\n  function unapply(func) {\n    return function (thisArg) {\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n      return apply(func, thisArg, args);\n    };\n  }\n\n  /**\n   * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n   *\n   * @param {Function} func - The constructor function to be wrapped and called.\n   * @returns {Function} A new function that constructs an instance of the given constructor function with the provided arguments.\n   */\n  function unconstruct(func) {\n    return function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      return construct(func, args);\n    };\n  }\n\n  /**\n   * Add properties to a lookup table\n   *\n   * @param {Object} set - The set to which elements will be added.\n   * @param {Array} array - The array containing elements to be added to the set.\n   * @param {Function} transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n   * @returns {Object} The modified set with added elements.\n   */\n  function addToSet(set, array) {\n    let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n    if (setPrototypeOf) {\n      // Make 'in' and truthy checks like Boolean(set.constructor)\n      // independent of any properties defined on Object.prototype.\n      // Prevent prototype setters from intercepting set as a this value.\n      setPrototypeOf(set, null);\n    }\n    let l = array.length;\n    while (l--) {\n      let element = array[l];\n      if (typeof element === 'string') {\n        const lcElement = transformCaseFunc(element);\n        if (lcElement !== element) {\n          // Config presets (e.g. tags.js, attrs.js) are immutable.\n          if (!isFrozen(array)) {\n            array[l] = lcElement;\n          }\n          element = lcElement;\n        }\n      }\n      set[element] = true;\n    }\n    return set;\n  }\n\n  /**\n   * Clean up an array to harden against CSPP\n   *\n   * @param {Array} array - The array to be cleaned.\n   * @returns {Array} The cleaned version of the array\n   */\n  function cleanArray(array) {\n    for (let index = 0; index < array.length; index++) {\n      const isPropertyExist = objectHasOwnProperty(array, index);\n      if (!isPropertyExist) {\n        array[index] = null;\n      }\n    }\n    return array;\n  }\n\n  /**\n   * Shallow clone an object\n   *\n   * @param {Object} object - The object to be cloned.\n   * @returns {Object} A new object that copies the original.\n   */\n  function clone(object) {\n    const newObject = create(null);\n    for (const [property, value] of entries(object)) {\n      const isPropertyExist = objectHasOwnProperty(object, property);\n      if (isPropertyExist) {\n        if (Array.isArray(value)) {\n          newObject[property] = cleanArray(value);\n        } else if (value && typeof value === 'object' && value.constructor === Object) {\n          newObject[property] = clone(value);\n        } else {\n          newObject[property] = value;\n        }\n      }\n    }\n    return newObject;\n  }\n\n  /**\n   * This method automatically checks if the prop is function or getter and behaves accordingly.\n   *\n   * @param {Object} object - The object to look up the getter function in its prototype chain.\n   * @param {String} prop - The property name for which to find the getter function.\n   * @returns {Function} The getter function found in the prototype chain or a fallback function.\n   */\n  function lookupGetter(object, prop) {\n    while (object !== null) {\n      const desc = getOwnPropertyDescriptor(object, prop);\n      if (desc) {\n        if (desc.get) {\n          return unapply(desc.get);\n        }\n        if (typeof desc.value === 'function') {\n          return unapply(desc.value);\n        }\n      }\n      object = getPrototypeOf(object);\n    }\n    function fallbackValue() {\n      return null;\n    }\n    return fallbackValue;\n  }\n\n  const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n  // SVG\n  const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n  const svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\n  // List of SVG elements that are disallowed by default.\n  // We still need to know them so that we can do namespace\n  // checks properly in case one wants to add them to\n  // allow-list.\n  const svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n  const mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n\n  // Similarly to SVG, we want to know all MathML elements,\n  // even those that we disallow by default.\n  const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n  const text = freeze(['#text']);\n\n  const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);\n  const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n  const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n  const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n  // eslint-disable-next-line unicorn/better-regex\n  const MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n  const ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\n  const TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\n  const DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n  const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n  const IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n  );\n  const IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n  const ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n  );\n  const DOCTYPE_NAME = seal(/^html$/i);\n  const CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\n  var EXPRESSIONS = /*#__PURE__*/Object.freeze({\n    __proto__: null,\n    MUSTACHE_EXPR: MUSTACHE_EXPR,\n    ERB_EXPR: ERB_EXPR,\n    TMPLIT_EXPR: TMPLIT_EXPR,\n    DATA_ATTR: DATA_ATTR,\n    ARIA_ATTR: ARIA_ATTR,\n    IS_ALLOWED_URI: IS_ALLOWED_URI,\n    IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n    ATTR_WHITESPACE: ATTR_WHITESPACE,\n    DOCTYPE_NAME: DOCTYPE_NAME,\n    CUSTOM_ELEMENT: CUSTOM_ELEMENT\n  });\n\n  // https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n  const NODE_TYPE = {\n    element: 1,\n    attribute: 2,\n    text: 3,\n    cdataSection: 4,\n    entityReference: 5,\n    // Deprecated\n    entityNode: 6,\n    // Deprecated\n    progressingInstruction: 7,\n    comment: 8,\n    document: 9,\n    documentType: 10,\n    documentFragment: 11,\n    notation: 12 // Deprecated\n  };\n  const getGlobal = function getGlobal() {\n    return typeof window === 'undefined' ? null : window;\n  };\n\n  /**\n   * Creates a no-op policy for internal use only.\n   * Don't export this function outside this module!\n   * @param {TrustedTypePolicyFactory} trustedTypes The policy factory.\n   * @param {HTMLScriptElement} purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n   * @return {TrustedTypePolicy} The policy created (or null, if Trusted Types\n   * are not supported or creating the policy failed).\n   */\n  const _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n    if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n      return null;\n    }\n\n    // Allow the callers to control the unique policy name\n    // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n    // Policy creation with duplicate names throws in Trusted Types.\n    let suffix = null;\n    const ATTR_NAME = 'data-tt-policy-suffix';\n    if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n      suffix = purifyHostElement.getAttribute(ATTR_NAME);\n    }\n    const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n    try {\n      return trustedTypes.createPolicy(policyName, {\n        createHTML(html) {\n          return html;\n        },\n        createScriptURL(scriptUrl) {\n          return scriptUrl;\n        }\n      });\n    } catch (_) {\n      // Policy creation failed (most likely another DOMPurify script has\n      // already run). Skip creating the policy, as this will only cause errors\n      // if TT are enforced.\n      console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n      return null;\n    }\n  };\n  function createDOMPurify() {\n    let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n    const DOMPurify = root => createDOMPurify(root);\n\n    /**\n     * Version label, exposed for easier checks\n     * if DOMPurify is up to date or not\n     */\n    DOMPurify.version = '3.1.6';\n\n    /**\n     * Array of elements that DOMPurify removed during sanitation.\n     * Empty if nothing was removed.\n     */\n    DOMPurify.removed = [];\n    if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document) {\n      // Not running in a browser, provide a factory function\n      // so that you can pass your own Window\n      DOMPurify.isSupported = false;\n      return DOMPurify;\n    }\n    let {\n      document\n    } = window;\n    const originalDocument = document;\n    const currentScript = originalDocument.currentScript;\n    const {\n      DocumentFragment,\n      HTMLTemplateElement,\n      Node,\n      Element,\n      NodeFilter,\n      NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n      HTMLFormElement,\n      DOMParser,\n      trustedTypes\n    } = window;\n    const ElementPrototype = Element.prototype;\n    const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n    const remove = lookupGetter(ElementPrototype, 'remove');\n    const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n    const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n    const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n    // As per issue #47, the web-components registry is inherited by a\n    // new document created via createHTMLDocument. As per the spec\n    // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n    // a new empty registry is used when creating a template contents owner\n    // document, so we use that as our parent document to ensure nothing\n    // is inherited.\n    if (typeof HTMLTemplateElement === 'function') {\n      const template = document.createElement('template');\n      if (template.content && template.content.ownerDocument) {\n        document = template.content.ownerDocument;\n      }\n    }\n    let trustedTypesPolicy;\n    let emptyHTML = '';\n    const {\n      implementation,\n      createNodeIterator,\n      createDocumentFragment,\n      getElementsByTagName\n    } = document;\n    const {\n      importNode\n    } = originalDocument;\n    let hooks = {};\n\n    /**\n     * Expose whether this browser supports running the full DOMPurify.\n     */\n    DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n    const {\n      MUSTACHE_EXPR,\n      ERB_EXPR,\n      TMPLIT_EXPR,\n      DATA_ATTR,\n      ARIA_ATTR,\n      IS_SCRIPT_OR_DATA,\n      ATTR_WHITESPACE,\n      CUSTOM_ELEMENT\n    } = EXPRESSIONS;\n    let {\n      IS_ALLOWED_URI: IS_ALLOWED_URI$1\n    } = EXPRESSIONS;\n\n    /**\n     * We consider the elements and attributes below to be safe. Ideally\n     * don't add any new ones but feel free to remove unwanted ones.\n     */\n\n    /* allowed element names */\n    let ALLOWED_TAGS = null;\n    const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n\n    /* Allowed attribute names */\n    let ALLOWED_ATTR = null;\n    const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n\n    /*\n     * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n     * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n     * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n     * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n     */\n    let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n      tagNameCheck: {\n        writable: true,\n        configurable: false,\n        enumerable: true,\n        value: null\n      },\n      attributeNameCheck: {\n        writable: true,\n        configurable: false,\n        enumerable: true,\n        value: null\n      },\n      allowCustomizedBuiltInElements: {\n        writable: true,\n        configurable: false,\n        enumerable: true,\n        value: false\n      }\n    }));\n\n    /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n    let FORBID_TAGS = null;\n\n    /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n    let FORBID_ATTR = null;\n\n    /* Decide if ARIA attributes are okay */\n    let ALLOW_ARIA_ATTR = true;\n\n    /* Decide if custom data attributes are okay */\n    let ALLOW_DATA_ATTR = true;\n\n    /* Decide if unknown protocols are okay */\n    let ALLOW_UNKNOWN_PROTOCOLS = false;\n\n    /* Decide if self-closing tags in attributes are allowed.\n     * Usually removed due to a mXSS issue in jQuery 3.0 */\n    let ALLOW_SELF_CLOSE_IN_ATTR = true;\n\n    /* Output should be safe for common template engines.\n     * This means, DOMPurify removes data attributes, mustaches and ERB\n     */\n    let SAFE_FOR_TEMPLATES = false;\n\n    /* Output should be safe even for XML used within HTML and alike.\n     * This means, DOMPurify removes comments when containing risky content.\n     */\n    let SAFE_FOR_XML = true;\n\n    /* Decide if document with <html>... should be returned */\n    let WHOLE_DOCUMENT = false;\n\n    /* Track whether config is already set on this instance of DOMPurify. */\n    let SET_CONFIG = false;\n\n    /* Decide if all elements (e.g. style, script) must be children of\n     * document.body. By default, browsers might move them to document.head */\n    let FORCE_BODY = false;\n\n    /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n     * string (or a TrustedHTML object if Trusted Types are supported).\n     * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n     */\n    let RETURN_DOM = false;\n\n    /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n     * string  (or a TrustedHTML object if Trusted Types are supported) */\n    let RETURN_DOM_FRAGMENT = false;\n\n    /* Try to return a Trusted Type object instead of a string, return a string in\n     * case Trusted Types are not supported  */\n    let RETURN_TRUSTED_TYPE = false;\n\n    /* Output should be free from DOM clobbering attacks?\n     * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n     */\n    let SANITIZE_DOM = true;\n\n    /* Achieve full DOM Clobbering protection by isolating the namespace of named\n     * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n     *\n     * HTML/DOM spec rules that enable DOM Clobbering:\n     *   - Named Access on Window (§7.3.3)\n     *   - DOM Tree Accessors (§3.1.5)\n     *   - Form Element Parent-Child Relations (§4.10.3)\n     *   - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n     *   - HTMLCollection (§4.2.10.2)\n     *\n     * Namespace isolation is implemented by prefixing `id` and `name` attributes\n     * with a constant string, i.e., `user-content-`\n     */\n    let SANITIZE_NAMED_PROPS = false;\n    const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n\n    /* Keep element content when removing element? */\n    let KEEP_CONTENT = true;\n\n    /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n     * of importing it into a new Document and returning a sanitized copy */\n    let IN_PLACE = false;\n\n    /* Allow usage of profiles like html, svg and mathMl */\n    let USE_PROFILES = {};\n\n    /* Tags to ignore content of when KEEP_CONTENT is true */\n    let FORBID_CONTENTS = null;\n    const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n\n    /* Tags that are safe for data: URIs */\n    let DATA_URI_TAGS = null;\n    const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n\n    /* Attributes safe for values like \"javascript:\" */\n    let URI_SAFE_ATTRIBUTES = null;\n    const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n    const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n    const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n    const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n    /* Document namespace */\n    let NAMESPACE = HTML_NAMESPACE;\n    let IS_EMPTY_INPUT = false;\n\n    /* Allowed XHTML+XML namespaces */\n    let ALLOWED_NAMESPACES = null;\n    const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n\n    /* Parsing of strict XHTML documents */\n    let PARSER_MEDIA_TYPE = null;\n    const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n    const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n    let transformCaseFunc = null;\n\n    /* Keep a reference to config to pass to hooks */\n    let CONFIG = null;\n\n    /* Ideally, do not touch anything below this line */\n    /* ______________________________________________ */\n\n    const formElement = document.createElement('form');\n    const isRegexOrFunction = function isRegexOrFunction(testValue) {\n      return testValue instanceof RegExp || testValue instanceof Function;\n    };\n\n    /**\n     * _parseConfig\n     *\n     * @param  {Object} cfg optional config literal\n     */\n    // eslint-disable-next-line complexity\n    const _parseConfig = function _parseConfig() {\n      let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      if (CONFIG && CONFIG === cfg) {\n        return;\n      }\n\n      /* Shield configuration object from tampering */\n      if (!cfg || typeof cfg !== 'object') {\n        cfg = {};\n      }\n\n      /* Shield configuration object from prototype pollution */\n      cfg = clone(cfg);\n      PARSER_MEDIA_TYPE =\n      // eslint-disable-next-line unicorn/prefer-includes\n      SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n\n      // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n      transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n\n      /* Set configuration parameters */\n      ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n      ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n      ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n      URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES),\n      // eslint-disable-line indent\n      cfg.ADD_URI_SAFE_ATTR,\n      // eslint-disable-line indent\n      transformCaseFunc // eslint-disable-line indent\n      ) // eslint-disable-line indent\n      : DEFAULT_URI_SAFE_ATTRIBUTES;\n      DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS),\n      // eslint-disable-line indent\n      cfg.ADD_DATA_URI_TAGS,\n      // eslint-disable-line indent\n      transformCaseFunc // eslint-disable-line indent\n      ) // eslint-disable-line indent\n      : DEFAULT_DATA_URI_TAGS;\n      FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n      FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n      FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n      USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;\n      ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n      ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n      ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n      ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n      SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n      SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n      WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n      RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n      RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n      RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n      FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n      SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n      SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n      KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n      IN_PLACE = cfg.IN_PLACE || false; // Default false\n      IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n      NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n      CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n      if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n        CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n      }\n      if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n        CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n      }\n      if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n        CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n      }\n      if (SAFE_FOR_TEMPLATES) {\n        ALLOW_DATA_ATTR = false;\n      }\n      if (RETURN_DOM_FRAGMENT) {\n        RETURN_DOM = true;\n      }\n\n      /* Parse profile info */\n      if (USE_PROFILES) {\n        ALLOWED_TAGS = addToSet({}, text);\n        ALLOWED_ATTR = [];\n        if (USE_PROFILES.html === true) {\n          addToSet(ALLOWED_TAGS, html$1);\n          addToSet(ALLOWED_ATTR, html);\n        }\n        if (USE_PROFILES.svg === true) {\n          addToSet(ALLOWED_TAGS, svg$1);\n          addToSet(ALLOWED_ATTR, svg);\n          addToSet(ALLOWED_ATTR, xml);\n        }\n        if (USE_PROFILES.svgFilters === true) {\n          addToSet(ALLOWED_TAGS, svgFilters);\n          addToSet(ALLOWED_ATTR, svg);\n          addToSet(ALLOWED_ATTR, xml);\n        }\n        if (USE_PROFILES.mathMl === true) {\n          addToSet(ALLOWED_TAGS, mathMl$1);\n          addToSet(ALLOWED_ATTR, mathMl);\n          addToSet(ALLOWED_ATTR, xml);\n        }\n      }\n\n      /* Merge configuration parameters */\n      if (cfg.ADD_TAGS) {\n        if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n          ALLOWED_TAGS = clone(ALLOWED_TAGS);\n        }\n        addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n      }\n      if (cfg.ADD_ATTR) {\n        if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n          ALLOWED_ATTR = clone(ALLOWED_ATTR);\n        }\n        addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n      }\n      if (cfg.ADD_URI_SAFE_ATTR) {\n        addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n      }\n      if (cfg.FORBID_CONTENTS) {\n        if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n          FORBID_CONTENTS = clone(FORBID_CONTENTS);\n        }\n        addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n      }\n\n      /* Add #text in case KEEP_CONTENT is set to true */\n      if (KEEP_CONTENT) {\n        ALLOWED_TAGS['#text'] = true;\n      }\n\n      /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n      if (WHOLE_DOCUMENT) {\n        addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n      }\n\n      /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n      if (ALLOWED_TAGS.table) {\n        addToSet(ALLOWED_TAGS, ['tbody']);\n        delete FORBID_TAGS.tbody;\n      }\n      if (cfg.TRUSTED_TYPES_POLICY) {\n        if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n          throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n        }\n        if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n          throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n        }\n\n        // Overwrite existing TrustedTypes policy.\n        trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n\n        // Sign local variables required by `sanitize`.\n        emptyHTML = trustedTypesPolicy.createHTML('');\n      } else {\n        // Uninitialized policy, attempt to initialize the internal dompurify policy.\n        if (trustedTypesPolicy === undefined) {\n          trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n        }\n\n        // If creating the internal policy succeeded sign internal variables.\n        if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n          emptyHTML = trustedTypesPolicy.createHTML('');\n        }\n      }\n\n      // Prevent further manipulation of configuration.\n      // Not available in IE8, Safari 5, etc.\n      if (freeze) {\n        freeze(cfg);\n      }\n      CONFIG = cfg;\n    };\n    const MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n    const HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'annotation-xml']);\n\n    // Certain elements are allowed in both SVG and HTML\n    // namespace. We need to specify them explicitly\n    // so that they don't get erroneously deleted from\n    // HTML namespace.\n    const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n\n    /* Keep track of all possible SVG and MathML tags\n     * so that we can perform the namespace checks\n     * correctly. */\n    const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n    const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n\n    /**\n     * @param  {Element} element a DOM element whose namespace is being checked\n     * @returns {boolean} Return false if the element has a\n     *  namespace that a spec-compliant parser would never\n     *  return. Return true otherwise.\n     */\n    const _checkValidNamespace = function _checkValidNamespace(element) {\n      let parent = getParentNode(element);\n\n      // In JSDOM, if we're inside shadow DOM, then parentNode\n      // can be null. We just simulate parent in this case.\n      if (!parent || !parent.tagName) {\n        parent = {\n          namespaceURI: NAMESPACE,\n          tagName: 'template'\n        };\n      }\n      const tagName = stringToLowerCase(element.tagName);\n      const parentTagName = stringToLowerCase(parent.tagName);\n      if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n        return false;\n      }\n      if (element.namespaceURI === SVG_NAMESPACE) {\n        // The only way to switch from HTML namespace to SVG\n        // is via <svg>. If it happens via any other tag, then\n        // it should be killed.\n        if (parent.namespaceURI === HTML_NAMESPACE) {\n          return tagName === 'svg';\n        }\n\n        // The only way to switch from MathML to SVG is via`\n        // svg if parent is either <annotation-xml> or MathML\n        // text integration points.\n        if (parent.namespaceURI === MATHML_NAMESPACE) {\n          return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n        }\n\n        // We only allow elements that are defined in SVG\n        // spec. All others are disallowed in SVG namespace.\n        return Boolean(ALL_SVG_TAGS[tagName]);\n      }\n      if (element.namespaceURI === MATHML_NAMESPACE) {\n        // The only way to switch from HTML namespace to MathML\n        // is via <math>. If it happens via any other tag, then\n        // it should be killed.\n        if (parent.namespaceURI === HTML_NAMESPACE) {\n          return tagName === 'math';\n        }\n\n        // The only way to switch from SVG to MathML is via\n        // <math> and HTML integration points\n        if (parent.namespaceURI === SVG_NAMESPACE) {\n          return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n        }\n\n        // We only allow elements that are defined in MathML\n        // spec. All others are disallowed in MathML namespace.\n        return Boolean(ALL_MATHML_TAGS[tagName]);\n      }\n      if (element.namespaceURI === HTML_NAMESPACE) {\n        // The only way to switch from SVG to HTML is via\n        // HTML integration points, and from MathML to HTML\n        // is via MathML text integration points\n        if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n          return false;\n        }\n        if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n          return false;\n        }\n\n        // We disallow tags that are specific for MathML\n        // or SVG and should never appear in HTML namespace\n        return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n      }\n\n      // For XHTML and XML documents that support custom namespaces\n      if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n        return true;\n      }\n\n      // The code should never reach this place (this means\n      // that the element somehow got namespace that is not\n      // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n      // Return false just in case.\n      return false;\n    };\n\n    /**\n     * _forceRemove\n     *\n     * @param  {Node} node a DOM node\n     */\n    const _forceRemove = function _forceRemove(node) {\n      arrayPush(DOMPurify.removed, {\n        element: node\n      });\n      try {\n        // eslint-disable-next-line unicorn/prefer-dom-node-remove\n        getParentNode(node).removeChild(node);\n      } catch (_) {\n        remove(node);\n      }\n    };\n\n    /**\n     * _removeAttribute\n     *\n     * @param  {String} name an Attribute name\n     * @param  {Node} node a DOM node\n     */\n    const _removeAttribute = function _removeAttribute(name, node) {\n      try {\n        arrayPush(DOMPurify.removed, {\n          attribute: node.getAttributeNode(name),\n          from: node\n        });\n      } catch (_) {\n        arrayPush(DOMPurify.removed, {\n          attribute: null,\n          from: node\n        });\n      }\n      node.removeAttribute(name);\n\n      // We void attribute values for unremovable \"is\"\" attributes\n      if (name === 'is' && !ALLOWED_ATTR[name]) {\n        if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n          try {\n            _forceRemove(node);\n          } catch (_) {}\n        } else {\n          try {\n            node.setAttribute(name, '');\n          } catch (_) {}\n        }\n      }\n    };\n\n    /**\n     * _initDocument\n     *\n     * @param  {String} dirty a string of dirty markup\n     * @return {Document} a DOM, filled with the dirty markup\n     */\n    const _initDocument = function _initDocument(dirty) {\n      /* Create a HTML document */\n      let doc = null;\n      let leadingWhitespace = null;\n      if (FORCE_BODY) {\n        dirty = '<remove></remove>' + dirty;\n      } else {\n        /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n        const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n        leadingWhitespace = matches && matches[0];\n      }\n      if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n        // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n        dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n      }\n      const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n      /*\n       * Use the DOMParser API by default, fallback later if needs be\n       * DOMParser not work for svg when has multiple root element.\n       */\n      if (NAMESPACE === HTML_NAMESPACE) {\n        try {\n          doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n        } catch (_) {}\n      }\n\n      /* Use createHTMLDocument in case DOMParser is not available */\n      if (!doc || !doc.documentElement) {\n        doc = implementation.createDocument(NAMESPACE, 'template', null);\n        try {\n          doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n        } catch (_) {\n          // Syntax error if dirtyPayload is invalid xml\n        }\n      }\n      const body = doc.body || doc.documentElement;\n      if (dirty && leadingWhitespace) {\n        body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n      }\n\n      /* Work on whole document or just its body */\n      if (NAMESPACE === HTML_NAMESPACE) {\n        return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n      }\n      return WHOLE_DOCUMENT ? doc.documentElement : body;\n    };\n\n    /**\n     * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n     *\n     * @param  {Node} root The root element or node to start traversing on.\n     * @return {NodeIterator} The created NodeIterator\n     */\n    const _createNodeIterator = function _createNodeIterator(root) {\n      return createNodeIterator.call(root.ownerDocument || root, root,\n      // eslint-disable-next-line no-bitwise\n      NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n    };\n\n    /**\n     * _isClobbered\n     *\n     * @param  {Node} elm element to check for clobbering attacks\n     * @return {Boolean} true if clobbered, false if safe\n     */\n    const _isClobbered = function _isClobbered(elm) {\n      return elm instanceof HTMLFormElement && (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function' || typeof elm.hasChildNodes !== 'function');\n    };\n\n    /**\n     * Checks whether the given object is a DOM node.\n     *\n     * @param  {Node} object object to check whether it's a DOM node\n     * @return {Boolean} true is object is a DOM node\n     */\n    const _isNode = function _isNode(object) {\n      return typeof Node === 'function' && object instanceof Node;\n    };\n\n    /**\n     * _executeHook\n     * Execute user configurable hooks\n     *\n     * @param  {String} entryPoint  Name of the hook's entry point\n     * @param  {Node} currentNode node to work on with the hook\n     * @param  {Object} data additional hook parameters\n     */\n    const _executeHook = function _executeHook(entryPoint, currentNode, data) {\n      if (!hooks[entryPoint]) {\n        return;\n      }\n      arrayForEach(hooks[entryPoint], hook => {\n        hook.call(DOMPurify, currentNode, data, CONFIG);\n      });\n    };\n\n    /**\n     * _sanitizeElements\n     *\n     * @protect nodeName\n     * @protect textContent\n     * @protect removeChild\n     *\n     * @param   {Node} currentNode to check for permission to exist\n     * @return  {Boolean} true if node was killed, false if left alive\n     */\n    const _sanitizeElements = function _sanitizeElements(currentNode) {\n      let content = null;\n\n      /* Execute a hook if present */\n      _executeHook('beforeSanitizeElements', currentNode, null);\n\n      /* Check if element is clobbered or can clobber */\n      if (_isClobbered(currentNode)) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Now let's check the element's type and name */\n      const tagName = transformCaseFunc(currentNode.nodeName);\n\n      /* Execute a hook if present */\n      _executeHook('uponSanitizeElement', currentNode, {\n        tagName,\n        allowedTags: ALLOWED_TAGS\n      });\n\n      /* Detect mXSS attempts abusing namespace confusion */\n      if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Remove any occurrence of processing instructions */\n      if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Remove any kind of possibly harmful comments */\n      if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\\w]/g, currentNode.data)) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Remove element if anything forbids its presence */\n      if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n        /* Check if we have a custom element to handle */\n        if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n          if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n            return false;\n          }\n          if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n            return false;\n          }\n        }\n\n        /* Keep content except for bad-listed elements */\n        if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n          const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n          const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n          if (childNodes && parentNode) {\n            const childCount = childNodes.length;\n            for (let i = childCount - 1; i >= 0; --i) {\n              const childClone = cloneNode(childNodes[i], true);\n              childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n              parentNode.insertBefore(childClone, getNextSibling(currentNode));\n            }\n          }\n        }\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Check whether element has a valid namespace */\n      if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Make sure that older browsers don't get fallback-tag mXSS */\n      if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Sanitize element content to be template-safe */\n      if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n        /* Get the element's text content */\n        content = currentNode.textContent;\n        arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n          content = stringReplace(content, expr, ' ');\n        });\n        if (currentNode.textContent !== content) {\n          arrayPush(DOMPurify.removed, {\n            element: currentNode.cloneNode()\n          });\n          currentNode.textContent = content;\n        }\n      }\n\n      /* Execute a hook if present */\n      _executeHook('afterSanitizeElements', currentNode, null);\n      return false;\n    };\n\n    /**\n     * _isValidAttribute\n     *\n     * @param  {string} lcTag Lowercase tag name of containing element.\n     * @param  {string} lcName Lowercase attribute name.\n     * @param  {string} value Attribute value.\n     * @return {Boolean} Returns true if `value` is valid, otherwise false.\n     */\n    // eslint-disable-next-line complexity\n    const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n      /* Make sure attribute cannot clobber */\n      if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n        return false;\n      }\n\n      /* Allow valid data-* attributes: At least one character after \"-\"\n          (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n          XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n          We don't need to check the value; it's always URI safe. */\n      if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n        if (\n        // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n        // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n        // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n        _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) ||\n        // Alternative, second condition checks if it's an `is`-attribute, AND\n        // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n        lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n          return false;\n        }\n        /* Check value is safe. First, is attr inert? If so, is safe */\n      } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {\n        return false;\n      } else ;\n      return true;\n    };\n\n    /**\n     * _isBasicCustomElement\n     * checks if at least one dash is included in tagName, and it's not the first char\n     * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n     *\n     * @param {string} tagName name of the tag of the node to sanitize\n     * @returns {boolean} Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n     */\n    const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n      return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n    };\n\n    /**\n     * _sanitizeAttributes\n     *\n     * @protect attributes\n     * @protect nodeName\n     * @protect removeAttribute\n     * @protect setAttribute\n     *\n     * @param  {Node} currentNode to sanitize\n     */\n    const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n      /* Execute a hook if present */\n      _executeHook('beforeSanitizeAttributes', currentNode, null);\n      const {\n        attributes\n      } = currentNode;\n\n      /* Check if we have attributes; if not we might have a text node */\n      if (!attributes) {\n        return;\n      }\n      const hookEvent = {\n        attrName: '',\n        attrValue: '',\n        keepAttr: true,\n        allowedAttributes: ALLOWED_ATTR\n      };\n      let l = attributes.length;\n\n      /* Go backwards over all attributes; safely remove bad ones */\n      while (l--) {\n        const attr = attributes[l];\n        const {\n          name,\n          namespaceURI,\n          value: attrValue\n        } = attr;\n        const lcName = transformCaseFunc(name);\n        let value = name === 'value' ? attrValue : stringTrim(attrValue);\n\n        /* Execute a hook if present */\n        hookEvent.attrName = lcName;\n        hookEvent.attrValue = value;\n        hookEvent.keepAttr = true;\n        hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n        _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n        value = hookEvent.attrValue;\n\n        /* Work around a security issue with comments inside attributes */\n        if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title)/i, value)) {\n          _removeAttribute(name, currentNode);\n          continue;\n        }\n\n        /* Did the hooks approve of the attribute? */\n        if (hookEvent.forceKeepAttr) {\n          continue;\n        }\n\n        /* Remove attribute */\n        _removeAttribute(name, currentNode);\n\n        /* Did the hooks approve of the attribute? */\n        if (!hookEvent.keepAttr) {\n          continue;\n        }\n\n        /* Work around a security issue in jQuery 3.0 */\n        if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n          _removeAttribute(name, currentNode);\n          continue;\n        }\n\n        /* Sanitize attribute content to be template-safe */\n        if (SAFE_FOR_TEMPLATES) {\n          arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n            value = stringReplace(value, expr, ' ');\n          });\n        }\n\n        /* Is `value` valid for this attribute? */\n        const lcTag = transformCaseFunc(currentNode.nodeName);\n        if (!_isValidAttribute(lcTag, lcName, value)) {\n          continue;\n        }\n\n        /* Full DOM Clobbering protection via namespace isolation,\n         * Prefix id and name attributes with `user-content-`\n         */\n        if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n          // Remove the attribute with this value\n          _removeAttribute(name, currentNode);\n\n          // Prefix the value and later re-create the attribute with the sanitized value\n          value = SANITIZE_NAMED_PROPS_PREFIX + value;\n        }\n\n        /* Handle attributes that require Trusted Types */\n        if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n          if (namespaceURI) ; else {\n            switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n              case 'TrustedHTML':\n                {\n                  value = trustedTypesPolicy.createHTML(value);\n                  break;\n                }\n              case 'TrustedScriptURL':\n                {\n                  value = trustedTypesPolicy.createScriptURL(value);\n                  break;\n                }\n            }\n          }\n        }\n\n        /* Handle invalid data-* attribute set by try-catching it */\n        try {\n          if (namespaceURI) {\n            currentNode.setAttributeNS(namespaceURI, name, value);\n          } else {\n            /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n            currentNode.setAttribute(name, value);\n          }\n          if (_isClobbered(currentNode)) {\n            _forceRemove(currentNode);\n          } else {\n            arrayPop(DOMPurify.removed);\n          }\n        } catch (_) {}\n      }\n\n      /* Execute a hook if present */\n      _executeHook('afterSanitizeAttributes', currentNode, null);\n    };\n\n    /**\n     * _sanitizeShadowDOM\n     *\n     * @param  {DocumentFragment} fragment to iterate over recursively\n     */\n    const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n      let shadowNode = null;\n      const shadowIterator = _createNodeIterator(fragment);\n\n      /* Execute a hook if present */\n      _executeHook('beforeSanitizeShadowDOM', fragment, null);\n      while (shadowNode = shadowIterator.nextNode()) {\n        /* Execute a hook if present */\n        _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n        /* Sanitize tags and elements */\n        if (_sanitizeElements(shadowNode)) {\n          continue;\n        }\n\n        /* Deep shadow DOM detected */\n        if (shadowNode.content instanceof DocumentFragment) {\n          _sanitizeShadowDOM(shadowNode.content);\n        }\n\n        /* Check attributes, sanitize if necessary */\n        _sanitizeAttributes(shadowNode);\n      }\n\n      /* Execute a hook if present */\n      _executeHook('afterSanitizeShadowDOM', fragment, null);\n    };\n\n    /**\n     * Sanitize\n     * Public method providing core sanitation functionality\n     *\n     * @param {String|Node} dirty string or DOM node\n     * @param {Object} cfg object\n     */\n    // eslint-disable-next-line complexity\n    DOMPurify.sanitize = function (dirty) {\n      let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      let body = null;\n      let importedNode = null;\n      let currentNode = null;\n      let returnNode = null;\n      /* Make sure we have a string to sanitize.\n        DO NOT return early, as this will return the wrong type if\n        the user has requested a DOM object rather than a string */\n      IS_EMPTY_INPUT = !dirty;\n      if (IS_EMPTY_INPUT) {\n        dirty = '<!-->';\n      }\n\n      /* Stringify, in case dirty is an object */\n      if (typeof dirty !== 'string' && !_isNode(dirty)) {\n        if (typeof dirty.toString === 'function') {\n          dirty = dirty.toString();\n          if (typeof dirty !== 'string') {\n            throw typeErrorCreate('dirty is not a string, aborting');\n          }\n        } else {\n          throw typeErrorCreate('toString is not a function');\n        }\n      }\n\n      /* Return dirty HTML if DOMPurify cannot run */\n      if (!DOMPurify.isSupported) {\n        return dirty;\n      }\n\n      /* Assign config vars */\n      if (!SET_CONFIG) {\n        _parseConfig(cfg);\n      }\n\n      /* Clean up removed elements */\n      DOMPurify.removed = [];\n\n      /* Check if dirty is correctly typed for IN_PLACE */\n      if (typeof dirty === 'string') {\n        IN_PLACE = false;\n      }\n      if (IN_PLACE) {\n        /* Do some early pre-sanitization to avoid unsafe root nodes */\n        if (dirty.nodeName) {\n          const tagName = transformCaseFunc(dirty.nodeName);\n          if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n            throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n          }\n        }\n      } else if (dirty instanceof Node) {\n        /* If dirty is a DOM element, append to an empty document to avoid\n           elements being stripped by the parser */\n        body = _initDocument('<!---->');\n        importedNode = body.ownerDocument.importNode(dirty, true);\n        if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n          /* Node is already a body, use as is */\n          body = importedNode;\n        } else if (importedNode.nodeName === 'HTML') {\n          body = importedNode;\n        } else {\n          // eslint-disable-next-line unicorn/prefer-dom-node-append\n          body.appendChild(importedNode);\n        }\n      } else {\n        /* Exit directly if we have nothing to do */\n        if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n        // eslint-disable-next-line unicorn/prefer-includes\n        dirty.indexOf('<') === -1) {\n          return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n        }\n\n        /* Initialize the document to work on */\n        body = _initDocument(dirty);\n\n        /* Check we have a DOM node from the data */\n        if (!body) {\n          return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n        }\n      }\n\n      /* Remove first element node (ours) if FORCE_BODY is set */\n      if (body && FORCE_BODY) {\n        _forceRemove(body.firstChild);\n      }\n\n      /* Get node iterator */\n      const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n\n      /* Now start iterating over the created document */\n      while (currentNode = nodeIterator.nextNode()) {\n        /* Sanitize tags and elements */\n        if (_sanitizeElements(currentNode)) {\n          continue;\n        }\n\n        /* Shadow DOM detected, sanitize it */\n        if (currentNode.content instanceof DocumentFragment) {\n          _sanitizeShadowDOM(currentNode.content);\n        }\n\n        /* Check attributes, sanitize if necessary */\n        _sanitizeAttributes(currentNode);\n      }\n\n      /* If we sanitized `dirty` in-place, return it. */\n      if (IN_PLACE) {\n        return dirty;\n      }\n\n      /* Return sanitized string or DOM */\n      if (RETURN_DOM) {\n        if (RETURN_DOM_FRAGMENT) {\n          returnNode = createDocumentFragment.call(body.ownerDocument);\n          while (body.firstChild) {\n            // eslint-disable-next-line unicorn/prefer-dom-node-append\n            returnNode.appendChild(body.firstChild);\n          }\n        } else {\n          returnNode = body;\n        }\n        if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n          /*\n            AdoptNode() is not used because internal state is not reset\n            (e.g. the past names map of a HTMLFormElement), this is safe\n            in theory but we would rather not risk another attack vector.\n            The state that is cloned by importNode() is explicitly defined\n            by the specs.\n          */\n          returnNode = importNode.call(originalDocument, returnNode, true);\n        }\n        return returnNode;\n      }\n      let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n      /* Serialize doctype if allowed */\n      if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n        serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n      }\n\n      /* Sanitize final string template-safe */\n      if (SAFE_FOR_TEMPLATES) {\n        arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n          serializedHTML = stringReplace(serializedHTML, expr, ' ');\n        });\n      }\n      return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n    };\n\n    /**\n     * Public method to set the configuration once\n     * setConfig\n     *\n     * @param {Object} cfg configuration object\n     */\n    DOMPurify.setConfig = function () {\n      let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      _parseConfig(cfg);\n      SET_CONFIG = true;\n    };\n\n    /**\n     * Public method to remove the configuration\n     * clearConfig\n     *\n     */\n    DOMPurify.clearConfig = function () {\n      CONFIG = null;\n      SET_CONFIG = false;\n    };\n\n    /**\n     * Public method to check if an attribute value is valid.\n     * Uses last set config, if any. Otherwise, uses config defaults.\n     * isValidAttribute\n     *\n     * @param  {String} tag Tag name of containing element.\n     * @param  {String} attr Attribute name.\n     * @param  {String} value Attribute value.\n     * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n     */\n    DOMPurify.isValidAttribute = function (tag, attr, value) {\n      /* Initialize shared config vars if necessary. */\n      if (!CONFIG) {\n        _parseConfig({});\n      }\n      const lcTag = transformCaseFunc(tag);\n      const lcName = transformCaseFunc(attr);\n      return _isValidAttribute(lcTag, lcName, value);\n    };\n\n    /**\n     * AddHook\n     * Public method to add DOMPurify hooks\n     *\n     * @param {String} entryPoint entry point for the hook to add\n     * @param {Function} hookFunction function to execute\n     */\n    DOMPurify.addHook = function (entryPoint, hookFunction) {\n      if (typeof hookFunction !== 'function') {\n        return;\n      }\n      hooks[entryPoint] = hooks[entryPoint] || [];\n      arrayPush(hooks[entryPoint], hookFunction);\n    };\n\n    /**\n     * RemoveHook\n     * Public method to remove a DOMPurify hook at a given entryPoint\n     * (pops it from the stack of hooks if more are present)\n     *\n     * @param {String} entryPoint entry point for the hook to remove\n     * @return {Function} removed(popped) hook\n     */\n    DOMPurify.removeHook = function (entryPoint) {\n      if (hooks[entryPoint]) {\n        return arrayPop(hooks[entryPoint]);\n      }\n    };\n\n    /**\n     * RemoveHooks\n     * Public method to remove all DOMPurify hooks at a given entryPoint\n     *\n     * @param  {String} entryPoint entry point for the hooks to remove\n     */\n    DOMPurify.removeHooks = function (entryPoint) {\n      if (hooks[entryPoint]) {\n        hooks[entryPoint] = [];\n      }\n    };\n\n    /**\n     * RemoveAllHooks\n     * Public method to remove all DOMPurify hooks\n     */\n    DOMPurify.removeAllHooks = function () {\n      hooks = {};\n    };\n    return DOMPurify;\n  }\n  var purify = createDOMPurify();\n\n  return purify;\n\n}));\n//# sourceMappingURL=purify.js.map\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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\nif (process.env.NODE_ENV !== \"production\") {\n  (function() {\n'use strict';\n\nvar React = require('react');\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n  if (maybeIterable === null || typeof maybeIterable !== 'object') {\n    return null;\n  }\n\n  var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n  if (typeof maybeIterator === 'function') {\n    return maybeIterator;\n  }\n\n  return null;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n  {\n    {\n      for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n        args[_key2 - 1] = arguments[_key2];\n      }\n\n      printWarning('error', format, args);\n    }\n  }\n}\n\nfunction printWarning(level, format, args) {\n  // When changing this logic, you might want to also\n  // update consoleWithStackDev.www.js as well.\n  {\n    var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n    var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n    if (stack !== '') {\n      format += '%s';\n      args = args.concat([stack]);\n    } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n    var argsWithFormat = args.map(function (item) {\n      return String(item);\n    }); // Careful: RN currently depends on this prefix\n\n    argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n    // breaks IE9: https://github.com/facebook/react/issues/13610\n    // eslint-disable-next-line react-internal/no-production-logging\n\n    Function.prototype.apply.call(console[level], console, argsWithFormat);\n  }\n}\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n  REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n  if (typeof type === 'string' || typeof type === 'function') {\n    return true;\n  } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n  if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing  || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden  || type === REACT_OFFSCREEN_TYPE || enableScopeAPI  || enableCacheElement  || enableTransitionTracing ) {\n    return true;\n  }\n\n  if (typeof type === 'object' && type !== null) {\n    if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n    // types supported by any Flight configuration anywhere since\n    // we don't know which Flight build this will end up being used\n    // with.\n    type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n      return true;\n    }\n  }\n\n  return false;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n  var displayName = outerType.displayName;\n\n  if (displayName) {\n    return displayName;\n  }\n\n  var functionName = innerType.displayName || innerType.name || '';\n  return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n  return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(type) {\n  if (type == null) {\n    // Host root, text node or just invalid type.\n    return null;\n  }\n\n  {\n    if (typeof type.tag === 'number') {\n      error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n    }\n  }\n\n  if (typeof type === 'function') {\n    return type.displayName || type.name || null;\n  }\n\n  if (typeof type === 'string') {\n    return type;\n  }\n\n  switch (type) {\n    case REACT_FRAGMENT_TYPE:\n      return 'Fragment';\n\n    case REACT_PORTAL_TYPE:\n      return 'Portal';\n\n    case REACT_PROFILER_TYPE:\n      return 'Profiler';\n\n    case REACT_STRICT_MODE_TYPE:\n      return 'StrictMode';\n\n    case REACT_SUSPENSE_TYPE:\n      return 'Suspense';\n\n    case REACT_SUSPENSE_LIST_TYPE:\n      return 'SuspenseList';\n\n  }\n\n  if (typeof type === 'object') {\n    switch (type.$$typeof) {\n      case REACT_CONTEXT_TYPE:\n        var context = type;\n        return getContextName(context) + '.Consumer';\n\n      case REACT_PROVIDER_TYPE:\n        var provider = type;\n        return getContextName(provider._context) + '.Provider';\n\n      case REACT_FORWARD_REF_TYPE:\n        return getWrappedName(type, type.render, 'ForwardRef');\n\n      case REACT_MEMO_TYPE:\n        var outerName = type.displayName || null;\n\n        if (outerName !== null) {\n          return outerName;\n        }\n\n        return getComponentNameFromType(type.type) || 'Memo';\n\n      case REACT_LAZY_TYPE:\n        {\n          var lazyComponent = type;\n          var payload = lazyComponent._payload;\n          var init = lazyComponent._init;\n\n          try {\n            return getComponentNameFromType(init(payload));\n          } catch (x) {\n            return null;\n          }\n        }\n\n      // eslint-disable-next-line no-fallthrough\n    }\n  }\n\n  return null;\n}\n\nvar assign = Object.assign;\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n  {\n    if (disabledDepth === 0) {\n      /* eslint-disable react-internal/no-production-logging */\n      prevLog = console.log;\n      prevInfo = console.info;\n      prevWarn = console.warn;\n      prevError = console.error;\n      prevGroup = console.group;\n      prevGroupCollapsed = console.groupCollapsed;\n      prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n      var props = {\n        configurable: true,\n        enumerable: true,\n        value: disabledLog,\n        writable: true\n      }; // $FlowFixMe Flow thinks console is immutable.\n\n      Object.defineProperties(console, {\n        info: props,\n        log: props,\n        warn: props,\n        error: props,\n        group: props,\n        groupCollapsed: props,\n        groupEnd: props\n      });\n      /* eslint-enable react-internal/no-production-logging */\n    }\n\n    disabledDepth++;\n  }\n}\nfunction reenableLogs() {\n  {\n    disabledDepth--;\n\n    if (disabledDepth === 0) {\n      /* eslint-disable react-internal/no-production-logging */\n      var props = {\n        configurable: true,\n        enumerable: true,\n        writable: true\n      }; // $FlowFixMe Flow thinks console is immutable.\n\n      Object.defineProperties(console, {\n        log: assign({}, props, {\n          value: prevLog\n        }),\n        info: assign({}, props, {\n          value: prevInfo\n        }),\n        warn: assign({}, props, {\n          value: prevWarn\n        }),\n        error: assign({}, props, {\n          value: prevError\n        }),\n        group: assign({}, props, {\n          value: prevGroup\n        }),\n        groupCollapsed: assign({}, props, {\n          value: prevGroupCollapsed\n        }),\n        groupEnd: assign({}, props, {\n          value: prevGroupEnd\n        })\n      });\n      /* eslint-enable react-internal/no-production-logging */\n    }\n\n    if (disabledDepth < 0) {\n      error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n    }\n  }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n  {\n    if (prefix === undefined) {\n      // Extract the VM specific prefix used by each line.\n      try {\n        throw Error();\n      } catch (x) {\n        var match = x.stack.trim().match(/\\n( *(at )?)/);\n        prefix = match && match[1] || '';\n      }\n    } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n    return '\\n' + prefix + name;\n  }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n  var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n  componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n  // If something asked for a stack inside a fake render, it should get ignored.\n  if ( !fn || reentry) {\n    return '';\n  }\n\n  {\n    var frame = componentFrameCache.get(fn);\n\n    if (frame !== undefined) {\n      return frame;\n    }\n  }\n\n  var control;\n  reentry = true;\n  var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n  Error.prepareStackTrace = undefined;\n  var previousDispatcher;\n\n  {\n    previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n    // for warnings.\n\n    ReactCurrentDispatcher.current = null;\n    disableLogs();\n  }\n\n  try {\n    // This should throw.\n    if (construct) {\n      // Something should be setting the props in the constructor.\n      var Fake = function () {\n        throw Error();\n      }; // $FlowFixMe\n\n\n      Object.defineProperty(Fake.prototype, 'props', {\n        set: function () {\n          // We use a throwing setter instead of frozen or non-writable props\n          // because that won't throw in a non-strict mode function.\n          throw Error();\n        }\n      });\n\n      if (typeof Reflect === 'object' && Reflect.construct) {\n        // We construct a different control for this case to include any extra\n        // frames added by the construct call.\n        try {\n          Reflect.construct(Fake, []);\n        } catch (x) {\n          control = x;\n        }\n\n        Reflect.construct(fn, [], Fake);\n      } else {\n        try {\n          Fake.call();\n        } catch (x) {\n          control = x;\n        }\n\n        fn.call(Fake.prototype);\n      }\n    } else {\n      try {\n        throw Error();\n      } catch (x) {\n        control = x;\n      }\n\n      fn();\n    }\n  } catch (sample) {\n    // This is inlined manually because closure doesn't do it for us.\n    if (sample && control && typeof sample.stack === 'string') {\n      // This extracts the first frame from the sample that isn't also in the control.\n      // Skipping one frame that we assume is the frame that calls the two.\n      var sampleLines = sample.stack.split('\\n');\n      var controlLines = control.stack.split('\\n');\n      var s = sampleLines.length - 1;\n      var c = controlLines.length - 1;\n\n      while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n        // We expect at least one stack frame to be shared.\n        // Typically this will be the root most one. However, stack frames may be\n        // cut off due to maximum stack limits. In this case, one maybe cut off\n        // earlier than the other. We assume that the sample is longer or the same\n        // and there for cut off earlier. So we should find the root most frame in\n        // the sample somewhere in the control.\n        c--;\n      }\n\n      for (; s >= 1 && c >= 0; s--, c--) {\n        // Next we find the first one that isn't the same which should be the\n        // frame that called our sample function and the control.\n        if (sampleLines[s] !== controlLines[c]) {\n          // In V8, the first line is describing the message but other VMs don't.\n          // If we're about to return the first line, and the control is also on the same\n          // line, that's a pretty good indicator that our sample threw at same line as\n          // the control. I.e. before we entered the sample frame. So we ignore this result.\n          // This can happen if you passed a class to function component, or non-function.\n          if (s !== 1 || c !== 1) {\n            do {\n              s--;\n              c--; // We may still have similar intermediate frames from the construct call.\n              // The next one that isn't the same should be our match though.\n\n              if (c < 0 || sampleLines[s] !== controlLines[c]) {\n                // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n                var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n                // but we have a user-provided \"displayName\"\n                // splice it in to make the stack more readable.\n\n\n                if (fn.displayName && _frame.includes('<anonymous>')) {\n                  _frame = _frame.replace('<anonymous>', fn.displayName);\n                }\n\n                {\n                  if (typeof fn === 'function') {\n                    componentFrameCache.set(fn, _frame);\n                  }\n                } // Return the line we found.\n\n\n                return _frame;\n              }\n            } while (s >= 1 && c >= 0);\n          }\n\n          break;\n        }\n      }\n    }\n  } finally {\n    reentry = false;\n\n    {\n      ReactCurrentDispatcher.current = previousDispatcher;\n      reenableLogs();\n    }\n\n    Error.prepareStackTrace = previousPrepareStackTrace;\n  } // Fallback to just using the name if we couldn't make it throw.\n\n\n  var name = fn ? fn.displayName || fn.name : '';\n  var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n  {\n    if (typeof fn === 'function') {\n      componentFrameCache.set(fn, syntheticFrame);\n    }\n  }\n\n  return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n  {\n    return describeNativeComponentFrame(fn, false);\n  }\n}\n\nfunction shouldConstruct(Component) {\n  var prototype = Component.prototype;\n  return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n  if (type == null) {\n    return '';\n  }\n\n  if (typeof type === 'function') {\n    {\n      return describeNativeComponentFrame(type, shouldConstruct(type));\n    }\n  }\n\n  if (typeof type === 'string') {\n    return describeBuiltInComponentFrame(type);\n  }\n\n  switch (type) {\n    case REACT_SUSPENSE_TYPE:\n      return describeBuiltInComponentFrame('Suspense');\n\n    case REACT_SUSPENSE_LIST_TYPE:\n      return describeBuiltInComponentFrame('SuspenseList');\n  }\n\n  if (typeof type === 'object') {\n    switch (type.$$typeof) {\n      case REACT_FORWARD_REF_TYPE:\n        return describeFunctionComponentFrame(type.render);\n\n      case REACT_MEMO_TYPE:\n        // Memo may contain any component type so we recursively resolve it.\n        return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n      case REACT_LAZY_TYPE:\n        {\n          var lazyComponent = type;\n          var payload = lazyComponent._payload;\n          var init = lazyComponent._init;\n\n          try {\n            // Lazy may contain any component type so we recursively resolve it.\n            return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n          } catch (x) {}\n        }\n    }\n  }\n\n  return '';\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n  {\n    if (element) {\n      var owner = element._owner;\n      var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n      ReactDebugCurrentFrame.setExtraStackFrame(stack);\n    } else {\n      ReactDebugCurrentFrame.setExtraStackFrame(null);\n    }\n  }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n  {\n    // $FlowFixMe This is okay but Flow doesn't know it.\n    var has = Function.call.bind(hasOwnProperty);\n\n    for (var typeSpecName in typeSpecs) {\n      if (has(typeSpecs, typeSpecName)) {\n        var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n        // fail the render phase where it didn't fail before. So we log it.\n        // After these have been cleaned up, we'll let them throw.\n\n        try {\n          // This is intentionally an invariant that gets caught. It's the same\n          // behavior as without this statement except with a better message.\n          if (typeof typeSpecs[typeSpecName] !== 'function') {\n            // eslint-disable-next-line react-internal/prod-error-codes\n            var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n            err.name = 'Invariant Violation';\n            throw err;\n          }\n\n          error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n        } catch (ex) {\n          error$1 = ex;\n        }\n\n        if (error$1 && !(error$1 instanceof Error)) {\n          setCurrentlyValidatingElement(element);\n\n          error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n          setCurrentlyValidatingElement(null);\n        }\n\n        if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n          // Only monitor this failure once because there tends to be a lot of the\n          // same error.\n          loggedTypeFailures[error$1.message] = true;\n          setCurrentlyValidatingElement(element);\n\n          error('Failed %s type: %s', location, error$1.message);\n\n          setCurrentlyValidatingElement(null);\n        }\n      }\n    }\n  }\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n  return isArrayImpl(a);\n}\n\n/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value) {\n  {\n    // toStringTag is needed for namespaced types like Temporal.Instant\n    var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n    var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n    return type;\n  }\n} // $FlowFixMe only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n  {\n    try {\n      testStringCoercion(value);\n      return false;\n    } catch (e) {\n      return true;\n    }\n  }\n}\n\nfunction testStringCoercion(value) {\n  // If you ended up here by following an exception call stack, here's what's\n  // happened: you supplied an object or symbol value to React (as a prop, key,\n  // DOM attribute, CSS property, string ref, etc.) and when React tried to\n  // coerce it to a string using `'' + value`, an exception was thrown.\n  //\n  // The most common types that will cause this exception are `Symbol` instances\n  // and Temporal objects like `Temporal.Instant`. But any object that has a\n  // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n  // exception. (Library authors do this to prevent users from using built-in\n  // numeric operators like `+` or comparison operators like `>=` because custom\n  // methods are needed to perform accurate arithmetic or comparison.)\n  //\n  // To fix the problem, coerce this object or symbol value to a string before\n  // passing it to React. The most reliable way is usually `String(value)`.\n  //\n  // To find which value is throwing, check the browser or debugger console.\n  // Before this exception was thrown, there should be `console.error` output\n  // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n  // problem and how that type was used: key, atrribute, input value prop, etc.\n  // In most cases, this console output also shows the component and its\n  // ancestor components where the exception happened.\n  //\n  // eslint-disable-next-line react-internal/safe-string-coercion\n  return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n  {\n    if (willCoercionThrow(value)) {\n      error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n      return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n    }\n  }\n}\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nvar RESERVED_PROPS = {\n  key: true,\n  ref: true,\n  __self: true,\n  __source: true\n};\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\nvar didWarnAboutStringRefs;\n\n{\n  didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n  {\n    if (hasOwnProperty.call(config, 'ref')) {\n      var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n      if (getter && getter.isReactWarning) {\n        return false;\n      }\n    }\n  }\n\n  return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n  {\n    if (hasOwnProperty.call(config, 'key')) {\n      var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n      if (getter && getter.isReactWarning) {\n        return false;\n      }\n    }\n  }\n\n  return config.key !== undefined;\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\n  {\n    if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {\n      var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n      if (!didWarnAboutStringRefs[componentName]) {\n        error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentNameFromType(ReactCurrentOwner.current.type), config.ref);\n\n        didWarnAboutStringRefs[componentName] = true;\n      }\n    }\n  }\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n  {\n    var warnAboutAccessingKey = function () {\n      if (!specialPropKeyWarningShown) {\n        specialPropKeyWarningShown = true;\n\n        error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n      }\n    };\n\n    warnAboutAccessingKey.isReactWarning = true;\n    Object.defineProperty(props, 'key', {\n      get: warnAboutAccessingKey,\n      configurable: true\n    });\n  }\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n  {\n    var warnAboutAccessingRef = function () {\n      if (!specialPropRefWarningShown) {\n        specialPropRefWarningShown = true;\n\n        error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n      }\n    };\n\n    warnAboutAccessingRef.isReactWarning = true;\n    Object.defineProperty(props, 'ref', {\n      get: warnAboutAccessingRef,\n      configurable: true\n    });\n  }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n  var element = {\n    // This tag allows us to uniquely identify this as a React Element\n    $$typeof: REACT_ELEMENT_TYPE,\n    // Built-in properties that belong on the element\n    type: type,\n    key: key,\n    ref: ref,\n    props: props,\n    // Record the component responsible for creating this element.\n    _owner: owner\n  };\n\n  {\n    // The validation flag is currently mutative. We put it on\n    // an external backing store so that we can freeze the whole object.\n    // This can be replaced with a WeakMap once they are implemented in\n    // commonly used development environments.\n    element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n    // the validation flag non-enumerable (where possible, which should\n    // include every environment we run tests in), so the test framework\n    // ignores it.\n\n    Object.defineProperty(element._store, 'validated', {\n      configurable: false,\n      enumerable: false,\n      writable: true,\n      value: false\n    }); // self and source are DEV only properties.\n\n    Object.defineProperty(element, '_self', {\n      configurable: false,\n      enumerable: false,\n      writable: false,\n      value: self\n    }); // Two elements created in two different places should be considered\n    // equal for testing purposes and therefore we hide it from enumeration.\n\n    Object.defineProperty(element, '_source', {\n      configurable: false,\n      enumerable: false,\n      writable: false,\n      value: source\n    });\n\n    if (Object.freeze) {\n      Object.freeze(element.props);\n      Object.freeze(element);\n    }\n  }\n\n  return element;\n};\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV(type, config, maybeKey, source, self) {\n  {\n    var propName; // Reserved names are extracted\n\n    var props = {};\n    var key = null;\n    var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n    // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n    // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n    // but as an intermediary step, we will use jsxDEV for everything except\n    // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n    // key is explicitly declared to be undefined or not.\n\n    if (maybeKey !== undefined) {\n      {\n        checkKeyStringCoercion(maybeKey);\n      }\n\n      key = '' + maybeKey;\n    }\n\n    if (hasValidKey(config)) {\n      {\n        checkKeyStringCoercion(config.key);\n      }\n\n      key = '' + config.key;\n    }\n\n    if (hasValidRef(config)) {\n      ref = config.ref;\n      warnIfStringRefCannotBeAutoConverted(config, self);\n    } // Remaining properties are added to a new props object\n\n\n    for (propName in config) {\n      if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n        props[propName] = config[propName];\n      }\n    } // Resolve default props\n\n\n    if (type && type.defaultProps) {\n      var defaultProps = type.defaultProps;\n\n      for (propName in defaultProps) {\n        if (props[propName] === undefined) {\n          props[propName] = defaultProps[propName];\n        }\n      }\n    }\n\n    if (key || ref) {\n      var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n      if (key) {\n        defineKeyPropWarningGetter(props, displayName);\n      }\n\n      if (ref) {\n        defineRefPropWarningGetter(props, displayName);\n      }\n    }\n\n    return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n  }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement$1(element) {\n  {\n    if (element) {\n      var owner = element._owner;\n      var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n      ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n    } else {\n      ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n    }\n  }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n  propTypesMisspellWarningShown = false;\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\n\nfunction isValidElement(object) {\n  {\n    return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n  }\n}\n\nfunction getDeclarationErrorAddendum() {\n  {\n    if (ReactCurrentOwner$1.current) {\n      var name = getComponentNameFromType(ReactCurrentOwner$1.current.type);\n\n      if (name) {\n        return '\\n\\nCheck the render method of `' + name + '`.';\n      }\n    }\n\n    return '';\n  }\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n  {\n    if (source !== undefined) {\n      var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n      var lineNumber = source.lineNumber;\n      return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n    }\n\n    return '';\n  }\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n  {\n    var info = getDeclarationErrorAddendum();\n\n    if (!info) {\n      var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n      if (parentName) {\n        info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n      }\n    }\n\n    return info;\n  }\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n  {\n    if (!element._store || element._store.validated || element.key != null) {\n      return;\n    }\n\n    element._store.validated = true;\n    var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n    if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n      return;\n    }\n\n    ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n    // property, it may be the creator of the child that's responsible for\n    // assigning it a key.\n\n    var childOwner = '';\n\n    if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {\n      // Give the component that originally created this child.\n      childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n    }\n\n    setCurrentlyValidatingElement$1(element);\n\n    error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n    setCurrentlyValidatingElement$1(null);\n  }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n  {\n    if (typeof node !== 'object') {\n      return;\n    }\n\n    if (isArray(node)) {\n      for (var i = 0; i < node.length; i++) {\n        var child = node[i];\n\n        if (isValidElement(child)) {\n          validateExplicitKey(child, parentType);\n        }\n      }\n    } else if (isValidElement(node)) {\n      // This element was passed in a valid location.\n      if (node._store) {\n        node._store.validated = true;\n      }\n    } else if (node) {\n      var iteratorFn = getIteratorFn(node);\n\n      if (typeof iteratorFn === 'function') {\n        // Entry iterators used to provide implicit keys,\n        // but now we print a separate warning for them later.\n        if (iteratorFn !== node.entries) {\n          var iterator = iteratorFn.call(node);\n          var step;\n\n          while (!(step = iterator.next()).done) {\n            if (isValidElement(step.value)) {\n              validateExplicitKey(step.value, parentType);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n  {\n    var type = element.type;\n\n    if (type === null || type === undefined || typeof type === 'string') {\n      return;\n    }\n\n    var propTypes;\n\n    if (typeof type === 'function') {\n      propTypes = type.propTypes;\n    } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n    // Inner props are checked in the reconciler.\n    type.$$typeof === REACT_MEMO_TYPE)) {\n      propTypes = type.propTypes;\n    } else {\n      return;\n    }\n\n    if (propTypes) {\n      // Intentionally inside to avoid triggering lazy initializers:\n      var name = getComponentNameFromType(type);\n      checkPropTypes(propTypes, element.props, 'prop', name, element);\n    } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n      propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n      var _name = getComponentNameFromType(type);\n\n      error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n    }\n\n    if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n      error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n    }\n  }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n  {\n    var keys = Object.keys(fragment.props);\n\n    for (var i = 0; i < keys.length; i++) {\n      var key = keys[i];\n\n      if (key !== 'children' && key !== 'key') {\n        setCurrentlyValidatingElement$1(fragment);\n\n        error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n        setCurrentlyValidatingElement$1(null);\n        break;\n      }\n    }\n\n    if (fragment.ref !== null) {\n      setCurrentlyValidatingElement$1(fragment);\n\n      error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n      setCurrentlyValidatingElement$1(null);\n    }\n  }\n}\n\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n  {\n    var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n    // succeed and there will likely be errors in render.\n\n    if (!validType) {\n      var info = '';\n\n      if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n        info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n      }\n\n      var sourceInfo = getSourceInfoErrorAddendum(source);\n\n      if (sourceInfo) {\n        info += sourceInfo;\n      } else {\n        info += getDeclarationErrorAddendum();\n      }\n\n      var typeString;\n\n      if (type === null) {\n        typeString = 'null';\n      } else if (isArray(type)) {\n        typeString = 'array';\n      } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n        typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n        info = ' Did you accidentally export a JSX literal instead of a component?';\n      } else {\n        typeString = typeof type;\n      }\n\n      error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n    }\n\n    var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n    // TODO: Drop this when these are no longer allowed as the type argument.\n\n    if (element == null) {\n      return element;\n    } // Skip key warning if the type isn't valid since our key validation logic\n    // doesn't expect a non-string/function type and can throw confusing errors.\n    // We don't want exception behavior to differ between dev and prod.\n    // (Rendering will throw with a helpful message and as soon as the type is\n    // fixed, the key warnings will appear.)\n\n\n    if (validType) {\n      var children = props.children;\n\n      if (children !== undefined) {\n        if (isStaticChildren) {\n          if (isArray(children)) {\n            for (var i = 0; i < children.length; i++) {\n              validateChildKeys(children[i], type);\n            }\n\n            if (Object.freeze) {\n              Object.freeze(children);\n            }\n          } else {\n            error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n          }\n        } else {\n          validateChildKeys(children, type);\n        }\n      }\n    }\n\n    if (type === REACT_FRAGMENT_TYPE) {\n      validateFragmentProps(element);\n    } else {\n      validatePropTypes(element);\n    }\n\n    return element;\n  }\n} // These two functions exist to still get child warnings in dev\n// even with the prod transform. This means that jsxDEV is purely\n// opt-in behavior for better messages but that we won't stop\n// giving you warnings if you use production apis.\n\nfunction jsxWithValidationStatic(type, props, key) {\n  {\n    return jsxWithValidation(type, props, key, true);\n  }\n}\nfunction jsxWithValidationDynamic(type, props, key) {\n  {\n    return jsxWithValidation(type, props, key, false);\n  }\n}\n\nvar jsx =  jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.\n// for now we can ship identical prod functions\n\nvar jsxs =  jsxWithValidationStatic ;\n\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsx;\nexports.jsxs = jsxs;\n  })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n  module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/* eslint-disable vars-on-top, no-var, prefer-template */\nvar isRegExp = function (re) { \n  return re instanceof RegExp;\n};\nvar escapeRegExp = function escapeRegExp(string) {\n  var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n    reHasRegExpChar = RegExp(reRegExpChar.source);\n\n  return (string && reHasRegExpChar.test(string))\n    ? string.replace(reRegExpChar, '\\\\$&')\n    : string;\n};\nvar isString = function (value) {\n  return typeof value === 'string';\n};\nvar flatten = function (array) {\n  var newArray = [];\n\n  array.forEach(function (item) {\n    if (Array.isArray(item)) {\n      newArray = newArray.concat(item);\n    } else {\n      newArray.push(item);\n    }\n  });\n\n  return newArray;\n};\n\n/**\n * Given a string, replace every substring that is matched by the `match` regex\n * with the result of calling `fn` on matched substring. The result will be an\n * array with all odd indexed elements containing the replacements. The primary\n * use case is similar to using String.prototype.replace except for React.\n *\n * React will happily render an array as children of a react element, which\n * makes this approach very useful for tasks like surrounding certain text\n * within a string with react elements.\n *\n * Example:\n * matchReplace(\n *   'Emphasize all phone numbers like 884-555-4443.',\n *   /([\\d|-]+)/g,\n *   (number, i) => <strong key={i}>{number}</strong>\n * );\n * // => ['Emphasize all phone numbers like ', <strong>884-555-4443</strong>, '.'\n *\n * @param {string} str\n * @param {RegExp|str} match Must contain a matching group\n * @param {function} fn\n * @return {array}\n */\nfunction replaceString(str, match, fn) {\n  var curCharStart = 0;\n  var curCharLen = 0;\n\n  if (str === '') {\n    return str;\n  } else if (!str || !isString(str)) {\n    throw new TypeError('First argument to react-string-replace#replaceString must be a string');\n  }\n\n  var re = match;\n\n  if (!isRegExp(re)) {\n    re = new RegExp('(' + escapeRegExp(re) + ')', 'gi');\n  }\n\n  var result = str.split(re);\n\n  // Apply fn to all odd elements\n  for (var i = 1, length = result.length; i < length; i += 2) {\n    /** @see {@link https://github.com/iansinnott/react-string-replace/issues/74} */\n    if (result[i] === undefined || result[i - 1] === undefined) {\n      console.warn('reactStringReplace: Encountered undefined value during string replacement. Your RegExp may not be working the way you expect.');\n      continue;\n    }\n\n    curCharLen = result[i].length;\n    curCharStart += result[i - 1].length;\n    result[i] = fn(result[i], i, curCharStart);\n    curCharStart += curCharLen;\n  }\n\n  return result;\n}\n\nmodule.exports = function reactStringReplace(source, match, fn) {\n  if (!Array.isArray(source)) source = [source];\n\n  return flatten(source.map(function(x) {\n    return isString(x) ? replaceString(x, match, fn) : x;\n  }));\n};\n","var map = {\n\t\"./categories/block.tsx\": 4356,\n\t\"./pages/block.tsx\": 6478,\n\t\"gutenberg/blocks/categories/block.tsx\": 4356,\n\t\"gutenberg/blocks/pages/block.tsx\": 6478\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 9406;","module.exports = React;","module.exports = ReactDOM;","module.exports = jQuery;","module.exports = lodash;","module.exports = wp.apiFetch;","module.exports = wp.blockEditor;","module.exports = wp.blocks;","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.hooks;","module.exports = wp.htmlEntities;","module.exports = wp.i18n;","module.exports = wp.plugins;","module.exports = wp.richText;","module.exports = wp.serverSideRender;","module.exports = wp.url;","// 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\tid: moduleId,\n\t\tloaded: false,\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// Flag the module as loaded\n\tmodule.loaded = true;\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 = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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__.hmd = (module) => {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: () => {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","import widgets from './modules/widgets';\n\nconsole.debug( 'Advanced Sidebar - Loaded' );\n\nwidgets();\n\n/**\n * 1. Blocks can't be lazy loaded, or they will be unavailable\n *    intermittently when developing.\n * 2. Theme Customizers must wait until the page is finished loading.\n *\n * @version 1.1.0\n */\nif ( typeof window.wp.element !== 'undefined' && typeof window.wp.plugins !== 'undefined' ) {\n\trequire( './gutenberg' ).default();\n} else if ( typeof window.wp.customize !== 'undefined' ) {\n\twindow.wp.customize.bind( 'ready', () => {\n\t\trequire( './gutenberg' ).default();\n\t} );\n}\n"],"names":["Component","CONFIG","addQueryArgs","sanitize","jsx","_jsx","jsxs","_jsxs","ErrorBoundary","constructor","props","state","hasError","error","getDerivedStateFromError","componentDidCatch","info","console","log","setState","render","siteInfo","scriptDebug","className","children","style","color","href","window","location","target","support","rel","border","padding","width","overflowWrap","section","currentScreen","message","block","JSON","stringify","attributes","stack","__","useState","Notice","styles","DISMISS_KEY","TransformNotice","shown","setShown","wrap","politeness","onDismiss","localStorage","setItem","actions","label","url","variant","ADVANCED_SIDEBAR_MENU","withFilters","select","isEmpty","firstClientId","SideLoad","clientId","getBlockIndex","CheckboxControl","PanelBody","Slot","sprintf","range","reactStringReplace","checkboxes","include_parent","include_childless_parent","display_all","Display","setAttributes","type","name","showLevels","blocks","pages","id","isPro","fillProps","title","Object","keys","map","item","labels","singular_name","toLowerCase","checked","onChange","replace","value","levels","ev","parseInt","n","categories","TextControl","ExcludeField","help","dangerouslySetInnerHTML","__html","exclude","Button","InspectorControls","decodeEntities","titleStyles","fontWeight","headingStyles","margin","fontSize","InfoPanel","initialOpen","features","feature","button","isPrimary","useEffect","ServerSideRender","Placeholder","Spinner","useBlockProps","doAction","isScreen","Fragment","_Fragment","ICON","xmlns","viewBox","x","fill","height","d","sanitizeClientId","getSidebarId","rootId","getBlockRootClientId","ParentBlock","getBlocksByClientId","Page","placeholder","icon","instructions","Category","Navigation","navigation","TriggerWhenLoadingFinished","setTimeout","values","errorMsg","Error","spinWrap","spin","spinContent","Preview","blockProps","sanitizedClientId","onClick","element","nodeName","preventDefault","EmptyResponsePlaceholder","LoadingResponsePlaceholder","isServerSideRenderRequest","sidebarId","httpMethod","useSelect","BlockControls","SelectControl","Edit","taxonomy","getTaxonomy","single","new_widget","options","displayEach","key","docs","category","transformLegacyWidget","EXAMPLE","apply_current_page_parent_styles_to_parent","apply_current_page_styles_to_parent","block_style","border_color","bullet_style","child_page_bg_color","child_page_color","parent_page_bg_color","parent_page_color","parent_page_font_weight","grandchild_page_bg_color","grandchild_page_color","grandchild_page_font_weight","settings","example","transforms","from","isMatch","idBase","instance","raw","transform","supports","edit","save","apiVersion","postType","getPostType","post_type","order_by","labelPosition","entries","orderBy","page","current_page_bg_color","current_page_color","current_page_font_weight","current_page_parent_bg_color","createBlock","screens","includes","translateLegacyWidget","forEach","autoloadBlocks","require","context","module","createRoot","renderTransformNotice","classicWidgets","getItem","placeholders","document","querySelectorAll","root","e","isWidgets","jQuery","on","widgets","debug","wp","plugins","default","customize","bind"],"sourceRoot":""}
     1{"version":3,"file":"advanced-sidebar-menu-block-editor.js","mappings":"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CnB;AACD;;AAGA;AACA;AACA;AACA;AACA;AACA,iEAAe,MAAM;EACpB;EACA,IAAK,GAAG,KAAKrP,mDAAM,CAACsP,SAAS,EAAG;IAC/B;EACD;EACA;EACAC,MAAM,CAAEL,QAAS,CAAC,CAACM,EAAE,CAAE,cAAc,EAAE,YAAW;IACjDV,qBAAqB,CAAC,CAAC;EACxB,CAAE,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;AC7CD;AACA,iEAAe,CAAC,oCAAoC;;;;;;;;;;;;;;;ACDpD;AACA,iEAAe,CAAC,gEAAgE;;;;;;;;;;;;;;;ACDhF;AACA,iEAAe,CAAC,0BAA0B;;;;;;;;;;;;;;;ACD1C;AACA,iEAAe,CAAC,+PAA+P;;;;;;;;;;;ACDlQ;;AAEb,QAAQ,mBAAO,CAAC,qBAAW;AAC3B,IAAI,KAAqC,EAAE,EAG1C,CAAC;AACF;AACA,EAAE,kBAAkB;AACpB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,EAAE,mBAAmB;AACrB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;;;;;;;;;;ACxBA;;AAEA;AACA,EAAE,KAA4D;AAC9D,EAAE,CACwG;AAC1G,CAAC,uBAAuB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,UAAU;AACd;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB,eAAe,UAAU;AACzB;AACA;AACA;AACA,6FAA6F,aAAa;AAC1G;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB,eAAe,UAAU;AACzB;AACA;AACA;AACA,6EAA6E,eAAe;AAC5F;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,OAAO;AACpB,aAAa,UAAU;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,EAAE,iBAAiB,EAAE,MAAM;AAC3D;AACA,+BAA+B,QAAQ;AACvC,wDAAwD;AACxD,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,0BAA0B;AACvC,aAAa,mBAAmB;AAChC,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;AACA;AACA,4CAA4C;;AAE5C;AACA;AACA,kBAAkB,sBAAsB;AACxC,kBAAkB,sBAAsB;AACxC,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,+CAA+C;;AAE/C;AACA;AACA,6CAA6C;;AAE7C;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kDAAkD;;AAElD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4EAA4E;AAC5E,4EAA4E;AAC5E,wFAAwF;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF;AAClF,0EAA0E;AAC1E,0EAA0E;AAC1E;AACA,uDAAuD;AACvD,uDAAuD;AACvD,sEAAsE;AACtE,yEAAyE;AACzE,4DAA4D;AAC5D,iDAAiD;AACjD,oDAAoD;AACpD,4CAA4C;AAC5C,8DAA8D;AAC9D,8DAA8D;AAC9D,4CAA4C;AAC5C,iDAAiD;AACjD,gEAAgE;AAChE,iDAAiD;AACjD,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD,+CAA+C;;AAE/C;AACA;AACA;AACA;AACA,oDAAoD;;AAEpD;AACA;AACA;AACA,oCAAoC;AACpC,uCAAuC;;AAEvC;AACA,gBAAgB,SAAS;AACzB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,UAAU;AACV;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,MAAM;AACtB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C;AAC5C,sFAAsF,6DAA6D;AACnJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uTAAuT;AACvT;AACA;AACA;AACA,QAAQ,wCAAwC,oFAAoF,oKAAoK,iHAAiH;AACzZ;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;AACD;;;;;;;;;;;;ACzhDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,IAAI,IAAqC;AACzC;AACA;;AAEA,YAAY,mBAAO,CAAC,iBAAO;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,iGAAiG,eAAe;AAChH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA,KAAK,GAAG;;AAER,kDAAkD;AAClD;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,4BAA4B;AAC5B;AACA,qCAAqC;;AAErC,gCAAgC;AAChC;AACA;;AAEA,gCAAgC;;AAEhC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;;AAGF;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,sBAAsB;AACtB;AACA,SAAS;AACT,uBAAuB;AACvB;AACA,SAAS;AACT,uBAAuB;AACvB;AACA,SAAS;AACT,wBAAwB;AACxB;AACA,SAAS;AACT,wBAAwB;AACxB;AACA,SAAS;AACT,iCAAiC;AACjC;AACA,SAAS;AACT,2BAA2B;AAC3B;AACA,SAAS;AACT,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,2DAA2D;;AAE3D;AACA;;AAEA;AACA,yDAAyD;AACzD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;;AAEA;AACA;AACA,gFAAgF;AAChF;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;;;AAGlB;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;;;AAGJ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2HAA2H;AAC3H;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA,oEAAoE;;AAEpE;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,eAAe;AAC1B,WAAW,GAAG;AACd,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;;AAER;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;;AAEA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA,oBAAoB;AACpB,2DAA2D,UAAU;AACrE,yBAAyB,UAAU;AACnC;AACA,aAAa,UAAU;AACvB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,GAAG;AACd;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,6DAA6D;AAC7D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,GAAG;AACd;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,iBAAiB;AACvC;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,4CAA4C;;AAE5C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB;;;AAGA;AACA;AACA;;AAEA,oBAAoB,iBAAiB;AACrC;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C;AAC9C;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA,0DAA0D;AAC1D;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sCAAsC;AACtC;;AAEA;;AAEA,gBAAgB;AAChB,WAAW;AACX,YAAY;AACZ,GAAG;AACH;;;;;;;;;;;;ACjyCa;;AAEb,IAAI,KAAqC,EAAE,EAE1C,CAAC;AACF,EAAE,wFAAkE;AACpE;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,EAAE,EAAE,OAAO;AAC5C;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,YAAY;AACvB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,0CAA0C,YAAY;AACtD,cAAc,oEAAoE;AAClF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;;;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzBA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;;;;;WCVA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;ACNwC;AAExC9N,OAAO,CAAC0O,KAAK,CAAE,2BAA4B,CAAC;AAE5CD,4DAAO,CAAC,CAAC;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAK,OAAO9N,MAAM,CAACgO,EAAE,CAACpF,OAAO,KAAK,WAAW,IAAI,OAAO5I,MAAM,CAACgO,EAAE,CAACC,OAAO,KAAK,WAAW,EAAG;EAC3FlB,yDAAgC,CAAC,CAAC;AACnC,CAAC,MAAM,IAAK,OAAO/M,MAAM,CAACgO,EAAE,CAACG,SAAS,KAAK,WAAW,EAAG;EACxDnO,MAAM,CAACgO,EAAE,CAACG,SAAS,CAACC,IAAI,CAAE,OAAO,EAAE,MAAM;IACxCrB,yDAAgC,CAAC,CAAC;EACnC,CAAE,CAAC;AACJ,C","sources":["webpack://@onpointplugins/advanced-sidebar-menu/./.yarn/__virtual__/@lipemat-js-boilerplate-gutenberg-virtual-329647b4db/0/cache/@lipemat-js-boilerplate-gutenberg-npm-3.4.2-78591b901d-4704295112.zip/node_modules/@lipemat/js-boilerplate-gutenberg/dist/index.module.js","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/components/ErrorBoundary.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/components/TransformNotice.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/globals/config.ts","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/SideLoad.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/Display.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/ExcludeField.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/InfoPanel.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/Preview.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/categories/Edit.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/categories/block.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/pages/Edit.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/pages/block.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/helpers.ts","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/index.ts","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/modules/widgets.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/components/transform-notice.pcss","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/info-panel.pcss","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/pages/edit.pcss","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/preview.pcss","webpack://@onpointplugins/advanced-sidebar-menu/./.yarn/__virtual__/react-dom-virtual-da4ced7575/0/cache/react-dom-npm-18.2.0-dd675bca1c-66dfc5f93e.zip/node_modules/react-dom/client.js","webpack://@onpointplugins/advanced-sidebar-menu/./.yarn/cache/dompurify-npm-3.1.6-344fd47e23-3de1cca187.zip/node_modules/dompurify/dist/purify.js","webpack://@onpointplugins/advanced-sidebar-menu/./.yarn/cache/react-npm-18.2.0-1eae08fee2-b562d9b569.zip/node_modules/react/cjs/react-jsx-runtime.development.js","webpack://@onpointplugins/advanced-sidebar-menu/./.yarn/cache/react-npm-18.2.0-1eae08fee2-b562d9b569.zip/node_modules/react/jsx-runtime.js","webpack://@onpointplugins/advanced-sidebar-menu/./.yarn/cache/react-string-replace-npm-1.1.1-614c815872-5a4a4fd9c3.zip/node_modules/react-string-replace/index.js","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/ sync block\\.tsx$","webpack://@onpointplugins/advanced-sidebar-menu/external var \"React\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"ReactDOM\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"jQuery\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"lodash\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.apiFetch\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.blockEditor\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.blocks\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.components\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.data\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.hooks\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.htmlEntities\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.i18n\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.plugins\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.richText\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.serverSideRender\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.url\"","webpack://@onpointplugins/advanced-sidebar-menu/webpack/bootstrap","webpack://@onpointplugins/advanced-sidebar-menu/webpack/runtime/compat get default export","webpack://@onpointplugins/advanced-sidebar-menu/webpack/runtime/define property getters","webpack://@onpointplugins/advanced-sidebar-menu/webpack/runtime/harmony module decorator","webpack://@onpointplugins/advanced-sidebar-menu/webpack/runtime/hasOwnProperty shorthand","webpack://@onpointplugins/advanced-sidebar-menu/webpack/runtime/make namespace object","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/block-editor.ts"],"sourcesContent":["import e from\"@wordpress/api-fetch\";import{__ as t}from\"@wordpress/i18n\";import{addQueryArgs as n}from\"@wordpress/url\";import{registerBlockType as r,unregisterBlockType as o}from\"@wordpress/blocks\";import{registerPlugin as i,unregisterPlugin as u}from\"@wordpress/plugins\";import{select as c,dispatch as s,useDispatch as a,useSelect as f}from\"@wordpress/data\";import{registerFormatType as d,unregisterFormatType as l}from\"@wordpress/rich-text\";function p(){return(p=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var v,h,m=[];function g(e){return m.push(e),m.length-1}function w(e){return delete m[e],m}function b(){return void 0!==h}function P(e){E(),h=g(function(e){function t(e,n){var r=e.headers,o=void 0===r?{}:r;for(var i in o)\"x-wp-nonce\"===i.toLowerCase()&&delete o[i];return n(p({},e,{headers:p({},o,{\"X-WP-Nonce\":t.nonce})}))}return t.nonce=e,t}(e))}function y(){void 0!==h&&(w(h),h=void 0),void 0===v&&(v=g(function(e,t){if(void 0!==e.headers)for(var n in e.headers)\"x-wp-nonce\"===n.toLowerCase()&&delete e.headers[n];return t(e,t)}))}function E(){void 0!==h&&w(h),void 0!==v&&w(v),h=void 0,v=void 0}var T=function(e,t){return void 0===t&&(t=!0),Promise.resolve(function(e,t){return void 0===t&&(t=!0),t?204===e.status?null:e.json?e.json():Promise.reject(e):e}(e,t)).catch(function(e){return k(e,t)})};function k(e,n){if(void 0===n&&(n=!0),!n)throw e;return function(e){var n={code:\"invalid_json\",message:t(\"The response is not a valid JSON response.\")};if(!e||!e.json)throw n;return e.json().catch(function(){throw n})}(e).then(function(e){var n={code:\"unknown_error\",message:t(\"An unknown error occurred.\")};throw\"rest_cookie_invalid_nonce\"===e.code&&b()&&(e.code=\"external_rest_cookie_invalid_nonce\"),e||n})}var j,x=[\"url\",\"path\",\"data\",\"parse\"],_={Accept:\"application/json, */*;q=0.1\"},O={credentials:\"include\"},B=function(e){if(e.status>=200&&e.status<300)return e;throw e},C=function(e){var n=function e(t,n){return function(r){return void 0===n[t]?r:(0,n[t])(r,t===n.length-1?function(e){return e}:e(t+1,n))}}(0,m.filter(Boolean))(p({},O,e)),r=n.url,o=n.path,i=n.data,u=n.parse,c=void 0===u||u,s=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t.indexOf(n=i[r])>=0||(o[n]=e[n]);return o}(n,x),a=n.body,f=n.headers;return f=p({},_,f),i&&(a=JSON.stringify(i),f[\"Content-Type\"]=\"application/json\"),window.fetch(r||o||\"\",p({},s,{body:a,headers:f})).then(function(e){return Promise.resolve(e).then(B).catch(function(e){return k(e,c)}).then(function(e){return T(e,c)})},function(){throw{code:\"fetch_error\",message:t(\"You are probably offline.\")}})},G=function(e,t,n){return Promise.resolve(R(e,t,n,!1)).then(function(e){return Promise.resolve(T(e)).then(function(t){return{items:t,totalPages:parseInt(e.headers.get(\"X-WP-TotalPages\")||\"1\"),totalItems:parseInt(e.headers.get(\"X-WP-Total\")||\"0\")}})})},R=function(t,r,o,i){void 0===i&&(i=!0);try{return Promise.resolve(e(void 0===o||\"GET\"===r||\"OPTIONS\"===r?{method:r,parse:i,path:n(t,null!=o?o:{})}:{data:o,method:r,parse:i,path:t}))}catch(e){return Promise.reject(e)}};function I(e){return{create:function(t){return R(e,\"POST\",t)},delete:function(t){return R(e+\"/\"+t,\"DELETE\",{force:!0})},get:function(t){return R(e,\"GET\",t)},getById:function(t,n){return R(e+\"/\"+t,\"GET\",n)},getWithPagination:function(t){return G(e,\"GET\",t)},trash:function(t){return R(e+\"/\"+t,\"DELETE\")},update:function(t){return R(e+\"/\"+t.id,\"PATCH\",t)}}}function S(t){var n={};return[\"categories\",\"comments\",\"blocks\",\"media\",\"menus\",\"menu-locations\",\"menu-items\",\"statuses\",\"pages\",\"posts\",\"tags\",\"taxonomies\",\"search\"].map(function(e){return n[e]=function(){return I(\"/wp/v2/\"+e)}}),n.menuLocations=function(){return I(\"/wp/v2/menu-locations\")},n.menuItems=function(){return I(\"/wp/v2/menu-items\")},n.users=function(){var e=I(\"/wp/v2/users\");return e.delete=function(e,t){return void 0===t&&(t=!1),R(\"/wp/v2/users/\"+e,\"DELETE\",{force:!0,reassign:t})},e},n.applicationPasswords=function(){return{create:function(e,t){return R(\"/wp/v2/users/\"+e+\"/application-passwords\",\"POST\",t)},delete:function(e,t){return R(\"/wp/v2/users/\"+e+\"/application-passwords/\"+t,\"DELETE\")},get:function(e){return R(\"/wp/v2/users/\"+e+\"/application-passwords\",\"GET\")},getById:function(e,t){return R(\"/wp/v2/users/\"+e+\"/application-passwords/\"+t,\"GET\")},introspect:function(e){return R(\"/wp/v2/users/\"+e+\"/application-passwords/introspect\",\"GET\")},update:function(e,t,n){return R(\"/wp/v2/users/\"+e+\"/application-passwords/\"+t,\"PUT\",n)}}},n.settings=function(){return{get:function(){return R(\"/wp/v2/settings\",\"GET\")},update:function(e){return R(\"/wp/v2/settings\",\"POST\",e)}}},n.types=function(){return{get:function(){return R(\"/wp/v2/types\",\"GET\")},getById:function(e){return R(\"'/wp/v2/types'/\"+e,\"GET\")}}},void 0!==t&&Object.keys(t).map(function(e){return n[e]=t[e]}),e.setFetchHandler(C),n}function A(){w(j)}function L(t,n){j&&w(j),j=g(e.createRootURLMiddleware(t.replace(/\\/$/,\"\")+\"/\")),window.location.hostname&&new URL(t).hostname===window.location.hostname?E():void 0!==n?P(n):b()||y()}var M,D=function(r){return Promise.resolve(function(o,i){try{var u=Promise.resolve(e({path:\"/\",method:\"GET\"})).then(function(e){return e.authentication[\"application-passwords\"]?n(e.authentication[\"application-passwords\"].endpoints.authorization,r):{code:\"application_passwords_disabled\",message:t(\"Application passwords are not enabled on this site.\"),data:null}})}catch(e){return e}return u&&u.then?u.then(void 0,function(e){return e}):u}())};function N(){return void 0!==M}function W(){void 0!==M&&(w(M),M=void 0)}function U(e,t){W(),M=g(function(n,r){var o=n.headers;return r(p({},n,{headers:p({},void 0===o?{}:o,{Authorization:\"Basic \"+btoa(e+\":\"+t)})}),r)})}function X(e,t,n){if(!e.s){if(n instanceof z){if(!n.s)return void(n.o=X.bind(null,e,t));1&t&&(t=n.s),n=n.v}if(n&&n.then)return void n.then(X.bind(null,e,t),X.bind(null,e,2));e.s=t,e.v=n;const r=e.o;r&&r(e)}}var z=function(){function e(){}return e.prototype.then=function(t,n){var r=new e,o=this.s;if(o){var i=1&o?t:n;if(i){try{X(r,1,i(this.v))}catch(e){X(r,2,e)}return r}return this}return this.o=function(e){try{var o=e.v;1&e.s?X(r,1,t?t(o):o):n?X(r,1,n(o)):X(r,2,o)}catch(e){X(r,2,e)}},r},e}(),H=function(e,t){F({afterReload:Q,beforeReload:K,getContext:e,pluginModule:t,register:r,unregister:o,type:\"block\"})},J=function(e,t){F({afterReload:function(){},beforeReload:function(){},getContext:e,pluginModule:t,register:i,unregister:u,type:\"plugin\"})},q=function(e,t){F({afterReload:function(){},beforeReload:function(){},getContext:e,pluginModule:t,register:d,unregister:l,type:\"format\"})},F=function(e){var t=e.afterReload,n=e.beforeReload,r=e.getContext,o=e.pluginModule,i=e.register,u=e.unregister,c=e.type,s={},a=function(){n();var e=r();if(e){var o=[];return e.keys().forEach(function(t){var n=e(t);n.exclude||n!==s[t]&&(s[n.name+\"-\"+c]&&u(n.name),i(n.name,n.settings),o.push(n.name),s[n.name+\"-\"+c]=n)}),t(o),e}},f=a();o.hot&&null!=f&&f.id&&o.hot.accept(f.id.toString(),a)},Y=null,$=[],K=function(){Y=c(\"core/block-editor\").getSelectedBlockClientId()},Q=function(e){void 0===e&&(e=[]);try{return Promise.resolve(s(\"core/block-editor\").clearSelectedBlock()).then(function(){function t(){function e(){$=[],Y=null}var t=Y?Promise.resolve(s(\"core/block-editor\").selectBlock(Y)).then(function(){}):Promise.resolve(s(\"core/block-editor\").clearSelectedBlock()).then(function(){});return t&&t.then?t.then(e):e()}c(\"core/block-editor\").getBlocks().forEach(function(t){return function e(t,n){void 0===t&&(t=[]);var r=n.clientId,o=n.innerBlocks;t.includes(n.name)&&$.push(r),o.forEach(function(n){return e(t,n)})}(e,t)});var n=function(e,t,n){var r,o,i=-1;return function n(u){try{for(;++i<e.length;)if((u=t(i))&&u.then){if(!((c=u)instanceof z&&1&c.s))return void u.then(n,o||(o=X.bind(null,r=new z,2)));u=u.v}r?X(r,1,u):r=u}catch(e){X(r||(r=new z),2,e)}var c}(),r}($,function(e){return Promise.resolve(s(\"core/block-editor\").selectBlock($[e])).then(function(){})});return n&&n.then?n.then(t):t()})}catch(e){return Promise.reject(e)}};function V(e,t){var n={current:e},r={current:t};return t.some(function(e,t){return e!==r.current[t]})&&(n.current=e,r.current=t),function(){return n.current.apply(n,[].slice.call(arguments))}}function Z(e){var t=a(\"core/editor\").editPost,n=f(function(e){return{previous:e(\"core/editor\").getCurrentPostAttribute(\"meta\"),current:e(\"core/editor\").getEditedPostAttribute(\"meta\")}}),r=\"string\"==typeof e&&\"\"!==e,o=r?n.current[e]:n.current,i=r?n.previous[e]:n.previous,u=V(function(n){var o;r&&t({meta:(o={},o[e]=n,o)})},[t,e,r]),c=V(function(e,n){var r;t({meta:(r={},r[e]=n,r)})},[t]);return r?[o,u,i]:[o,c,i]}function ee(e){var t=a(\"core/editor\").editPost,n=f(function(t){var n=t(\"core\").getTaxonomy(e);return n?{taxonomy:n,current:t(\"core/editor\").getEditedPostAttribute(n.rest_base),previous:t(\"core/editor\").getCurrentPostAttribute(n.rest_base)}:{current:[],previous:[]}}),r=V(function(e){try{var r;return Promise.resolve(n.taxonomy?t(((r={})[n.taxonomy.rest_base]=e,r)):void 0)}catch(e){return Promise.reject(e)}},[n,t]);return[n.current,r,n.previous]}export{g as addMiddleware,F as autoload,H as autoloadBlocks,q as autoloadFormats,J as autoloadPlugins,W as clearApplicationPassword,y as clearNonce,I as createMethods,C as defaultFetchHandler,R as doRequest,G as doRequestWithPagination,U as enableApplicationPassword,D as getAuthorizationUrl,N as hasApplicationPassword,b as hasExternalNonce,w as removeMiddleware,E as restoreNonce,A as restoreRootURL,P as setNonce,L as setRootURL,Z as usePostMeta,ee as useTerms,S as wpapi};\n//# sourceMappingURL=index.module.js.map\n","import {Component, ErrorInfo, PropsWithChildren} from 'react';\nimport {CONFIG} from '../globals/config';\nimport {addQueryArgs} from '@wordpress/url';\nimport {sanitize} from 'dompurify';\n\ntype Props = {\n\tattributes: object,\n\tblock: string;\n\tsection: string;\n}\n\n/**\n * Wrap any component in me, which may throw errors, and I will\n * prevent the entire UI from disappearing.\n *\n * Custom version special to Advanced Sidebar Menu with links to\n * support as well as debugging information.\n *\n * @link https://reactjs.org/docs/error-boundaries.html#introducing-error-boundaries\n */\nclass ErrorBoundary extends Component<PropsWithChildren<Props>, {\n\thasError: boolean,\n\terror: Error | null\n}> {\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.state = {\n\t\t\thasError: false,\n\t\t\terror: null,\n\t\t};\n\t}\n\n\tstatic getDerivedStateFromError() {\n\t\t// Update state, so the next render will show the fallback UI.\n\t\treturn {\n\t\t\thasError: true,\n\t\t};\n\t}\n\n\t/**\n\t * Log information about the error when it happens.\n\t *\n\t * @notice Will log \"Error: A cross-origin error was thrown. React doesn't have\n\t *         access to the actual error object in development\" in React development\n\t *         mode but provides full error info in React production.\n\t */\n\tcomponentDidCatch( error: Error, info: ErrorInfo ) {\n\t\tconsole.log( '%cError caught by the Advanced Sidebar ErrorBoundary!', 'color:orange; font-size: large; font-weight: bold' );\n\t\tconsole.log( this.props );\n\t\tconsole.log( error );\n\t\tconsole.log( info );\n\t\tthis.setState( {\n\t\t\terror,\n\t\t} );\n\t}\n\n\trender() {\n\t\tif ( this.state.hasError ) {\n\t\t\tif ( ! CONFIG.siteInfo.scriptDebug ) {\n\t\t\t\treturn ( <div className={'components-panel__body is-opened'}>\n\t\t\t\t\t<h4 style={{color: 'red'}}>\n\t\t\t\t\t\tSomething went wrong!\n\t\t\t\t\t</h4>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tPlease <a\n\t\t\t\t\t\t\thref={addQueryArgs( sanitize( window.location.href ), {\n\t\t\t\t\t\t\t\t'script-debug': 'true',\n\t\t\t\t\t\t\t}, )}\n\t\t\t\t\t\t>enable script debug</a> to retrieve error information.\n\t\t\t\t\t</p>\n\t\t\t\t</div> );\n\t\t\t}\n\t\t\treturn (\n\t\t\t\t<div className={'components-panel__body is-opened'}>\n\t\t\t\t\t<h4 style={{color: 'red'}}>\n\t\t\t\t\t\tSomething went wrong!\n\t\t\t\t\t</h4>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tPlease <a target=\"_blank\" href={CONFIG.support} rel=\"noreferrer\">\n\t\t\t\t\t\t\tcreate a support request\n\t\t\t\t\t\t</a> with the following:\n\t\t\t\t\t</p>\n\t\t\t\t\t<ol>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\tThe <a\n\t\t\t\t\t\t\t\thref={'https://onpointplugins.com/how-to-retrieve-console-logs-from-your-browser/'}\n\t\t\t\t\t\t\t\ttarget={'_blank'} rel=\"noreferrer\">\n\t\t\t\t\t\t\t\tlogs from your browser console.\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\tThe following information.\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ol>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tborder: '2px groove',\n\t\t\t\t\t\t\tpadding: '10px',\n\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t\toverflowWrap: 'break-word',\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<strong><em>Section</em></strong> <br />\n\t\t\t\t\t\t\t<code>\n\t\t\t\t\t\t\t\t{this.props.section}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<strong><em>Screen</em></strong> <br />\n\t\t\t\t\t\t\t<code>\n\t\t\t\t\t\t\t\t{CONFIG.currentScreen}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<strong><em>Message</em></strong> <br />\n\t\t\t\t\t\t\t<code>\n\t\t\t\t\t\t\t\t{this.state.error?.message}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<strong><em>Block</em></strong> <br />\n\t\t\t\t\t\t\t<code>\n\t\t\t\t\t\t\t\t{this.props.block}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<strong><em>Attributes</em></strong> <br />\n\t\t\t\t\t\t\t<code>\n\t\t\t\t\t\t\t\t{JSON.stringify( this.props.attributes )}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<strong><em>Site Info</em></strong> <br />\n\t\t\t\t\t\t\t<code>\n\t\t\t\t\t\t\t\t{JSON.stringify( CONFIG.siteInfo )}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<strong><em>Stack</em></strong> <br />\n\t\t\t\t\t\t\t<code>\n\t\t\t\t\t\t\t\t{this.state.error?.stack}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</div>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t&nbsp;\n\t\t\t\t\t</p>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t&nbsp;\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn this.props.children;\n\t}\n}\n\nexport default ErrorBoundary;\n","import {__} from '@wordpress/i18n';\nimport {useState} from 'react';\nimport {Notice} from '@wordpress/components';\n\nimport styles from './transform-notice.pcss';\n\ntype Props = Record<string, never>;\n\nexport const DISMISS_KEY = 'advanced-sidebar-menu/transform-notice-dismissed';\n\n/**\n * Display a dismissible notice above widget forms to inform\n * users the widget may be transformed into a block.\n *\n * Only applies to legacy widgets which should theoretically\n * be phased out in favor of blocks.\n * This notice is intended to help facilitate the transition.\n *\n */\nconst TransformNotice = ( {}: Props ) => {\n\tconst [ shown, setShown ] = useState<boolean>( true );\n\n\tif ( ! shown ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Notice\n\t\t\tclassName={styles.wrap}\n\t\t\tpoliteness={'polite'}\n\t\t\tonDismiss={() => {\n\t\t\t\tsetShown( false );\n\t\t\t\tlocalStorage.setItem( DISMISS_KEY, '1' );\n\t\t\t}}\n\t\t\tactions={[ {\n\t\t\t\tlabel: __( 'Blocks are the future of Advanced Sidebar Menu.', 'advanced-sidebar-menu' ),\n\t\t\t\turl: 'https://onpointplugins.com/advanced-sidebar-menu/advanced-sidebar-menu-gutenberg-blocks/#transform-widgets-to-blocks',\n\t\t\t\tvariant: 'link',\n\t\t\t} ]}\n\t\t>\n\t\t\t<span className=\"dashicons dashicons-arrow-up-alt\" />&nbsp;\n\t\t\t{__( 'This widget may be transformed into a block.', 'advanced-sidebar-menu' )}\n\t\t</Notice>\n\t);\n};\n\nexport default TransformNotice;\n","import {ComponentClass, FunctionComponent} from 'react';\nimport {TransformLegacy} from '../gutenberg/helpers';\nimport type {Attr as PageAttr} from '../gutenberg/blocks/pages/block';\nimport type {Attr as CategoryAttr} from '../gutenberg/blocks/categories/block';\nimport type {BlockAttributes, BlockSettings} from '@wordpress/blocks';\nimport type {PreviewOptions} from '../gutenberg/blocks/Preview';\n\nexport type Screen = 'site-editor' | 'widgets' | 'post' | 'customize';\n\nexport type WPBoolean = '1' | '';\n\nexport interface JSConfig {\n\tblocks: {\n\t\tcategories: {\n\t\t\tid: 'advanced-sidebar-menu/categories';\n\t\t\tattributes: BlockAttributes<CategoryAttr & PreviewOptions>;\n\t\t\tsupports: BlockSettings<CategoryAttr>['supports'];\n\t\t};\n\t\tpages: {\n\t\t\tid: 'advanced-sidebar-menu/pages';\n\t\t\tattributes: BlockAttributes<PageAttr & PreviewOptions>;\n\t\t\tsupports: BlockSettings<PageAttr>['supports'];\n\t\t};\n\t\tnavigation?: {\n\t\t\tid: 'advanced-sidebar-menu/navigation';\n\t\t\tattributes: BlockAttributes<object>;\n\t\t\tsupports: BlockSettings<object>['supports'];\n\t\t}\n\t};\n\tcategories: {\n\t\tdisplayEach: {\n\t\t\tlist: string;\n\t\t\twidget: string;\n\t\t};\n\t};\n\tcurrentScreen: Screen;\n\tdocs: {\n\t\tpage: string;\n\t\tcategory: string;\n\t};\n\terror: string;\n\tErrorBoundary: ComponentClass<{\n\t\tattributes: object,\n\t\tblock: string;\n\t\tsection: string;\n\t}>;\n\tfeatures: Array<string>;\n\tisPostEdit: WPBoolean;\n\tisPro: WPBoolean;\n\tisWidgets: WPBoolean;\n\tpages: {\n\t\torderBy: { [ value: string ]: string };\n\t};\n\tPreview: FunctionComponent<object>;\n\tsiteInfo: {\n\t\tbasic: string;\n\t\tclassicWidgets: boolean;\n\t\tmenus: Array<object>;\n\t\tphp: string;\n\t\tpro: string | false;\n\t\tscriptDebug: boolean;\n\t\tWordPress: string;\n\t};\n\tsupport: string;\n\ttransformLegacyWidget: TransformLegacy;\n}\n\n\ndeclare global {\n\tinterface Window {\n\t\tADVANCED_SIDEBAR_MENU: JSConfig;\n\t\tadvancedSidebarMenuAdmin: {\n\t\t\tinit: () => void;\n\t\t\thandlePreviews: () => void;\n\t\t\tshowHideElements: () => void;\n\t\t\tclickReveal: ( id: string ) => void;\n\t\t\tsetHideState( target: JQuery<HTMLElement> ): void;\n\t\t};\n\t\t__TEST__?: boolean;\n\t}\n}\n\nexport const CONFIG: JSConfig = window.ADVANCED_SIDEBAR_MENU;\n","import {withFilters} from '@wordpress/components';\nimport {select} from '@wordpress/data';\nimport {isEmpty} from 'lodash';\n\ntype Props = {\n\tclientId: string;\n};\n\nlet firstClientId = '';\n/**\n * The customizer area does not include a `PluginArea` component,\n * so our slot fills do not load.\n *\n * We can use filters, but the Fills double up each time\n * another block is added to the page.\n *\n * Track the clientId of the first block we add the Fill to\n * and only return the Fill for that block. The rest of the blocks\n * inherit the Fill from the first block via their Slots.\n */\nconst SideLoad = ( {clientId, children} ) => {\n\tif ( ! isEmpty( firstClientId ) && clientId !== firstClientId ) {\n\t\t// Make sure block still exists.\n\t\tif ( -1 !== select( 'core/block-editor' ).getBlockIndex( firstClientId ) ) {\n\t\t\treturn null;\n\t\t}\n\t}\n\tfirstClientId = clientId;\n\treturn children ?? null;\n};\n\nexport default withFilters<Props>( 'advanced-sidebar-menu.blocks.side-load' )( SideLoad );\n","import {CheckboxControl, PanelBody, Slot} from '@wordpress/components';\nimport {CONFIG} from '../../globals/config';\nimport type {Attr as PageAttr} from './pages/block';\nimport type {Attr as CategoryAttr} from './categories/block';\nimport {__, sprintf} from '@wordpress/i18n';\nimport {Type} from '@wordpress/api/types';\nimport {range} from 'lodash';\nimport reactStringReplace from 'react-string-replace';\nimport {Taxonomy} from '@wordpress/api/taxonomies';\nimport ErrorBoundary from '../../components/ErrorBoundary';\nimport {BlockEditProps} from '@wordpress/blocks';\nimport {PropsWithChildren} from 'react';\n\n\nexport type DisplayOptions = {\n\tdisplay_all?: boolean;\n\tinclude_childless_parent?: boolean;\n\tinclude_parent?: boolean;\n\tlevels: number;\n}\n\nexport type FillProps =\n\tPick<BlockEditProps<PageAttr | CategoryAttr>, 'clientId' | 'attributes' | 'setAttributes' | 'name'>\n\t& { type?: Type<'edit'> | Taxonomy<'edit'> }\n\ntype Props = PropsWithChildren<{\n\tattributes: PageAttr | CategoryAttr;\n\tsetAttributes: BlockEditProps<PageAttr | CategoryAttr>['setAttributes'];\n\ttype?: Type<'edit'> | Taxonomy<'edit'>;\n\tname: string;\n\tclientId: string;\n}>;\n\nconst checkboxes: { [attr in keyof Partial<DisplayOptions>]: string } = {\n\t/* translators: Selected taxonomy single label */\n\tinclude_parent: __( 'Display highest level parent %s', 'advanced-sidebar-menu' ),\n\t/* translators: Selected taxonomy single label */\n\tinclude_childless_parent: __( 'Display menu when there is only the parent %s', 'advanced-sidebar-menu' ),\n\t/* translators: Selected taxonomy plural label */\n\tdisplay_all: __( 'Always display child %s', 'advanced-sidebar-menu' ),\n};\n\n/**\n * Display Options shared between widgets.\n *\n * 1. Display the highest level parent page.\n * 2. Display menu when there is only the parent page.\n * 3. Always display child pages.\n * 5. Display levels of child pages.\n *\n */\nconst Display = ( {\n\tattributes,\n\tsetAttributes,\n\ttype,\n\tname,\n\tclientId,\n\tchildren,\n}: Props ) => {\n\tconst showLevels = ( CONFIG.blocks.pages.id === name && '1' === CONFIG.isPro ) || true === attributes.display_all;\n\n\tconst fillProps: FillProps = {\n\t\ttype,\n\t\tattributes,\n\t\tname,\n\t\tsetAttributes,\n\t\tclientId,\n\t};\n\n\treturn (\n\t\t<PanelBody title={__( 'Display', 'advanced-sidebar-menu' )}>\n\t\t\t{Object.keys( checkboxes ).map( item => {\n\t\t\t\tlet label = type?.labels?.singular_name.toLowerCase() ?? '';\n\t\t\t\tif ( 'display_all' === item ) {\n\t\t\t\t\tlabel = type?.labels?.name.toLowerCase() ?? '';\n\t\t\t\t}\n\t\t\t\treturn <CheckboxControl\n\t\t\t\t\tkey={item}\n\t\t\t\t\t//eslint-disable-next-line @wordpress/valid-sprintf\n\t\t\t\t\tlabel={sprintf( checkboxes[ item ], label )}\n\t\t\t\t\tchecked={true === attributes[ item ]}\n\t\t\t\t\tonChange={checked => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t[ item ]: checked,\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{showLevels && <div className={'components-base-control'}>\n\t\t\t\t{/* translators: {select HTML input}, {post type plural label} */\n\t\t\t\t\treactStringReplace( __( 'Display %1$s levels of child %2$s', 'advanced-sidebar-menu' ).replace( '%2$s', type?.labels?.name.toLowerCase() ?? '' ), '%1$s',\n\t\t\t\t\t\t() => (\n\t\t\t\t\t\t\t<select\n\t\t\t\t\t\t\t\tkey={'levels'}\n\t\t\t\t\t\t\t\tclassName={'advanced-sidebar-menu-display-select'}\n\t\t\t\t\t\t\t\tvalue={attributes.levels}\n\t\t\t\t\t\t\t\tonChange={ev => setAttributes( {levels: parseInt( ev.target.value )} )}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<option value=\"100\">\n\t\t\t\t\t\t\t\t\t{__( '- All -', 'advanced-sidebar-menu' )}\n\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t{range( 1, 10 ).map( n => <option key={n} value={n}>\n\t\t\t\t\t\t\t\t\t{n}\n\t\t\t\t\t\t\t\t</option> )}\n\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t) )}\n\t\t\t</div>}\n\n\t\t\t{children}\n\n\t\t\t<ErrorBoundary attributes={attributes} block={name} section={'Display/slots'}>\n\t\t\t\t{CONFIG.blocks.pages.id === name &&\n\t\t\t\t\t<Slot<FillProps>\n\t\t\t\t\t\tname=\"advanced-sidebar-menu/pages/display\"\n\t\t\t\t\t\tfillProps={fillProps} />}\n\t\t\t\t{CONFIG.blocks.categories.id === name &&\n\t\t\t\t\t<Slot<FillProps>\n\t\t\t\t\t\tname=\"advanced-sidebar-menu/categories/display\"\n\t\t\t\t\t\tfillProps={fillProps} />}\n\t\t\t</ErrorBoundary>\n\n\t\t</PanelBody>\n\t);\n};\n\nexport default Display;\n","import {TextControl, withFilters} from '@wordpress/components';\nimport {__, sprintf} from '@wordpress/i18n';\nimport {Type} from '@wordpress/api/types';\nimport {Attr as PageAttr} from './pages/block';\nimport {Attr as CategoryAttr} from './categories/block';\nimport {BlockEditProps} from '@wordpress/blocks';\nimport {Taxonomy} from '@wordpress/api/taxonomies';\n\ntype Props = {\n\tattributes: PageAttr | CategoryAttr;\n\tsetAttributes: BlockEditProps<PageAttr | CategoryAttr>['setAttributes'];\n\ttype?: Type<'edit'> | Taxonomy<'edit'>;\n};\n\n/**\n * The Exclude field shared between widgets.\n *\n * Removed and replaced via filter by the PRO version.\n */\nconst ExcludeField = ( {type, attributes, setAttributes}: Props ) => {\n\tconst help = <span\n\t\tdangerouslySetInnerHTML={{ //phpcs:ignore\n\t\t\t__html: sprintf(\n\t\t\t\t/* translators: 1: Opening anchor tag, 2: Closing anchor tag */\n\t\t\t\t__( 'For more robust and intuitive exclusions use the %1$sPRO version%2$s.', 'advanced-sidebar-menu' ), '<a href=\"https://onpointplugins.com/advanced-sidebar-menu/advanced-sidebar-menu-pro-widget-docs/advanced-sidebar-menu-pro-excluding-menu-items/?utm_source=exclude-field&utm_campaign=gopro&utm_medium=wp-dash\" target=\"_blank\">', '</a>' ),\n\t\t}} />;\n\n\treturn (\n\t\t<TextControl\n\t\t\t/* translators: Selected post type plural label */\n\t\t\tlabel={sprintf( __( '%s to exclude (ids, comma separated)', 'advanced-sidebar-menu' ), type?.labels?.name ?? '' )}\n\t\t\tvalue={attributes.exclude}\n\t\t\thelp={help}\n\t\t\tonChange={value => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\texclude: value,\n\t\t\t\t} );\n\t\t\t}} />\n\t);\n};\n\nexport default withFilters<Props>( 'advanced-sidebar-menu.blocks.exclude-field' )( ExcludeField );\n","import {CONFIG} from '../../globals/config';\nimport {Button, PanelBody, withFilters} from '@wordpress/components';\nimport {InspectorControls} from '@wordpress/block-editor';\nimport {decodeEntities} from '@wordpress/html-entities';\nimport {__} from '@wordpress/i18n';\n\nimport styles from './info-panel.pcss';\n\ntype Props = {\n\tclientId: string;\n};\n\nconst titleStyles = {\n\tcolor: '#3db634',\n\tfontWeight: 700,\n};\n\nconst headingStyles = {\n\tmargin: '16px 0 0',\n\tfontSize: '1.2em',\n};\n\nconst InfoPanel = ( {}: Props ) => {\n\treturn ( <InspectorControls>\n\t\t<PanelBody\n\t\t\ttitle={<span style={titleStyles}>\n\t\t\t\t{__( 'Go PRO', 'advanced-sidebar-menu' )}\n\t\t\t</span>}\n\t\t\tclassName={styles.wrap}\n\t\t\tinitialOpen={false}\n\t\t>\n\t\t\t<h2 style={headingStyles}>\n\t\t\t\t{__( 'Advanced Sidebar Menu PRO', 'advanced-sidebar-menu' )}\n\t\t\t</h2>\n\t\t\t<ul>\n\t\t\t\t{CONFIG.features.map( feature => (\n\t\t\t\t\t<li key={feature}>\n\t\t\t\t\t\t{decodeEntities( feature )}\n\t\t\t\t\t</li>\n\t\t\t\t) )}\n\t\t\t\t<li>\n\t\t\t\t\t{__( 'And so much more…', 'advanced-sidebar-menu' )}\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t\t<Button\n\t\t\t\tclassName={styles.button}\n\t\t\t\thref={'https://onpointplugins.com/product/advanced-sidebar-menu-pro/?utm_source=block-upgrade&utm_campaign=gopro&utm_medium=wp-dash#buy-now-choices'}\n\t\t\t\ttarget={'_blank'}\n\t\t\t\trel={'noreferrer'}\n\t\t\t\tisPrimary\n\t\t\t>\n\t\t\t\t{__( 'Upgrade', 'advanced-sidebar-menu' )}\n\t\t\t</Button>\n\t\t</PanelBody>\n\t</InspectorControls> );\n};\n\nexport default withFilters<Props>( 'advanced-sidebar-menu.blocks.info-panel' )( InfoPanel );\n","import {ReactElement, useEffect} from 'react';\nimport {CONFIG} from '../../globals/config';\nimport ServerSideRender from '@wordpress/server-side-render';\nimport {Placeholder, Spinner} from '@wordpress/components';\nimport {useBlockProps} from '@wordpress/block-editor';\nimport {sanitize} from 'dompurify';\nimport {doAction} from '@wordpress/hooks';\nimport {__} from '@wordpress/i18n';\nimport {select} from '@wordpress/data';\nimport {isScreen} from '../helpers';\n\nimport styles from './preview.pcss';\n\n\nexport type PreviewOptions = {\n\tisServerSideRenderRequest: boolean;\n\tclientId: string;\n\tsidebarId: string;\n\tstyle?: object;\n}\n\ntype Props<A> = {\n\tattributes: A;\n\tblock: string;\n\tclientId: string;\n};\n\n/**\n * Same as the Dashicons `welcome-widgets-menus` icon but available inside\n * iframe editors which don't enqueue the Dashicons font.\n */\nconst ICON = <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n\t<rect x=\"0\" fill=\"none\" width=\"20\" height=\"20\" />\n\t<g>\n\t\t<path d=\"M19 16V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v13c0 .55.45 1 1 1h15c.55 0 1-.45 1-1zM4 4h13v4H4V4zm1 1v2h3V5H5zm4 0v2h3V5H9zm4 0v2h3V5h-3zm-8.5 5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zM6 10h4v1H6v-1zm6 0h5v5h-5v-5zm-7.5 2c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zM6 12h4v1H6v-1zm7 0v2h3v-2h-3zm-8.5 2c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zM6 14h4v1H6v-1z\" />\n\t</g>\n</svg>;\n\n/**\n * Sanitize a client id for use as an HTML id.\n *\n * Must not start with a `-` or a digit.\n *\n */\nexport const sanitizeClientId = ( clientId: string ): string => {\n\treturn clientId.replace( /^([\\d-])/, '_$1' );\n};\n\n/**\n * If we are in the widgets' area, the block is wrapped in\n * a \"sidebar\" block. We retrieve the id to pass along with\n * the request to use the `widget_args` within the preview.\n *\n */\nconst getSidebarId = ( clientId: string ): string => {\n\tif ( ! isScreen( [ 'widgets' ] ) ) {\n\t\treturn '';\n\t}\n\tconst rootId = select( 'core/block-editor' ).getBlockRootClientId( clientId );\n\tif ( 'undefined' !== typeof rootId && '' !== rootId ) {\n\t\tconst ParentBlock = select( 'core/block-editor' ).getBlocksByClientId( [ rootId ] );\n\t\tif ( null !== ParentBlock[ 0 ] && 'undefined' !== typeof ParentBlock[ 0 ] && 'core/widget-area' === ParentBlock[ 0 ]?.name ) {\n\t\t\treturn ParentBlock[ 0 ]?.attributes?.id;\n\t\t}\n\t}\n\n\treturn '';\n};\n\n/**\n * @notice Must use static constants, or the ServerSide requests\n *         will fire anytime something on the page is changed\n *         because the component re-renders.\n */\nconst Page = () => <Placeholder\n\tclassName={styles.placeholder}\n\ticon={ICON}\n\tlabel={__( 'Advanced Sidebar - Pages', 'advanced-sidebar-menu' )}\n\tinstructions={__( 'No preview available', 'advanced-sidebar-menu' )}\n/>;\n\nconst Category = () => <Placeholder\n\tclassName={styles.placeholder}\n\ticon={ICON}\n\tlabel={__( 'Advanced Sidebar - Categories', 'advanced-sidebar-menu' )}\n\tinstructions={__( 'No preview available', 'advanced-sidebar-menu' )}\n/>;\n\nconst Navigation = () => <Placeholder\n\tclassName={styles.placeholder}\n\ticon={ICON}\n\tlabel={__( 'Advanced Sidebar - Navigation', 'advanced-sidebar-menu' )}\n\tinstructions={__( 'No preview available', 'advanced-sidebar-menu' )}\n/>;\n\n/**\n * @notice The styles will not display for the preview\n *         in the block inserter sidebar when Webpack\n *         is enabled because the iframe has a late init.\n *\n */\nconst placeholder = ( block: string ): () => ReactElement => {\n\tswitch ( block ) {\n\t\tcase CONFIG.blocks.pages.id:\n\t\t\treturn Page;\n\t\tcase CONFIG.blocks.categories.id:\n\t\t\treturn Category;\n\t\tcase CONFIG.blocks.navigation?.id:\n\t\t\treturn Navigation;\n\t}\n\treturn () => <></>;\n};\n\n\n/**\n * Same as the `DefaultLoadingResponsePlaceholder` except we trigger\n * an action when the loading component is unmounted to allow\n * components to hook into when ServerSideRender has finished loading.\n *\n * @notice Using a constant to prevent a reload on every content change.\n *\n */\nconst TriggerWhenLoadingFinished = ( {\n\tchildren,\n\tattributes = {\n\t\tclientId: '',\n\t},\n} ) => {\n\tuseEffect( () => {\n\t\t// Call action when the loading component unmounts because loading is finished.\n\t\treturn () => {\n\t\t\t// Give the preview a chance to load on WP 5.8.\n\t\t\tsetTimeout( () => {\n\t\t\t\tdoAction( 'advanced-sidebar-menu.blocks.preview.loading-finished', {\n\t\t\t\t\tvalues: attributes,\n\t\t\t\t\tclientId: attributes.clientId,\n\t\t\t\t} );\n\t\t\t}, 100 );\n\t\t};\n\t} );\n\n\t/**\n\t * ServerSideRender returns a <RawHTML /> filled with an error object when fetch fails.\n\t *\n\t * We throw an error, so our `ErrorBoundary` will catch it, otherwise we end up\n\t * with a \"React objects may not be used as children\" error, which means nothing.\n\t */\n\tif ( 'string' === typeof children?.props?.children?.errorMsg ) {\n\t\tthrow new Error( children?.props?.children?.errorMsg ?? 'Failed' );\n\t}\n\n\treturn (\n\t\t<div className={styles.spinWrap}>\n\t\t\t<div className={styles.spin}>\n\t\t\t\t<Spinner />\n\t\t\t</div>\n\t\t\t<div className={styles.spinContent}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\n\nconst Preview = <A, >( {attributes, block, clientId}: Props<A> ) => {\n\tconst blockProps = useBlockProps();\n\n\tif ( '' !== CONFIG.error ) {\n\t\treturn <div\n\t\t\tclassName={styles.error}\n\t\t\tdangerouslySetInnerHTML={{__html: sanitize( CONFIG.error )}} />;\n\t}\n\n\n\tconst sanitizedClientId = sanitizeClientId( clientId );\n\n\t// Prevent styles from doubling up as they are already added via render in PHP.\n\tdelete blockProps.style;\n\n\treturn (\n\t\t// eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\t{...blockProps}\n\t\t\tonClick={ev => {\n\t\t\t\tconst element = ev.target as HTMLElement;\n\t\t\t\tif ( 'A' === element.nodeName ) {\n\t\t\t\t\tev.preventDefault();\n\t\t\t\t}\n\t\t\t}}\n\t\t>\n\t\t\t<ServerSideRender<A & PreviewOptions>\n\t\t\t\tEmptyResponsePlaceholder={placeholder( block )}\n\t\t\t\tLoadingResponsePlaceholder={TriggerWhenLoadingFinished}\n\t\t\t\tattributes={{\n\t\t\t\t\t...attributes,\n\t\t\t\t\t// Send custom attribute to determine server side renders.\n\t\t\t\t\tisServerSideRenderRequest: true,\n\t\t\t\t\tclientId: sanitizedClientId,\n\t\t\t\t\tsidebarId: getSidebarId( clientId ),\n\t\t\t\t}}\n\t\t\t\tblock={block}\n\t\t\t\thttpMethod={'POST'}\n\t\t\t/>\n\t\t</div>\n\t);\n};\n\nexport default Preview;\n","import {useSelect} from '@wordpress/data';\nimport {CONFIG} from '../../../globals/config';\nimport {sanitize} from 'dompurify';\nimport {BlockControls, InspectorControls} from '@wordpress/block-editor';\nimport Preview from '../Preview';\nimport {Attr, block} from './block';\nimport {Taxonomy} from '@wordpress/api/taxonomies';\nimport {BlockEditProps} from '@wordpress/blocks';\nimport ErrorBoundary from '../../../components/ErrorBoundary';\nimport Display from '../Display';\nimport {CheckboxControl, PanelBody, SelectControl, Slot, TextControl} from '@wordpress/components';\nimport {__, sprintf} from '@wordpress/i18n';\nimport InfoPanel from '../InfoPanel';\nimport SideLoad from '../../SideLoad';\nimport {isScreen} from '../../helpers';\n\nimport styles from '../pages/edit.pcss';\nimport ExcludeField from '../ExcludeField';\n\nexport type FillProps =\n\tPick<BlockEditProps<Attr>, 'clientId' | 'attributes' | 'setAttributes' | 'name'>\n\t& { type?: Taxonomy }\n\ntype Props = BlockEditProps<Attr>;\n\nconst Edit = ( {attributes, setAttributes, clientId, name}: Props ) => {\n\tconst taxonomy: Taxonomy<'edit'> | undefined = useSelect( select => {\n\t\tconst type = select( 'core' ).getTaxonomy( attributes.taxonomy ?? 'category' );\n\t\treturn type ?? select( 'core' ).getTaxonomy( 'category' );\n\t}, [ attributes.taxonomy ] );\n\n\t// We have a version conflict or license error.\n\tif ( '' !== CONFIG.error ) {\n\t\treturn ( <>\n\t\t\t<InspectorControls>\n\t\t\t\t<div\n\t\t\t\t\tclassName={styles.error}\n\t\t\t\t\tdangerouslySetInnerHTML={{__html: sanitize( CONFIG.error )}} />\n\t\t\t</InspectorControls>\n\t\t\t<Preview<Attr> attributes={attributes} block={block.id} clientId={clientId} />\n\t\t</> );\n\t}\n\n\tconst fillProps: FillProps = {\n\t\ttype: taxonomy,\n\t\tattributes,\n\t\tname,\n\t\tsetAttributes,\n\t\tclientId,\n\t};\n\n\treturn ( <>\n\t\t<InspectorControls>\n\t\t\t{isScreen( [ 'widgets', 'site-editor', 'customize' ] ) && <PanelBody>\n\t\t\t\t<TextControl\n\t\t\t\t\tvalue={attributes.title ?? ''}\n\t\t\t\t\tlabel={__( 'Title', 'advanced-sidebar-menu' )}\n\t\t\t\t\tonChange={title => setAttributes( {title} )} />\n\t\t\t</PanelBody>}\n\t\t\t<ErrorBoundary attributes={attributes} block={name} section={'categories/Edit/general'}>\n\t\t\t\t<Display\n\t\t\t\t\tattributes={attributes}\n\t\t\t\t\tclientId={clientId}\n\t\t\t\t\tname={name}\n\t\t\t\t\tsetAttributes={setAttributes}\n\t\t\t\t\ttype={taxonomy}\n\t\t\t\t>\n\t\t\t\t\t{/* Not offering \"Display categories on single posts\"\n\t\t                when editing a post because this must be true, or\n\t\t                the block won't display.\n\n\t\t                We default the attribute to `true` if we are editing\n\t\t                a post during register of block attributes. */}\n\t\t\t\t\t{isScreen( [ 'post' ] ) && <CheckboxControl\n\t\t\t\t\t\t/* translators: Selected taxonomy plural label */\n\t\t\t\t\t\tlabel={sprintf( __( 'Display %s on single posts', 'advanced-sidebar-menu' ), taxonomy?.labels?.name.toLowerCase() ?? '' )}\n\t\t\t\t\t\tchecked={attributes.single}\n\t\t\t\t\t\tonChange={value => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tsingle: 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{/*\n\t\t\t\t\t\t  Only widget screens support this option because we\n\t\t\t\t\t\t  have no widget wrap to use on other screens, so they are\n\t\t\t\t\t\t  list only. */}\n\t\t\t\t\t{isScreen( [ 'widgets', 'customize' ] ) && attributes.single &&\n\t\t\t\t\t\t<SelectControl<'list' | 'widget'>\n\t\t\t\t\t\t\t/* translators: Selected taxonomy single label */\n\t\t\t\t\t\t\tlabel={sprintf( __( 'Display each single post\\'s %s', 'advanced-sidebar-menu' ), taxonomy?.labels?.name.toLowerCase() ?? '' )}\n\t\t\t\t\t\t\tvalue={attributes.new_widget}\n\t\t\t\t\t\t\toptions={Object.keys( CONFIG.categories.displayEach ).map( ( key: 'list' | 'widget' ) => ( {\n\t\t\t\t\t\t\t\tvalue: key,\n\t\t\t\t\t\t\t\tlabel: CONFIG.categories.displayEach[ key ],\n\t\t\t\t\t\t\t} ) )}\n\t\t\t\t\t\t\t/* eslint-disable-next-line camelcase */\n\t\t\t\t\t\t\tonChange={new_widget => setAttributes( {new_widget} )}\n\t\t\t\t\t\t/>}\n\t\t\t\t</Display>\n\n\t\t\t\t<div className={'components-panel__body is-opened'}>\n\n\t\t\t\t\t<Slot<FillProps>\n\t\t\t\t\t\tname=\"advanced-sidebar-menu/categories/general\"\n\t\t\t\t\t\tfillProps={fillProps} />\n\n\t\t\t\t\t<ExcludeField\n\t\t\t\t\t\ttype={taxonomy}\n\t\t\t\t\t\tattributes={attributes}\n\t\t\t\t\t\tsetAttributes={setAttributes} />\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref={CONFIG.docs.category}\n\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{__( 'block documentation', 'advanced-sidebar-menu' )}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t</ErrorBoundary>\n\t\t\t<ErrorBoundary\n\t\t\t\tattributes={attributes}\n\t\t\t\tblock={name}\n\t\t\t\tsection={'categories/Edit/inspector'}\n\t\t\t>\n\t\t\t\t<Slot<FillProps>\n\t\t\t\t\tname=\"advanced-sidebar-menu/categories/inspector\"\n\t\t\t\t\tfillProps={fillProps} />\n\n\t\t\t</ErrorBoundary>\n\t\t</InspectorControls>\n\n\t\t<BlockControls>\n\t\t\t<ErrorBoundary\n\t\t\t\tattributes={attributes}\n\t\t\t\tblock={name}\n\t\t\t\tsection={'categories/Edit/block-controls'}\n\t\t\t>\n\t\t\t\t<Slot<FillProps>\n\t\t\t\t\tname=\"advanced-sidebar-menu/categories/block-controls\"\n\t\t\t\t\tfillProps={fillProps} />\n\t\t\t</ErrorBoundary>\n\t\t</BlockControls>\n\n\t\t<InfoPanel clientId={clientId} />\n\n\t\t<ErrorBoundary attributes={attributes} block={name} section={'categories/Edit/preview'}>\n\t\t\t<Preview<Attr> attributes={attributes} block={block.id} clientId={clientId} />\n\t\t</ErrorBoundary>\n\n\t\t<SideLoad clientId={clientId} />\n\t</> );\n};\n\nexport default Edit;\n","import {CONFIG} from '../../../globals/config';\nimport {BlockSettings, LegacyWidget} from '@wordpress/blocks';\nimport Edit from './Edit';\nimport {DisplayOptions} from '../Display';\nimport {transformLegacyWidget} from '../../helpers';\nimport {__} from '@wordpress/i18n';\n\n/**\n * Attributes specific to the widget as well as shared\n * widget attributes.\n *\n * @see \\Advanced_Sidebar_Menu\\Blocks\\Block_Abstract::get_all_attributes\n * @see \\Advanced_Sidebar_Menu\\Blocks\\Pages::get_attributes\n */\nexport type Attr = {\n\texclude: string;\n\tnew_widget: 'widget' | 'list';\n\tsingle: boolean;\n\ttitle?: string;\n} & DisplayOptions & ProRegistered;\n\n// Options used by basic when available from PRO.\ntype ProRegistered = {\n\ttaxonomy?: string;\n}\n\nexport type setAttributes = ( newValue: {\n\t[attribute in keyof Attr]?: Attr[attribute]\n} ) => void;\n\n/**\n * Attributes used for the example preview.\n * Combines some PRO and basic attributes.\n * The PRO attributes will only be sent if PRO is active.\n */\nconst EXAMPLE = {\n\t'display-posts': 'all',\n\t'display-posts/limit': 2,\n\tapply_current_page_parent_styles_to_parent: true,\n\tapply_current_page_styles_to_parent: true,\n\tblock_style: true,\n\tborder: true,\n\tborder_color: '#333',\n\tbullet_style: 'none',\n\tchild_page_bg_color: '#666',\n\tchild_page_color: '#fff',\n\tparent_page_bg_color: '#282828',\n\tparent_page_color: '#0cc4c6',\n\tparent_page_font_weight: 'normal',\n\tdisplay_all: true,\n\tgrandchild_page_bg_color: '#989898',\n\tgrandchild_page_color: '#282828',\n\tgrandchild_page_font_weight: 'bold',\n\tinclude_childless_parent: true,\n\tinclude_parent: true,\n\tlevels: 2,\n};\n\n\nexport const block = CONFIG.blocks.categories;\n\nexport const name = block.id;\n\nexport const settings: BlockSettings<Attr, '', LegacyWidget<Attr & { title: string }>> = {\n\ttitle: __( 'Advanced Sidebar - Categories', 'advanced-sidebar-menu' ),\n\ticon: 'welcome-widgets-menus',\n\tcategory: 'widgets',\n\texample: {\n\t\tattributes: EXAMPLE,\n\t},\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/legacy-widget' ],\n\t\t\t\tisMatch: ( {idBase, instance} ) => {\n\t\t\t\t\tif ( null === instance?.raw ) {\n\t\t\t\t\t\t// Can't transform if raw instance is not shown in REST API.\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn 'advanced_sidebar_menu_category' === idBase;\n\t\t\t\t},\n\t\t\t\ttransform: transformLegacyWidget<Attr>( name ),\n\t\t\t},\n\t\t],\n\t},\n\tattributes: block.attributes,\n\tsupports: block.supports,\n\tedit: props => (\n\t\t<Edit {...props} />\n\t),\n\tsave: () => null,\n\tapiVersion: 3,\n};\n","import {BlockControls, InspectorControls} from '@wordpress/block-editor';\nimport {PanelBody, SelectControl, Slot, TextControl} from '@wordpress/components';\nimport {BlockEditProps} from '@wordpress/blocks';\nimport {Attr, block} from './block';\nimport Preview from '../Preview';\nimport Display from '../Display';\nimport {useSelect} from '@wordpress/data';\nimport InfoPanel from '../InfoPanel';\nimport {CONFIG} from '../../../globals/config';\nimport {sanitize} from 'dompurify';\nimport {__} from '@wordpress/i18n';\nimport {Type} from '@wordpress/api/types';\nimport ErrorBoundary from '../../../components/ErrorBoundary';\nimport SideLoad from '../../SideLoad';\nimport {isScreen} from '../../helpers';\n\nimport styles from './edit.pcss';\nimport ExcludeField from '../ExcludeField';\n\n\nexport type FillProps =\n\tPick<BlockEditProps<Attr>, 'clientId' | 'attributes' | 'setAttributes' | 'name'>\n\t& { type?: Type }\n\ntype Props = BlockEditProps<Attr>;\n\n/**\n * Pages block content in the editor.\n */\nconst Edit = ( {attributes, setAttributes, clientId, name}: Props ) => {\n\tconst postType: Type<'edit'> | undefined = useSelect( select => {\n\t\tconst type = select( 'core' ).getPostType( attributes.post_type ?? 'page' );\n\t\treturn type ?? select( 'core' ).getPostType( 'page' );\n\t}, [ attributes.post_type ] );\n\n\t// We have a version conflict or license error.\n\tif ( '' !== CONFIG.error ) {\n\t\treturn ( <>\n\t\t\t<InspectorControls>\n\t\t\t\t<div\n\t\t\t\t\tclassName={styles.error}\n\t\t\t\t\tdangerouslySetInnerHTML={{__html: sanitize( CONFIG.error )}} />\n\t\t\t</InspectorControls>\n\t\t\t<Preview<Attr> attributes={attributes} block={block.id} clientId={clientId} />\n\t\t</> );\n\t}\n\n\tconst fillProps: FillProps = {\n\t\ttype: postType,\n\t\tattributes,\n\t\tname,\n\t\tsetAttributes,\n\t\tclientId,\n\t};\n\n\n\treturn ( <>\n\t\t<InspectorControls>\n\t\t\t{isScreen( [ 'widgets', 'site-editor', 'customize' ] ) && <PanelBody>\n\t\t\t\t<TextControl\n\t\t\t\t\tvalue={attributes.title ?? ''}\n\t\t\t\t\tlabel={__( 'Title', 'advanced-sidebar-menu' )}\n\t\t\t\t\tonChange={title => setAttributes( {title} )} />\n\t\t\t</PanelBody>}\n\t\t\t<ErrorBoundary attributes={attributes} block={name} section={'pages/Edit/general'}>\n\t\t\t\t<Display\n\t\t\t\t\tattributes={attributes}\n\t\t\t\t\tclientId={clientId}\n\t\t\t\t\tname={name}\n\t\t\t\t\tsetAttributes={setAttributes}\n\t\t\t\t\ttype={postType} />\n\n\t\t\t\t<div className={'components-panel__body is-opened'}>\n\n\t\t\t\t\t<Slot<FillProps>\n\t\t\t\t\t\tname=\"advanced-sidebar-menu/pages/general\"\n\t\t\t\t\t\tfillProps={fillProps} />\n\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={__( 'Order by', 'advanced-sidebar-menu' )}\n\t\t\t\t\t\tvalue={attributes.order_by}\n\t\t\t\t\t\tlabelPosition={'side'}\n\t\t\t\t\t\toptions={Object.entries( CONFIG.pages.orderBy ).map( ( [ value, label ] ) => ( {\n\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\tlabel,\n\t\t\t\t\t\t} ) )}\n\t\t\t\t\t\tonChange={value => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\torder_by: value,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}} />\n\n\t\t\t\t\t<ExcludeField\n\t\t\t\t\t\ttype={postType}\n\t\t\t\t\t\tattributes={attributes}\n\t\t\t\t\t\tsetAttributes={setAttributes} />\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref={CONFIG.docs.page}\n\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{__( 'block documentation', 'advanced-sidebar-menu' )}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t</ErrorBoundary>\n\t\t\t<ErrorBoundary attributes={attributes} block={name} section={'pages/Edit/inspector'}>\n\t\t\t\t<Slot<FillProps>\n\t\t\t\t\tname=\"advanced-sidebar-menu/pages/inspector\"\n\t\t\t\t\tfillProps={fillProps} />\n\n\t\t\t</ErrorBoundary>\n\t\t</InspectorControls>\n\n\t\t<BlockControls>\n\t\t\t<ErrorBoundary\n\t\t\t\tattributes={attributes}\n\t\t\t\tblock={name}\n\t\t\t\tsection={'pages/Edit/block-controls'}\n\t\t\t>\n\t\t\t\t<Slot<FillProps>\n\t\t\t\t\tname=\"advanced-sidebar-menu/pages/block-controls\"\n\t\t\t\t\tfillProps={fillProps} />\n\t\t\t</ErrorBoundary>\n\t\t</BlockControls>\n\n\t\t<InfoPanel clientId={clientId} />\n\n\t\t<ErrorBoundary attributes={attributes} block={name} section={'pages/Edit/preview'}>\n\t\t\t<Preview<Attr> attributes={attributes} block={block.id} clientId={clientId} />\n\t\t</ErrorBoundary>\n\n\t\t<SideLoad clientId={clientId} />\n\t</> );\n};\n\nexport default Edit;\n","import {BlockSettings, LegacyWidget} from '@wordpress/blocks';\nimport {CONFIG} from '../../../globals/config';\nimport Edit from './Edit';\nimport {DisplayOptions} from '../Display';\nimport {transformLegacyWidget} from '../../helpers';\nimport {__} from '@wordpress/i18n';\n\n/**\n * Attributes specific to the widget as well as shared\n * widget attributes.\n *\n * @see \\Advanced_Sidebar_Menu\\Blocks\\Block_Abstract::get_all_attributes\n * @see \\Advanced_Sidebar_Menu\\Blocks\\Pages::get_attributes\n */\nexport type Attr = {\n\texclude: string;\n\torder_by: string;\n\ttitle?: string;\n} & DisplayOptions & ProRegistered;\n\n// Options used by basic when available from PRO.\ntype ProRegistered = {\n\tpost_type?: string;\n}\n\nexport type setAttributes = ( newValue: {\n\t[attribute in keyof Attr]?: Attr[attribute]\n} ) => void;\n\n\n/**\n * Attributes used for the example preview.\n * Combines some PRO and basic attributes.\n * The PRO attributes will only be sent if PRO is active.\n */\nconst EXAMPLE = {\n\tapply_current_page_parent_styles_to_parent: true,\n\tapply_current_page_styles_to_parent: true,\n\tblock_style: true,\n\tborder: true,\n\tborder_color: '#333',\n\tbullet_style: 'none',\n\tchild_page_bg_color: '#666',\n\tchild_page_color: '#fff',\n\tcurrent_page_bg_color: '#282828',\n\tcurrent_page_color: '#0cc4c6',\n\tcurrent_page_font_weight: 'normal',\n\tcurrent_page_parent_bg_color: '#333',\n\tdisplay_all: true,\n\tgrandchild_page_bg_color: '#989898',\n\tgrandchild_page_color: '#282828',\n\tgrandchild_page_font_weight: 'bold',\n\tinclude_childless_parent: true,\n\tinclude_parent: true,\n\tlevels: 2,\n\tparent_page_bg_color: '#666',\n\tparent_page_color: '#fff',\n};\n\nexport const block = CONFIG.blocks.pages;\n\nexport const name = block.id;\n\nexport const settings: BlockSettings<Attr, '', LegacyWidget<Attr & { title: string }>> = {\n\ttitle: __( 'Advanced Sidebar - Pages', 'advanced-sidebar-menu' ),\n\ticon: 'welcome-widgets-menus',\n\tcategory: 'widgets',\n\texample: {\n\t\tattributes: EXAMPLE,\n\t},\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/legacy-widget' ],\n\t\t\t\tisMatch: ( {idBase, instance} ) => {\n\t\t\t\t\tif ( null === instance?.raw ) {\n\t\t\t\t\t\t// Can't transform if raw instance is not shown in REST API.\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn 'advanced_sidebar_menu' === idBase;\n\t\t\t\t},\n\t\t\t\ttransform: transformLegacyWidget<Attr>( name ),\n\t\t\t},\n\t\t],\n\t},\n\tattributes: block.attributes,\n\tsupports: block.supports,\n\tedit: props => (\n\t\t<Edit {...props} />\n\t),\n\tsave: () => null,\n\tapiVersion: 3,\n};\n","import {createBlock, CreateBlock} from '@wordpress/blocks';\nimport {CONFIG, Screen} from '../globals/config';\n\nexport type TransformLegacy = <Attr>( name: string ) => ( widgetValues: {\n\tinstance: { [ key: string ]: string | number | object | boolean }\n} ) => CreateBlock<Attr>;\n\n/**\n * Are we on one of the provided screens?\n */\nexport const isScreen = ( screens: Array<Screen> ): boolean => {\n\treturn screens.includes( CONFIG.currentScreen );\n};\n\n/**\n * Transform a legacy widget to the matching block.\n *\n */\nexport const transformLegacyWidget: TransformLegacy = <A>( name: string ) => ( {instance} ) => {\n\treturn createBlock<A>( name, translateLegacyWidget<A>( instance.raw ) );\n};\n\n/**\n * Translate the widget's \"checked\" to the boolean\n * version used in the block.\n *\n */\nconst translateLegacyWidget = <A>( settings ): A => {\n\tObject.entries( settings ).forEach( ( [ key, value ] ) => {\n\t\tif ( 'checked' === value ) {\n\t\t\tsettings[ key ] = true;\n\t\t}\n\t\tif ( 'object' === typeof value ) {\n\t\t\ttranslateLegacyWidget( settings[ key ] );\n\t\t}\n\t\t// Old widgets used to use \"0\" for some defaults.\n\t\tif ( '0' === value ) {\n\t\t\tdelete settings[ key ];\n\t\t}\n\t} );\n\treturn settings;\n};\n","import {autoloadBlocks} from '@lipemat/js-boilerplate-gutenberg';\nimport Preview from './blocks/Preview';\nimport {transformLegacyWidget} from './helpers';\nimport ErrorBoundary from '../components/ErrorBoundary';\n\n/**\n * Use our custom autoloader to automatically require,\n * register and add HMR support to Gutenberg related items.\n *\n * Will load from specified directory recursively.\n */\nexport default () => {\n\t// Load all blocks\n\tautoloadBlocks( () => require.context( './blocks', true, /block\\.tsx$/ ), module );\n\n\t// Expose helpers and Preview component to window, so we can use them in PRO.\n\twindow.ADVANCED_SIDEBAR_MENU.ErrorBoundary = ErrorBoundary;\n\twindow.ADVANCED_SIDEBAR_MENU.Preview = Preview;\n\twindow.ADVANCED_SIDEBAR_MENU.transformLegacyWidget = transformLegacyWidget;\n}\n","import {createRoot} from 'react-dom/client';\nimport TransformNotice, {DISMISS_KEY} from '../components/TransformNotice';\nimport {CONFIG} from '../globals/config';\n\n\nfunction renderTransformNotice() {\n\t// Only render on the block based widgets screen.\n\tif ( CONFIG.siteInfo.classicWidgets ) {\n\t\treturn;\n\t}\n\t// Don't render if the user has dismissed the notice.\n\tif ( '1' === localStorage.getItem( DISMISS_KEY ) ) {\n\t\treturn;\n\t}\n\tconst placeholders = document.querySelectorAll( '[data-js=\"advanced-sidebar-menu/transform-notice\"]' );\n\n\t/**\n\t * This is not a priority component, so it anything fails\n\t * we fail silently.\n\t */\n\ttry {\n\t\tplaceholders.forEach( placeholder => {\n\t\t\tconst root = createRoot( placeholder );\n\t\t\troot.render( <TransformNotice /> );\n\t\t} );\n\t} catch ( e ) {\n\t\tconsole.error( e );\n\t}\n}\n\n\n/**\n * Modern JS for legacy widgets on the widgets screen.\n *\n * @see resources/js/advanced-sidebar-menu.js for the legacy JS.\n */\nexport default () => {\n\t// Only load on the widgets screen.\n\tif ( '1' !== CONFIG.isWidgets ) {\n\t\treturn;\n\t}\n\t// Fire when each widget loads.\n\tjQuery( document ).on( 'widget-added', function() {\n\t\trenderTransformNotice();\n\t} );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"transform-notice__wrap__mq\"};","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"info-panel__wrap__k_\",\"button\":\"info-panel__button__Fg\"};","// extracted by mini-css-extract-plugin\nexport default {\"error\":\"edit__error__lZ\"};","// extracted by mini-css-extract-plugin\nexport default {\"placeholder\":\"preview__placeholder__HI\",\"error\":\"preview__error__Nl\",\"spin-wrap\":\"preview__spin-wrap__o0\",\"spinWrap\":\"preview__spin-wrap__o0\",\"spin\":\"preview__spin__Oj\",\"spin-content\":\"preview__spin-content__uC\",\"spinContent\":\"preview__spin-content__uC\"};","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n  exports.createRoot = m.createRoot;\n  exports.hydrateRoot = m.hydrateRoot;\n} else {\n  var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n  exports.createRoot = function(c, o) {\n    i.usingClientEntryPoint = true;\n    try {\n      return m.createRoot(c, o);\n    } finally {\n      i.usingClientEntryPoint = false;\n    }\n  };\n  exports.hydrateRoot = function(c, h, o) {\n    i.usingClientEntryPoint = true;\n    try {\n      return m.hydrateRoot(c, h, o);\n    } finally {\n      i.usingClientEntryPoint = false;\n    }\n  };\n}\n","/*! @license DOMPurify 3.1.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.6/LICENSE */\n\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n  typeof define === 'function' && define.amd ? define(factory) :\n  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.DOMPurify = factory());\n})(this, (function () { 'use strict';\n\n  const {\n    entries,\n    setPrototypeOf,\n    isFrozen,\n    getPrototypeOf,\n    getOwnPropertyDescriptor\n  } = Object;\n  let {\n    freeze,\n    seal,\n    create\n  } = Object; // eslint-disable-line import/no-mutable-exports\n  let {\n    apply,\n    construct\n  } = typeof Reflect !== 'undefined' && Reflect;\n  if (!freeze) {\n    freeze = function freeze(x) {\n      return x;\n    };\n  }\n  if (!seal) {\n    seal = function seal(x) {\n      return x;\n    };\n  }\n  if (!apply) {\n    apply = function apply(fun, thisValue, args) {\n      return fun.apply(thisValue, args);\n    };\n  }\n  if (!construct) {\n    construct = function construct(Func, args) {\n      return new Func(...args);\n    };\n  }\n  const arrayForEach = unapply(Array.prototype.forEach);\n  const arrayPop = unapply(Array.prototype.pop);\n  const arrayPush = unapply(Array.prototype.push);\n  const stringToLowerCase = unapply(String.prototype.toLowerCase);\n  const stringToString = unapply(String.prototype.toString);\n  const stringMatch = unapply(String.prototype.match);\n  const stringReplace = unapply(String.prototype.replace);\n  const stringIndexOf = unapply(String.prototype.indexOf);\n  const stringTrim = unapply(String.prototype.trim);\n  const objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\n  const regExpTest = unapply(RegExp.prototype.test);\n  const typeErrorCreate = unconstruct(TypeError);\n\n  /**\n   * Creates a new function that calls the given function with a specified thisArg and arguments.\n   *\n   * @param {Function} func - The function to be wrapped and called.\n   * @returns {Function} A new function that calls the given function with a specified thisArg and arguments.\n   */\n  function unapply(func) {\n    return function (thisArg) {\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n      return apply(func, thisArg, args);\n    };\n  }\n\n  /**\n   * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n   *\n   * @param {Function} func - The constructor function to be wrapped and called.\n   * @returns {Function} A new function that constructs an instance of the given constructor function with the provided arguments.\n   */\n  function unconstruct(func) {\n    return function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      return construct(func, args);\n    };\n  }\n\n  /**\n   * Add properties to a lookup table\n   *\n   * @param {Object} set - The set to which elements will be added.\n   * @param {Array} array - The array containing elements to be added to the set.\n   * @param {Function} transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n   * @returns {Object} The modified set with added elements.\n   */\n  function addToSet(set, array) {\n    let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n    if (setPrototypeOf) {\n      // Make 'in' and truthy checks like Boolean(set.constructor)\n      // independent of any properties defined on Object.prototype.\n      // Prevent prototype setters from intercepting set as a this value.\n      setPrototypeOf(set, null);\n    }\n    let l = array.length;\n    while (l--) {\n      let element = array[l];\n      if (typeof element === 'string') {\n        const lcElement = transformCaseFunc(element);\n        if (lcElement !== element) {\n          // Config presets (e.g. tags.js, attrs.js) are immutable.\n          if (!isFrozen(array)) {\n            array[l] = lcElement;\n          }\n          element = lcElement;\n        }\n      }\n      set[element] = true;\n    }\n    return set;\n  }\n\n  /**\n   * Clean up an array to harden against CSPP\n   *\n   * @param {Array} array - The array to be cleaned.\n   * @returns {Array} The cleaned version of the array\n   */\n  function cleanArray(array) {\n    for (let index = 0; index < array.length; index++) {\n      const isPropertyExist = objectHasOwnProperty(array, index);\n      if (!isPropertyExist) {\n        array[index] = null;\n      }\n    }\n    return array;\n  }\n\n  /**\n   * Shallow clone an object\n   *\n   * @param {Object} object - The object to be cloned.\n   * @returns {Object} A new object that copies the original.\n   */\n  function clone(object) {\n    const newObject = create(null);\n    for (const [property, value] of entries(object)) {\n      const isPropertyExist = objectHasOwnProperty(object, property);\n      if (isPropertyExist) {\n        if (Array.isArray(value)) {\n          newObject[property] = cleanArray(value);\n        } else if (value && typeof value === 'object' && value.constructor === Object) {\n          newObject[property] = clone(value);\n        } else {\n          newObject[property] = value;\n        }\n      }\n    }\n    return newObject;\n  }\n\n  /**\n   * This method automatically checks if the prop is function or getter and behaves accordingly.\n   *\n   * @param {Object} object - The object to look up the getter function in its prototype chain.\n   * @param {String} prop - The property name for which to find the getter function.\n   * @returns {Function} The getter function found in the prototype chain or a fallback function.\n   */\n  function lookupGetter(object, prop) {\n    while (object !== null) {\n      const desc = getOwnPropertyDescriptor(object, prop);\n      if (desc) {\n        if (desc.get) {\n          return unapply(desc.get);\n        }\n        if (typeof desc.value === 'function') {\n          return unapply(desc.value);\n        }\n      }\n      object = getPrototypeOf(object);\n    }\n    function fallbackValue() {\n      return null;\n    }\n    return fallbackValue;\n  }\n\n  const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n  // SVG\n  const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n  const svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\n  // List of SVG elements that are disallowed by default.\n  // We still need to know them so that we can do namespace\n  // checks properly in case one wants to add them to\n  // allow-list.\n  const svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n  const mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n\n  // Similarly to SVG, we want to know all MathML elements,\n  // even those that we disallow by default.\n  const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n  const text = freeze(['#text']);\n\n  const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);\n  const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n  const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n  const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n  // eslint-disable-next-line unicorn/better-regex\n  const MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n  const ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\n  const TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\n  const DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n  const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n  const IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n  );\n  const IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n  const ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n  );\n  const DOCTYPE_NAME = seal(/^html$/i);\n  const CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\n  var EXPRESSIONS = /*#__PURE__*/Object.freeze({\n    __proto__: null,\n    MUSTACHE_EXPR: MUSTACHE_EXPR,\n    ERB_EXPR: ERB_EXPR,\n    TMPLIT_EXPR: TMPLIT_EXPR,\n    DATA_ATTR: DATA_ATTR,\n    ARIA_ATTR: ARIA_ATTR,\n    IS_ALLOWED_URI: IS_ALLOWED_URI,\n    IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n    ATTR_WHITESPACE: ATTR_WHITESPACE,\n    DOCTYPE_NAME: DOCTYPE_NAME,\n    CUSTOM_ELEMENT: CUSTOM_ELEMENT\n  });\n\n  // https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n  const NODE_TYPE = {\n    element: 1,\n    attribute: 2,\n    text: 3,\n    cdataSection: 4,\n    entityReference: 5,\n    // Deprecated\n    entityNode: 6,\n    // Deprecated\n    progressingInstruction: 7,\n    comment: 8,\n    document: 9,\n    documentType: 10,\n    documentFragment: 11,\n    notation: 12 // Deprecated\n  };\n  const getGlobal = function getGlobal() {\n    return typeof window === 'undefined' ? null : window;\n  };\n\n  /**\n   * Creates a no-op policy for internal use only.\n   * Don't export this function outside this module!\n   * @param {TrustedTypePolicyFactory} trustedTypes The policy factory.\n   * @param {HTMLScriptElement} purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n   * @return {TrustedTypePolicy} The policy created (or null, if Trusted Types\n   * are not supported or creating the policy failed).\n   */\n  const _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n    if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n      return null;\n    }\n\n    // Allow the callers to control the unique policy name\n    // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n    // Policy creation with duplicate names throws in Trusted Types.\n    let suffix = null;\n    const ATTR_NAME = 'data-tt-policy-suffix';\n    if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n      suffix = purifyHostElement.getAttribute(ATTR_NAME);\n    }\n    const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n    try {\n      return trustedTypes.createPolicy(policyName, {\n        createHTML(html) {\n          return html;\n        },\n        createScriptURL(scriptUrl) {\n          return scriptUrl;\n        }\n      });\n    } catch (_) {\n      // Policy creation failed (most likely another DOMPurify script has\n      // already run). Skip creating the policy, as this will only cause errors\n      // if TT are enforced.\n      console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n      return null;\n    }\n  };\n  function createDOMPurify() {\n    let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n    const DOMPurify = root => createDOMPurify(root);\n\n    /**\n     * Version label, exposed for easier checks\n     * if DOMPurify is up to date or not\n     */\n    DOMPurify.version = '3.1.6';\n\n    /**\n     * Array of elements that DOMPurify removed during sanitation.\n     * Empty if nothing was removed.\n     */\n    DOMPurify.removed = [];\n    if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document) {\n      // Not running in a browser, provide a factory function\n      // so that you can pass your own Window\n      DOMPurify.isSupported = false;\n      return DOMPurify;\n    }\n    let {\n      document\n    } = window;\n    const originalDocument = document;\n    const currentScript = originalDocument.currentScript;\n    const {\n      DocumentFragment,\n      HTMLTemplateElement,\n      Node,\n      Element,\n      NodeFilter,\n      NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n      HTMLFormElement,\n      DOMParser,\n      trustedTypes\n    } = window;\n    const ElementPrototype = Element.prototype;\n    const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n    const remove = lookupGetter(ElementPrototype, 'remove');\n    const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n    const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n    const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n    // As per issue #47, the web-components registry is inherited by a\n    // new document created via createHTMLDocument. As per the spec\n    // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n    // a new empty registry is used when creating a template contents owner\n    // document, so we use that as our parent document to ensure nothing\n    // is inherited.\n    if (typeof HTMLTemplateElement === 'function') {\n      const template = document.createElement('template');\n      if (template.content && template.content.ownerDocument) {\n        document = template.content.ownerDocument;\n      }\n    }\n    let trustedTypesPolicy;\n    let emptyHTML = '';\n    const {\n      implementation,\n      createNodeIterator,\n      createDocumentFragment,\n      getElementsByTagName\n    } = document;\n    const {\n      importNode\n    } = originalDocument;\n    let hooks = {};\n\n    /**\n     * Expose whether this browser supports running the full DOMPurify.\n     */\n    DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n    const {\n      MUSTACHE_EXPR,\n      ERB_EXPR,\n      TMPLIT_EXPR,\n      DATA_ATTR,\n      ARIA_ATTR,\n      IS_SCRIPT_OR_DATA,\n      ATTR_WHITESPACE,\n      CUSTOM_ELEMENT\n    } = EXPRESSIONS;\n    let {\n      IS_ALLOWED_URI: IS_ALLOWED_URI$1\n    } = EXPRESSIONS;\n\n    /**\n     * We consider the elements and attributes below to be safe. Ideally\n     * don't add any new ones but feel free to remove unwanted ones.\n     */\n\n    /* allowed element names */\n    let ALLOWED_TAGS = null;\n    const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n\n    /* Allowed attribute names */\n    let ALLOWED_ATTR = null;\n    const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n\n    /*\n     * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n     * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n     * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n     * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n     */\n    let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n      tagNameCheck: {\n        writable: true,\n        configurable: false,\n        enumerable: true,\n        value: null\n      },\n      attributeNameCheck: {\n        writable: true,\n        configurable: false,\n        enumerable: true,\n        value: null\n      },\n      allowCustomizedBuiltInElements: {\n        writable: true,\n        configurable: false,\n        enumerable: true,\n        value: false\n      }\n    }));\n\n    /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n    let FORBID_TAGS = null;\n\n    /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n    let FORBID_ATTR = null;\n\n    /* Decide if ARIA attributes are okay */\n    let ALLOW_ARIA_ATTR = true;\n\n    /* Decide if custom data attributes are okay */\n    let ALLOW_DATA_ATTR = true;\n\n    /* Decide if unknown protocols are okay */\n    let ALLOW_UNKNOWN_PROTOCOLS = false;\n\n    /* Decide if self-closing tags in attributes are allowed.\n     * Usually removed due to a mXSS issue in jQuery 3.0 */\n    let ALLOW_SELF_CLOSE_IN_ATTR = true;\n\n    /* Output should be safe for common template engines.\n     * This means, DOMPurify removes data attributes, mustaches and ERB\n     */\n    let SAFE_FOR_TEMPLATES = false;\n\n    /* Output should be safe even for XML used within HTML and alike.\n     * This means, DOMPurify removes comments when containing risky content.\n     */\n    let SAFE_FOR_XML = true;\n\n    /* Decide if document with <html>... should be returned */\n    let WHOLE_DOCUMENT = false;\n\n    /* Track whether config is already set on this instance of DOMPurify. */\n    let SET_CONFIG = false;\n\n    /* Decide if all elements (e.g. style, script) must be children of\n     * document.body. By default, browsers might move them to document.head */\n    let FORCE_BODY = false;\n\n    /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n     * string (or a TrustedHTML object if Trusted Types are supported).\n     * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n     */\n    let RETURN_DOM = false;\n\n    /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n     * string  (or a TrustedHTML object if Trusted Types are supported) */\n    let RETURN_DOM_FRAGMENT = false;\n\n    /* Try to return a Trusted Type object instead of a string, return a string in\n     * case Trusted Types are not supported  */\n    let RETURN_TRUSTED_TYPE = false;\n\n    /* Output should be free from DOM clobbering attacks?\n     * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n     */\n    let SANITIZE_DOM = true;\n\n    /* Achieve full DOM Clobbering protection by isolating the namespace of named\n     * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n     *\n     * HTML/DOM spec rules that enable DOM Clobbering:\n     *   - Named Access on Window (§7.3.3)\n     *   - DOM Tree Accessors (§3.1.5)\n     *   - Form Element Parent-Child Relations (§4.10.3)\n     *   - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n     *   - HTMLCollection (§4.2.10.2)\n     *\n     * Namespace isolation is implemented by prefixing `id` and `name` attributes\n     * with a constant string, i.e., `user-content-`\n     */\n    let SANITIZE_NAMED_PROPS = false;\n    const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n\n    /* Keep element content when removing element? */\n    let KEEP_CONTENT = true;\n\n    /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n     * of importing it into a new Document and returning a sanitized copy */\n    let IN_PLACE = false;\n\n    /* Allow usage of profiles like html, svg and mathMl */\n    let USE_PROFILES = {};\n\n    /* Tags to ignore content of when KEEP_CONTENT is true */\n    let FORBID_CONTENTS = null;\n    const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n\n    /* Tags that are safe for data: URIs */\n    let DATA_URI_TAGS = null;\n    const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n\n    /* Attributes safe for values like \"javascript:\" */\n    let URI_SAFE_ATTRIBUTES = null;\n    const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n    const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n    const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n    const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n    /* Document namespace */\n    let NAMESPACE = HTML_NAMESPACE;\n    let IS_EMPTY_INPUT = false;\n\n    /* Allowed XHTML+XML namespaces */\n    let ALLOWED_NAMESPACES = null;\n    const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n\n    /* Parsing of strict XHTML documents */\n    let PARSER_MEDIA_TYPE = null;\n    const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n    const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n    let transformCaseFunc = null;\n\n    /* Keep a reference to config to pass to hooks */\n    let CONFIG = null;\n\n    /* Ideally, do not touch anything below this line */\n    /* ______________________________________________ */\n\n    const formElement = document.createElement('form');\n    const isRegexOrFunction = function isRegexOrFunction(testValue) {\n      return testValue instanceof RegExp || testValue instanceof Function;\n    };\n\n    /**\n     * _parseConfig\n     *\n     * @param  {Object} cfg optional config literal\n     */\n    // eslint-disable-next-line complexity\n    const _parseConfig = function _parseConfig() {\n      let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      if (CONFIG && CONFIG === cfg) {\n        return;\n      }\n\n      /* Shield configuration object from tampering */\n      if (!cfg || typeof cfg !== 'object') {\n        cfg = {};\n      }\n\n      /* Shield configuration object from prototype pollution */\n      cfg = clone(cfg);\n      PARSER_MEDIA_TYPE =\n      // eslint-disable-next-line unicorn/prefer-includes\n      SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n\n      // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n      transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n\n      /* Set configuration parameters */\n      ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n      ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n      ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n      URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES),\n      // eslint-disable-line indent\n      cfg.ADD_URI_SAFE_ATTR,\n      // eslint-disable-line indent\n      transformCaseFunc // eslint-disable-line indent\n      ) // eslint-disable-line indent\n      : DEFAULT_URI_SAFE_ATTRIBUTES;\n      DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS),\n      // eslint-disable-line indent\n      cfg.ADD_DATA_URI_TAGS,\n      // eslint-disable-line indent\n      transformCaseFunc // eslint-disable-line indent\n      ) // eslint-disable-line indent\n      : DEFAULT_DATA_URI_TAGS;\n      FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n      FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n      FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n      USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;\n      ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n      ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n      ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n      ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n      SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n      SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n      WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n      RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n      RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n      RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n      FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n      SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n      SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n      KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n      IN_PLACE = cfg.IN_PLACE || false; // Default false\n      IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n      NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n      CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n      if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n        CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n      }\n      if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n        CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n      }\n      if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n        CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n      }\n      if (SAFE_FOR_TEMPLATES) {\n        ALLOW_DATA_ATTR = false;\n      }\n      if (RETURN_DOM_FRAGMENT) {\n        RETURN_DOM = true;\n      }\n\n      /* Parse profile info */\n      if (USE_PROFILES) {\n        ALLOWED_TAGS = addToSet({}, text);\n        ALLOWED_ATTR = [];\n        if (USE_PROFILES.html === true) {\n          addToSet(ALLOWED_TAGS, html$1);\n          addToSet(ALLOWED_ATTR, html);\n        }\n        if (USE_PROFILES.svg === true) {\n          addToSet(ALLOWED_TAGS, svg$1);\n          addToSet(ALLOWED_ATTR, svg);\n          addToSet(ALLOWED_ATTR, xml);\n        }\n        if (USE_PROFILES.svgFilters === true) {\n          addToSet(ALLOWED_TAGS, svgFilters);\n          addToSet(ALLOWED_ATTR, svg);\n          addToSet(ALLOWED_ATTR, xml);\n        }\n        if (USE_PROFILES.mathMl === true) {\n          addToSet(ALLOWED_TAGS, mathMl$1);\n          addToSet(ALLOWED_ATTR, mathMl);\n          addToSet(ALLOWED_ATTR, xml);\n        }\n      }\n\n      /* Merge configuration parameters */\n      if (cfg.ADD_TAGS) {\n        if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n          ALLOWED_TAGS = clone(ALLOWED_TAGS);\n        }\n        addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n      }\n      if (cfg.ADD_ATTR) {\n        if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n          ALLOWED_ATTR = clone(ALLOWED_ATTR);\n        }\n        addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n      }\n      if (cfg.ADD_URI_SAFE_ATTR) {\n        addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n      }\n      if (cfg.FORBID_CONTENTS) {\n        if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n          FORBID_CONTENTS = clone(FORBID_CONTENTS);\n        }\n        addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n      }\n\n      /* Add #text in case KEEP_CONTENT is set to true */\n      if (KEEP_CONTENT) {\n        ALLOWED_TAGS['#text'] = true;\n      }\n\n      /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n      if (WHOLE_DOCUMENT) {\n        addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n      }\n\n      /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n      if (ALLOWED_TAGS.table) {\n        addToSet(ALLOWED_TAGS, ['tbody']);\n        delete FORBID_TAGS.tbody;\n      }\n      if (cfg.TRUSTED_TYPES_POLICY) {\n        if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n          throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n        }\n        if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n          throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n        }\n\n        // Overwrite existing TrustedTypes policy.\n        trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n\n        // Sign local variables required by `sanitize`.\n        emptyHTML = trustedTypesPolicy.createHTML('');\n      } else {\n        // Uninitialized policy, attempt to initialize the internal dompurify policy.\n        if (trustedTypesPolicy === undefined) {\n          trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n        }\n\n        // If creating the internal policy succeeded sign internal variables.\n        if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n          emptyHTML = trustedTypesPolicy.createHTML('');\n        }\n      }\n\n      // Prevent further manipulation of configuration.\n      // Not available in IE8, Safari 5, etc.\n      if (freeze) {\n        freeze(cfg);\n      }\n      CONFIG = cfg;\n    };\n    const MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n    const HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'annotation-xml']);\n\n    // Certain elements are allowed in both SVG and HTML\n    // namespace. We need to specify them explicitly\n    // so that they don't get erroneously deleted from\n    // HTML namespace.\n    const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n\n    /* Keep track of all possible SVG and MathML tags\n     * so that we can perform the namespace checks\n     * correctly. */\n    const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n    const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n\n    /**\n     * @param  {Element} element a DOM element whose namespace is being checked\n     * @returns {boolean} Return false if the element has a\n     *  namespace that a spec-compliant parser would never\n     *  return. Return true otherwise.\n     */\n    const _checkValidNamespace = function _checkValidNamespace(element) {\n      let parent = getParentNode(element);\n\n      // In JSDOM, if we're inside shadow DOM, then parentNode\n      // can be null. We just simulate parent in this case.\n      if (!parent || !parent.tagName) {\n        parent = {\n          namespaceURI: NAMESPACE,\n          tagName: 'template'\n        };\n      }\n      const tagName = stringToLowerCase(element.tagName);\n      const parentTagName = stringToLowerCase(parent.tagName);\n      if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n        return false;\n      }\n      if (element.namespaceURI === SVG_NAMESPACE) {\n        // The only way to switch from HTML namespace to SVG\n        // is via <svg>. If it happens via any other tag, then\n        // it should be killed.\n        if (parent.namespaceURI === HTML_NAMESPACE) {\n          return tagName === 'svg';\n        }\n\n        // The only way to switch from MathML to SVG is via`\n        // svg if parent is either <annotation-xml> or MathML\n        // text integration points.\n        if (parent.namespaceURI === MATHML_NAMESPACE) {\n          return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n        }\n\n        // We only allow elements that are defined in SVG\n        // spec. All others are disallowed in SVG namespace.\n        return Boolean(ALL_SVG_TAGS[tagName]);\n      }\n      if (element.namespaceURI === MATHML_NAMESPACE) {\n        // The only way to switch from HTML namespace to MathML\n        // is via <math>. If it happens via any other tag, then\n        // it should be killed.\n        if (parent.namespaceURI === HTML_NAMESPACE) {\n          return tagName === 'math';\n        }\n\n        // The only way to switch from SVG to MathML is via\n        // <math> and HTML integration points\n        if (parent.namespaceURI === SVG_NAMESPACE) {\n          return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n        }\n\n        // We only allow elements that are defined in MathML\n        // spec. All others are disallowed in MathML namespace.\n        return Boolean(ALL_MATHML_TAGS[tagName]);\n      }\n      if (element.namespaceURI === HTML_NAMESPACE) {\n        // The only way to switch from SVG to HTML is via\n        // HTML integration points, and from MathML to HTML\n        // is via MathML text integration points\n        if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n          return false;\n        }\n        if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n          return false;\n        }\n\n        // We disallow tags that are specific for MathML\n        // or SVG and should never appear in HTML namespace\n        return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n      }\n\n      // For XHTML and XML documents that support custom namespaces\n      if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n        return true;\n      }\n\n      // The code should never reach this place (this means\n      // that the element somehow got namespace that is not\n      // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n      // Return false just in case.\n      return false;\n    };\n\n    /**\n     * _forceRemove\n     *\n     * @param  {Node} node a DOM node\n     */\n    const _forceRemove = function _forceRemove(node) {\n      arrayPush(DOMPurify.removed, {\n        element: node\n      });\n      try {\n        // eslint-disable-next-line unicorn/prefer-dom-node-remove\n        getParentNode(node).removeChild(node);\n      } catch (_) {\n        remove(node);\n      }\n    };\n\n    /**\n     * _removeAttribute\n     *\n     * @param  {String} name an Attribute name\n     * @param  {Node} node a DOM node\n     */\n    const _removeAttribute = function _removeAttribute(name, node) {\n      try {\n        arrayPush(DOMPurify.removed, {\n          attribute: node.getAttributeNode(name),\n          from: node\n        });\n      } catch (_) {\n        arrayPush(DOMPurify.removed, {\n          attribute: null,\n          from: node\n        });\n      }\n      node.removeAttribute(name);\n\n      // We void attribute values for unremovable \"is\"\" attributes\n      if (name === 'is' && !ALLOWED_ATTR[name]) {\n        if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n          try {\n            _forceRemove(node);\n          } catch (_) {}\n        } else {\n          try {\n            node.setAttribute(name, '');\n          } catch (_) {}\n        }\n      }\n    };\n\n    /**\n     * _initDocument\n     *\n     * @param  {String} dirty a string of dirty markup\n     * @return {Document} a DOM, filled with the dirty markup\n     */\n    const _initDocument = function _initDocument(dirty) {\n      /* Create a HTML document */\n      let doc = null;\n      let leadingWhitespace = null;\n      if (FORCE_BODY) {\n        dirty = '<remove></remove>' + dirty;\n      } else {\n        /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n        const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n        leadingWhitespace = matches && matches[0];\n      }\n      if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n        // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n        dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n      }\n      const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n      /*\n       * Use the DOMParser API by default, fallback later if needs be\n       * DOMParser not work for svg when has multiple root element.\n       */\n      if (NAMESPACE === HTML_NAMESPACE) {\n        try {\n          doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n        } catch (_) {}\n      }\n\n      /* Use createHTMLDocument in case DOMParser is not available */\n      if (!doc || !doc.documentElement) {\n        doc = implementation.createDocument(NAMESPACE, 'template', null);\n        try {\n          doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n        } catch (_) {\n          // Syntax error if dirtyPayload is invalid xml\n        }\n      }\n      const body = doc.body || doc.documentElement;\n      if (dirty && leadingWhitespace) {\n        body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n      }\n\n      /* Work on whole document or just its body */\n      if (NAMESPACE === HTML_NAMESPACE) {\n        return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n      }\n      return WHOLE_DOCUMENT ? doc.documentElement : body;\n    };\n\n    /**\n     * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n     *\n     * @param  {Node} root The root element or node to start traversing on.\n     * @return {NodeIterator} The created NodeIterator\n     */\n    const _createNodeIterator = function _createNodeIterator(root) {\n      return createNodeIterator.call(root.ownerDocument || root, root,\n      // eslint-disable-next-line no-bitwise\n      NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n    };\n\n    /**\n     * _isClobbered\n     *\n     * @param  {Node} elm element to check for clobbering attacks\n     * @return {Boolean} true if clobbered, false if safe\n     */\n    const _isClobbered = function _isClobbered(elm) {\n      return elm instanceof HTMLFormElement && (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function' || typeof elm.hasChildNodes !== 'function');\n    };\n\n    /**\n     * Checks whether the given object is a DOM node.\n     *\n     * @param  {Node} object object to check whether it's a DOM node\n     * @return {Boolean} true is object is a DOM node\n     */\n    const _isNode = function _isNode(object) {\n      return typeof Node === 'function' && object instanceof Node;\n    };\n\n    /**\n     * _executeHook\n     * Execute user configurable hooks\n     *\n     * @param  {String} entryPoint  Name of the hook's entry point\n     * @param  {Node} currentNode node to work on with the hook\n     * @param  {Object} data additional hook parameters\n     */\n    const _executeHook = function _executeHook(entryPoint, currentNode, data) {\n      if (!hooks[entryPoint]) {\n        return;\n      }\n      arrayForEach(hooks[entryPoint], hook => {\n        hook.call(DOMPurify, currentNode, data, CONFIG);\n      });\n    };\n\n    /**\n     * _sanitizeElements\n     *\n     * @protect nodeName\n     * @protect textContent\n     * @protect removeChild\n     *\n     * @param   {Node} currentNode to check for permission to exist\n     * @return  {Boolean} true if node was killed, false if left alive\n     */\n    const _sanitizeElements = function _sanitizeElements(currentNode) {\n      let content = null;\n\n      /* Execute a hook if present */\n      _executeHook('beforeSanitizeElements', currentNode, null);\n\n      /* Check if element is clobbered or can clobber */\n      if (_isClobbered(currentNode)) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Now let's check the element's type and name */\n      const tagName = transformCaseFunc(currentNode.nodeName);\n\n      /* Execute a hook if present */\n      _executeHook('uponSanitizeElement', currentNode, {\n        tagName,\n        allowedTags: ALLOWED_TAGS\n      });\n\n      /* Detect mXSS attempts abusing namespace confusion */\n      if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Remove any occurrence of processing instructions */\n      if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Remove any kind of possibly harmful comments */\n      if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\\w]/g, currentNode.data)) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Remove element if anything forbids its presence */\n      if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n        /* Check if we have a custom element to handle */\n        if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n          if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n            return false;\n          }\n          if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n            return false;\n          }\n        }\n\n        /* Keep content except for bad-listed elements */\n        if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n          const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n          const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n          if (childNodes && parentNode) {\n            const childCount = childNodes.length;\n            for (let i = childCount - 1; i >= 0; --i) {\n              const childClone = cloneNode(childNodes[i], true);\n              childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n              parentNode.insertBefore(childClone, getNextSibling(currentNode));\n            }\n          }\n        }\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Check whether element has a valid namespace */\n      if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Make sure that older browsers don't get fallback-tag mXSS */\n      if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Sanitize element content to be template-safe */\n      if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n        /* Get the element's text content */\n        content = currentNode.textContent;\n        arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n          content = stringReplace(content, expr, ' ');\n        });\n        if (currentNode.textContent !== content) {\n          arrayPush(DOMPurify.removed, {\n            element: currentNode.cloneNode()\n          });\n          currentNode.textContent = content;\n        }\n      }\n\n      /* Execute a hook if present */\n      _executeHook('afterSanitizeElements', currentNode, null);\n      return false;\n    };\n\n    /**\n     * _isValidAttribute\n     *\n     * @param  {string} lcTag Lowercase tag name of containing element.\n     * @param  {string} lcName Lowercase attribute name.\n     * @param  {string} value Attribute value.\n     * @return {Boolean} Returns true if `value` is valid, otherwise false.\n     */\n    // eslint-disable-next-line complexity\n    const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n      /* Make sure attribute cannot clobber */\n      if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n        return false;\n      }\n\n      /* Allow valid data-* attributes: At least one character after \"-\"\n          (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n          XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n          We don't need to check the value; it's always URI safe. */\n      if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n        if (\n        // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n        // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n        // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n        _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) ||\n        // Alternative, second condition checks if it's an `is`-attribute, AND\n        // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n        lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n          return false;\n        }\n        /* Check value is safe. First, is attr inert? If so, is safe */\n      } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {\n        return false;\n      } else ;\n      return true;\n    };\n\n    /**\n     * _isBasicCustomElement\n     * checks if at least one dash is included in tagName, and it's not the first char\n     * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n     *\n     * @param {string} tagName name of the tag of the node to sanitize\n     * @returns {boolean} Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n     */\n    const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n      return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n    };\n\n    /**\n     * _sanitizeAttributes\n     *\n     * @protect attributes\n     * @protect nodeName\n     * @protect removeAttribute\n     * @protect setAttribute\n     *\n     * @param  {Node} currentNode to sanitize\n     */\n    const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n      /* Execute a hook if present */\n      _executeHook('beforeSanitizeAttributes', currentNode, null);\n      const {\n        attributes\n      } = currentNode;\n\n      /* Check if we have attributes; if not we might have a text node */\n      if (!attributes) {\n        return;\n      }\n      const hookEvent = {\n        attrName: '',\n        attrValue: '',\n        keepAttr: true,\n        allowedAttributes: ALLOWED_ATTR\n      };\n      let l = attributes.length;\n\n      /* Go backwards over all attributes; safely remove bad ones */\n      while (l--) {\n        const attr = attributes[l];\n        const {\n          name,\n          namespaceURI,\n          value: attrValue\n        } = attr;\n        const lcName = transformCaseFunc(name);\n        let value = name === 'value' ? attrValue : stringTrim(attrValue);\n\n        /* Execute a hook if present */\n        hookEvent.attrName = lcName;\n        hookEvent.attrValue = value;\n        hookEvent.keepAttr = true;\n        hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n        _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n        value = hookEvent.attrValue;\n\n        /* Work around a security issue with comments inside attributes */\n        if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title)/i, value)) {\n          _removeAttribute(name, currentNode);\n          continue;\n        }\n\n        /* Did the hooks approve of the attribute? */\n        if (hookEvent.forceKeepAttr) {\n          continue;\n        }\n\n        /* Remove attribute */\n        _removeAttribute(name, currentNode);\n\n        /* Did the hooks approve of the attribute? */\n        if (!hookEvent.keepAttr) {\n          continue;\n        }\n\n        /* Work around a security issue in jQuery 3.0 */\n        if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n          _removeAttribute(name, currentNode);\n          continue;\n        }\n\n        /* Sanitize attribute content to be template-safe */\n        if (SAFE_FOR_TEMPLATES) {\n          arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n            value = stringReplace(value, expr, ' ');\n          });\n        }\n\n        /* Is `value` valid for this attribute? */\n        const lcTag = transformCaseFunc(currentNode.nodeName);\n        if (!_isValidAttribute(lcTag, lcName, value)) {\n          continue;\n        }\n\n        /* Full DOM Clobbering protection via namespace isolation,\n         * Prefix id and name attributes with `user-content-`\n         */\n        if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n          // Remove the attribute with this value\n          _removeAttribute(name, currentNode);\n\n          // Prefix the value and later re-create the attribute with the sanitized value\n          value = SANITIZE_NAMED_PROPS_PREFIX + value;\n        }\n\n        /* Handle attributes that require Trusted Types */\n        if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n          if (namespaceURI) ; else {\n            switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n              case 'TrustedHTML':\n                {\n                  value = trustedTypesPolicy.createHTML(value);\n                  break;\n                }\n              case 'TrustedScriptURL':\n                {\n                  value = trustedTypesPolicy.createScriptURL(value);\n                  break;\n                }\n            }\n          }\n        }\n\n        /* Handle invalid data-* attribute set by try-catching it */\n        try {\n          if (namespaceURI) {\n            currentNode.setAttributeNS(namespaceURI, name, value);\n          } else {\n            /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n            currentNode.setAttribute(name, value);\n          }\n          if (_isClobbered(currentNode)) {\n            _forceRemove(currentNode);\n          } else {\n            arrayPop(DOMPurify.removed);\n          }\n        } catch (_) {}\n      }\n\n      /* Execute a hook if present */\n      _executeHook('afterSanitizeAttributes', currentNode, null);\n    };\n\n    /**\n     * _sanitizeShadowDOM\n     *\n     * @param  {DocumentFragment} fragment to iterate over recursively\n     */\n    const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n      let shadowNode = null;\n      const shadowIterator = _createNodeIterator(fragment);\n\n      /* Execute a hook if present */\n      _executeHook('beforeSanitizeShadowDOM', fragment, null);\n      while (shadowNode = shadowIterator.nextNode()) {\n        /* Execute a hook if present */\n        _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n        /* Sanitize tags and elements */\n        if (_sanitizeElements(shadowNode)) {\n          continue;\n        }\n\n        /* Deep shadow DOM detected */\n        if (shadowNode.content instanceof DocumentFragment) {\n          _sanitizeShadowDOM(shadowNode.content);\n        }\n\n        /* Check attributes, sanitize if necessary */\n        _sanitizeAttributes(shadowNode);\n      }\n\n      /* Execute a hook if present */\n      _executeHook('afterSanitizeShadowDOM', fragment, null);\n    };\n\n    /**\n     * Sanitize\n     * Public method providing core sanitation functionality\n     *\n     * @param {String|Node} dirty string or DOM node\n     * @param {Object} cfg object\n     */\n    // eslint-disable-next-line complexity\n    DOMPurify.sanitize = function (dirty) {\n      let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      let body = null;\n      let importedNode = null;\n      let currentNode = null;\n      let returnNode = null;\n      /* Make sure we have a string to sanitize.\n        DO NOT return early, as this will return the wrong type if\n        the user has requested a DOM object rather than a string */\n      IS_EMPTY_INPUT = !dirty;\n      if (IS_EMPTY_INPUT) {\n        dirty = '<!-->';\n      }\n\n      /* Stringify, in case dirty is an object */\n      if (typeof dirty !== 'string' && !_isNode(dirty)) {\n        if (typeof dirty.toString === 'function') {\n          dirty = dirty.toString();\n          if (typeof dirty !== 'string') {\n            throw typeErrorCreate('dirty is not a string, aborting');\n          }\n        } else {\n          throw typeErrorCreate('toString is not a function');\n        }\n      }\n\n      /* Return dirty HTML if DOMPurify cannot run */\n      if (!DOMPurify.isSupported) {\n        return dirty;\n      }\n\n      /* Assign config vars */\n      if (!SET_CONFIG) {\n        _parseConfig(cfg);\n      }\n\n      /* Clean up removed elements */\n      DOMPurify.removed = [];\n\n      /* Check if dirty is correctly typed for IN_PLACE */\n      if (typeof dirty === 'string') {\n        IN_PLACE = false;\n      }\n      if (IN_PLACE) {\n        /* Do some early pre-sanitization to avoid unsafe root nodes */\n        if (dirty.nodeName) {\n          const tagName = transformCaseFunc(dirty.nodeName);\n          if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n            throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n          }\n        }\n      } else if (dirty instanceof Node) {\n        /* If dirty is a DOM element, append to an empty document to avoid\n           elements being stripped by the parser */\n        body = _initDocument('<!---->');\n        importedNode = body.ownerDocument.importNode(dirty, true);\n        if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n          /* Node is already a body, use as is */\n          body = importedNode;\n        } else if (importedNode.nodeName === 'HTML') {\n          body = importedNode;\n        } else {\n          // eslint-disable-next-line unicorn/prefer-dom-node-append\n          body.appendChild(importedNode);\n        }\n      } else {\n        /* Exit directly if we have nothing to do */\n        if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n        // eslint-disable-next-line unicorn/prefer-includes\n        dirty.indexOf('<') === -1) {\n          return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n        }\n\n        /* Initialize the document to work on */\n        body = _initDocument(dirty);\n\n        /* Check we have a DOM node from the data */\n        if (!body) {\n          return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n        }\n      }\n\n      /* Remove first element node (ours) if FORCE_BODY is set */\n      if (body && FORCE_BODY) {\n        _forceRemove(body.firstChild);\n      }\n\n      /* Get node iterator */\n      const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n\n      /* Now start iterating over the created document */\n      while (currentNode = nodeIterator.nextNode()) {\n        /* Sanitize tags and elements */\n        if (_sanitizeElements(currentNode)) {\n          continue;\n        }\n\n        /* Shadow DOM detected, sanitize it */\n        if (currentNode.content instanceof DocumentFragment) {\n          _sanitizeShadowDOM(currentNode.content);\n        }\n\n        /* Check attributes, sanitize if necessary */\n        _sanitizeAttributes(currentNode);\n      }\n\n      /* If we sanitized `dirty` in-place, return it. */\n      if (IN_PLACE) {\n        return dirty;\n      }\n\n      /* Return sanitized string or DOM */\n      if (RETURN_DOM) {\n        if (RETURN_DOM_FRAGMENT) {\n          returnNode = createDocumentFragment.call(body.ownerDocument);\n          while (body.firstChild) {\n            // eslint-disable-next-line unicorn/prefer-dom-node-append\n            returnNode.appendChild(body.firstChild);\n          }\n        } else {\n          returnNode = body;\n        }\n        if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n          /*\n            AdoptNode() is not used because internal state is not reset\n            (e.g. the past names map of a HTMLFormElement), this is safe\n            in theory but we would rather not risk another attack vector.\n            The state that is cloned by importNode() is explicitly defined\n            by the specs.\n          */\n          returnNode = importNode.call(originalDocument, returnNode, true);\n        }\n        return returnNode;\n      }\n      let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n      /* Serialize doctype if allowed */\n      if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n        serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n      }\n\n      /* Sanitize final string template-safe */\n      if (SAFE_FOR_TEMPLATES) {\n        arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n          serializedHTML = stringReplace(serializedHTML, expr, ' ');\n        });\n      }\n      return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n    };\n\n    /**\n     * Public method to set the configuration once\n     * setConfig\n     *\n     * @param {Object} cfg configuration object\n     */\n    DOMPurify.setConfig = function () {\n      let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      _parseConfig(cfg);\n      SET_CONFIG = true;\n    };\n\n    /**\n     * Public method to remove the configuration\n     * clearConfig\n     *\n     */\n    DOMPurify.clearConfig = function () {\n      CONFIG = null;\n      SET_CONFIG = false;\n    };\n\n    /**\n     * Public method to check if an attribute value is valid.\n     * Uses last set config, if any. Otherwise, uses config defaults.\n     * isValidAttribute\n     *\n     * @param  {String} tag Tag name of containing element.\n     * @param  {String} attr Attribute name.\n     * @param  {String} value Attribute value.\n     * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n     */\n    DOMPurify.isValidAttribute = function (tag, attr, value) {\n      /* Initialize shared config vars if necessary. */\n      if (!CONFIG) {\n        _parseConfig({});\n      }\n      const lcTag = transformCaseFunc(tag);\n      const lcName = transformCaseFunc(attr);\n      return _isValidAttribute(lcTag, lcName, value);\n    };\n\n    /**\n     * AddHook\n     * Public method to add DOMPurify hooks\n     *\n     * @param {String} entryPoint entry point for the hook to add\n     * @param {Function} hookFunction function to execute\n     */\n    DOMPurify.addHook = function (entryPoint, hookFunction) {\n      if (typeof hookFunction !== 'function') {\n        return;\n      }\n      hooks[entryPoint] = hooks[entryPoint] || [];\n      arrayPush(hooks[entryPoint], hookFunction);\n    };\n\n    /**\n     * RemoveHook\n     * Public method to remove a DOMPurify hook at a given entryPoint\n     * (pops it from the stack of hooks if more are present)\n     *\n     * @param {String} entryPoint entry point for the hook to remove\n     * @return {Function} removed(popped) hook\n     */\n    DOMPurify.removeHook = function (entryPoint) {\n      if (hooks[entryPoint]) {\n        return arrayPop(hooks[entryPoint]);\n      }\n    };\n\n    /**\n     * RemoveHooks\n     * Public method to remove all DOMPurify hooks at a given entryPoint\n     *\n     * @param  {String} entryPoint entry point for the hooks to remove\n     */\n    DOMPurify.removeHooks = function (entryPoint) {\n      if (hooks[entryPoint]) {\n        hooks[entryPoint] = [];\n      }\n    };\n\n    /**\n     * RemoveAllHooks\n     * Public method to remove all DOMPurify hooks\n     */\n    DOMPurify.removeAllHooks = function () {\n      hooks = {};\n    };\n    return DOMPurify;\n  }\n  var purify = createDOMPurify();\n\n  return purify;\n\n}));\n//# sourceMappingURL=purify.js.map\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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\nif (process.env.NODE_ENV !== \"production\") {\n  (function() {\n'use strict';\n\nvar React = require('react');\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n  if (maybeIterable === null || typeof maybeIterable !== 'object') {\n    return null;\n  }\n\n  var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n  if (typeof maybeIterator === 'function') {\n    return maybeIterator;\n  }\n\n  return null;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n  {\n    {\n      for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n        args[_key2 - 1] = arguments[_key2];\n      }\n\n      printWarning('error', format, args);\n    }\n  }\n}\n\nfunction printWarning(level, format, args) {\n  // When changing this logic, you might want to also\n  // update consoleWithStackDev.www.js as well.\n  {\n    var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n    var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n    if (stack !== '') {\n      format += '%s';\n      args = args.concat([stack]);\n    } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n    var argsWithFormat = args.map(function (item) {\n      return String(item);\n    }); // Careful: RN currently depends on this prefix\n\n    argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n    // breaks IE9: https://github.com/facebook/react/issues/13610\n    // eslint-disable-next-line react-internal/no-production-logging\n\n    Function.prototype.apply.call(console[level], console, argsWithFormat);\n  }\n}\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n  REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n  if (typeof type === 'string' || typeof type === 'function') {\n    return true;\n  } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n  if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing  || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden  || type === REACT_OFFSCREEN_TYPE || enableScopeAPI  || enableCacheElement  || enableTransitionTracing ) {\n    return true;\n  }\n\n  if (typeof type === 'object' && type !== null) {\n    if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n    // types supported by any Flight configuration anywhere since\n    // we don't know which Flight build this will end up being used\n    // with.\n    type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n      return true;\n    }\n  }\n\n  return false;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n  var displayName = outerType.displayName;\n\n  if (displayName) {\n    return displayName;\n  }\n\n  var functionName = innerType.displayName || innerType.name || '';\n  return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n  return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(type) {\n  if (type == null) {\n    // Host root, text node or just invalid type.\n    return null;\n  }\n\n  {\n    if (typeof type.tag === 'number') {\n      error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n    }\n  }\n\n  if (typeof type === 'function') {\n    return type.displayName || type.name || null;\n  }\n\n  if (typeof type === 'string') {\n    return type;\n  }\n\n  switch (type) {\n    case REACT_FRAGMENT_TYPE:\n      return 'Fragment';\n\n    case REACT_PORTAL_TYPE:\n      return 'Portal';\n\n    case REACT_PROFILER_TYPE:\n      return 'Profiler';\n\n    case REACT_STRICT_MODE_TYPE:\n      return 'StrictMode';\n\n    case REACT_SUSPENSE_TYPE:\n      return 'Suspense';\n\n    case REACT_SUSPENSE_LIST_TYPE:\n      return 'SuspenseList';\n\n  }\n\n  if (typeof type === 'object') {\n    switch (type.$$typeof) {\n      case REACT_CONTEXT_TYPE:\n        var context = type;\n        return getContextName(context) + '.Consumer';\n\n      case REACT_PROVIDER_TYPE:\n        var provider = type;\n        return getContextName(provider._context) + '.Provider';\n\n      case REACT_FORWARD_REF_TYPE:\n        return getWrappedName(type, type.render, 'ForwardRef');\n\n      case REACT_MEMO_TYPE:\n        var outerName = type.displayName || null;\n\n        if (outerName !== null) {\n          return outerName;\n        }\n\n        return getComponentNameFromType(type.type) || 'Memo';\n\n      case REACT_LAZY_TYPE:\n        {\n          var lazyComponent = type;\n          var payload = lazyComponent._payload;\n          var init = lazyComponent._init;\n\n          try {\n            return getComponentNameFromType(init(payload));\n          } catch (x) {\n            return null;\n          }\n        }\n\n      // eslint-disable-next-line no-fallthrough\n    }\n  }\n\n  return null;\n}\n\nvar assign = Object.assign;\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n  {\n    if (disabledDepth === 0) {\n      /* eslint-disable react-internal/no-production-logging */\n      prevLog = console.log;\n      prevInfo = console.info;\n      prevWarn = console.warn;\n      prevError = console.error;\n      prevGroup = console.group;\n      prevGroupCollapsed = console.groupCollapsed;\n      prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n      var props = {\n        configurable: true,\n        enumerable: true,\n        value: disabledLog,\n        writable: true\n      }; // $FlowFixMe Flow thinks console is immutable.\n\n      Object.defineProperties(console, {\n        info: props,\n        log: props,\n        warn: props,\n        error: props,\n        group: props,\n        groupCollapsed: props,\n        groupEnd: props\n      });\n      /* eslint-enable react-internal/no-production-logging */\n    }\n\n    disabledDepth++;\n  }\n}\nfunction reenableLogs() {\n  {\n    disabledDepth--;\n\n    if (disabledDepth === 0) {\n      /* eslint-disable react-internal/no-production-logging */\n      var props = {\n        configurable: true,\n        enumerable: true,\n        writable: true\n      }; // $FlowFixMe Flow thinks console is immutable.\n\n      Object.defineProperties(console, {\n        log: assign({}, props, {\n          value: prevLog\n        }),\n        info: assign({}, props, {\n          value: prevInfo\n        }),\n        warn: assign({}, props, {\n          value: prevWarn\n        }),\n        error: assign({}, props, {\n          value: prevError\n        }),\n        group: assign({}, props, {\n          value: prevGroup\n        }),\n        groupCollapsed: assign({}, props, {\n          value: prevGroupCollapsed\n        }),\n        groupEnd: assign({}, props, {\n          value: prevGroupEnd\n        })\n      });\n      /* eslint-enable react-internal/no-production-logging */\n    }\n\n    if (disabledDepth < 0) {\n      error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n    }\n  }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n  {\n    if (prefix === undefined) {\n      // Extract the VM specific prefix used by each line.\n      try {\n        throw Error();\n      } catch (x) {\n        var match = x.stack.trim().match(/\\n( *(at )?)/);\n        prefix = match && match[1] || '';\n      }\n    } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n    return '\\n' + prefix + name;\n  }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n  var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n  componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n  // If something asked for a stack inside a fake render, it should get ignored.\n  if ( !fn || reentry) {\n    return '';\n  }\n\n  {\n    var frame = componentFrameCache.get(fn);\n\n    if (frame !== undefined) {\n      return frame;\n    }\n  }\n\n  var control;\n  reentry = true;\n  var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n  Error.prepareStackTrace = undefined;\n  var previousDispatcher;\n\n  {\n    previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n    // for warnings.\n\n    ReactCurrentDispatcher.current = null;\n    disableLogs();\n  }\n\n  try {\n    // This should throw.\n    if (construct) {\n      // Something should be setting the props in the constructor.\n      var Fake = function () {\n        throw Error();\n      }; // $FlowFixMe\n\n\n      Object.defineProperty(Fake.prototype, 'props', {\n        set: function () {\n          // We use a throwing setter instead of frozen or non-writable props\n          // because that won't throw in a non-strict mode function.\n          throw Error();\n        }\n      });\n\n      if (typeof Reflect === 'object' && Reflect.construct) {\n        // We construct a different control for this case to include any extra\n        // frames added by the construct call.\n        try {\n          Reflect.construct(Fake, []);\n        } catch (x) {\n          control = x;\n        }\n\n        Reflect.construct(fn, [], Fake);\n      } else {\n        try {\n          Fake.call();\n        } catch (x) {\n          control = x;\n        }\n\n        fn.call(Fake.prototype);\n      }\n    } else {\n      try {\n        throw Error();\n      } catch (x) {\n        control = x;\n      }\n\n      fn();\n    }\n  } catch (sample) {\n    // This is inlined manually because closure doesn't do it for us.\n    if (sample && control && typeof sample.stack === 'string') {\n      // This extracts the first frame from the sample that isn't also in the control.\n      // Skipping one frame that we assume is the frame that calls the two.\n      var sampleLines = sample.stack.split('\\n');\n      var controlLines = control.stack.split('\\n');\n      var s = sampleLines.length - 1;\n      var c = controlLines.length - 1;\n\n      while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n        // We expect at least one stack frame to be shared.\n        // Typically this will be the root most one. However, stack frames may be\n        // cut off due to maximum stack limits. In this case, one maybe cut off\n        // earlier than the other. We assume that the sample is longer or the same\n        // and there for cut off earlier. So we should find the root most frame in\n        // the sample somewhere in the control.\n        c--;\n      }\n\n      for (; s >= 1 && c >= 0; s--, c--) {\n        // Next we find the first one that isn't the same which should be the\n        // frame that called our sample function and the control.\n        if (sampleLines[s] !== controlLines[c]) {\n          // In V8, the first line is describing the message but other VMs don't.\n          // If we're about to return the first line, and the control is also on the same\n          // line, that's a pretty good indicator that our sample threw at same line as\n          // the control. I.e. before we entered the sample frame. So we ignore this result.\n          // This can happen if you passed a class to function component, or non-function.\n          if (s !== 1 || c !== 1) {\n            do {\n              s--;\n              c--; // We may still have similar intermediate frames from the construct call.\n              // The next one that isn't the same should be our match though.\n\n              if (c < 0 || sampleLines[s] !== controlLines[c]) {\n                // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n                var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n                // but we have a user-provided \"displayName\"\n                // splice it in to make the stack more readable.\n\n\n                if (fn.displayName && _frame.includes('<anonymous>')) {\n                  _frame = _frame.replace('<anonymous>', fn.displayName);\n                }\n\n                {\n                  if (typeof fn === 'function') {\n                    componentFrameCache.set(fn, _frame);\n                  }\n                } // Return the line we found.\n\n\n                return _frame;\n              }\n            } while (s >= 1 && c >= 0);\n          }\n\n          break;\n        }\n      }\n    }\n  } finally {\n    reentry = false;\n\n    {\n      ReactCurrentDispatcher.current = previousDispatcher;\n      reenableLogs();\n    }\n\n    Error.prepareStackTrace = previousPrepareStackTrace;\n  } // Fallback to just using the name if we couldn't make it throw.\n\n\n  var name = fn ? fn.displayName || fn.name : '';\n  var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n  {\n    if (typeof fn === 'function') {\n      componentFrameCache.set(fn, syntheticFrame);\n    }\n  }\n\n  return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n  {\n    return describeNativeComponentFrame(fn, false);\n  }\n}\n\nfunction shouldConstruct(Component) {\n  var prototype = Component.prototype;\n  return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n  if (type == null) {\n    return '';\n  }\n\n  if (typeof type === 'function') {\n    {\n      return describeNativeComponentFrame(type, shouldConstruct(type));\n    }\n  }\n\n  if (typeof type === 'string') {\n    return describeBuiltInComponentFrame(type);\n  }\n\n  switch (type) {\n    case REACT_SUSPENSE_TYPE:\n      return describeBuiltInComponentFrame('Suspense');\n\n    case REACT_SUSPENSE_LIST_TYPE:\n      return describeBuiltInComponentFrame('SuspenseList');\n  }\n\n  if (typeof type === 'object') {\n    switch (type.$$typeof) {\n      case REACT_FORWARD_REF_TYPE:\n        return describeFunctionComponentFrame(type.render);\n\n      case REACT_MEMO_TYPE:\n        // Memo may contain any component type so we recursively resolve it.\n        return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n      case REACT_LAZY_TYPE:\n        {\n          var lazyComponent = type;\n          var payload = lazyComponent._payload;\n          var init = lazyComponent._init;\n\n          try {\n            // Lazy may contain any component type so we recursively resolve it.\n            return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n          } catch (x) {}\n        }\n    }\n  }\n\n  return '';\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n  {\n    if (element) {\n      var owner = element._owner;\n      var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n      ReactDebugCurrentFrame.setExtraStackFrame(stack);\n    } else {\n      ReactDebugCurrentFrame.setExtraStackFrame(null);\n    }\n  }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n  {\n    // $FlowFixMe This is okay but Flow doesn't know it.\n    var has = Function.call.bind(hasOwnProperty);\n\n    for (var typeSpecName in typeSpecs) {\n      if (has(typeSpecs, typeSpecName)) {\n        var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n        // fail the render phase where it didn't fail before. So we log it.\n        // After these have been cleaned up, we'll let them throw.\n\n        try {\n          // This is intentionally an invariant that gets caught. It's the same\n          // behavior as without this statement except with a better message.\n          if (typeof typeSpecs[typeSpecName] !== 'function') {\n            // eslint-disable-next-line react-internal/prod-error-codes\n            var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n            err.name = 'Invariant Violation';\n            throw err;\n          }\n\n          error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n        } catch (ex) {\n          error$1 = ex;\n        }\n\n        if (error$1 && !(error$1 instanceof Error)) {\n          setCurrentlyValidatingElement(element);\n\n          error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n          setCurrentlyValidatingElement(null);\n        }\n\n        if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n          // Only monitor this failure once because there tends to be a lot of the\n          // same error.\n          loggedTypeFailures[error$1.message] = true;\n          setCurrentlyValidatingElement(element);\n\n          error('Failed %s type: %s', location, error$1.message);\n\n          setCurrentlyValidatingElement(null);\n        }\n      }\n    }\n  }\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n  return isArrayImpl(a);\n}\n\n/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value) {\n  {\n    // toStringTag is needed for namespaced types like Temporal.Instant\n    var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n    var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n    return type;\n  }\n} // $FlowFixMe only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n  {\n    try {\n      testStringCoercion(value);\n      return false;\n    } catch (e) {\n      return true;\n    }\n  }\n}\n\nfunction testStringCoercion(value) {\n  // If you ended up here by following an exception call stack, here's what's\n  // happened: you supplied an object or symbol value to React (as a prop, key,\n  // DOM attribute, CSS property, string ref, etc.) and when React tried to\n  // coerce it to a string using `'' + value`, an exception was thrown.\n  //\n  // The most common types that will cause this exception are `Symbol` instances\n  // and Temporal objects like `Temporal.Instant`. But any object that has a\n  // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n  // exception. (Library authors do this to prevent users from using built-in\n  // numeric operators like `+` or comparison operators like `>=` because custom\n  // methods are needed to perform accurate arithmetic or comparison.)\n  //\n  // To fix the problem, coerce this object or symbol value to a string before\n  // passing it to React. The most reliable way is usually `String(value)`.\n  //\n  // To find which value is throwing, check the browser or debugger console.\n  // Before this exception was thrown, there should be `console.error` output\n  // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n  // problem and how that type was used: key, atrribute, input value prop, etc.\n  // In most cases, this console output also shows the component and its\n  // ancestor components where the exception happened.\n  //\n  // eslint-disable-next-line react-internal/safe-string-coercion\n  return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n  {\n    if (willCoercionThrow(value)) {\n      error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n      return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n    }\n  }\n}\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nvar RESERVED_PROPS = {\n  key: true,\n  ref: true,\n  __self: true,\n  __source: true\n};\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\nvar didWarnAboutStringRefs;\n\n{\n  didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n  {\n    if (hasOwnProperty.call(config, 'ref')) {\n      var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n      if (getter && getter.isReactWarning) {\n        return false;\n      }\n    }\n  }\n\n  return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n  {\n    if (hasOwnProperty.call(config, 'key')) {\n      var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n      if (getter && getter.isReactWarning) {\n        return false;\n      }\n    }\n  }\n\n  return config.key !== undefined;\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\n  {\n    if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {\n      var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n      if (!didWarnAboutStringRefs[componentName]) {\n        error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentNameFromType(ReactCurrentOwner.current.type), config.ref);\n\n        didWarnAboutStringRefs[componentName] = true;\n      }\n    }\n  }\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n  {\n    var warnAboutAccessingKey = function () {\n      if (!specialPropKeyWarningShown) {\n        specialPropKeyWarningShown = true;\n\n        error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n      }\n    };\n\n    warnAboutAccessingKey.isReactWarning = true;\n    Object.defineProperty(props, 'key', {\n      get: warnAboutAccessingKey,\n      configurable: true\n    });\n  }\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n  {\n    var warnAboutAccessingRef = function () {\n      if (!specialPropRefWarningShown) {\n        specialPropRefWarningShown = true;\n\n        error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n      }\n    };\n\n    warnAboutAccessingRef.isReactWarning = true;\n    Object.defineProperty(props, 'ref', {\n      get: warnAboutAccessingRef,\n      configurable: true\n    });\n  }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n  var element = {\n    // This tag allows us to uniquely identify this as a React Element\n    $$typeof: REACT_ELEMENT_TYPE,\n    // Built-in properties that belong on the element\n    type: type,\n    key: key,\n    ref: ref,\n    props: props,\n    // Record the component responsible for creating this element.\n    _owner: owner\n  };\n\n  {\n    // The validation flag is currently mutative. We put it on\n    // an external backing store so that we can freeze the whole object.\n    // This can be replaced with a WeakMap once they are implemented in\n    // commonly used development environments.\n    element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n    // the validation flag non-enumerable (where possible, which should\n    // include every environment we run tests in), so the test framework\n    // ignores it.\n\n    Object.defineProperty(element._store, 'validated', {\n      configurable: false,\n      enumerable: false,\n      writable: true,\n      value: false\n    }); // self and source are DEV only properties.\n\n    Object.defineProperty(element, '_self', {\n      configurable: false,\n      enumerable: false,\n      writable: false,\n      value: self\n    }); // Two elements created in two different places should be considered\n    // equal for testing purposes and therefore we hide it from enumeration.\n\n    Object.defineProperty(element, '_source', {\n      configurable: false,\n      enumerable: false,\n      writable: false,\n      value: source\n    });\n\n    if (Object.freeze) {\n      Object.freeze(element.props);\n      Object.freeze(element);\n    }\n  }\n\n  return element;\n};\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV(type, config, maybeKey, source, self) {\n  {\n    var propName; // Reserved names are extracted\n\n    var props = {};\n    var key = null;\n    var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n    // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n    // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n    // but as an intermediary step, we will use jsxDEV for everything except\n    // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n    // key is explicitly declared to be undefined or not.\n\n    if (maybeKey !== undefined) {\n      {\n        checkKeyStringCoercion(maybeKey);\n      }\n\n      key = '' + maybeKey;\n    }\n\n    if (hasValidKey(config)) {\n      {\n        checkKeyStringCoercion(config.key);\n      }\n\n      key = '' + config.key;\n    }\n\n    if (hasValidRef(config)) {\n      ref = config.ref;\n      warnIfStringRefCannotBeAutoConverted(config, self);\n    } // Remaining properties are added to a new props object\n\n\n    for (propName in config) {\n      if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n        props[propName] = config[propName];\n      }\n    } // Resolve default props\n\n\n    if (type && type.defaultProps) {\n      var defaultProps = type.defaultProps;\n\n      for (propName in defaultProps) {\n        if (props[propName] === undefined) {\n          props[propName] = defaultProps[propName];\n        }\n      }\n    }\n\n    if (key || ref) {\n      var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n      if (key) {\n        defineKeyPropWarningGetter(props, displayName);\n      }\n\n      if (ref) {\n        defineRefPropWarningGetter(props, displayName);\n      }\n    }\n\n    return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n  }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement$1(element) {\n  {\n    if (element) {\n      var owner = element._owner;\n      var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n      ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n    } else {\n      ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n    }\n  }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n  propTypesMisspellWarningShown = false;\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\n\nfunction isValidElement(object) {\n  {\n    return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n  }\n}\n\nfunction getDeclarationErrorAddendum() {\n  {\n    if (ReactCurrentOwner$1.current) {\n      var name = getComponentNameFromType(ReactCurrentOwner$1.current.type);\n\n      if (name) {\n        return '\\n\\nCheck the render method of `' + name + '`.';\n      }\n    }\n\n    return '';\n  }\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n  {\n    if (source !== undefined) {\n      var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n      var lineNumber = source.lineNumber;\n      return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n    }\n\n    return '';\n  }\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n  {\n    var info = getDeclarationErrorAddendum();\n\n    if (!info) {\n      var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n      if (parentName) {\n        info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n      }\n    }\n\n    return info;\n  }\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n  {\n    if (!element._store || element._store.validated || element.key != null) {\n      return;\n    }\n\n    element._store.validated = true;\n    var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n    if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n      return;\n    }\n\n    ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n    // property, it may be the creator of the child that's responsible for\n    // assigning it a key.\n\n    var childOwner = '';\n\n    if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {\n      // Give the component that originally created this child.\n      childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n    }\n\n    setCurrentlyValidatingElement$1(element);\n\n    error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n    setCurrentlyValidatingElement$1(null);\n  }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n  {\n    if (typeof node !== 'object') {\n      return;\n    }\n\n    if (isArray(node)) {\n      for (var i = 0; i < node.length; i++) {\n        var child = node[i];\n\n        if (isValidElement(child)) {\n          validateExplicitKey(child, parentType);\n        }\n      }\n    } else if (isValidElement(node)) {\n      // This element was passed in a valid location.\n      if (node._store) {\n        node._store.validated = true;\n      }\n    } else if (node) {\n      var iteratorFn = getIteratorFn(node);\n\n      if (typeof iteratorFn === 'function') {\n        // Entry iterators used to provide implicit keys,\n        // but now we print a separate warning for them later.\n        if (iteratorFn !== node.entries) {\n          var iterator = iteratorFn.call(node);\n          var step;\n\n          while (!(step = iterator.next()).done) {\n            if (isValidElement(step.value)) {\n              validateExplicitKey(step.value, parentType);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n  {\n    var type = element.type;\n\n    if (type === null || type === undefined || typeof type === 'string') {\n      return;\n    }\n\n    var propTypes;\n\n    if (typeof type === 'function') {\n      propTypes = type.propTypes;\n    } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n    // Inner props are checked in the reconciler.\n    type.$$typeof === REACT_MEMO_TYPE)) {\n      propTypes = type.propTypes;\n    } else {\n      return;\n    }\n\n    if (propTypes) {\n      // Intentionally inside to avoid triggering lazy initializers:\n      var name = getComponentNameFromType(type);\n      checkPropTypes(propTypes, element.props, 'prop', name, element);\n    } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n      propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n      var _name = getComponentNameFromType(type);\n\n      error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n    }\n\n    if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n      error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n    }\n  }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n  {\n    var keys = Object.keys(fragment.props);\n\n    for (var i = 0; i < keys.length; i++) {\n      var key = keys[i];\n\n      if (key !== 'children' && key !== 'key') {\n        setCurrentlyValidatingElement$1(fragment);\n\n        error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n        setCurrentlyValidatingElement$1(null);\n        break;\n      }\n    }\n\n    if (fragment.ref !== null) {\n      setCurrentlyValidatingElement$1(fragment);\n\n      error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n      setCurrentlyValidatingElement$1(null);\n    }\n  }\n}\n\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n  {\n    var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n    // succeed and there will likely be errors in render.\n\n    if (!validType) {\n      var info = '';\n\n      if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n        info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n      }\n\n      var sourceInfo = getSourceInfoErrorAddendum(source);\n\n      if (sourceInfo) {\n        info += sourceInfo;\n      } else {\n        info += getDeclarationErrorAddendum();\n      }\n\n      var typeString;\n\n      if (type === null) {\n        typeString = 'null';\n      } else if (isArray(type)) {\n        typeString = 'array';\n      } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n        typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n        info = ' Did you accidentally export a JSX literal instead of a component?';\n      } else {\n        typeString = typeof type;\n      }\n\n      error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n    }\n\n    var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n    // TODO: Drop this when these are no longer allowed as the type argument.\n\n    if (element == null) {\n      return element;\n    } // Skip key warning if the type isn't valid since our key validation logic\n    // doesn't expect a non-string/function type and can throw confusing errors.\n    // We don't want exception behavior to differ between dev and prod.\n    // (Rendering will throw with a helpful message and as soon as the type is\n    // fixed, the key warnings will appear.)\n\n\n    if (validType) {\n      var children = props.children;\n\n      if (children !== undefined) {\n        if (isStaticChildren) {\n          if (isArray(children)) {\n            for (var i = 0; i < children.length; i++) {\n              validateChildKeys(children[i], type);\n            }\n\n            if (Object.freeze) {\n              Object.freeze(children);\n            }\n          } else {\n            error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n          }\n        } else {\n          validateChildKeys(children, type);\n        }\n      }\n    }\n\n    if (type === REACT_FRAGMENT_TYPE) {\n      validateFragmentProps(element);\n    } else {\n      validatePropTypes(element);\n    }\n\n    return element;\n  }\n} // These two functions exist to still get child warnings in dev\n// even with the prod transform. This means that jsxDEV is purely\n// opt-in behavior for better messages but that we won't stop\n// giving you warnings if you use production apis.\n\nfunction jsxWithValidationStatic(type, props, key) {\n  {\n    return jsxWithValidation(type, props, key, true);\n  }\n}\nfunction jsxWithValidationDynamic(type, props, key) {\n  {\n    return jsxWithValidation(type, props, key, false);\n  }\n}\n\nvar jsx =  jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.\n// for now we can ship identical prod functions\n\nvar jsxs =  jsxWithValidationStatic ;\n\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsx;\nexports.jsxs = jsxs;\n  })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n  module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/* eslint-disable vars-on-top, no-var, prefer-template */\nvar isRegExp = function (re) { \n  return re instanceof RegExp;\n};\nvar escapeRegExp = function escapeRegExp(string) {\n  var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n    reHasRegExpChar = RegExp(reRegExpChar.source);\n\n  return (string && reHasRegExpChar.test(string))\n    ? string.replace(reRegExpChar, '\\\\$&')\n    : string;\n};\nvar isString = function (value) {\n  return typeof value === 'string';\n};\nvar flatten = function (array) {\n  var newArray = [];\n\n  array.forEach(function (item) {\n    if (Array.isArray(item)) {\n      newArray = newArray.concat(item);\n    } else {\n      newArray.push(item);\n    }\n  });\n\n  return newArray;\n};\n\n/**\n * Given a string, replace every substring that is matched by the `match` regex\n * with the result of calling `fn` on matched substring. The result will be an\n * array with all odd indexed elements containing the replacements. The primary\n * use case is similar to using String.prototype.replace except for React.\n *\n * React will happily render an array as children of a react element, which\n * makes this approach very useful for tasks like surrounding certain text\n * within a string with react elements.\n *\n * Example:\n * matchReplace(\n *   'Emphasize all phone numbers like 884-555-4443.',\n *   /([\\d|-]+)/g,\n *   (number, i) => <strong key={i}>{number}</strong>\n * );\n * // => ['Emphasize all phone numbers like ', <strong>884-555-4443</strong>, '.'\n *\n * @param {string} str\n * @param {RegExp|str} match Must contain a matching group\n * @param {function} fn\n * @return {array}\n */\nfunction replaceString(str, match, fn) {\n  var curCharStart = 0;\n  var curCharLen = 0;\n\n  if (str === '') {\n    return str;\n  } else if (!str || !isString(str)) {\n    throw new TypeError('First argument to react-string-replace#replaceString must be a string');\n  }\n\n  var re = match;\n\n  if (!isRegExp(re)) {\n    re = new RegExp('(' + escapeRegExp(re) + ')', 'gi');\n  }\n\n  var result = str.split(re);\n\n  // Apply fn to all odd elements\n  for (var i = 1, length = result.length; i < length; i += 2) {\n    /** @see {@link https://github.com/iansinnott/react-string-replace/issues/74} */\n    if (result[i] === undefined || result[i - 1] === undefined) {\n      console.warn('reactStringReplace: Encountered undefined value during string replacement. Your RegExp may not be working the way you expect.');\n      continue;\n    }\n\n    curCharLen = result[i].length;\n    curCharStart += result[i - 1].length;\n    result[i] = fn(result[i], i, curCharStart);\n    curCharStart += curCharLen;\n  }\n\n  return result;\n}\n\nmodule.exports = function reactStringReplace(source, match, fn) {\n  if (!Array.isArray(source)) source = [source];\n\n  return flatten(source.map(function(x) {\n    return isString(x) ? replaceString(x, match, fn) : x;\n  }));\n};\n","var map = {\n\t\"./categories/block.tsx\": 4356,\n\t\"./pages/block.tsx\": 6478,\n\t\"gutenberg/blocks/categories/block.tsx\": 4356,\n\t\"gutenberg/blocks/pages/block.tsx\": 6478\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 9406;","module.exports = React;","module.exports = ReactDOM;","module.exports = jQuery;","module.exports = lodash;","module.exports = wp.apiFetch;","module.exports = wp.blockEditor;","module.exports = wp.blocks;","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.hooks;","module.exports = wp.htmlEntities;","module.exports = wp.i18n;","module.exports = wp.plugins;","module.exports = wp.richText;","module.exports = wp.serverSideRender;","module.exports = wp.url;","// 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\tid: moduleId,\n\t\tloaded: false,\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// Flag the module as loaded\n\tmodule.loaded = true;\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 = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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__.hmd = (module) => {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: () => {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","import widgets from './modules/widgets';\n\nconsole.debug( 'Advanced Sidebar - Loaded' );\n\nwidgets();\n\n/**\n * 1. Blocks can't be lazy loaded, or they will be unavailable\n *    intermittently when developing.\n * 2. Theme Customizers must wait until the page is finished loading.\n *\n * @version 1.1.0\n */\nif ( typeof window.wp.element !== 'undefined' && typeof window.wp.plugins !== 'undefined' ) {\n\trequire( './gutenberg' ).default();\n} else if ( typeof window.wp.customize !== 'undefined' ) {\n\twindow.wp.customize.bind( 'ready', () => {\n\t\trequire( './gutenberg' ).default();\n\t} );\n}\n"],"names":["Component","CONFIG","addQueryArgs","sanitize","jsx","_jsx","jsxs","_jsxs","ErrorBoundary","constructor","props","state","hasError","error","getDerivedStateFromError","componentDidCatch","info","console","log","setState","render","siteInfo","scriptDebug","className","children","style","color","href","window","location","target","support","rel","border","padding","width","overflowWrap","section","currentScreen","message","block","JSON","stringify","attributes","stack","__","useState","Notice","styles","DISMISS_KEY","TransformNotice","shown","setShown","wrap","politeness","onDismiss","localStorage","setItem","actions","label","url","variant","ADVANCED_SIDEBAR_MENU","withFilters","select","isEmpty","firstClientId","SideLoad","clientId","getBlockIndex","CheckboxControl","PanelBody","Slot","sprintf","range","reactStringReplace","checkboxes","include_parent","include_childless_parent","display_all","Display","setAttributes","type","name","showLevels","blocks","pages","id","isPro","fillProps","title","Object","keys","map","item","labels","singular_name","toLowerCase","checked","onChange","replace","value","levels","ev","parseInt","n","categories","TextControl","ExcludeField","help","dangerouslySetInnerHTML","__html","exclude","Button","InspectorControls","decodeEntities","titleStyles","fontWeight","headingStyles","margin","fontSize","InfoPanel","initialOpen","features","feature","button","isPrimary","useEffect","ServerSideRender","Placeholder","Spinner","useBlockProps","doAction","isScreen","Fragment","_Fragment","ICON","xmlns","viewBox","x","fill","height","d","sanitizeClientId","getSidebarId","rootId","getBlockRootClientId","ParentBlock","getBlocksByClientId","Page","placeholder","icon","instructions","Category","Navigation","navigation","TriggerWhenLoadingFinished","setTimeout","values","errorMsg","Error","spinWrap","spin","spinContent","Preview","blockProps","sanitizedClientId","onClick","element","nodeName","preventDefault","EmptyResponsePlaceholder","LoadingResponsePlaceholder","isServerSideRenderRequest","sidebarId","httpMethod","useSelect","BlockControls","SelectControl","Edit","taxonomy","getTaxonomy","single","new_widget","options","displayEach","key","docs","category","transformLegacyWidget","EXAMPLE","apply_current_page_parent_styles_to_parent","apply_current_page_styles_to_parent","block_style","border_color","bullet_style","child_page_bg_color","child_page_color","parent_page_bg_color","parent_page_color","parent_page_font_weight","grandchild_page_bg_color","grandchild_page_color","grandchild_page_font_weight","settings","example","transforms","from","isMatch","idBase","instance","raw","transform","supports","edit","save","apiVersion","postType","getPostType","post_type","order_by","labelPosition","entries","orderBy","page","current_page_bg_color","current_page_color","current_page_font_weight","current_page_parent_bg_color","createBlock","screens","includes","translateLegacyWidget","forEach","autoloadBlocks","require","context","module","createRoot","renderTransformNotice","classicWidgets","getItem","placeholders","document","querySelectorAll","root","e","isWidgets","jQuery","on","widgets","debug","wp","plugins","default","customize","bind"],"sourceRoot":""}
  • advanced-sidebar-menu/tags/9.6.1/languages/advanced-sidebar-menu-de_DE.l10n.php

    r3123446 r3150228  
    11<?php
    2 return ['domain'=>'advanced-sidebar-menu','plural-forms'=>'nplurals=2; plural=(n != 1);','messages'=>['Blocks are the future of Advanced Sidebar Menu.'=>'Blöcke sind die Zukunft des erweiterten Seitenleistenmenüs.','This widget may be transformed into a block.'=>'Dieses Widget kann in einen Block umgewandelt werden.','Display highest level parent %s'=>'Anzeige der übergeordneten %s der höchsten Ebene','Display menu when there is only the parent %s'=>'Menü "Anzeige" wird nur die übergeordnete %s','Always display child %s'=>'Immer untergeordnete %s anzeigen','Display'=>'Anzeige','Display %1$s levels of child %2$s'=>'Anzeigen %1$s Ebenen der %2$s','- All -'=>'- Alle -','For more robust and intuitive exclusions use the %1$sPRO version%2$s.'=>'Für robustere und intuitivere Ausschlüsse verwenden Sie die %1$sPRO-Version%2$s.','%s to exclude (ids, comma separated)'=>'Auszuschließende %s (IDs), durch Kommas getrennt','Go PRO'=>'Gehen Sie PRO','Advanced Sidebar Menu PRO'=>'Advanced Sidebar Menu PRO','And so much more…'=>'So viel mehr…','Upgrade'=>'Aktualisierung','Advanced Sidebar - Pages'=>'Advanced Sidebar - Seitenmenü','No preview available'=>'Keine Vorschau verfügbar','Advanced Sidebar - Categories'=>'Advanced Sidebar - Kategorien','Advanced Sidebar - Navigation'=>'Advanced Sidebar - Navigationsmenü','Title'=>'Titel','Display %s on single posts'=>'%s auf einzelne Beiträge anzeigen','Display each single post\'s %s'=>'Anzeigen der %s jedes einzelnen Beitrags','block documentation'=>'dokumentation blockieren','Order by'=>'Sortieren nach','Creates a menu of all the categories using the parent/child relationship'=>'Erstellt ein Menü aller Kategorien, die unter Zugrundelegung der Eltern-Kind-Beziehung','menu'=>'menü','sidebar'=>'seitenleiste','taxonomy'=>'taxonomie','term'=>'begriff','pages'=>'peiten','widget documentation'=>'widget-dokumentation','Documentation'=>'Dokumentation','{<a>}{</a>}Advanced Sidebar Menu requires %1$sAdvanced Sidebar Menu PRO%2$s version %3$s+. Please update or deactivate the PRO version.'=>'Das Advanced Sidebar Menu erfordert %1$s sAdvanced Sidebar Menu PRO%2$s es Version %3$s+. Bitte aktualisieren oder deaktivieren Sie die PRO-Version.','Preview'=>'Vorschau','PRO version widget options'=>'Widget-Optionen für die PRO-Version','Styling options including borders, bullets, colors, backgrounds, font size and weight.'=>'Styling-Optionen wie Rahmen, Aufzählungszeichen, Farben, Hintergründe, Schriftgröße und -stärke.','Accordion menus.'=>'Akkordeon-Menüs.','Support for custom navigation menus from Appearance -> Menus.'=>'Unterstützung für kundenspezifische Navigationsmenüs von Appearance-> Menü.','Select and display custom post types and taxonomies.'=>'Wählen Sie benutzerdefinierte Beitragstypen und Taxonomien aus und zeigen Sie sie an.','Priority support with access to members only support area.'=>'Prioritätsunterstützung, einschließlich Zugang zum Supportbereich für Mitglieder.','In a new widget'=>'In einem neuen Widget','In another list in the same widget'=>'In einer anderen Liste im selben Widget','Display the highest level parent %s'=>'Anzeige der übergeordneten %s der höchsten Ebene','Creates a menu of all the pages using the parent/child relationship'=>'Erstellt ein Menü mit allen Seiten, die die Child / Parent-Beziehung verwenden','Page Order'=>'Seitenreihenfolge','Published Date'=>'Veröffentlichungsdatum','Advanced Sidebar Menu'=>'Advanced Sidebar Menu','https://onpointplugins.com/advanced-sidebar-menu/'=>'https://onpointplugins.com/advanced-sidebar-menu/','Creates dynamic menus based on parent/child relationship of your pages or categories.'=>'Dynamische Menüs basierend auf Parent/Child-Beziehung Ihrer Seiten oder Kategorien erstellt.','OnPoint Plugins'=>'OnPoint Plugins','https://onpointplugins.com'=>'https://onpointplugins.com'],'language'=>'de_DE','x-generator'=>'Poedit 2.4.3'];
     2return ['domain'=>'advanced-sidebar-menu','plural-forms'=>'nplurals=2; plural=(n != 1);','language'=>'de_DE','project-id-version'=>'Advanced Sidebar Menu','pot-creation-date'=>'2024-03-24 21:25-0500','po-revision-date'=>'2024-03-24 21:26-0500','x-generator'=>'Poedit 2.4.3','messages'=>['Blocks are the future of Advanced Sidebar Menu.'=>'Blöcke sind die Zukunft des erweiterten Seitenleistenmenüs.','This widget may be transformed into a block.'=>'Dieses Widget kann in einen Block umgewandelt werden.','Display highest level parent %s'=>'Anzeige der übergeordneten %s der höchsten Ebene','Display menu when there is only the parent %s'=>'Menü "Anzeige" wird nur die übergeordnete %s','Always display child %s'=>'Immer untergeordnete %s anzeigen','Display'=>'Anzeige','Display %1$s levels of child %2$s'=>'Anzeigen %1$s Ebenen der %2$s','- All -'=>'- Alle -','For more robust and intuitive exclusions use the %1$sPRO version%2$s.'=>'Für robustere und intuitivere Ausschlüsse verwenden Sie die %1$sPRO-Version%2$s.','%s to exclude (ids, comma separated)'=>'Auszuschließende %s (IDs), durch Kommas getrennt','Go PRO'=>'Gehen Sie PRO','Advanced Sidebar Menu PRO'=>'Advanced Sidebar Menu PRO','And so much more…'=>'So viel mehr…','Upgrade'=>'Aktualisierung','Advanced Sidebar - Pages'=>'Advanced Sidebar - Seitenmenü','No preview available'=>'Keine Vorschau verfügbar','Advanced Sidebar - Categories'=>'Advanced Sidebar - Kategorien','Advanced Sidebar - Navigation'=>'Advanced Sidebar - Navigationsmenü','Title'=>'Titel','Display %s on single posts'=>'%s auf einzelne Beiträge anzeigen','Display each single post\'s %s'=>'Anzeigen der %s jedes einzelnen Beitrags','block documentation'=>'dokumentation blockieren','Order by'=>'Sortieren nach','Creates a menu of all the categories using the parent/child relationship'=>'Erstellt ein Menü aller Kategorien, die unter Zugrundelegung der Eltern-Kind-Beziehung','menu'=>'menü','sidebar'=>'seitenleiste','taxonomy'=>'taxonomie','term'=>'begriff','pages'=>'peiten','widget documentation'=>'widget-dokumentation','Documentation'=>'Dokumentation','{<a>}{</a>}Advanced Sidebar Menu requires %1$sAdvanced Sidebar Menu PRO%2$s version %3$s+. Please update or deactivate the PRO version.'=>'Das Advanced Sidebar Menu erfordert %1$s sAdvanced Sidebar Menu PRO%2$s es Version %3$s+. Bitte aktualisieren oder deaktivieren Sie die PRO-Version.','Preview'=>'Vorschau','PRO version widget options'=>'Widget-Optionen für die PRO-Version','Styling options including borders, bullets, colors, backgrounds, font size and weight.'=>'Styling-Optionen wie Rahmen, Aufzählungszeichen, Farben, Hintergründe, Schriftgröße und -stärke.','Accordion menus.'=>'Akkordeon-Menüs.','Support for custom navigation menus from Appearance -> Menus.'=>'Unterstützung für kundenspezifische Navigationsmenüs von Appearance-> Menü.','Select and display custom post types and taxonomies.'=>'Wählen Sie benutzerdefinierte Beitragstypen und Taxonomien aus und zeigen Sie sie an.','Priority support with access to members only support area.'=>'Prioritätsunterstützung, einschließlich Zugang zum Supportbereich für Mitglieder.','In a new widget'=>'In einem neuen Widget','In another list in the same widget'=>'In einer anderen Liste im selben Widget','Display the highest level parent %s'=>'Anzeige der übergeordneten %s der höchsten Ebene','Creates a menu of all the pages using the parent/child relationship'=>'Erstellt ein Menü mit allen Seiten, die die Child / Parent-Beziehung verwenden','Page Order'=>'Seitenreihenfolge','Published Date'=>'Veröffentlichungsdatum','Advanced Sidebar Menu'=>'Advanced Sidebar Menu','https://onpointplugins.com/advanced-sidebar-menu/'=>'https://onpointplugins.com/advanced-sidebar-menu/','Creates dynamic menus based on parent/child relationship of your pages or categories.'=>'Dynamische Menüs basierend auf Parent/Child-Beziehung Ihrer Seiten oder Kategorien erstellt.','OnPoint Plugins'=>'OnPoint Plugins','https://onpointplugins.com'=>'https://onpointplugins.com']];
  • advanced-sidebar-menu/tags/9.6.1/languages/advanced-sidebar-menu-es_ES.l10n.php

    r3123446 r3150228  
    11<?php
    2 return ['domain'=>'advanced-sidebar-menu','plural-forms'=>'nplurals=2; plural=(n != 1);','messages'=>['Blocks are the future of Advanced Sidebar Menu.'=>'Los bloques son el futuro del menú avanzado de la barra lateral.','This widget may be transformed into a block.'=>'Este widget puede transformarse en un bloque.','Display highest level parent %s'=>'Mostrar el %s principal de nivel más alto','Display menu when there is only the parent %s'=>'Mostrar menú cuando solo hay el elemento primario %s','Always display child %s'=>'Muestre siempre %s secundarios','Display'=>'Mostrar','Display %1$s levels of child %2$s'=>'Mostrar %1$s niveles de %2$s secundario','- All -'=>'- Todo -','For more robust and intuitive exclusions use the %1$sPRO version%2$s.'=>'Para exclusiones más robustas e intuitivas, utilice la versión %1$sPRO%2$s.','%s to exclude (ids, comma separated)'=>'%s para excluir (ids, separados por comas)','Go PRO'=>'Actualizar a PRO','Advanced Sidebar Menu PRO'=>'Advanced Sidebar Menu PRO','And so much more…'=>'Y mucho más…','Upgrade'=>'Actualizar','Advanced Sidebar - Pages'=>'Advanced Sidebar - Páginas','No preview available'=>'No hay vista previa disponible','Advanced Sidebar - Categories'=>'Advanced Sidebar - Categorías','Advanced Sidebar - Navigation'=>'Advanced Sidebar - Páginas','Title'=>'Título','Display %s on single posts'=>'Mostrar %s en publicaciones individuales','Display each single post\'s %s'=>'Muestra las %s de cada publicación','block documentation'=>'bloquear documentación','Order by'=>'Ordenar por','Creates a menu of all the categories using the parent/child relationship'=>'Crea un menú de todas las categorías utilizando la relación hijo/padre','menu'=>'menu','sidebar'=>'barra lateral','taxonomy'=>'taxonomía','term'=>'término','pages'=>'páginas','widget documentation'=>'documentación del widget','Documentation'=>'Documentación','{<a>}{</a>}Advanced Sidebar Menu requires %1$sAdvanced Sidebar Menu PRO%2$s version %3$s+. Please update or deactivate the PRO version.'=>'Advanced Sidebar Menu requiere %1$sAdvanced Sidebar Menu PRO%2$s versión %3$s+. Actualice o desactive la versión PRO.','Preview'=>'Vista previa','PRO version widget options'=>'Opciones del widget de la versión PRO','Styling options including borders, bullets, colors, backgrounds, font size and weight.'=>'Opciones de estilo que incluyen bordes, viñetas, colores, fondos, tamaño de fuente y peso.','Accordion menus.'=>'Menús de acordeón.','Support for custom navigation menus from Appearance -> Menus.'=>'Compatibilidad con menús de navegación personalizados.','Select and display custom post types and taxonomies.'=>'Seleccione y muestre taxonomías y tipos de publicaciones personalizadas.','Priority support with access to members only support area.'=>'Soporte prioritario con acceso a los miembros solo área de apoyo.','In a new widget'=>'En un nuevo widget','In another list in the same widget'=>'En otra lista en el mismo widget','Display the highest level parent %s'=>'Mostrar el %s principal de nivel más alto','Creates a menu of all the pages using the parent/child relationship'=>'Crea un menú de todas las páginas utilizando la relación hijo/padre','Page Order'=>'Orden de páginas','Published Date'=>'Fecha de publicación','Advanced Sidebar Menu'=>'Advanced Sidebar Menu','https://onpointplugins.com/advanced-sidebar-menu/'=>'https://onpointplugins.com/advanced-sidebar-menu/','Creates dynamic menus based on parent/child relationship of your pages or categories.'=>'Crea menús dinámicos basados en la relación padre/hijo de sus páginas o categorías.','OnPoint Plugins'=>'OnPoint Plugins','https://onpointplugins.com'=>'https://onpointplugins.com'],'language'=>'es_ES','x-generator'=>'Poedit 2.4.3'];
     2return ['domain'=>'advanced-sidebar-menu','plural-forms'=>'nplurals=2; plural=(n != 1);','language'=>'es_ES','project-id-version'=>'Advanced Sidebar Menu','pot-creation-date'=>'2024-03-24 21:25-0500','po-revision-date'=>'2024-03-24 21:26-0500','x-generator'=>'Poedit 2.4.3','messages'=>['Blocks are the future of Advanced Sidebar Menu.'=>'Los bloques son el futuro del menú avanzado de la barra lateral.','This widget may be transformed into a block.'=>'Este widget puede transformarse en un bloque.','Display highest level parent %s'=>'Mostrar el %s principal de nivel más alto','Display menu when there is only the parent %s'=>'Mostrar menú cuando solo hay el elemento primario %s','Always display child %s'=>'Muestre siempre %s secundarios','Display'=>'Mostrar','Display %1$s levels of child %2$s'=>'Mostrar %1$s niveles de %2$s secundario','- All -'=>'- Todo -','For more robust and intuitive exclusions use the %1$sPRO version%2$s.'=>'Para exclusiones más robustas e intuitivas, utilice la versión %1$sPRO%2$s.','%s to exclude (ids, comma separated)'=>'%s para excluir (ids, separados por comas)','Go PRO'=>'Actualizar a PRO','Advanced Sidebar Menu PRO'=>'Advanced Sidebar Menu PRO','And so much more…'=>'Y mucho más…','Upgrade'=>'Actualizar','Advanced Sidebar - Pages'=>'Advanced Sidebar - Páginas','No preview available'=>'No hay vista previa disponible','Advanced Sidebar - Categories'=>'Advanced Sidebar - Categorías','Advanced Sidebar - Navigation'=>'Advanced Sidebar - Páginas','Title'=>'Título','Display %s on single posts'=>'Mostrar %s en publicaciones individuales','Display each single post\'s %s'=>'Muestra las %s de cada publicación','block documentation'=>'bloquear documentación','Order by'=>'Ordenar por','Creates a menu of all the categories using the parent/child relationship'=>'Crea un menú de todas las categorías utilizando la relación hijo/padre','menu'=>'menu','sidebar'=>'barra lateral','taxonomy'=>'taxonomía','term'=>'término','pages'=>'páginas','widget documentation'=>'documentación del widget','Documentation'=>'Documentación','{<a>}{</a>}Advanced Sidebar Menu requires %1$sAdvanced Sidebar Menu PRO%2$s version %3$s+. Please update or deactivate the PRO version.'=>'Advanced Sidebar Menu requiere %1$sAdvanced Sidebar Menu PRO%2$s versión %3$s+. Actualice o desactive la versión PRO.','Preview'=>'Vista previa','PRO version widget options'=>'Opciones del widget de la versión PRO','Styling options including borders, bullets, colors, backgrounds, font size and weight.'=>'Opciones de estilo que incluyen bordes, viñetas, colores, fondos, tamaño de fuente y peso.','Accordion menus.'=>'Menús de acordeón.','Support for custom navigation menus from Appearance -> Menus.'=>'Compatibilidad con menús de navegación personalizados.','Select and display custom post types and taxonomies.'=>'Seleccione y muestre taxonomías y tipos de publicaciones personalizadas.','Priority support with access to members only support area.'=>'Soporte prioritario con acceso a los miembros solo área de apoyo.','In a new widget'=>'En un nuevo widget','In another list in the same widget'=>'En otra lista en el mismo widget','Display the highest level parent %s'=>'Mostrar el %s principal de nivel más alto','Creates a menu of all the pages using the parent/child relationship'=>'Crea un menú de todas las páginas utilizando la relación hijo/padre','Page Order'=>'Orden de páginas','Published Date'=>'Fecha de publicación','Advanced Sidebar Menu'=>'Advanced Sidebar Menu','https://onpointplugins.com/advanced-sidebar-menu/'=>'https://onpointplugins.com/advanced-sidebar-menu/','Creates dynamic menus based on parent/child relationship of your pages or categories.'=>'Crea menús dinámicos basados en la relación padre/hijo de sus páginas o categorías.','OnPoint Plugins'=>'OnPoint Plugins','https://onpointplugins.com'=>'https://onpointplugins.com']];
  • advanced-sidebar-menu/tags/9.6.1/languages/advanced-sidebar-menu-fr_FR.l10n.php

    r3123446 r3150228  
    11<?php
    2 return ['domain'=>'advanced-sidebar-menu','plural-forms'=>'nplurals=2; plural=(n != 1);','messages'=>['Blocks are the future of Advanced Sidebar Menu.'=>'Les blocs sont l’avenir de Advanced Sidebar Menu.','This widget may be transformed into a block.'=>'Ce widget peut être transformé en bloc.','Display highest level parent %s'=>'Afficher les parents de haut niveau %s','Display menu when there is only the parent %s'=>'Afficher le menu lorsqu’il n’y a que le parent %s','Always display child %s'=>'Affichez toujours les enfants %s','Display'=>'Afficher','Display %1$s levels of child %2$s'=>'Afficher %1$s niveaux d\'%2$s','- All -'=>'- Tout -','For more robust and intuitive exclusions use the %1$sPRO version%2$s.'=>'Pour des exclusions plus robustes et intuitives, utilisez la version %1$sPRO%2$s.','%s to exclude (ids, comma separated)'=>'%s exclure (ids, virgule séparée)','Go PRO'=>'Passer à la version pro','Advanced Sidebar Menu PRO'=>'Advanced Sidebar Menu PRO','And so much more…'=>'Tellement plus…','Upgrade'=>'Mise à jour','Advanced Sidebar - Pages'=>'Advanced Sidebar - Des Pages','No preview available'=>'Aucun aperçu disponible','Advanced Sidebar - Categories'=>'Advanced Sidebar - Catégories','Advanced Sidebar - Navigation'=>'Advanced Sidebar - La navigation','Title'=>'Titre','Display %s on single posts'=>'Afficher %s sur les messages simples','Display each single post\'s %s'=>'Affichez les %s','block documentation'=>'bloquer la documentation','Order by'=>'Trier par','Creates a menu of all the categories using the parent/child relationship'=>'Crée un menu de toutes les catégories en utilisant la relation de l\'enfant/parent','menu'=>'menu','sidebar'=>'barre latérale','taxonomy'=>'taxonomie','term'=>'terme','pages'=>'pages','widget documentation'=>'documentation widget','Documentation'=>'Documentation','{<a>}{</a>}Advanced Sidebar Menu requires %1$sAdvanced Sidebar Menu PRO%2$s version %3$s+. Please update or deactivate the PRO version.'=>'Le menu Sidebar avancé nécessite %1$sAvanced Sidebar Menu PRO%2$s version %3$s+. Veuillez mettre à jour ou désactiver la version PRO.','Preview'=>'Aperçu','PRO version widget options'=>'Options du widget version PRO','Styling options including borders, bullets, colors, backgrounds, font size and weight.'=>'Options de style, y compris les bordures, les puces, les couleurs, les arrière-plans, la taille de la police et l’épaisseur.','Accordion menus.'=>'Menus accordéon.','Support for custom navigation menus from Appearance -> Menus.'=>'Prise en charge des menus de navigation personnalisés.','Select and display custom post types and taxonomies.'=>'Sélectionnez et affichez des types de publication et des taxonomies personnalisés.','Priority support with access to members only support area.'=>'Soutien prioritaire avec accès aux membres uniquement zone de soutien.','In a new widget'=>'Dans un nouveau widget','In another list in the same widget'=>'Dans une autre liste dans le même widget','Display the highest level parent %s'=>'Affichez les compétences parentales de haut niveau %s','Creates a menu of all the pages using the parent/child relationship'=>'Crée un menu de toutes les pages en utilisant la relation enfant/parent','Page Order'=>'Ordre des pages','Published Date'=>'Date de publication','Advanced Sidebar Menu'=>'Advanced Sidebar Menu','https://onpointplugins.com/advanced-sidebar-menu/'=>'https://onpointplugins.com/advanced-sidebar-menu/','Creates dynamic menus based on parent/child relationship of your pages or categories.'=>'Crée des menus dynamiques basés sur la relation parent/enfant de vos pages ou catégories.','OnPoint Plugins'=>'OnPoint Plugins','https://onpointplugins.com'=>'https://onpointplugins.com'],'language'=>'fr_FR','x-generator'=>'Poedit 2.4.3'];
     2return ['domain'=>'advanced-sidebar-menu','plural-forms'=>'nplurals=2; plural=(n != 1);','language'=>'fr_FR','project-id-version'=>'Advanced Sidebar Menu','pot-creation-date'=>'2024-03-24 21:25-0500','po-revision-date'=>'2024-03-24 21:26-0500','x-generator'=>'Poedit 2.4.3','messages'=>['Blocks are the future of Advanced Sidebar Menu.'=>'Les blocs sont l’avenir de Advanced Sidebar Menu.','This widget may be transformed into a block.'=>'Ce widget peut être transformé en bloc.','Display highest level parent %s'=>'Afficher les parents de haut niveau %s','Display menu when there is only the parent %s'=>'Afficher le menu lorsqu’il n’y a que le parent %s','Always display child %s'=>'Affichez toujours les enfants %s','Display'=>'Afficher','Display %1$s levels of child %2$s'=>'Afficher %1$s niveaux d\'%2$s','- All -'=>'- Tout -','For more robust and intuitive exclusions use the %1$sPRO version%2$s.'=>'Pour des exclusions plus robustes et intuitives, utilisez la version %1$sPRO%2$s.','%s to exclude (ids, comma separated)'=>'%s exclure (ids, virgule séparée)','Go PRO'=>'Passer à la version pro','Advanced Sidebar Menu PRO'=>'Advanced Sidebar Menu PRO','And so much more…'=>'Tellement plus…','Upgrade'=>'Mise à jour','Advanced Sidebar - Pages'=>'Advanced Sidebar - Des Pages','No preview available'=>'Aucun aperçu disponible','Advanced Sidebar - Categories'=>'Advanced Sidebar - Catégories','Advanced Sidebar - Navigation'=>'Advanced Sidebar - La navigation','Title'=>'Titre','Display %s on single posts'=>'Afficher %s sur les messages simples','Display each single post\'s %s'=>'Affichez les %s','block documentation'=>'bloquer la documentation','Order by'=>'Trier par','Creates a menu of all the categories using the parent/child relationship'=>'Crée un menu de toutes les catégories en utilisant la relation de l\'enfant/parent','menu'=>'menu','sidebar'=>'barre latérale','taxonomy'=>'taxonomie','term'=>'terme','pages'=>'pages','widget documentation'=>'documentation widget','Documentation'=>'Documentation','{<a>}{</a>}Advanced Sidebar Menu requires %1$sAdvanced Sidebar Menu PRO%2$s version %3$s+. Please update or deactivate the PRO version.'=>'Le menu Sidebar avancé nécessite %1$sAvanced Sidebar Menu PRO%2$s version %3$s+. Veuillez mettre à jour ou désactiver la version PRO.','Preview'=>'Aperçu','PRO version widget options'=>'Options du widget version PRO','Styling options including borders, bullets, colors, backgrounds, font size and weight.'=>'Options de style, y compris les bordures, les puces, les couleurs, les arrière-plans, la taille de la police et l’épaisseur.','Accordion menus.'=>'Menus accordéon.','Support for custom navigation menus from Appearance -> Menus.'=>'Prise en charge des menus de navigation personnalisés.','Select and display custom post types and taxonomies.'=>'Sélectionnez et affichez des types de publication et des taxonomies personnalisés.','Priority support with access to members only support area.'=>'Soutien prioritaire avec accès aux membres uniquement zone de soutien.','In a new widget'=>'Dans un nouveau widget','In another list in the same widget'=>'Dans une autre liste dans le même widget','Display the highest level parent %s'=>'Affichez les compétences parentales de haut niveau %s','Creates a menu of all the pages using the parent/child relationship'=>'Crée un menu de toutes les pages en utilisant la relation enfant/parent','Page Order'=>'Ordre des pages','Published Date'=>'Date de publication','Advanced Sidebar Menu'=>'Advanced Sidebar Menu','https://onpointplugins.com/advanced-sidebar-menu/'=>'https://onpointplugins.com/advanced-sidebar-menu/','Creates dynamic menus based on parent/child relationship of your pages or categories.'=>'Crée des menus dynamiques basés sur la relation parent/enfant de vos pages ou catégories.','OnPoint Plugins'=>'OnPoint Plugins','https://onpointplugins.com'=>'https://onpointplugins.com']];
  • advanced-sidebar-menu/tags/9.6.1/readme.txt

    r3124148 r3150228  
    44Tags: menus, page menus, category menus, sidebars, hierarchy
    55Requires at least: 6.2.0
    6 Tested up to: 6.6.1
     6Tested up to: 6.6.2
    77Requires PHP: 7.4.0
    8 Stable tag: 9.6.0
     8Stable tag: 9.6.1
    99License: GPLv3 or later
    1010License URI: http://www.gnu.org/licenses/gpl-3.0.html
     
    164164
    165165== Changelog ==
     166= 9.6.1 =
     167* Introduce JEST unit testings for the basic version.
     168* Improved the automated testing suite.
     169* Improved deployment workflows.
     170* Fixed sourcemap generation on production builds.
     171* Tested to WordPress Core 6.6.2.
     172
    166173= 9.6.0 =
    167174* Introduced `Widget/WidgtId` and `Widget/WithWidgetId` interfaces.
  • advanced-sidebar-menu/trunk/advanced-sidebar-menu.php

    r3123446 r3150228  
    55 * Description: Creates dynamic menus based on parent/child relationship of your pages or categories.
    66 * Author: OnPoint Plugins
    7  * Version: 9.6.0
     7 * Version: 9.6.1
    88 * Author URI: https://onpointplugins.com
    99 * Text Domain: advanced-sidebar-menu
     
    2020}
    2121
    22 define( 'ADVANCED_SIDEBAR_MENU_BASIC_VERSION', '9.6.0' );
     22define( 'ADVANCED_SIDEBAR_MENU_BASIC_VERSION', '9.6.1' );
    2323define( 'ADVANCED_SIDEBAR_MENU_REQUIRED_PRO_VERSION', '9.4.0' );
    2424define( 'ADVANCED_SIDEBAR_MENU_DIR', plugin_dir_path( __FILE__ ) );
  • advanced-sidebar-menu/trunk/js/dist/advanced-sidebar-menu-admin.css

    r3123446 r3150228  
    510510  }
    511511}
     512
     513/*# sourceMappingURL=advanced-sidebar-menu-admin.css.map*/
  • advanced-sidebar-menu/trunk/js/dist/advanced-sidebar-menu-block-editor.css

    r3123446 r3150228  
    6666  padding: 10px
    6767}
     68
     69/*# sourceMappingURL=advanced-sidebar-menu-block-editor.css.map*/
  • advanced-sidebar-menu/trunk/js/dist/advanced-sidebar-menu-block-editor.js.map

    r3123446 r3150228  
    1 {"version":3,"file":"advanced-sidebar-menu-block-editor.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAA2b,aAAa,wDAAwD,YAAY,mBAAmB,KAAK,mBAAmB,sEAAsE,SAAS,wBAAwB,aAAa,cAAc,4BAA4B,cAAc,qBAAqB,aAAa,kBAAkB,cAAc,oBAAoB,gBAAgB,+BAA+B,GAAG,2DAA2D,aAAa,IAAI,YAAY,IAAI,qBAAqB,EAAE,GAAG,mBAAmB,KAAK,aAAa,2DAA2D,iGAAiG,cAAc,GAAG,aAAa,oDAAoD,oBAAoB,wDAAwD,oFAAoF,yBAAyB,cAAc,GAAG,gBAAgB,iCAAiC,mBAAmB,OAAO,4BAA4B,mDAAC,gDAAgD,uBAAuB,iCAAiC,QAAQ,EAAE,qBAAqB,OAAO,6BAA6B,mDAAC,gCAAgC,mGAAmG,EAAE,yCAAyC,8BAA8B,OAAO,IAAI,sBAAsB,eAAe,wCAAwC,QAAQ,eAAe,sBAAsB,mBAAmB,6DAA6D,SAAS,YAAY,0BAA0B,2EAA2E,oBAAoB,YAAY,kBAAkB,QAAQ,WAAW,sCAAsC,SAAS,2BAA2B,aAAa,8FAA8F,IAAI,iBAAiB,oBAAoB,oDAAoD,cAAc,mBAAmB,cAAc,EAAE,YAAY,MAAM,2BAA2B,mDAAC,+BAA+B,EAAE,mBAAmB,qDAAqD,8CAA8C,OAAO,0HAA0H,EAAE,EAAE,qBAAqB,mBAAmB,IAAI,uBAAuB,2DAAC,uCAAuC,sBAAsB,4DAAC,eAAe,EAAE,EAAE,+BAA+B,GAAG,SAAS,2BAA2B,cAAc,OAAO,mBAAmB,qBAAqB,oBAAoB,2BAA2B,SAAS,EAAE,iBAAiB,oBAAoB,uBAAuB,0BAA0B,+BAA+B,oBAAoB,mBAAmB,2BAA2B,oBAAoB,iCAAiC,cAAc,SAAS,+JAA+J,uBAAuB,uBAAuB,6BAA6B,kCAAkC,wBAAwB,8BAA8B,oBAAoB,wBAAwB,8BAA8B,wDAAwD,oBAAoB,EAAE,GAAG,mCAAmC,OAAO,qBAAqB,8DAA8D,sBAAsB,iEAAiE,iBAAiB,2DAA2D,uBAAuB,8DAA8D,wBAAwB,sEAAsE,wBAAwB,kEAAkE,uBAAuB,OAAO,eAAe,kCAAkC,oBAAoB,uCAAuC,oBAAoB,OAAO,eAAe,+BAA+B,qBAAqB,sCAAsC,4CAA4C,iBAAiB,EAAE,2EAAiB,MAAM,aAAa,KAAK,gBAAgB,YAAY,mFAAyB,iIAAiI,oBAAoB,qCAAqC,IAAI,sBAAsB,2DAAC,EAAE,sBAAsB,oBAAoB,iDAAiD,4DAAC,uEAAuE,8CAA8C,mDAAC,mEAAmE,EAAE,SAAS,SAAS,2CAA2C,SAAS,IAAI,KAAK,aAAa,kBAAkB,aAAa,4BAA4B,gBAAgB,sBAAsB,gBAAgB,aAAa,IAAI,YAAY,cAAc,IAAI,qCAAqC,EAAE,KAAK,EAAE,kBAAkB,SAAS,mBAAmB,0CAA0C,mBAAmB,mEAAmE,YAAY,YAAY,SAAS,iBAAiB,cAAc,sCAAsC,qBAAqB,MAAM,cAAc,MAAM,IAAI,iBAAiB,SAAS,SAAS,SAAS,YAAY,0BAA0B,IAAI,UAAU,6CAA6C,SAAS,UAAU,GAAG,GAAG,mBAAmB,GAAG,kEAAkE,gEAAC,YAAY,kEAAC,cAAc,EAAE,iBAAiB,GAAG,wBAAwB,0BAA0B,sCAAsC,8DAAC,YAAY,gEAAC,eAAe,EAAE,iBAAiB,GAAG,wBAAwB,0BAA0B,sCAAsC,oEAAC,YAAY,sEAAC,eAAe,EAAE,eAAe,8GAA8G,cAAc,IAAI,UAAU,MAAM,SAAS,oCAAoC,WAAW,wGAAwG,UAAU,OAAO,sDAAsD,0BAA0B,EAAE,uDAAC,iDAAiD,eAAe,mBAAmB,IAAI,uBAAuB,yDAAC,4DAA4D,aAAa,aAAa,YAAY,wBAAwB,yDAAC,uDAAuD,kBAAkB,yDAAC,6DAA6D,EAAE,+BAA+B,uDAAC,sDAAsD,uBAAuB,mBAAmB,iCAAiC,oDAAoD,cAAc,EAAE,MAAM,EAAE,sBAAsB,aAAa,qBAAqB,IAAI,KAAK,aAAa,sBAAsB,mFAAmF,MAAM,eAAe,SAAS,oBAAoB,MAAM,KAAK,eAAe,uBAAuB,yDAAC,0DAA0D,EAAE,EAAE,+BAA+B,EAAE,SAAS,2BAA2B,gBAAgB,OAAO,UAAU,IAAI,WAAW,4BAA4B,wBAAwB,wCAAwC,oDAAoD,cAAc,MAAM,4DAAC,2BAA2B,0DAAC,aAAa,OAAO,mHAAmH,uGAAuG,MAAM,MAAM,UAAU,WAAW,EAAE,4BAA4B,MAAM,GAAG,UAAU,WAAW,EAAE,MAAM,yBAAyB,eAAe,MAAM,4DAAC,2BAA2B,0DAAC,aAAa,+BAA+B,UAAU,uIAAuI,EAAE,wBAAwB,kBAAkB,IAAI,MAAM,0CAA0C,sCAAsC,SAAS,0BAA0B,QAAQ,+BAA2f;AACn/S;;;;;;;;;;;;;;;;;;;;;;;;ACD8D;AACrB;AACG;AACT;AAAA;AAQnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMQ,aAAa,SAASR,4CAAS,CAGlC;EACFS,WAAWA,CAAEC,KAAK,EAAG;IACpB,KAAK,CAAEA,KAAM,CAAC;IACd,IAAI,CAACC,KAAK,GAAG;MACZC,QAAQ,EAAE,KAAK;MACfC,KAAK,EAAE;IACR,CAAC;EACF;EAEA,OAAOC,wBAAwBA,CAAA,EAAG;IACjC;IACA,OAAO;MACNF,QAAQ,EAAE;IACX,CAAC;EACF;;EAEA;AACD;AACA;AACA;AACA;AACA;AACA;EACCG,iBAAiBA,CAAEF,KAAY,EAAEG,IAAe,EAAG;IAClDC,OAAO,CAACC,GAAG,CAAE,uDAAuD,EAAE,mDAAoD,CAAC;IAC3HD,OAAO,CAACC,GAAG,CAAE,IAAI,CAACR,KAAM,CAAC;IACzBO,OAAO,CAACC,GAAG,CAAEL,KAAM,CAAC;IACpBI,OAAO,CAACC,GAAG,CAAEF,IAAK,CAAC;IACnB,IAAI,CAACG,QAAQ,CAAE;MACdN;IACD,CAAE,CAAC;EACJ;EAEAO,MAAMA,CAAA,EAAG;IACR,IAAK,IAAI,CAACT,KAAK,CAACC,QAAQ,EAAG;MAC1B,IAAK,CAAEX,mDAAM,CAACoB,QAAQ,CAACC,WAAW,EAAG;QACpC,oBAASf,uDAAA;UAAKgB,SAAS,EAAE,kCAAmC;UAAAC,QAAA,gBAC3DnB,sDAAA;YAAIoB,KAAK,EAAE;cAACC,KAAK,EAAE;YAAK,CAAE;YAAAF,QAAA,EAAC;UAE3B,CAAI,CAAC,eACLjB,uDAAA;YAAAiB,QAAA,GAAG,SACK,eAAAnB,sDAAA;cACNsB,IAAI,EAAEzB,4DAAY,CAAEC,mDAAQ,CAAEyB,MAAM,CAACC,QAAQ,CAACF,IAAK,CAAC,EAAE;gBACrD,cAAc,EAAE;cACjB,CAAG,CAAE;cAAAH,QAAA,EACL;YAAmB,CAAG,CAAC,mCACzB;UAAA,CAAG,CAAC;QAAA,CACA,CAAC;MACP;MACA,oBACCjB,uDAAA;QAAKgB,SAAS,EAAE,kCAAmC;QAAAC,QAAA,gBAClDnB,sDAAA;UAAIoB,KAAK,EAAE;YAACC,KAAK,EAAE;UAAK,CAAE;UAAAF,QAAA,EAAC;QAE3B,CAAI,CAAC,eACLjB,uDAAA;UAAAiB,QAAA,GAAG,SACK,eAAAnB,sDAAA;YAAGyB,MAAM,EAAC,QAAQ;YAACH,IAAI,EAAE1B,mDAAM,CAAC8B,OAAQ;YAACC,GAAG,EAAC,YAAY;YAAAR,QAAA,EAAC;UAEjE,CAAG,CAAC,wBACL;QAAA,CAAG,CAAC,eACJjB,uDAAA;UAAAiB,QAAA,gBACCjB,uDAAA;YAAAiB,QAAA,GAAI,MACC,eAAAnB,sDAAA;cACHsB,IAAI,EAAE,4EAA6E;cACnFG,MAAM,EAAE,QAAS;cAACE,GAAG,EAAC,YAAY;cAAAR,QAAA,EAAC;YAEpC,CAAG,CAAC;UAAA,CACD,CAAC,eACLnB,sDAAA;YAAAmB,QAAA,EAAI;UAEJ,CAAI,CAAC;QAAA,CACF,CAAC,eAELjB,uDAAA;UACCkB,KAAK,EAAE;YACNQ,MAAM,EAAE,YAAY;YACpBC,OAAO,EAAE,MAAM;YACfC,KAAK,EAAE,MAAM;YACbC,YAAY,EAAE;UACf,CAAE;UAAAZ,QAAA,gBAEFjB,uDAAA;YAAAiB,QAAA,gBACCnB,sDAAA;cAAAmB,QAAA,eAAQnB,sDAAA;gBAAAmB,QAAA,EAAI;cAAO,CAAI;YAAC,CAAQ,CAAC,KAAC,eAAAnB,sDAAA,SAAK,CAAC,eACxCA,sDAAA;cAAAmB,QAAA,EACE,IAAI,CAACd,KAAK,CAAC2B;YAAO,CACd,CAAC;UAAA,CACL,CAAC,eACJ9B,uDAAA;YAAAiB,QAAA,gBACCnB,sDAAA;cAAAmB,QAAA,eAAQnB,sDAAA;gBAAAmB,QAAA,EAAI;cAAM,CAAI;YAAC,CAAQ,CAAC,KAAC,eAAAnB,sDAAA,SAAK,CAAC,eACvCA,sDAAA;cAAAmB,QAAA,EACEvB,mDAAM,CAACqC;YAAa,CAChB,CAAC;UAAA,CACL,CAAC,eACJ/B,uDAAA;YAAAiB,QAAA,gBACCnB,sDAAA;cAAAmB,QAAA,eAAQnB,sDAAA;gBAAAmB,QAAA,EAAI;cAAO,CAAI;YAAC,CAAQ,CAAC,KAAC,eAAAnB,sDAAA,SAAK,CAAC,eACxCA,sDAAA;cAAAmB,QAAA,EACE,IAAI,CAACb,KAAK,CAACE,KAAK,EAAE0B;YAAO,CACrB,CAAC;UAAA,CACL,CAAC,eACJhC,uDAAA;YAAAiB,QAAA,gBACCnB,sDAAA;cAAAmB,QAAA,eAAQnB,sDAAA;gBAAAmB,QAAA,EAAI;cAAK,CAAI;YAAC,CAAQ,CAAC,KAAC,eAAAnB,sDAAA,SAAK,CAAC,eACtCA,sDAAA;cAAAmB,QAAA,EACE,IAAI,CAACd,KAAK,CAAC8B;YAAK,CACZ,CAAC;UAAA,CACL,CAAC,eACJjC,uDAAA;YAAAiB,QAAA,gBACCnB,sDAAA;cAAAmB,QAAA,eAAQnB,sDAAA;gBAAAmB,QAAA,EAAI;cAAU,CAAI;YAAC,CAAQ,CAAC,KAAC,eAAAnB,sDAAA,SAAK,CAAC,eAC3CA,sDAAA;cAAAmB,QAAA,EACEiB,IAAI,CAACC,SAAS,CAAE,IAAI,CAAChC,KAAK,CAACiC,UAAW;YAAC,CACnC,CAAC;UAAA,CACL,CAAC,eACJpC,uDAAA;YAAAiB,QAAA,gBACCnB,sDAAA;cAAAmB,QAAA,eAAQnB,sDAAA;gBAAAmB,QAAA,EAAI;cAAS,CAAI;YAAC,CAAQ,CAAC,KAAC,eAAAnB,sDAAA,SAAK,CAAC,eAC1CA,sDAAA;cAAAmB,QAAA,EACEiB,IAAI,CAACC,SAAS,CAAEzC,mDAAM,CAACoB,QAAS;YAAC,CAC7B,CAAC;UAAA,CACL,CAAC,eACJd,uDAAA;YAAAiB,QAAA,gBACCnB,sDAAA;cAAAmB,QAAA,eAAQnB,sDAAA;gBAAAmB,QAAA,EAAI;cAAK,CAAI;YAAC,CAAQ,CAAC,KAAC,eAAAnB,sDAAA,SAAK,CAAC,eACtCA,sDAAA;cAAAmB,QAAA,EACE,IAAI,CAACb,KAAK,CAACE,KAAK,EAAE+B;YAAK,CACnB,CAAC;UAAA,CACL,CAAC;QAAA,CACA,CAAC,eACNvC,sDAAA;UAAAmB,QAAA,EAAG;QAEH,CAAG,CAAC,eACJnB,sDAAA;UAAAmB,QAAA,EAAG;QAEH,CAAG,CAAC;MAAA,CACA,CAAC;IAER;IAEA,OAAO,IAAI,CAACd,KAAK,CAACc,QAAQ;EAC3B;AACD;AAEA,iEAAehB,aAAa;;;;;;;;;;;;;;;;;;;;;;;;AChKO;AACJ;AACc;AAEA;AAAA;AAItC,MAAMyC,WAAW,GAAG,kDAAkD;;AAE7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,eAAe,GAAGA,CAAE,CAAQ,CAAC,KAAM;EACxC,MAAM,CAAEC,KAAK,EAAEC,QAAQ,CAAE,GAAGN,+CAAQ,CAAW,IAAK,CAAC;EAErD,IAAK,CAAEK,KAAK,EAAG;IACd,OAAO,IAAI;EACZ;EAEA,oBACC5C,uDAAA,CAACwC,yDAAM;IACNxB,SAAS,EAAEyB,8DAAM,CAACK,IAAK;IACvBC,UAAU,EAAE,QAAS;IACrBC,SAAS,EAAEA,CAAA,KAAM;MAChBH,QAAQ,CAAE,KAAM,CAAC;MACjBI,YAAY,CAACC,OAAO,CAAER,WAAW,EAAE,GAAI,CAAC;IACzC,CAAE;IACFS,OAAO,EAAE,CAAE;MACVC,KAAK,EAAEd,mDAAE,CAAE,iDAAiD,EAAE,uBAAwB,CAAC;MACvFe,GAAG,EAAE,sHAAsH;MAC3HC,OAAO,EAAE;IACV,CAAC,CAAG;IAAArC,QAAA,gBAEJnB,sDAAA;MAAMkB,SAAS,EAAC;IAAkC,CAAE,CAAC,QACrD,EAACsB,mDAAE,CAAE,8CAA8C,EAAE,uBAAwB,CAAC;EAAA,CACvE,CAAC;AAEX,CAAC;AAED,iEAAeK,eAAe;;;;;;;;;;;;;;;ACkCvB,MAAMjD,MAAgB,GAAG2B,MAAM,CAACkC,qBAAqB;;;;;;;;;;;;;;;;;;;;;AChFV;AACX;AACR;AAM/B,IAAII,aAAa,GAAG,EAAE;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,QAAQ,GAAGA,CAAE;EAACC,QAAQ;EAAE5C;AAAQ,CAAC,KAAM;EAC5C,IAAK,CAAEyC,+CAAO,CAAEC,aAAc,CAAC,IAAIE,QAAQ,KAAKF,aAAa,EAAG;IAC/D;IACA,IAAK,CAAC,CAAC,KAAKF,uDAAM,CAAE,mBAAoB,CAAC,CAACK,aAAa,CAAEH,aAAc,CAAC,EAAG;MAC1E,OAAO,IAAI;IACZ;EACD;EACAA,aAAa,GAAGE,QAAQ;EACxB,OAAO5C,QAAQ,IAAI,IAAI;AACxB,CAAC;AAED,iEAAeuC,kEAAW,CAAS,wCAAyC,CAAC,CAAEI,QAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;AC/BlB;AAC3B;AAGA;AAEf;AACyB;AAEK;AAAA;AAwB3D,MAAMS,UAA+D,GAAG;EACvE;EACAC,cAAc,EAAEhC,mDAAE,CAAE,iCAAiC,EAAE,uBAAwB,CAAC;EAChF;EACAiC,wBAAwB,EAAEjC,mDAAE,CAAE,+CAA+C,EAAE,uBAAwB,CAAC;EACxG;EACAkC,WAAW,EAAElC,mDAAE,CAAE,yBAAyB,EAAE,uBAAwB;AACrE,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMmC,OAAO,GAAGA,CAAE;EACjBrC,UAAU;EACVsC,aAAa;EACbC,IAAI;EACJC,IAAI;EACJf,QAAQ;EACR5C;AACM,CAAC,KAAM;EACb,MAAM4D,UAAU,GAAKnF,mDAAM,CAACoF,MAAM,CAACC,KAAK,CAACC,EAAE,KAAKJ,IAAI,IAAI,GAAG,KAAKlF,mDAAM,CAACuF,KAAK,IAAM,IAAI,KAAK7C,UAAU,CAACoC,WAAW;EAEjH,MAAMU,SAAoB,GAAG;IAC5BP,IAAI;IACJvC,UAAU;IACVwC,IAAI;IACJF,aAAa;IACbb;EACD,CAAC;EAED,oBACC7D,uDAAA,CAACgE,4DAAS;IAACmB,KAAK,EAAE7C,mDAAE,CAAE,SAAS,EAAE,uBAAwB,CAAE;IAAArB,QAAA,GACzDmE,MAAM,CAACC,IAAI,CAAEhB,UAAW,CAAC,CAACiB,GAAG,CAAEC,IAAI,IAAI;MACvC,IAAInC,KAAK,GAAGuB,IAAI,EAAEa,MAAM,EAAEC,aAAa,CAACC,WAAW,CAAC,CAAC,IAAI,EAAE;MAC3D,IAAK,aAAa,KAAKH,IAAI,EAAG;QAC7BnC,KAAK,GAAGuB,IAAI,EAAEa,MAAM,EAAEZ,IAAI,CAACc,WAAW,CAAC,CAAC,IAAI,EAAE;MAC/C;MACA,oBAAO5F,sDAAA,CAACiE,kEAAe;QAEtB;QACAX,KAAK,EAAEc,wDAAO,CAAEG,UAAU,CAAEkB,IAAI,CAAE,EAAEnC,KAAM,CAAE;QAC5CuC,OAAO,EAAE,IAAI,KAAKvD,UAAU,CAAEmD,IAAI,CAAG;QACrCK,QAAQ,EAAED,OAAO,IAAI;UACpBjB,aAAa,CAAE;YACd,CAAEa,IAAI,GAAII;UACX,CAAE,CAAC;QACJ;MAAE,GARGJ,IASL,CAAC;IACH,CAAE,CAAC,EACFV,UAAU,iBAAI/E,sDAAA;MAAKkB,SAAS,EAAE,yBAA0B;MAAAC,QAAA,EACvD;MACAmD,2DAAkB,CAAE9B,mDAAE,CAAE,mCAAmC,EAAE,uBAAwB,CAAC,CAACuD,OAAO,CAAE,MAAM,EAAElB,IAAI,EAAEa,MAAM,EAAEZ,IAAI,CAACc,WAAW,CAAC,CAAC,IAAI,EAAG,CAAC,EAAE,MAAM,EACvJ,mBACC1F,uDAAA;QAECgB,SAAS,EAAE,sCAAuC;QAClD8E,KAAK,EAAE1D,UAAU,CAAC2D,MAAO;QACzBH,QAAQ,EAAEI,EAAE,IAAItB,aAAa,CAAE;UAACqB,MAAM,EAAEE,QAAQ,CAAED,EAAE,CAACzE,MAAM,CAACuE,KAAM;QAAC,CAAE,CAAE;QAAA7E,QAAA,gBAEvEnB,sDAAA;UAAQgG,KAAK,EAAC,KAAK;UAAA7E,QAAA,EACjBqB,mDAAE,CAAE,SAAS,EAAE,uBAAwB;QAAC,CAClC,CAAC,EACR6B,6CAAK,CAAE,CAAC,EAAE,EAAG,CAAC,CAACmB,GAAG,CAAEY,CAAC,iBAAIpG,sDAAA;UAAgBgG,KAAK,EAAEI,CAAE;UAAAjF,QAAA,EACjDiF;QAAC,GADoCA,CAE/B,CAAE,CAAC;MAAA,GAVN,QAWE,CACP;IAAC,CACD,CAAC,EAELjF,QAAQ,eAETjB,uDAAA,CAACC,iEAAa;MAACmC,UAAU,EAAEA,UAAW;MAACH,KAAK,EAAE2C,IAAK;MAAC9C,OAAO,EAAE,eAAgB;MAAAb,QAAA,GAC3EvB,mDAAM,CAACoF,MAAM,CAACC,KAAK,CAACC,EAAE,KAAKJ,IAAI,iBAC/B9E,sDAAA,CAACmE,uDAAI;QACJW,IAAI,EAAC,qCAAqC;QAC1CM,SAAS,EAAEA;MAAU,CAAE,CAAC,EACzBxF,mDAAM,CAACoF,MAAM,CAACqB,UAAU,CAACnB,EAAE,KAAKJ,IAAI,iBACpC9E,sDAAA,CAACmE,uDAAI;QACJW,IAAI,EAAC,0CAA0C;QAC/CM,SAAS,EAAEA;MAAU,CAAE,CAAC;IAAA,CACZ,CAAC;EAAA,CAEN,CAAC;AAEd,CAAC;AAED,iEAAeT,OAAO;;;;;;;;;;;;;;;;;;;;AC7HyC;AACnB;AAAA;AAa5C;AACA;AACA;AACA;AACA;AACA,MAAM4B,YAAY,GAAGA,CAAE;EAAC1B,IAAI;EAAEvC,UAAU;EAAEsC;AAAoB,CAAC,KAAM;EACpE,MAAM4B,IAAI,gBAAGxG,sDAAA;IACZyG,uBAAuB,EAAE;MAAE;MAC1BC,MAAM,EAAEtC,wDAAO,EACd;MACA5B,mDAAE,CAAE,uEAAuE,EAAE,uBAAwB,CAAC,EAAE,kOAAkO,EAAE,MAAO;IACrV;EAAE,CAAE,CAAC;EAEN,oBACCxC,sDAAA,CAACsG,8DAAWA;EACX;IACAhD,KAAK,EAAEc,wDAAO,CAAE5B,mDAAE,CAAE,sCAAsC,EAAE,uBAAwB,CAAC,EAAEqC,IAAI,EAAEa,MAAM,EAAEZ,IAAI,IAAI,EAAG,CAAE;IAClHkB,KAAK,EAAE1D,UAAU,CAACqE,OAAQ;IAC1BH,IAAI,EAAEA,IAAK;IACXV,QAAQ,EAAEE,KAAK,IAAI;MAClBpB,aAAa,CAAE;QACd+B,OAAO,EAAEX;MACV,CAAE,CAAC;IACJ;EAAE,CAAE,CAAC;AAER,CAAC;AAED,iEAAetC,kEAAW,CAAS,4CAA6C,CAAC,CAAE6C,YAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;ACzCrD;AACyB;AACX;AACF;AACrB;AAEI;AAAA;AAMvC,MAAMQ,WAAW,GAAG;EACnB1F,KAAK,EAAE,SAAS;EAChB2F,UAAU,EAAE;AACb,CAAC;AAED,MAAMC,aAAa,GAAG;EACrBC,MAAM,EAAE,UAAU;EAClBC,QAAQ,EAAE;AACX,CAAC;AAED,MAAMC,SAAS,GAAGA,CAAE,CAAQ,CAAC,KAAM;EAClC,oBAASpH,sDAAA,CAAC6G,sEAAiB;IAAA1F,QAAA,eAC1BjB,uDAAA,CAACgE,4DAAS;MACTmB,KAAK,eAAErF,sDAAA;QAAMoB,KAAK,EAAE2F,WAAY;QAAA5F,QAAA,EAC9BqB,mDAAE,CAAE,QAAQ,EAAE,uBAAwB;MAAC,CACnC,CAAE;MACRtB,SAAS,EAAEyB,wDAAM,CAACK,IAAK;MACvBqE,WAAW,EAAE,KAAM;MAAAlG,QAAA,gBAEnBnB,sDAAA;QAAIoB,KAAK,EAAE6F,aAAc;QAAA9F,QAAA,EACvBqB,mDAAE,CAAE,2BAA2B,EAAE,uBAAwB;MAAC,CACxD,CAAC,eACLtC,uDAAA;QAAAiB,QAAA,GACEvB,mDAAM,CAAC0H,QAAQ,CAAC9B,GAAG,CAAE+B,OAAO,iBAC5BvH,sDAAA;UAAAmB,QAAA,EACE2F,wEAAc,CAAES,OAAQ;QAAC,GADlBA,OAEL,CACH,CAAC,eACHvH,sDAAA;UAAAmB,QAAA,EACEqB,mDAAE,CAAE,mBAAmB,EAAE,uBAAwB;QAAC,CAChD,CAAC;MAAA,CACF,CAAC,eACLxC,sDAAA,CAAC4G,yDAAM;QACN1F,SAAS,EAAEyB,wDAAM,CAAC6E,MAAO;QACzBlG,IAAI,EAAE,8IAA+I;QACrJG,MAAM,EAAE,QAAS;QACjBE,GAAG,EAAE,YAAa;QAClB8F,SAAS;QAAAtG,QAAA,EAERqB,mDAAE,CAAE,SAAS,EAAE,uBAAwB;MAAC,CAClC,CAAC;IAAA,CACC;EAAC,CACM,CAAC;AACrB,CAAC;AAED,iEAAekB,kEAAW,CAAS,yCAA0C,CAAC,CAAE0D,SAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzD7C;AACF;AACiB;AACF;AACL;AACnB;AACO;AACP;AACI;AACH;AAEA;AAAA;AAepC;AACA;AACA;AACA;AACA,MAAMe,IAAI,gBAAGjI,wDAAA;EAAKkI,KAAK,EAAC,4BAA4B;EAACC,OAAO,EAAC,WAAW;EAAAlH,QAAA,gBACvEnB,uDAAA;IAAMsI,CAAC,EAAC,GAAG;IAACC,IAAI,EAAC,MAAM;IAACzG,KAAK,EAAC,IAAI;IAAC0G,MAAM,EAAC;EAAI,CAAE,CAAC,eACjDxI,uDAAA;IAAAmB,QAAA,eACCnB,uDAAA;MAAMyI,CAAC,EAAC;IAAwY,CAAE;EAAC,CACjZ,CAAC;AAAA,CACA,CAAC;;AAEN;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,gBAAgB,GAAK3E,QAAgB,IAAc;EAC/D,OAAOA,QAAQ,CAACgC,OAAO,CAAE,UAAU,EAAE,KAAM,CAAC;AAC7C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAM4C,YAAY,GAAK5E,QAAgB,IAAc;EACpD,IAAK,CAAEiE,kDAAQ,CAAE,CAAE,SAAS,CAAG,CAAC,EAAG;IAClC,OAAO,EAAE;EACV;EACA,MAAMY,MAAM,GAAGjF,uDAAM,CAAE,mBAAoB,CAAC,CAACkF,oBAAoB,CAAE9E,QAAS,CAAC;EAC7E,IAAK,WAAW,KAAK,OAAO6E,MAAM,IAAI,EAAE,KAAKA,MAAM,EAAG;IACrD,MAAME,WAAW,GAAGnF,uDAAM,CAAE,mBAAoB,CAAC,CAACoF,mBAAmB,CAAE,CAAEH,MAAM,CAAG,CAAC;IACnF,IAAK,IAAI,KAAKE,WAAW,CAAE,CAAC,CAAE,IAAI,WAAW,KAAK,OAAOA,WAAW,CAAE,CAAC,CAAE,IAAI,kBAAkB,KAAKA,WAAW,CAAE,CAAC,CAAE,EAAEhE,IAAI,EAAG;MAC5H,OAAOgE,WAAW,CAAE,CAAC,CAAE,EAAExG,UAAU,EAAE4C,EAAE;IACxC;EACD;EAEA,OAAO,EAAE;AACV,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAM8D,IAAI,GAAGA,CAAA,kBAAMhJ,uDAAA,CAAC4H,8DAAW;EAC9B1G,SAAS,EAAEyB,sDAAM,CAACsG,WAAY;EAC9BC,IAAI,EAAEf,IAAK;EACX7E,KAAK,EAAEd,mDAAE,CAAE,0BAA0B,EAAE,uBAAwB,CAAE;EACjE2G,YAAY,EAAE3G,mDAAE,CAAE,sBAAsB,EAAE,uBAAwB;AAAE,CACpE,CAAC;AAEF,MAAM4G,QAAQ,GAAGA,CAAA,kBAAMpJ,uDAAA,CAAC4H,8DAAW;EAClC1G,SAAS,EAAEyB,sDAAM,CAACsG,WAAY;EAC9BC,IAAI,EAAEf,IAAK;EACX7E,KAAK,EAAEd,mDAAE,CAAE,+BAA+B,EAAE,uBAAwB,CAAE;EACtE2G,YAAY,EAAE3G,mDAAE,CAAE,sBAAsB,EAAE,uBAAwB;AAAE,CACpE,CAAC;AAEF,MAAM6G,UAAU,GAAGA,CAAA,kBAAMrJ,uDAAA,CAAC4H,8DAAW;EACpC1G,SAAS,EAAEyB,sDAAM,CAACsG,WAAY;EAC9BC,IAAI,EAAEf,IAAK;EACX7E,KAAK,EAAEd,mDAAE,CAAE,+BAA+B,EAAE,uBAAwB,CAAE;EACtE2G,YAAY,EAAE3G,mDAAE,CAAE,sBAAsB,EAAE,uBAAwB;AAAE,CACpE,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,MAAMyG,WAAW,GAAK9G,KAAa,IAA0B;EAC5D,QAASA,KAAK;IACb,KAAKvC,mDAAM,CAACoF,MAAM,CAACC,KAAK,CAACC,EAAE;MAC1B,OAAO8D,IAAI;IACZ,KAAKpJ,mDAAM,CAACoF,MAAM,CAACqB,UAAU,CAACnB,EAAE;MAC/B,OAAOkE,QAAQ;IAChB,KAAKxJ,mDAAM,CAACoF,MAAM,CAACsE,UAAU,EAAEpE,EAAE;MAChC,OAAOmE,UAAU;EACnB;EACA,OAAO,mBAAMrJ,uDAAA,CAAAkI,wDAAA,IAAI,CAAC;AACnB,CAAC;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMqB,0BAA0B,GAAGA,CAAE;EACpCpI,QAAQ;EACRmB,UAAU,GAAG;IACZyB,QAAQ,EAAE;EACX;AACD,CAAC,KAAM;EACN2D,gDAAS,CAAE,MAAM;IAChB;IACA,OAAO,MAAM;MACZ;MACA8B,UAAU,CAAE,MAAM;QACjBzB,0DAAQ,CAAE,uDAAuD,EAAE;UAClE0B,MAAM,EAAEnH,UAAU;UAClByB,QAAQ,EAAEzB,UAAU,CAACyB;QACtB,CAAE,CAAC;MACJ,CAAC,EAAE,GAAI,CAAC;IACT,CAAC;EACF,CAAE,CAAC;;EAEH;AACD;AACA;AACA;AACA;AACA;EACC,IAAK,QAAQ,KAAK,OAAO5C,QAAQ,EAAEd,KAAK,EAAEc,QAAQ,EAAEuI,QAAQ,EAAG;IAC9D,MAAM,IAAIC,KAAK,CAAExI,QAAQ,EAAEd,KAAK,EAAEc,QAAQ,EAAEuI,QAAQ,IAAI,QAAS,CAAC;EACnE;EAEA,oBACCxJ,wDAAA;IAAKgB,SAAS,EAAEyB,sDAAM,CAACiH,QAAS;IAAAzI,QAAA,gBAC/BnB,uDAAA;MAAKkB,SAAS,EAAEyB,sDAAM,CAACkH,IAAK;MAAA1I,QAAA,eAC3BnB,uDAAA,CAAC6H,0DAAO,IAAE;IAAC,CACP,CAAC,eACN7H,uDAAA;MAAKkB,SAAS,EAAEyB,sDAAM,CAACmH,WAAY;MAAA3I,QAAA,EACjCA;IAAQ,CACL,CAAC;EAAA,CACF,CAAC;AAER,CAAC;AAGD,MAAM4I,OAAO,GAAGA,CAAO;EAACzH,UAAU;EAAEH,KAAK;EAAE4B;AAAkB,CAAC,KAAM;EACnE,MAAMiG,UAAU,GAAGlC,sEAAa,CAAC,CAAC;EAElC,IAAK,EAAE,KAAKlI,mDAAM,CAACY,KAAK,EAAG;IAC1B,oBAAOR,uDAAA;MACNkB,SAAS,EAAEyB,sDAAM,CAACnC,KAAM;MACxBiG,uBAAuB,EAAE;QAACC,MAAM,EAAE5G,mDAAQ,CAAEF,mDAAM,CAACY,KAAM;MAAC;IAAE,CAAE,CAAC;EACjE;EAGA,MAAMyJ,iBAAiB,GAAGvB,gBAAgB,CAAE3E,QAAS,CAAC;;EAEtD;EACA,OAAOiG,UAAU,CAAC5I,KAAK;EAEvB;IAAA;IACC;IACApB,uDAAA;MAAA,GACKgK,UAAU;MACdE,OAAO,EAAEhE,EAAE,IAAI;QACd,MAAMiE,OAAO,GAAGjE,EAAE,CAACzE,MAAqB;QACxC,IAAK,GAAG,KAAK0I,OAAO,CAACC,QAAQ,EAAG;UAC/BlE,EAAE,CAACmE,cAAc,CAAC,CAAC;QACpB;MACD,CAAE;MAAAlJ,QAAA,eAEFnB,uDAAA,CAAC2H,sEAAgB;QAChB2C,wBAAwB,EAAErB,WAAW,CAAE9G,KAAM,CAAE;QAC/CoI,0BAA0B,EAAEhB,0BAA2B;QACvDjH,UAAU,EAAE;UACX,GAAGA,UAAU;UACb;UACAkI,yBAAyB,EAAE,IAAI;UAC/BzG,QAAQ,EAAEkG,iBAAiB;UAC3BQ,SAAS,EAAE9B,YAAY,CAAE5E,QAAS;QACnC,CAAE;QACF5B,KAAK,EAAEA,KAAM;QACbuI,UAAU,EAAE;MAAO,CACnB;IAAC,CACE;EAAC;AAER,CAAC;AAED,iEAAeX,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9MoB;AACK;AACZ;AACsC;AACxC;AACG;AAG0B;AAC7B;AACkE;AACvD;AACP;AACC;AACC;AAEC;AACG;AAAA;AAQ3C,MAAMe,IAAI,GAAGA,CAAE;EAACxI,UAAU;EAAEsC,aAAa;EAAEb,QAAQ;EAAEe;AAAW,CAAC,KAAM;EACtE,MAAMiG,QAAsC,GAAGJ,0DAAS,CAAEhH,MAAM,IAAI;IACnE,MAAMkB,IAAI,GAAGlB,MAAM,CAAE,MAAO,CAAC,CAACqH,WAAW,CAAE1I,UAAU,CAACyI,QAAQ,IAAI,UAAW,CAAC;IAC9E,OAAOlG,IAAI,IAAIlB,MAAM,CAAE,MAAO,CAAC,CAACqH,WAAW,CAAE,UAAW,CAAC;EAC1D,CAAC,EAAE,CAAE1I,UAAU,CAACyI,QAAQ,CAAG,CAAC;;EAE5B;EACA,IAAK,EAAE,KAAKnL,mDAAM,CAACY,KAAK,EAAG;IAC1B,oBAASN,wDAAA,CAAAgI,wDAAA;MAAA/G,QAAA,gBACRnB,uDAAA,CAAC6G,sEAAiB;QAAA1F,QAAA,eACjBnB,uDAAA;UACCkB,SAAS,EAAEyB,yDAAM,CAACnC,KAAM;UACxBiG,uBAAuB,EAAE;YAACC,MAAM,EAAE5G,mDAAQ,CAAEF,mDAAM,CAACY,KAAM;UAAC;QAAE,CAAE;MAAC,CAC9C,CAAC,eACpBR,uDAAA,CAAC+J,gDAAO;QAAOzH,UAAU,EAAEA,UAAW;QAACH,KAAK,EAAEA,yCAAK,CAAC+C,EAAG;QAACnB,QAAQ,EAAEA;MAAS,CAAE,CAAC;IAAA,CAC7E,CAAC;EACJ;EAEA,MAAMqB,SAAoB,GAAG;IAC5BP,IAAI,EAAEkG,QAAQ;IACdzI,UAAU;IACVwC,IAAI;IACJF,aAAa;IACbb;EACD,CAAC;EAED,oBAAS7D,wDAAA,CAAAgI,wDAAA;IAAA/G,QAAA,gBACRjB,wDAAA,CAAC2G,sEAAiB;MAAA1F,QAAA,GAChB6G,mDAAQ,CAAE,CAAE,SAAS,EAAE,aAAa,EAAE,WAAW,CAAG,CAAC,iBAAIhI,uDAAA,CAACkE,4DAAS;QAAA/C,QAAA,eACnEnB,uDAAA,CAACsG,8DAAW;UACXN,KAAK,EAAE1D,UAAU,CAAC+C,KAAK,IAAI,EAAG;UAC9B/B,KAAK,EAAEd,mDAAE,CAAE,OAAO,EAAE,uBAAwB,CAAE;UAC9CsD,QAAQ,EAAET,KAAK,IAAIT,aAAa,CAAE;YAACS;UAAK,CAAE;QAAE,CAAE;MAAC,CACtC,CAAC,eACZnF,wDAAA,CAACC,iEAAa;QAACmC,UAAU,EAAEA,UAAW;QAACH,KAAK,EAAE2C,IAAK;QAAC9C,OAAO,EAAE,yBAA0B;QAAAb,QAAA,gBACtFjB,wDAAA,CAACyE,gDAAO;UACPrC,UAAU,EAAEA,UAAW;UACvByB,QAAQ,EAAEA,QAAS;UACnBe,IAAI,EAAEA,IAAK;UACXF,aAAa,EAAEA,aAAc;UAC7BC,IAAI,EAAEkG,QAAS;UAAA5J,QAAA,GAQd6G,mDAAQ,CAAE,CAAE,MAAM,CAAG,CAAC,iBAAIhI,uDAAA,CAACiE,kEAAeA;UAC1C;YACAX,KAAK,EAAEc,wDAAO,CAAE5B,mDAAE,CAAE,4BAA4B,EAAE,uBAAwB,CAAC,EAAEuI,QAAQ,EAAErF,MAAM,EAAEZ,IAAI,CAACc,WAAW,CAAC,CAAC,IAAI,EAAG,CAAE;YAC1HC,OAAO,EAAEvD,UAAU,CAAC2I,MAAO;YAC3BnF,QAAQ,EAAEE,KAAK,IAAI;cAClBpB,aAAa,CAAE;gBACdqG,MAAM,EAAEjF;cACT,CAAE,CAAC;YACJ;UAAE,CACF,CAAC,EAKDgC,mDAAQ,CAAE,CAAE,SAAS,EAAE,WAAW,CAAG,CAAC,IAAI1F,UAAU,CAAC2I,MAAM,iBAC3DjL,uDAAA,CAAC6K,gEAAa;YACb;YACAvH,KAAK,EAAEc,wDAAO,CAAE5B,mDAAE,CAAE,gCAAgC,EAAE,uBAAwB,CAAC,EAAEuI,QAAQ,EAAErF,MAAM,EAAEZ,IAAI,CAACc,WAAW,CAAC,CAAC,IAAI,EAAG,CAAE;YAC9HI,KAAK,EAAE1D,UAAU,CAAC4I,UAAW;YAC7BC,OAAO,EAAE7F,MAAM,CAACC,IAAI,CAAE3F,mDAAM,CAACyG,UAAU,CAAC+E,WAAY,CAAC,CAAC5F,GAAG,CAAI6F,GAAsB,KAAQ;cAC1FrF,KAAK,EAAEqF,GAAG;cACV/H,KAAK,EAAE1D,mDAAM,CAACyG,UAAU,CAAC+E,WAAW,CAAEC,GAAG;YAC1C,CAAC,CAAG;YACJ;YACAvF,QAAQ,EAAEoF,UAAU,IAAItG,aAAa,CAAE;cAACsG;YAAU,CAAE;UAAE,CACtD,CAAC;QAAA,CACK,CAAC,eAEVhL,wDAAA;UAAKgB,SAAS,EAAE,kCAAmC;UAAAC,QAAA,gBAElDnB,uDAAA,CAACmE,uDAAI;YACJW,IAAI,EAAC,0CAA0C;YAC/CM,SAAS,EAAEA;UAAU,CAAE,CAAC,eAEzBpF,uDAAA,CAACuG,sDAAY;YACZ1B,IAAI,EAAEkG,QAAS;YACfzI,UAAU,EAAEA,UAAW;YACvBsC,aAAa,EAAEA;UAAc,CAAE,CAAC,eAEjC5E,uDAAA;YAAAmB,QAAA,eACCnB,uDAAA;cACCsB,IAAI,EAAE1B,mDAAM,CAAC0L,IAAI,CAACC,QAAS;cAC3B9J,MAAM,EAAC,QAAQ;cACfE,GAAG,EAAC,qBAAqB;cAAAR,QAAA,EAExBqB,mDAAE,CAAE,qBAAqB,EAAE,uBAAwB;YAAC,CACnD;UAAC,CACF,CAAC;QAAA,CACA,CAAC;MAAA,CACQ,CAAC,eAChBxC,uDAAA,CAACG,iEAAa;QACbmC,UAAU,EAAEA,UAAW;QACvBH,KAAK,EAAE2C,IAAK;QACZ9C,OAAO,EAAE,2BAA4B;QAAAb,QAAA,eAErCnB,uDAAA,CAACmE,uDAAI;UACJW,IAAI,EAAC,4CAA4C;UACjDM,SAAS,EAAEA;QAAU,CAAE;MAAC,CAEX,CAAC;IAAA,CACE,CAAC,eAEpBpF,uDAAA,CAAC4K,kEAAa;MAAAzJ,QAAA,eACbnB,uDAAA,CAACG,iEAAa;QACbmC,UAAU,EAAEA,UAAW;QACvBH,KAAK,EAAE2C,IAAK;QACZ9C,OAAO,EAAE,gCAAiC;QAAAb,QAAA,eAE1CnB,uDAAA,CAACmE,uDAAI;UACJW,IAAI,EAAC,iDAAiD;UACtDM,SAAS,EAAEA;QAAU,CAAE;MAAC,CACX;IAAC,CACF,CAAC,eAEhBpF,uDAAA,CAACoH,mDAAS;MAACrD,QAAQ,EAAEA;IAAS,CAAE,CAAC,eAEjC/D,uDAAA,CAACG,iEAAa;MAACmC,UAAU,EAAEA,UAAW;MAACH,KAAK,EAAE2C,IAAK;MAAC9C,OAAO,EAAE,yBAA0B;MAAAb,QAAA,eACtFnB,uDAAA,CAAC+J,gDAAO;QAAOzH,UAAU,EAAEA,UAAW;QAACH,KAAK,EAAEA,yCAAK,CAAC+C,EAAG;QAACnB,QAAQ,EAAEA;MAAS,CAAE;IAAC,CAChE,CAAC,eAEhB/D,uDAAA,CAAC8D,kDAAQ;MAACC,QAAQ,EAAEA;IAAS,CAAE,CAAC;EAAA,CAC/B,CAAC;AACJ,CAAC;AAED,iEAAe+G,IAAI;;;;;;;;;;;;;;;;;;;;;;;AC7J4B;AAErB;AAE0B;AACjB;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA;AAAA;AASA;AACA;AACA;AACA;AACA;AACA,MAAMW,OAAO,GAAG;EACf,eAAe,EAAE,KAAK;EACtB,qBAAqB,EAAE,CAAC;EACxBC,0CAA0C,EAAE,IAAI;EAChDC,mCAAmC,EAAE,IAAI;EACzCC,WAAW,EAAE,IAAI;EACjBhK,MAAM,EAAE,IAAI;EACZiK,YAAY,EAAE,MAAM;EACpBC,YAAY,EAAE,MAAM;EACpBC,mBAAmB,EAAE,MAAM;EAC3BC,gBAAgB,EAAE,MAAM;EACxBC,oBAAoB,EAAE,SAAS;EAC/BC,iBAAiB,EAAE,SAAS;EAC5BC,uBAAuB,EAAE,QAAQ;EACjCzH,WAAW,EAAE,IAAI;EACjB0H,wBAAwB,EAAE,SAAS;EACnCC,qBAAqB,EAAE,SAAS;EAChCC,2BAA2B,EAAE,MAAM;EACnC7H,wBAAwB,EAAE,IAAI;EAC9BD,cAAc,EAAE,IAAI;EACpByB,MAAM,EAAE;AACT,CAAC;AAGM,MAAM9D,KAAK,GAAGvC,mDAAM,CAACoF,MAAM,CAACqB,UAAU;AAEtC,MAAMvB,IAAI,GAAG3C,KAAK,CAAC+C,EAAE;AAErB,MAAMqH,QAAyE,GAAG;EACxFlH,KAAK,EAAE7C,mDAAE,CAAE,+BAA+B,EAAE,uBAAwB,CAAC;EACrE0G,IAAI,EAAE,uBAAuB;EAC7BqC,QAAQ,EAAE,SAAS;EACnBiB,OAAO,EAAE;IACRlK,UAAU,EAAEmJ;EACb,CAAC;EACDgB,UAAU,EAAE;IACXC,IAAI,EAAE,CACL;MACC7H,IAAI,EAAE,OAAO;MACbG,MAAM,EAAE,CAAE,oBAAoB,CAAE;MAChC2H,OAAO,EAAEA,CAAE;QAACC,MAAM;QAAEC;MAAQ,CAAC,KAAM;QAClC,IAAK,IAAI,KAAKA,QAAQ,EAAEC,GAAG,EAAG;UAC7B;UACA,OAAO,KAAK;QACb;QACA,OAAO,gCAAgC,KAAKF,MAAM;MACnD,CAAC;MACDG,SAAS,EAAEvB,+DAAqB,CAAQ1G,IAAK;IAC9C,CAAC;EAEH,CAAC;EACDxC,UAAU,EAAEH,KAAK,CAACG,UAAU;EAC5B0K,QAAQ,EAAE7K,KAAK,CAAC6K,QAAQ;EACxBC,IAAI,EAAE5M,KAAK,iBACVL,sDAAA,CAAC8K,6CAAI;IAAA,GAAKzK;EAAK,CAAG,CAClB;EACD6M,IAAI,EAAEA,CAAA,KAAM,IAAI;EAChBC,UAAU,EAAE;AACb,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7FwE;AACS;AAE9C;AACH;AACA;AACS;AACL;AACU;AACZ;AACA;AAE2B;AACxB;AACC;AAEN;AACU;AAAA;AAS3C;AACA;AACA;AACA,MAAMrC,IAAI,GAAGA,CAAE;EAACxI,UAAU;EAAEsC,aAAa;EAAEb,QAAQ;EAAEe;AAAW,CAAC,KAAM;EACtE,MAAMsI,QAAkC,GAAGzC,0DAAS,CAAEhH,MAAM,IAAI;IAC/D,MAAMkB,IAAI,GAAGlB,MAAM,CAAE,MAAO,CAAC,CAAC0J,WAAW,CAAE/K,UAAU,CAACgL,SAAS,IAAI,MAAO,CAAC;IAC3E,OAAOzI,IAAI,IAAIlB,MAAM,CAAE,MAAO,CAAC,CAAC0J,WAAW,CAAE,MAAO,CAAC;EACtD,CAAC,EAAE,CAAE/K,UAAU,CAACgL,SAAS,CAAG,CAAC;;EAE7B;EACA,IAAK,EAAE,KAAK1N,mDAAM,CAACY,KAAK,EAAG;IAC1B,oBAASN,wDAAA,CAAAgI,wDAAA;MAAA/G,QAAA,gBACRnB,uDAAA,CAAC6G,sEAAiB;QAAA1F,QAAA,eACjBnB,uDAAA;UACCkB,SAAS,EAAEyB,mDAAM,CAACnC,KAAM;UACxBiG,uBAAuB,EAAE;YAACC,MAAM,EAAE5G,mDAAQ,CAAEF,mDAAM,CAACY,KAAM;UAAC;QAAE,CAAE;MAAC,CAC9C,CAAC,eACpBR,uDAAA,CAAC+J,gDAAO;QAAOzH,UAAU,EAAEA,UAAW;QAACH,KAAK,EAAEA,yCAAK,CAAC+C,EAAG;QAACnB,QAAQ,EAAEA;MAAS,CAAE,CAAC;IAAA,CAC7E,CAAC;EACJ;EAEA,MAAMqB,SAAoB,GAAG;IAC5BP,IAAI,EAAEuI,QAAQ;IACd9K,UAAU;IACVwC,IAAI;IACJF,aAAa;IACbb;EACD,CAAC;EAGD,oBAAS7D,wDAAA,CAAAgI,wDAAA;IAAA/G,QAAA,gBACRjB,wDAAA,CAAC2G,sEAAiB;MAAA1F,QAAA,GAChB6G,mDAAQ,CAAE,CAAE,SAAS,EAAE,aAAa,EAAE,WAAW,CAAG,CAAC,iBAAIhI,uDAAA,CAACkE,4DAAS;QAAA/C,QAAA,eACnEnB,uDAAA,CAACsG,8DAAW;UACXN,KAAK,EAAE1D,UAAU,CAAC+C,KAAK,IAAI,EAAG;UAC9B/B,KAAK,EAAEd,mDAAE,CAAE,OAAO,EAAE,uBAAwB,CAAE;UAC9CsD,QAAQ,EAAET,KAAK,IAAIT,aAAa,CAAE;YAACS;UAAK,CAAE;QAAE,CAAE;MAAC,CACtC,CAAC,eACZnF,wDAAA,CAACC,kEAAa;QAACmC,UAAU,EAAEA,UAAW;QAACH,KAAK,EAAE2C,IAAK;QAAC9C,OAAO,EAAE,oBAAqB;QAAAb,QAAA,gBACjFnB,uDAAA,CAAC2E,gDAAO;UACPrC,UAAU,EAAEA,UAAW;UACvByB,QAAQ,EAAEA,QAAS;UACnBe,IAAI,EAAEA,IAAK;UACXF,aAAa,EAAEA,aAAc;UAC7BC,IAAI,EAAEuI;QAAS,CAAE,CAAC,eAEnBlN,wDAAA;UAAKgB,SAAS,EAAE,kCAAmC;UAAAC,QAAA,gBAElDnB,uDAAA,CAACmE,uDAAI;YACJW,IAAI,EAAC,qCAAqC;YAC1CM,SAAS,EAAEA;UAAU,CAAE,CAAC,eAEzBpF,uDAAA,CAAC6K,gEAAa;YACbvH,KAAK,EAAEd,mDAAE,CAAE,UAAU,EAAE,uBAAwB,CAAE;YACjDwD,KAAK,EAAE1D,UAAU,CAACiL,QAAS;YAC3BC,aAAa,EAAE,MAAO;YACtBrC,OAAO,EAAE7F,MAAM,CAACmI,OAAO,CAAE7N,mDAAM,CAACqF,KAAK,CAACyI,OAAQ,CAAC,CAAClI,GAAG,CAAE,CAAE,CAAEQ,KAAK,EAAE1C,KAAK,CAAE,MAAQ;cAC9E0C,KAAK;cACL1C;YACD,CAAC,CAAG,CAAE;YACNwC,QAAQ,EAAEE,KAAK,IAAI;cAClBpB,aAAa,CAAE;gBACd2I,QAAQ,EAAEvH;cACX,CAAE,CAAC;YACJ;UAAE,CAAE,CAAC,eAENhG,uDAAA,CAACuG,sDAAY;YACZ1B,IAAI,EAAEuI,QAAS;YACf9K,UAAU,EAAEA,UAAW;YACvBsC,aAAa,EAAEA;UAAc,CAAE,CAAC,eAEjC5E,uDAAA;YAAAmB,QAAA,eACCnB,uDAAA;cACCsB,IAAI,EAAE1B,mDAAM,CAAC0L,IAAI,CAACqC,IAAK;cACvBlM,MAAM,EAAC,QAAQ;cACfE,GAAG,EAAC,qBAAqB;cAAAR,QAAA,EAExBqB,mDAAE,CAAE,qBAAqB,EAAE,uBAAwB;YAAC,CACnD;UAAC,CACF,CAAC;QAAA,CACA,CAAC;MAAA,CACQ,CAAC,eAChBxC,uDAAA,CAACG,kEAAa;QAACmC,UAAU,EAAEA,UAAW;QAACH,KAAK,EAAE2C,IAAK;QAAC9C,OAAO,EAAE,sBAAuB;QAAAb,QAAA,eACnFnB,uDAAA,CAACmE,uDAAI;UACJW,IAAI,EAAC,uCAAuC;UAC5CM,SAAS,EAAEA;QAAU,CAAE;MAAC,CAEX,CAAC;IAAA,CACE,CAAC,eAEpBpF,uDAAA,CAAC4K,kEAAa;MAAAzJ,QAAA,eACbnB,uDAAA,CAACG,kEAAa;QACbmC,UAAU,EAAEA,UAAW;QACvBH,KAAK,EAAE2C,IAAK;QACZ9C,OAAO,EAAE,2BAA4B;QAAAb,QAAA,eAErCnB,uDAAA,CAACmE,uDAAI;UACJW,IAAI,EAAC,4CAA4C;UACjDM,SAAS,EAAEA;QAAU,CAAE;MAAC,CACX;IAAC,CACF,CAAC,eAEhBpF,uDAAA,CAACoH,kDAAS;MAACrD,QAAQ,EAAEA;IAAS,CAAE,CAAC,eAEjC/D,uDAAA,CAACG,kEAAa;MAACmC,UAAU,EAAEA,UAAW;MAACH,KAAK,EAAE2C,IAAK;MAAC9C,OAAO,EAAE,oBAAqB;MAAAb,QAAA,eACjFnB,uDAAA,CAAC+J,gDAAO;QAAOzH,UAAU,EAAEA,UAAW;QAACH,KAAK,EAAEA,yCAAK,CAAC+C,EAAG;QAACnB,QAAQ,EAAEA;MAAS,CAAE;IAAC,CAChE,CAAC,eAEhB/D,uDAAA,CAAC8D,kDAAQ;MAACC,QAAQ,EAAEA;IAAS,CAAE,CAAC;EAAA,CAC/B,CAAC;AACJ,CAAC;AAED,iEAAe+G,IAAI;;;;;;;;;;;;;;;;;;;;;;;ACzI4B;AACrB;AAE0B;AACjB;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA;AAAA;AAUA;AACA;AACA;AACA;AACA;AACA,MAAMW,OAAO,GAAG;EACfC,0CAA0C,EAAE,IAAI;EAChDC,mCAAmC,EAAE,IAAI;EACzCC,WAAW,EAAE,IAAI;EACjBhK,MAAM,EAAE,IAAI;EACZiK,YAAY,EAAE,MAAM;EACpBC,YAAY,EAAE,MAAM;EACpBC,mBAAmB,EAAE,MAAM;EAC3BC,gBAAgB,EAAE,MAAM;EACxB4B,qBAAqB,EAAE,SAAS;EAChCC,kBAAkB,EAAE,SAAS;EAC7BC,wBAAwB,EAAE,QAAQ;EAClCC,4BAA4B,EAAE,MAAM;EACpCrJ,WAAW,EAAE,IAAI;EACjB0H,wBAAwB,EAAE,SAAS;EACnCC,qBAAqB,EAAE,SAAS;EAChCC,2BAA2B,EAAE,MAAM;EACnC7H,wBAAwB,EAAE,IAAI;EAC9BD,cAAc,EAAE,IAAI;EACpByB,MAAM,EAAE,CAAC;EACTgG,oBAAoB,EAAE,MAAM;EAC5BC,iBAAiB,EAAE;AACpB,CAAC;AAEM,MAAM/J,KAAK,GAAGvC,mDAAM,CAACoF,MAAM,CAACC,KAAK;AAEjC,MAAMH,IAAI,GAAG3C,KAAK,CAAC+C,EAAE;AAErB,MAAMqH,QAAyE,GAAG;EACxFlH,KAAK,EAAE7C,mDAAE,CAAE,0BAA0B,EAAE,uBAAwB,CAAC;EAChE0G,IAAI,EAAE,uBAAuB;EAC7BqC,QAAQ,EAAE,SAAS;EACnBiB,OAAO,EAAE;IACRlK,UAAU,EAAEmJ;EACb,CAAC;EACDgB,UAAU,EAAE;IACXC,IAAI,EAAE,CACL;MACC7H,IAAI,EAAE,OAAO;MACbG,MAAM,EAAE,CAAE,oBAAoB,CAAE;MAChC2H,OAAO,EAAEA,CAAE;QAACC,MAAM;QAAEC;MAAQ,CAAC,KAAM;QAClC,IAAK,IAAI,KAAKA,QAAQ,EAAEC,GAAG,EAAG;UAC7B;UACA,OAAO,KAAK;QACb;QACA,OAAO,uBAAuB,KAAKF,MAAM;MAC1C,CAAC;MACDG,SAAS,EAAEvB,+DAAqB,CAAQ1G,IAAK;IAC9C,CAAC;EAEH,CAAC;EACDxC,UAAU,EAAEH,KAAK,CAACG,UAAU;EAC5B0K,QAAQ,EAAE7K,KAAK,CAAC6K,QAAQ;EACxBC,IAAI,EAAE5M,KAAK,iBACVL,sDAAA,CAAC8K,6CAAI;IAAA,GAAKzK;EAAK,CAAG,CAClB;EACD6M,IAAI,EAAEA,CAAA,KAAM,IAAI;EAChBC,UAAU,EAAE;AACb,CAAC;;;;;;;;;;;;;;;;;;;AC7F0D;AACV;AAMjD;AACA;AACA;AACO,MAAMnF,QAAQ,GAAKiG,OAAsB,IAAe;EAC9D,OAAOA,OAAO,CAACC,QAAQ,CAAEtO,mDAAM,CAACqC,aAAc,CAAC;AAChD,CAAC;;AAED;AACA;AACA;AACA;AACO,MAAMuJ,qBAAsC,GAAQ1G,IAAY,IAAM,CAAE;EAAC+H;AAAQ,CAAC,KAAM;EAC9F,OAAOmB,8DAAW,CAAKlJ,IAAI,EAAEqJ,qBAAqB,CAAKtB,QAAQ,CAACC,GAAI,CAAE,CAAC;AACxE,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAMqB,qBAAqB,GAAQ5B,QAAQ,IAAS;EACnDjH,MAAM,CAACmI,OAAO,CAAElB,QAAS,CAAC,CAAC6B,OAAO,CAAE,CAAE,CAAE/C,GAAG,EAAErF,KAAK,CAAE,KAAM;IACzD,IAAK,SAAS,KAAKA,KAAK,EAAG;MAC1BuG,QAAQ,CAAElB,GAAG,CAAE,GAAG,IAAI;IACvB;IACA,IAAK,QAAQ,KAAK,OAAOrF,KAAK,EAAG;MAChCmI,qBAAqB,CAAE5B,QAAQ,CAAElB,GAAG,CAAG,CAAC;IACzC;IACA;IACA,IAAK,GAAG,KAAKrF,KAAK,EAAG;MACpB,OAAOuG,QAAQ,CAAElB,GAAG,CAAE;IACvB;EACD,CAAE,CAAC;EACH,OAAOkB,QAAQ;AAChB,CAAC;;;;;;;;;;;;;;;;;;;;ACzCgE;AAC1B;AACS;AACQ;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA,iEAAe,MAAM;EACpB;EACA8B,iFAAc,CAAE,MAAMC,yBAAkD,EAAEE,MAAO,CAAC;;EAElF;EACAjN,MAAM,CAACkC,qBAAqB,CAACtD,aAAa,GAAGA,iEAAa;EAC1DoB,MAAM,CAACkC,qBAAqB,CAACsG,OAAO,GAAGA,uDAAO;EAC9CxI,MAAM,CAACkC,qBAAqB,CAAC+H,qBAAqB,GAAGA,2DAAqB;AAC3E,CAAC;;;;;;;;;;;;;;;;;;;;ACnB2C;AAC+B;AAClC;AAAA;AAGzC,SAASkD,qBAAqBA,CAAA,EAAG;EAChC;EACA,IAAK9O,mDAAM,CAACoB,QAAQ,CAAC2N,cAAc,EAAG;IACrC;EACD;EACA;EACA,IAAK,GAAG,KAAKxL,YAAY,CAACyL,OAAO,CAAEhM,oEAAY,CAAC,EAAG;IAClD;EACD;EACA,MAAMiM,YAAY,GAAGC,QAAQ,CAACC,gBAAgB,CAAE,oDAAqD,CAAC;;EAEtG;AACD;AACA;AACA;EACC,IAAI;IACHF,YAAY,CAACT,OAAO,CAAEnF,WAAW,IAAI;MACpC,MAAM+F,IAAI,GAAGP,4DAAU,CAAExF,WAAY,CAAC;MACtC+F,IAAI,CAACjO,MAAM,eAAEf,sDAAA,CAAC6C,mEAAe,IAAE,CAAE,CAAC;IACnC,CAAE,CAAC;EACJ,CAAC,CAAC,OAAQoM,CAAC,EAAG;IACbrO,OAAO,CAACJ,KAAK,CAAEyO,CAAE,CAAC;EACnB;AACD;;AAGA;AACA;AACA;AACA;AACA;AACA,iEAAe,MAAM;EACpB;EACA,IAAK,GAAG,KAAKrP,mDAAM,CAACsP,SAAS,EAAG;IAC/B;EACD;EACA;EACAC,MAAM,CAAEL,QAAS,CAAC,CAACM,EAAE,CAAE,cAAc,EAAE,YAAW;IACjDV,qBAAqB,CAAC,CAAC;EACxB,CAAE,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;AC7CD;AACA,iEAAe,CAAC,oCAAoC;;;;;;;;;;;;;;;ACDpD;AACA,iEAAe,CAAC,gEAAgE;;;;;;;;;;;;;;;ACDhF;AACA,iEAAe,CAAC,0BAA0B;;;;;;;;;;;;;;;ACD1C;AACA,iEAAe,CAAC,+PAA+P;;;;;;;;;;;ACDlQ;;AAEb,QAAQ,mBAAO,CAAC,qBAAW;AAC3B,IAAI,KAAqC,EAAE,EAG1C,CAAC;AACF;AACA,EAAE,kBAAkB;AACpB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,EAAE,mBAAmB;AACrB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;;;;;;;;;;ACxBA;;AAEA;AACA,EAAE,KAA4D;AAC9D,EAAE,CACwG;AAC1G,CAAC,uBAAuB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,UAAU;AACd;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB,eAAe,UAAU;AACzB;AACA;AACA;AACA,6FAA6F,aAAa;AAC1G;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB,eAAe,UAAU;AACzB;AACA;AACA;AACA,6EAA6E,eAAe;AAC5F;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,OAAO;AACpB,aAAa,UAAU;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,EAAE,iBAAiB,EAAE,MAAM;AAC3D;AACA,+BAA+B,QAAQ;AACvC,wDAAwD;AACxD,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,0BAA0B;AACvC,aAAa,mBAAmB;AAChC,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;AACA;AACA,4CAA4C;;AAE5C;AACA;AACA,kBAAkB,sBAAsB;AACxC,kBAAkB,sBAAsB;AACxC,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,+CAA+C;;AAE/C;AACA;AACA,6CAA6C;;AAE7C;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kDAAkD;;AAElD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4EAA4E;AAC5E,4EAA4E;AAC5E,wFAAwF;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF;AAClF,0EAA0E;AAC1E,0EAA0E;AAC1E;AACA,uDAAuD;AACvD,uDAAuD;AACvD,sEAAsE;AACtE,yEAAyE;AACzE,4DAA4D;AAC5D,iDAAiD;AACjD,oDAAoD;AACpD,4CAA4C;AAC5C,8DAA8D;AAC9D,8DAA8D;AAC9D,4CAA4C;AAC5C,iDAAiD;AACjD,gEAAgE;AAChE,iDAAiD;AACjD,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD,+CAA+C;;AAE/C;AACA;AACA;AACA;AACA,oDAAoD;;AAEpD;AACA;AACA;AACA,oCAAoC;AACpC,uCAAuC;;AAEvC;AACA,gBAAgB,SAAS;AACzB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,UAAU;AACV;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,MAAM;AACtB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C;AAC5C,sFAAsF,6DAA6D;AACnJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uTAAuT;AACvT;AACA;AACA;AACA,QAAQ,wCAAwC,oFAAoF,oKAAoK,iHAAiH;AACzZ;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;AACD;;;;;;;;;;;;ACzhDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,IAAI,IAAqC;AACzC;AACA;;AAEA,YAAY,mBAAO,CAAC,iBAAO;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,iGAAiG,eAAe;AAChH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA,KAAK,GAAG;;AAER,kDAAkD;AAClD;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,4BAA4B;AAC5B;AACA,qCAAqC;;AAErC,gCAAgC;AAChC;AACA;;AAEA,gCAAgC;;AAEhC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;;AAGF;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,sBAAsB;AACtB;AACA,SAAS;AACT,uBAAuB;AACvB;AACA,SAAS;AACT,uBAAuB;AACvB;AACA,SAAS;AACT,wBAAwB;AACxB;AACA,SAAS;AACT,wBAAwB;AACxB;AACA,SAAS;AACT,iCAAiC;AACjC;AACA,SAAS;AACT,2BAA2B;AAC3B;AACA,SAAS;AACT,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,2DAA2D;;AAE3D;AACA;;AAEA;AACA,yDAAyD;AACzD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;;AAEA;AACA;AACA,gFAAgF;AAChF;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;;;AAGlB;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;;;AAGJ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2HAA2H;AAC3H;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA,oEAAoE;;AAEpE;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,eAAe;AAC1B,WAAW,GAAG;AACd,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;;AAER;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;;AAEA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA,oBAAoB;AACpB,2DAA2D,UAAU;AACrE,yBAAyB,UAAU;AACnC;AACA,aAAa,UAAU;AACvB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,GAAG;AACd;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,6DAA6D;AAC7D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,GAAG;AACd;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,iBAAiB;AACvC;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,4CAA4C;;AAE5C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB;;;AAGA;AACA;AACA;;AAEA,oBAAoB,iBAAiB;AACrC;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C;AAC9C;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA,0DAA0D;AAC1D;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sCAAsC;AACtC;;AAEA;;AAEA,gBAAgB;AAChB,WAAW;AACX,YAAY;AACZ,GAAG;AACH;;;;;;;;;;;;ACjyCa;;AAEb,IAAI,KAAqC,EAAE,EAE1C,CAAC;AACF,EAAE,wFAAkE;AACpE;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,EAAE,EAAE,OAAO;AAC5C;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,YAAY;AACvB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,0CAA0C,YAAY;AACtD,cAAc,oEAAoE;AAClF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;;;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzBA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;;;;;WCVA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;ACNwC;AAExC9N,OAAO,CAAC0O,KAAK,CAAE,2BAA4B,CAAC;AAE5CD,4DAAO,CAAC,CAAC;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAK,OAAO9N,MAAM,CAACgO,EAAE,CAACpF,OAAO,KAAK,WAAW,IAAI,OAAO5I,MAAM,CAACgO,EAAE,CAACC,OAAO,KAAK,WAAW,EAAG;EAC3FlB,yDAAgC,CAAC,CAAC;AACnC,CAAC,MAAM,IAAK,OAAO/M,MAAM,CAACgO,EAAE,CAACG,SAAS,KAAK,WAAW,EAAG;EACxDnO,MAAM,CAACgO,EAAE,CAACG,SAAS,CAACC,IAAI,CAAE,OAAO,EAAE,MAAM;IACxCrB,yDAAgC,CAAC,CAAC;EACnC,CAAE,CAAC;AACJ,C","sources":["webpack://@onpointplugins/advanced-sidebar-menu/./.yarn/__virtual__/@lipemat-js-boilerplate-gutenberg-virtual-329647b4db/0/cache/@lipemat-js-boilerplate-gutenberg-npm-3.4.2-78591b901d-4704295112.zip/node_modules/@lipemat/js-boilerplate-gutenberg/dist/index.module.js","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/components/ErrorBoundary.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/components/TransformNotice.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/globals/config.ts","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/SideLoad.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/Display.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/ExcludeField.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/InfoPanel.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/Preview.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/categories/Edit.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/categories/block.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/pages/Edit.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/pages/block.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/helpers.ts","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/index.ts","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/modules/widgets.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/components/transform-notice.pcss","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/info-panel.pcss","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/pages/edit.pcss","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/preview.pcss","webpack://@onpointplugins/advanced-sidebar-menu/./.yarn/__virtual__/react-dom-virtual-da4ced7575/0/cache/react-dom-npm-18.2.0-dd675bca1c-66dfc5f93e.zip/node_modules/react-dom/client.js","webpack://@onpointplugins/advanced-sidebar-menu/./.yarn/cache/dompurify-npm-3.1.6-344fd47e23-3de1cca187.zip/node_modules/dompurify/dist/purify.js","webpack://@onpointplugins/advanced-sidebar-menu/./.yarn/cache/react-npm-18.2.0-1eae08fee2-b562d9b569.zip/node_modules/react/cjs/react-jsx-runtime.development.js","webpack://@onpointplugins/advanced-sidebar-menu/./.yarn/cache/react-npm-18.2.0-1eae08fee2-b562d9b569.zip/node_modules/react/jsx-runtime.js","webpack://@onpointplugins/advanced-sidebar-menu/./.yarn/cache/react-string-replace-npm-1.1.1-614c815872-5a4a4fd9c3.zip/node_modules/react-string-replace/index.js","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/ sync block\\.tsx$","webpack://@onpointplugins/advanced-sidebar-menu/external var \"React\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"ReactDOM\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"jQuery\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"lodash\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.apiFetch\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.blockEditor\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.blocks\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.components\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.data\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.hooks\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.htmlEntities\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.i18n\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.plugins\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.richText\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.serverSideRender\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.url\"","webpack://@onpointplugins/advanced-sidebar-menu/webpack/bootstrap","webpack://@onpointplugins/advanced-sidebar-menu/webpack/runtime/compat get default export","webpack://@onpointplugins/advanced-sidebar-menu/webpack/runtime/define property getters","webpack://@onpointplugins/advanced-sidebar-menu/webpack/runtime/harmony module decorator","webpack://@onpointplugins/advanced-sidebar-menu/webpack/runtime/hasOwnProperty shorthand","webpack://@onpointplugins/advanced-sidebar-menu/webpack/runtime/make namespace object","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/block-editor.ts"],"sourcesContent":["import e from\"@wordpress/api-fetch\";import{__ as t}from\"@wordpress/i18n\";import{addQueryArgs as n}from\"@wordpress/url\";import{registerBlockType as r,unregisterBlockType as o}from\"@wordpress/blocks\";import{registerPlugin as i,unregisterPlugin as u}from\"@wordpress/plugins\";import{select as c,dispatch as s,useDispatch as a,useSelect as f}from\"@wordpress/data\";import{registerFormatType as d,unregisterFormatType as l}from\"@wordpress/rich-text\";function p(){return(p=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var v,h,m=[];function g(e){return m.push(e),m.length-1}function w(e){return delete m[e],m}function b(){return void 0!==h}function P(e){E(),h=g(function(e){function t(e,n){var r=e.headers,o=void 0===r?{}:r;for(var i in o)\"x-wp-nonce\"===i.toLowerCase()&&delete o[i];return n(p({},e,{headers:p({},o,{\"X-WP-Nonce\":t.nonce})}))}return t.nonce=e,t}(e))}function y(){void 0!==h&&(w(h),h=void 0),void 0===v&&(v=g(function(e,t){if(void 0!==e.headers)for(var n in e.headers)\"x-wp-nonce\"===n.toLowerCase()&&delete e.headers[n];return t(e,t)}))}function E(){void 0!==h&&w(h),void 0!==v&&w(v),h=void 0,v=void 0}var T=function(e,t){return void 0===t&&(t=!0),Promise.resolve(function(e,t){return void 0===t&&(t=!0),t?204===e.status?null:e.json?e.json():Promise.reject(e):e}(e,t)).catch(function(e){return k(e,t)})};function k(e,n){if(void 0===n&&(n=!0),!n)throw e;return function(e){var n={code:\"invalid_json\",message:t(\"The response is not a valid JSON response.\")};if(!e||!e.json)throw n;return e.json().catch(function(){throw n})}(e).then(function(e){var n={code:\"unknown_error\",message:t(\"An unknown error occurred.\")};throw\"rest_cookie_invalid_nonce\"===e.code&&b()&&(e.code=\"external_rest_cookie_invalid_nonce\"),e||n})}var j,x=[\"url\",\"path\",\"data\",\"parse\"],_={Accept:\"application/json, */*;q=0.1\"},O={credentials:\"include\"},B=function(e){if(e.status>=200&&e.status<300)return e;throw e},C=function(e){var n=function e(t,n){return function(r){return void 0===n[t]?r:(0,n[t])(r,t===n.length-1?function(e){return e}:e(t+1,n))}}(0,m.filter(Boolean))(p({},O,e)),r=n.url,o=n.path,i=n.data,u=n.parse,c=void 0===u||u,s=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t.indexOf(n=i[r])>=0||(o[n]=e[n]);return o}(n,x),a=n.body,f=n.headers;return f=p({},_,f),i&&(a=JSON.stringify(i),f[\"Content-Type\"]=\"application/json\"),window.fetch(r||o||\"\",p({},s,{body:a,headers:f})).then(function(e){return Promise.resolve(e).then(B).catch(function(e){return k(e,c)}).then(function(e){return T(e,c)})},function(){throw{code:\"fetch_error\",message:t(\"You are probably offline.\")}})},G=function(e,t,n){return Promise.resolve(R(e,t,n,!1)).then(function(e){return Promise.resolve(T(e)).then(function(t){return{items:t,totalPages:parseInt(e.headers.get(\"X-WP-TotalPages\")||\"1\"),totalItems:parseInt(e.headers.get(\"X-WP-Total\")||\"0\")}})})},R=function(t,r,o,i){void 0===i&&(i=!0);try{return Promise.resolve(e(void 0===o||\"GET\"===r||\"OPTIONS\"===r?{method:r,parse:i,path:n(t,null!=o?o:{})}:{data:o,method:r,parse:i,path:t}))}catch(e){return Promise.reject(e)}};function I(e){return{create:function(t){return R(e,\"POST\",t)},delete:function(t){return R(e+\"/\"+t,\"DELETE\",{force:!0})},get:function(t){return R(e,\"GET\",t)},getById:function(t,n){return R(e+\"/\"+t,\"GET\",n)},getWithPagination:function(t){return G(e,\"GET\",t)},trash:function(t){return R(e+\"/\"+t,\"DELETE\")},update:function(t){return R(e+\"/\"+t.id,\"PATCH\",t)}}}function S(t){var n={};return[\"categories\",\"comments\",\"blocks\",\"media\",\"menus\",\"menu-locations\",\"menu-items\",\"statuses\",\"pages\",\"posts\",\"tags\",\"taxonomies\",\"search\"].map(function(e){return n[e]=function(){return I(\"/wp/v2/\"+e)}}),n.menuLocations=function(){return I(\"/wp/v2/menu-locations\")},n.menuItems=function(){return I(\"/wp/v2/menu-items\")},n.users=function(){var e=I(\"/wp/v2/users\");return e.delete=function(e,t){return void 0===t&&(t=!1),R(\"/wp/v2/users/\"+e,\"DELETE\",{force:!0,reassign:t})},e},n.applicationPasswords=function(){return{create:function(e,t){return R(\"/wp/v2/users/\"+e+\"/application-passwords\",\"POST\",t)},delete:function(e,t){return R(\"/wp/v2/users/\"+e+\"/application-passwords/\"+t,\"DELETE\")},get:function(e){return R(\"/wp/v2/users/\"+e+\"/application-passwords\",\"GET\")},getById:function(e,t){return R(\"/wp/v2/users/\"+e+\"/application-passwords/\"+t,\"GET\")},introspect:function(e){return R(\"/wp/v2/users/\"+e+\"/application-passwords/introspect\",\"GET\")},update:function(e,t,n){return R(\"/wp/v2/users/\"+e+\"/application-passwords/\"+t,\"PUT\",n)}}},n.settings=function(){return{get:function(){return R(\"/wp/v2/settings\",\"GET\")},update:function(e){return R(\"/wp/v2/settings\",\"POST\",e)}}},n.types=function(){return{get:function(){return R(\"/wp/v2/types\",\"GET\")},getById:function(e){return R(\"'/wp/v2/types'/\"+e,\"GET\")}}},void 0!==t&&Object.keys(t).map(function(e){return n[e]=t[e]}),e.setFetchHandler(C),n}function A(){w(j)}function L(t,n){j&&w(j),j=g(e.createRootURLMiddleware(t.replace(/\\/$/,\"\")+\"/\")),window.location.hostname&&new URL(t).hostname===window.location.hostname?E():void 0!==n?P(n):b()||y()}var M,D=function(r){return Promise.resolve(function(o,i){try{var u=Promise.resolve(e({path:\"/\",method:\"GET\"})).then(function(e){return e.authentication[\"application-passwords\"]?n(e.authentication[\"application-passwords\"].endpoints.authorization,r):{code:\"application_passwords_disabled\",message:t(\"Application passwords are not enabled on this site.\"),data:null}})}catch(e){return e}return u&&u.then?u.then(void 0,function(e){return e}):u}())};function N(){return void 0!==M}function W(){void 0!==M&&(w(M),M=void 0)}function U(e,t){W(),M=g(function(n,r){var o=n.headers;return r(p({},n,{headers:p({},void 0===o?{}:o,{Authorization:\"Basic \"+btoa(e+\":\"+t)})}),r)})}function X(e,t,n){if(!e.s){if(n instanceof z){if(!n.s)return void(n.o=X.bind(null,e,t));1&t&&(t=n.s),n=n.v}if(n&&n.then)return void n.then(X.bind(null,e,t),X.bind(null,e,2));e.s=t,e.v=n;const r=e.o;r&&r(e)}}var z=function(){function e(){}return e.prototype.then=function(t,n){var r=new e,o=this.s;if(o){var i=1&o?t:n;if(i){try{X(r,1,i(this.v))}catch(e){X(r,2,e)}return r}return this}return this.o=function(e){try{var o=e.v;1&e.s?X(r,1,t?t(o):o):n?X(r,1,n(o)):X(r,2,o)}catch(e){X(r,2,e)}},r},e}(),H=function(e,t){F({afterReload:Q,beforeReload:K,getContext:e,pluginModule:t,register:r,unregister:o,type:\"block\"})},J=function(e,t){F({afterReload:function(){},beforeReload:function(){},getContext:e,pluginModule:t,register:i,unregister:u,type:\"plugin\"})},q=function(e,t){F({afterReload:function(){},beforeReload:function(){},getContext:e,pluginModule:t,register:d,unregister:l,type:\"format\"})},F=function(e){var t=e.afterReload,n=e.beforeReload,r=e.getContext,o=e.pluginModule,i=e.register,u=e.unregister,c=e.type,s={},a=function(){n();var e=r();if(e){var o=[];return e.keys().forEach(function(t){var n=e(t);n.exclude||n!==s[t]&&(s[n.name+\"-\"+c]&&u(n.name),i(n.name,n.settings),o.push(n.name),s[n.name+\"-\"+c]=n)}),t(o),e}},f=a();o.hot&&null!=f&&f.id&&o.hot.accept(f.id.toString(),a)},Y=null,$=[],K=function(){Y=c(\"core/block-editor\").getSelectedBlockClientId()},Q=function(e){void 0===e&&(e=[]);try{return Promise.resolve(s(\"core/block-editor\").clearSelectedBlock()).then(function(){function t(){function e(){$=[],Y=null}var t=Y?Promise.resolve(s(\"core/block-editor\").selectBlock(Y)).then(function(){}):Promise.resolve(s(\"core/block-editor\").clearSelectedBlock()).then(function(){});return t&&t.then?t.then(e):e()}c(\"core/block-editor\").getBlocks().forEach(function(t){return function e(t,n){void 0===t&&(t=[]);var r=n.clientId,o=n.innerBlocks;t.includes(n.name)&&$.push(r),o.forEach(function(n){return e(t,n)})}(e,t)});var n=function(e,t,n){var r,o,i=-1;return function n(u){try{for(;++i<e.length;)if((u=t(i))&&u.then){if(!((c=u)instanceof z&&1&c.s))return void u.then(n,o||(o=X.bind(null,r=new z,2)));u=u.v}r?X(r,1,u):r=u}catch(e){X(r||(r=new z),2,e)}var c}(),r}($,function(e){return Promise.resolve(s(\"core/block-editor\").selectBlock($[e])).then(function(){})});return n&&n.then?n.then(t):t()})}catch(e){return Promise.reject(e)}};function V(e,t){var n={current:e},r={current:t};return t.some(function(e,t){return e!==r.current[t]})&&(n.current=e,r.current=t),function(){return n.current.apply(n,[].slice.call(arguments))}}function Z(e){var t=a(\"core/editor\").editPost,n=f(function(e){return{previous:e(\"core/editor\").getCurrentPostAttribute(\"meta\"),current:e(\"core/editor\").getEditedPostAttribute(\"meta\")}}),r=\"string\"==typeof e&&\"\"!==e,o=r?n.current[e]:n.current,i=r?n.previous[e]:n.previous,u=V(function(n){var o;r&&t({meta:(o={},o[e]=n,o)})},[t,e,r]),c=V(function(e,n){var r;t({meta:(r={},r[e]=n,r)})},[t]);return r?[o,u,i]:[o,c,i]}function ee(e){var t=a(\"core/editor\").editPost,n=f(function(t){var n=t(\"core\").getTaxonomy(e);return n?{taxonomy:n,current:t(\"core/editor\").getEditedPostAttribute(n.rest_base),previous:t(\"core/editor\").getCurrentPostAttribute(n.rest_base)}:{current:[],previous:[]}}),r=V(function(e){try{var r;return Promise.resolve(n.taxonomy?t(((r={})[n.taxonomy.rest_base]=e,r)):void 0)}catch(e){return Promise.reject(e)}},[n,t]);return[n.current,r,n.previous]}export{g as addMiddleware,F as autoload,H as autoloadBlocks,q as autoloadFormats,J as autoloadPlugins,W as clearApplicationPassword,y as clearNonce,I as createMethods,C as defaultFetchHandler,R as doRequest,G as doRequestWithPagination,U as enableApplicationPassword,D as getAuthorizationUrl,N as hasApplicationPassword,b as hasExternalNonce,w as removeMiddleware,E as restoreNonce,A as restoreRootURL,P as setNonce,L as setRootURL,Z as usePostMeta,ee as useTerms,S as wpapi};\n//# sourceMappingURL=index.module.js.map\n","import {Component, ErrorInfo, PropsWithChildren} from 'react';\nimport {CONFIG} from '../globals/config';\nimport {addQueryArgs} from '@wordpress/url';\nimport {sanitize} from 'dompurify';\n\ntype Props = {\n\tattributes: object,\n\tblock: string;\n\tsection: string;\n}\n\n/**\n * Wrap any component in me, which may throw errors, and I will\n * prevent the entire UI from disappearing.\n *\n * Custom version special to Advanced Sidebar Menu with links to\n * support as well as debugging information.\n *\n * @link https://reactjs.org/docs/error-boundaries.html#introducing-error-boundaries\n */\nclass ErrorBoundary extends Component<PropsWithChildren<Props>, {\n\thasError: boolean,\n\terror: Error | null\n}> {\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.state = {\n\t\t\thasError: false,\n\t\t\terror: null,\n\t\t};\n\t}\n\n\tstatic getDerivedStateFromError() {\n\t\t// Update state, so the next render will show the fallback UI.\n\t\treturn {\n\t\t\thasError: true,\n\t\t};\n\t}\n\n\t/**\n\t * Log information about the error when it happens.\n\t *\n\t * @notice Will log \"Error: A cross-origin error was thrown. React doesn't have\n\t *         access to the actual error object in development\" in React development\n\t *         mode but provides full error info in React production.\n\t */\n\tcomponentDidCatch( error: Error, info: ErrorInfo ) {\n\t\tconsole.log( '%cError caught by the Advanced Sidebar ErrorBoundary!', 'color:orange; font-size: large; font-weight: bold' );\n\t\tconsole.log( this.props );\n\t\tconsole.log( error );\n\t\tconsole.log( info );\n\t\tthis.setState( {\n\t\t\terror,\n\t\t} );\n\t}\n\n\trender() {\n\t\tif ( this.state.hasError ) {\n\t\t\tif ( ! CONFIG.siteInfo.scriptDebug ) {\n\t\t\t\treturn ( <div className={'components-panel__body is-opened'}>\n\t\t\t\t\t<h4 style={{color: 'red'}}>\n\t\t\t\t\t\tSomething went wrong!\n\t\t\t\t\t</h4>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tPlease <a\n\t\t\t\t\t\t\thref={addQueryArgs( sanitize( window.location.href ), {\n\t\t\t\t\t\t\t\t'script-debug': 'true',\n\t\t\t\t\t\t\t}, )}\n\t\t\t\t\t\t>enable script debug</a> to retrieve error information.\n\t\t\t\t\t</p>\n\t\t\t\t</div> );\n\t\t\t}\n\t\t\treturn (\n\t\t\t\t<div className={'components-panel__body is-opened'}>\n\t\t\t\t\t<h4 style={{color: 'red'}}>\n\t\t\t\t\t\tSomething went wrong!\n\t\t\t\t\t</h4>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tPlease <a target=\"_blank\" href={CONFIG.support} rel=\"noreferrer\">\n\t\t\t\t\t\t\tcreate a support request\n\t\t\t\t\t\t</a> with the following:\n\t\t\t\t\t</p>\n\t\t\t\t\t<ol>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\tThe <a\n\t\t\t\t\t\t\t\thref={'https://onpointplugins.com/how-to-retrieve-console-logs-from-your-browser/'}\n\t\t\t\t\t\t\t\ttarget={'_blank'} rel=\"noreferrer\">\n\t\t\t\t\t\t\t\tlogs from your browser console.\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\tThe following information.\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ol>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tborder: '2px groove',\n\t\t\t\t\t\t\tpadding: '10px',\n\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t\toverflowWrap: 'break-word',\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<strong><em>Section</em></strong> <br />\n\t\t\t\t\t\t\t<code>\n\t\t\t\t\t\t\t\t{this.props.section}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<strong><em>Screen</em></strong> <br />\n\t\t\t\t\t\t\t<code>\n\t\t\t\t\t\t\t\t{CONFIG.currentScreen}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<strong><em>Message</em></strong> <br />\n\t\t\t\t\t\t\t<code>\n\t\t\t\t\t\t\t\t{this.state.error?.message}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<strong><em>Block</em></strong> <br />\n\t\t\t\t\t\t\t<code>\n\t\t\t\t\t\t\t\t{this.props.block}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<strong><em>Attributes</em></strong> <br />\n\t\t\t\t\t\t\t<code>\n\t\t\t\t\t\t\t\t{JSON.stringify( this.props.attributes )}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<strong><em>Site Info</em></strong> <br />\n\t\t\t\t\t\t\t<code>\n\t\t\t\t\t\t\t\t{JSON.stringify( CONFIG.siteInfo )}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<strong><em>Stack</em></strong> <br />\n\t\t\t\t\t\t\t<code>\n\t\t\t\t\t\t\t\t{this.state.error?.stack}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</div>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t&nbsp;\n\t\t\t\t\t</p>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t&nbsp;\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn this.props.children;\n\t}\n}\n\nexport default ErrorBoundary;\n","import {__} from '@wordpress/i18n';\nimport {useState} from 'react';\nimport {Notice} from '@wordpress/components';\n\nimport styles from './transform-notice.pcss';\n\ntype Props = Record<string, never>;\n\nexport const DISMISS_KEY = 'advanced-sidebar-menu/transform-notice-dismissed';\n\n/**\n * Display a dismissible notice above widget forms to inform\n * users the widget may be transformed into a block.\n *\n * Only applies to legacy widgets which should theoretically\n * be phased out in favor of blocks.\n * This notice is intended to help facilitate the transition.\n *\n */\nconst TransformNotice = ( {}: Props ) => {\n\tconst [ shown, setShown ] = useState<boolean>( true );\n\n\tif ( ! shown ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Notice\n\t\t\tclassName={styles.wrap}\n\t\t\tpoliteness={'polite'}\n\t\t\tonDismiss={() => {\n\t\t\t\tsetShown( false );\n\t\t\t\tlocalStorage.setItem( DISMISS_KEY, '1' );\n\t\t\t}}\n\t\t\tactions={[ {\n\t\t\t\tlabel: __( 'Blocks are the future of Advanced Sidebar Menu.', 'advanced-sidebar-menu' ),\n\t\t\t\turl: 'https://onpointplugins.com/advanced-sidebar-menu/advanced-sidebar-menu-gutenberg-blocks/#transform-widgets-to-blocks',\n\t\t\t\tvariant: 'link',\n\t\t\t} ]}\n\t\t>\n\t\t\t<span className=\"dashicons dashicons-arrow-up-alt\" />&nbsp;\n\t\t\t{__( 'This widget may be transformed into a block.', 'advanced-sidebar-menu' )}\n\t\t</Notice>\n\t);\n};\n\nexport default TransformNotice;\n","import {ComponentClass, FunctionComponent} from 'react';\nimport {TransformLegacy} from '../gutenberg/helpers';\nimport type {Attr as PageAttr} from '../gutenberg/blocks/pages/block';\nimport type {Attr as CategoryAttr} from '../gutenberg/blocks/categories/block';\nimport type {BlockAttributes, BlockSettings} from '@wordpress/blocks';\n\nexport type Screen = 'site-editor' | 'widgets' | 'post' | 'customize';\n\nexport type WPBoolean = '1' | '';\n\ninterface JSConfig {\n\tblocks: {\n\t\tcategories: {\n\t\t\tid: 'advanced-sidebar-menu/categories';\n\t\t\tattributes: BlockAttributes<CategoryAttr>;\n\t\t\tsupports: BlockSettings<CategoryAttr>['supports'];\n\t\t};\n\t\tpages: {\n\t\t\tid: 'advanced-sidebar-menu/pages';\n\t\t\tattributes: BlockAttributes<PageAttr>;\n\t\t\tsupports: BlockSettings<PageAttr>['supports'];\n\t\t};\n\t\tnavigation?: {\n\t\t\tid: 'advanced-sidebar-menu/navigation';\n\t\t\tattributes: BlockAttributes<object>;\n\t\t\tsupports: BlockSettings<object>['supports'];\n\t\t}\n\t};\n\tcategories: {\n\t\tdisplayEach: {\n\t\t\tlist: string;\n\t\t\twidget: string;\n\t\t};\n\t};\n\tcurrentScreen: Screen;\n\tdocs: {\n\t\tpage: string;\n\t\tcategory: string;\n\t};\n\terror: string;\n\tErrorBoundary: ComponentClass<{\n\t\tattributes: object,\n\t\tblock: string;\n\t\tsection: string;\n\t}>;\n\tfeatures: Array<string>;\n\tisPostEdit: WPBoolean;\n\tisPro: WPBoolean;\n\tisWidgets: WPBoolean;\n\tpages: {\n\t\torderBy: { [ value: string ]: string };\n\t};\n\tPreview: FunctionComponent<object>;\n\tsiteInfo: {\n\t\tbasic: string;\n\t\tclassicWidgets: boolean;\n\t\tphp: string;\n\t\tpro: string;\n\t\tscriptDebug: boolean;\n\t\twordpress: string;\n\t};\n\tsupport: string;\n\ttransformLegacyWidget: TransformLegacy;\n}\n\n\ndeclare global {\n\tinterface Window {\n\t\tADVANCED_SIDEBAR_MENU: JSConfig;\n\t\tadvancedSidebarMenuAdmin: {\n\t\t\tinit: () => void;\n\t\t\thandlePreviews: () => void;\n\t\t\tshowHideElements: () => void;\n\t\t\tclickReveal: ( id: string ) => void;\n\t\t\tsetHideState( target: JQuery<HTMLElement> ): void;\n\t\t};\n\t\t__TEST__?: boolean;\n\t}\n}\n\nexport const CONFIG: JSConfig = window.ADVANCED_SIDEBAR_MENU;\n","import {withFilters} from '@wordpress/components';\nimport {select} from '@wordpress/data';\nimport {isEmpty} from 'lodash';\n\ntype Props = {\n\tclientId: string;\n};\n\nlet firstClientId = '';\n/**\n * The customizer area does not include a `PluginArea` component,\n * so our slot fills do not load.\n *\n * We can use filters, but the Fills double up each time\n * another block is added to the page.\n *\n * Track the clientId of the first block we add the Fill to\n * and only return the Fill for that block. The rest of the blocks\n * inherit the Fill from the first block via their Slots.\n */\nconst SideLoad = ( {clientId, children} ) => {\n\tif ( ! isEmpty( firstClientId ) && clientId !== firstClientId ) {\n\t\t// Make sure block still exists.\n\t\tif ( -1 !== select( 'core/block-editor' ).getBlockIndex( firstClientId ) ) {\n\t\t\treturn null;\n\t\t}\n\t}\n\tfirstClientId = clientId;\n\treturn children ?? null;\n};\n\nexport default withFilters<Props>( 'advanced-sidebar-menu.blocks.side-load' )( SideLoad );\n","import {CheckboxControl, PanelBody, Slot} from '@wordpress/components';\nimport {CONFIG} from '../../globals/config';\nimport type {Attr as PageAttr} from './pages/block';\nimport type {Attr as CategoryAttr} from './categories/block';\nimport {__, sprintf} from '@wordpress/i18n';\nimport {Type} from '@wordpress/api/types';\nimport {range} from 'lodash';\nimport reactStringReplace from 'react-string-replace';\nimport {Taxonomy} from '@wordpress/api/taxonomies';\nimport ErrorBoundary from '../../components/ErrorBoundary';\nimport {BlockEditProps} from '@wordpress/blocks';\nimport {PropsWithChildren} from 'react';\n\n\nexport type DisplayOptions = {\n\tdisplay_all?: boolean;\n\tinclude_childless_parent?: boolean;\n\tinclude_parent?: boolean;\n\tlevels: number;\n}\n\nexport type FillProps =\n\tPick<BlockEditProps<PageAttr | CategoryAttr>, 'clientId' | 'attributes' | 'setAttributes' | 'name'>\n\t& { type?: Type<'edit'> | Taxonomy<'edit'> }\n\ntype Props = PropsWithChildren<{\n\tattributes: PageAttr | CategoryAttr;\n\tsetAttributes: BlockEditProps<PageAttr | CategoryAttr>['setAttributes'];\n\ttype?: Type<'edit'> | Taxonomy<'edit'>;\n\tname: string;\n\tclientId: string;\n}>;\n\nconst checkboxes: { [attr in keyof Partial<DisplayOptions>]: string } = {\n\t/* translators: Selected taxonomy single label */\n\tinclude_parent: __( 'Display highest level parent %s', 'advanced-sidebar-menu' ),\n\t/* translators: Selected taxonomy single label */\n\tinclude_childless_parent: __( 'Display menu when there is only the parent %s', 'advanced-sidebar-menu' ),\n\t/* translators: Selected taxonomy plural label */\n\tdisplay_all: __( 'Always display child %s', 'advanced-sidebar-menu' ),\n};\n\n/**\n * Display Options shared between widgets.\n *\n * 1. Display the highest level parent page.\n * 2. Display menu when there is only the parent page.\n * 3. Always display child pages.\n * 5. Display levels of child pages.\n *\n */\nconst Display = ( {\n\tattributes,\n\tsetAttributes,\n\ttype,\n\tname,\n\tclientId,\n\tchildren,\n}: Props ) => {\n\tconst showLevels = ( CONFIG.blocks.pages.id === name && '1' === CONFIG.isPro ) || true === attributes.display_all;\n\n\tconst fillProps: FillProps = {\n\t\ttype,\n\t\tattributes,\n\t\tname,\n\t\tsetAttributes,\n\t\tclientId,\n\t};\n\n\treturn (\n\t\t<PanelBody title={__( 'Display', 'advanced-sidebar-menu' )}>\n\t\t\t{Object.keys( checkboxes ).map( item => {\n\t\t\t\tlet label = type?.labels?.singular_name.toLowerCase() ?? '';\n\t\t\t\tif ( 'display_all' === item ) {\n\t\t\t\t\tlabel = type?.labels?.name.toLowerCase() ?? '';\n\t\t\t\t}\n\t\t\t\treturn <CheckboxControl\n\t\t\t\t\tkey={item}\n\t\t\t\t\t//eslint-disable-next-line @wordpress/valid-sprintf\n\t\t\t\t\tlabel={sprintf( checkboxes[ item ], label )}\n\t\t\t\t\tchecked={true === attributes[ item ]}\n\t\t\t\t\tonChange={checked => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t[ item ]: checked,\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{showLevels && <div className={'components-base-control'}>\n\t\t\t\t{/* translators: {select HTML input}, {post type plural label} */\n\t\t\t\t\treactStringReplace( __( 'Display %1$s levels of child %2$s', 'advanced-sidebar-menu' ).replace( '%2$s', type?.labels?.name.toLowerCase() ?? '' ), '%1$s',\n\t\t\t\t\t\t() => (\n\t\t\t\t\t\t\t<select\n\t\t\t\t\t\t\t\tkey={'levels'}\n\t\t\t\t\t\t\t\tclassName={'advanced-sidebar-menu-display-select'}\n\t\t\t\t\t\t\t\tvalue={attributes.levels}\n\t\t\t\t\t\t\t\tonChange={ev => setAttributes( {levels: parseInt( ev.target.value )} )}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<option value=\"100\">\n\t\t\t\t\t\t\t\t\t{__( '- All -', 'advanced-sidebar-menu' )}\n\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t{range( 1, 10 ).map( n => <option key={n} value={n}>\n\t\t\t\t\t\t\t\t\t{n}\n\t\t\t\t\t\t\t\t</option> )}\n\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t) )}\n\t\t\t</div>}\n\n\t\t\t{children}\n\n\t\t\t<ErrorBoundary attributes={attributes} block={name} section={'Display/slots'}>\n\t\t\t\t{CONFIG.blocks.pages.id === name &&\n\t\t\t\t\t<Slot<FillProps>\n\t\t\t\t\t\tname=\"advanced-sidebar-menu/pages/display\"\n\t\t\t\t\t\tfillProps={fillProps} />}\n\t\t\t\t{CONFIG.blocks.categories.id === name &&\n\t\t\t\t\t<Slot<FillProps>\n\t\t\t\t\t\tname=\"advanced-sidebar-menu/categories/display\"\n\t\t\t\t\t\tfillProps={fillProps} />}\n\t\t\t</ErrorBoundary>\n\n\t\t</PanelBody>\n\t);\n};\n\nexport default Display;\n","import {TextControl, withFilters} from '@wordpress/components';\nimport {__, sprintf} from '@wordpress/i18n';\nimport {Type} from '@wordpress/api/types';\nimport {Attr as PageAttr} from './pages/block';\nimport {Attr as CategoryAttr} from './categories/block';\nimport {BlockEditProps} from '@wordpress/blocks';\nimport {Taxonomy} from '@wordpress/api/taxonomies';\n\ntype Props = {\n\tattributes: PageAttr | CategoryAttr;\n\tsetAttributes: BlockEditProps<PageAttr | CategoryAttr>['setAttributes'];\n\ttype?: Type<'edit'> | Taxonomy<'edit'>;\n};\n\n/**\n * The Exclude field shared between widgets.\n *\n * Removed and replaced via filter by the PRO version.\n */\nconst ExcludeField = ( {type, attributes, setAttributes}: Props ) => {\n\tconst help = <span\n\t\tdangerouslySetInnerHTML={{ //phpcs:ignore\n\t\t\t__html: sprintf(\n\t\t\t\t/* translators: 1: Opening anchor tag, 2: Closing anchor tag */\n\t\t\t\t__( 'For more robust and intuitive exclusions use the %1$sPRO version%2$s.', 'advanced-sidebar-menu' ), '<a href=\"https://onpointplugins.com/advanced-sidebar-menu/advanced-sidebar-menu-pro-widget-docs/advanced-sidebar-menu-pro-excluding-menu-items/?utm_source=exclude-field&utm_campaign=gopro&utm_medium=wp-dash\" target=\"_blank\">', '</a>' ),\n\t\t}} />;\n\n\treturn (\n\t\t<TextControl\n\t\t\t/* translators: Selected post type plural label */\n\t\t\tlabel={sprintf( __( '%s to exclude (ids, comma separated)', 'advanced-sidebar-menu' ), type?.labels?.name ?? '' )}\n\t\t\tvalue={attributes.exclude}\n\t\t\thelp={help}\n\t\t\tonChange={value => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\texclude: value,\n\t\t\t\t} );\n\t\t\t}} />\n\t);\n};\n\nexport default withFilters<Props>( 'advanced-sidebar-menu.blocks.exclude-field' )( ExcludeField );\n","import {CONFIG} from '../../globals/config';\nimport {Button, PanelBody, withFilters} from '@wordpress/components';\nimport {InspectorControls} from '@wordpress/block-editor';\nimport {decodeEntities} from '@wordpress/html-entities';\nimport {__} from '@wordpress/i18n';\n\nimport styles from './info-panel.pcss';\n\ntype Props = {\n\tclientId: string;\n};\n\nconst titleStyles = {\n\tcolor: '#3db634',\n\tfontWeight: 700,\n};\n\nconst headingStyles = {\n\tmargin: '16px 0 0',\n\tfontSize: '1.2em',\n};\n\nconst InfoPanel = ( {}: Props ) => {\n\treturn ( <InspectorControls>\n\t\t<PanelBody\n\t\t\ttitle={<span style={titleStyles}>\n\t\t\t\t{__( 'Go PRO', 'advanced-sidebar-menu' )}\n\t\t\t</span>}\n\t\t\tclassName={styles.wrap}\n\t\t\tinitialOpen={false}\n\t\t>\n\t\t\t<h2 style={headingStyles}>\n\t\t\t\t{__( 'Advanced Sidebar Menu PRO', 'advanced-sidebar-menu' )}\n\t\t\t</h2>\n\t\t\t<ul>\n\t\t\t\t{CONFIG.features.map( feature => (\n\t\t\t\t\t<li key={feature}>\n\t\t\t\t\t\t{decodeEntities( feature )}\n\t\t\t\t\t</li>\n\t\t\t\t) )}\n\t\t\t\t<li>\n\t\t\t\t\t{__( 'And so much more…', 'advanced-sidebar-menu' )}\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t\t<Button\n\t\t\t\tclassName={styles.button}\n\t\t\t\thref={'https://onpointplugins.com/product/advanced-sidebar-menu-pro/?utm_source=block-upgrade&utm_campaign=gopro&utm_medium=wp-dash#buy-now-choices'}\n\t\t\t\ttarget={'_blank'}\n\t\t\t\trel={'noreferrer'}\n\t\t\t\tisPrimary\n\t\t\t>\n\t\t\t\t{__( 'Upgrade', 'advanced-sidebar-menu' )}\n\t\t\t</Button>\n\t\t</PanelBody>\n\t</InspectorControls> );\n};\n\nexport default withFilters<Props>( 'advanced-sidebar-menu.blocks.info-panel' )( InfoPanel );\n","import {ReactElement, useEffect} from 'react';\nimport {CONFIG} from '../../globals/config';\nimport ServerSideRender from '@wordpress/server-side-render';\nimport {Placeholder, Spinner} from '@wordpress/components';\nimport {useBlockProps} from '@wordpress/block-editor';\nimport {sanitize} from 'dompurify';\nimport {doAction} from '@wordpress/hooks';\nimport {__} from '@wordpress/i18n';\nimport {select} from '@wordpress/data';\nimport {isScreen} from '../helpers';\n\nimport styles from './preview.pcss';\n\n\nexport type PreviewOptions = {\n\tisServerSideRenderRequest: boolean;\n\tclientId: string;\n\tsidebarId: string;\n}\n\ntype Props<A> = {\n\tattributes: A;\n\tblock: string;\n\tclientId: string;\n};\n\n/**\n * Same as the Dashicons `welcome-widgets-menus` icon but available inside\n * iframe editors which don't enqueue the Dashicons font.\n */\nconst ICON = <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n\t<rect x=\"0\" fill=\"none\" width=\"20\" height=\"20\" />\n\t<g>\n\t\t<path d=\"M19 16V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v13c0 .55.45 1 1 1h15c.55 0 1-.45 1-1zM4 4h13v4H4V4zm1 1v2h3V5H5zm4 0v2h3V5H9zm4 0v2h3V5h-3zm-8.5 5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zM6 10h4v1H6v-1zm6 0h5v5h-5v-5zm-7.5 2c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zM6 12h4v1H6v-1zm7 0v2h3v-2h-3zm-8.5 2c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zM6 14h4v1H6v-1z\" />\n\t</g>\n</svg>;\n\n/**\n * Sanitize a client id for use as an HTML id.\n *\n * Must not start with a `-` or a digit.\n *\n */\nexport const sanitizeClientId = ( clientId: string ): string => {\n\treturn clientId.replace( /^([\\d-])/, '_$1' );\n};\n\n/**\n * If we are in the widgets' area, the block is wrapped in\n * a \"sidebar\" block. We retrieve the id to pass along with\n * the request to use the `widget_args` within the preview.\n *\n */\nconst getSidebarId = ( clientId: string ): string => {\n\tif ( ! isScreen( [ 'widgets' ] ) ) {\n\t\treturn '';\n\t}\n\tconst rootId = select( 'core/block-editor' ).getBlockRootClientId( clientId );\n\tif ( 'undefined' !== typeof rootId && '' !== rootId ) {\n\t\tconst ParentBlock = select( 'core/block-editor' ).getBlocksByClientId( [ rootId ] );\n\t\tif ( null !== ParentBlock[ 0 ] && 'undefined' !== typeof ParentBlock[ 0 ] && 'core/widget-area' === ParentBlock[ 0 ]?.name ) {\n\t\t\treturn ParentBlock[ 0 ]?.attributes?.id;\n\t\t}\n\t}\n\n\treturn '';\n};\n\n/**\n * @notice Must use static constants, or the ServerSide requests\n *         will fire anytime something on the page is changed\n *         because the component re-renders.\n */\nconst Page = () => <Placeholder\n\tclassName={styles.placeholder}\n\ticon={ICON}\n\tlabel={__( 'Advanced Sidebar - Pages', 'advanced-sidebar-menu' )}\n\tinstructions={__( 'No preview available', 'advanced-sidebar-menu' )}\n/>;\n\nconst Category = () => <Placeholder\n\tclassName={styles.placeholder}\n\ticon={ICON}\n\tlabel={__( 'Advanced Sidebar - Categories', 'advanced-sidebar-menu' )}\n\tinstructions={__( 'No preview available', 'advanced-sidebar-menu' )}\n/>;\n\nconst Navigation = () => <Placeholder\n\tclassName={styles.placeholder}\n\ticon={ICON}\n\tlabel={__( 'Advanced Sidebar - Navigation', 'advanced-sidebar-menu' )}\n\tinstructions={__( 'No preview available', 'advanced-sidebar-menu' )}\n/>;\n\n/**\n * @notice The styles will not display for the preview\n *         in the block inserter sidebar when Webpack\n *         is enabled because the iframe has a late init.\n *\n */\nconst placeholder = ( block: string ): () => ReactElement => {\n\tswitch ( block ) {\n\t\tcase CONFIG.blocks.pages.id:\n\t\t\treturn Page;\n\t\tcase CONFIG.blocks.categories.id:\n\t\t\treturn Category;\n\t\tcase CONFIG.blocks.navigation?.id:\n\t\t\treturn Navigation;\n\t}\n\treturn () => <></>;\n};\n\n\n/**\n * Same as the `DefaultLoadingResponsePlaceholder` except we trigger\n * an action when the loading component is unmounted to allow\n * components to hook into when ServerSideRender has finished loading.\n *\n * @notice Using a constant to prevent a reload on every content change.\n *\n */\nconst TriggerWhenLoadingFinished = ( {\n\tchildren,\n\tattributes = {\n\t\tclientId: '',\n\t},\n} ) => {\n\tuseEffect( () => {\n\t\t// Call action when the loading component unmounts because loading is finished.\n\t\treturn () => {\n\t\t\t// Give the preview a chance to load on WP 5.8.\n\t\t\tsetTimeout( () => {\n\t\t\t\tdoAction( 'advanced-sidebar-menu.blocks.preview.loading-finished', {\n\t\t\t\t\tvalues: attributes,\n\t\t\t\t\tclientId: attributes.clientId,\n\t\t\t\t} );\n\t\t\t}, 100 );\n\t\t};\n\t} );\n\n\t/**\n\t * ServerSideRender returns a <RawHTML /> filled with an error object when fetch fails.\n\t *\n\t * We throw an error, so our `ErrorBoundary` will catch it, otherwise we end up\n\t * with a \"React objects may not be used as children\" error, which means nothing.\n\t */\n\tif ( 'string' === typeof children?.props?.children?.errorMsg ) {\n\t\tthrow new Error( children?.props?.children?.errorMsg ?? 'Failed' );\n\t}\n\n\treturn (\n\t\t<div className={styles.spinWrap}>\n\t\t\t<div className={styles.spin}>\n\t\t\t\t<Spinner />\n\t\t\t</div>\n\t\t\t<div className={styles.spinContent}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\n\nconst Preview = <A, >( {attributes, block, clientId}: Props<A> ) => {\n\tconst blockProps = useBlockProps();\n\n\tif ( '' !== CONFIG.error ) {\n\t\treturn <div\n\t\t\tclassName={styles.error}\n\t\t\tdangerouslySetInnerHTML={{__html: sanitize( CONFIG.error )}} />;\n\t}\n\n\n\tconst sanitizedClientId = sanitizeClientId( clientId );\n\n\t// Prevent styles from doubling up as they are already added via render in PHP.\n\tdelete blockProps.style;\n\n\treturn (\n\t\t// eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\t{...blockProps}\n\t\t\tonClick={ev => {\n\t\t\t\tconst element = ev.target as HTMLElement;\n\t\t\t\tif ( 'A' === element.nodeName ) {\n\t\t\t\t\tev.preventDefault();\n\t\t\t\t}\n\t\t\t}}\n\t\t>\n\t\t\t<ServerSideRender<A & PreviewOptions>\n\t\t\t\tEmptyResponsePlaceholder={placeholder( block )}\n\t\t\t\tLoadingResponsePlaceholder={TriggerWhenLoadingFinished}\n\t\t\t\tattributes={{\n\t\t\t\t\t...attributes,\n\t\t\t\t\t// Send custom attribute to determine server side renders.\n\t\t\t\t\tisServerSideRenderRequest: true,\n\t\t\t\t\tclientId: sanitizedClientId,\n\t\t\t\t\tsidebarId: getSidebarId( clientId ),\n\t\t\t\t}}\n\t\t\t\tblock={block}\n\t\t\t\thttpMethod={'POST'}\n\t\t\t/>\n\t\t</div>\n\t);\n};\n\nexport default Preview;\n","import {useSelect} from '@wordpress/data';\nimport {CONFIG} from '../../../globals/config';\nimport {sanitize} from 'dompurify';\nimport {BlockControls, InspectorControls} from '@wordpress/block-editor';\nimport Preview from '../Preview';\nimport {Attr, block} from './block';\nimport {Taxonomy} from '@wordpress/api/taxonomies';\nimport {BlockEditProps} from '@wordpress/blocks';\nimport ErrorBoundary from '../../../components/ErrorBoundary';\nimport Display from '../Display';\nimport {CheckboxControl, PanelBody, SelectControl, Slot, TextControl} from '@wordpress/components';\nimport {__, sprintf} from '@wordpress/i18n';\nimport InfoPanel from '../InfoPanel';\nimport SideLoad from '../../SideLoad';\nimport {isScreen} from '../../helpers';\n\nimport styles from '../pages/edit.pcss';\nimport ExcludeField from '../ExcludeField';\n\nexport type FillProps =\n\tPick<BlockEditProps<Attr>, 'clientId' | 'attributes' | 'setAttributes' | 'name'>\n\t& { type?: Taxonomy }\n\ntype Props = BlockEditProps<Attr>;\n\nconst Edit = ( {attributes, setAttributes, clientId, name}: Props ) => {\n\tconst taxonomy: Taxonomy<'edit'> | undefined = useSelect( select => {\n\t\tconst type = select( 'core' ).getTaxonomy( attributes.taxonomy ?? 'category' );\n\t\treturn type ?? select( 'core' ).getTaxonomy( 'category' );\n\t}, [ attributes.taxonomy ] );\n\n\t// We have a version conflict or license error.\n\tif ( '' !== CONFIG.error ) {\n\t\treturn ( <>\n\t\t\t<InspectorControls>\n\t\t\t\t<div\n\t\t\t\t\tclassName={styles.error}\n\t\t\t\t\tdangerouslySetInnerHTML={{__html: sanitize( CONFIG.error )}} />\n\t\t\t</InspectorControls>\n\t\t\t<Preview<Attr> attributes={attributes} block={block.id} clientId={clientId} />\n\t\t</> );\n\t}\n\n\tconst fillProps: FillProps = {\n\t\ttype: taxonomy,\n\t\tattributes,\n\t\tname,\n\t\tsetAttributes,\n\t\tclientId,\n\t};\n\n\treturn ( <>\n\t\t<InspectorControls>\n\t\t\t{isScreen( [ 'widgets', 'site-editor', 'customize' ] ) && <PanelBody>\n\t\t\t\t<TextControl\n\t\t\t\t\tvalue={attributes.title ?? ''}\n\t\t\t\t\tlabel={__( 'Title', 'advanced-sidebar-menu' )}\n\t\t\t\t\tonChange={title => setAttributes( {title} )} />\n\t\t\t</PanelBody>}\n\t\t\t<ErrorBoundary attributes={attributes} block={name} section={'categories/Edit/general'}>\n\t\t\t\t<Display\n\t\t\t\t\tattributes={attributes}\n\t\t\t\t\tclientId={clientId}\n\t\t\t\t\tname={name}\n\t\t\t\t\tsetAttributes={setAttributes}\n\t\t\t\t\ttype={taxonomy}\n\t\t\t\t>\n\t\t\t\t\t{/* Not offering \"Display categories on single posts\"\n\t\t                when editing a post because this must be true, or\n\t\t                the block won't display.\n\n\t\t                We default the attribute to `true` if we are editing\n\t\t                a post during register of block attributes. */}\n\t\t\t\t\t{isScreen( [ 'post' ] ) && <CheckboxControl\n\t\t\t\t\t\t/* translators: Selected taxonomy plural label */\n\t\t\t\t\t\tlabel={sprintf( __( 'Display %s on single posts', 'advanced-sidebar-menu' ), taxonomy?.labels?.name.toLowerCase() ?? '' )}\n\t\t\t\t\t\tchecked={attributes.single}\n\t\t\t\t\t\tonChange={value => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tsingle: 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{/*\n\t\t\t\t\t\t  Only widget screens support this option because we\n\t\t\t\t\t\t  have no widget wrap to use on other screens, so they are\n\t\t\t\t\t\t  list only. */}\n\t\t\t\t\t{isScreen( [ 'widgets', 'customize' ] ) && attributes.single &&\n\t\t\t\t\t\t<SelectControl<'list' | 'widget'>\n\t\t\t\t\t\t\t/* translators: Selected taxonomy single label */\n\t\t\t\t\t\t\tlabel={sprintf( __( 'Display each single post\\'s %s', 'advanced-sidebar-menu' ), taxonomy?.labels?.name.toLowerCase() ?? '' )}\n\t\t\t\t\t\t\tvalue={attributes.new_widget}\n\t\t\t\t\t\t\toptions={Object.keys( CONFIG.categories.displayEach ).map( ( key: 'list' | 'widget' ) => ( {\n\t\t\t\t\t\t\t\tvalue: key,\n\t\t\t\t\t\t\t\tlabel: CONFIG.categories.displayEach[ key ],\n\t\t\t\t\t\t\t} ) )}\n\t\t\t\t\t\t\t/* eslint-disable-next-line camelcase */\n\t\t\t\t\t\t\tonChange={new_widget => setAttributes( {new_widget} )}\n\t\t\t\t\t\t/>}\n\t\t\t\t</Display>\n\n\t\t\t\t<div className={'components-panel__body is-opened'}>\n\n\t\t\t\t\t<Slot<FillProps>\n\t\t\t\t\t\tname=\"advanced-sidebar-menu/categories/general\"\n\t\t\t\t\t\tfillProps={fillProps} />\n\n\t\t\t\t\t<ExcludeField\n\t\t\t\t\t\ttype={taxonomy}\n\t\t\t\t\t\tattributes={attributes}\n\t\t\t\t\t\tsetAttributes={setAttributes} />\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref={CONFIG.docs.category}\n\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{__( 'block documentation', 'advanced-sidebar-menu' )}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t</ErrorBoundary>\n\t\t\t<ErrorBoundary\n\t\t\t\tattributes={attributes}\n\t\t\t\tblock={name}\n\t\t\t\tsection={'categories/Edit/inspector'}\n\t\t\t>\n\t\t\t\t<Slot<FillProps>\n\t\t\t\t\tname=\"advanced-sidebar-menu/categories/inspector\"\n\t\t\t\t\tfillProps={fillProps} />\n\n\t\t\t</ErrorBoundary>\n\t\t</InspectorControls>\n\n\t\t<BlockControls>\n\t\t\t<ErrorBoundary\n\t\t\t\tattributes={attributes}\n\t\t\t\tblock={name}\n\t\t\t\tsection={'categories/Edit/block-controls'}\n\t\t\t>\n\t\t\t\t<Slot<FillProps>\n\t\t\t\t\tname=\"advanced-sidebar-menu/categories/block-controls\"\n\t\t\t\t\tfillProps={fillProps} />\n\t\t\t</ErrorBoundary>\n\t\t</BlockControls>\n\n\t\t<InfoPanel clientId={clientId} />\n\n\t\t<ErrorBoundary attributes={attributes} block={name} section={'categories/Edit/preview'}>\n\t\t\t<Preview<Attr> attributes={attributes} block={block.id} clientId={clientId} />\n\t\t</ErrorBoundary>\n\n\t\t<SideLoad clientId={clientId} />\n\t</> );\n};\n\nexport default Edit;\n","import {CONFIG} from '../../../globals/config';\nimport {BlockSettings, LegacyWidget} from '@wordpress/blocks';\nimport Edit from './Edit';\nimport {DisplayOptions} from '../Display';\nimport {transformLegacyWidget} from '../../helpers';\nimport {__} from '@wordpress/i18n';\n\n/**\n * Attributes specific to the widget as well as shared\n * widget attributes.\n *\n * @see \\Advanced_Sidebar_Menu\\Blocks\\Block_Abstract::get_all_attributes\n * @see \\Advanced_Sidebar_Menu\\Blocks\\Pages::get_attributes\n */\nexport type Attr = {\n\texclude: string;\n\tnew_widget: 'widget' | 'list';\n\tsingle: boolean;\n\ttitle?: string;\n} & DisplayOptions & ProRegistered;\n\n// Options used by basic when available from PRO.\ntype ProRegistered = {\n\ttaxonomy: string;\n}\n\nexport type setAttributes = ( newValue: {\n\t[attribute in keyof Attr]?: Attr[attribute]\n} ) => void;\n\n/**\n * Attributes used for the example preview.\n * Combines some PRO and basic attributes.\n * The PRO attributes will only be sent if PRO is active.\n */\nconst EXAMPLE = {\n\t'display-posts': 'all',\n\t'display-posts/limit': 2,\n\tapply_current_page_parent_styles_to_parent: true,\n\tapply_current_page_styles_to_parent: true,\n\tblock_style: true,\n\tborder: true,\n\tborder_color: '#333',\n\tbullet_style: 'none',\n\tchild_page_bg_color: '#666',\n\tchild_page_color: '#fff',\n\tparent_page_bg_color: '#282828',\n\tparent_page_color: '#0cc4c6',\n\tparent_page_font_weight: 'normal',\n\tdisplay_all: true,\n\tgrandchild_page_bg_color: '#989898',\n\tgrandchild_page_color: '#282828',\n\tgrandchild_page_font_weight: 'bold',\n\tinclude_childless_parent: true,\n\tinclude_parent: true,\n\tlevels: 2,\n};\n\n\nexport const block = CONFIG.blocks.categories;\n\nexport const name = block.id;\n\nexport const settings: BlockSettings<Attr, '', LegacyWidget<Attr & { title: string }>> = {\n\ttitle: __( 'Advanced Sidebar - Categories', 'advanced-sidebar-menu' ),\n\ticon: 'welcome-widgets-menus',\n\tcategory: 'widgets',\n\texample: {\n\t\tattributes: EXAMPLE,\n\t},\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/legacy-widget' ],\n\t\t\t\tisMatch: ( {idBase, instance} ) => {\n\t\t\t\t\tif ( null === instance?.raw ) {\n\t\t\t\t\t\t// Can't transform if raw instance is not shown in REST API.\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn 'advanced_sidebar_menu_category' === idBase;\n\t\t\t\t},\n\t\t\t\ttransform: transformLegacyWidget<Attr>( name ),\n\t\t\t},\n\t\t],\n\t},\n\tattributes: block.attributes,\n\tsupports: block.supports,\n\tedit: props => (\n\t\t<Edit {...props} />\n\t),\n\tsave: () => null,\n\tapiVersion: 3,\n};\n","import {BlockControls, InspectorControls} from '@wordpress/block-editor';\nimport {PanelBody, SelectControl, Slot, TextControl} from '@wordpress/components';\nimport {BlockEditProps} from '@wordpress/blocks';\nimport {Attr, block} from './block';\nimport Preview from '../Preview';\nimport Display from '../Display';\nimport {useSelect} from '@wordpress/data';\nimport InfoPanel from '../InfoPanel';\nimport {CONFIG} from '../../../globals/config';\nimport {sanitize} from 'dompurify';\nimport {__} from '@wordpress/i18n';\nimport {Type} from '@wordpress/api/types';\nimport ErrorBoundary from '../../../components/ErrorBoundary';\nimport SideLoad from '../../SideLoad';\nimport {isScreen} from '../../helpers';\n\nimport styles from './edit.pcss';\nimport ExcludeField from '../ExcludeField';\n\n\nexport type FillProps =\n\tPick<BlockEditProps<Attr>, 'clientId' | 'attributes' | 'setAttributes' | 'name'>\n\t& { type?: Type }\n\ntype Props = BlockEditProps<Attr>;\n\n/**\n * Pages block content in the editor.\n */\nconst Edit = ( {attributes, setAttributes, clientId, name}: Props ) => {\n\tconst postType: Type<'edit'> | undefined = useSelect( select => {\n\t\tconst type = select( 'core' ).getPostType( attributes.post_type ?? 'page' );\n\t\treturn type ?? select( 'core' ).getPostType( 'page' );\n\t}, [ attributes.post_type ] );\n\n\t// We have a version conflict or license error.\n\tif ( '' !== CONFIG.error ) {\n\t\treturn ( <>\n\t\t\t<InspectorControls>\n\t\t\t\t<div\n\t\t\t\t\tclassName={styles.error}\n\t\t\t\t\tdangerouslySetInnerHTML={{__html: sanitize( CONFIG.error )}} />\n\t\t\t</InspectorControls>\n\t\t\t<Preview<Attr> attributes={attributes} block={block.id} clientId={clientId} />\n\t\t</> );\n\t}\n\n\tconst fillProps: FillProps = {\n\t\ttype: postType,\n\t\tattributes,\n\t\tname,\n\t\tsetAttributes,\n\t\tclientId,\n\t};\n\n\n\treturn ( <>\n\t\t<InspectorControls>\n\t\t\t{isScreen( [ 'widgets', 'site-editor', 'customize' ] ) && <PanelBody>\n\t\t\t\t<TextControl\n\t\t\t\t\tvalue={attributes.title ?? ''}\n\t\t\t\t\tlabel={__( 'Title', 'advanced-sidebar-menu' )}\n\t\t\t\t\tonChange={title => setAttributes( {title} )} />\n\t\t\t</PanelBody>}\n\t\t\t<ErrorBoundary attributes={attributes} block={name} section={'pages/Edit/general'}>\n\t\t\t\t<Display\n\t\t\t\t\tattributes={attributes}\n\t\t\t\t\tclientId={clientId}\n\t\t\t\t\tname={name}\n\t\t\t\t\tsetAttributes={setAttributes}\n\t\t\t\t\ttype={postType} />\n\n\t\t\t\t<div className={'components-panel__body is-opened'}>\n\n\t\t\t\t\t<Slot<FillProps>\n\t\t\t\t\t\tname=\"advanced-sidebar-menu/pages/general\"\n\t\t\t\t\t\tfillProps={fillProps} />\n\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={__( 'Order by', 'advanced-sidebar-menu' )}\n\t\t\t\t\t\tvalue={attributes.order_by}\n\t\t\t\t\t\tlabelPosition={'side'}\n\t\t\t\t\t\toptions={Object.entries( CONFIG.pages.orderBy ).map( ( [ value, label ] ) => ( {\n\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\tlabel,\n\t\t\t\t\t\t} ) )}\n\t\t\t\t\t\tonChange={value => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\torder_by: value,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}} />\n\n\t\t\t\t\t<ExcludeField\n\t\t\t\t\t\ttype={postType}\n\t\t\t\t\t\tattributes={attributes}\n\t\t\t\t\t\tsetAttributes={setAttributes} />\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref={CONFIG.docs.page}\n\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{__( 'block documentation', 'advanced-sidebar-menu' )}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t</ErrorBoundary>\n\t\t\t<ErrorBoundary attributes={attributes} block={name} section={'pages/Edit/inspector'}>\n\t\t\t\t<Slot<FillProps>\n\t\t\t\t\tname=\"advanced-sidebar-menu/pages/inspector\"\n\t\t\t\t\tfillProps={fillProps} />\n\n\t\t\t</ErrorBoundary>\n\t\t</InspectorControls>\n\n\t\t<BlockControls>\n\t\t\t<ErrorBoundary\n\t\t\t\tattributes={attributes}\n\t\t\t\tblock={name}\n\t\t\t\tsection={'pages/Edit/block-controls'}\n\t\t\t>\n\t\t\t\t<Slot<FillProps>\n\t\t\t\t\tname=\"advanced-sidebar-menu/pages/block-controls\"\n\t\t\t\t\tfillProps={fillProps} />\n\t\t\t</ErrorBoundary>\n\t\t</BlockControls>\n\n\t\t<InfoPanel clientId={clientId} />\n\n\t\t<ErrorBoundary attributes={attributes} block={name} section={'pages/Edit/preview'}>\n\t\t\t<Preview<Attr> attributes={attributes} block={block.id} clientId={clientId} />\n\t\t</ErrorBoundary>\n\n\t\t<SideLoad clientId={clientId} />\n\t</> );\n};\n\nexport default Edit;\n","import {BlockSettings, LegacyWidget} from '@wordpress/blocks';\nimport {CONFIG} from '../../../globals/config';\nimport Edit from './Edit';\nimport {DisplayOptions} from '../Display';\nimport {transformLegacyWidget} from '../../helpers';\nimport {__} from '@wordpress/i18n';\n\n/**\n * Attributes specific to the widget as well as shared\n * widget attributes.\n *\n * @see \\Advanced_Sidebar_Menu\\Blocks\\Block_Abstract::get_all_attributes\n * @see \\Advanced_Sidebar_Menu\\Blocks\\Pages::get_attributes\n */\nexport type Attr = {\n\texclude: string;\n\torder_by: string;\n\ttitle?: string;\n} & DisplayOptions & ProRegistered;\n\n// Options used by basic when available from PRO.\ntype ProRegistered = {\n\tpost_type: string;\n}\n\nexport type setAttributes = ( newValue: {\n\t[attribute in keyof Attr]?: Attr[attribute]\n} ) => void;\n\n\n/**\n * Attributes used for the example preview.\n * Combines some PRO and basic attributes.\n * The PRO attributes will only be sent if PRO is active.\n */\nconst EXAMPLE = {\n\tapply_current_page_parent_styles_to_parent: true,\n\tapply_current_page_styles_to_parent: true,\n\tblock_style: true,\n\tborder: true,\n\tborder_color: '#333',\n\tbullet_style: 'none',\n\tchild_page_bg_color: '#666',\n\tchild_page_color: '#fff',\n\tcurrent_page_bg_color: '#282828',\n\tcurrent_page_color: '#0cc4c6',\n\tcurrent_page_font_weight: 'normal',\n\tcurrent_page_parent_bg_color: '#333',\n\tdisplay_all: true,\n\tgrandchild_page_bg_color: '#989898',\n\tgrandchild_page_color: '#282828',\n\tgrandchild_page_font_weight: 'bold',\n\tinclude_childless_parent: true,\n\tinclude_parent: true,\n\tlevels: 2,\n\tparent_page_bg_color: '#666',\n\tparent_page_color: '#fff',\n};\n\nexport const block = CONFIG.blocks.pages;\n\nexport const name = block.id;\n\nexport const settings: BlockSettings<Attr, '', LegacyWidget<Attr & { title: string }>> = {\n\ttitle: __( 'Advanced Sidebar - Pages', 'advanced-sidebar-menu' ),\n\ticon: 'welcome-widgets-menus',\n\tcategory: 'widgets',\n\texample: {\n\t\tattributes: EXAMPLE,\n\t},\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/legacy-widget' ],\n\t\t\t\tisMatch: ( {idBase, instance} ) => {\n\t\t\t\t\tif ( null === instance?.raw ) {\n\t\t\t\t\t\t// Can't transform if raw instance is not shown in REST API.\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn 'advanced_sidebar_menu' === idBase;\n\t\t\t\t},\n\t\t\t\ttransform: transformLegacyWidget<Attr>( name ),\n\t\t\t},\n\t\t],\n\t},\n\tattributes: block.attributes,\n\tsupports: block.supports,\n\tedit: props => (\n\t\t<Edit {...props} />\n\t),\n\tsave: () => null,\n\tapiVersion: 3,\n};\n","import {createBlock, CreateBlock} from '@wordpress/blocks';\nimport {CONFIG, Screen} from '../globals/config';\n\nexport type TransformLegacy = <Attr>( name: string ) => ( widgetValues: {\n\tinstance: { [ key: string ]: string | number | object | boolean }\n} ) => CreateBlock<Attr>;\n\n/**\n * Are we on one of the provided screens?\n */\nexport const isScreen = ( screens: Array<Screen> ): boolean => {\n\treturn screens.includes( CONFIG.currentScreen );\n};\n\n/**\n * Transform a legacy widget to the matching block.\n *\n */\nexport const transformLegacyWidget: TransformLegacy = <A>( name: string ) => ( {instance} ) => {\n\treturn createBlock<A>( name, translateLegacyWidget<A>( instance.raw ) );\n};\n\n/**\n * Translate the widget's \"checked\" to the boolean\n * version used in the block.\n *\n */\nconst translateLegacyWidget = <A>( settings ): A => {\n\tObject.entries( settings ).forEach( ( [ key, value ] ) => {\n\t\tif ( 'checked' === value ) {\n\t\t\tsettings[ key ] = true;\n\t\t}\n\t\tif ( 'object' === typeof value ) {\n\t\t\ttranslateLegacyWidget( settings[ key ] );\n\t\t}\n\t\t// Old widgets used to use \"0\" for some defaults.\n\t\tif ( '0' === value ) {\n\t\t\tdelete settings[ key ];\n\t\t}\n\t} );\n\treturn settings;\n};\n","import {autoloadBlocks} from '@lipemat/js-boilerplate-gutenberg';\nimport Preview from './blocks/Preview';\nimport {transformLegacyWidget} from './helpers';\nimport ErrorBoundary from '../components/ErrorBoundary';\n\n/**\n * Use our custom autoloader to automatically require,\n * register and add HMR support to Gutenberg related items.\n *\n * Will load from specified directory recursively.\n */\nexport default () => {\n\t// Load all blocks\n\tautoloadBlocks( () => require.context( './blocks', true, /block\\.tsx$/ ), module );\n\n\t// Expose helpers and Preview component to window, so we can use them in PRO.\n\twindow.ADVANCED_SIDEBAR_MENU.ErrorBoundary = ErrorBoundary;\n\twindow.ADVANCED_SIDEBAR_MENU.Preview = Preview;\n\twindow.ADVANCED_SIDEBAR_MENU.transformLegacyWidget = transformLegacyWidget;\n}\n","import {createRoot} from 'react-dom/client';\nimport TransformNotice, {DISMISS_KEY} from '../components/TransformNotice';\nimport {CONFIG} from '../globals/config';\n\n\nfunction renderTransformNotice() {\n\t// Only render on the block based widgets screen.\n\tif ( CONFIG.siteInfo.classicWidgets ) {\n\t\treturn;\n\t}\n\t// Don't render if the user has dismissed the notice.\n\tif ( '1' === localStorage.getItem( DISMISS_KEY ) ) {\n\t\treturn;\n\t}\n\tconst placeholders = document.querySelectorAll( '[data-js=\"advanced-sidebar-menu/transform-notice\"]' );\n\n\t/**\n\t * This is not a priority component, so it anything fails\n\t * we fail silently.\n\t */\n\ttry {\n\t\tplaceholders.forEach( placeholder => {\n\t\t\tconst root = createRoot( placeholder );\n\t\t\troot.render( <TransformNotice /> );\n\t\t} );\n\t} catch ( e ) {\n\t\tconsole.error( e );\n\t}\n}\n\n\n/**\n * Modern JS for legacy widgets on the widgets screen.\n *\n * @see resources/js/advanced-sidebar-menu.js for the legacy JS.\n */\nexport default () => {\n\t// Only load on the widgets screen.\n\tif ( '1' !== CONFIG.isWidgets ) {\n\t\treturn;\n\t}\n\t// Fire when each widget loads.\n\tjQuery( document ).on( 'widget-added', function() {\n\t\trenderTransformNotice();\n\t} );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"transform-notice__wrap__mq\"};","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"info-panel__wrap__k_\",\"button\":\"info-panel__button__Fg\"};","// extracted by mini-css-extract-plugin\nexport default {\"error\":\"edit__error__lZ\"};","// extracted by mini-css-extract-plugin\nexport default {\"placeholder\":\"preview__placeholder__HI\",\"error\":\"preview__error__Nl\",\"spin-wrap\":\"preview__spin-wrap__o0\",\"spinWrap\":\"preview__spin-wrap__o0\",\"spin\":\"preview__spin__Oj\",\"spin-content\":\"preview__spin-content__uC\",\"spinContent\":\"preview__spin-content__uC\"};","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n  exports.createRoot = m.createRoot;\n  exports.hydrateRoot = m.hydrateRoot;\n} else {\n  var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n  exports.createRoot = function(c, o) {\n    i.usingClientEntryPoint = true;\n    try {\n      return m.createRoot(c, o);\n    } finally {\n      i.usingClientEntryPoint = false;\n    }\n  };\n  exports.hydrateRoot = function(c, h, o) {\n    i.usingClientEntryPoint = true;\n    try {\n      return m.hydrateRoot(c, h, o);\n    } finally {\n      i.usingClientEntryPoint = false;\n    }\n  };\n}\n","/*! @license DOMPurify 3.1.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.6/LICENSE */\n\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n  typeof define === 'function' && define.amd ? define(factory) :\n  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.DOMPurify = factory());\n})(this, (function () { 'use strict';\n\n  const {\n    entries,\n    setPrototypeOf,\n    isFrozen,\n    getPrototypeOf,\n    getOwnPropertyDescriptor\n  } = Object;\n  let {\n    freeze,\n    seal,\n    create\n  } = Object; // eslint-disable-line import/no-mutable-exports\n  let {\n    apply,\n    construct\n  } = typeof Reflect !== 'undefined' && Reflect;\n  if (!freeze) {\n    freeze = function freeze(x) {\n      return x;\n    };\n  }\n  if (!seal) {\n    seal = function seal(x) {\n      return x;\n    };\n  }\n  if (!apply) {\n    apply = function apply(fun, thisValue, args) {\n      return fun.apply(thisValue, args);\n    };\n  }\n  if (!construct) {\n    construct = function construct(Func, args) {\n      return new Func(...args);\n    };\n  }\n  const arrayForEach = unapply(Array.prototype.forEach);\n  const arrayPop = unapply(Array.prototype.pop);\n  const arrayPush = unapply(Array.prototype.push);\n  const stringToLowerCase = unapply(String.prototype.toLowerCase);\n  const stringToString = unapply(String.prototype.toString);\n  const stringMatch = unapply(String.prototype.match);\n  const stringReplace = unapply(String.prototype.replace);\n  const stringIndexOf = unapply(String.prototype.indexOf);\n  const stringTrim = unapply(String.prototype.trim);\n  const objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\n  const regExpTest = unapply(RegExp.prototype.test);\n  const typeErrorCreate = unconstruct(TypeError);\n\n  /**\n   * Creates a new function that calls the given function with a specified thisArg and arguments.\n   *\n   * @param {Function} func - The function to be wrapped and called.\n   * @returns {Function} A new function that calls the given function with a specified thisArg and arguments.\n   */\n  function unapply(func) {\n    return function (thisArg) {\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n      return apply(func, thisArg, args);\n    };\n  }\n\n  /**\n   * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n   *\n   * @param {Function} func - The constructor function to be wrapped and called.\n   * @returns {Function} A new function that constructs an instance of the given constructor function with the provided arguments.\n   */\n  function unconstruct(func) {\n    return function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      return construct(func, args);\n    };\n  }\n\n  /**\n   * Add properties to a lookup table\n   *\n   * @param {Object} set - The set to which elements will be added.\n   * @param {Array} array - The array containing elements to be added to the set.\n   * @param {Function} transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n   * @returns {Object} The modified set with added elements.\n   */\n  function addToSet(set, array) {\n    let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n    if (setPrototypeOf) {\n      // Make 'in' and truthy checks like Boolean(set.constructor)\n      // independent of any properties defined on Object.prototype.\n      // Prevent prototype setters from intercepting set as a this value.\n      setPrototypeOf(set, null);\n    }\n    let l = array.length;\n    while (l--) {\n      let element = array[l];\n      if (typeof element === 'string') {\n        const lcElement = transformCaseFunc(element);\n        if (lcElement !== element) {\n          // Config presets (e.g. tags.js, attrs.js) are immutable.\n          if (!isFrozen(array)) {\n            array[l] = lcElement;\n          }\n          element = lcElement;\n        }\n      }\n      set[element] = true;\n    }\n    return set;\n  }\n\n  /**\n   * Clean up an array to harden against CSPP\n   *\n   * @param {Array} array - The array to be cleaned.\n   * @returns {Array} The cleaned version of the array\n   */\n  function cleanArray(array) {\n    for (let index = 0; index < array.length; index++) {\n      const isPropertyExist = objectHasOwnProperty(array, index);\n      if (!isPropertyExist) {\n        array[index] = null;\n      }\n    }\n    return array;\n  }\n\n  /**\n   * Shallow clone an object\n   *\n   * @param {Object} object - The object to be cloned.\n   * @returns {Object} A new object that copies the original.\n   */\n  function clone(object) {\n    const newObject = create(null);\n    for (const [property, value] of entries(object)) {\n      const isPropertyExist = objectHasOwnProperty(object, property);\n      if (isPropertyExist) {\n        if (Array.isArray(value)) {\n          newObject[property] = cleanArray(value);\n        } else if (value && typeof value === 'object' && value.constructor === Object) {\n          newObject[property] = clone(value);\n        } else {\n          newObject[property] = value;\n        }\n      }\n    }\n    return newObject;\n  }\n\n  /**\n   * This method automatically checks if the prop is function or getter and behaves accordingly.\n   *\n   * @param {Object} object - The object to look up the getter function in its prototype chain.\n   * @param {String} prop - The property name for which to find the getter function.\n   * @returns {Function} The getter function found in the prototype chain or a fallback function.\n   */\n  function lookupGetter(object, prop) {\n    while (object !== null) {\n      const desc = getOwnPropertyDescriptor(object, prop);\n      if (desc) {\n        if (desc.get) {\n          return unapply(desc.get);\n        }\n        if (typeof desc.value === 'function') {\n          return unapply(desc.value);\n        }\n      }\n      object = getPrototypeOf(object);\n    }\n    function fallbackValue() {\n      return null;\n    }\n    return fallbackValue;\n  }\n\n  const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n  // SVG\n  const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n  const svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\n  // List of SVG elements that are disallowed by default.\n  // We still need to know them so that we can do namespace\n  // checks properly in case one wants to add them to\n  // allow-list.\n  const svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n  const mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n\n  // Similarly to SVG, we want to know all MathML elements,\n  // even those that we disallow by default.\n  const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n  const text = freeze(['#text']);\n\n  const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);\n  const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n  const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n  const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n  // eslint-disable-next-line unicorn/better-regex\n  const MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n  const ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\n  const TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\n  const DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n  const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n  const IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n  );\n  const IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n  const ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n  );\n  const DOCTYPE_NAME = seal(/^html$/i);\n  const CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\n  var EXPRESSIONS = /*#__PURE__*/Object.freeze({\n    __proto__: null,\n    MUSTACHE_EXPR: MUSTACHE_EXPR,\n    ERB_EXPR: ERB_EXPR,\n    TMPLIT_EXPR: TMPLIT_EXPR,\n    DATA_ATTR: DATA_ATTR,\n    ARIA_ATTR: ARIA_ATTR,\n    IS_ALLOWED_URI: IS_ALLOWED_URI,\n    IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n    ATTR_WHITESPACE: ATTR_WHITESPACE,\n    DOCTYPE_NAME: DOCTYPE_NAME,\n    CUSTOM_ELEMENT: CUSTOM_ELEMENT\n  });\n\n  // https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n  const NODE_TYPE = {\n    element: 1,\n    attribute: 2,\n    text: 3,\n    cdataSection: 4,\n    entityReference: 5,\n    // Deprecated\n    entityNode: 6,\n    // Deprecated\n    progressingInstruction: 7,\n    comment: 8,\n    document: 9,\n    documentType: 10,\n    documentFragment: 11,\n    notation: 12 // Deprecated\n  };\n  const getGlobal = function getGlobal() {\n    return typeof window === 'undefined' ? null : window;\n  };\n\n  /**\n   * Creates a no-op policy for internal use only.\n   * Don't export this function outside this module!\n   * @param {TrustedTypePolicyFactory} trustedTypes The policy factory.\n   * @param {HTMLScriptElement} purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n   * @return {TrustedTypePolicy} The policy created (or null, if Trusted Types\n   * are not supported or creating the policy failed).\n   */\n  const _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n    if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n      return null;\n    }\n\n    // Allow the callers to control the unique policy name\n    // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n    // Policy creation with duplicate names throws in Trusted Types.\n    let suffix = null;\n    const ATTR_NAME = 'data-tt-policy-suffix';\n    if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n      suffix = purifyHostElement.getAttribute(ATTR_NAME);\n    }\n    const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n    try {\n      return trustedTypes.createPolicy(policyName, {\n        createHTML(html) {\n          return html;\n        },\n        createScriptURL(scriptUrl) {\n          return scriptUrl;\n        }\n      });\n    } catch (_) {\n      // Policy creation failed (most likely another DOMPurify script has\n      // already run). Skip creating the policy, as this will only cause errors\n      // if TT are enforced.\n      console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n      return null;\n    }\n  };\n  function createDOMPurify() {\n    let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n    const DOMPurify = root => createDOMPurify(root);\n\n    /**\n     * Version label, exposed for easier checks\n     * if DOMPurify is up to date or not\n     */\n    DOMPurify.version = '3.1.6';\n\n    /**\n     * Array of elements that DOMPurify removed during sanitation.\n     * Empty if nothing was removed.\n     */\n    DOMPurify.removed = [];\n    if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document) {\n      // Not running in a browser, provide a factory function\n      // so that you can pass your own Window\n      DOMPurify.isSupported = false;\n      return DOMPurify;\n    }\n    let {\n      document\n    } = window;\n    const originalDocument = document;\n    const currentScript = originalDocument.currentScript;\n    const {\n      DocumentFragment,\n      HTMLTemplateElement,\n      Node,\n      Element,\n      NodeFilter,\n      NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n      HTMLFormElement,\n      DOMParser,\n      trustedTypes\n    } = window;\n    const ElementPrototype = Element.prototype;\n    const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n    const remove = lookupGetter(ElementPrototype, 'remove');\n    const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n    const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n    const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n    // As per issue #47, the web-components registry is inherited by a\n    // new document created via createHTMLDocument. As per the spec\n    // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n    // a new empty registry is used when creating a template contents owner\n    // document, so we use that as our parent document to ensure nothing\n    // is inherited.\n    if (typeof HTMLTemplateElement === 'function') {\n      const template = document.createElement('template');\n      if (template.content && template.content.ownerDocument) {\n        document = template.content.ownerDocument;\n      }\n    }\n    let trustedTypesPolicy;\n    let emptyHTML = '';\n    const {\n      implementation,\n      createNodeIterator,\n      createDocumentFragment,\n      getElementsByTagName\n    } = document;\n    const {\n      importNode\n    } = originalDocument;\n    let hooks = {};\n\n    /**\n     * Expose whether this browser supports running the full DOMPurify.\n     */\n    DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n    const {\n      MUSTACHE_EXPR,\n      ERB_EXPR,\n      TMPLIT_EXPR,\n      DATA_ATTR,\n      ARIA_ATTR,\n      IS_SCRIPT_OR_DATA,\n      ATTR_WHITESPACE,\n      CUSTOM_ELEMENT\n    } = EXPRESSIONS;\n    let {\n      IS_ALLOWED_URI: IS_ALLOWED_URI$1\n    } = EXPRESSIONS;\n\n    /**\n     * We consider the elements and attributes below to be safe. Ideally\n     * don't add any new ones but feel free to remove unwanted ones.\n     */\n\n    /* allowed element names */\n    let ALLOWED_TAGS = null;\n    const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n\n    /* Allowed attribute names */\n    let ALLOWED_ATTR = null;\n    const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n\n    /*\n     * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n     * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n     * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n     * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n     */\n    let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n      tagNameCheck: {\n        writable: true,\n        configurable: false,\n        enumerable: true,\n        value: null\n      },\n      attributeNameCheck: {\n        writable: true,\n        configurable: false,\n        enumerable: true,\n        value: null\n      },\n      allowCustomizedBuiltInElements: {\n        writable: true,\n        configurable: false,\n        enumerable: true,\n        value: false\n      }\n    }));\n\n    /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n    let FORBID_TAGS = null;\n\n    /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n    let FORBID_ATTR = null;\n\n    /* Decide if ARIA attributes are okay */\n    let ALLOW_ARIA_ATTR = true;\n\n    /* Decide if custom data attributes are okay */\n    let ALLOW_DATA_ATTR = true;\n\n    /* Decide if unknown protocols are okay */\n    let ALLOW_UNKNOWN_PROTOCOLS = false;\n\n    /* Decide if self-closing tags in attributes are allowed.\n     * Usually removed due to a mXSS issue in jQuery 3.0 */\n    let ALLOW_SELF_CLOSE_IN_ATTR = true;\n\n    /* Output should be safe for common template engines.\n     * This means, DOMPurify removes data attributes, mustaches and ERB\n     */\n    let SAFE_FOR_TEMPLATES = false;\n\n    /* Output should be safe even for XML used within HTML and alike.\n     * This means, DOMPurify removes comments when containing risky content.\n     */\n    let SAFE_FOR_XML = true;\n\n    /* Decide if document with <html>... should be returned */\n    let WHOLE_DOCUMENT = false;\n\n    /* Track whether config is already set on this instance of DOMPurify. */\n    let SET_CONFIG = false;\n\n    /* Decide if all elements (e.g. style, script) must be children of\n     * document.body. By default, browsers might move them to document.head */\n    let FORCE_BODY = false;\n\n    /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n     * string (or a TrustedHTML object if Trusted Types are supported).\n     * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n     */\n    let RETURN_DOM = false;\n\n    /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n     * string  (or a TrustedHTML object if Trusted Types are supported) */\n    let RETURN_DOM_FRAGMENT = false;\n\n    /* Try to return a Trusted Type object instead of a string, return a string in\n     * case Trusted Types are not supported  */\n    let RETURN_TRUSTED_TYPE = false;\n\n    /* Output should be free from DOM clobbering attacks?\n     * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n     */\n    let SANITIZE_DOM = true;\n\n    /* Achieve full DOM Clobbering protection by isolating the namespace of named\n     * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n     *\n     * HTML/DOM spec rules that enable DOM Clobbering:\n     *   - Named Access on Window (§7.3.3)\n     *   - DOM Tree Accessors (§3.1.5)\n     *   - Form Element Parent-Child Relations (§4.10.3)\n     *   - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n     *   - HTMLCollection (§4.2.10.2)\n     *\n     * Namespace isolation is implemented by prefixing `id` and `name` attributes\n     * with a constant string, i.e., `user-content-`\n     */\n    let SANITIZE_NAMED_PROPS = false;\n    const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n\n    /* Keep element content when removing element? */\n    let KEEP_CONTENT = true;\n\n    /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n     * of importing it into a new Document and returning a sanitized copy */\n    let IN_PLACE = false;\n\n    /* Allow usage of profiles like html, svg and mathMl */\n    let USE_PROFILES = {};\n\n    /* Tags to ignore content of when KEEP_CONTENT is true */\n    let FORBID_CONTENTS = null;\n    const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n\n    /* Tags that are safe for data: URIs */\n    let DATA_URI_TAGS = null;\n    const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n\n    /* Attributes safe for values like \"javascript:\" */\n    let URI_SAFE_ATTRIBUTES = null;\n    const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n    const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n    const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n    const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n    /* Document namespace */\n    let NAMESPACE = HTML_NAMESPACE;\n    let IS_EMPTY_INPUT = false;\n\n    /* Allowed XHTML+XML namespaces */\n    let ALLOWED_NAMESPACES = null;\n    const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n\n    /* Parsing of strict XHTML documents */\n    let PARSER_MEDIA_TYPE = null;\n    const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n    const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n    let transformCaseFunc = null;\n\n    /* Keep a reference to config to pass to hooks */\n    let CONFIG = null;\n\n    /* Ideally, do not touch anything below this line */\n    /* ______________________________________________ */\n\n    const formElement = document.createElement('form');\n    const isRegexOrFunction = function isRegexOrFunction(testValue) {\n      return testValue instanceof RegExp || testValue instanceof Function;\n    };\n\n    /**\n     * _parseConfig\n     *\n     * @param  {Object} cfg optional config literal\n     */\n    // eslint-disable-next-line complexity\n    const _parseConfig = function _parseConfig() {\n      let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      if (CONFIG && CONFIG === cfg) {\n        return;\n      }\n\n      /* Shield configuration object from tampering */\n      if (!cfg || typeof cfg !== 'object') {\n        cfg = {};\n      }\n\n      /* Shield configuration object from prototype pollution */\n      cfg = clone(cfg);\n      PARSER_MEDIA_TYPE =\n      // eslint-disable-next-line unicorn/prefer-includes\n      SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n\n      // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n      transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n\n      /* Set configuration parameters */\n      ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n      ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n      ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n      URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES),\n      // eslint-disable-line indent\n      cfg.ADD_URI_SAFE_ATTR,\n      // eslint-disable-line indent\n      transformCaseFunc // eslint-disable-line indent\n      ) // eslint-disable-line indent\n      : DEFAULT_URI_SAFE_ATTRIBUTES;\n      DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS),\n      // eslint-disable-line indent\n      cfg.ADD_DATA_URI_TAGS,\n      // eslint-disable-line indent\n      transformCaseFunc // eslint-disable-line indent\n      ) // eslint-disable-line indent\n      : DEFAULT_DATA_URI_TAGS;\n      FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n      FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n      FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n      USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;\n      ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n      ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n      ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n      ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n      SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n      SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n      WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n      RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n      RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n      RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n      FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n      SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n      SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n      KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n      IN_PLACE = cfg.IN_PLACE || false; // Default false\n      IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n      NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n      CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n      if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n        CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n      }\n      if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n        CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n      }\n      if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n        CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n      }\n      if (SAFE_FOR_TEMPLATES) {\n        ALLOW_DATA_ATTR = false;\n      }\n      if (RETURN_DOM_FRAGMENT) {\n        RETURN_DOM = true;\n      }\n\n      /* Parse profile info */\n      if (USE_PROFILES) {\n        ALLOWED_TAGS = addToSet({}, text);\n        ALLOWED_ATTR = [];\n        if (USE_PROFILES.html === true) {\n          addToSet(ALLOWED_TAGS, html$1);\n          addToSet(ALLOWED_ATTR, html);\n        }\n        if (USE_PROFILES.svg === true) {\n          addToSet(ALLOWED_TAGS, svg$1);\n          addToSet(ALLOWED_ATTR, svg);\n          addToSet(ALLOWED_ATTR, xml);\n        }\n        if (USE_PROFILES.svgFilters === true) {\n          addToSet(ALLOWED_TAGS, svgFilters);\n          addToSet(ALLOWED_ATTR, svg);\n          addToSet(ALLOWED_ATTR, xml);\n        }\n        if (USE_PROFILES.mathMl === true) {\n          addToSet(ALLOWED_TAGS, mathMl$1);\n          addToSet(ALLOWED_ATTR, mathMl);\n          addToSet(ALLOWED_ATTR, xml);\n        }\n      }\n\n      /* Merge configuration parameters */\n      if (cfg.ADD_TAGS) {\n        if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n          ALLOWED_TAGS = clone(ALLOWED_TAGS);\n        }\n        addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n      }\n      if (cfg.ADD_ATTR) {\n        if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n          ALLOWED_ATTR = clone(ALLOWED_ATTR);\n        }\n        addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n      }\n      if (cfg.ADD_URI_SAFE_ATTR) {\n        addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n      }\n      if (cfg.FORBID_CONTENTS) {\n        if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n          FORBID_CONTENTS = clone(FORBID_CONTENTS);\n        }\n        addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n      }\n\n      /* Add #text in case KEEP_CONTENT is set to true */\n      if (KEEP_CONTENT) {\n        ALLOWED_TAGS['#text'] = true;\n      }\n\n      /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n      if (WHOLE_DOCUMENT) {\n        addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n      }\n\n      /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n      if (ALLOWED_TAGS.table) {\n        addToSet(ALLOWED_TAGS, ['tbody']);\n        delete FORBID_TAGS.tbody;\n      }\n      if (cfg.TRUSTED_TYPES_POLICY) {\n        if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n          throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n        }\n        if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n          throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n        }\n\n        // Overwrite existing TrustedTypes policy.\n        trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n\n        // Sign local variables required by `sanitize`.\n        emptyHTML = trustedTypesPolicy.createHTML('');\n      } else {\n        // Uninitialized policy, attempt to initialize the internal dompurify policy.\n        if (trustedTypesPolicy === undefined) {\n          trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n        }\n\n        // If creating the internal policy succeeded sign internal variables.\n        if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n          emptyHTML = trustedTypesPolicy.createHTML('');\n        }\n      }\n\n      // Prevent further manipulation of configuration.\n      // Not available in IE8, Safari 5, etc.\n      if (freeze) {\n        freeze(cfg);\n      }\n      CONFIG = cfg;\n    };\n    const MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n    const HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'annotation-xml']);\n\n    // Certain elements are allowed in both SVG and HTML\n    // namespace. We need to specify them explicitly\n    // so that they don't get erroneously deleted from\n    // HTML namespace.\n    const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n\n    /* Keep track of all possible SVG and MathML tags\n     * so that we can perform the namespace checks\n     * correctly. */\n    const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n    const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n\n    /**\n     * @param  {Element} element a DOM element whose namespace is being checked\n     * @returns {boolean} Return false if the element has a\n     *  namespace that a spec-compliant parser would never\n     *  return. Return true otherwise.\n     */\n    const _checkValidNamespace = function _checkValidNamespace(element) {\n      let parent = getParentNode(element);\n\n      // In JSDOM, if we're inside shadow DOM, then parentNode\n      // can be null. We just simulate parent in this case.\n      if (!parent || !parent.tagName) {\n        parent = {\n          namespaceURI: NAMESPACE,\n          tagName: 'template'\n        };\n      }\n      const tagName = stringToLowerCase(element.tagName);\n      const parentTagName = stringToLowerCase(parent.tagName);\n      if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n        return false;\n      }\n      if (element.namespaceURI === SVG_NAMESPACE) {\n        // The only way to switch from HTML namespace to SVG\n        // is via <svg>. If it happens via any other tag, then\n        // it should be killed.\n        if (parent.namespaceURI === HTML_NAMESPACE) {\n          return tagName === 'svg';\n        }\n\n        // The only way to switch from MathML to SVG is via`\n        // svg if parent is either <annotation-xml> or MathML\n        // text integration points.\n        if (parent.namespaceURI === MATHML_NAMESPACE) {\n          return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n        }\n\n        // We only allow elements that are defined in SVG\n        // spec. All others are disallowed in SVG namespace.\n        return Boolean(ALL_SVG_TAGS[tagName]);\n      }\n      if (element.namespaceURI === MATHML_NAMESPACE) {\n        // The only way to switch from HTML namespace to MathML\n        // is via <math>. If it happens via any other tag, then\n        // it should be killed.\n        if (parent.namespaceURI === HTML_NAMESPACE) {\n          return tagName === 'math';\n        }\n\n        // The only way to switch from SVG to MathML is via\n        // <math> and HTML integration points\n        if (parent.namespaceURI === SVG_NAMESPACE) {\n          return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n        }\n\n        // We only allow elements that are defined in MathML\n        // spec. All others are disallowed in MathML namespace.\n        return Boolean(ALL_MATHML_TAGS[tagName]);\n      }\n      if (element.namespaceURI === HTML_NAMESPACE) {\n        // The only way to switch from SVG to HTML is via\n        // HTML integration points, and from MathML to HTML\n        // is via MathML text integration points\n        if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n          return false;\n        }\n        if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n          return false;\n        }\n\n        // We disallow tags that are specific for MathML\n        // or SVG and should never appear in HTML namespace\n        return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n      }\n\n      // For XHTML and XML documents that support custom namespaces\n      if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n        return true;\n      }\n\n      // The code should never reach this place (this means\n      // that the element somehow got namespace that is not\n      // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n      // Return false just in case.\n      return false;\n    };\n\n    /**\n     * _forceRemove\n     *\n     * @param  {Node} node a DOM node\n     */\n    const _forceRemove = function _forceRemove(node) {\n      arrayPush(DOMPurify.removed, {\n        element: node\n      });\n      try {\n        // eslint-disable-next-line unicorn/prefer-dom-node-remove\n        getParentNode(node).removeChild(node);\n      } catch (_) {\n        remove(node);\n      }\n    };\n\n    /**\n     * _removeAttribute\n     *\n     * @param  {String} name an Attribute name\n     * @param  {Node} node a DOM node\n     */\n    const _removeAttribute = function _removeAttribute(name, node) {\n      try {\n        arrayPush(DOMPurify.removed, {\n          attribute: node.getAttributeNode(name),\n          from: node\n        });\n      } catch (_) {\n        arrayPush(DOMPurify.removed, {\n          attribute: null,\n          from: node\n        });\n      }\n      node.removeAttribute(name);\n\n      // We void attribute values for unremovable \"is\"\" attributes\n      if (name === 'is' && !ALLOWED_ATTR[name]) {\n        if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n          try {\n            _forceRemove(node);\n          } catch (_) {}\n        } else {\n          try {\n            node.setAttribute(name, '');\n          } catch (_) {}\n        }\n      }\n    };\n\n    /**\n     * _initDocument\n     *\n     * @param  {String} dirty a string of dirty markup\n     * @return {Document} a DOM, filled with the dirty markup\n     */\n    const _initDocument = function _initDocument(dirty) {\n      /* Create a HTML document */\n      let doc = null;\n      let leadingWhitespace = null;\n      if (FORCE_BODY) {\n        dirty = '<remove></remove>' + dirty;\n      } else {\n        /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n        const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n        leadingWhitespace = matches && matches[0];\n      }\n      if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n        // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n        dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n      }\n      const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n      /*\n       * Use the DOMParser API by default, fallback later if needs be\n       * DOMParser not work for svg when has multiple root element.\n       */\n      if (NAMESPACE === HTML_NAMESPACE) {\n        try {\n          doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n        } catch (_) {}\n      }\n\n      /* Use createHTMLDocument in case DOMParser is not available */\n      if (!doc || !doc.documentElement) {\n        doc = implementation.createDocument(NAMESPACE, 'template', null);\n        try {\n          doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n        } catch (_) {\n          // Syntax error if dirtyPayload is invalid xml\n        }\n      }\n      const body = doc.body || doc.documentElement;\n      if (dirty && leadingWhitespace) {\n        body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n      }\n\n      /* Work on whole document or just its body */\n      if (NAMESPACE === HTML_NAMESPACE) {\n        return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n      }\n      return WHOLE_DOCUMENT ? doc.documentElement : body;\n    };\n\n    /**\n     * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n     *\n     * @param  {Node} root The root element or node to start traversing on.\n     * @return {NodeIterator} The created NodeIterator\n     */\n    const _createNodeIterator = function _createNodeIterator(root) {\n      return createNodeIterator.call(root.ownerDocument || root, root,\n      // eslint-disable-next-line no-bitwise\n      NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n    };\n\n    /**\n     * _isClobbered\n     *\n     * @param  {Node} elm element to check for clobbering attacks\n     * @return {Boolean} true if clobbered, false if safe\n     */\n    const _isClobbered = function _isClobbered(elm) {\n      return elm instanceof HTMLFormElement && (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function' || typeof elm.hasChildNodes !== 'function');\n    };\n\n    /**\n     * Checks whether the given object is a DOM node.\n     *\n     * @param  {Node} object object to check whether it's a DOM node\n     * @return {Boolean} true is object is a DOM node\n     */\n    const _isNode = function _isNode(object) {\n      return typeof Node === 'function' && object instanceof Node;\n    };\n\n    /**\n     * _executeHook\n     * Execute user configurable hooks\n     *\n     * @param  {String} entryPoint  Name of the hook's entry point\n     * @param  {Node} currentNode node to work on with the hook\n     * @param  {Object} data additional hook parameters\n     */\n    const _executeHook = function _executeHook(entryPoint, currentNode, data) {\n      if (!hooks[entryPoint]) {\n        return;\n      }\n      arrayForEach(hooks[entryPoint], hook => {\n        hook.call(DOMPurify, currentNode, data, CONFIG);\n      });\n    };\n\n    /**\n     * _sanitizeElements\n     *\n     * @protect nodeName\n     * @protect textContent\n     * @protect removeChild\n     *\n     * @param   {Node} currentNode to check for permission to exist\n     * @return  {Boolean} true if node was killed, false if left alive\n     */\n    const _sanitizeElements = function _sanitizeElements(currentNode) {\n      let content = null;\n\n      /* Execute a hook if present */\n      _executeHook('beforeSanitizeElements', currentNode, null);\n\n      /* Check if element is clobbered or can clobber */\n      if (_isClobbered(currentNode)) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Now let's check the element's type and name */\n      const tagName = transformCaseFunc(currentNode.nodeName);\n\n      /* Execute a hook if present */\n      _executeHook('uponSanitizeElement', currentNode, {\n        tagName,\n        allowedTags: ALLOWED_TAGS\n      });\n\n      /* Detect mXSS attempts abusing namespace confusion */\n      if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Remove any occurrence of processing instructions */\n      if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Remove any kind of possibly harmful comments */\n      if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\\w]/g, currentNode.data)) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Remove element if anything forbids its presence */\n      if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n        /* Check if we have a custom element to handle */\n        if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n          if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n            return false;\n          }\n          if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n            return false;\n          }\n        }\n\n        /* Keep content except for bad-listed elements */\n        if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n          const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n          const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n          if (childNodes && parentNode) {\n            const childCount = childNodes.length;\n            for (let i = childCount - 1; i >= 0; --i) {\n              const childClone = cloneNode(childNodes[i], true);\n              childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n              parentNode.insertBefore(childClone, getNextSibling(currentNode));\n            }\n          }\n        }\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Check whether element has a valid namespace */\n      if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Make sure that older browsers don't get fallback-tag mXSS */\n      if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Sanitize element content to be template-safe */\n      if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n        /* Get the element's text content */\n        content = currentNode.textContent;\n        arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n          content = stringReplace(content, expr, ' ');\n        });\n        if (currentNode.textContent !== content) {\n          arrayPush(DOMPurify.removed, {\n            element: currentNode.cloneNode()\n          });\n          currentNode.textContent = content;\n        }\n      }\n\n      /* Execute a hook if present */\n      _executeHook('afterSanitizeElements', currentNode, null);\n      return false;\n    };\n\n    /**\n     * _isValidAttribute\n     *\n     * @param  {string} lcTag Lowercase tag name of containing element.\n     * @param  {string} lcName Lowercase attribute name.\n     * @param  {string} value Attribute value.\n     * @return {Boolean} Returns true if `value` is valid, otherwise false.\n     */\n    // eslint-disable-next-line complexity\n    const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n      /* Make sure attribute cannot clobber */\n      if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n        return false;\n      }\n\n      /* Allow valid data-* attributes: At least one character after \"-\"\n          (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n          XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n          We don't need to check the value; it's always URI safe. */\n      if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n        if (\n        // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n        // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n        // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n        _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) ||\n        // Alternative, second condition checks if it's an `is`-attribute, AND\n        // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n        lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n          return false;\n        }\n        /* Check value is safe. First, is attr inert? If so, is safe */\n      } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {\n        return false;\n      } else ;\n      return true;\n    };\n\n    /**\n     * _isBasicCustomElement\n     * checks if at least one dash is included in tagName, and it's not the first char\n     * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n     *\n     * @param {string} tagName name of the tag of the node to sanitize\n     * @returns {boolean} Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n     */\n    const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n      return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n    };\n\n    /**\n     * _sanitizeAttributes\n     *\n     * @protect attributes\n     * @protect nodeName\n     * @protect removeAttribute\n     * @protect setAttribute\n     *\n     * @param  {Node} currentNode to sanitize\n     */\n    const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n      /* Execute a hook if present */\n      _executeHook('beforeSanitizeAttributes', currentNode, null);\n      const {\n        attributes\n      } = currentNode;\n\n      /* Check if we have attributes; if not we might have a text node */\n      if (!attributes) {\n        return;\n      }\n      const hookEvent = {\n        attrName: '',\n        attrValue: '',\n        keepAttr: true,\n        allowedAttributes: ALLOWED_ATTR\n      };\n      let l = attributes.length;\n\n      /* Go backwards over all attributes; safely remove bad ones */\n      while (l--) {\n        const attr = attributes[l];\n        const {\n          name,\n          namespaceURI,\n          value: attrValue\n        } = attr;\n        const lcName = transformCaseFunc(name);\n        let value = name === 'value' ? attrValue : stringTrim(attrValue);\n\n        /* Execute a hook if present */\n        hookEvent.attrName = lcName;\n        hookEvent.attrValue = value;\n        hookEvent.keepAttr = true;\n        hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n        _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n        value = hookEvent.attrValue;\n\n        /* Work around a security issue with comments inside attributes */\n        if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title)/i, value)) {\n          _removeAttribute(name, currentNode);\n          continue;\n        }\n\n        /* Did the hooks approve of the attribute? */\n        if (hookEvent.forceKeepAttr) {\n          continue;\n        }\n\n        /* Remove attribute */\n        _removeAttribute(name, currentNode);\n\n        /* Did the hooks approve of the attribute? */\n        if (!hookEvent.keepAttr) {\n          continue;\n        }\n\n        /* Work around a security issue in jQuery 3.0 */\n        if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n          _removeAttribute(name, currentNode);\n          continue;\n        }\n\n        /* Sanitize attribute content to be template-safe */\n        if (SAFE_FOR_TEMPLATES) {\n          arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n            value = stringReplace(value, expr, ' ');\n          });\n        }\n\n        /* Is `value` valid for this attribute? */\n        const lcTag = transformCaseFunc(currentNode.nodeName);\n        if (!_isValidAttribute(lcTag, lcName, value)) {\n          continue;\n        }\n\n        /* Full DOM Clobbering protection via namespace isolation,\n         * Prefix id and name attributes with `user-content-`\n         */\n        if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n          // Remove the attribute with this value\n          _removeAttribute(name, currentNode);\n\n          // Prefix the value and later re-create the attribute with the sanitized value\n          value = SANITIZE_NAMED_PROPS_PREFIX + value;\n        }\n\n        /* Handle attributes that require Trusted Types */\n        if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n          if (namespaceURI) ; else {\n            switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n              case 'TrustedHTML':\n                {\n                  value = trustedTypesPolicy.createHTML(value);\n                  break;\n                }\n              case 'TrustedScriptURL':\n                {\n                  value = trustedTypesPolicy.createScriptURL(value);\n                  break;\n                }\n            }\n          }\n        }\n\n        /* Handle invalid data-* attribute set by try-catching it */\n        try {\n          if (namespaceURI) {\n            currentNode.setAttributeNS(namespaceURI, name, value);\n          } else {\n            /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n            currentNode.setAttribute(name, value);\n          }\n          if (_isClobbered(currentNode)) {\n            _forceRemove(currentNode);\n          } else {\n            arrayPop(DOMPurify.removed);\n          }\n        } catch (_) {}\n      }\n\n      /* Execute a hook if present */\n      _executeHook('afterSanitizeAttributes', currentNode, null);\n    };\n\n    /**\n     * _sanitizeShadowDOM\n     *\n     * @param  {DocumentFragment} fragment to iterate over recursively\n     */\n    const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n      let shadowNode = null;\n      const shadowIterator = _createNodeIterator(fragment);\n\n      /* Execute a hook if present */\n      _executeHook('beforeSanitizeShadowDOM', fragment, null);\n      while (shadowNode = shadowIterator.nextNode()) {\n        /* Execute a hook if present */\n        _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n        /* Sanitize tags and elements */\n        if (_sanitizeElements(shadowNode)) {\n          continue;\n        }\n\n        /* Deep shadow DOM detected */\n        if (shadowNode.content instanceof DocumentFragment) {\n          _sanitizeShadowDOM(shadowNode.content);\n        }\n\n        /* Check attributes, sanitize if necessary */\n        _sanitizeAttributes(shadowNode);\n      }\n\n      /* Execute a hook if present */\n      _executeHook('afterSanitizeShadowDOM', fragment, null);\n    };\n\n    /**\n     * Sanitize\n     * Public method providing core sanitation functionality\n     *\n     * @param {String|Node} dirty string or DOM node\n     * @param {Object} cfg object\n     */\n    // eslint-disable-next-line complexity\n    DOMPurify.sanitize = function (dirty) {\n      let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      let body = null;\n      let importedNode = null;\n      let currentNode = null;\n      let returnNode = null;\n      /* Make sure we have a string to sanitize.\n        DO NOT return early, as this will return the wrong type if\n        the user has requested a DOM object rather than a string */\n      IS_EMPTY_INPUT = !dirty;\n      if (IS_EMPTY_INPUT) {\n        dirty = '<!-->';\n      }\n\n      /* Stringify, in case dirty is an object */\n      if (typeof dirty !== 'string' && !_isNode(dirty)) {\n        if (typeof dirty.toString === 'function') {\n          dirty = dirty.toString();\n          if (typeof dirty !== 'string') {\n            throw typeErrorCreate('dirty is not a string, aborting');\n          }\n        } else {\n          throw typeErrorCreate('toString is not a function');\n        }\n      }\n\n      /* Return dirty HTML if DOMPurify cannot run */\n      if (!DOMPurify.isSupported) {\n        return dirty;\n      }\n\n      /* Assign config vars */\n      if (!SET_CONFIG) {\n        _parseConfig(cfg);\n      }\n\n      /* Clean up removed elements */\n      DOMPurify.removed = [];\n\n      /* Check if dirty is correctly typed for IN_PLACE */\n      if (typeof dirty === 'string') {\n        IN_PLACE = false;\n      }\n      if (IN_PLACE) {\n        /* Do some early pre-sanitization to avoid unsafe root nodes */\n        if (dirty.nodeName) {\n          const tagName = transformCaseFunc(dirty.nodeName);\n          if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n            throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n          }\n        }\n      } else if (dirty instanceof Node) {\n        /* If dirty is a DOM element, append to an empty document to avoid\n           elements being stripped by the parser */\n        body = _initDocument('<!---->');\n        importedNode = body.ownerDocument.importNode(dirty, true);\n        if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n          /* Node is already a body, use as is */\n          body = importedNode;\n        } else if (importedNode.nodeName === 'HTML') {\n          body = importedNode;\n        } else {\n          // eslint-disable-next-line unicorn/prefer-dom-node-append\n          body.appendChild(importedNode);\n        }\n      } else {\n        /* Exit directly if we have nothing to do */\n        if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n        // eslint-disable-next-line unicorn/prefer-includes\n        dirty.indexOf('<') === -1) {\n          return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n        }\n\n        /* Initialize the document to work on */\n        body = _initDocument(dirty);\n\n        /* Check we have a DOM node from the data */\n        if (!body) {\n          return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n        }\n      }\n\n      /* Remove first element node (ours) if FORCE_BODY is set */\n      if (body && FORCE_BODY) {\n        _forceRemove(body.firstChild);\n      }\n\n      /* Get node iterator */\n      const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n\n      /* Now start iterating over the created document */\n      while (currentNode = nodeIterator.nextNode()) {\n        /* Sanitize tags and elements */\n        if (_sanitizeElements(currentNode)) {\n          continue;\n        }\n\n        /* Shadow DOM detected, sanitize it */\n        if (currentNode.content instanceof DocumentFragment) {\n          _sanitizeShadowDOM(currentNode.content);\n        }\n\n        /* Check attributes, sanitize if necessary */\n        _sanitizeAttributes(currentNode);\n      }\n\n      /* If we sanitized `dirty` in-place, return it. */\n      if (IN_PLACE) {\n        return dirty;\n      }\n\n      /* Return sanitized string or DOM */\n      if (RETURN_DOM) {\n        if (RETURN_DOM_FRAGMENT) {\n          returnNode = createDocumentFragment.call(body.ownerDocument);\n          while (body.firstChild) {\n            // eslint-disable-next-line unicorn/prefer-dom-node-append\n            returnNode.appendChild(body.firstChild);\n          }\n        } else {\n          returnNode = body;\n        }\n        if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n          /*\n            AdoptNode() is not used because internal state is not reset\n            (e.g. the past names map of a HTMLFormElement), this is safe\n            in theory but we would rather not risk another attack vector.\n            The state that is cloned by importNode() is explicitly defined\n            by the specs.\n          */\n          returnNode = importNode.call(originalDocument, returnNode, true);\n        }\n        return returnNode;\n      }\n      let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n      /* Serialize doctype if allowed */\n      if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n        serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n      }\n\n      /* Sanitize final string template-safe */\n      if (SAFE_FOR_TEMPLATES) {\n        arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n          serializedHTML = stringReplace(serializedHTML, expr, ' ');\n        });\n      }\n      return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n    };\n\n    /**\n     * Public method to set the configuration once\n     * setConfig\n     *\n     * @param {Object} cfg configuration object\n     */\n    DOMPurify.setConfig = function () {\n      let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      _parseConfig(cfg);\n      SET_CONFIG = true;\n    };\n\n    /**\n     * Public method to remove the configuration\n     * clearConfig\n     *\n     */\n    DOMPurify.clearConfig = function () {\n      CONFIG = null;\n      SET_CONFIG = false;\n    };\n\n    /**\n     * Public method to check if an attribute value is valid.\n     * Uses last set config, if any. Otherwise, uses config defaults.\n     * isValidAttribute\n     *\n     * @param  {String} tag Tag name of containing element.\n     * @param  {String} attr Attribute name.\n     * @param  {String} value Attribute value.\n     * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n     */\n    DOMPurify.isValidAttribute = function (tag, attr, value) {\n      /* Initialize shared config vars if necessary. */\n      if (!CONFIG) {\n        _parseConfig({});\n      }\n      const lcTag = transformCaseFunc(tag);\n      const lcName = transformCaseFunc(attr);\n      return _isValidAttribute(lcTag, lcName, value);\n    };\n\n    /**\n     * AddHook\n     * Public method to add DOMPurify hooks\n     *\n     * @param {String} entryPoint entry point for the hook to add\n     * @param {Function} hookFunction function to execute\n     */\n    DOMPurify.addHook = function (entryPoint, hookFunction) {\n      if (typeof hookFunction !== 'function') {\n        return;\n      }\n      hooks[entryPoint] = hooks[entryPoint] || [];\n      arrayPush(hooks[entryPoint], hookFunction);\n    };\n\n    /**\n     * RemoveHook\n     * Public method to remove a DOMPurify hook at a given entryPoint\n     * (pops it from the stack of hooks if more are present)\n     *\n     * @param {String} entryPoint entry point for the hook to remove\n     * @return {Function} removed(popped) hook\n     */\n    DOMPurify.removeHook = function (entryPoint) {\n      if (hooks[entryPoint]) {\n        return arrayPop(hooks[entryPoint]);\n      }\n    };\n\n    /**\n     * RemoveHooks\n     * Public method to remove all DOMPurify hooks at a given entryPoint\n     *\n     * @param  {String} entryPoint entry point for the hooks to remove\n     */\n    DOMPurify.removeHooks = function (entryPoint) {\n      if (hooks[entryPoint]) {\n        hooks[entryPoint] = [];\n      }\n    };\n\n    /**\n     * RemoveAllHooks\n     * Public method to remove all DOMPurify hooks\n     */\n    DOMPurify.removeAllHooks = function () {\n      hooks = {};\n    };\n    return DOMPurify;\n  }\n  var purify = createDOMPurify();\n\n  return purify;\n\n}));\n//# sourceMappingURL=purify.js.map\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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\nif (process.env.NODE_ENV !== \"production\") {\n  (function() {\n'use strict';\n\nvar React = require('react');\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n  if (maybeIterable === null || typeof maybeIterable !== 'object') {\n    return null;\n  }\n\n  var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n  if (typeof maybeIterator === 'function') {\n    return maybeIterator;\n  }\n\n  return null;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n  {\n    {\n      for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n        args[_key2 - 1] = arguments[_key2];\n      }\n\n      printWarning('error', format, args);\n    }\n  }\n}\n\nfunction printWarning(level, format, args) {\n  // When changing this logic, you might want to also\n  // update consoleWithStackDev.www.js as well.\n  {\n    var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n    var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n    if (stack !== '') {\n      format += '%s';\n      args = args.concat([stack]);\n    } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n    var argsWithFormat = args.map(function (item) {\n      return String(item);\n    }); // Careful: RN currently depends on this prefix\n\n    argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n    // breaks IE9: https://github.com/facebook/react/issues/13610\n    // eslint-disable-next-line react-internal/no-production-logging\n\n    Function.prototype.apply.call(console[level], console, argsWithFormat);\n  }\n}\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n  REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n  if (typeof type === 'string' || typeof type === 'function') {\n    return true;\n  } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n  if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing  || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden  || type === REACT_OFFSCREEN_TYPE || enableScopeAPI  || enableCacheElement  || enableTransitionTracing ) {\n    return true;\n  }\n\n  if (typeof type === 'object' && type !== null) {\n    if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n    // types supported by any Flight configuration anywhere since\n    // we don't know which Flight build this will end up being used\n    // with.\n    type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n      return true;\n    }\n  }\n\n  return false;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n  var displayName = outerType.displayName;\n\n  if (displayName) {\n    return displayName;\n  }\n\n  var functionName = innerType.displayName || innerType.name || '';\n  return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n  return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(type) {\n  if (type == null) {\n    // Host root, text node or just invalid type.\n    return null;\n  }\n\n  {\n    if (typeof type.tag === 'number') {\n      error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n    }\n  }\n\n  if (typeof type === 'function') {\n    return type.displayName || type.name || null;\n  }\n\n  if (typeof type === 'string') {\n    return type;\n  }\n\n  switch (type) {\n    case REACT_FRAGMENT_TYPE:\n      return 'Fragment';\n\n    case REACT_PORTAL_TYPE:\n      return 'Portal';\n\n    case REACT_PROFILER_TYPE:\n      return 'Profiler';\n\n    case REACT_STRICT_MODE_TYPE:\n      return 'StrictMode';\n\n    case REACT_SUSPENSE_TYPE:\n      return 'Suspense';\n\n    case REACT_SUSPENSE_LIST_TYPE:\n      return 'SuspenseList';\n\n  }\n\n  if (typeof type === 'object') {\n    switch (type.$$typeof) {\n      case REACT_CONTEXT_TYPE:\n        var context = type;\n        return getContextName(context) + '.Consumer';\n\n      case REACT_PROVIDER_TYPE:\n        var provider = type;\n        return getContextName(provider._context) + '.Provider';\n\n      case REACT_FORWARD_REF_TYPE:\n        return getWrappedName(type, type.render, 'ForwardRef');\n\n      case REACT_MEMO_TYPE:\n        var outerName = type.displayName || null;\n\n        if (outerName !== null) {\n          return outerName;\n        }\n\n        return getComponentNameFromType(type.type) || 'Memo';\n\n      case REACT_LAZY_TYPE:\n        {\n          var lazyComponent = type;\n          var payload = lazyComponent._payload;\n          var init = lazyComponent._init;\n\n          try {\n            return getComponentNameFromType(init(payload));\n          } catch (x) {\n            return null;\n          }\n        }\n\n      // eslint-disable-next-line no-fallthrough\n    }\n  }\n\n  return null;\n}\n\nvar assign = Object.assign;\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n  {\n    if (disabledDepth === 0) {\n      /* eslint-disable react-internal/no-production-logging */\n      prevLog = console.log;\n      prevInfo = console.info;\n      prevWarn = console.warn;\n      prevError = console.error;\n      prevGroup = console.group;\n      prevGroupCollapsed = console.groupCollapsed;\n      prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n      var props = {\n        configurable: true,\n        enumerable: true,\n        value: disabledLog,\n        writable: true\n      }; // $FlowFixMe Flow thinks console is immutable.\n\n      Object.defineProperties(console, {\n        info: props,\n        log: props,\n        warn: props,\n        error: props,\n        group: props,\n        groupCollapsed: props,\n        groupEnd: props\n      });\n      /* eslint-enable react-internal/no-production-logging */\n    }\n\n    disabledDepth++;\n  }\n}\nfunction reenableLogs() {\n  {\n    disabledDepth--;\n\n    if (disabledDepth === 0) {\n      /* eslint-disable react-internal/no-production-logging */\n      var props = {\n        configurable: true,\n        enumerable: true,\n        writable: true\n      }; // $FlowFixMe Flow thinks console is immutable.\n\n      Object.defineProperties(console, {\n        log: assign({}, props, {\n          value: prevLog\n        }),\n        info: assign({}, props, {\n          value: prevInfo\n        }),\n        warn: assign({}, props, {\n          value: prevWarn\n        }),\n        error: assign({}, props, {\n          value: prevError\n        }),\n        group: assign({}, props, {\n          value: prevGroup\n        }),\n        groupCollapsed: assign({}, props, {\n          value: prevGroupCollapsed\n        }),\n        groupEnd: assign({}, props, {\n          value: prevGroupEnd\n        })\n      });\n      /* eslint-enable react-internal/no-production-logging */\n    }\n\n    if (disabledDepth < 0) {\n      error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n    }\n  }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n  {\n    if (prefix === undefined) {\n      // Extract the VM specific prefix used by each line.\n      try {\n        throw Error();\n      } catch (x) {\n        var match = x.stack.trim().match(/\\n( *(at )?)/);\n        prefix = match && match[1] || '';\n      }\n    } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n    return '\\n' + prefix + name;\n  }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n  var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n  componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n  // If something asked for a stack inside a fake render, it should get ignored.\n  if ( !fn || reentry) {\n    return '';\n  }\n\n  {\n    var frame = componentFrameCache.get(fn);\n\n    if (frame !== undefined) {\n      return frame;\n    }\n  }\n\n  var control;\n  reentry = true;\n  var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n  Error.prepareStackTrace = undefined;\n  var previousDispatcher;\n\n  {\n    previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n    // for warnings.\n\n    ReactCurrentDispatcher.current = null;\n    disableLogs();\n  }\n\n  try {\n    // This should throw.\n    if (construct) {\n      // Something should be setting the props in the constructor.\n      var Fake = function () {\n        throw Error();\n      }; // $FlowFixMe\n\n\n      Object.defineProperty(Fake.prototype, 'props', {\n        set: function () {\n          // We use a throwing setter instead of frozen or non-writable props\n          // because that won't throw in a non-strict mode function.\n          throw Error();\n        }\n      });\n\n      if (typeof Reflect === 'object' && Reflect.construct) {\n        // We construct a different control for this case to include any extra\n        // frames added by the construct call.\n        try {\n          Reflect.construct(Fake, []);\n        } catch (x) {\n          control = x;\n        }\n\n        Reflect.construct(fn, [], Fake);\n      } else {\n        try {\n          Fake.call();\n        } catch (x) {\n          control = x;\n        }\n\n        fn.call(Fake.prototype);\n      }\n    } else {\n      try {\n        throw Error();\n      } catch (x) {\n        control = x;\n      }\n\n      fn();\n    }\n  } catch (sample) {\n    // This is inlined manually because closure doesn't do it for us.\n    if (sample && control && typeof sample.stack === 'string') {\n      // This extracts the first frame from the sample that isn't also in the control.\n      // Skipping one frame that we assume is the frame that calls the two.\n      var sampleLines = sample.stack.split('\\n');\n      var controlLines = control.stack.split('\\n');\n      var s = sampleLines.length - 1;\n      var c = controlLines.length - 1;\n\n      while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n        // We expect at least one stack frame to be shared.\n        // Typically this will be the root most one. However, stack frames may be\n        // cut off due to maximum stack limits. In this case, one maybe cut off\n        // earlier than the other. We assume that the sample is longer or the same\n        // and there for cut off earlier. So we should find the root most frame in\n        // the sample somewhere in the control.\n        c--;\n      }\n\n      for (; s >= 1 && c >= 0; s--, c--) {\n        // Next we find the first one that isn't the same which should be the\n        // frame that called our sample function and the control.\n        if (sampleLines[s] !== controlLines[c]) {\n          // In V8, the first line is describing the message but other VMs don't.\n          // If we're about to return the first line, and the control is also on the same\n          // line, that's a pretty good indicator that our sample threw at same line as\n          // the control. I.e. before we entered the sample frame. So we ignore this result.\n          // This can happen if you passed a class to function component, or non-function.\n          if (s !== 1 || c !== 1) {\n            do {\n              s--;\n              c--; // We may still have similar intermediate frames from the construct call.\n              // The next one that isn't the same should be our match though.\n\n              if (c < 0 || sampleLines[s] !== controlLines[c]) {\n                // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n                var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n                // but we have a user-provided \"displayName\"\n                // splice it in to make the stack more readable.\n\n\n                if (fn.displayName && _frame.includes('<anonymous>')) {\n                  _frame = _frame.replace('<anonymous>', fn.displayName);\n                }\n\n                {\n                  if (typeof fn === 'function') {\n                    componentFrameCache.set(fn, _frame);\n                  }\n                } // Return the line we found.\n\n\n                return _frame;\n              }\n            } while (s >= 1 && c >= 0);\n          }\n\n          break;\n        }\n      }\n    }\n  } finally {\n    reentry = false;\n\n    {\n      ReactCurrentDispatcher.current = previousDispatcher;\n      reenableLogs();\n    }\n\n    Error.prepareStackTrace = previousPrepareStackTrace;\n  } // Fallback to just using the name if we couldn't make it throw.\n\n\n  var name = fn ? fn.displayName || fn.name : '';\n  var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n  {\n    if (typeof fn === 'function') {\n      componentFrameCache.set(fn, syntheticFrame);\n    }\n  }\n\n  return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n  {\n    return describeNativeComponentFrame(fn, false);\n  }\n}\n\nfunction shouldConstruct(Component) {\n  var prototype = Component.prototype;\n  return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n  if (type == null) {\n    return '';\n  }\n\n  if (typeof type === 'function') {\n    {\n      return describeNativeComponentFrame(type, shouldConstruct(type));\n    }\n  }\n\n  if (typeof type === 'string') {\n    return describeBuiltInComponentFrame(type);\n  }\n\n  switch (type) {\n    case REACT_SUSPENSE_TYPE:\n      return describeBuiltInComponentFrame('Suspense');\n\n    case REACT_SUSPENSE_LIST_TYPE:\n      return describeBuiltInComponentFrame('SuspenseList');\n  }\n\n  if (typeof type === 'object') {\n    switch (type.$$typeof) {\n      case REACT_FORWARD_REF_TYPE:\n        return describeFunctionComponentFrame(type.render);\n\n      case REACT_MEMO_TYPE:\n        // Memo may contain any component type so we recursively resolve it.\n        return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n      case REACT_LAZY_TYPE:\n        {\n          var lazyComponent = type;\n          var payload = lazyComponent._payload;\n          var init = lazyComponent._init;\n\n          try {\n            // Lazy may contain any component type so we recursively resolve it.\n            return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n          } catch (x) {}\n        }\n    }\n  }\n\n  return '';\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n  {\n    if (element) {\n      var owner = element._owner;\n      var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n      ReactDebugCurrentFrame.setExtraStackFrame(stack);\n    } else {\n      ReactDebugCurrentFrame.setExtraStackFrame(null);\n    }\n  }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n  {\n    // $FlowFixMe This is okay but Flow doesn't know it.\n    var has = Function.call.bind(hasOwnProperty);\n\n    for (var typeSpecName in typeSpecs) {\n      if (has(typeSpecs, typeSpecName)) {\n        var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n        // fail the render phase where it didn't fail before. So we log it.\n        // After these have been cleaned up, we'll let them throw.\n\n        try {\n          // This is intentionally an invariant that gets caught. It's the same\n          // behavior as without this statement except with a better message.\n          if (typeof typeSpecs[typeSpecName] !== 'function') {\n            // eslint-disable-next-line react-internal/prod-error-codes\n            var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n            err.name = 'Invariant Violation';\n            throw err;\n          }\n\n          error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n        } catch (ex) {\n          error$1 = ex;\n        }\n\n        if (error$1 && !(error$1 instanceof Error)) {\n          setCurrentlyValidatingElement(element);\n\n          error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n          setCurrentlyValidatingElement(null);\n        }\n\n        if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n          // Only monitor this failure once because there tends to be a lot of the\n          // same error.\n          loggedTypeFailures[error$1.message] = true;\n          setCurrentlyValidatingElement(element);\n\n          error('Failed %s type: %s', location, error$1.message);\n\n          setCurrentlyValidatingElement(null);\n        }\n      }\n    }\n  }\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n  return isArrayImpl(a);\n}\n\n/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value) {\n  {\n    // toStringTag is needed for namespaced types like Temporal.Instant\n    var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n    var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n    return type;\n  }\n} // $FlowFixMe only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n  {\n    try {\n      testStringCoercion(value);\n      return false;\n    } catch (e) {\n      return true;\n    }\n  }\n}\n\nfunction testStringCoercion(value) {\n  // If you ended up here by following an exception call stack, here's what's\n  // happened: you supplied an object or symbol value to React (as a prop, key,\n  // DOM attribute, CSS property, string ref, etc.) and when React tried to\n  // coerce it to a string using `'' + value`, an exception was thrown.\n  //\n  // The most common types that will cause this exception are `Symbol` instances\n  // and Temporal objects like `Temporal.Instant`. But any object that has a\n  // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n  // exception. (Library authors do this to prevent users from using built-in\n  // numeric operators like `+` or comparison operators like `>=` because custom\n  // methods are needed to perform accurate arithmetic or comparison.)\n  //\n  // To fix the problem, coerce this object or symbol value to a string before\n  // passing it to React. The most reliable way is usually `String(value)`.\n  //\n  // To find which value is throwing, check the browser or debugger console.\n  // Before this exception was thrown, there should be `console.error` output\n  // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n  // problem and how that type was used: key, atrribute, input value prop, etc.\n  // In most cases, this console output also shows the component and its\n  // ancestor components where the exception happened.\n  //\n  // eslint-disable-next-line react-internal/safe-string-coercion\n  return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n  {\n    if (willCoercionThrow(value)) {\n      error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n      return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n    }\n  }\n}\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nvar RESERVED_PROPS = {\n  key: true,\n  ref: true,\n  __self: true,\n  __source: true\n};\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\nvar didWarnAboutStringRefs;\n\n{\n  didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n  {\n    if (hasOwnProperty.call(config, 'ref')) {\n      var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n      if (getter && getter.isReactWarning) {\n        return false;\n      }\n    }\n  }\n\n  return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n  {\n    if (hasOwnProperty.call(config, 'key')) {\n      var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n      if (getter && getter.isReactWarning) {\n        return false;\n      }\n    }\n  }\n\n  return config.key !== undefined;\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\n  {\n    if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {\n      var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n      if (!didWarnAboutStringRefs[componentName]) {\n        error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentNameFromType(ReactCurrentOwner.current.type), config.ref);\n\n        didWarnAboutStringRefs[componentName] = true;\n      }\n    }\n  }\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n  {\n    var warnAboutAccessingKey = function () {\n      if (!specialPropKeyWarningShown) {\n        specialPropKeyWarningShown = true;\n\n        error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n      }\n    };\n\n    warnAboutAccessingKey.isReactWarning = true;\n    Object.defineProperty(props, 'key', {\n      get: warnAboutAccessingKey,\n      configurable: true\n    });\n  }\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n  {\n    var warnAboutAccessingRef = function () {\n      if (!specialPropRefWarningShown) {\n        specialPropRefWarningShown = true;\n\n        error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n      }\n    };\n\n    warnAboutAccessingRef.isReactWarning = true;\n    Object.defineProperty(props, 'ref', {\n      get: warnAboutAccessingRef,\n      configurable: true\n    });\n  }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n  var element = {\n    // This tag allows us to uniquely identify this as a React Element\n    $$typeof: REACT_ELEMENT_TYPE,\n    // Built-in properties that belong on the element\n    type: type,\n    key: key,\n    ref: ref,\n    props: props,\n    // Record the component responsible for creating this element.\n    _owner: owner\n  };\n\n  {\n    // The validation flag is currently mutative. We put it on\n    // an external backing store so that we can freeze the whole object.\n    // This can be replaced with a WeakMap once they are implemented in\n    // commonly used development environments.\n    element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n    // the validation flag non-enumerable (where possible, which should\n    // include every environment we run tests in), so the test framework\n    // ignores it.\n\n    Object.defineProperty(element._store, 'validated', {\n      configurable: false,\n      enumerable: false,\n      writable: true,\n      value: false\n    }); // self and source are DEV only properties.\n\n    Object.defineProperty(element, '_self', {\n      configurable: false,\n      enumerable: false,\n      writable: false,\n      value: self\n    }); // Two elements created in two different places should be considered\n    // equal for testing purposes and therefore we hide it from enumeration.\n\n    Object.defineProperty(element, '_source', {\n      configurable: false,\n      enumerable: false,\n      writable: false,\n      value: source\n    });\n\n    if (Object.freeze) {\n      Object.freeze(element.props);\n      Object.freeze(element);\n    }\n  }\n\n  return element;\n};\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV(type, config, maybeKey, source, self) {\n  {\n    var propName; // Reserved names are extracted\n\n    var props = {};\n    var key = null;\n    var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n    // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n    // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n    // but as an intermediary step, we will use jsxDEV for everything except\n    // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n    // key is explicitly declared to be undefined or not.\n\n    if (maybeKey !== undefined) {\n      {\n        checkKeyStringCoercion(maybeKey);\n      }\n\n      key = '' + maybeKey;\n    }\n\n    if (hasValidKey(config)) {\n      {\n        checkKeyStringCoercion(config.key);\n      }\n\n      key = '' + config.key;\n    }\n\n    if (hasValidRef(config)) {\n      ref = config.ref;\n      warnIfStringRefCannotBeAutoConverted(config, self);\n    } // Remaining properties are added to a new props object\n\n\n    for (propName in config) {\n      if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n        props[propName] = config[propName];\n      }\n    } // Resolve default props\n\n\n    if (type && type.defaultProps) {\n      var defaultProps = type.defaultProps;\n\n      for (propName in defaultProps) {\n        if (props[propName] === undefined) {\n          props[propName] = defaultProps[propName];\n        }\n      }\n    }\n\n    if (key || ref) {\n      var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n      if (key) {\n        defineKeyPropWarningGetter(props, displayName);\n      }\n\n      if (ref) {\n        defineRefPropWarningGetter(props, displayName);\n      }\n    }\n\n    return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n  }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement$1(element) {\n  {\n    if (element) {\n      var owner = element._owner;\n      var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n      ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n    } else {\n      ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n    }\n  }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n  propTypesMisspellWarningShown = false;\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\n\nfunction isValidElement(object) {\n  {\n    return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n  }\n}\n\nfunction getDeclarationErrorAddendum() {\n  {\n    if (ReactCurrentOwner$1.current) {\n      var name = getComponentNameFromType(ReactCurrentOwner$1.current.type);\n\n      if (name) {\n        return '\\n\\nCheck the render method of `' + name + '`.';\n      }\n    }\n\n    return '';\n  }\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n  {\n    if (source !== undefined) {\n      var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n      var lineNumber = source.lineNumber;\n      return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n    }\n\n    return '';\n  }\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n  {\n    var info = getDeclarationErrorAddendum();\n\n    if (!info) {\n      var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n      if (parentName) {\n        info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n      }\n    }\n\n    return info;\n  }\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n  {\n    if (!element._store || element._store.validated || element.key != null) {\n      return;\n    }\n\n    element._store.validated = true;\n    var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n    if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n      return;\n    }\n\n    ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n    // property, it may be the creator of the child that's responsible for\n    // assigning it a key.\n\n    var childOwner = '';\n\n    if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {\n      // Give the component that originally created this child.\n      childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n    }\n\n    setCurrentlyValidatingElement$1(element);\n\n    error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n    setCurrentlyValidatingElement$1(null);\n  }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n  {\n    if (typeof node !== 'object') {\n      return;\n    }\n\n    if (isArray(node)) {\n      for (var i = 0; i < node.length; i++) {\n        var child = node[i];\n\n        if (isValidElement(child)) {\n          validateExplicitKey(child, parentType);\n        }\n      }\n    } else if (isValidElement(node)) {\n      // This element was passed in a valid location.\n      if (node._store) {\n        node._store.validated = true;\n      }\n    } else if (node) {\n      var iteratorFn = getIteratorFn(node);\n\n      if (typeof iteratorFn === 'function') {\n        // Entry iterators used to provide implicit keys,\n        // but now we print a separate warning for them later.\n        if (iteratorFn !== node.entries) {\n          var iterator = iteratorFn.call(node);\n          var step;\n\n          while (!(step = iterator.next()).done) {\n            if (isValidElement(step.value)) {\n              validateExplicitKey(step.value, parentType);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n  {\n    var type = element.type;\n\n    if (type === null || type === undefined || typeof type === 'string') {\n      return;\n    }\n\n    var propTypes;\n\n    if (typeof type === 'function') {\n      propTypes = type.propTypes;\n    } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n    // Inner props are checked in the reconciler.\n    type.$$typeof === REACT_MEMO_TYPE)) {\n      propTypes = type.propTypes;\n    } else {\n      return;\n    }\n\n    if (propTypes) {\n      // Intentionally inside to avoid triggering lazy initializers:\n      var name = getComponentNameFromType(type);\n      checkPropTypes(propTypes, element.props, 'prop', name, element);\n    } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n      propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n      var _name = getComponentNameFromType(type);\n\n      error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n    }\n\n    if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n      error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n    }\n  }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n  {\n    var keys = Object.keys(fragment.props);\n\n    for (var i = 0; i < keys.length; i++) {\n      var key = keys[i];\n\n      if (key !== 'children' && key !== 'key') {\n        setCurrentlyValidatingElement$1(fragment);\n\n        error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n        setCurrentlyValidatingElement$1(null);\n        break;\n      }\n    }\n\n    if (fragment.ref !== null) {\n      setCurrentlyValidatingElement$1(fragment);\n\n      error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n      setCurrentlyValidatingElement$1(null);\n    }\n  }\n}\n\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n  {\n    var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n    // succeed and there will likely be errors in render.\n\n    if (!validType) {\n      var info = '';\n\n      if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n        info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n      }\n\n      var sourceInfo = getSourceInfoErrorAddendum(source);\n\n      if (sourceInfo) {\n        info += sourceInfo;\n      } else {\n        info += getDeclarationErrorAddendum();\n      }\n\n      var typeString;\n\n      if (type === null) {\n        typeString = 'null';\n      } else if (isArray(type)) {\n        typeString = 'array';\n      } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n        typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n        info = ' Did you accidentally export a JSX literal instead of a component?';\n      } else {\n        typeString = typeof type;\n      }\n\n      error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n    }\n\n    var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n    // TODO: Drop this when these are no longer allowed as the type argument.\n\n    if (element == null) {\n      return element;\n    } // Skip key warning if the type isn't valid since our key validation logic\n    // doesn't expect a non-string/function type and can throw confusing errors.\n    // We don't want exception behavior to differ between dev and prod.\n    // (Rendering will throw with a helpful message and as soon as the type is\n    // fixed, the key warnings will appear.)\n\n\n    if (validType) {\n      var children = props.children;\n\n      if (children !== undefined) {\n        if (isStaticChildren) {\n          if (isArray(children)) {\n            for (var i = 0; i < children.length; i++) {\n              validateChildKeys(children[i], type);\n            }\n\n            if (Object.freeze) {\n              Object.freeze(children);\n            }\n          } else {\n            error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n          }\n        } else {\n          validateChildKeys(children, type);\n        }\n      }\n    }\n\n    if (type === REACT_FRAGMENT_TYPE) {\n      validateFragmentProps(element);\n    } else {\n      validatePropTypes(element);\n    }\n\n    return element;\n  }\n} // These two functions exist to still get child warnings in dev\n// even with the prod transform. This means that jsxDEV is purely\n// opt-in behavior for better messages but that we won't stop\n// giving you warnings if you use production apis.\n\nfunction jsxWithValidationStatic(type, props, key) {\n  {\n    return jsxWithValidation(type, props, key, true);\n  }\n}\nfunction jsxWithValidationDynamic(type, props, key) {\n  {\n    return jsxWithValidation(type, props, key, false);\n  }\n}\n\nvar jsx =  jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.\n// for now we can ship identical prod functions\n\nvar jsxs =  jsxWithValidationStatic ;\n\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsx;\nexports.jsxs = jsxs;\n  })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n  module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/* eslint-disable vars-on-top, no-var, prefer-template */\nvar isRegExp = function (re) { \n  return re instanceof RegExp;\n};\nvar escapeRegExp = function escapeRegExp(string) {\n  var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n    reHasRegExpChar = RegExp(reRegExpChar.source);\n\n  return (string && reHasRegExpChar.test(string))\n    ? string.replace(reRegExpChar, '\\\\$&')\n    : string;\n};\nvar isString = function (value) {\n  return typeof value === 'string';\n};\nvar flatten = function (array) {\n  var newArray = [];\n\n  array.forEach(function (item) {\n    if (Array.isArray(item)) {\n      newArray = newArray.concat(item);\n    } else {\n      newArray.push(item);\n    }\n  });\n\n  return newArray;\n};\n\n/**\n * Given a string, replace every substring that is matched by the `match` regex\n * with the result of calling `fn` on matched substring. The result will be an\n * array with all odd indexed elements containing the replacements. The primary\n * use case is similar to using String.prototype.replace except for React.\n *\n * React will happily render an array as children of a react element, which\n * makes this approach very useful for tasks like surrounding certain text\n * within a string with react elements.\n *\n * Example:\n * matchReplace(\n *   'Emphasize all phone numbers like 884-555-4443.',\n *   /([\\d|-]+)/g,\n *   (number, i) => <strong key={i}>{number}</strong>\n * );\n * // => ['Emphasize all phone numbers like ', <strong>884-555-4443</strong>, '.'\n *\n * @param {string} str\n * @param {RegExp|str} match Must contain a matching group\n * @param {function} fn\n * @return {array}\n */\nfunction replaceString(str, match, fn) {\n  var curCharStart = 0;\n  var curCharLen = 0;\n\n  if (str === '') {\n    return str;\n  } else if (!str || !isString(str)) {\n    throw new TypeError('First argument to react-string-replace#replaceString must be a string');\n  }\n\n  var re = match;\n\n  if (!isRegExp(re)) {\n    re = new RegExp('(' + escapeRegExp(re) + ')', 'gi');\n  }\n\n  var result = str.split(re);\n\n  // Apply fn to all odd elements\n  for (var i = 1, length = result.length; i < length; i += 2) {\n    /** @see {@link https://github.com/iansinnott/react-string-replace/issues/74} */\n    if (result[i] === undefined || result[i - 1] === undefined) {\n      console.warn('reactStringReplace: Encountered undefined value during string replacement. Your RegExp may not be working the way you expect.');\n      continue;\n    }\n\n    curCharLen = result[i].length;\n    curCharStart += result[i - 1].length;\n    result[i] = fn(result[i], i, curCharStart);\n    curCharStart += curCharLen;\n  }\n\n  return result;\n}\n\nmodule.exports = function reactStringReplace(source, match, fn) {\n  if (!Array.isArray(source)) source = [source];\n\n  return flatten(source.map(function(x) {\n    return isString(x) ? replaceString(x, match, fn) : x;\n  }));\n};\n","var map = {\n\t\"./categories/block.tsx\": 4356,\n\t\"./pages/block.tsx\": 6478,\n\t\"gutenberg/blocks/categories/block.tsx\": 4356,\n\t\"gutenberg/blocks/pages/block.tsx\": 6478\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 9406;","module.exports = React;","module.exports = ReactDOM;","module.exports = jQuery;","module.exports = lodash;","module.exports = wp.apiFetch;","module.exports = wp.blockEditor;","module.exports = wp.blocks;","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.hooks;","module.exports = wp.htmlEntities;","module.exports = wp.i18n;","module.exports = wp.plugins;","module.exports = wp.richText;","module.exports = wp.serverSideRender;","module.exports = wp.url;","// 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\tid: moduleId,\n\t\tloaded: false,\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// Flag the module as loaded\n\tmodule.loaded = true;\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 = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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__.hmd = (module) => {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: () => {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","import widgets from './modules/widgets';\n\nconsole.debug( 'Advanced Sidebar - Loaded' );\n\nwidgets();\n\n/**\n * 1. Blocks can't be lazy loaded, or they will be unavailable\n *    intermittently when developing.\n * 2. Theme Customizers must wait until the page is finished loading.\n *\n * @version 1.1.0\n */\nif ( typeof window.wp.element !== 'undefined' && typeof window.wp.plugins !== 'undefined' ) {\n\trequire( './gutenberg' ).default();\n} else if ( typeof window.wp.customize !== 'undefined' ) {\n\twindow.wp.customize.bind( 'ready', () => {\n\t\trequire( './gutenberg' ).default();\n\t} );\n}\n"],"names":["Component","CONFIG","addQueryArgs","sanitize","jsx","_jsx","jsxs","_jsxs","ErrorBoundary","constructor","props","state","hasError","error","getDerivedStateFromError","componentDidCatch","info","console","log","setState","render","siteInfo","scriptDebug","className","children","style","color","href","window","location","target","support","rel","border","padding","width","overflowWrap","section","currentScreen","message","block","JSON","stringify","attributes","stack","__","useState","Notice","styles","DISMISS_KEY","TransformNotice","shown","setShown","wrap","politeness","onDismiss","localStorage","setItem","actions","label","url","variant","ADVANCED_SIDEBAR_MENU","withFilters","select","isEmpty","firstClientId","SideLoad","clientId","getBlockIndex","CheckboxControl","PanelBody","Slot","sprintf","range","reactStringReplace","checkboxes","include_parent","include_childless_parent","display_all","Display","setAttributes","type","name","showLevels","blocks","pages","id","isPro","fillProps","title","Object","keys","map","item","labels","singular_name","toLowerCase","checked","onChange","replace","value","levels","ev","parseInt","n","categories","TextControl","ExcludeField","help","dangerouslySetInnerHTML","__html","exclude","Button","InspectorControls","decodeEntities","titleStyles","fontWeight","headingStyles","margin","fontSize","InfoPanel","initialOpen","features","feature","button","isPrimary","useEffect","ServerSideRender","Placeholder","Spinner","useBlockProps","doAction","isScreen","Fragment","_Fragment","ICON","xmlns","viewBox","x","fill","height","d","sanitizeClientId","getSidebarId","rootId","getBlockRootClientId","ParentBlock","getBlocksByClientId","Page","placeholder","icon","instructions","Category","Navigation","navigation","TriggerWhenLoadingFinished","setTimeout","values","errorMsg","Error","spinWrap","spin","spinContent","Preview","blockProps","sanitizedClientId","onClick","element","nodeName","preventDefault","EmptyResponsePlaceholder","LoadingResponsePlaceholder","isServerSideRenderRequest","sidebarId","httpMethod","useSelect","BlockControls","SelectControl","Edit","taxonomy","getTaxonomy","single","new_widget","options","displayEach","key","docs","category","transformLegacyWidget","EXAMPLE","apply_current_page_parent_styles_to_parent","apply_current_page_styles_to_parent","block_style","border_color","bullet_style","child_page_bg_color","child_page_color","parent_page_bg_color","parent_page_color","parent_page_font_weight","grandchild_page_bg_color","grandchild_page_color","grandchild_page_font_weight","settings","example","transforms","from","isMatch","idBase","instance","raw","transform","supports","edit","save","apiVersion","postType","getPostType","post_type","order_by","labelPosition","entries","orderBy","page","current_page_bg_color","current_page_color","current_page_font_weight","current_page_parent_bg_color","createBlock","screens","includes","translateLegacyWidget","forEach","autoloadBlocks","require","context","module","createRoot","renderTransformNotice","classicWidgets","getItem","placeholders","document","querySelectorAll","root","e","isWidgets","jQuery","on","widgets","debug","wp","plugins","default","customize","bind"],"sourceRoot":""}
     1{"version":3,"file":"advanced-sidebar-menu-block-editor.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAA2b,aAAa,wDAAwD,YAAY,mBAAmB,KAAK,mBAAmB,sEAAsE,SAAS,wBAAwB,aAAa,cAAc,4BAA4B,cAAc,qBAAqB,aAAa,kBAAkB,cAAc,oBAAoB,gBAAgB,+BAA+B,GAAG,2DAA2D,aAAa,IAAI,YAAY,IAAI,qBAAqB,EAAE,GAAG,mBAAmB,KAAK,aAAa,2DAA2D,iGAAiG,cAAc,GAAG,aAAa,oDAAoD,oBAAoB,wDAAwD,oFAAoF,yBAAyB,cAAc,GAAG,gBAAgB,iCAAiC,mBAAmB,OAAO,4BAA4B,mDAAC,gDAAgD,uBAAuB,iCAAiC,QAAQ,EAAE,qBAAqB,OAAO,6BAA6B,mDAAC,gCAAgC,mGAAmG,EAAE,yCAAyC,8BAA8B,OAAO,IAAI,sBAAsB,eAAe,wCAAwC,QAAQ,eAAe,sBAAsB,mBAAmB,6DAA6D,SAAS,YAAY,0BAA0B,2EAA2E,oBAAoB,YAAY,kBAAkB,QAAQ,WAAW,sCAAsC,SAAS,2BAA2B,aAAa,8FAA8F,IAAI,iBAAiB,oBAAoB,oDAAoD,cAAc,mBAAmB,cAAc,EAAE,YAAY,MAAM,2BAA2B,mDAAC,+BAA+B,EAAE,mBAAmB,qDAAqD,8CAA8C,OAAO,0HAA0H,EAAE,EAAE,qBAAqB,mBAAmB,IAAI,uBAAuB,2DAAC,uCAAuC,sBAAsB,4DAAC,eAAe,EAAE,EAAE,+BAA+B,GAAG,SAAS,2BAA2B,cAAc,OAAO,mBAAmB,qBAAqB,oBAAoB,2BAA2B,SAAS,EAAE,iBAAiB,oBAAoB,uBAAuB,0BAA0B,+BAA+B,oBAAoB,mBAAmB,2BAA2B,oBAAoB,iCAAiC,cAAc,SAAS,+JAA+J,uBAAuB,uBAAuB,6BAA6B,kCAAkC,wBAAwB,8BAA8B,oBAAoB,wBAAwB,8BAA8B,wDAAwD,oBAAoB,EAAE,GAAG,mCAAmC,OAAO,qBAAqB,8DAA8D,sBAAsB,iEAAiE,iBAAiB,2DAA2D,uBAAuB,8DAA8D,wBAAwB,sEAAsE,wBAAwB,kEAAkE,uBAAuB,OAAO,eAAe,kCAAkC,oBAAoB,uCAAuC,oBAAoB,OAAO,eAAe,+BAA+B,qBAAqB,sCAAsC,4CAA4C,iBAAiB,EAAE,2EAAiB,MAAM,aAAa,KAAK,gBAAgB,YAAY,mFAAyB,iIAAiI,oBAAoB,qCAAqC,IAAI,sBAAsB,2DAAC,EAAE,sBAAsB,oBAAoB,iDAAiD,4DAAC,uEAAuE,8CAA8C,mDAAC,mEAAmE,EAAE,SAAS,SAAS,2CAA2C,SAAS,IAAI,KAAK,aAAa,kBAAkB,aAAa,4BAA4B,gBAAgB,sBAAsB,gBAAgB,aAAa,IAAI,YAAY,cAAc,IAAI,qCAAqC,EAAE,KAAK,EAAE,kBAAkB,SAAS,mBAAmB,0CAA0C,mBAAmB,mEAAmE,YAAY,YAAY,SAAS,iBAAiB,cAAc,sCAAsC,qBAAqB,MAAM,cAAc,MAAM,IAAI,iBAAiB,SAAS,SAAS,SAAS,YAAY,0BAA0B,IAAI,UAAU,6CAA6C,SAAS,UAAU,GAAG,GAAG,mBAAmB,GAAG,kEAAkE,gEAAC,YAAY,kEAAC,cAAc,EAAE,iBAAiB,GAAG,wBAAwB,0BAA0B,sCAAsC,8DAAC,YAAY,gEAAC,eAAe,EAAE,iBAAiB,GAAG,wBAAwB,0BAA0B,sCAAsC,oEAAC,YAAY,sEAAC,eAAe,EAAE,eAAe,8GAA8G,cAAc,IAAI,UAAU,MAAM,SAAS,oCAAoC,WAAW,wGAAwG,UAAU,OAAO,sDAAsD,0BAA0B,EAAE,uDAAC,iDAAiD,eAAe,mBAAmB,IAAI,uBAAuB,yDAAC,4DAA4D,aAAa,aAAa,YAAY,wBAAwB,yDAAC,uDAAuD,kBAAkB,yDAAC,6DAA6D,EAAE,+BAA+B,uDAAC,sDAAsD,uBAAuB,mBAAmB,iCAAiC,oDAAoD,cAAc,EAAE,MAAM,EAAE,sBAAsB,aAAa,qBAAqB,IAAI,KAAK,aAAa,sBAAsB,mFAAmF,MAAM,eAAe,SAAS,oBAAoB,MAAM,KAAK,eAAe,uBAAuB,yDAAC,0DAA0D,EAAE,EAAE,+BAA+B,EAAE,SAAS,2BAA2B,gBAAgB,OAAO,UAAU,IAAI,WAAW,4BAA4B,wBAAwB,wCAAwC,oDAAoD,cAAc,MAAM,4DAAC,2BAA2B,0DAAC,aAAa,OAAO,mHAAmH,uGAAuG,MAAM,MAAM,UAAU,WAAW,EAAE,4BAA4B,MAAM,GAAG,UAAU,WAAW,EAAE,MAAM,yBAAyB,eAAe,MAAM,4DAAC,2BAA2B,0DAAC,aAAa,+BAA+B,UAAU,uIAAuI,EAAE,wBAAwB,kBAAkB,IAAI,MAAM,0CAA0C,sCAAsC,SAAS,0BAA0B,QAAQ,+BAA2f;AACn/S;;;;;;;;;;;;;;;;;;;;;;;;ACD8D;AACrB;AACG;AACT;AAAA;AAQnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMQ,aAAa,SAASR,4CAAS,CAGlC;EACFS,WAAWA,CAAEC,KAAK,EAAG;IACpB,KAAK,CAAEA,KAAM,CAAC;IACd,IAAI,CAACC,KAAK,GAAG;MACZC,QAAQ,EAAE,KAAK;MACfC,KAAK,EAAE;IACR,CAAC;EACF;EAEA,OAAOC,wBAAwBA,CAAA,EAAG;IACjC;IACA,OAAO;MACNF,QAAQ,EAAE;IACX,CAAC;EACF;;EAEA;AACD;AACA;AACA;AACA;AACA;AACA;EACCG,iBAAiBA,CAAEF,KAAY,EAAEG,IAAe,EAAG;IAClDC,OAAO,CAACC,GAAG,CAAE,uDAAuD,EAAE,mDAAoD,CAAC;IAC3HD,OAAO,CAACC,GAAG,CAAE,IAAI,CAACR,KAAM,CAAC;IACzBO,OAAO,CAACC,GAAG,CAAEL,KAAM,CAAC;IACpBI,OAAO,CAACC,GAAG,CAAEF,IAAK,CAAC;IACnB,IAAI,CAACG,QAAQ,CAAE;MACdN;IACD,CAAE,CAAC;EACJ;EAEAO,MAAMA,CAAA,EAAG;IACR,IAAK,IAAI,CAACT,KAAK,CAACC,QAAQ,EAAG;MAC1B,IAAK,CAAEX,mDAAM,CAACoB,QAAQ,CAACC,WAAW,EAAG;QACpC,oBAASf,uDAAA;UAAKgB,SAAS,EAAE,kCAAmC;UAAAC,QAAA,gBAC3DnB,sDAAA;YAAIoB,KAAK,EAAE;cAACC,KAAK,EAAE;YAAK,CAAE;YAAAF,QAAA,EAAC;UAE3B,CAAI,CAAC,eACLjB,uDAAA;YAAAiB,QAAA,GAAG,SACK,eAAAnB,sDAAA;cACNsB,IAAI,EAAEzB,4DAAY,CAAEC,mDAAQ,CAAEyB,MAAM,CAACC,QAAQ,CAACF,IAAK,CAAC,EAAE;gBACrD,cAAc,EAAE;cACjB,CAAG,CAAE;cAAAH,QAAA,EACL;YAAmB,CAAG,CAAC,mCACzB;UAAA,CAAG,CAAC;QAAA,CACA,CAAC;MACP;MACA,oBACCjB,uDAAA;QAAKgB,SAAS,EAAE,kCAAmC;QAAAC,QAAA,gBAClDnB,sDAAA;UAAIoB,KAAK,EAAE;YAACC,KAAK,EAAE;UAAK,CAAE;UAAAF,QAAA,EAAC;QAE3B,CAAI,CAAC,eACLjB,uDAAA;UAAAiB,QAAA,GAAG,SACK,eAAAnB,sDAAA;YAAGyB,MAAM,EAAC,QAAQ;YAACH,IAAI,EAAE1B,mDAAM,CAAC8B,OAAQ;YAACC,GAAG,EAAC,YAAY;YAAAR,QAAA,EAAC;UAEjE,CAAG,CAAC,wBACL;QAAA,CAAG,CAAC,eACJjB,uDAAA;UAAAiB,QAAA,gBACCjB,uDAAA;YAAAiB,QAAA,GAAI,MACC,eAAAnB,sDAAA;cACHsB,IAAI,EAAE,4EAA6E;cACnFG,MAAM,EAAE,QAAS;cAACE,GAAG,EAAC,YAAY;cAAAR,QAAA,EAAC;YAEpC,CAAG,CAAC;UAAA,CACD,CAAC,eACLnB,sDAAA;YAAAmB,QAAA,EAAI;UAEJ,CAAI,CAAC;QAAA,CACF,CAAC,eAELjB,uDAAA;UACCkB,KAAK,EAAE;YACNQ,MAAM,EAAE,YAAY;YACpBC,OAAO,EAAE,MAAM;YACfC,KAAK,EAAE,MAAM;YACbC,YAAY,EAAE;UACf,CAAE;UAAAZ,QAAA,gBAEFjB,uDAAA;YAAAiB,QAAA,gBACCnB,sDAAA;cAAAmB,QAAA,eAAQnB,sDAAA;gBAAAmB,QAAA,EAAI;cAAO,CAAI;YAAC,CAAQ,CAAC,KAAC,eAAAnB,sDAAA,SAAK,CAAC,eACxCA,sDAAA;cAAAmB,QAAA,EACE,IAAI,CAACd,KAAK,CAAC2B;YAAO,CACd,CAAC;UAAA,CACL,CAAC,eACJ9B,uDAAA;YAAAiB,QAAA,gBACCnB,sDAAA;cAAAmB,QAAA,eAAQnB,sDAAA;gBAAAmB,QAAA,EAAI;cAAM,CAAI;YAAC,CAAQ,CAAC,KAAC,eAAAnB,sDAAA,SAAK,CAAC,eACvCA,sDAAA;cAAAmB,QAAA,EACEvB,mDAAM,CAACqC;YAAa,CAChB,CAAC;UAAA,CACL,CAAC,eACJ/B,uDAAA;YAAAiB,QAAA,gBACCnB,sDAAA;cAAAmB,QAAA,eAAQnB,sDAAA;gBAAAmB,QAAA,EAAI;cAAO,CAAI;YAAC,CAAQ,CAAC,KAAC,eAAAnB,sDAAA,SAAK,CAAC,eACxCA,sDAAA;cAAAmB,QAAA,EACE,IAAI,CAACb,KAAK,CAACE,KAAK,EAAE0B;YAAO,CACrB,CAAC;UAAA,CACL,CAAC,eACJhC,uDAAA;YAAAiB,QAAA,gBACCnB,sDAAA;cAAAmB,QAAA,eAAQnB,sDAAA;gBAAAmB,QAAA,EAAI;cAAK,CAAI;YAAC,CAAQ,CAAC,KAAC,eAAAnB,sDAAA,SAAK,CAAC,eACtCA,sDAAA;cAAAmB,QAAA,EACE,IAAI,CAACd,KAAK,CAAC8B;YAAK,CACZ,CAAC;UAAA,CACL,CAAC,eACJjC,uDAAA;YAAAiB,QAAA,gBACCnB,sDAAA;cAAAmB,QAAA,eAAQnB,sDAAA;gBAAAmB,QAAA,EAAI;cAAU,CAAI;YAAC,CAAQ,CAAC,KAAC,eAAAnB,sDAAA,SAAK,CAAC,eAC3CA,sDAAA;cAAAmB,QAAA,EACEiB,IAAI,CAACC,SAAS,CAAE,IAAI,CAAChC,KAAK,CAACiC,UAAW;YAAC,CACnC,CAAC;UAAA,CACL,CAAC,eACJpC,uDAAA;YAAAiB,QAAA,gBACCnB,sDAAA;cAAAmB,QAAA,eAAQnB,sDAAA;gBAAAmB,QAAA,EAAI;cAAS,CAAI;YAAC,CAAQ,CAAC,KAAC,eAAAnB,sDAAA,SAAK,CAAC,eAC1CA,sDAAA;cAAAmB,QAAA,EACEiB,IAAI,CAACC,SAAS,CAAEzC,mDAAM,CAACoB,QAAS;YAAC,CAC7B,CAAC;UAAA,CACL,CAAC,eACJd,uDAAA;YAAAiB,QAAA,gBACCnB,sDAAA;cAAAmB,QAAA,eAAQnB,sDAAA;gBAAAmB,QAAA,EAAI;cAAK,CAAI;YAAC,CAAQ,CAAC,KAAC,eAAAnB,sDAAA,SAAK,CAAC,eACtCA,sDAAA;cAAAmB,QAAA,EACE,IAAI,CAACb,KAAK,CAACE,KAAK,EAAE+B;YAAK,CACnB,CAAC;UAAA,CACL,CAAC;QAAA,CACA,CAAC,eACNvC,sDAAA;UAAAmB,QAAA,EAAG;QAEH,CAAG,CAAC,eACJnB,sDAAA;UAAAmB,QAAA,EAAG;QAEH,CAAG,CAAC;MAAA,CACA,CAAC;IAER;IAEA,OAAO,IAAI,CAACd,KAAK,CAACc,QAAQ;EAC3B;AACD;AAEA,iEAAehB,aAAa;;;;;;;;;;;;;;;;;;;;;;;;AChKO;AACJ;AACc;AAEA;AAAA;AAItC,MAAMyC,WAAW,GAAG,kDAAkD;;AAE7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,eAAe,GAAGA,CAAE,CAAQ,CAAC,KAAM;EACxC,MAAM,CAAEC,KAAK,EAAEC,QAAQ,CAAE,GAAGN,+CAAQ,CAAW,IAAK,CAAC;EAErD,IAAK,CAAEK,KAAK,EAAG;IACd,OAAO,IAAI;EACZ;EAEA,oBACC5C,uDAAA,CAACwC,yDAAM;IACNxB,SAAS,EAAEyB,8DAAM,CAACK,IAAK;IACvBC,UAAU,EAAE,QAAS;IACrBC,SAAS,EAAEA,CAAA,KAAM;MAChBH,QAAQ,CAAE,KAAM,CAAC;MACjBI,YAAY,CAACC,OAAO,CAAER,WAAW,EAAE,GAAI,CAAC;IACzC,CAAE;IACFS,OAAO,EAAE,CAAE;MACVC,KAAK,EAAEd,mDAAE,CAAE,iDAAiD,EAAE,uBAAwB,CAAC;MACvFe,GAAG,EAAE,sHAAsH;MAC3HC,OAAO,EAAE;IACV,CAAC,CAAG;IAAArC,QAAA,gBAEJnB,sDAAA;MAAMkB,SAAS,EAAC;IAAkC,CAAE,CAAC,QACrD,EAACsB,mDAAE,CAAE,8CAA8C,EAAE,uBAAwB,CAAC;EAAA,CACvE,CAAC;AAEX,CAAC;AAED,iEAAeK,eAAe;;;;;;;;;;;;;;;ACoCvB,MAAMjD,MAAgB,GAAG2B,MAAM,CAACkC,qBAAqB;;;;;;;;;;;;;;;;;;;;;AClFV;AACX;AACR;AAM/B,IAAII,aAAa,GAAG,EAAE;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,QAAQ,GAAGA,CAAE;EAACC,QAAQ;EAAE5C;AAAQ,CAAC,KAAM;EAC5C,IAAK,CAAEyC,+CAAO,CAAEC,aAAc,CAAC,IAAIE,QAAQ,KAAKF,aAAa,EAAG;IAC/D;IACA,IAAK,CAAC,CAAC,KAAKF,uDAAM,CAAE,mBAAoB,CAAC,CAACK,aAAa,CAAEH,aAAc,CAAC,EAAG;MAC1E,OAAO,IAAI;IACZ;EACD;EACAA,aAAa,GAAGE,QAAQ;EACxB,OAAO5C,QAAQ,IAAI,IAAI;AACxB,CAAC;AAED,iEAAeuC,kEAAW,CAAS,wCAAyC,CAAC,CAAEI,QAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;AC/BlB;AAC3B;AAGA;AAEf;AACyB;AAEK;AAAA;AAwB3D,MAAMS,UAA+D,GAAG;EACvE;EACAC,cAAc,EAAEhC,mDAAE,CAAE,iCAAiC,EAAE,uBAAwB,CAAC;EAChF;EACAiC,wBAAwB,EAAEjC,mDAAE,CAAE,+CAA+C,EAAE,uBAAwB,CAAC;EACxG;EACAkC,WAAW,EAAElC,mDAAE,CAAE,yBAAyB,EAAE,uBAAwB;AACrE,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMmC,OAAO,GAAGA,CAAE;EACjBrC,UAAU;EACVsC,aAAa;EACbC,IAAI;EACJC,IAAI;EACJf,QAAQ;EACR5C;AACM,CAAC,KAAM;EACb,MAAM4D,UAAU,GAAKnF,mDAAM,CAACoF,MAAM,CAACC,KAAK,CAACC,EAAE,KAAKJ,IAAI,IAAI,GAAG,KAAKlF,mDAAM,CAACuF,KAAK,IAAM,IAAI,KAAK7C,UAAU,CAACoC,WAAW;EAEjH,MAAMU,SAAoB,GAAG;IAC5BP,IAAI;IACJvC,UAAU;IACVwC,IAAI;IACJF,aAAa;IACbb;EACD,CAAC;EAED,oBACC7D,uDAAA,CAACgE,4DAAS;IAACmB,KAAK,EAAE7C,mDAAE,CAAE,SAAS,EAAE,uBAAwB,CAAE;IAAArB,QAAA,GACzDmE,MAAM,CAACC,IAAI,CAAEhB,UAAW,CAAC,CAACiB,GAAG,CAAEC,IAAI,IAAI;MACvC,IAAInC,KAAK,GAAGuB,IAAI,EAAEa,MAAM,EAAEC,aAAa,CAACC,WAAW,CAAC,CAAC,IAAI,EAAE;MAC3D,IAAK,aAAa,KAAKH,IAAI,EAAG;QAC7BnC,KAAK,GAAGuB,IAAI,EAAEa,MAAM,EAAEZ,IAAI,CAACc,WAAW,CAAC,CAAC,IAAI,EAAE;MAC/C;MACA,oBAAO5F,sDAAA,CAACiE,kEAAe;QAEtB;QACAX,KAAK,EAAEc,wDAAO,CAAEG,UAAU,CAAEkB,IAAI,CAAE,EAAEnC,KAAM,CAAE;QAC5CuC,OAAO,EAAE,IAAI,KAAKvD,UAAU,CAAEmD,IAAI,CAAG;QACrCK,QAAQ,EAAED,OAAO,IAAI;UACpBjB,aAAa,CAAE;YACd,CAAEa,IAAI,GAAII;UACX,CAAE,CAAC;QACJ;MAAE,GARGJ,IASL,CAAC;IACH,CAAE,CAAC,EACFV,UAAU,iBAAI/E,sDAAA;MAAKkB,SAAS,EAAE,yBAA0B;MAAAC,QAAA,EACvD;MACAmD,2DAAkB,CAAE9B,mDAAE,CAAE,mCAAmC,EAAE,uBAAwB,CAAC,CAACuD,OAAO,CAAE,MAAM,EAAElB,IAAI,EAAEa,MAAM,EAAEZ,IAAI,CAACc,WAAW,CAAC,CAAC,IAAI,EAAG,CAAC,EAAE,MAAM,EACvJ,mBACC1F,uDAAA;QAECgB,SAAS,EAAE,sCAAuC;QAClD8E,KAAK,EAAE1D,UAAU,CAAC2D,MAAO;QACzBH,QAAQ,EAAEI,EAAE,IAAItB,aAAa,CAAE;UAACqB,MAAM,EAAEE,QAAQ,CAAED,EAAE,CAACzE,MAAM,CAACuE,KAAM;QAAC,CAAE,CAAE;QAAA7E,QAAA,gBAEvEnB,sDAAA;UAAQgG,KAAK,EAAC,KAAK;UAAA7E,QAAA,EACjBqB,mDAAE,CAAE,SAAS,EAAE,uBAAwB;QAAC,CAClC,CAAC,EACR6B,6CAAK,CAAE,CAAC,EAAE,EAAG,CAAC,CAACmB,GAAG,CAAEY,CAAC,iBAAIpG,sDAAA;UAAgBgG,KAAK,EAAEI,CAAE;UAAAjF,QAAA,EACjDiF;QAAC,GADoCA,CAE/B,CAAE,CAAC;MAAA,GAVN,QAWE,CACP;IAAC,CACD,CAAC,EAELjF,QAAQ,eAETjB,uDAAA,CAACC,iEAAa;MAACmC,UAAU,EAAEA,UAAW;MAACH,KAAK,EAAE2C,IAAK;MAAC9C,OAAO,EAAE,eAAgB;MAAAb,QAAA,GAC3EvB,mDAAM,CAACoF,MAAM,CAACC,KAAK,CAACC,EAAE,KAAKJ,IAAI,iBAC/B9E,sDAAA,CAACmE,uDAAI;QACJW,IAAI,EAAC,qCAAqC;QAC1CM,SAAS,EAAEA;MAAU,CAAE,CAAC,EACzBxF,mDAAM,CAACoF,MAAM,CAACqB,UAAU,CAACnB,EAAE,KAAKJ,IAAI,iBACpC9E,sDAAA,CAACmE,uDAAI;QACJW,IAAI,EAAC,0CAA0C;QAC/CM,SAAS,EAAEA;MAAU,CAAE,CAAC;IAAA,CACZ,CAAC;EAAA,CAEN,CAAC;AAEd,CAAC;AAED,iEAAeT,OAAO;;;;;;;;;;;;;;;;;;;;AC7HyC;AACnB;AAAA;AAa5C;AACA;AACA;AACA;AACA;AACA,MAAM4B,YAAY,GAAGA,CAAE;EAAC1B,IAAI;EAAEvC,UAAU;EAAEsC;AAAoB,CAAC,KAAM;EACpE,MAAM4B,IAAI,gBAAGxG,sDAAA;IACZyG,uBAAuB,EAAE;MAAE;MAC1BC,MAAM,EAAEtC,wDAAO,EACd;MACA5B,mDAAE,CAAE,uEAAuE,EAAE,uBAAwB,CAAC,EAAE,kOAAkO,EAAE,MAAO;IACrV;EAAE,CAAE,CAAC;EAEN,oBACCxC,sDAAA,CAACsG,8DAAWA;EACX;IACAhD,KAAK,EAAEc,wDAAO,CAAE5B,mDAAE,CAAE,sCAAsC,EAAE,uBAAwB,CAAC,EAAEqC,IAAI,EAAEa,MAAM,EAAEZ,IAAI,IAAI,EAAG,CAAE;IAClHkB,KAAK,EAAE1D,UAAU,CAACqE,OAAQ;IAC1BH,IAAI,EAAEA,IAAK;IACXV,QAAQ,EAAEE,KAAK,IAAI;MAClBpB,aAAa,CAAE;QACd+B,OAAO,EAAEX;MACV,CAAE,CAAC;IACJ;EAAE,CAAE,CAAC;AAER,CAAC;AAED,iEAAetC,kEAAW,CAAS,4CAA6C,CAAC,CAAE6C,YAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;ACzCrD;AACyB;AACX;AACF;AACrB;AAEI;AAAA;AAMvC,MAAMQ,WAAW,GAAG;EACnB1F,KAAK,EAAE,SAAS;EAChB2F,UAAU,EAAE;AACb,CAAC;AAED,MAAMC,aAAa,GAAG;EACrBC,MAAM,EAAE,UAAU;EAClBC,QAAQ,EAAE;AACX,CAAC;AAED,MAAMC,SAAS,GAAGA,CAAE,CAAQ,CAAC,KAAM;EAClC,oBAASpH,sDAAA,CAAC6G,sEAAiB;IAAA1F,QAAA,eAC1BjB,uDAAA,CAACgE,4DAAS;MACTmB,KAAK,eAAErF,sDAAA;QAAMoB,KAAK,EAAE2F,WAAY;QAAA5F,QAAA,EAC9BqB,mDAAE,CAAE,QAAQ,EAAE,uBAAwB;MAAC,CACnC,CAAE;MACRtB,SAAS,EAAEyB,wDAAM,CAACK,IAAK;MACvBqE,WAAW,EAAE,KAAM;MAAAlG,QAAA,gBAEnBnB,sDAAA;QAAIoB,KAAK,EAAE6F,aAAc;QAAA9F,QAAA,EACvBqB,mDAAE,CAAE,2BAA2B,EAAE,uBAAwB;MAAC,CACxD,CAAC,eACLtC,uDAAA;QAAAiB,QAAA,GACEvB,mDAAM,CAAC0H,QAAQ,CAAC9B,GAAG,CAAE+B,OAAO,iBAC5BvH,sDAAA;UAAAmB,QAAA,EACE2F,wEAAc,CAAES,OAAQ;QAAC,GADlBA,OAEL,CACH,CAAC,eACHvH,sDAAA;UAAAmB,QAAA,EACEqB,mDAAE,CAAE,mBAAmB,EAAE,uBAAwB;QAAC,CAChD,CAAC;MAAA,CACF,CAAC,eACLxC,sDAAA,CAAC4G,yDAAM;QACN1F,SAAS,EAAEyB,wDAAM,CAAC6E,MAAO;QACzBlG,IAAI,EAAE,8IAA+I;QACrJG,MAAM,EAAE,QAAS;QACjBE,GAAG,EAAE,YAAa;QAClB8F,SAAS;QAAAtG,QAAA,EAERqB,mDAAE,CAAE,SAAS,EAAE,uBAAwB;MAAC,CAClC,CAAC;IAAA,CACC;EAAC,CACM,CAAC;AACrB,CAAC;AAED,iEAAekB,kEAAW,CAAS,yCAA0C,CAAC,CAAE0D,SAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzD7C;AACF;AACiB;AACF;AACL;AACnB;AACO;AACP;AACI;AACH;AAEA;AAAA;AAgBpC;AACA;AACA;AACA;AACA,MAAMe,IAAI,gBAAGjI,wDAAA;EAAKkI,KAAK,EAAC,4BAA4B;EAACC,OAAO,EAAC,WAAW;EAAAlH,QAAA,gBACvEnB,uDAAA;IAAMsI,CAAC,EAAC,GAAG;IAACC,IAAI,EAAC,MAAM;IAACzG,KAAK,EAAC,IAAI;IAAC0G,MAAM,EAAC;EAAI,CAAE,CAAC,eACjDxI,uDAAA;IAAAmB,QAAA,eACCnB,uDAAA;MAAMyI,CAAC,EAAC;IAAwY,CAAE;EAAC,CACjZ,CAAC;AAAA,CACA,CAAC;;AAEN;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,gBAAgB,GAAK3E,QAAgB,IAAc;EAC/D,OAAOA,QAAQ,CAACgC,OAAO,CAAE,UAAU,EAAE,KAAM,CAAC;AAC7C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAM4C,YAAY,GAAK5E,QAAgB,IAAc;EACpD,IAAK,CAAEiE,kDAAQ,CAAE,CAAE,SAAS,CAAG,CAAC,EAAG;IAClC,OAAO,EAAE;EACV;EACA,MAAMY,MAAM,GAAGjF,uDAAM,CAAE,mBAAoB,CAAC,CAACkF,oBAAoB,CAAE9E,QAAS,CAAC;EAC7E,IAAK,WAAW,KAAK,OAAO6E,MAAM,IAAI,EAAE,KAAKA,MAAM,EAAG;IACrD,MAAME,WAAW,GAAGnF,uDAAM,CAAE,mBAAoB,CAAC,CAACoF,mBAAmB,CAAE,CAAEH,MAAM,CAAG,CAAC;IACnF,IAAK,IAAI,KAAKE,WAAW,CAAE,CAAC,CAAE,IAAI,WAAW,KAAK,OAAOA,WAAW,CAAE,CAAC,CAAE,IAAI,kBAAkB,KAAKA,WAAW,CAAE,CAAC,CAAE,EAAEhE,IAAI,EAAG;MAC5H,OAAOgE,WAAW,CAAE,CAAC,CAAE,EAAExG,UAAU,EAAE4C,EAAE;IACxC;EACD;EAEA,OAAO,EAAE;AACV,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAM8D,IAAI,GAAGA,CAAA,kBAAMhJ,uDAAA,CAAC4H,8DAAW;EAC9B1G,SAAS,EAAEyB,sDAAM,CAACsG,WAAY;EAC9BC,IAAI,EAAEf,IAAK;EACX7E,KAAK,EAAEd,mDAAE,CAAE,0BAA0B,EAAE,uBAAwB,CAAE;EACjE2G,YAAY,EAAE3G,mDAAE,CAAE,sBAAsB,EAAE,uBAAwB;AAAE,CACpE,CAAC;AAEF,MAAM4G,QAAQ,GAAGA,CAAA,kBAAMpJ,uDAAA,CAAC4H,8DAAW;EAClC1G,SAAS,EAAEyB,sDAAM,CAACsG,WAAY;EAC9BC,IAAI,EAAEf,IAAK;EACX7E,KAAK,EAAEd,mDAAE,CAAE,+BAA+B,EAAE,uBAAwB,CAAE;EACtE2G,YAAY,EAAE3G,mDAAE,CAAE,sBAAsB,EAAE,uBAAwB;AAAE,CACpE,CAAC;AAEF,MAAM6G,UAAU,GAAGA,CAAA,kBAAMrJ,uDAAA,CAAC4H,8DAAW;EACpC1G,SAAS,EAAEyB,sDAAM,CAACsG,WAAY;EAC9BC,IAAI,EAAEf,IAAK;EACX7E,KAAK,EAAEd,mDAAE,CAAE,+BAA+B,EAAE,uBAAwB,CAAE;EACtE2G,YAAY,EAAE3G,mDAAE,CAAE,sBAAsB,EAAE,uBAAwB;AAAE,CACpE,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,MAAMyG,WAAW,GAAK9G,KAAa,IAA0B;EAC5D,QAASA,KAAK;IACb,KAAKvC,mDAAM,CAACoF,MAAM,CAACC,KAAK,CAACC,EAAE;MAC1B,OAAO8D,IAAI;IACZ,KAAKpJ,mDAAM,CAACoF,MAAM,CAACqB,UAAU,CAACnB,EAAE;MAC/B,OAAOkE,QAAQ;IAChB,KAAKxJ,mDAAM,CAACoF,MAAM,CAACsE,UAAU,EAAEpE,EAAE;MAChC,OAAOmE,UAAU;EACnB;EACA,OAAO,mBAAMrJ,uDAAA,CAAAkI,wDAAA,IAAI,CAAC;AACnB,CAAC;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMqB,0BAA0B,GAAGA,CAAE;EACpCpI,QAAQ;EACRmB,UAAU,GAAG;IACZyB,QAAQ,EAAE;EACX;AACD,CAAC,KAAM;EACN2D,gDAAS,CAAE,MAAM;IAChB;IACA,OAAO,MAAM;MACZ;MACA8B,UAAU,CAAE,MAAM;QACjBzB,0DAAQ,CAAE,uDAAuD,EAAE;UAClE0B,MAAM,EAAEnH,UAAU;UAClByB,QAAQ,EAAEzB,UAAU,CAACyB;QACtB,CAAE,CAAC;MACJ,CAAC,EAAE,GAAI,CAAC;IACT,CAAC;EACF,CAAE,CAAC;;EAEH;AACD;AACA;AACA;AACA;AACA;EACC,IAAK,QAAQ,KAAK,OAAO5C,QAAQ,EAAEd,KAAK,EAAEc,QAAQ,EAAEuI,QAAQ,EAAG;IAC9D,MAAM,IAAIC,KAAK,CAAExI,QAAQ,EAAEd,KAAK,EAAEc,QAAQ,EAAEuI,QAAQ,IAAI,QAAS,CAAC;EACnE;EAEA,oBACCxJ,wDAAA;IAAKgB,SAAS,EAAEyB,sDAAM,CAACiH,QAAS;IAAAzI,QAAA,gBAC/BnB,uDAAA;MAAKkB,SAAS,EAAEyB,sDAAM,CAACkH,IAAK;MAAA1I,QAAA,eAC3BnB,uDAAA,CAAC6H,0DAAO,IAAE;IAAC,CACP,CAAC,eACN7H,uDAAA;MAAKkB,SAAS,EAAEyB,sDAAM,CAACmH,WAAY;MAAA3I,QAAA,EACjCA;IAAQ,CACL,CAAC;EAAA,CACF,CAAC;AAER,CAAC;AAGD,MAAM4I,OAAO,GAAGA,CAAO;EAACzH,UAAU;EAAEH,KAAK;EAAE4B;AAAkB,CAAC,KAAM;EACnE,MAAMiG,UAAU,GAAGlC,sEAAa,CAAC,CAAC;EAElC,IAAK,EAAE,KAAKlI,mDAAM,CAACY,KAAK,EAAG;IAC1B,oBAAOR,uDAAA;MACNkB,SAAS,EAAEyB,sDAAM,CAACnC,KAAM;MACxBiG,uBAAuB,EAAE;QAACC,MAAM,EAAE5G,mDAAQ,CAAEF,mDAAM,CAACY,KAAM;MAAC;IAAE,CAAE,CAAC;EACjE;EAGA,MAAMyJ,iBAAiB,GAAGvB,gBAAgB,CAAE3E,QAAS,CAAC;;EAEtD;EACA,OAAOiG,UAAU,CAAC5I,KAAK;EAEvB;IAAA;IACC;IACApB,uDAAA;MAAA,GACKgK,UAAU;MACdE,OAAO,EAAEhE,EAAE,IAAI;QACd,MAAMiE,OAAO,GAAGjE,EAAE,CAACzE,MAAqB;QACxC,IAAK,GAAG,KAAK0I,OAAO,CAACC,QAAQ,EAAG;UAC/BlE,EAAE,CAACmE,cAAc,CAAC,CAAC;QACpB;MACD,CAAE;MAAAlJ,QAAA,eAEFnB,uDAAA,CAAC2H,sEAAgB;QAChB2C,wBAAwB,EAAErB,WAAW,CAAE9G,KAAM,CAAE;QAC/CoI,0BAA0B,EAAEhB,0BAA2B;QACvDjH,UAAU,EAAE;UACX,GAAGA,UAAU;UACb;UACAkI,yBAAyB,EAAE,IAAI;UAC/BzG,QAAQ,EAAEkG,iBAAiB;UAC3BQ,SAAS,EAAE9B,YAAY,CAAE5E,QAAS;QACnC,CAAE;QACF5B,KAAK,EAAEA,KAAM;QACbuI,UAAU,EAAE;MAAO,CACnB;IAAC,CACE;EAAC;AAER,CAAC;AAED,iEAAeX,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/MoB;AACK;AACZ;AACsC;AACxC;AACG;AAG0B;AAC7B;AACkE;AACvD;AACP;AACC;AACC;AAEC;AACG;AAAA;AAQ3C,MAAMe,IAAI,GAAGA,CAAE;EAACxI,UAAU;EAAEsC,aAAa;EAAEb,QAAQ;EAAEe;AAAW,CAAC,KAAM;EACtE,MAAMiG,QAAsC,GAAGJ,0DAAS,CAAEhH,MAAM,IAAI;IACnE,MAAMkB,IAAI,GAAGlB,MAAM,CAAE,MAAO,CAAC,CAACqH,WAAW,CAAE1I,UAAU,CAACyI,QAAQ,IAAI,UAAW,CAAC;IAC9E,OAAOlG,IAAI,IAAIlB,MAAM,CAAE,MAAO,CAAC,CAACqH,WAAW,CAAE,UAAW,CAAC;EAC1D,CAAC,EAAE,CAAE1I,UAAU,CAACyI,QAAQ,CAAG,CAAC;;EAE5B;EACA,IAAK,EAAE,KAAKnL,mDAAM,CAACY,KAAK,EAAG;IAC1B,oBAASN,wDAAA,CAAAgI,wDAAA;MAAA/G,QAAA,gBACRnB,uDAAA,CAAC6G,sEAAiB;QAAA1F,QAAA,eACjBnB,uDAAA;UACCkB,SAAS,EAAEyB,yDAAM,CAACnC,KAAM;UACxBiG,uBAAuB,EAAE;YAACC,MAAM,EAAE5G,mDAAQ,CAAEF,mDAAM,CAACY,KAAM;UAAC;QAAE,CAAE;MAAC,CAC9C,CAAC,eACpBR,uDAAA,CAAC+J,gDAAO;QAAOzH,UAAU,EAAEA,UAAW;QAACH,KAAK,EAAEA,yCAAK,CAAC+C,EAAG;QAACnB,QAAQ,EAAEA;MAAS,CAAE,CAAC;IAAA,CAC7E,CAAC;EACJ;EAEA,MAAMqB,SAAoB,GAAG;IAC5BP,IAAI,EAAEkG,QAAQ;IACdzI,UAAU;IACVwC,IAAI;IACJF,aAAa;IACbb;EACD,CAAC;EAED,oBAAS7D,wDAAA,CAAAgI,wDAAA;IAAA/G,QAAA,gBACRjB,wDAAA,CAAC2G,sEAAiB;MAAA1F,QAAA,GAChB6G,mDAAQ,CAAE,CAAE,SAAS,EAAE,aAAa,EAAE,WAAW,CAAG,CAAC,iBAAIhI,uDAAA,CAACkE,4DAAS;QAAA/C,QAAA,eACnEnB,uDAAA,CAACsG,8DAAW;UACXN,KAAK,EAAE1D,UAAU,CAAC+C,KAAK,IAAI,EAAG;UAC9B/B,KAAK,EAAEd,mDAAE,CAAE,OAAO,EAAE,uBAAwB,CAAE;UAC9CsD,QAAQ,EAAET,KAAK,IAAIT,aAAa,CAAE;YAACS;UAAK,CAAE;QAAE,CAAE;MAAC,CACtC,CAAC,eACZnF,wDAAA,CAACC,iEAAa;QAACmC,UAAU,EAAEA,UAAW;QAACH,KAAK,EAAE2C,IAAK;QAAC9C,OAAO,EAAE,yBAA0B;QAAAb,QAAA,gBACtFjB,wDAAA,CAACyE,gDAAO;UACPrC,UAAU,EAAEA,UAAW;UACvByB,QAAQ,EAAEA,QAAS;UACnBe,IAAI,EAAEA,IAAK;UACXF,aAAa,EAAEA,aAAc;UAC7BC,IAAI,EAAEkG,QAAS;UAAA5J,QAAA,GAQd6G,mDAAQ,CAAE,CAAE,MAAM,CAAG,CAAC,iBAAIhI,uDAAA,CAACiE,kEAAeA;UAC1C;YACAX,KAAK,EAAEc,wDAAO,CAAE5B,mDAAE,CAAE,4BAA4B,EAAE,uBAAwB,CAAC,EAAEuI,QAAQ,EAAErF,MAAM,EAAEZ,IAAI,CAACc,WAAW,CAAC,CAAC,IAAI,EAAG,CAAE;YAC1HC,OAAO,EAAEvD,UAAU,CAAC2I,MAAO;YAC3BnF,QAAQ,EAAEE,KAAK,IAAI;cAClBpB,aAAa,CAAE;gBACdqG,MAAM,EAAEjF;cACT,CAAE,CAAC;YACJ;UAAE,CACF,CAAC,EAKDgC,mDAAQ,CAAE,CAAE,SAAS,EAAE,WAAW,CAAG,CAAC,IAAI1F,UAAU,CAAC2I,MAAM,iBAC3DjL,uDAAA,CAAC6K,gEAAa;YACb;YACAvH,KAAK,EAAEc,wDAAO,CAAE5B,mDAAE,CAAE,gCAAgC,EAAE,uBAAwB,CAAC,EAAEuI,QAAQ,EAAErF,MAAM,EAAEZ,IAAI,CAACc,WAAW,CAAC,CAAC,IAAI,EAAG,CAAE;YAC9HI,KAAK,EAAE1D,UAAU,CAAC4I,UAAW;YAC7BC,OAAO,EAAE7F,MAAM,CAACC,IAAI,CAAE3F,mDAAM,CAACyG,UAAU,CAAC+E,WAAY,CAAC,CAAC5F,GAAG,CAAI6F,GAAsB,KAAQ;cAC1FrF,KAAK,EAAEqF,GAAG;cACV/H,KAAK,EAAE1D,mDAAM,CAACyG,UAAU,CAAC+E,WAAW,CAAEC,GAAG;YAC1C,CAAC,CAAG;YACJ;YACAvF,QAAQ,EAAEoF,UAAU,IAAItG,aAAa,CAAE;cAACsG;YAAU,CAAE;UAAE,CACtD,CAAC;QAAA,CACK,CAAC,eAEVhL,wDAAA;UAAKgB,SAAS,EAAE,kCAAmC;UAAAC,QAAA,gBAElDnB,uDAAA,CAACmE,uDAAI;YACJW,IAAI,EAAC,0CAA0C;YAC/CM,SAAS,EAAEA;UAAU,CAAE,CAAC,eAEzBpF,uDAAA,CAACuG,sDAAY;YACZ1B,IAAI,EAAEkG,QAAS;YACfzI,UAAU,EAAEA,UAAW;YACvBsC,aAAa,EAAEA;UAAc,CAAE,CAAC,eAEjC5E,uDAAA;YAAAmB,QAAA,eACCnB,uDAAA;cACCsB,IAAI,EAAE1B,mDAAM,CAAC0L,IAAI,CAACC,QAAS;cAC3B9J,MAAM,EAAC,QAAQ;cACfE,GAAG,EAAC,qBAAqB;cAAAR,QAAA,EAExBqB,mDAAE,CAAE,qBAAqB,EAAE,uBAAwB;YAAC,CACnD;UAAC,CACF,CAAC;QAAA,CACA,CAAC;MAAA,CACQ,CAAC,eAChBxC,uDAAA,CAACG,iEAAa;QACbmC,UAAU,EAAEA,UAAW;QACvBH,KAAK,EAAE2C,IAAK;QACZ9C,OAAO,EAAE,2BAA4B;QAAAb,QAAA,eAErCnB,uDAAA,CAACmE,uDAAI;UACJW,IAAI,EAAC,4CAA4C;UACjDM,SAAS,EAAEA;QAAU,CAAE;MAAC,CAEX,CAAC;IAAA,CACE,CAAC,eAEpBpF,uDAAA,CAAC4K,kEAAa;MAAAzJ,QAAA,eACbnB,uDAAA,CAACG,iEAAa;QACbmC,UAAU,EAAEA,UAAW;QACvBH,KAAK,EAAE2C,IAAK;QACZ9C,OAAO,EAAE,gCAAiC;QAAAb,QAAA,eAE1CnB,uDAAA,CAACmE,uDAAI;UACJW,IAAI,EAAC,iDAAiD;UACtDM,SAAS,EAAEA;QAAU,CAAE;MAAC,CACX;IAAC,CACF,CAAC,eAEhBpF,uDAAA,CAACoH,mDAAS;MAACrD,QAAQ,EAAEA;IAAS,CAAE,CAAC,eAEjC/D,uDAAA,CAACG,iEAAa;MAACmC,UAAU,EAAEA,UAAW;MAACH,KAAK,EAAE2C,IAAK;MAAC9C,OAAO,EAAE,yBAA0B;MAAAb,QAAA,eACtFnB,uDAAA,CAAC+J,gDAAO;QAAOzH,UAAU,EAAEA,UAAW;QAACH,KAAK,EAAEA,yCAAK,CAAC+C,EAAG;QAACnB,QAAQ,EAAEA;MAAS,CAAE;IAAC,CAChE,CAAC,eAEhB/D,uDAAA,CAAC8D,kDAAQ;MAACC,QAAQ,EAAEA;IAAS,CAAE,CAAC;EAAA,CAC/B,CAAC;AACJ,CAAC;AAED,iEAAe+G,IAAI;;;;;;;;;;;;;;;;;;;;;;;AC7J4B;AAErB;AAE0B;AACjB;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA;AAAA;AASA;AACA;AACA;AACA;AACA;AACA,MAAMW,OAAO,GAAG;EACf,eAAe,EAAE,KAAK;EACtB,qBAAqB,EAAE,CAAC;EACxBC,0CAA0C,EAAE,IAAI;EAChDC,mCAAmC,EAAE,IAAI;EACzCC,WAAW,EAAE,IAAI;EACjBhK,MAAM,EAAE,IAAI;EACZiK,YAAY,EAAE,MAAM;EACpBC,YAAY,EAAE,MAAM;EACpBC,mBAAmB,EAAE,MAAM;EAC3BC,gBAAgB,EAAE,MAAM;EACxBC,oBAAoB,EAAE,SAAS;EAC/BC,iBAAiB,EAAE,SAAS;EAC5BC,uBAAuB,EAAE,QAAQ;EACjCzH,WAAW,EAAE,IAAI;EACjB0H,wBAAwB,EAAE,SAAS;EACnCC,qBAAqB,EAAE,SAAS;EAChCC,2BAA2B,EAAE,MAAM;EACnC7H,wBAAwB,EAAE,IAAI;EAC9BD,cAAc,EAAE,IAAI;EACpByB,MAAM,EAAE;AACT,CAAC;AAGM,MAAM9D,KAAK,GAAGvC,mDAAM,CAACoF,MAAM,CAACqB,UAAU;AAEtC,MAAMvB,IAAI,GAAG3C,KAAK,CAAC+C,EAAE;AAErB,MAAMqH,QAAyE,GAAG;EACxFlH,KAAK,EAAE7C,mDAAE,CAAE,+BAA+B,EAAE,uBAAwB,CAAC;EACrE0G,IAAI,EAAE,uBAAuB;EAC7BqC,QAAQ,EAAE,SAAS;EACnBiB,OAAO,EAAE;IACRlK,UAAU,EAAEmJ;EACb,CAAC;EACDgB,UAAU,EAAE;IACXC,IAAI,EAAE,CACL;MACC7H,IAAI,EAAE,OAAO;MACbG,MAAM,EAAE,CAAE,oBAAoB,CAAE;MAChC2H,OAAO,EAAEA,CAAE;QAACC,MAAM;QAAEC;MAAQ,CAAC,KAAM;QAClC,IAAK,IAAI,KAAKA,QAAQ,EAAEC,GAAG,EAAG;UAC7B;UACA,OAAO,KAAK;QACb;QACA,OAAO,gCAAgC,KAAKF,MAAM;MACnD,CAAC;MACDG,SAAS,EAAEvB,+DAAqB,CAAQ1G,IAAK;IAC9C,CAAC;EAEH,CAAC;EACDxC,UAAU,EAAEH,KAAK,CAACG,UAAU;EAC5B0K,QAAQ,EAAE7K,KAAK,CAAC6K,QAAQ;EACxBC,IAAI,EAAE5M,KAAK,iBACVL,sDAAA,CAAC8K,6CAAI;IAAA,GAAKzK;EAAK,CAAG,CAClB;EACD6M,IAAI,EAAEA,CAAA,KAAM,IAAI;EAChBC,UAAU,EAAE;AACb,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7FwE;AACS;AAE9C;AACH;AACA;AACS;AACL;AACU;AACZ;AACA;AAE2B;AACxB;AACC;AAEN;AACU;AAAA;AAS3C;AACA;AACA;AACA,MAAMrC,IAAI,GAAGA,CAAE;EAACxI,UAAU;EAAEsC,aAAa;EAAEb,QAAQ;EAAEe;AAAW,CAAC,KAAM;EACtE,MAAMsI,QAAkC,GAAGzC,0DAAS,CAAEhH,MAAM,IAAI;IAC/D,MAAMkB,IAAI,GAAGlB,MAAM,CAAE,MAAO,CAAC,CAAC0J,WAAW,CAAE/K,UAAU,CAACgL,SAAS,IAAI,MAAO,CAAC;IAC3E,OAAOzI,IAAI,IAAIlB,MAAM,CAAE,MAAO,CAAC,CAAC0J,WAAW,CAAE,MAAO,CAAC;EACtD,CAAC,EAAE,CAAE/K,UAAU,CAACgL,SAAS,CAAG,CAAC;;EAE7B;EACA,IAAK,EAAE,KAAK1N,mDAAM,CAACY,KAAK,EAAG;IAC1B,oBAASN,wDAAA,CAAAgI,wDAAA;MAAA/G,QAAA,gBACRnB,uDAAA,CAAC6G,sEAAiB;QAAA1F,QAAA,eACjBnB,uDAAA;UACCkB,SAAS,EAAEyB,mDAAM,CAACnC,KAAM;UACxBiG,uBAAuB,EAAE;YAACC,MAAM,EAAE5G,mDAAQ,CAAEF,mDAAM,CAACY,KAAM;UAAC;QAAE,CAAE;MAAC,CAC9C,CAAC,eACpBR,uDAAA,CAAC+J,gDAAO;QAAOzH,UAAU,EAAEA,UAAW;QAACH,KAAK,EAAEA,yCAAK,CAAC+C,EAAG;QAACnB,QAAQ,EAAEA;MAAS,CAAE,CAAC;IAAA,CAC7E,CAAC;EACJ;EAEA,MAAMqB,SAAoB,GAAG;IAC5BP,IAAI,EAAEuI,QAAQ;IACd9K,UAAU;IACVwC,IAAI;IACJF,aAAa;IACbb;EACD,CAAC;EAGD,oBAAS7D,wDAAA,CAAAgI,wDAAA;IAAA/G,QAAA,gBACRjB,wDAAA,CAAC2G,sEAAiB;MAAA1F,QAAA,GAChB6G,mDAAQ,CAAE,CAAE,SAAS,EAAE,aAAa,EAAE,WAAW,CAAG,CAAC,iBAAIhI,uDAAA,CAACkE,4DAAS;QAAA/C,QAAA,eACnEnB,uDAAA,CAACsG,8DAAW;UACXN,KAAK,EAAE1D,UAAU,CAAC+C,KAAK,IAAI,EAAG;UAC9B/B,KAAK,EAAEd,mDAAE,CAAE,OAAO,EAAE,uBAAwB,CAAE;UAC9CsD,QAAQ,EAAET,KAAK,IAAIT,aAAa,CAAE;YAACS;UAAK,CAAE;QAAE,CAAE;MAAC,CACtC,CAAC,eACZnF,wDAAA,CAACC,kEAAa;QAACmC,UAAU,EAAEA,UAAW;QAACH,KAAK,EAAE2C,IAAK;QAAC9C,OAAO,EAAE,oBAAqB;QAAAb,QAAA,gBACjFnB,uDAAA,CAAC2E,gDAAO;UACPrC,UAAU,EAAEA,UAAW;UACvByB,QAAQ,EAAEA,QAAS;UACnBe,IAAI,EAAEA,IAAK;UACXF,aAAa,EAAEA,aAAc;UAC7BC,IAAI,EAAEuI;QAAS,CAAE,CAAC,eAEnBlN,wDAAA;UAAKgB,SAAS,EAAE,kCAAmC;UAAAC,QAAA,gBAElDnB,uDAAA,CAACmE,uDAAI;YACJW,IAAI,EAAC,qCAAqC;YAC1CM,SAAS,EAAEA;UAAU,CAAE,CAAC,eAEzBpF,uDAAA,CAAC6K,gEAAa;YACbvH,KAAK,EAAEd,mDAAE,CAAE,UAAU,EAAE,uBAAwB,CAAE;YACjDwD,KAAK,EAAE1D,UAAU,CAACiL,QAAS;YAC3BC,aAAa,EAAE,MAAO;YACtBrC,OAAO,EAAE7F,MAAM,CAACmI,OAAO,CAAE7N,mDAAM,CAACqF,KAAK,CAACyI,OAAQ,CAAC,CAAClI,GAAG,CAAE,CAAE,CAAEQ,KAAK,EAAE1C,KAAK,CAAE,MAAQ;cAC9E0C,KAAK;cACL1C;YACD,CAAC,CAAG,CAAE;YACNwC,QAAQ,EAAEE,KAAK,IAAI;cAClBpB,aAAa,CAAE;gBACd2I,QAAQ,EAAEvH;cACX,CAAE,CAAC;YACJ;UAAE,CAAE,CAAC,eAENhG,uDAAA,CAACuG,sDAAY;YACZ1B,IAAI,EAAEuI,QAAS;YACf9K,UAAU,EAAEA,UAAW;YACvBsC,aAAa,EAAEA;UAAc,CAAE,CAAC,eAEjC5E,uDAAA;YAAAmB,QAAA,eACCnB,uDAAA;cACCsB,IAAI,EAAE1B,mDAAM,CAAC0L,IAAI,CAACqC,IAAK;cACvBlM,MAAM,EAAC,QAAQ;cACfE,GAAG,EAAC,qBAAqB;cAAAR,QAAA,EAExBqB,mDAAE,CAAE,qBAAqB,EAAE,uBAAwB;YAAC,CACnD;UAAC,CACF,CAAC;QAAA,CACA,CAAC;MAAA,CACQ,CAAC,eAChBxC,uDAAA,CAACG,kEAAa;QAACmC,UAAU,EAAEA,UAAW;QAACH,KAAK,EAAE2C,IAAK;QAAC9C,OAAO,EAAE,sBAAuB;QAAAb,QAAA,eACnFnB,uDAAA,CAACmE,uDAAI;UACJW,IAAI,EAAC,uCAAuC;UAC5CM,SAAS,EAAEA;QAAU,CAAE;MAAC,CAEX,CAAC;IAAA,CACE,CAAC,eAEpBpF,uDAAA,CAAC4K,kEAAa;MAAAzJ,QAAA,eACbnB,uDAAA,CAACG,kEAAa;QACbmC,UAAU,EAAEA,UAAW;QACvBH,KAAK,EAAE2C,IAAK;QACZ9C,OAAO,EAAE,2BAA4B;QAAAb,QAAA,eAErCnB,uDAAA,CAACmE,uDAAI;UACJW,IAAI,EAAC,4CAA4C;UACjDM,SAAS,EAAEA;QAAU,CAAE;MAAC,CACX;IAAC,CACF,CAAC,eAEhBpF,uDAAA,CAACoH,kDAAS;MAACrD,QAAQ,EAAEA;IAAS,CAAE,CAAC,eAEjC/D,uDAAA,CAACG,kEAAa;MAACmC,UAAU,EAAEA,UAAW;MAACH,KAAK,EAAE2C,IAAK;MAAC9C,OAAO,EAAE,oBAAqB;MAAAb,QAAA,eACjFnB,uDAAA,CAAC+J,gDAAO;QAAOzH,UAAU,EAAEA,UAAW;QAACH,KAAK,EAAEA,yCAAK,CAAC+C,EAAG;QAACnB,QAAQ,EAAEA;MAAS,CAAE;IAAC,CAChE,CAAC,eAEhB/D,uDAAA,CAAC8D,kDAAQ;MAACC,QAAQ,EAAEA;IAAS,CAAE,CAAC;EAAA,CAC/B,CAAC;AACJ,CAAC;AAED,iEAAe+G,IAAI;;;;;;;;;;;;;;;;;;;;;;;ACzI4B;AACrB;AAE0B;AACjB;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA;AAAA;AAUA;AACA;AACA;AACA;AACA;AACA,MAAMW,OAAO,GAAG;EACfC,0CAA0C,EAAE,IAAI;EAChDC,mCAAmC,EAAE,IAAI;EACzCC,WAAW,EAAE,IAAI;EACjBhK,MAAM,EAAE,IAAI;EACZiK,YAAY,EAAE,MAAM;EACpBC,YAAY,EAAE,MAAM;EACpBC,mBAAmB,EAAE,MAAM;EAC3BC,gBAAgB,EAAE,MAAM;EACxB4B,qBAAqB,EAAE,SAAS;EAChCC,kBAAkB,EAAE,SAAS;EAC7BC,wBAAwB,EAAE,QAAQ;EAClCC,4BAA4B,EAAE,MAAM;EACpCrJ,WAAW,EAAE,IAAI;EACjB0H,wBAAwB,EAAE,SAAS;EACnCC,qBAAqB,EAAE,SAAS;EAChCC,2BAA2B,EAAE,MAAM;EACnC7H,wBAAwB,EAAE,IAAI;EAC9BD,cAAc,EAAE,IAAI;EACpByB,MAAM,EAAE,CAAC;EACTgG,oBAAoB,EAAE,MAAM;EAC5BC,iBAAiB,EAAE;AACpB,CAAC;AAEM,MAAM/J,KAAK,GAAGvC,mDAAM,CAACoF,MAAM,CAACC,KAAK;AAEjC,MAAMH,IAAI,GAAG3C,KAAK,CAAC+C,EAAE;AAErB,MAAMqH,QAAyE,GAAG;EACxFlH,KAAK,EAAE7C,mDAAE,CAAE,0BAA0B,EAAE,uBAAwB,CAAC;EAChE0G,IAAI,EAAE,uBAAuB;EAC7BqC,QAAQ,EAAE,SAAS;EACnBiB,OAAO,EAAE;IACRlK,UAAU,EAAEmJ;EACb,CAAC;EACDgB,UAAU,EAAE;IACXC,IAAI,EAAE,CACL;MACC7H,IAAI,EAAE,OAAO;MACbG,MAAM,EAAE,CAAE,oBAAoB,CAAE;MAChC2H,OAAO,EAAEA,CAAE;QAACC,MAAM;QAAEC;MAAQ,CAAC,KAAM;QAClC,IAAK,IAAI,KAAKA,QAAQ,EAAEC,GAAG,EAAG;UAC7B;UACA,OAAO,KAAK;QACb;QACA,OAAO,uBAAuB,KAAKF,MAAM;MAC1C,CAAC;MACDG,SAAS,EAAEvB,+DAAqB,CAAQ1G,IAAK;IAC9C,CAAC;EAEH,CAAC;EACDxC,UAAU,EAAEH,KAAK,CAACG,UAAU;EAC5B0K,QAAQ,EAAE7K,KAAK,CAAC6K,QAAQ;EACxBC,IAAI,EAAE5M,KAAK,iBACVL,sDAAA,CAAC8K,6CAAI;IAAA,GAAKzK;EAAK,CAAG,CAClB;EACD6M,IAAI,EAAEA,CAAA,KAAM,IAAI;EAChBC,UAAU,EAAE;AACb,CAAC;;;;;;;;;;;;;;;;;;;AC7F0D;AACV;AAMjD;AACA;AACA;AACO,MAAMnF,QAAQ,GAAKiG,OAAsB,IAAe;EAC9D,OAAOA,OAAO,CAACC,QAAQ,CAAEtO,mDAAM,CAACqC,aAAc,CAAC;AAChD,CAAC;;AAED;AACA;AACA;AACA;AACO,MAAMuJ,qBAAsC,GAAQ1G,IAAY,IAAM,CAAE;EAAC+H;AAAQ,CAAC,KAAM;EAC9F,OAAOmB,8DAAW,CAAKlJ,IAAI,EAAEqJ,qBAAqB,CAAKtB,QAAQ,CAACC,GAAI,CAAE,CAAC;AACxE,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAMqB,qBAAqB,GAAQ5B,QAAQ,IAAS;EACnDjH,MAAM,CAACmI,OAAO,CAAElB,QAAS,CAAC,CAAC6B,OAAO,CAAE,CAAE,CAAE/C,GAAG,EAAErF,KAAK,CAAE,KAAM;IACzD,IAAK,SAAS,KAAKA,KAAK,EAAG;MAC1BuG,QAAQ,CAAElB,GAAG,CAAE,GAAG,IAAI;IACvB;IACA,IAAK,QAAQ,KAAK,OAAOrF,KAAK,EAAG;MAChCmI,qBAAqB,CAAE5B,QAAQ,CAAElB,GAAG,CAAG,CAAC;IACzC;IACA;IACA,IAAK,GAAG,KAAKrF,KAAK,EAAG;MACpB,OAAOuG,QAAQ,CAAElB,GAAG,CAAE;IACvB;EACD,CAAE,CAAC;EACH,OAAOkB,QAAQ;AAChB,CAAC;;;;;;;;;;;;;;;;;;;;ACzCgE;AAC1B;AACS;AACQ;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA,iEAAe,MAAM;EACpB;EACA8B,iFAAc,CAAE,MAAMC,yBAAkD,EAAEE,MAAO,CAAC;;EAElF;EACAjN,MAAM,CAACkC,qBAAqB,CAACtD,aAAa,GAAGA,iEAAa;EAC1DoB,MAAM,CAACkC,qBAAqB,CAACsG,OAAO,GAAGA,uDAAO;EAC9CxI,MAAM,CAACkC,qBAAqB,CAAC+H,qBAAqB,GAAGA,2DAAqB;AAC3E,CAAC;;;;;;;;;;;;;;;;;;;;ACnB2C;AAC+B;AAClC;AAAA;AAGzC,SAASkD,qBAAqBA,CAAA,EAAG;EAChC;EACA,IAAK9O,mDAAM,CAACoB,QAAQ,CAAC2N,cAAc,EAAG;IACrC;EACD;EACA;EACA,IAAK,GAAG,KAAKxL,YAAY,CAACyL,OAAO,CAAEhM,oEAAY,CAAC,EAAG;IAClD;EACD;EACA,MAAMiM,YAAY,GAAGC,QAAQ,CAACC,gBAAgB,CAAE,oDAAqD,CAAC;;EAEtG;AACD;AACA;AACA;EACC,IAAI;IACHF,YAAY,CAACT,OAAO,CAAEnF,WAAW,IAAI;MACpC,MAAM+F,IAAI,GAAGP,4DAAU,CAAExF,WAAY,CAAC;MACtC+F,IAAI,CAACjO,MAAM,eAAEf,sDAAA,CAAC6C,mEAAe,IAAE,CAAE,CAAC;IACnC,CAAE,CAAC;EACJ,CAAC,CAAC,OAAQoM,CAAC,EAAG;IACbrO,OAAO,CAACJ,KAAK,CAAEyO,CAAE,CAAC;EACnB;AACD;;AAGA;AACA;AACA;AACA;AACA;AACA,iEAAe,MAAM;EACpB;EACA,IAAK,GAAG,KAAKrP,mDAAM,CAACsP,SAAS,EAAG;IAC/B;EACD;EACA;EACAC,MAAM,CAAEL,QAAS,CAAC,CAACM,EAAE,CAAE,cAAc,EAAE,YAAW;IACjDV,qBAAqB,CAAC,CAAC;EACxB,CAAE,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;AC7CD;AACA,iEAAe,CAAC,oCAAoC;;;;;;;;;;;;;;;ACDpD;AACA,iEAAe,CAAC,gEAAgE;;;;;;;;;;;;;;;ACDhF;AACA,iEAAe,CAAC,0BAA0B;;;;;;;;;;;;;;;ACD1C;AACA,iEAAe,CAAC,+PAA+P;;;;;;;;;;;ACDlQ;;AAEb,QAAQ,mBAAO,CAAC,qBAAW;AAC3B,IAAI,KAAqC,EAAE,EAG1C,CAAC;AACF;AACA,EAAE,kBAAkB;AACpB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,EAAE,mBAAmB;AACrB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;;;;;;;;;;ACxBA;;AAEA;AACA,EAAE,KAA4D;AAC9D,EAAE,CACwG;AAC1G,CAAC,uBAAuB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,UAAU;AACd;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB,eAAe,UAAU;AACzB;AACA;AACA;AACA,6FAA6F,aAAa;AAC1G;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB,eAAe,UAAU;AACzB;AACA;AACA;AACA,6EAA6E,eAAe;AAC5F;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,OAAO;AACpB,aAAa,UAAU;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,EAAE,iBAAiB,EAAE,MAAM;AAC3D;AACA,+BAA+B,QAAQ;AACvC,wDAAwD;AACxD,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,0BAA0B;AACvC,aAAa,mBAAmB;AAChC,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;AACA;AACA,4CAA4C;;AAE5C;AACA;AACA,kBAAkB,sBAAsB;AACxC,kBAAkB,sBAAsB;AACxC,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,+CAA+C;;AAE/C;AACA;AACA,6CAA6C;;AAE7C;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kDAAkD;;AAElD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4EAA4E;AAC5E,4EAA4E;AAC5E,wFAAwF;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF;AAClF,0EAA0E;AAC1E,0EAA0E;AAC1E;AACA,uDAAuD;AACvD,uDAAuD;AACvD,sEAAsE;AACtE,yEAAyE;AACzE,4DAA4D;AAC5D,iDAAiD;AACjD,oDAAoD;AACpD,4CAA4C;AAC5C,8DAA8D;AAC9D,8DAA8D;AAC9D,4CAA4C;AAC5C,iDAAiD;AACjD,gEAAgE;AAChE,iDAAiD;AACjD,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD,+CAA+C;;AAE/C;AACA;AACA;AACA;AACA,oDAAoD;;AAEpD;AACA;AACA;AACA,oCAAoC;AACpC,uCAAuC;;AAEvC;AACA,gBAAgB,SAAS;AACzB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,UAAU;AACV;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,MAAM;AACtB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C;AAC5C,sFAAsF,6DAA6D;AACnJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uTAAuT;AACvT;AACA;AACA;AACA,QAAQ,wCAAwC,oFAAoF,oKAAoK,iHAAiH;AACzZ;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;AACD;;;;;;;;;;;;ACzhDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,IAAI,IAAqC;AACzC;AACA;;AAEA,YAAY,mBAAO,CAAC,iBAAO;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,iGAAiG,eAAe;AAChH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA,KAAK,GAAG;;AAER,kDAAkD;AAClD;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,4BAA4B;AAC5B;AACA,qCAAqC;;AAErC,gCAAgC;AAChC;AACA;;AAEA,gCAAgC;;AAEhC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;;AAGF;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,sBAAsB;AACtB;AACA,SAAS;AACT,uBAAuB;AACvB;AACA,SAAS;AACT,uBAAuB;AACvB;AACA,SAAS;AACT,wBAAwB;AACxB;AACA,SAAS;AACT,wBAAwB;AACxB;AACA,SAAS;AACT,iCAAiC;AACjC;AACA,SAAS;AACT,2BAA2B;AAC3B;AACA,SAAS;AACT,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,2DAA2D;;AAE3D;AACA;;AAEA;AACA,yDAAyD;AACzD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;;AAEA;AACA;AACA,gFAAgF;AAChF;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;;;AAGlB;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;;;AAGJ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2HAA2H;AAC3H;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA,oEAAoE;;AAEpE;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,eAAe;AAC1B,WAAW,GAAG;AACd,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;;AAER;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;;AAEA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA,oBAAoB;AACpB,2DAA2D,UAAU;AACrE,yBAAyB,UAAU;AACnC;AACA,aAAa,UAAU;AACvB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,YAAY,SAAS;AACrB;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,GAAG;AACd;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,6DAA6D;AAC7D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,GAAG;AACd;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,iBAAiB;AACvC;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,4CAA4C;;AAE5C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB;;;AAGA;AACA;AACA;;AAEA,oBAAoB,iBAAiB;AACrC;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C;AAC9C;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA,0DAA0D;AAC1D;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sCAAsC;AACtC;;AAEA;;AAEA,gBAAgB;AAChB,WAAW;AACX,YAAY;AACZ,GAAG;AACH;;;;;;;;;;;;ACjyCa;;AAEb,IAAI,KAAqC,EAAE,EAE1C,CAAC;AACF,EAAE,wFAAkE;AACpE;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,EAAE,EAAE,OAAO;AAC5C;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,YAAY;AACvB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,0CAA0C,YAAY;AACtD,cAAc,oEAAoE;AAClF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;;;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzBA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;;;;;WCVA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;ACNwC;AAExC9N,OAAO,CAAC0O,KAAK,CAAE,2BAA4B,CAAC;AAE5CD,4DAAO,CAAC,CAAC;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAK,OAAO9N,MAAM,CAACgO,EAAE,CAACpF,OAAO,KAAK,WAAW,IAAI,OAAO5I,MAAM,CAACgO,EAAE,CAACC,OAAO,KAAK,WAAW,EAAG;EAC3FlB,yDAAgC,CAAC,CAAC;AACnC,CAAC,MAAM,IAAK,OAAO/M,MAAM,CAACgO,EAAE,CAACG,SAAS,KAAK,WAAW,EAAG;EACxDnO,MAAM,CAACgO,EAAE,CAACG,SAAS,CAACC,IAAI,CAAE,OAAO,EAAE,MAAM;IACxCrB,yDAAgC,CAAC,CAAC;EACnC,CAAE,CAAC;AACJ,C","sources":["webpack://@onpointplugins/advanced-sidebar-menu/./.yarn/__virtual__/@lipemat-js-boilerplate-gutenberg-virtual-329647b4db/0/cache/@lipemat-js-boilerplate-gutenberg-npm-3.4.2-78591b901d-4704295112.zip/node_modules/@lipemat/js-boilerplate-gutenberg/dist/index.module.js","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/components/ErrorBoundary.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/components/TransformNotice.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/globals/config.ts","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/SideLoad.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/Display.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/ExcludeField.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/InfoPanel.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/Preview.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/categories/Edit.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/categories/block.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/pages/Edit.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/pages/block.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/helpers.ts","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/index.ts","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/modules/widgets.tsx","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/components/transform-notice.pcss","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/info-panel.pcss","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/pages/edit.pcss","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/preview.pcss","webpack://@onpointplugins/advanced-sidebar-menu/./.yarn/__virtual__/react-dom-virtual-da4ced7575/0/cache/react-dom-npm-18.2.0-dd675bca1c-66dfc5f93e.zip/node_modules/react-dom/client.js","webpack://@onpointplugins/advanced-sidebar-menu/./.yarn/cache/dompurify-npm-3.1.6-344fd47e23-3de1cca187.zip/node_modules/dompurify/dist/purify.js","webpack://@onpointplugins/advanced-sidebar-menu/./.yarn/cache/react-npm-18.2.0-1eae08fee2-b562d9b569.zip/node_modules/react/cjs/react-jsx-runtime.development.js","webpack://@onpointplugins/advanced-sidebar-menu/./.yarn/cache/react-npm-18.2.0-1eae08fee2-b562d9b569.zip/node_modules/react/jsx-runtime.js","webpack://@onpointplugins/advanced-sidebar-menu/./.yarn/cache/react-string-replace-npm-1.1.1-614c815872-5a4a4fd9c3.zip/node_modules/react-string-replace/index.js","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/gutenberg/blocks/ sync block\\.tsx$","webpack://@onpointplugins/advanced-sidebar-menu/external var \"React\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"ReactDOM\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"jQuery\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"lodash\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.apiFetch\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.blockEditor\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.blocks\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.components\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.data\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.hooks\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.htmlEntities\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.i18n\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.plugins\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.richText\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.serverSideRender\"","webpack://@onpointplugins/advanced-sidebar-menu/external var \"wp.url\"","webpack://@onpointplugins/advanced-sidebar-menu/webpack/bootstrap","webpack://@onpointplugins/advanced-sidebar-menu/webpack/runtime/compat get default export","webpack://@onpointplugins/advanced-sidebar-menu/webpack/runtime/define property getters","webpack://@onpointplugins/advanced-sidebar-menu/webpack/runtime/harmony module decorator","webpack://@onpointplugins/advanced-sidebar-menu/webpack/runtime/hasOwnProperty shorthand","webpack://@onpointplugins/advanced-sidebar-menu/webpack/runtime/make namespace object","webpack://@onpointplugins/advanced-sidebar-menu/./js/src/block-editor.ts"],"sourcesContent":["import e from\"@wordpress/api-fetch\";import{__ as t}from\"@wordpress/i18n\";import{addQueryArgs as n}from\"@wordpress/url\";import{registerBlockType as r,unregisterBlockType as o}from\"@wordpress/blocks\";import{registerPlugin as i,unregisterPlugin as u}from\"@wordpress/plugins\";import{select as c,dispatch as s,useDispatch as a,useSelect as f}from\"@wordpress/data\";import{registerFormatType as d,unregisterFormatType as l}from\"@wordpress/rich-text\";function p(){return(p=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var v,h,m=[];function g(e){return m.push(e),m.length-1}function w(e){return delete m[e],m}function b(){return void 0!==h}function P(e){E(),h=g(function(e){function t(e,n){var r=e.headers,o=void 0===r?{}:r;for(var i in o)\"x-wp-nonce\"===i.toLowerCase()&&delete o[i];return n(p({},e,{headers:p({},o,{\"X-WP-Nonce\":t.nonce})}))}return t.nonce=e,t}(e))}function y(){void 0!==h&&(w(h),h=void 0),void 0===v&&(v=g(function(e,t){if(void 0!==e.headers)for(var n in e.headers)\"x-wp-nonce\"===n.toLowerCase()&&delete e.headers[n];return t(e,t)}))}function E(){void 0!==h&&w(h),void 0!==v&&w(v),h=void 0,v=void 0}var T=function(e,t){return void 0===t&&(t=!0),Promise.resolve(function(e,t){return void 0===t&&(t=!0),t?204===e.status?null:e.json?e.json():Promise.reject(e):e}(e,t)).catch(function(e){return k(e,t)})};function k(e,n){if(void 0===n&&(n=!0),!n)throw e;return function(e){var n={code:\"invalid_json\",message:t(\"The response is not a valid JSON response.\")};if(!e||!e.json)throw n;return e.json().catch(function(){throw n})}(e).then(function(e){var n={code:\"unknown_error\",message:t(\"An unknown error occurred.\")};throw\"rest_cookie_invalid_nonce\"===e.code&&b()&&(e.code=\"external_rest_cookie_invalid_nonce\"),e||n})}var j,x=[\"url\",\"path\",\"data\",\"parse\"],_={Accept:\"application/json, */*;q=0.1\"},O={credentials:\"include\"},B=function(e){if(e.status>=200&&e.status<300)return e;throw e},C=function(e){var n=function e(t,n){return function(r){return void 0===n[t]?r:(0,n[t])(r,t===n.length-1?function(e){return e}:e(t+1,n))}}(0,m.filter(Boolean))(p({},O,e)),r=n.url,o=n.path,i=n.data,u=n.parse,c=void 0===u||u,s=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)t.indexOf(n=i[r])>=0||(o[n]=e[n]);return o}(n,x),a=n.body,f=n.headers;return f=p({},_,f),i&&(a=JSON.stringify(i),f[\"Content-Type\"]=\"application/json\"),window.fetch(r||o||\"\",p({},s,{body:a,headers:f})).then(function(e){return Promise.resolve(e).then(B).catch(function(e){return k(e,c)}).then(function(e){return T(e,c)})},function(){throw{code:\"fetch_error\",message:t(\"You are probably offline.\")}})},G=function(e,t,n){return Promise.resolve(R(e,t,n,!1)).then(function(e){return Promise.resolve(T(e)).then(function(t){return{items:t,totalPages:parseInt(e.headers.get(\"X-WP-TotalPages\")||\"1\"),totalItems:parseInt(e.headers.get(\"X-WP-Total\")||\"0\")}})})},R=function(t,r,o,i){void 0===i&&(i=!0);try{return Promise.resolve(e(void 0===o||\"GET\"===r||\"OPTIONS\"===r?{method:r,parse:i,path:n(t,null!=o?o:{})}:{data:o,method:r,parse:i,path:t}))}catch(e){return Promise.reject(e)}};function I(e){return{create:function(t){return R(e,\"POST\",t)},delete:function(t){return R(e+\"/\"+t,\"DELETE\",{force:!0})},get:function(t){return R(e,\"GET\",t)},getById:function(t,n){return R(e+\"/\"+t,\"GET\",n)},getWithPagination:function(t){return G(e,\"GET\",t)},trash:function(t){return R(e+\"/\"+t,\"DELETE\")},update:function(t){return R(e+\"/\"+t.id,\"PATCH\",t)}}}function S(t){var n={};return[\"categories\",\"comments\",\"blocks\",\"media\",\"menus\",\"menu-locations\",\"menu-items\",\"statuses\",\"pages\",\"posts\",\"tags\",\"taxonomies\",\"search\"].map(function(e){return n[e]=function(){return I(\"/wp/v2/\"+e)}}),n.menuLocations=function(){return I(\"/wp/v2/menu-locations\")},n.menuItems=function(){return I(\"/wp/v2/menu-items\")},n.users=function(){var e=I(\"/wp/v2/users\");return e.delete=function(e,t){return void 0===t&&(t=!1),R(\"/wp/v2/users/\"+e,\"DELETE\",{force:!0,reassign:t})},e},n.applicationPasswords=function(){return{create:function(e,t){return R(\"/wp/v2/users/\"+e+\"/application-passwords\",\"POST\",t)},delete:function(e,t){return R(\"/wp/v2/users/\"+e+\"/application-passwords/\"+t,\"DELETE\")},get:function(e){return R(\"/wp/v2/users/\"+e+\"/application-passwords\",\"GET\")},getById:function(e,t){return R(\"/wp/v2/users/\"+e+\"/application-passwords/\"+t,\"GET\")},introspect:function(e){return R(\"/wp/v2/users/\"+e+\"/application-passwords/introspect\",\"GET\")},update:function(e,t,n){return R(\"/wp/v2/users/\"+e+\"/application-passwords/\"+t,\"PUT\",n)}}},n.settings=function(){return{get:function(){return R(\"/wp/v2/settings\",\"GET\")},update:function(e){return R(\"/wp/v2/settings\",\"POST\",e)}}},n.types=function(){return{get:function(){return R(\"/wp/v2/types\",\"GET\")},getById:function(e){return R(\"'/wp/v2/types'/\"+e,\"GET\")}}},void 0!==t&&Object.keys(t).map(function(e){return n[e]=t[e]}),e.setFetchHandler(C),n}function A(){w(j)}function L(t,n){j&&w(j),j=g(e.createRootURLMiddleware(t.replace(/\\/$/,\"\")+\"/\")),window.location.hostname&&new URL(t).hostname===window.location.hostname?E():void 0!==n?P(n):b()||y()}var M,D=function(r){return Promise.resolve(function(o,i){try{var u=Promise.resolve(e({path:\"/\",method:\"GET\"})).then(function(e){return e.authentication[\"application-passwords\"]?n(e.authentication[\"application-passwords\"].endpoints.authorization,r):{code:\"application_passwords_disabled\",message:t(\"Application passwords are not enabled on this site.\"),data:null}})}catch(e){return e}return u&&u.then?u.then(void 0,function(e){return e}):u}())};function N(){return void 0!==M}function W(){void 0!==M&&(w(M),M=void 0)}function U(e,t){W(),M=g(function(n,r){var o=n.headers;return r(p({},n,{headers:p({},void 0===o?{}:o,{Authorization:\"Basic \"+btoa(e+\":\"+t)})}),r)})}function X(e,t,n){if(!e.s){if(n instanceof z){if(!n.s)return void(n.o=X.bind(null,e,t));1&t&&(t=n.s),n=n.v}if(n&&n.then)return void n.then(X.bind(null,e,t),X.bind(null,e,2));e.s=t,e.v=n;const r=e.o;r&&r(e)}}var z=function(){function e(){}return e.prototype.then=function(t,n){var r=new e,o=this.s;if(o){var i=1&o?t:n;if(i){try{X(r,1,i(this.v))}catch(e){X(r,2,e)}return r}return this}return this.o=function(e){try{var o=e.v;1&e.s?X(r,1,t?t(o):o):n?X(r,1,n(o)):X(r,2,o)}catch(e){X(r,2,e)}},r},e}(),H=function(e,t){F({afterReload:Q,beforeReload:K,getContext:e,pluginModule:t,register:r,unregister:o,type:\"block\"})},J=function(e,t){F({afterReload:function(){},beforeReload:function(){},getContext:e,pluginModule:t,register:i,unregister:u,type:\"plugin\"})},q=function(e,t){F({afterReload:function(){},beforeReload:function(){},getContext:e,pluginModule:t,register:d,unregister:l,type:\"format\"})},F=function(e){var t=e.afterReload,n=e.beforeReload,r=e.getContext,o=e.pluginModule,i=e.register,u=e.unregister,c=e.type,s={},a=function(){n();var e=r();if(e){var o=[];return e.keys().forEach(function(t){var n=e(t);n.exclude||n!==s[t]&&(s[n.name+\"-\"+c]&&u(n.name),i(n.name,n.settings),o.push(n.name),s[n.name+\"-\"+c]=n)}),t(o),e}},f=a();o.hot&&null!=f&&f.id&&o.hot.accept(f.id.toString(),a)},Y=null,$=[],K=function(){Y=c(\"core/block-editor\").getSelectedBlockClientId()},Q=function(e){void 0===e&&(e=[]);try{return Promise.resolve(s(\"core/block-editor\").clearSelectedBlock()).then(function(){function t(){function e(){$=[],Y=null}var t=Y?Promise.resolve(s(\"core/block-editor\").selectBlock(Y)).then(function(){}):Promise.resolve(s(\"core/block-editor\").clearSelectedBlock()).then(function(){});return t&&t.then?t.then(e):e()}c(\"core/block-editor\").getBlocks().forEach(function(t){return function e(t,n){void 0===t&&(t=[]);var r=n.clientId,o=n.innerBlocks;t.includes(n.name)&&$.push(r),o.forEach(function(n){return e(t,n)})}(e,t)});var n=function(e,t,n){var r,o,i=-1;return function n(u){try{for(;++i<e.length;)if((u=t(i))&&u.then){if(!((c=u)instanceof z&&1&c.s))return void u.then(n,o||(o=X.bind(null,r=new z,2)));u=u.v}r?X(r,1,u):r=u}catch(e){X(r||(r=new z),2,e)}var c}(),r}($,function(e){return Promise.resolve(s(\"core/block-editor\").selectBlock($[e])).then(function(){})});return n&&n.then?n.then(t):t()})}catch(e){return Promise.reject(e)}};function V(e,t){var n={current:e},r={current:t};return t.some(function(e,t){return e!==r.current[t]})&&(n.current=e,r.current=t),function(){return n.current.apply(n,[].slice.call(arguments))}}function Z(e){var t=a(\"core/editor\").editPost,n=f(function(e){return{previous:e(\"core/editor\").getCurrentPostAttribute(\"meta\"),current:e(\"core/editor\").getEditedPostAttribute(\"meta\")}}),r=\"string\"==typeof e&&\"\"!==e,o=r?n.current[e]:n.current,i=r?n.previous[e]:n.previous,u=V(function(n){var o;r&&t({meta:(o={},o[e]=n,o)})},[t,e,r]),c=V(function(e,n){var r;t({meta:(r={},r[e]=n,r)})},[t]);return r?[o,u,i]:[o,c,i]}function ee(e){var t=a(\"core/editor\").editPost,n=f(function(t){var n=t(\"core\").getTaxonomy(e);return n?{taxonomy:n,current:t(\"core/editor\").getEditedPostAttribute(n.rest_base),previous:t(\"core/editor\").getCurrentPostAttribute(n.rest_base)}:{current:[],previous:[]}}),r=V(function(e){try{var r;return Promise.resolve(n.taxonomy?t(((r={})[n.taxonomy.rest_base]=e,r)):void 0)}catch(e){return Promise.reject(e)}},[n,t]);return[n.current,r,n.previous]}export{g as addMiddleware,F as autoload,H as autoloadBlocks,q as autoloadFormats,J as autoloadPlugins,W as clearApplicationPassword,y as clearNonce,I as createMethods,C as defaultFetchHandler,R as doRequest,G as doRequestWithPagination,U as enableApplicationPassword,D as getAuthorizationUrl,N as hasApplicationPassword,b as hasExternalNonce,w as removeMiddleware,E as restoreNonce,A as restoreRootURL,P as setNonce,L as setRootURL,Z as usePostMeta,ee as useTerms,S as wpapi};\n//# sourceMappingURL=index.module.js.map\n","import {Component, ErrorInfo, PropsWithChildren} from 'react';\nimport {CONFIG} from '../globals/config';\nimport {addQueryArgs} from '@wordpress/url';\nimport {sanitize} from 'dompurify';\n\ntype Props = {\n\tattributes: object,\n\tblock: string;\n\tsection: string;\n}\n\n/**\n * Wrap any component in me, which may throw errors, and I will\n * prevent the entire UI from disappearing.\n *\n * Custom version special to Advanced Sidebar Menu with links to\n * support as well as debugging information.\n *\n * @link https://reactjs.org/docs/error-boundaries.html#introducing-error-boundaries\n */\nclass ErrorBoundary extends Component<PropsWithChildren<Props>, {\n\thasError: boolean,\n\terror: Error | null\n}> {\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.state = {\n\t\t\thasError: false,\n\t\t\terror: null,\n\t\t};\n\t}\n\n\tstatic getDerivedStateFromError() {\n\t\t// Update state, so the next render will show the fallback UI.\n\t\treturn {\n\t\t\thasError: true,\n\t\t};\n\t}\n\n\t/**\n\t * Log information about the error when it happens.\n\t *\n\t * @notice Will log \"Error: A cross-origin error was thrown. React doesn't have\n\t *         access to the actual error object in development\" in React development\n\t *         mode but provides full error info in React production.\n\t */\n\tcomponentDidCatch( error: Error, info: ErrorInfo ) {\n\t\tconsole.log( '%cError caught by the Advanced Sidebar ErrorBoundary!', 'color:orange; font-size: large; font-weight: bold' );\n\t\tconsole.log( this.props );\n\t\tconsole.log( error );\n\t\tconsole.log( info );\n\t\tthis.setState( {\n\t\t\terror,\n\t\t} );\n\t}\n\n\trender() {\n\t\tif ( this.state.hasError ) {\n\t\t\tif ( ! CONFIG.siteInfo.scriptDebug ) {\n\t\t\t\treturn ( <div className={'components-panel__body is-opened'}>\n\t\t\t\t\t<h4 style={{color: 'red'}}>\n\t\t\t\t\t\tSomething went wrong!\n\t\t\t\t\t</h4>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tPlease <a\n\t\t\t\t\t\t\thref={addQueryArgs( sanitize( window.location.href ), {\n\t\t\t\t\t\t\t\t'script-debug': 'true',\n\t\t\t\t\t\t\t}, )}\n\t\t\t\t\t\t>enable script debug</a> to retrieve error information.\n\t\t\t\t\t</p>\n\t\t\t\t</div> );\n\t\t\t}\n\t\t\treturn (\n\t\t\t\t<div className={'components-panel__body is-opened'}>\n\t\t\t\t\t<h4 style={{color: 'red'}}>\n\t\t\t\t\t\tSomething went wrong!\n\t\t\t\t\t</h4>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tPlease <a target=\"_blank\" href={CONFIG.support} rel=\"noreferrer\">\n\t\t\t\t\t\t\tcreate a support request\n\t\t\t\t\t\t</a> with the following:\n\t\t\t\t\t</p>\n\t\t\t\t\t<ol>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\tThe <a\n\t\t\t\t\t\t\t\thref={'https://onpointplugins.com/how-to-retrieve-console-logs-from-your-browser/'}\n\t\t\t\t\t\t\t\ttarget={'_blank'} rel=\"noreferrer\">\n\t\t\t\t\t\t\t\tlogs from your browser console.\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\tThe following information.\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ol>\n\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tborder: '2px groove',\n\t\t\t\t\t\t\tpadding: '10px',\n\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t\toverflowWrap: 'break-word',\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<strong><em>Section</em></strong> <br />\n\t\t\t\t\t\t\t<code>\n\t\t\t\t\t\t\t\t{this.props.section}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<strong><em>Screen</em></strong> <br />\n\t\t\t\t\t\t\t<code>\n\t\t\t\t\t\t\t\t{CONFIG.currentScreen}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<strong><em>Message</em></strong> <br />\n\t\t\t\t\t\t\t<code>\n\t\t\t\t\t\t\t\t{this.state.error?.message}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<strong><em>Block</em></strong> <br />\n\t\t\t\t\t\t\t<code>\n\t\t\t\t\t\t\t\t{this.props.block}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<strong><em>Attributes</em></strong> <br />\n\t\t\t\t\t\t\t<code>\n\t\t\t\t\t\t\t\t{JSON.stringify( this.props.attributes )}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<strong><em>Site Info</em></strong> <br />\n\t\t\t\t\t\t\t<code>\n\t\t\t\t\t\t\t\t{JSON.stringify( CONFIG.siteInfo )}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t<strong><em>Stack</em></strong> <br />\n\t\t\t\t\t\t\t<code>\n\t\t\t\t\t\t\t\t{this.state.error?.stack}\n\t\t\t\t\t\t\t</code>\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</div>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t&nbsp;\n\t\t\t\t\t</p>\n\t\t\t\t\t<p>\n\t\t\t\t\t\t&nbsp;\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn this.props.children;\n\t}\n}\n\nexport default ErrorBoundary;\n","import {__} from '@wordpress/i18n';\nimport {useState} from 'react';\nimport {Notice} from '@wordpress/components';\n\nimport styles from './transform-notice.pcss';\n\ntype Props = Record<string, never>;\n\nexport const DISMISS_KEY = 'advanced-sidebar-menu/transform-notice-dismissed';\n\n/**\n * Display a dismissible notice above widget forms to inform\n * users the widget may be transformed into a block.\n *\n * Only applies to legacy widgets which should theoretically\n * be phased out in favor of blocks.\n * This notice is intended to help facilitate the transition.\n *\n */\nconst TransformNotice = ( {}: Props ) => {\n\tconst [ shown, setShown ] = useState<boolean>( true );\n\n\tif ( ! shown ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Notice\n\t\t\tclassName={styles.wrap}\n\t\t\tpoliteness={'polite'}\n\t\t\tonDismiss={() => {\n\t\t\t\tsetShown( false );\n\t\t\t\tlocalStorage.setItem( DISMISS_KEY, '1' );\n\t\t\t}}\n\t\t\tactions={[ {\n\t\t\t\tlabel: __( 'Blocks are the future of Advanced Sidebar Menu.', 'advanced-sidebar-menu' ),\n\t\t\t\turl: 'https://onpointplugins.com/advanced-sidebar-menu/advanced-sidebar-menu-gutenberg-blocks/#transform-widgets-to-blocks',\n\t\t\t\tvariant: 'link',\n\t\t\t} ]}\n\t\t>\n\t\t\t<span className=\"dashicons dashicons-arrow-up-alt\" />&nbsp;\n\t\t\t{__( 'This widget may be transformed into a block.', 'advanced-sidebar-menu' )}\n\t\t</Notice>\n\t);\n};\n\nexport default TransformNotice;\n","import {ComponentClass, FunctionComponent} from 'react';\nimport {TransformLegacy} from '../gutenberg/helpers';\nimport type {Attr as PageAttr} from '../gutenberg/blocks/pages/block';\nimport type {Attr as CategoryAttr} from '../gutenberg/blocks/categories/block';\nimport type {BlockAttributes, BlockSettings} from '@wordpress/blocks';\nimport type {PreviewOptions} from '../gutenberg/blocks/Preview';\n\nexport type Screen = 'site-editor' | 'widgets' | 'post' | 'customize';\n\nexport type WPBoolean = '1' | '';\n\nexport interface JSConfig {\n\tblocks: {\n\t\tcategories: {\n\t\t\tid: 'advanced-sidebar-menu/categories';\n\t\t\tattributes: BlockAttributes<CategoryAttr & PreviewOptions>;\n\t\t\tsupports: BlockSettings<CategoryAttr>['supports'];\n\t\t};\n\t\tpages: {\n\t\t\tid: 'advanced-sidebar-menu/pages';\n\t\t\tattributes: BlockAttributes<PageAttr & PreviewOptions>;\n\t\t\tsupports: BlockSettings<PageAttr>['supports'];\n\t\t};\n\t\tnavigation?: {\n\t\t\tid: 'advanced-sidebar-menu/navigation';\n\t\t\tattributes: BlockAttributes<object>;\n\t\t\tsupports: BlockSettings<object>['supports'];\n\t\t}\n\t};\n\tcategories: {\n\t\tdisplayEach: {\n\t\t\tlist: string;\n\t\t\twidget: string;\n\t\t};\n\t};\n\tcurrentScreen: Screen;\n\tdocs: {\n\t\tpage: string;\n\t\tcategory: string;\n\t};\n\terror: string;\n\tErrorBoundary: ComponentClass<{\n\t\tattributes: object,\n\t\tblock: string;\n\t\tsection: string;\n\t}>;\n\tfeatures: Array<string>;\n\tisPostEdit: WPBoolean;\n\tisPro: WPBoolean;\n\tisWidgets: WPBoolean;\n\tpages: {\n\t\torderBy: { [ value: string ]: string };\n\t};\n\tPreview: FunctionComponent<object>;\n\tsiteInfo: {\n\t\tbasic: string;\n\t\tclassicWidgets: boolean;\n\t\tmenus: Array<object>;\n\t\tphp: string;\n\t\tpro: string | false;\n\t\tscriptDebug: boolean;\n\t\tWordPress: string;\n\t};\n\tsupport: string;\n\ttransformLegacyWidget: TransformLegacy;\n}\n\n\ndeclare global {\n\tinterface Window {\n\t\tADVANCED_SIDEBAR_MENU: JSConfig;\n\t\tadvancedSidebarMenuAdmin: {\n\t\t\tinit: () => void;\n\t\t\thandlePreviews: () => void;\n\t\t\tshowHideElements: () => void;\n\t\t\tclickReveal: ( id: string ) => void;\n\t\t\tsetHideState( target: JQuery<HTMLElement> ): void;\n\t\t};\n\t\t__TEST__?: boolean;\n\t}\n}\n\nexport const CONFIG: JSConfig = window.ADVANCED_SIDEBAR_MENU;\n","import {withFilters} from '@wordpress/components';\nimport {select} from '@wordpress/data';\nimport {isEmpty} from 'lodash';\n\ntype Props = {\n\tclientId: string;\n};\n\nlet firstClientId = '';\n/**\n * The customizer area does not include a `PluginArea` component,\n * so our slot fills do not load.\n *\n * We can use filters, but the Fills double up each time\n * another block is added to the page.\n *\n * Track the clientId of the first block we add the Fill to\n * and only return the Fill for that block. The rest of the blocks\n * inherit the Fill from the first block via their Slots.\n */\nconst SideLoad = ( {clientId, children} ) => {\n\tif ( ! isEmpty( firstClientId ) && clientId !== firstClientId ) {\n\t\t// Make sure block still exists.\n\t\tif ( -1 !== select( 'core/block-editor' ).getBlockIndex( firstClientId ) ) {\n\t\t\treturn null;\n\t\t}\n\t}\n\tfirstClientId = clientId;\n\treturn children ?? null;\n};\n\nexport default withFilters<Props>( 'advanced-sidebar-menu.blocks.side-load' )( SideLoad );\n","import {CheckboxControl, PanelBody, Slot} from '@wordpress/components';\nimport {CONFIG} from '../../globals/config';\nimport type {Attr as PageAttr} from './pages/block';\nimport type {Attr as CategoryAttr} from './categories/block';\nimport {__, sprintf} from '@wordpress/i18n';\nimport {Type} from '@wordpress/api/types';\nimport {range} from 'lodash';\nimport reactStringReplace from 'react-string-replace';\nimport {Taxonomy} from '@wordpress/api/taxonomies';\nimport ErrorBoundary from '../../components/ErrorBoundary';\nimport {BlockEditProps} from '@wordpress/blocks';\nimport {PropsWithChildren} from 'react';\n\n\nexport type DisplayOptions = {\n\tdisplay_all?: boolean;\n\tinclude_childless_parent?: boolean;\n\tinclude_parent?: boolean;\n\tlevels: number;\n}\n\nexport type FillProps =\n\tPick<BlockEditProps<PageAttr | CategoryAttr>, 'clientId' | 'attributes' | 'setAttributes' | 'name'>\n\t& { type?: Type<'edit'> | Taxonomy<'edit'> }\n\ntype Props = PropsWithChildren<{\n\tattributes: PageAttr | CategoryAttr;\n\tsetAttributes: BlockEditProps<PageAttr | CategoryAttr>['setAttributes'];\n\ttype?: Type<'edit'> | Taxonomy<'edit'>;\n\tname: string;\n\tclientId: string;\n}>;\n\nconst checkboxes: { [attr in keyof Partial<DisplayOptions>]: string } = {\n\t/* translators: Selected taxonomy single label */\n\tinclude_parent: __( 'Display highest level parent %s', 'advanced-sidebar-menu' ),\n\t/* translators: Selected taxonomy single label */\n\tinclude_childless_parent: __( 'Display menu when there is only the parent %s', 'advanced-sidebar-menu' ),\n\t/* translators: Selected taxonomy plural label */\n\tdisplay_all: __( 'Always display child %s', 'advanced-sidebar-menu' ),\n};\n\n/**\n * Display Options shared between widgets.\n *\n * 1. Display the highest level parent page.\n * 2. Display menu when there is only the parent page.\n * 3. Always display child pages.\n * 5. Display levels of child pages.\n *\n */\nconst Display = ( {\n\tattributes,\n\tsetAttributes,\n\ttype,\n\tname,\n\tclientId,\n\tchildren,\n}: Props ) => {\n\tconst showLevels = ( CONFIG.blocks.pages.id === name && '1' === CONFIG.isPro ) || true === attributes.display_all;\n\n\tconst fillProps: FillProps = {\n\t\ttype,\n\t\tattributes,\n\t\tname,\n\t\tsetAttributes,\n\t\tclientId,\n\t};\n\n\treturn (\n\t\t<PanelBody title={__( 'Display', 'advanced-sidebar-menu' )}>\n\t\t\t{Object.keys( checkboxes ).map( item => {\n\t\t\t\tlet label = type?.labels?.singular_name.toLowerCase() ?? '';\n\t\t\t\tif ( 'display_all' === item ) {\n\t\t\t\t\tlabel = type?.labels?.name.toLowerCase() ?? '';\n\t\t\t\t}\n\t\t\t\treturn <CheckboxControl\n\t\t\t\t\tkey={item}\n\t\t\t\t\t//eslint-disable-next-line @wordpress/valid-sprintf\n\t\t\t\t\tlabel={sprintf( checkboxes[ item ], label )}\n\t\t\t\t\tchecked={true === attributes[ item ]}\n\t\t\t\t\tonChange={checked => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t[ item ]: checked,\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{showLevels && <div className={'components-base-control'}>\n\t\t\t\t{/* translators: {select HTML input}, {post type plural label} */\n\t\t\t\t\treactStringReplace( __( 'Display %1$s levels of child %2$s', 'advanced-sidebar-menu' ).replace( '%2$s', type?.labels?.name.toLowerCase() ?? '' ), '%1$s',\n\t\t\t\t\t\t() => (\n\t\t\t\t\t\t\t<select\n\t\t\t\t\t\t\t\tkey={'levels'}\n\t\t\t\t\t\t\t\tclassName={'advanced-sidebar-menu-display-select'}\n\t\t\t\t\t\t\t\tvalue={attributes.levels}\n\t\t\t\t\t\t\t\tonChange={ev => setAttributes( {levels: parseInt( ev.target.value )} )}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<option value=\"100\">\n\t\t\t\t\t\t\t\t\t{__( '- All -', 'advanced-sidebar-menu' )}\n\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t{range( 1, 10 ).map( n => <option key={n} value={n}>\n\t\t\t\t\t\t\t\t\t{n}\n\t\t\t\t\t\t\t\t</option> )}\n\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t) )}\n\t\t\t</div>}\n\n\t\t\t{children}\n\n\t\t\t<ErrorBoundary attributes={attributes} block={name} section={'Display/slots'}>\n\t\t\t\t{CONFIG.blocks.pages.id === name &&\n\t\t\t\t\t<Slot<FillProps>\n\t\t\t\t\t\tname=\"advanced-sidebar-menu/pages/display\"\n\t\t\t\t\t\tfillProps={fillProps} />}\n\t\t\t\t{CONFIG.blocks.categories.id === name &&\n\t\t\t\t\t<Slot<FillProps>\n\t\t\t\t\t\tname=\"advanced-sidebar-menu/categories/display\"\n\t\t\t\t\t\tfillProps={fillProps} />}\n\t\t\t</ErrorBoundary>\n\n\t\t</PanelBody>\n\t);\n};\n\nexport default Display;\n","import {TextControl, withFilters} from '@wordpress/components';\nimport {__, sprintf} from '@wordpress/i18n';\nimport {Type} from '@wordpress/api/types';\nimport {Attr as PageAttr} from './pages/block';\nimport {Attr as CategoryAttr} from './categories/block';\nimport {BlockEditProps} from '@wordpress/blocks';\nimport {Taxonomy} from '@wordpress/api/taxonomies';\n\ntype Props = {\n\tattributes: PageAttr | CategoryAttr;\n\tsetAttributes: BlockEditProps<PageAttr | CategoryAttr>['setAttributes'];\n\ttype?: Type<'edit'> | Taxonomy<'edit'>;\n};\n\n/**\n * The Exclude field shared between widgets.\n *\n * Removed and replaced via filter by the PRO version.\n */\nconst ExcludeField = ( {type, attributes, setAttributes}: Props ) => {\n\tconst help = <span\n\t\tdangerouslySetInnerHTML={{ //phpcs:ignore\n\t\t\t__html: sprintf(\n\t\t\t\t/* translators: 1: Opening anchor tag, 2: Closing anchor tag */\n\t\t\t\t__( 'For more robust and intuitive exclusions use the %1$sPRO version%2$s.', 'advanced-sidebar-menu' ), '<a href=\"https://onpointplugins.com/advanced-sidebar-menu/advanced-sidebar-menu-pro-widget-docs/advanced-sidebar-menu-pro-excluding-menu-items/?utm_source=exclude-field&utm_campaign=gopro&utm_medium=wp-dash\" target=\"_blank\">', '</a>' ),\n\t\t}} />;\n\n\treturn (\n\t\t<TextControl\n\t\t\t/* translators: Selected post type plural label */\n\t\t\tlabel={sprintf( __( '%s to exclude (ids, comma separated)', 'advanced-sidebar-menu' ), type?.labels?.name ?? '' )}\n\t\t\tvalue={attributes.exclude}\n\t\t\thelp={help}\n\t\t\tonChange={value => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\texclude: value,\n\t\t\t\t} );\n\t\t\t}} />\n\t);\n};\n\nexport default withFilters<Props>( 'advanced-sidebar-menu.blocks.exclude-field' )( ExcludeField );\n","import {CONFIG} from '../../globals/config';\nimport {Button, PanelBody, withFilters} from '@wordpress/components';\nimport {InspectorControls} from '@wordpress/block-editor';\nimport {decodeEntities} from '@wordpress/html-entities';\nimport {__} from '@wordpress/i18n';\n\nimport styles from './info-panel.pcss';\n\ntype Props = {\n\tclientId: string;\n};\n\nconst titleStyles = {\n\tcolor: '#3db634',\n\tfontWeight: 700,\n};\n\nconst headingStyles = {\n\tmargin: '16px 0 0',\n\tfontSize: '1.2em',\n};\n\nconst InfoPanel = ( {}: Props ) => {\n\treturn ( <InspectorControls>\n\t\t<PanelBody\n\t\t\ttitle={<span style={titleStyles}>\n\t\t\t\t{__( 'Go PRO', 'advanced-sidebar-menu' )}\n\t\t\t</span>}\n\t\t\tclassName={styles.wrap}\n\t\t\tinitialOpen={false}\n\t\t>\n\t\t\t<h2 style={headingStyles}>\n\t\t\t\t{__( 'Advanced Sidebar Menu PRO', 'advanced-sidebar-menu' )}\n\t\t\t</h2>\n\t\t\t<ul>\n\t\t\t\t{CONFIG.features.map( feature => (\n\t\t\t\t\t<li key={feature}>\n\t\t\t\t\t\t{decodeEntities( feature )}\n\t\t\t\t\t</li>\n\t\t\t\t) )}\n\t\t\t\t<li>\n\t\t\t\t\t{__( 'And so much more…', 'advanced-sidebar-menu' )}\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t\t<Button\n\t\t\t\tclassName={styles.button}\n\t\t\t\thref={'https://onpointplugins.com/product/advanced-sidebar-menu-pro/?utm_source=block-upgrade&utm_campaign=gopro&utm_medium=wp-dash#buy-now-choices'}\n\t\t\t\ttarget={'_blank'}\n\t\t\t\trel={'noreferrer'}\n\t\t\t\tisPrimary\n\t\t\t>\n\t\t\t\t{__( 'Upgrade', 'advanced-sidebar-menu' )}\n\t\t\t</Button>\n\t\t</PanelBody>\n\t</InspectorControls> );\n};\n\nexport default withFilters<Props>( 'advanced-sidebar-menu.blocks.info-panel' )( InfoPanel );\n","import {ReactElement, useEffect} from 'react';\nimport {CONFIG} from '../../globals/config';\nimport ServerSideRender from '@wordpress/server-side-render';\nimport {Placeholder, Spinner} from '@wordpress/components';\nimport {useBlockProps} from '@wordpress/block-editor';\nimport {sanitize} from 'dompurify';\nimport {doAction} from '@wordpress/hooks';\nimport {__} from '@wordpress/i18n';\nimport {select} from '@wordpress/data';\nimport {isScreen} from '../helpers';\n\nimport styles from './preview.pcss';\n\n\nexport type PreviewOptions = {\n\tisServerSideRenderRequest: boolean;\n\tclientId: string;\n\tsidebarId: string;\n\tstyle?: object;\n}\n\ntype Props<A> = {\n\tattributes: A;\n\tblock: string;\n\tclientId: string;\n};\n\n/**\n * Same as the Dashicons `welcome-widgets-menus` icon but available inside\n * iframe editors which don't enqueue the Dashicons font.\n */\nconst ICON = <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n\t<rect x=\"0\" fill=\"none\" width=\"20\" height=\"20\" />\n\t<g>\n\t\t<path d=\"M19 16V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v13c0 .55.45 1 1 1h15c.55 0 1-.45 1-1zM4 4h13v4H4V4zm1 1v2h3V5H5zm4 0v2h3V5H9zm4 0v2h3V5h-3zm-8.5 5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zM6 10h4v1H6v-1zm6 0h5v5h-5v-5zm-7.5 2c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zM6 12h4v1H6v-1zm7 0v2h3v-2h-3zm-8.5 2c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zM6 14h4v1H6v-1z\" />\n\t</g>\n</svg>;\n\n/**\n * Sanitize a client id for use as an HTML id.\n *\n * Must not start with a `-` or a digit.\n *\n */\nexport const sanitizeClientId = ( clientId: string ): string => {\n\treturn clientId.replace( /^([\\d-])/, '_$1' );\n};\n\n/**\n * If we are in the widgets' area, the block is wrapped in\n * a \"sidebar\" block. We retrieve the id to pass along with\n * the request to use the `widget_args` within the preview.\n *\n */\nconst getSidebarId = ( clientId: string ): string => {\n\tif ( ! isScreen( [ 'widgets' ] ) ) {\n\t\treturn '';\n\t}\n\tconst rootId = select( 'core/block-editor' ).getBlockRootClientId( clientId );\n\tif ( 'undefined' !== typeof rootId && '' !== rootId ) {\n\t\tconst ParentBlock = select( 'core/block-editor' ).getBlocksByClientId( [ rootId ] );\n\t\tif ( null !== ParentBlock[ 0 ] && 'undefined' !== typeof ParentBlock[ 0 ] && 'core/widget-area' === ParentBlock[ 0 ]?.name ) {\n\t\t\treturn ParentBlock[ 0 ]?.attributes?.id;\n\t\t}\n\t}\n\n\treturn '';\n};\n\n/**\n * @notice Must use static constants, or the ServerSide requests\n *         will fire anytime something on the page is changed\n *         because the component re-renders.\n */\nconst Page = () => <Placeholder\n\tclassName={styles.placeholder}\n\ticon={ICON}\n\tlabel={__( 'Advanced Sidebar - Pages', 'advanced-sidebar-menu' )}\n\tinstructions={__( 'No preview available', 'advanced-sidebar-menu' )}\n/>;\n\nconst Category = () => <Placeholder\n\tclassName={styles.placeholder}\n\ticon={ICON}\n\tlabel={__( 'Advanced Sidebar - Categories', 'advanced-sidebar-menu' )}\n\tinstructions={__( 'No preview available', 'advanced-sidebar-menu' )}\n/>;\n\nconst Navigation = () => <Placeholder\n\tclassName={styles.placeholder}\n\ticon={ICON}\n\tlabel={__( 'Advanced Sidebar - Navigation', 'advanced-sidebar-menu' )}\n\tinstructions={__( 'No preview available', 'advanced-sidebar-menu' )}\n/>;\n\n/**\n * @notice The styles will not display for the preview\n *         in the block inserter sidebar when Webpack\n *         is enabled because the iframe has a late init.\n *\n */\nconst placeholder = ( block: string ): () => ReactElement => {\n\tswitch ( block ) {\n\t\tcase CONFIG.blocks.pages.id:\n\t\t\treturn Page;\n\t\tcase CONFIG.blocks.categories.id:\n\t\t\treturn Category;\n\t\tcase CONFIG.blocks.navigation?.id:\n\t\t\treturn Navigation;\n\t}\n\treturn () => <></>;\n};\n\n\n/**\n * Same as the `DefaultLoadingResponsePlaceholder` except we trigger\n * an action when the loading component is unmounted to allow\n * components to hook into when ServerSideRender has finished loading.\n *\n * @notice Using a constant to prevent a reload on every content change.\n *\n */\nconst TriggerWhenLoadingFinished = ( {\n\tchildren,\n\tattributes = {\n\t\tclientId: '',\n\t},\n} ) => {\n\tuseEffect( () => {\n\t\t// Call action when the loading component unmounts because loading is finished.\n\t\treturn () => {\n\t\t\t// Give the preview a chance to load on WP 5.8.\n\t\t\tsetTimeout( () => {\n\t\t\t\tdoAction( 'advanced-sidebar-menu.blocks.preview.loading-finished', {\n\t\t\t\t\tvalues: attributes,\n\t\t\t\t\tclientId: attributes.clientId,\n\t\t\t\t} );\n\t\t\t}, 100 );\n\t\t};\n\t} );\n\n\t/**\n\t * ServerSideRender returns a <RawHTML /> filled with an error object when fetch fails.\n\t *\n\t * We throw an error, so our `ErrorBoundary` will catch it, otherwise we end up\n\t * with a \"React objects may not be used as children\" error, which means nothing.\n\t */\n\tif ( 'string' === typeof children?.props?.children?.errorMsg ) {\n\t\tthrow new Error( children?.props?.children?.errorMsg ?? 'Failed' );\n\t}\n\n\treturn (\n\t\t<div className={styles.spinWrap}>\n\t\t\t<div className={styles.spin}>\n\t\t\t\t<Spinner />\n\t\t\t</div>\n\t\t\t<div className={styles.spinContent}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\n\nconst Preview = <A, >( {attributes, block, clientId}: Props<A> ) => {\n\tconst blockProps = useBlockProps();\n\n\tif ( '' !== CONFIG.error ) {\n\t\treturn <div\n\t\t\tclassName={styles.error}\n\t\t\tdangerouslySetInnerHTML={{__html: sanitize( CONFIG.error )}} />;\n\t}\n\n\n\tconst sanitizedClientId = sanitizeClientId( clientId );\n\n\t// Prevent styles from doubling up as they are already added via render in PHP.\n\tdelete blockProps.style;\n\n\treturn (\n\t\t// eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\t{...blockProps}\n\t\t\tonClick={ev => {\n\t\t\t\tconst element = ev.target as HTMLElement;\n\t\t\t\tif ( 'A' === element.nodeName ) {\n\t\t\t\t\tev.preventDefault();\n\t\t\t\t}\n\t\t\t}}\n\t\t>\n\t\t\t<ServerSideRender<A & PreviewOptions>\n\t\t\t\tEmptyResponsePlaceholder={placeholder( block )}\n\t\t\t\tLoadingResponsePlaceholder={TriggerWhenLoadingFinished}\n\t\t\t\tattributes={{\n\t\t\t\t\t...attributes,\n\t\t\t\t\t// Send custom attribute to determine server side renders.\n\t\t\t\t\tisServerSideRenderRequest: true,\n\t\t\t\t\tclientId: sanitizedClientId,\n\t\t\t\t\tsidebarId: getSidebarId( clientId ),\n\t\t\t\t}}\n\t\t\t\tblock={block}\n\t\t\t\thttpMethod={'POST'}\n\t\t\t/>\n\t\t</div>\n\t);\n};\n\nexport default Preview;\n","import {useSelect} from '@wordpress/data';\nimport {CONFIG} from '../../../globals/config';\nimport {sanitize} from 'dompurify';\nimport {BlockControls, InspectorControls} from '@wordpress/block-editor';\nimport Preview from '../Preview';\nimport {Attr, block} from './block';\nimport {Taxonomy} from '@wordpress/api/taxonomies';\nimport {BlockEditProps} from '@wordpress/blocks';\nimport ErrorBoundary from '../../../components/ErrorBoundary';\nimport Display from '../Display';\nimport {CheckboxControl, PanelBody, SelectControl, Slot, TextControl} from '@wordpress/components';\nimport {__, sprintf} from '@wordpress/i18n';\nimport InfoPanel from '../InfoPanel';\nimport SideLoad from '../../SideLoad';\nimport {isScreen} from '../../helpers';\n\nimport styles from '../pages/edit.pcss';\nimport ExcludeField from '../ExcludeField';\n\nexport type FillProps =\n\tPick<BlockEditProps<Attr>, 'clientId' | 'attributes' | 'setAttributes' | 'name'>\n\t& { type?: Taxonomy }\n\ntype Props = BlockEditProps<Attr>;\n\nconst Edit = ( {attributes, setAttributes, clientId, name}: Props ) => {\n\tconst taxonomy: Taxonomy<'edit'> | undefined = useSelect( select => {\n\t\tconst type = select( 'core' ).getTaxonomy( attributes.taxonomy ?? 'category' );\n\t\treturn type ?? select( 'core' ).getTaxonomy( 'category' );\n\t}, [ attributes.taxonomy ] );\n\n\t// We have a version conflict or license error.\n\tif ( '' !== CONFIG.error ) {\n\t\treturn ( <>\n\t\t\t<InspectorControls>\n\t\t\t\t<div\n\t\t\t\t\tclassName={styles.error}\n\t\t\t\t\tdangerouslySetInnerHTML={{__html: sanitize( CONFIG.error )}} />\n\t\t\t</InspectorControls>\n\t\t\t<Preview<Attr> attributes={attributes} block={block.id} clientId={clientId} />\n\t\t</> );\n\t}\n\n\tconst fillProps: FillProps = {\n\t\ttype: taxonomy,\n\t\tattributes,\n\t\tname,\n\t\tsetAttributes,\n\t\tclientId,\n\t};\n\n\treturn ( <>\n\t\t<InspectorControls>\n\t\t\t{isScreen( [ 'widgets', 'site-editor', 'customize' ] ) && <PanelBody>\n\t\t\t\t<TextControl\n\t\t\t\t\tvalue={attributes.title ?? ''}\n\t\t\t\t\tlabel={__( 'Title', 'advanced-sidebar-menu' )}\n\t\t\t\t\tonChange={title => setAttributes( {title} )} />\n\t\t\t</PanelBody>}\n\t\t\t<ErrorBoundary attributes={attributes} block={name} section={'categories/Edit/general'}>\n\t\t\t\t<Display\n\t\t\t\t\tattributes={attributes}\n\t\t\t\t\tclientId={clientId}\n\t\t\t\t\tname={name}\n\t\t\t\t\tsetAttributes={setAttributes}\n\t\t\t\t\ttype={taxonomy}\n\t\t\t\t>\n\t\t\t\t\t{/* Not offering \"Display categories on single posts\"\n\t\t                when editing a post because this must be true, or\n\t\t                the block won't display.\n\n\t\t                We default the attribute to `true` if we are editing\n\t\t                a post during register of block attributes. */}\n\t\t\t\t\t{isScreen( [ 'post' ] ) && <CheckboxControl\n\t\t\t\t\t\t/* translators: Selected taxonomy plural label */\n\t\t\t\t\t\tlabel={sprintf( __( 'Display %s on single posts', 'advanced-sidebar-menu' ), taxonomy?.labels?.name.toLowerCase() ?? '' )}\n\t\t\t\t\t\tchecked={attributes.single}\n\t\t\t\t\t\tonChange={value => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tsingle: 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{/*\n\t\t\t\t\t\t  Only widget screens support this option because we\n\t\t\t\t\t\t  have no widget wrap to use on other screens, so they are\n\t\t\t\t\t\t  list only. */}\n\t\t\t\t\t{isScreen( [ 'widgets', 'customize' ] ) && attributes.single &&\n\t\t\t\t\t\t<SelectControl<'list' | 'widget'>\n\t\t\t\t\t\t\t/* translators: Selected taxonomy single label */\n\t\t\t\t\t\t\tlabel={sprintf( __( 'Display each single post\\'s %s', 'advanced-sidebar-menu' ), taxonomy?.labels?.name.toLowerCase() ?? '' )}\n\t\t\t\t\t\t\tvalue={attributes.new_widget}\n\t\t\t\t\t\t\toptions={Object.keys( CONFIG.categories.displayEach ).map( ( key: 'list' | 'widget' ) => ( {\n\t\t\t\t\t\t\t\tvalue: key,\n\t\t\t\t\t\t\t\tlabel: CONFIG.categories.displayEach[ key ],\n\t\t\t\t\t\t\t} ) )}\n\t\t\t\t\t\t\t/* eslint-disable-next-line camelcase */\n\t\t\t\t\t\t\tonChange={new_widget => setAttributes( {new_widget} )}\n\t\t\t\t\t\t/>}\n\t\t\t\t</Display>\n\n\t\t\t\t<div className={'components-panel__body is-opened'}>\n\n\t\t\t\t\t<Slot<FillProps>\n\t\t\t\t\t\tname=\"advanced-sidebar-menu/categories/general\"\n\t\t\t\t\t\tfillProps={fillProps} />\n\n\t\t\t\t\t<ExcludeField\n\t\t\t\t\t\ttype={taxonomy}\n\t\t\t\t\t\tattributes={attributes}\n\t\t\t\t\t\tsetAttributes={setAttributes} />\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref={CONFIG.docs.category}\n\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{__( 'block documentation', 'advanced-sidebar-menu' )}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t</ErrorBoundary>\n\t\t\t<ErrorBoundary\n\t\t\t\tattributes={attributes}\n\t\t\t\tblock={name}\n\t\t\t\tsection={'categories/Edit/inspector'}\n\t\t\t>\n\t\t\t\t<Slot<FillProps>\n\t\t\t\t\tname=\"advanced-sidebar-menu/categories/inspector\"\n\t\t\t\t\tfillProps={fillProps} />\n\n\t\t\t</ErrorBoundary>\n\t\t</InspectorControls>\n\n\t\t<BlockControls>\n\t\t\t<ErrorBoundary\n\t\t\t\tattributes={attributes}\n\t\t\t\tblock={name}\n\t\t\t\tsection={'categories/Edit/block-controls'}\n\t\t\t>\n\t\t\t\t<Slot<FillProps>\n\t\t\t\t\tname=\"advanced-sidebar-menu/categories/block-controls\"\n\t\t\t\t\tfillProps={fillProps} />\n\t\t\t</ErrorBoundary>\n\t\t</BlockControls>\n\n\t\t<InfoPanel clientId={clientId} />\n\n\t\t<ErrorBoundary attributes={attributes} block={name} section={'categories/Edit/preview'}>\n\t\t\t<Preview<Attr> attributes={attributes} block={block.id} clientId={clientId} />\n\t\t</ErrorBoundary>\n\n\t\t<SideLoad clientId={clientId} />\n\t</> );\n};\n\nexport default Edit;\n","import {CONFIG} from '../../../globals/config';\nimport {BlockSettings, LegacyWidget} from '@wordpress/blocks';\nimport Edit from './Edit';\nimport {DisplayOptions} from '../Display';\nimport {transformLegacyWidget} from '../../helpers';\nimport {__} from '@wordpress/i18n';\n\n/**\n * Attributes specific to the widget as well as shared\n * widget attributes.\n *\n * @see \\Advanced_Sidebar_Menu\\Blocks\\Block_Abstract::get_all_attributes\n * @see \\Advanced_Sidebar_Menu\\Blocks\\Pages::get_attributes\n */\nexport type Attr = {\n\texclude: string;\n\tnew_widget: 'widget' | 'list';\n\tsingle: boolean;\n\ttitle?: string;\n} & DisplayOptions & ProRegistered;\n\n// Options used by basic when available from PRO.\ntype ProRegistered = {\n\ttaxonomy?: string;\n}\n\nexport type setAttributes = ( newValue: {\n\t[attribute in keyof Attr]?: Attr[attribute]\n} ) => void;\n\n/**\n * Attributes used for the example preview.\n * Combines some PRO and basic attributes.\n * The PRO attributes will only be sent if PRO is active.\n */\nconst EXAMPLE = {\n\t'display-posts': 'all',\n\t'display-posts/limit': 2,\n\tapply_current_page_parent_styles_to_parent: true,\n\tapply_current_page_styles_to_parent: true,\n\tblock_style: true,\n\tborder: true,\n\tborder_color: '#333',\n\tbullet_style: 'none',\n\tchild_page_bg_color: '#666',\n\tchild_page_color: '#fff',\n\tparent_page_bg_color: '#282828',\n\tparent_page_color: '#0cc4c6',\n\tparent_page_font_weight: 'normal',\n\tdisplay_all: true,\n\tgrandchild_page_bg_color: '#989898',\n\tgrandchild_page_color: '#282828',\n\tgrandchild_page_font_weight: 'bold',\n\tinclude_childless_parent: true,\n\tinclude_parent: true,\n\tlevels: 2,\n};\n\n\nexport const block = CONFIG.blocks.categories;\n\nexport const name = block.id;\n\nexport const settings: BlockSettings<Attr, '', LegacyWidget<Attr & { title: string }>> = {\n\ttitle: __( 'Advanced Sidebar - Categories', 'advanced-sidebar-menu' ),\n\ticon: 'welcome-widgets-menus',\n\tcategory: 'widgets',\n\texample: {\n\t\tattributes: EXAMPLE,\n\t},\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/legacy-widget' ],\n\t\t\t\tisMatch: ( {idBase, instance} ) => {\n\t\t\t\t\tif ( null === instance?.raw ) {\n\t\t\t\t\t\t// Can't transform if raw instance is not shown in REST API.\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn 'advanced_sidebar_menu_category' === idBase;\n\t\t\t\t},\n\t\t\t\ttransform: transformLegacyWidget<Attr>( name ),\n\t\t\t},\n\t\t],\n\t},\n\tattributes: block.attributes,\n\tsupports: block.supports,\n\tedit: props => (\n\t\t<Edit {...props} />\n\t),\n\tsave: () => null,\n\tapiVersion: 3,\n};\n","import {BlockControls, InspectorControls} from '@wordpress/block-editor';\nimport {PanelBody, SelectControl, Slot, TextControl} from '@wordpress/components';\nimport {BlockEditProps} from '@wordpress/blocks';\nimport {Attr, block} from './block';\nimport Preview from '../Preview';\nimport Display from '../Display';\nimport {useSelect} from '@wordpress/data';\nimport InfoPanel from '../InfoPanel';\nimport {CONFIG} from '../../../globals/config';\nimport {sanitize} from 'dompurify';\nimport {__} from '@wordpress/i18n';\nimport {Type} from '@wordpress/api/types';\nimport ErrorBoundary from '../../../components/ErrorBoundary';\nimport SideLoad from '../../SideLoad';\nimport {isScreen} from '../../helpers';\n\nimport styles from './edit.pcss';\nimport ExcludeField from '../ExcludeField';\n\n\nexport type FillProps =\n\tPick<BlockEditProps<Attr>, 'clientId' | 'attributes' | 'setAttributes' | 'name'>\n\t& { type?: Type }\n\ntype Props = BlockEditProps<Attr>;\n\n/**\n * Pages block content in the editor.\n */\nconst Edit = ( {attributes, setAttributes, clientId, name}: Props ) => {\n\tconst postType: Type<'edit'> | undefined = useSelect( select => {\n\t\tconst type = select( 'core' ).getPostType( attributes.post_type ?? 'page' );\n\t\treturn type ?? select( 'core' ).getPostType( 'page' );\n\t}, [ attributes.post_type ] );\n\n\t// We have a version conflict or license error.\n\tif ( '' !== CONFIG.error ) {\n\t\treturn ( <>\n\t\t\t<InspectorControls>\n\t\t\t\t<div\n\t\t\t\t\tclassName={styles.error}\n\t\t\t\t\tdangerouslySetInnerHTML={{__html: sanitize( CONFIG.error )}} />\n\t\t\t</InspectorControls>\n\t\t\t<Preview<Attr> attributes={attributes} block={block.id} clientId={clientId} />\n\t\t</> );\n\t}\n\n\tconst fillProps: FillProps = {\n\t\ttype: postType,\n\t\tattributes,\n\t\tname,\n\t\tsetAttributes,\n\t\tclientId,\n\t};\n\n\n\treturn ( <>\n\t\t<InspectorControls>\n\t\t\t{isScreen( [ 'widgets', 'site-editor', 'customize' ] ) && <PanelBody>\n\t\t\t\t<TextControl\n\t\t\t\t\tvalue={attributes.title ?? ''}\n\t\t\t\t\tlabel={__( 'Title', 'advanced-sidebar-menu' )}\n\t\t\t\t\tonChange={title => setAttributes( {title} )} />\n\t\t\t</PanelBody>}\n\t\t\t<ErrorBoundary attributes={attributes} block={name} section={'pages/Edit/general'}>\n\t\t\t\t<Display\n\t\t\t\t\tattributes={attributes}\n\t\t\t\t\tclientId={clientId}\n\t\t\t\t\tname={name}\n\t\t\t\t\tsetAttributes={setAttributes}\n\t\t\t\t\ttype={postType} />\n\n\t\t\t\t<div className={'components-panel__body is-opened'}>\n\n\t\t\t\t\t<Slot<FillProps>\n\t\t\t\t\t\tname=\"advanced-sidebar-menu/pages/general\"\n\t\t\t\t\t\tfillProps={fillProps} />\n\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={__( 'Order by', 'advanced-sidebar-menu' )}\n\t\t\t\t\t\tvalue={attributes.order_by}\n\t\t\t\t\t\tlabelPosition={'side'}\n\t\t\t\t\t\toptions={Object.entries( CONFIG.pages.orderBy ).map( ( [ value, label ] ) => ( {\n\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\tlabel,\n\t\t\t\t\t\t} ) )}\n\t\t\t\t\t\tonChange={value => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\torder_by: value,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}} />\n\n\t\t\t\t\t<ExcludeField\n\t\t\t\t\t\ttype={postType}\n\t\t\t\t\t\tattributes={attributes}\n\t\t\t\t\t\tsetAttributes={setAttributes} />\n\n\t\t\t\t\t<p>\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\thref={CONFIG.docs.page}\n\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{__( 'block documentation', 'advanced-sidebar-menu' )}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t</ErrorBoundary>\n\t\t\t<ErrorBoundary attributes={attributes} block={name} section={'pages/Edit/inspector'}>\n\t\t\t\t<Slot<FillProps>\n\t\t\t\t\tname=\"advanced-sidebar-menu/pages/inspector\"\n\t\t\t\t\tfillProps={fillProps} />\n\n\t\t\t</ErrorBoundary>\n\t\t</InspectorControls>\n\n\t\t<BlockControls>\n\t\t\t<ErrorBoundary\n\t\t\t\tattributes={attributes}\n\t\t\t\tblock={name}\n\t\t\t\tsection={'pages/Edit/block-controls'}\n\t\t\t>\n\t\t\t\t<Slot<FillProps>\n\t\t\t\t\tname=\"advanced-sidebar-menu/pages/block-controls\"\n\t\t\t\t\tfillProps={fillProps} />\n\t\t\t</ErrorBoundary>\n\t\t</BlockControls>\n\n\t\t<InfoPanel clientId={clientId} />\n\n\t\t<ErrorBoundary attributes={attributes} block={name} section={'pages/Edit/preview'}>\n\t\t\t<Preview<Attr> attributes={attributes} block={block.id} clientId={clientId} />\n\t\t</ErrorBoundary>\n\n\t\t<SideLoad clientId={clientId} />\n\t</> );\n};\n\nexport default Edit;\n","import {BlockSettings, LegacyWidget} from '@wordpress/blocks';\nimport {CONFIG} from '../../../globals/config';\nimport Edit from './Edit';\nimport {DisplayOptions} from '../Display';\nimport {transformLegacyWidget} from '../../helpers';\nimport {__} from '@wordpress/i18n';\n\n/**\n * Attributes specific to the widget as well as shared\n * widget attributes.\n *\n * @see \\Advanced_Sidebar_Menu\\Blocks\\Block_Abstract::get_all_attributes\n * @see \\Advanced_Sidebar_Menu\\Blocks\\Pages::get_attributes\n */\nexport type Attr = {\n\texclude: string;\n\torder_by: string;\n\ttitle?: string;\n} & DisplayOptions & ProRegistered;\n\n// Options used by basic when available from PRO.\ntype ProRegistered = {\n\tpost_type?: string;\n}\n\nexport type setAttributes = ( newValue: {\n\t[attribute in keyof Attr]?: Attr[attribute]\n} ) => void;\n\n\n/**\n * Attributes used for the example preview.\n * Combines some PRO and basic attributes.\n * The PRO attributes will only be sent if PRO is active.\n */\nconst EXAMPLE = {\n\tapply_current_page_parent_styles_to_parent: true,\n\tapply_current_page_styles_to_parent: true,\n\tblock_style: true,\n\tborder: true,\n\tborder_color: '#333',\n\tbullet_style: 'none',\n\tchild_page_bg_color: '#666',\n\tchild_page_color: '#fff',\n\tcurrent_page_bg_color: '#282828',\n\tcurrent_page_color: '#0cc4c6',\n\tcurrent_page_font_weight: 'normal',\n\tcurrent_page_parent_bg_color: '#333',\n\tdisplay_all: true,\n\tgrandchild_page_bg_color: '#989898',\n\tgrandchild_page_color: '#282828',\n\tgrandchild_page_font_weight: 'bold',\n\tinclude_childless_parent: true,\n\tinclude_parent: true,\n\tlevels: 2,\n\tparent_page_bg_color: '#666',\n\tparent_page_color: '#fff',\n};\n\nexport const block = CONFIG.blocks.pages;\n\nexport const name = block.id;\n\nexport const settings: BlockSettings<Attr, '', LegacyWidget<Attr & { title: string }>> = {\n\ttitle: __( 'Advanced Sidebar - Pages', 'advanced-sidebar-menu' ),\n\ticon: 'welcome-widgets-menus',\n\tcategory: 'widgets',\n\texample: {\n\t\tattributes: EXAMPLE,\n\t},\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/legacy-widget' ],\n\t\t\t\tisMatch: ( {idBase, instance} ) => {\n\t\t\t\t\tif ( null === instance?.raw ) {\n\t\t\t\t\t\t// Can't transform if raw instance is not shown in REST API.\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn 'advanced_sidebar_menu' === idBase;\n\t\t\t\t},\n\t\t\t\ttransform: transformLegacyWidget<Attr>( name ),\n\t\t\t},\n\t\t],\n\t},\n\tattributes: block.attributes,\n\tsupports: block.supports,\n\tedit: props => (\n\t\t<Edit {...props} />\n\t),\n\tsave: () => null,\n\tapiVersion: 3,\n};\n","import {createBlock, CreateBlock} from '@wordpress/blocks';\nimport {CONFIG, Screen} from '../globals/config';\n\nexport type TransformLegacy = <Attr>( name: string ) => ( widgetValues: {\n\tinstance: { [ key: string ]: string | number | object | boolean }\n} ) => CreateBlock<Attr>;\n\n/**\n * Are we on one of the provided screens?\n */\nexport const isScreen = ( screens: Array<Screen> ): boolean => {\n\treturn screens.includes( CONFIG.currentScreen );\n};\n\n/**\n * Transform a legacy widget to the matching block.\n *\n */\nexport const transformLegacyWidget: TransformLegacy = <A>( name: string ) => ( {instance} ) => {\n\treturn createBlock<A>( name, translateLegacyWidget<A>( instance.raw ) );\n};\n\n/**\n * Translate the widget's \"checked\" to the boolean\n * version used in the block.\n *\n */\nconst translateLegacyWidget = <A>( settings ): A => {\n\tObject.entries( settings ).forEach( ( [ key, value ] ) => {\n\t\tif ( 'checked' === value ) {\n\t\t\tsettings[ key ] = true;\n\t\t}\n\t\tif ( 'object' === typeof value ) {\n\t\t\ttranslateLegacyWidget( settings[ key ] );\n\t\t}\n\t\t// Old widgets used to use \"0\" for some defaults.\n\t\tif ( '0' === value ) {\n\t\t\tdelete settings[ key ];\n\t\t}\n\t} );\n\treturn settings;\n};\n","import {autoloadBlocks} from '@lipemat/js-boilerplate-gutenberg';\nimport Preview from './blocks/Preview';\nimport {transformLegacyWidget} from './helpers';\nimport ErrorBoundary from '../components/ErrorBoundary';\n\n/**\n * Use our custom autoloader to automatically require,\n * register and add HMR support to Gutenberg related items.\n *\n * Will load from specified directory recursively.\n */\nexport default () => {\n\t// Load all blocks\n\tautoloadBlocks( () => require.context( './blocks', true, /block\\.tsx$/ ), module );\n\n\t// Expose helpers and Preview component to window, so we can use them in PRO.\n\twindow.ADVANCED_SIDEBAR_MENU.ErrorBoundary = ErrorBoundary;\n\twindow.ADVANCED_SIDEBAR_MENU.Preview = Preview;\n\twindow.ADVANCED_SIDEBAR_MENU.transformLegacyWidget = transformLegacyWidget;\n}\n","import {createRoot} from 'react-dom/client';\nimport TransformNotice, {DISMISS_KEY} from '../components/TransformNotice';\nimport {CONFIG} from '../globals/config';\n\n\nfunction renderTransformNotice() {\n\t// Only render on the block based widgets screen.\n\tif ( CONFIG.siteInfo.classicWidgets ) {\n\t\treturn;\n\t}\n\t// Don't render if the user has dismissed the notice.\n\tif ( '1' === localStorage.getItem( DISMISS_KEY ) ) {\n\t\treturn;\n\t}\n\tconst placeholders = document.querySelectorAll( '[data-js=\"advanced-sidebar-menu/transform-notice\"]' );\n\n\t/**\n\t * This is not a priority component, so it anything fails\n\t * we fail silently.\n\t */\n\ttry {\n\t\tplaceholders.forEach( placeholder => {\n\t\t\tconst root = createRoot( placeholder );\n\t\t\troot.render( <TransformNotice /> );\n\t\t} );\n\t} catch ( e ) {\n\t\tconsole.error( e );\n\t}\n}\n\n\n/**\n * Modern JS for legacy widgets on the widgets screen.\n *\n * @see resources/js/advanced-sidebar-menu.js for the legacy JS.\n */\nexport default () => {\n\t// Only load on the widgets screen.\n\tif ( '1' !== CONFIG.isWidgets ) {\n\t\treturn;\n\t}\n\t// Fire when each widget loads.\n\tjQuery( document ).on( 'widget-added', function() {\n\t\trenderTransformNotice();\n\t} );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"transform-notice__wrap__mq\"};","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"info-panel__wrap__k_\",\"button\":\"info-panel__button__Fg\"};","// extracted by mini-css-extract-plugin\nexport default {\"error\":\"edit__error__lZ\"};","// extracted by mini-css-extract-plugin\nexport default {\"placeholder\":\"preview__placeholder__HI\",\"error\":\"preview__error__Nl\",\"spin-wrap\":\"preview__spin-wrap__o0\",\"spinWrap\":\"preview__spin-wrap__o0\",\"spin\":\"preview__spin__Oj\",\"spin-content\":\"preview__spin-content__uC\",\"spinContent\":\"preview__spin-content__uC\"};","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n  exports.createRoot = m.createRoot;\n  exports.hydrateRoot = m.hydrateRoot;\n} else {\n  var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n  exports.createRoot = function(c, o) {\n    i.usingClientEntryPoint = true;\n    try {\n      return m.createRoot(c, o);\n    } finally {\n      i.usingClientEntryPoint = false;\n    }\n  };\n  exports.hydrateRoot = function(c, h, o) {\n    i.usingClientEntryPoint = true;\n    try {\n      return m.hydrateRoot(c, h, o);\n    } finally {\n      i.usingClientEntryPoint = false;\n    }\n  };\n}\n","/*! @license DOMPurify 3.1.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.6/LICENSE */\n\n(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n  typeof define === 'function' && define.amd ? define(factory) :\n  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.DOMPurify = factory());\n})(this, (function () { 'use strict';\n\n  const {\n    entries,\n    setPrototypeOf,\n    isFrozen,\n    getPrototypeOf,\n    getOwnPropertyDescriptor\n  } = Object;\n  let {\n    freeze,\n    seal,\n    create\n  } = Object; // eslint-disable-line import/no-mutable-exports\n  let {\n    apply,\n    construct\n  } = typeof Reflect !== 'undefined' && Reflect;\n  if (!freeze) {\n    freeze = function freeze(x) {\n      return x;\n    };\n  }\n  if (!seal) {\n    seal = function seal(x) {\n      return x;\n    };\n  }\n  if (!apply) {\n    apply = function apply(fun, thisValue, args) {\n      return fun.apply(thisValue, args);\n    };\n  }\n  if (!construct) {\n    construct = function construct(Func, args) {\n      return new Func(...args);\n    };\n  }\n  const arrayForEach = unapply(Array.prototype.forEach);\n  const arrayPop = unapply(Array.prototype.pop);\n  const arrayPush = unapply(Array.prototype.push);\n  const stringToLowerCase = unapply(String.prototype.toLowerCase);\n  const stringToString = unapply(String.prototype.toString);\n  const stringMatch = unapply(String.prototype.match);\n  const stringReplace = unapply(String.prototype.replace);\n  const stringIndexOf = unapply(String.prototype.indexOf);\n  const stringTrim = unapply(String.prototype.trim);\n  const objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\n  const regExpTest = unapply(RegExp.prototype.test);\n  const typeErrorCreate = unconstruct(TypeError);\n\n  /**\n   * Creates a new function that calls the given function with a specified thisArg and arguments.\n   *\n   * @param {Function} func - The function to be wrapped and called.\n   * @returns {Function} A new function that calls the given function with a specified thisArg and arguments.\n   */\n  function unapply(func) {\n    return function (thisArg) {\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n      return apply(func, thisArg, args);\n    };\n  }\n\n  /**\n   * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n   *\n   * @param {Function} func - The constructor function to be wrapped and called.\n   * @returns {Function} A new function that constructs an instance of the given constructor function with the provided arguments.\n   */\n  function unconstruct(func) {\n    return function () {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      return construct(func, args);\n    };\n  }\n\n  /**\n   * Add properties to a lookup table\n   *\n   * @param {Object} set - The set to which elements will be added.\n   * @param {Array} array - The array containing elements to be added to the set.\n   * @param {Function} transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n   * @returns {Object} The modified set with added elements.\n   */\n  function addToSet(set, array) {\n    let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n    if (setPrototypeOf) {\n      // Make 'in' and truthy checks like Boolean(set.constructor)\n      // independent of any properties defined on Object.prototype.\n      // Prevent prototype setters from intercepting set as a this value.\n      setPrototypeOf(set, null);\n    }\n    let l = array.length;\n    while (l--) {\n      let element = array[l];\n      if (typeof element === 'string') {\n        const lcElement = transformCaseFunc(element);\n        if (lcElement !== element) {\n          // Config presets (e.g. tags.js, attrs.js) are immutable.\n          if (!isFrozen(array)) {\n            array[l] = lcElement;\n          }\n          element = lcElement;\n        }\n      }\n      set[element] = true;\n    }\n    return set;\n  }\n\n  /**\n   * Clean up an array to harden against CSPP\n   *\n   * @param {Array} array - The array to be cleaned.\n   * @returns {Array} The cleaned version of the array\n   */\n  function cleanArray(array) {\n    for (let index = 0; index < array.length; index++) {\n      const isPropertyExist = objectHasOwnProperty(array, index);\n      if (!isPropertyExist) {\n        array[index] = null;\n      }\n    }\n    return array;\n  }\n\n  /**\n   * Shallow clone an object\n   *\n   * @param {Object} object - The object to be cloned.\n   * @returns {Object} A new object that copies the original.\n   */\n  function clone(object) {\n    const newObject = create(null);\n    for (const [property, value] of entries(object)) {\n      const isPropertyExist = objectHasOwnProperty(object, property);\n      if (isPropertyExist) {\n        if (Array.isArray(value)) {\n          newObject[property] = cleanArray(value);\n        } else if (value && typeof value === 'object' && value.constructor === Object) {\n          newObject[property] = clone(value);\n        } else {\n          newObject[property] = value;\n        }\n      }\n    }\n    return newObject;\n  }\n\n  /**\n   * This method automatically checks if the prop is function or getter and behaves accordingly.\n   *\n   * @param {Object} object - The object to look up the getter function in its prototype chain.\n   * @param {String} prop - The property name for which to find the getter function.\n   * @returns {Function} The getter function found in the prototype chain or a fallback function.\n   */\n  function lookupGetter(object, prop) {\n    while (object !== null) {\n      const desc = getOwnPropertyDescriptor(object, prop);\n      if (desc) {\n        if (desc.get) {\n          return unapply(desc.get);\n        }\n        if (typeof desc.value === 'function') {\n          return unapply(desc.value);\n        }\n      }\n      object = getPrototypeOf(object);\n    }\n    function fallbackValue() {\n      return null;\n    }\n    return fallbackValue;\n  }\n\n  const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n  // SVG\n  const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n  const svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\n  // List of SVG elements that are disallowed by default.\n  // We still need to know them so that we can do namespace\n  // checks properly in case one wants to add them to\n  // allow-list.\n  const svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n  const mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n\n  // Similarly to SVG, we want to know all MathML elements,\n  // even those that we disallow by default.\n  const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n  const text = freeze(['#text']);\n\n  const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);\n  const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n  const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n  const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n  // eslint-disable-next-line unicorn/better-regex\n  const MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n  const ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\n  const TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\n  const DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n  const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n  const IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n  );\n  const IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n  const ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n  );\n  const DOCTYPE_NAME = seal(/^html$/i);\n  const CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\n  var EXPRESSIONS = /*#__PURE__*/Object.freeze({\n    __proto__: null,\n    MUSTACHE_EXPR: MUSTACHE_EXPR,\n    ERB_EXPR: ERB_EXPR,\n    TMPLIT_EXPR: TMPLIT_EXPR,\n    DATA_ATTR: DATA_ATTR,\n    ARIA_ATTR: ARIA_ATTR,\n    IS_ALLOWED_URI: IS_ALLOWED_URI,\n    IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n    ATTR_WHITESPACE: ATTR_WHITESPACE,\n    DOCTYPE_NAME: DOCTYPE_NAME,\n    CUSTOM_ELEMENT: CUSTOM_ELEMENT\n  });\n\n  // https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n  const NODE_TYPE = {\n    element: 1,\n    attribute: 2,\n    text: 3,\n    cdataSection: 4,\n    entityReference: 5,\n    // Deprecated\n    entityNode: 6,\n    // Deprecated\n    progressingInstruction: 7,\n    comment: 8,\n    document: 9,\n    documentType: 10,\n    documentFragment: 11,\n    notation: 12 // Deprecated\n  };\n  const getGlobal = function getGlobal() {\n    return typeof window === 'undefined' ? null : window;\n  };\n\n  /**\n   * Creates a no-op policy for internal use only.\n   * Don't export this function outside this module!\n   * @param {TrustedTypePolicyFactory} trustedTypes The policy factory.\n   * @param {HTMLScriptElement} purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n   * @return {TrustedTypePolicy} The policy created (or null, if Trusted Types\n   * are not supported or creating the policy failed).\n   */\n  const _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n    if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n      return null;\n    }\n\n    // Allow the callers to control the unique policy name\n    // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n    // Policy creation with duplicate names throws in Trusted Types.\n    let suffix = null;\n    const ATTR_NAME = 'data-tt-policy-suffix';\n    if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n      suffix = purifyHostElement.getAttribute(ATTR_NAME);\n    }\n    const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n    try {\n      return trustedTypes.createPolicy(policyName, {\n        createHTML(html) {\n          return html;\n        },\n        createScriptURL(scriptUrl) {\n          return scriptUrl;\n        }\n      });\n    } catch (_) {\n      // Policy creation failed (most likely another DOMPurify script has\n      // already run). Skip creating the policy, as this will only cause errors\n      // if TT are enforced.\n      console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n      return null;\n    }\n  };\n  function createDOMPurify() {\n    let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n    const DOMPurify = root => createDOMPurify(root);\n\n    /**\n     * Version label, exposed for easier checks\n     * if DOMPurify is up to date or not\n     */\n    DOMPurify.version = '3.1.6';\n\n    /**\n     * Array of elements that DOMPurify removed during sanitation.\n     * Empty if nothing was removed.\n     */\n    DOMPurify.removed = [];\n    if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document) {\n      // Not running in a browser, provide a factory function\n      // so that you can pass your own Window\n      DOMPurify.isSupported = false;\n      return DOMPurify;\n    }\n    let {\n      document\n    } = window;\n    const originalDocument = document;\n    const currentScript = originalDocument.currentScript;\n    const {\n      DocumentFragment,\n      HTMLTemplateElement,\n      Node,\n      Element,\n      NodeFilter,\n      NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n      HTMLFormElement,\n      DOMParser,\n      trustedTypes\n    } = window;\n    const ElementPrototype = Element.prototype;\n    const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n    const remove = lookupGetter(ElementPrototype, 'remove');\n    const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n    const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n    const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n    // As per issue #47, the web-components registry is inherited by a\n    // new document created via createHTMLDocument. As per the spec\n    // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n    // a new empty registry is used when creating a template contents owner\n    // document, so we use that as our parent document to ensure nothing\n    // is inherited.\n    if (typeof HTMLTemplateElement === 'function') {\n      const template = document.createElement('template');\n      if (template.content && template.content.ownerDocument) {\n        document = template.content.ownerDocument;\n      }\n    }\n    let trustedTypesPolicy;\n    let emptyHTML = '';\n    const {\n      implementation,\n      createNodeIterator,\n      createDocumentFragment,\n      getElementsByTagName\n    } = document;\n    const {\n      importNode\n    } = originalDocument;\n    let hooks = {};\n\n    /**\n     * Expose whether this browser supports running the full DOMPurify.\n     */\n    DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n    const {\n      MUSTACHE_EXPR,\n      ERB_EXPR,\n      TMPLIT_EXPR,\n      DATA_ATTR,\n      ARIA_ATTR,\n      IS_SCRIPT_OR_DATA,\n      ATTR_WHITESPACE,\n      CUSTOM_ELEMENT\n    } = EXPRESSIONS;\n    let {\n      IS_ALLOWED_URI: IS_ALLOWED_URI$1\n    } = EXPRESSIONS;\n\n    /**\n     * We consider the elements and attributes below to be safe. Ideally\n     * don't add any new ones but feel free to remove unwanted ones.\n     */\n\n    /* allowed element names */\n    let ALLOWED_TAGS = null;\n    const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n\n    /* Allowed attribute names */\n    let ALLOWED_ATTR = null;\n    const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n\n    /*\n     * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n     * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n     * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n     * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n     */\n    let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n      tagNameCheck: {\n        writable: true,\n        configurable: false,\n        enumerable: true,\n        value: null\n      },\n      attributeNameCheck: {\n        writable: true,\n        configurable: false,\n        enumerable: true,\n        value: null\n      },\n      allowCustomizedBuiltInElements: {\n        writable: true,\n        configurable: false,\n        enumerable: true,\n        value: false\n      }\n    }));\n\n    /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n    let FORBID_TAGS = null;\n\n    /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n    let FORBID_ATTR = null;\n\n    /* Decide if ARIA attributes are okay */\n    let ALLOW_ARIA_ATTR = true;\n\n    /* Decide if custom data attributes are okay */\n    let ALLOW_DATA_ATTR = true;\n\n    /* Decide if unknown protocols are okay */\n    let ALLOW_UNKNOWN_PROTOCOLS = false;\n\n    /* Decide if self-closing tags in attributes are allowed.\n     * Usually removed due to a mXSS issue in jQuery 3.0 */\n    let ALLOW_SELF_CLOSE_IN_ATTR = true;\n\n    /* Output should be safe for common template engines.\n     * This means, DOMPurify removes data attributes, mustaches and ERB\n     */\n    let SAFE_FOR_TEMPLATES = false;\n\n    /* Output should be safe even for XML used within HTML and alike.\n     * This means, DOMPurify removes comments when containing risky content.\n     */\n    let SAFE_FOR_XML = true;\n\n    /* Decide if document with <html>... should be returned */\n    let WHOLE_DOCUMENT = false;\n\n    /* Track whether config is already set on this instance of DOMPurify. */\n    let SET_CONFIG = false;\n\n    /* Decide if all elements (e.g. style, script) must be children of\n     * document.body. By default, browsers might move them to document.head */\n    let FORCE_BODY = false;\n\n    /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n     * string (or a TrustedHTML object if Trusted Types are supported).\n     * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n     */\n    let RETURN_DOM = false;\n\n    /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n     * string  (or a TrustedHTML object if Trusted Types are supported) */\n    let RETURN_DOM_FRAGMENT = false;\n\n    /* Try to return a Trusted Type object instead of a string, return a string in\n     * case Trusted Types are not supported  */\n    let RETURN_TRUSTED_TYPE = false;\n\n    /* Output should be free from DOM clobbering attacks?\n     * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n     */\n    let SANITIZE_DOM = true;\n\n    /* Achieve full DOM Clobbering protection by isolating the namespace of named\n     * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n     *\n     * HTML/DOM spec rules that enable DOM Clobbering:\n     *   - Named Access on Window (§7.3.3)\n     *   - DOM Tree Accessors (§3.1.5)\n     *   - Form Element Parent-Child Relations (§4.10.3)\n     *   - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n     *   - HTMLCollection (§4.2.10.2)\n     *\n     * Namespace isolation is implemented by prefixing `id` and `name` attributes\n     * with a constant string, i.e., `user-content-`\n     */\n    let SANITIZE_NAMED_PROPS = false;\n    const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n\n    /* Keep element content when removing element? */\n    let KEEP_CONTENT = true;\n\n    /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n     * of importing it into a new Document and returning a sanitized copy */\n    let IN_PLACE = false;\n\n    /* Allow usage of profiles like html, svg and mathMl */\n    let USE_PROFILES = {};\n\n    /* Tags to ignore content of when KEEP_CONTENT is true */\n    let FORBID_CONTENTS = null;\n    const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n\n    /* Tags that are safe for data: URIs */\n    let DATA_URI_TAGS = null;\n    const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n\n    /* Attributes safe for values like \"javascript:\" */\n    let URI_SAFE_ATTRIBUTES = null;\n    const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n    const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n    const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n    const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n    /* Document namespace */\n    let NAMESPACE = HTML_NAMESPACE;\n    let IS_EMPTY_INPUT = false;\n\n    /* Allowed XHTML+XML namespaces */\n    let ALLOWED_NAMESPACES = null;\n    const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n\n    /* Parsing of strict XHTML documents */\n    let PARSER_MEDIA_TYPE = null;\n    const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n    const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n    let transformCaseFunc = null;\n\n    /* Keep a reference to config to pass to hooks */\n    let CONFIG = null;\n\n    /* Ideally, do not touch anything below this line */\n    /* ______________________________________________ */\n\n    const formElement = document.createElement('form');\n    const isRegexOrFunction = function isRegexOrFunction(testValue) {\n      return testValue instanceof RegExp || testValue instanceof Function;\n    };\n\n    /**\n     * _parseConfig\n     *\n     * @param  {Object} cfg optional config literal\n     */\n    // eslint-disable-next-line complexity\n    const _parseConfig = function _parseConfig() {\n      let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      if (CONFIG && CONFIG === cfg) {\n        return;\n      }\n\n      /* Shield configuration object from tampering */\n      if (!cfg || typeof cfg !== 'object') {\n        cfg = {};\n      }\n\n      /* Shield configuration object from prototype pollution */\n      cfg = clone(cfg);\n      PARSER_MEDIA_TYPE =\n      // eslint-disable-next-line unicorn/prefer-includes\n      SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n\n      // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n      transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n\n      /* Set configuration parameters */\n      ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n      ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n      ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n      URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES),\n      // eslint-disable-line indent\n      cfg.ADD_URI_SAFE_ATTR,\n      // eslint-disable-line indent\n      transformCaseFunc // eslint-disable-line indent\n      ) // eslint-disable-line indent\n      : DEFAULT_URI_SAFE_ATTRIBUTES;\n      DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS),\n      // eslint-disable-line indent\n      cfg.ADD_DATA_URI_TAGS,\n      // eslint-disable-line indent\n      transformCaseFunc // eslint-disable-line indent\n      ) // eslint-disable-line indent\n      : DEFAULT_DATA_URI_TAGS;\n      FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n      FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n      FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n      USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;\n      ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n      ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n      ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n      ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n      SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n      SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n      WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n      RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n      RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n      RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n      FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n      SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n      SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n      KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n      IN_PLACE = cfg.IN_PLACE || false; // Default false\n      IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n      NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n      CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n      if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n        CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n      }\n      if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n        CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n      }\n      if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n        CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n      }\n      if (SAFE_FOR_TEMPLATES) {\n        ALLOW_DATA_ATTR = false;\n      }\n      if (RETURN_DOM_FRAGMENT) {\n        RETURN_DOM = true;\n      }\n\n      /* Parse profile info */\n      if (USE_PROFILES) {\n        ALLOWED_TAGS = addToSet({}, text);\n        ALLOWED_ATTR = [];\n        if (USE_PROFILES.html === true) {\n          addToSet(ALLOWED_TAGS, html$1);\n          addToSet(ALLOWED_ATTR, html);\n        }\n        if (USE_PROFILES.svg === true) {\n          addToSet(ALLOWED_TAGS, svg$1);\n          addToSet(ALLOWED_ATTR, svg);\n          addToSet(ALLOWED_ATTR, xml);\n        }\n        if (USE_PROFILES.svgFilters === true) {\n          addToSet(ALLOWED_TAGS, svgFilters);\n          addToSet(ALLOWED_ATTR, svg);\n          addToSet(ALLOWED_ATTR, xml);\n        }\n        if (USE_PROFILES.mathMl === true) {\n          addToSet(ALLOWED_TAGS, mathMl$1);\n          addToSet(ALLOWED_ATTR, mathMl);\n          addToSet(ALLOWED_ATTR, xml);\n        }\n      }\n\n      /* Merge configuration parameters */\n      if (cfg.ADD_TAGS) {\n        if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n          ALLOWED_TAGS = clone(ALLOWED_TAGS);\n        }\n        addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n      }\n      if (cfg.ADD_ATTR) {\n        if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n          ALLOWED_ATTR = clone(ALLOWED_ATTR);\n        }\n        addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n      }\n      if (cfg.ADD_URI_SAFE_ATTR) {\n        addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n      }\n      if (cfg.FORBID_CONTENTS) {\n        if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n          FORBID_CONTENTS = clone(FORBID_CONTENTS);\n        }\n        addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n      }\n\n      /* Add #text in case KEEP_CONTENT is set to true */\n      if (KEEP_CONTENT) {\n        ALLOWED_TAGS['#text'] = true;\n      }\n\n      /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n      if (WHOLE_DOCUMENT) {\n        addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n      }\n\n      /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n      if (ALLOWED_TAGS.table) {\n        addToSet(ALLOWED_TAGS, ['tbody']);\n        delete FORBID_TAGS.tbody;\n      }\n      if (cfg.TRUSTED_TYPES_POLICY) {\n        if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n          throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n        }\n        if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n          throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n        }\n\n        // Overwrite existing TrustedTypes policy.\n        trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n\n        // Sign local variables required by `sanitize`.\n        emptyHTML = trustedTypesPolicy.createHTML('');\n      } else {\n        // Uninitialized policy, attempt to initialize the internal dompurify policy.\n        if (trustedTypesPolicy === undefined) {\n          trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n        }\n\n        // If creating the internal policy succeeded sign internal variables.\n        if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n          emptyHTML = trustedTypesPolicy.createHTML('');\n        }\n      }\n\n      // Prevent further manipulation of configuration.\n      // Not available in IE8, Safari 5, etc.\n      if (freeze) {\n        freeze(cfg);\n      }\n      CONFIG = cfg;\n    };\n    const MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n    const HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'annotation-xml']);\n\n    // Certain elements are allowed in both SVG and HTML\n    // namespace. We need to specify them explicitly\n    // so that they don't get erroneously deleted from\n    // HTML namespace.\n    const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n\n    /* Keep track of all possible SVG and MathML tags\n     * so that we can perform the namespace checks\n     * correctly. */\n    const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n    const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n\n    /**\n     * @param  {Element} element a DOM element whose namespace is being checked\n     * @returns {boolean} Return false if the element has a\n     *  namespace that a spec-compliant parser would never\n     *  return. Return true otherwise.\n     */\n    const _checkValidNamespace = function _checkValidNamespace(element) {\n      let parent = getParentNode(element);\n\n      // In JSDOM, if we're inside shadow DOM, then parentNode\n      // can be null. We just simulate parent in this case.\n      if (!parent || !parent.tagName) {\n        parent = {\n          namespaceURI: NAMESPACE,\n          tagName: 'template'\n        };\n      }\n      const tagName = stringToLowerCase(element.tagName);\n      const parentTagName = stringToLowerCase(parent.tagName);\n      if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n        return false;\n      }\n      if (element.namespaceURI === SVG_NAMESPACE) {\n        // The only way to switch from HTML namespace to SVG\n        // is via <svg>. If it happens via any other tag, then\n        // it should be killed.\n        if (parent.namespaceURI === HTML_NAMESPACE) {\n          return tagName === 'svg';\n        }\n\n        // The only way to switch from MathML to SVG is via`\n        // svg if parent is either <annotation-xml> or MathML\n        // text integration points.\n        if (parent.namespaceURI === MATHML_NAMESPACE) {\n          return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n        }\n\n        // We only allow elements that are defined in SVG\n        // spec. All others are disallowed in SVG namespace.\n        return Boolean(ALL_SVG_TAGS[tagName]);\n      }\n      if (element.namespaceURI === MATHML_NAMESPACE) {\n        // The only way to switch from HTML namespace to MathML\n        // is via <math>. If it happens via any other tag, then\n        // it should be killed.\n        if (parent.namespaceURI === HTML_NAMESPACE) {\n          return tagName === 'math';\n        }\n\n        // The only way to switch from SVG to MathML is via\n        // <math> and HTML integration points\n        if (parent.namespaceURI === SVG_NAMESPACE) {\n          return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n        }\n\n        // We only allow elements that are defined in MathML\n        // spec. All others are disallowed in MathML namespace.\n        return Boolean(ALL_MATHML_TAGS[tagName]);\n      }\n      if (element.namespaceURI === HTML_NAMESPACE) {\n        // The only way to switch from SVG to HTML is via\n        // HTML integration points, and from MathML to HTML\n        // is via MathML text integration points\n        if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n          return false;\n        }\n        if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n          return false;\n        }\n\n        // We disallow tags that are specific for MathML\n        // or SVG and should never appear in HTML namespace\n        return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n      }\n\n      // For XHTML and XML documents that support custom namespaces\n      if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n        return true;\n      }\n\n      // The code should never reach this place (this means\n      // that the element somehow got namespace that is not\n      // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n      // Return false just in case.\n      return false;\n    };\n\n    /**\n     * _forceRemove\n     *\n     * @param  {Node} node a DOM node\n     */\n    const _forceRemove = function _forceRemove(node) {\n      arrayPush(DOMPurify.removed, {\n        element: node\n      });\n      try {\n        // eslint-disable-next-line unicorn/prefer-dom-node-remove\n        getParentNode(node).removeChild(node);\n      } catch (_) {\n        remove(node);\n      }\n    };\n\n    /**\n     * _removeAttribute\n     *\n     * @param  {String} name an Attribute name\n     * @param  {Node} node a DOM node\n     */\n    const _removeAttribute = function _removeAttribute(name, node) {\n      try {\n        arrayPush(DOMPurify.removed, {\n          attribute: node.getAttributeNode(name),\n          from: node\n        });\n      } catch (_) {\n        arrayPush(DOMPurify.removed, {\n          attribute: null,\n          from: node\n        });\n      }\n      node.removeAttribute(name);\n\n      // We void attribute values for unremovable \"is\"\" attributes\n      if (name === 'is' && !ALLOWED_ATTR[name]) {\n        if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n          try {\n            _forceRemove(node);\n          } catch (_) {}\n        } else {\n          try {\n            node.setAttribute(name, '');\n          } catch (_) {}\n        }\n      }\n    };\n\n    /**\n     * _initDocument\n     *\n     * @param  {String} dirty a string of dirty markup\n     * @return {Document} a DOM, filled with the dirty markup\n     */\n    const _initDocument = function _initDocument(dirty) {\n      /* Create a HTML document */\n      let doc = null;\n      let leadingWhitespace = null;\n      if (FORCE_BODY) {\n        dirty = '<remove></remove>' + dirty;\n      } else {\n        /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n        const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n        leadingWhitespace = matches && matches[0];\n      }\n      if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n        // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n        dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n      }\n      const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n      /*\n       * Use the DOMParser API by default, fallback later if needs be\n       * DOMParser not work for svg when has multiple root element.\n       */\n      if (NAMESPACE === HTML_NAMESPACE) {\n        try {\n          doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n        } catch (_) {}\n      }\n\n      /* Use createHTMLDocument in case DOMParser is not available */\n      if (!doc || !doc.documentElement) {\n        doc = implementation.createDocument(NAMESPACE, 'template', null);\n        try {\n          doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n        } catch (_) {\n          // Syntax error if dirtyPayload is invalid xml\n        }\n      }\n      const body = doc.body || doc.documentElement;\n      if (dirty && leadingWhitespace) {\n        body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n      }\n\n      /* Work on whole document or just its body */\n      if (NAMESPACE === HTML_NAMESPACE) {\n        return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n      }\n      return WHOLE_DOCUMENT ? doc.documentElement : body;\n    };\n\n    /**\n     * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n     *\n     * @param  {Node} root The root element or node to start traversing on.\n     * @return {NodeIterator} The created NodeIterator\n     */\n    const _createNodeIterator = function _createNodeIterator(root) {\n      return createNodeIterator.call(root.ownerDocument || root, root,\n      // eslint-disable-next-line no-bitwise\n      NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n    };\n\n    /**\n     * _isClobbered\n     *\n     * @param  {Node} elm element to check for clobbering attacks\n     * @return {Boolean} true if clobbered, false if safe\n     */\n    const _isClobbered = function _isClobbered(elm) {\n      return elm instanceof HTMLFormElement && (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function' || typeof elm.hasChildNodes !== 'function');\n    };\n\n    /**\n     * Checks whether the given object is a DOM node.\n     *\n     * @param  {Node} object object to check whether it's a DOM node\n     * @return {Boolean} true is object is a DOM node\n     */\n    const _isNode = function _isNode(object) {\n      return typeof Node === 'function' && object instanceof Node;\n    };\n\n    /**\n     * _executeHook\n     * Execute user configurable hooks\n     *\n     * @param  {String} entryPoint  Name of the hook's entry point\n     * @param  {Node} currentNode node to work on with the hook\n     * @param  {Object} data additional hook parameters\n     */\n    const _executeHook = function _executeHook(entryPoint, currentNode, data) {\n      if (!hooks[entryPoint]) {\n        return;\n      }\n      arrayForEach(hooks[entryPoint], hook => {\n        hook.call(DOMPurify, currentNode, data, CONFIG);\n      });\n    };\n\n    /**\n     * _sanitizeElements\n     *\n     * @protect nodeName\n     * @protect textContent\n     * @protect removeChild\n     *\n     * @param   {Node} currentNode to check for permission to exist\n     * @return  {Boolean} true if node was killed, false if left alive\n     */\n    const _sanitizeElements = function _sanitizeElements(currentNode) {\n      let content = null;\n\n      /* Execute a hook if present */\n      _executeHook('beforeSanitizeElements', currentNode, null);\n\n      /* Check if element is clobbered or can clobber */\n      if (_isClobbered(currentNode)) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Now let's check the element's type and name */\n      const tagName = transformCaseFunc(currentNode.nodeName);\n\n      /* Execute a hook if present */\n      _executeHook('uponSanitizeElement', currentNode, {\n        tagName,\n        allowedTags: ALLOWED_TAGS\n      });\n\n      /* Detect mXSS attempts abusing namespace confusion */\n      if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Remove any occurrence of processing instructions */\n      if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Remove any kind of possibly harmful comments */\n      if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\\w]/g, currentNode.data)) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Remove element if anything forbids its presence */\n      if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n        /* Check if we have a custom element to handle */\n        if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n          if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n            return false;\n          }\n          if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n            return false;\n          }\n        }\n\n        /* Keep content except for bad-listed elements */\n        if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n          const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n          const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n          if (childNodes && parentNode) {\n            const childCount = childNodes.length;\n            for (let i = childCount - 1; i >= 0; --i) {\n              const childClone = cloneNode(childNodes[i], true);\n              childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n              parentNode.insertBefore(childClone, getNextSibling(currentNode));\n            }\n          }\n        }\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Check whether element has a valid namespace */\n      if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Make sure that older browsers don't get fallback-tag mXSS */\n      if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n        _forceRemove(currentNode);\n        return true;\n      }\n\n      /* Sanitize element content to be template-safe */\n      if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n        /* Get the element's text content */\n        content = currentNode.textContent;\n        arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n          content = stringReplace(content, expr, ' ');\n        });\n        if (currentNode.textContent !== content) {\n          arrayPush(DOMPurify.removed, {\n            element: currentNode.cloneNode()\n          });\n          currentNode.textContent = content;\n        }\n      }\n\n      /* Execute a hook if present */\n      _executeHook('afterSanitizeElements', currentNode, null);\n      return false;\n    };\n\n    /**\n     * _isValidAttribute\n     *\n     * @param  {string} lcTag Lowercase tag name of containing element.\n     * @param  {string} lcName Lowercase attribute name.\n     * @param  {string} value Attribute value.\n     * @return {Boolean} Returns true if `value` is valid, otherwise false.\n     */\n    // eslint-disable-next-line complexity\n    const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n      /* Make sure attribute cannot clobber */\n      if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n        return false;\n      }\n\n      /* Allow valid data-* attributes: At least one character after \"-\"\n          (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n          XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n          We don't need to check the value; it's always URI safe. */\n      if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n        if (\n        // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n        // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n        // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n        _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) ||\n        // Alternative, second condition checks if it's an `is`-attribute, AND\n        // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n        lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n          return false;\n        }\n        /* Check value is safe. First, is attr inert? If so, is safe */\n      } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {\n        return false;\n      } else ;\n      return true;\n    };\n\n    /**\n     * _isBasicCustomElement\n     * checks if at least one dash is included in tagName, and it's not the first char\n     * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n     *\n     * @param {string} tagName name of the tag of the node to sanitize\n     * @returns {boolean} Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n     */\n    const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n      return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n    };\n\n    /**\n     * _sanitizeAttributes\n     *\n     * @protect attributes\n     * @protect nodeName\n     * @protect removeAttribute\n     * @protect setAttribute\n     *\n     * @param  {Node} currentNode to sanitize\n     */\n    const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n      /* Execute a hook if present */\n      _executeHook('beforeSanitizeAttributes', currentNode, null);\n      const {\n        attributes\n      } = currentNode;\n\n      /* Check if we have attributes; if not we might have a text node */\n      if (!attributes) {\n        return;\n      }\n      const hookEvent = {\n        attrName: '',\n        attrValue: '',\n        keepAttr: true,\n        allowedAttributes: ALLOWED_ATTR\n      };\n      let l = attributes.length;\n\n      /* Go backwards over all attributes; safely remove bad ones */\n      while (l--) {\n        const attr = attributes[l];\n        const {\n          name,\n          namespaceURI,\n          value: attrValue\n        } = attr;\n        const lcName = transformCaseFunc(name);\n        let value = name === 'value' ? attrValue : stringTrim(attrValue);\n\n        /* Execute a hook if present */\n        hookEvent.attrName = lcName;\n        hookEvent.attrValue = value;\n        hookEvent.keepAttr = true;\n        hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n        _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n        value = hookEvent.attrValue;\n\n        /* Work around a security issue with comments inside attributes */\n        if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title)/i, value)) {\n          _removeAttribute(name, currentNode);\n          continue;\n        }\n\n        /* Did the hooks approve of the attribute? */\n        if (hookEvent.forceKeepAttr) {\n          continue;\n        }\n\n        /* Remove attribute */\n        _removeAttribute(name, currentNode);\n\n        /* Did the hooks approve of the attribute? */\n        if (!hookEvent.keepAttr) {\n          continue;\n        }\n\n        /* Work around a security issue in jQuery 3.0 */\n        if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n          _removeAttribute(name, currentNode);\n          continue;\n        }\n\n        /* Sanitize attribute content to be template-safe */\n        if (SAFE_FOR_TEMPLATES) {\n          arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n            value = stringReplace(value, expr, ' ');\n          });\n        }\n\n        /* Is `value` valid for this attribute? */\n        const lcTag = transformCaseFunc(currentNode.nodeName);\n        if (!_isValidAttribute(lcTag, lcName, value)) {\n          continue;\n        }\n\n        /* Full DOM Clobbering protection via namespace isolation,\n         * Prefix id and name attributes with `user-content-`\n         */\n        if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n          // Remove the attribute with this value\n          _removeAttribute(name, currentNode);\n\n          // Prefix the value and later re-create the attribute with the sanitized value\n          value = SANITIZE_NAMED_PROPS_PREFIX + value;\n        }\n\n        /* Handle attributes that require Trusted Types */\n        if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n          if (namespaceURI) ; else {\n            switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n              case 'TrustedHTML':\n                {\n                  value = trustedTypesPolicy.createHTML(value);\n                  break;\n                }\n              case 'TrustedScriptURL':\n                {\n                  value = trustedTypesPolicy.createScriptURL(value);\n                  break;\n                }\n            }\n          }\n        }\n\n        /* Handle invalid data-* attribute set by try-catching it */\n        try {\n          if (namespaceURI) {\n            currentNode.setAttributeNS(namespaceURI, name, value);\n          } else {\n            /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n            currentNode.setAttribute(name, value);\n          }\n          if (_isClobbered(currentNode)) {\n            _forceRemove(currentNode);\n          } else {\n            arrayPop(DOMPurify.removed);\n          }\n        } catch (_) {}\n      }\n\n      /* Execute a hook if present */\n      _executeHook('afterSanitizeAttributes', currentNode, null);\n    };\n\n    /**\n     * _sanitizeShadowDOM\n     *\n     * @param  {DocumentFragment} fragment to iterate over recursively\n     */\n    const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n      let shadowNode = null;\n      const shadowIterator = _createNodeIterator(fragment);\n\n      /* Execute a hook if present */\n      _executeHook('beforeSanitizeShadowDOM', fragment, null);\n      while (shadowNode = shadowIterator.nextNode()) {\n        /* Execute a hook if present */\n        _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n        /* Sanitize tags and elements */\n        if (_sanitizeElements(shadowNode)) {\n          continue;\n        }\n\n        /* Deep shadow DOM detected */\n        if (shadowNode.content instanceof DocumentFragment) {\n          _sanitizeShadowDOM(shadowNode.content);\n        }\n\n        /* Check attributes, sanitize if necessary */\n        _sanitizeAttributes(shadowNode);\n      }\n\n      /* Execute a hook if present */\n      _executeHook('afterSanitizeShadowDOM', fragment, null);\n    };\n\n    /**\n     * Sanitize\n     * Public method providing core sanitation functionality\n     *\n     * @param {String|Node} dirty string or DOM node\n     * @param {Object} cfg object\n     */\n    // eslint-disable-next-line complexity\n    DOMPurify.sanitize = function (dirty) {\n      let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      let body = null;\n      let importedNode = null;\n      let currentNode = null;\n      let returnNode = null;\n      /* Make sure we have a string to sanitize.\n        DO NOT return early, as this will return the wrong type if\n        the user has requested a DOM object rather than a string */\n      IS_EMPTY_INPUT = !dirty;\n      if (IS_EMPTY_INPUT) {\n        dirty = '<!-->';\n      }\n\n      /* Stringify, in case dirty is an object */\n      if (typeof dirty !== 'string' && !_isNode(dirty)) {\n        if (typeof dirty.toString === 'function') {\n          dirty = dirty.toString();\n          if (typeof dirty !== 'string') {\n            throw typeErrorCreate('dirty is not a string, aborting');\n          }\n        } else {\n          throw typeErrorCreate('toString is not a function');\n        }\n      }\n\n      /* Return dirty HTML if DOMPurify cannot run */\n      if (!DOMPurify.isSupported) {\n        return dirty;\n      }\n\n      /* Assign config vars */\n      if (!SET_CONFIG) {\n        _parseConfig(cfg);\n      }\n\n      /* Clean up removed elements */\n      DOMPurify.removed = [];\n\n      /* Check if dirty is correctly typed for IN_PLACE */\n      if (typeof dirty === 'string') {\n        IN_PLACE = false;\n      }\n      if (IN_PLACE) {\n        /* Do some early pre-sanitization to avoid unsafe root nodes */\n        if (dirty.nodeName) {\n          const tagName = transformCaseFunc(dirty.nodeName);\n          if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n            throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n          }\n        }\n      } else if (dirty instanceof Node) {\n        /* If dirty is a DOM element, append to an empty document to avoid\n           elements being stripped by the parser */\n        body = _initDocument('<!---->');\n        importedNode = body.ownerDocument.importNode(dirty, true);\n        if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n          /* Node is already a body, use as is */\n          body = importedNode;\n        } else if (importedNode.nodeName === 'HTML') {\n          body = importedNode;\n        } else {\n          // eslint-disable-next-line unicorn/prefer-dom-node-append\n          body.appendChild(importedNode);\n        }\n      } else {\n        /* Exit directly if we have nothing to do */\n        if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n        // eslint-disable-next-line unicorn/prefer-includes\n        dirty.indexOf('<') === -1) {\n          return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n        }\n\n        /* Initialize the document to work on */\n        body = _initDocument(dirty);\n\n        /* Check we have a DOM node from the data */\n        if (!body) {\n          return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n        }\n      }\n\n      /* Remove first element node (ours) if FORCE_BODY is set */\n      if (body && FORCE_BODY) {\n        _forceRemove(body.firstChild);\n      }\n\n      /* Get node iterator */\n      const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n\n      /* Now start iterating over the created document */\n      while (currentNode = nodeIterator.nextNode()) {\n        /* Sanitize tags and elements */\n        if (_sanitizeElements(currentNode)) {\n          continue;\n        }\n\n        /* Shadow DOM detected, sanitize it */\n        if (currentNode.content instanceof DocumentFragment) {\n          _sanitizeShadowDOM(currentNode.content);\n        }\n\n        /* Check attributes, sanitize if necessary */\n        _sanitizeAttributes(currentNode);\n      }\n\n      /* If we sanitized `dirty` in-place, return it. */\n      if (IN_PLACE) {\n        return dirty;\n      }\n\n      /* Return sanitized string or DOM */\n      if (RETURN_DOM) {\n        if (RETURN_DOM_FRAGMENT) {\n          returnNode = createDocumentFragment.call(body.ownerDocument);\n          while (body.firstChild) {\n            // eslint-disable-next-line unicorn/prefer-dom-node-append\n            returnNode.appendChild(body.firstChild);\n          }\n        } else {\n          returnNode = body;\n        }\n        if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n          /*\n            AdoptNode() is not used because internal state is not reset\n            (e.g. the past names map of a HTMLFormElement), this is safe\n            in theory but we would rather not risk another attack vector.\n            The state that is cloned by importNode() is explicitly defined\n            by the specs.\n          */\n          returnNode = importNode.call(originalDocument, returnNode, true);\n        }\n        return returnNode;\n      }\n      let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n      /* Serialize doctype if allowed */\n      if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n        serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n      }\n\n      /* Sanitize final string template-safe */\n      if (SAFE_FOR_TEMPLATES) {\n        arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n          serializedHTML = stringReplace(serializedHTML, expr, ' ');\n        });\n      }\n      return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n    };\n\n    /**\n     * Public method to set the configuration once\n     * setConfig\n     *\n     * @param {Object} cfg configuration object\n     */\n    DOMPurify.setConfig = function () {\n      let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      _parseConfig(cfg);\n      SET_CONFIG = true;\n    };\n\n    /**\n     * Public method to remove the configuration\n     * clearConfig\n     *\n     */\n    DOMPurify.clearConfig = function () {\n      CONFIG = null;\n      SET_CONFIG = false;\n    };\n\n    /**\n     * Public method to check if an attribute value is valid.\n     * Uses last set config, if any. Otherwise, uses config defaults.\n     * isValidAttribute\n     *\n     * @param  {String} tag Tag name of containing element.\n     * @param  {String} attr Attribute name.\n     * @param  {String} value Attribute value.\n     * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n     */\n    DOMPurify.isValidAttribute = function (tag, attr, value) {\n      /* Initialize shared config vars if necessary. */\n      if (!CONFIG) {\n        _parseConfig({});\n      }\n      const lcTag = transformCaseFunc(tag);\n      const lcName = transformCaseFunc(attr);\n      return _isValidAttribute(lcTag, lcName, value);\n    };\n\n    /**\n     * AddHook\n     * Public method to add DOMPurify hooks\n     *\n     * @param {String} entryPoint entry point for the hook to add\n     * @param {Function} hookFunction function to execute\n     */\n    DOMPurify.addHook = function (entryPoint, hookFunction) {\n      if (typeof hookFunction !== 'function') {\n        return;\n      }\n      hooks[entryPoint] = hooks[entryPoint] || [];\n      arrayPush(hooks[entryPoint], hookFunction);\n    };\n\n    /**\n     * RemoveHook\n     * Public method to remove a DOMPurify hook at a given entryPoint\n     * (pops it from the stack of hooks if more are present)\n     *\n     * @param {String} entryPoint entry point for the hook to remove\n     * @return {Function} removed(popped) hook\n     */\n    DOMPurify.removeHook = function (entryPoint) {\n      if (hooks[entryPoint]) {\n        return arrayPop(hooks[entryPoint]);\n      }\n    };\n\n    /**\n     * RemoveHooks\n     * Public method to remove all DOMPurify hooks at a given entryPoint\n     *\n     * @param  {String} entryPoint entry point for the hooks to remove\n     */\n    DOMPurify.removeHooks = function (entryPoint) {\n      if (hooks[entryPoint]) {\n        hooks[entryPoint] = [];\n      }\n    };\n\n    /**\n     * RemoveAllHooks\n     * Public method to remove all DOMPurify hooks\n     */\n    DOMPurify.removeAllHooks = function () {\n      hooks = {};\n    };\n    return DOMPurify;\n  }\n  var purify = createDOMPurify();\n\n  return purify;\n\n}));\n//# sourceMappingURL=purify.js.map\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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\nif (process.env.NODE_ENV !== \"production\") {\n  (function() {\n'use strict';\n\nvar React = require('react');\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n  if (maybeIterable === null || typeof maybeIterable !== 'object') {\n    return null;\n  }\n\n  var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n  if (typeof maybeIterator === 'function') {\n    return maybeIterator;\n  }\n\n  return null;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n  {\n    {\n      for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n        args[_key2 - 1] = arguments[_key2];\n      }\n\n      printWarning('error', format, args);\n    }\n  }\n}\n\nfunction printWarning(level, format, args) {\n  // When changing this logic, you might want to also\n  // update consoleWithStackDev.www.js as well.\n  {\n    var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n    var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n    if (stack !== '') {\n      format += '%s';\n      args = args.concat([stack]);\n    } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n    var argsWithFormat = args.map(function (item) {\n      return String(item);\n    }); // Careful: RN currently depends on this prefix\n\n    argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n    // breaks IE9: https://github.com/facebook/react/issues/13610\n    // eslint-disable-next-line react-internal/no-production-logging\n\n    Function.prototype.apply.call(console[level], console, argsWithFormat);\n  }\n}\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n  REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n  if (typeof type === 'string' || typeof type === 'function') {\n    return true;\n  } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n  if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing  || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden  || type === REACT_OFFSCREEN_TYPE || enableScopeAPI  || enableCacheElement  || enableTransitionTracing ) {\n    return true;\n  }\n\n  if (typeof type === 'object' && type !== null) {\n    if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n    // types supported by any Flight configuration anywhere since\n    // we don't know which Flight build this will end up being used\n    // with.\n    type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n      return true;\n    }\n  }\n\n  return false;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n  var displayName = outerType.displayName;\n\n  if (displayName) {\n    return displayName;\n  }\n\n  var functionName = innerType.displayName || innerType.name || '';\n  return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n  return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(type) {\n  if (type == null) {\n    // Host root, text node or just invalid type.\n    return null;\n  }\n\n  {\n    if (typeof type.tag === 'number') {\n      error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n    }\n  }\n\n  if (typeof type === 'function') {\n    return type.displayName || type.name || null;\n  }\n\n  if (typeof type === 'string') {\n    return type;\n  }\n\n  switch (type) {\n    case REACT_FRAGMENT_TYPE:\n      return 'Fragment';\n\n    case REACT_PORTAL_TYPE:\n      return 'Portal';\n\n    case REACT_PROFILER_TYPE:\n      return 'Profiler';\n\n    case REACT_STRICT_MODE_TYPE:\n      return 'StrictMode';\n\n    case REACT_SUSPENSE_TYPE:\n      return 'Suspense';\n\n    case REACT_SUSPENSE_LIST_TYPE:\n      return 'SuspenseList';\n\n  }\n\n  if (typeof type === 'object') {\n    switch (type.$$typeof) {\n      case REACT_CONTEXT_TYPE:\n        var context = type;\n        return getContextName(context) + '.Consumer';\n\n      case REACT_PROVIDER_TYPE:\n        var provider = type;\n        return getContextName(provider._context) + '.Provider';\n\n      case REACT_FORWARD_REF_TYPE:\n        return getWrappedName(type, type.render, 'ForwardRef');\n\n      case REACT_MEMO_TYPE:\n        var outerName = type.displayName || null;\n\n        if (outerName !== null) {\n          return outerName;\n        }\n\n        return getComponentNameFromType(type.type) || 'Memo';\n\n      case REACT_LAZY_TYPE:\n        {\n          var lazyComponent = type;\n          var payload = lazyComponent._payload;\n          var init = lazyComponent._init;\n\n          try {\n            return getComponentNameFromType(init(payload));\n          } catch (x) {\n            return null;\n          }\n        }\n\n      // eslint-disable-next-line no-fallthrough\n    }\n  }\n\n  return null;\n}\n\nvar assign = Object.assign;\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n  {\n    if (disabledDepth === 0) {\n      /* eslint-disable react-internal/no-production-logging */\n      prevLog = console.log;\n      prevInfo = console.info;\n      prevWarn = console.warn;\n      prevError = console.error;\n      prevGroup = console.group;\n      prevGroupCollapsed = console.groupCollapsed;\n      prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n      var props = {\n        configurable: true,\n        enumerable: true,\n        value: disabledLog,\n        writable: true\n      }; // $FlowFixMe Flow thinks console is immutable.\n\n      Object.defineProperties(console, {\n        info: props,\n        log: props,\n        warn: props,\n        error: props,\n        group: props,\n        groupCollapsed: props,\n        groupEnd: props\n      });\n      /* eslint-enable react-internal/no-production-logging */\n    }\n\n    disabledDepth++;\n  }\n}\nfunction reenableLogs() {\n  {\n    disabledDepth--;\n\n    if (disabledDepth === 0) {\n      /* eslint-disable react-internal/no-production-logging */\n      var props = {\n        configurable: true,\n        enumerable: true,\n        writable: true\n      }; // $FlowFixMe Flow thinks console is immutable.\n\n      Object.defineProperties(console, {\n        log: assign({}, props, {\n          value: prevLog\n        }),\n        info: assign({}, props, {\n          value: prevInfo\n        }),\n        warn: assign({}, props, {\n          value: prevWarn\n        }),\n        error: assign({}, props, {\n          value: prevError\n        }),\n        group: assign({}, props, {\n          value: prevGroup\n        }),\n        groupCollapsed: assign({}, props, {\n          value: prevGroupCollapsed\n        }),\n        groupEnd: assign({}, props, {\n          value: prevGroupEnd\n        })\n      });\n      /* eslint-enable react-internal/no-production-logging */\n    }\n\n    if (disabledDepth < 0) {\n      error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n    }\n  }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n  {\n    if (prefix === undefined) {\n      // Extract the VM specific prefix used by each line.\n      try {\n        throw Error();\n      } catch (x) {\n        var match = x.stack.trim().match(/\\n( *(at )?)/);\n        prefix = match && match[1] || '';\n      }\n    } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n    return '\\n' + prefix + name;\n  }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n  var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n  componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n  // If something asked for a stack inside a fake render, it should get ignored.\n  if ( !fn || reentry) {\n    return '';\n  }\n\n  {\n    var frame = componentFrameCache.get(fn);\n\n    if (frame !== undefined) {\n      return frame;\n    }\n  }\n\n  var control;\n  reentry = true;\n  var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n  Error.prepareStackTrace = undefined;\n  var previousDispatcher;\n\n  {\n    previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n    // for warnings.\n\n    ReactCurrentDispatcher.current = null;\n    disableLogs();\n  }\n\n  try {\n    // This should throw.\n    if (construct) {\n      // Something should be setting the props in the constructor.\n      var Fake = function () {\n        throw Error();\n      }; // $FlowFixMe\n\n\n      Object.defineProperty(Fake.prototype, 'props', {\n        set: function () {\n          // We use a throwing setter instead of frozen or non-writable props\n          // because that won't throw in a non-strict mode function.\n          throw Error();\n        }\n      });\n\n      if (typeof Reflect === 'object' && Reflect.construct) {\n        // We construct a different control for this case to include any extra\n        // frames added by the construct call.\n        try {\n          Reflect.construct(Fake, []);\n        } catch (x) {\n          control = x;\n        }\n\n        Reflect.construct(fn, [], Fake);\n      } else {\n        try {\n          Fake.call();\n        } catch (x) {\n          control = x;\n        }\n\n        fn.call(Fake.prototype);\n      }\n    } else {\n      try {\n        throw Error();\n      } catch (x) {\n        control = x;\n      }\n\n      fn();\n    }\n  } catch (sample) {\n    // This is inlined manually because closure doesn't do it for us.\n    if (sample && control && typeof sample.stack === 'string') {\n      // This extracts the first frame from the sample that isn't also in the control.\n      // Skipping one frame that we assume is the frame that calls the two.\n      var sampleLines = sample.stack.split('\\n');\n      var controlLines = control.stack.split('\\n');\n      var s = sampleLines.length - 1;\n      var c = controlLines.length - 1;\n\n      while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n        // We expect at least one stack frame to be shared.\n        // Typically this will be the root most one. However, stack frames may be\n        // cut off due to maximum stack limits. In this case, one maybe cut off\n        // earlier than the other. We assume that the sample is longer or the same\n        // and there for cut off earlier. So we should find the root most frame in\n        // the sample somewhere in the control.\n        c--;\n      }\n\n      for (; s >= 1 && c >= 0; s--, c--) {\n        // Next we find the first one that isn't the same which should be the\n        // frame that called our sample function and the control.\n        if (sampleLines[s] !== controlLines[c]) {\n          // In V8, the first line is describing the message but other VMs don't.\n          // If we're about to return the first line, and the control is also on the same\n          // line, that's a pretty good indicator that our sample threw at same line as\n          // the control. I.e. before we entered the sample frame. So we ignore this result.\n          // This can happen if you passed a class to function component, or non-function.\n          if (s !== 1 || c !== 1) {\n            do {\n              s--;\n              c--; // We may still have similar intermediate frames from the construct call.\n              // The next one that isn't the same should be our match though.\n\n              if (c < 0 || sampleLines[s] !== controlLines[c]) {\n                // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n                var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n                // but we have a user-provided \"displayName\"\n                // splice it in to make the stack more readable.\n\n\n                if (fn.displayName && _frame.includes('<anonymous>')) {\n                  _frame = _frame.replace('<anonymous>', fn.displayName);\n                }\n\n                {\n                  if (typeof fn === 'function') {\n                    componentFrameCache.set(fn, _frame);\n                  }\n                } // Return the line we found.\n\n\n                return _frame;\n              }\n            } while (s >= 1 && c >= 0);\n          }\n\n          break;\n        }\n      }\n    }\n  } finally {\n    reentry = false;\n\n    {\n      ReactCurrentDispatcher.current = previousDispatcher;\n      reenableLogs();\n    }\n\n    Error.prepareStackTrace = previousPrepareStackTrace;\n  } // Fallback to just using the name if we couldn't make it throw.\n\n\n  var name = fn ? fn.displayName || fn.name : '';\n  var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n  {\n    if (typeof fn === 'function') {\n      componentFrameCache.set(fn, syntheticFrame);\n    }\n  }\n\n  return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n  {\n    return describeNativeComponentFrame(fn, false);\n  }\n}\n\nfunction shouldConstruct(Component) {\n  var prototype = Component.prototype;\n  return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n  if (type == null) {\n    return '';\n  }\n\n  if (typeof type === 'function') {\n    {\n      return describeNativeComponentFrame(type, shouldConstruct(type));\n    }\n  }\n\n  if (typeof type === 'string') {\n    return describeBuiltInComponentFrame(type);\n  }\n\n  switch (type) {\n    case REACT_SUSPENSE_TYPE:\n      return describeBuiltInComponentFrame('Suspense');\n\n    case REACT_SUSPENSE_LIST_TYPE:\n      return describeBuiltInComponentFrame('SuspenseList');\n  }\n\n  if (typeof type === 'object') {\n    switch (type.$$typeof) {\n      case REACT_FORWARD_REF_TYPE:\n        return describeFunctionComponentFrame(type.render);\n\n      case REACT_MEMO_TYPE:\n        // Memo may contain any component type so we recursively resolve it.\n        return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n      case REACT_LAZY_TYPE:\n        {\n          var lazyComponent = type;\n          var payload = lazyComponent._payload;\n          var init = lazyComponent._init;\n\n          try {\n            // Lazy may contain any component type so we recursively resolve it.\n            return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n          } catch (x) {}\n        }\n    }\n  }\n\n  return '';\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n  {\n    if (element) {\n      var owner = element._owner;\n      var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n      ReactDebugCurrentFrame.setExtraStackFrame(stack);\n    } else {\n      ReactDebugCurrentFrame.setExtraStackFrame(null);\n    }\n  }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n  {\n    // $FlowFixMe This is okay but Flow doesn't know it.\n    var has = Function.call.bind(hasOwnProperty);\n\n    for (var typeSpecName in typeSpecs) {\n      if (has(typeSpecs, typeSpecName)) {\n        var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n        // fail the render phase where it didn't fail before. So we log it.\n        // After these have been cleaned up, we'll let them throw.\n\n        try {\n          // This is intentionally an invariant that gets caught. It's the same\n          // behavior as without this statement except with a better message.\n          if (typeof typeSpecs[typeSpecName] !== 'function') {\n            // eslint-disable-next-line react-internal/prod-error-codes\n            var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n            err.name = 'Invariant Violation';\n            throw err;\n          }\n\n          error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n        } catch (ex) {\n          error$1 = ex;\n        }\n\n        if (error$1 && !(error$1 instanceof Error)) {\n          setCurrentlyValidatingElement(element);\n\n          error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n          setCurrentlyValidatingElement(null);\n        }\n\n        if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n          // Only monitor this failure once because there tends to be a lot of the\n          // same error.\n          loggedTypeFailures[error$1.message] = true;\n          setCurrentlyValidatingElement(element);\n\n          error('Failed %s type: %s', location, error$1.message);\n\n          setCurrentlyValidatingElement(null);\n        }\n      }\n    }\n  }\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n  return isArrayImpl(a);\n}\n\n/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value) {\n  {\n    // toStringTag is needed for namespaced types like Temporal.Instant\n    var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n    var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n    return type;\n  }\n} // $FlowFixMe only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n  {\n    try {\n      testStringCoercion(value);\n      return false;\n    } catch (e) {\n      return true;\n    }\n  }\n}\n\nfunction testStringCoercion(value) {\n  // If you ended up here by following an exception call stack, here's what's\n  // happened: you supplied an object or symbol value to React (as a prop, key,\n  // DOM attribute, CSS property, string ref, etc.) and when React tried to\n  // coerce it to a string using `'' + value`, an exception was thrown.\n  //\n  // The most common types that will cause this exception are `Symbol` instances\n  // and Temporal objects like `Temporal.Instant`. But any object that has a\n  // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n  // exception. (Library authors do this to prevent users from using built-in\n  // numeric operators like `+` or comparison operators like `>=` because custom\n  // methods are needed to perform accurate arithmetic or comparison.)\n  //\n  // To fix the problem, coerce this object or symbol value to a string before\n  // passing it to React. The most reliable way is usually `String(value)`.\n  //\n  // To find which value is throwing, check the browser or debugger console.\n  // Before this exception was thrown, there should be `console.error` output\n  // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n  // problem and how that type was used: key, atrribute, input value prop, etc.\n  // In most cases, this console output also shows the component and its\n  // ancestor components where the exception happened.\n  //\n  // eslint-disable-next-line react-internal/safe-string-coercion\n  return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n  {\n    if (willCoercionThrow(value)) {\n      error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n      return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n    }\n  }\n}\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nvar RESERVED_PROPS = {\n  key: true,\n  ref: true,\n  __self: true,\n  __source: true\n};\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\nvar didWarnAboutStringRefs;\n\n{\n  didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n  {\n    if (hasOwnProperty.call(config, 'ref')) {\n      var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n      if (getter && getter.isReactWarning) {\n        return false;\n      }\n    }\n  }\n\n  return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n  {\n    if (hasOwnProperty.call(config, 'key')) {\n      var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n      if (getter && getter.isReactWarning) {\n        return false;\n      }\n    }\n  }\n\n  return config.key !== undefined;\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\n  {\n    if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {\n      var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n      if (!didWarnAboutStringRefs[componentName]) {\n        error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentNameFromType(ReactCurrentOwner.current.type), config.ref);\n\n        didWarnAboutStringRefs[componentName] = true;\n      }\n    }\n  }\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n  {\n    var warnAboutAccessingKey = function () {\n      if (!specialPropKeyWarningShown) {\n        specialPropKeyWarningShown = true;\n\n        error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n      }\n    };\n\n    warnAboutAccessingKey.isReactWarning = true;\n    Object.defineProperty(props, 'key', {\n      get: warnAboutAccessingKey,\n      configurable: true\n    });\n  }\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n  {\n    var warnAboutAccessingRef = function () {\n      if (!specialPropRefWarningShown) {\n        specialPropRefWarningShown = true;\n\n        error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n      }\n    };\n\n    warnAboutAccessingRef.isReactWarning = true;\n    Object.defineProperty(props, 'ref', {\n      get: warnAboutAccessingRef,\n      configurable: true\n    });\n  }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n  var element = {\n    // This tag allows us to uniquely identify this as a React Element\n    $$typeof: REACT_ELEMENT_TYPE,\n    // Built-in properties that belong on the element\n    type: type,\n    key: key,\n    ref: ref,\n    props: props,\n    // Record the component responsible for creating this element.\n    _owner: owner\n  };\n\n  {\n    // The validation flag is currently mutative. We put it on\n    // an external backing store so that we can freeze the whole object.\n    // This can be replaced with a WeakMap once they are implemented in\n    // commonly used development environments.\n    element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n    // the validation flag non-enumerable (where possible, which should\n    // include every environment we run tests in), so the test framework\n    // ignores it.\n\n    Object.defineProperty(element._store, 'validated', {\n      configurable: false,\n      enumerable: false,\n      writable: true,\n      value: false\n    }); // self and source are DEV only properties.\n\n    Object.defineProperty(element, '_self', {\n      configurable: false,\n      enumerable: false,\n      writable: false,\n      value: self\n    }); // Two elements created in two different places should be considered\n    // equal for testing purposes and therefore we hide it from enumeration.\n\n    Object.defineProperty(element, '_source', {\n      configurable: false,\n      enumerable: false,\n      writable: false,\n      value: source\n    });\n\n    if (Object.freeze) {\n      Object.freeze(element.props);\n      Object.freeze(element);\n    }\n  }\n\n  return element;\n};\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV(type, config, maybeKey, source, self) {\n  {\n    var propName; // Reserved names are extracted\n\n    var props = {};\n    var key = null;\n    var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n    // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n    // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n    // but as an intermediary step, we will use jsxDEV for everything except\n    // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n    // key is explicitly declared to be undefined or not.\n\n    if (maybeKey !== undefined) {\n      {\n        checkKeyStringCoercion(maybeKey);\n      }\n\n      key = '' + maybeKey;\n    }\n\n    if (hasValidKey(config)) {\n      {\n        checkKeyStringCoercion(config.key);\n      }\n\n      key = '' + config.key;\n    }\n\n    if (hasValidRef(config)) {\n      ref = config.ref;\n      warnIfStringRefCannotBeAutoConverted(config, self);\n    } // Remaining properties are added to a new props object\n\n\n    for (propName in config) {\n      if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n        props[propName] = config[propName];\n      }\n    } // Resolve default props\n\n\n    if (type && type.defaultProps) {\n      var defaultProps = type.defaultProps;\n\n      for (propName in defaultProps) {\n        if (props[propName] === undefined) {\n          props[propName] = defaultProps[propName];\n        }\n      }\n    }\n\n    if (key || ref) {\n      var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n      if (key) {\n        defineKeyPropWarningGetter(props, displayName);\n      }\n\n      if (ref) {\n        defineRefPropWarningGetter(props, displayName);\n      }\n    }\n\n    return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n  }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement$1(element) {\n  {\n    if (element) {\n      var owner = element._owner;\n      var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n      ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n    } else {\n      ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n    }\n  }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n  propTypesMisspellWarningShown = false;\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\n\nfunction isValidElement(object) {\n  {\n    return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n  }\n}\n\nfunction getDeclarationErrorAddendum() {\n  {\n    if (ReactCurrentOwner$1.current) {\n      var name = getComponentNameFromType(ReactCurrentOwner$1.current.type);\n\n      if (name) {\n        return '\\n\\nCheck the render method of `' + name + '`.';\n      }\n    }\n\n    return '';\n  }\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n  {\n    if (source !== undefined) {\n      var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n      var lineNumber = source.lineNumber;\n      return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n    }\n\n    return '';\n  }\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n  {\n    var info = getDeclarationErrorAddendum();\n\n    if (!info) {\n      var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n      if (parentName) {\n        info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n      }\n    }\n\n    return info;\n  }\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n  {\n    if (!element._store || element._store.validated || element.key != null) {\n      return;\n    }\n\n    element._store.validated = true;\n    var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n    if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n      return;\n    }\n\n    ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n    // property, it may be the creator of the child that's responsible for\n    // assigning it a key.\n\n    var childOwner = '';\n\n    if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {\n      // Give the component that originally created this child.\n      childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n    }\n\n    setCurrentlyValidatingElement$1(element);\n\n    error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n    setCurrentlyValidatingElement$1(null);\n  }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n  {\n    if (typeof node !== 'object') {\n      return;\n    }\n\n    if (isArray(node)) {\n      for (var i = 0; i < node.length; i++) {\n        var child = node[i];\n\n        if (isValidElement(child)) {\n          validateExplicitKey(child, parentType);\n        }\n      }\n    } else if (isValidElement(node)) {\n      // This element was passed in a valid location.\n      if (node._store) {\n        node._store.validated = true;\n      }\n    } else if (node) {\n      var iteratorFn = getIteratorFn(node);\n\n      if (typeof iteratorFn === 'function') {\n        // Entry iterators used to provide implicit keys,\n        // but now we print a separate warning for them later.\n        if (iteratorFn !== node.entries) {\n          var iterator = iteratorFn.call(node);\n          var step;\n\n          while (!(step = iterator.next()).done) {\n            if (isValidElement(step.value)) {\n              validateExplicitKey(step.value, parentType);\n            }\n          }\n        }\n      }\n    }\n  }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n  {\n    var type = element.type;\n\n    if (type === null || type === undefined || typeof type === 'string') {\n      return;\n    }\n\n    var propTypes;\n\n    if (typeof type === 'function') {\n      propTypes = type.propTypes;\n    } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n    // Inner props are checked in the reconciler.\n    type.$$typeof === REACT_MEMO_TYPE)) {\n      propTypes = type.propTypes;\n    } else {\n      return;\n    }\n\n    if (propTypes) {\n      // Intentionally inside to avoid triggering lazy initializers:\n      var name = getComponentNameFromType(type);\n      checkPropTypes(propTypes, element.props, 'prop', name, element);\n    } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n      propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n      var _name = getComponentNameFromType(type);\n\n      error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n    }\n\n    if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n      error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n    }\n  }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n  {\n    var keys = Object.keys(fragment.props);\n\n    for (var i = 0; i < keys.length; i++) {\n      var key = keys[i];\n\n      if (key !== 'children' && key !== 'key') {\n        setCurrentlyValidatingElement$1(fragment);\n\n        error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n        setCurrentlyValidatingElement$1(null);\n        break;\n      }\n    }\n\n    if (fragment.ref !== null) {\n      setCurrentlyValidatingElement$1(fragment);\n\n      error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n      setCurrentlyValidatingElement$1(null);\n    }\n  }\n}\n\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n  {\n    var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n    // succeed and there will likely be errors in render.\n\n    if (!validType) {\n      var info = '';\n\n      if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n        info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n      }\n\n      var sourceInfo = getSourceInfoErrorAddendum(source);\n\n      if (sourceInfo) {\n        info += sourceInfo;\n      } else {\n        info += getDeclarationErrorAddendum();\n      }\n\n      var typeString;\n\n      if (type === null) {\n        typeString = 'null';\n      } else if (isArray(type)) {\n        typeString = 'array';\n      } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n        typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n        info = ' Did you accidentally export a JSX literal instead of a component?';\n      } else {\n        typeString = typeof type;\n      }\n\n      error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n    }\n\n    var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n    // TODO: Drop this when these are no longer allowed as the type argument.\n\n    if (element == null) {\n      return element;\n    } // Skip key warning if the type isn't valid since our key validation logic\n    // doesn't expect a non-string/function type and can throw confusing errors.\n    // We don't want exception behavior to differ between dev and prod.\n    // (Rendering will throw with a helpful message and as soon as the type is\n    // fixed, the key warnings will appear.)\n\n\n    if (validType) {\n      var children = props.children;\n\n      if (children !== undefined) {\n        if (isStaticChildren) {\n          if (isArray(children)) {\n            for (var i = 0; i < children.length; i++) {\n              validateChildKeys(children[i], type);\n            }\n\n            if (Object.freeze) {\n              Object.freeze(children);\n            }\n          } else {\n            error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n          }\n        } else {\n          validateChildKeys(children, type);\n        }\n      }\n    }\n\n    if (type === REACT_FRAGMENT_TYPE) {\n      validateFragmentProps(element);\n    } else {\n      validatePropTypes(element);\n    }\n\n    return element;\n  }\n} // These two functions exist to still get child warnings in dev\n// even with the prod transform. This means that jsxDEV is purely\n// opt-in behavior for better messages but that we won't stop\n// giving you warnings if you use production apis.\n\nfunction jsxWithValidationStatic(type, props, key) {\n  {\n    return jsxWithValidation(type, props, key, true);\n  }\n}\nfunction jsxWithValidationDynamic(type, props, key) {\n  {\n    return jsxWithValidation(type, props, key, false);\n  }\n}\n\nvar jsx =  jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.\n// for now we can ship identical prod functions\n\nvar jsxs =  jsxWithValidationStatic ;\n\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsx;\nexports.jsxs = jsxs;\n  })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n  module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/* eslint-disable vars-on-top, no-var, prefer-template */\nvar isRegExp = function (re) { \n  return re instanceof RegExp;\n};\nvar escapeRegExp = function escapeRegExp(string) {\n  var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n    reHasRegExpChar = RegExp(reRegExpChar.source);\n\n  return (string && reHasRegExpChar.test(string))\n    ? string.replace(reRegExpChar, '\\\\$&')\n    : string;\n};\nvar isString = function (value) {\n  return typeof value === 'string';\n};\nvar flatten = function (array) {\n  var newArray = [];\n\n  array.forEach(function (item) {\n    if (Array.isArray(item)) {\n      newArray = newArray.concat(item);\n    } else {\n      newArray.push(item);\n    }\n  });\n\n  return newArray;\n};\n\n/**\n * Given a string, replace every substring that is matched by the `match` regex\n * with the result of calling `fn` on matched substring. The result will be an\n * array with all odd indexed elements containing the replacements. The primary\n * use case is similar to using String.prototype.replace except for React.\n *\n * React will happily render an array as children of a react element, which\n * makes this approach very useful for tasks like surrounding certain text\n * within a string with react elements.\n *\n * Example:\n * matchReplace(\n *   'Emphasize all phone numbers like 884-555-4443.',\n *   /([\\d|-]+)/g,\n *   (number, i) => <strong key={i}>{number}</strong>\n * );\n * // => ['Emphasize all phone numbers like ', <strong>884-555-4443</strong>, '.'\n *\n * @param {string} str\n * @param {RegExp|str} match Must contain a matching group\n * @param {function} fn\n * @return {array}\n */\nfunction replaceString(str, match, fn) {\n  var curCharStart = 0;\n  var curCharLen = 0;\n\n  if (str === '') {\n    return str;\n  } else if (!str || !isString(str)) {\n    throw new TypeError('First argument to react-string-replace#replaceString must be a string');\n  }\n\n  var re = match;\n\n  if (!isRegExp(re)) {\n    re = new RegExp('(' + escapeRegExp(re) + ')', 'gi');\n  }\n\n  var result = str.split(re);\n\n  // Apply fn to all odd elements\n  for (var i = 1, length = result.length; i < length; i += 2) {\n    /** @see {@link https://github.com/iansinnott/react-string-replace/issues/74} */\n    if (result[i] === undefined || result[i - 1] === undefined) {\n      console.warn('reactStringReplace: Encountered undefined value during string replacement. Your RegExp may not be working the way you expect.');\n      continue;\n    }\n\n    curCharLen = result[i].length;\n    curCharStart += result[i - 1].length;\n    result[i] = fn(result[i], i, curCharStart);\n    curCharStart += curCharLen;\n  }\n\n  return result;\n}\n\nmodule.exports = function reactStringReplace(source, match, fn) {\n  if (!Array.isArray(source)) source = [source];\n\n  return flatten(source.map(function(x) {\n    return isString(x) ? replaceString(x, match, fn) : x;\n  }));\n};\n","var map = {\n\t\"./categories/block.tsx\": 4356,\n\t\"./pages/block.tsx\": 6478,\n\t\"gutenberg/blocks/categories/block.tsx\": 4356,\n\t\"gutenberg/blocks/pages/block.tsx\": 6478\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 9406;","module.exports = React;","module.exports = ReactDOM;","module.exports = jQuery;","module.exports = lodash;","module.exports = wp.apiFetch;","module.exports = wp.blockEditor;","module.exports = wp.blocks;","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.hooks;","module.exports = wp.htmlEntities;","module.exports = wp.i18n;","module.exports = wp.plugins;","module.exports = wp.richText;","module.exports = wp.serverSideRender;","module.exports = wp.url;","// 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\tid: moduleId,\n\t\tloaded: false,\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// Flag the module as loaded\n\tmodule.loaded = true;\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 = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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__.hmd = (module) => {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: () => {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","import widgets from './modules/widgets';\n\nconsole.debug( 'Advanced Sidebar - Loaded' );\n\nwidgets();\n\n/**\n * 1. Blocks can't be lazy loaded, or they will be unavailable\n *    intermittently when developing.\n * 2. Theme Customizers must wait until the page is finished loading.\n *\n * @version 1.1.0\n */\nif ( typeof window.wp.element !== 'undefined' && typeof window.wp.plugins !== 'undefined' ) {\n\trequire( './gutenberg' ).default();\n} else if ( typeof window.wp.customize !== 'undefined' ) {\n\twindow.wp.customize.bind( 'ready', () => {\n\t\trequire( './gutenberg' ).default();\n\t} );\n}\n"],"names":["Component","CONFIG","addQueryArgs","sanitize","jsx","_jsx","jsxs","_jsxs","ErrorBoundary","constructor","props","state","hasError","error","getDerivedStateFromError","componentDidCatch","info","console","log","setState","render","siteInfo","scriptDebug","className","children","style","color","href","window","location","target","support","rel","border","padding","width","overflowWrap","section","currentScreen","message","block","JSON","stringify","attributes","stack","__","useState","Notice","styles","DISMISS_KEY","TransformNotice","shown","setShown","wrap","politeness","onDismiss","localStorage","setItem","actions","label","url","variant","ADVANCED_SIDEBAR_MENU","withFilters","select","isEmpty","firstClientId","SideLoad","clientId","getBlockIndex","CheckboxControl","PanelBody","Slot","sprintf","range","reactStringReplace","checkboxes","include_parent","include_childless_parent","display_all","Display","setAttributes","type","name","showLevels","blocks","pages","id","isPro","fillProps","title","Object","keys","map","item","labels","singular_name","toLowerCase","checked","onChange","replace","value","levels","ev","parseInt","n","categories","TextControl","ExcludeField","help","dangerouslySetInnerHTML","__html","exclude","Button","InspectorControls","decodeEntities","titleStyles","fontWeight","headingStyles","margin","fontSize","InfoPanel","initialOpen","features","feature","button","isPrimary","useEffect","ServerSideRender","Placeholder","Spinner","useBlockProps","doAction","isScreen","Fragment","_Fragment","ICON","xmlns","viewBox","x","fill","height","d","sanitizeClientId","getSidebarId","rootId","getBlockRootClientId","ParentBlock","getBlocksByClientId","Page","placeholder","icon","instructions","Category","Navigation","navigation","TriggerWhenLoadingFinished","setTimeout","values","errorMsg","Error","spinWrap","spin","spinContent","Preview","blockProps","sanitizedClientId","onClick","element","nodeName","preventDefault","EmptyResponsePlaceholder","LoadingResponsePlaceholder","isServerSideRenderRequest","sidebarId","httpMethod","useSelect","BlockControls","SelectControl","Edit","taxonomy","getTaxonomy","single","new_widget","options","displayEach","key","docs","category","transformLegacyWidget","EXAMPLE","apply_current_page_parent_styles_to_parent","apply_current_page_styles_to_parent","block_style","border_color","bullet_style","child_page_bg_color","child_page_color","parent_page_bg_color","parent_page_color","parent_page_font_weight","grandchild_page_bg_color","grandchild_page_color","grandchild_page_font_weight","settings","example","transforms","from","isMatch","idBase","instance","raw","transform","supports","edit","save","apiVersion","postType","getPostType","post_type","order_by","labelPosition","entries","orderBy","page","current_page_bg_color","current_page_color","current_page_font_weight","current_page_parent_bg_color","createBlock","screens","includes","translateLegacyWidget","forEach","autoloadBlocks","require","context","module","createRoot","renderTransformNotice","classicWidgets","getItem","placeholders","document","querySelectorAll","root","e","isWidgets","jQuery","on","widgets","debug","wp","plugins","default","customize","bind"],"sourceRoot":""}
  • advanced-sidebar-menu/trunk/languages/advanced-sidebar-menu-de_DE.l10n.php

    r3123446 r3150228  
    11<?php
    2 return ['domain'=>'advanced-sidebar-menu','plural-forms'=>'nplurals=2; plural=(n != 1);','messages'=>['Blocks are the future of Advanced Sidebar Menu.'=>'Blöcke sind die Zukunft des erweiterten Seitenleistenmenüs.','This widget may be transformed into a block.'=>'Dieses Widget kann in einen Block umgewandelt werden.','Display highest level parent %s'=>'Anzeige der übergeordneten %s der höchsten Ebene','Display menu when there is only the parent %s'=>'Menü "Anzeige" wird nur die übergeordnete %s','Always display child %s'=>'Immer untergeordnete %s anzeigen','Display'=>'Anzeige','Display %1$s levels of child %2$s'=>'Anzeigen %1$s Ebenen der %2$s','- All -'=>'- Alle -','For more robust and intuitive exclusions use the %1$sPRO version%2$s.'=>'Für robustere und intuitivere Ausschlüsse verwenden Sie die %1$sPRO-Version%2$s.','%s to exclude (ids, comma separated)'=>'Auszuschließende %s (IDs), durch Kommas getrennt','Go PRO'=>'Gehen Sie PRO','Advanced Sidebar Menu PRO'=>'Advanced Sidebar Menu PRO','And so much more…'=>'So viel mehr…','Upgrade'=>'Aktualisierung','Advanced Sidebar - Pages'=>'Advanced Sidebar - Seitenmenü','No preview available'=>'Keine Vorschau verfügbar','Advanced Sidebar - Categories'=>'Advanced Sidebar - Kategorien','Advanced Sidebar - Navigation'=>'Advanced Sidebar - Navigationsmenü','Title'=>'Titel','Display %s on single posts'=>'%s auf einzelne Beiträge anzeigen','Display each single post\'s %s'=>'Anzeigen der %s jedes einzelnen Beitrags','block documentation'=>'dokumentation blockieren','Order by'=>'Sortieren nach','Creates a menu of all the categories using the parent/child relationship'=>'Erstellt ein Menü aller Kategorien, die unter Zugrundelegung der Eltern-Kind-Beziehung','menu'=>'menü','sidebar'=>'seitenleiste','taxonomy'=>'taxonomie','term'=>'begriff','pages'=>'peiten','widget documentation'=>'widget-dokumentation','Documentation'=>'Dokumentation','{<a>}{</a>}Advanced Sidebar Menu requires %1$sAdvanced Sidebar Menu PRO%2$s version %3$s+. Please update or deactivate the PRO version.'=>'Das Advanced Sidebar Menu erfordert %1$s sAdvanced Sidebar Menu PRO%2$s es Version %3$s+. Bitte aktualisieren oder deaktivieren Sie die PRO-Version.','Preview'=>'Vorschau','PRO version widget options'=>'Widget-Optionen für die PRO-Version','Styling options including borders, bullets, colors, backgrounds, font size and weight.'=>'Styling-Optionen wie Rahmen, Aufzählungszeichen, Farben, Hintergründe, Schriftgröße und -stärke.','Accordion menus.'=>'Akkordeon-Menüs.','Support for custom navigation menus from Appearance -> Menus.'=>'Unterstützung für kundenspezifische Navigationsmenüs von Appearance-> Menü.','Select and display custom post types and taxonomies.'=>'Wählen Sie benutzerdefinierte Beitragstypen und Taxonomien aus und zeigen Sie sie an.','Priority support with access to members only support area.'=>'Prioritätsunterstützung, einschließlich Zugang zum Supportbereich für Mitglieder.','In a new widget'=>'In einem neuen Widget','In another list in the same widget'=>'In einer anderen Liste im selben Widget','Display the highest level parent %s'=>'Anzeige der übergeordneten %s der höchsten Ebene','Creates a menu of all the pages using the parent/child relationship'=>'Erstellt ein Menü mit allen Seiten, die die Child / Parent-Beziehung verwenden','Page Order'=>'Seitenreihenfolge','Published Date'=>'Veröffentlichungsdatum','Advanced Sidebar Menu'=>'Advanced Sidebar Menu','https://onpointplugins.com/advanced-sidebar-menu/'=>'https://onpointplugins.com/advanced-sidebar-menu/','Creates dynamic menus based on parent/child relationship of your pages or categories.'=>'Dynamische Menüs basierend auf Parent/Child-Beziehung Ihrer Seiten oder Kategorien erstellt.','OnPoint Plugins'=>'OnPoint Plugins','https://onpointplugins.com'=>'https://onpointplugins.com'],'language'=>'de_DE','x-generator'=>'Poedit 2.4.3'];
     2return ['domain'=>'advanced-sidebar-menu','plural-forms'=>'nplurals=2; plural=(n != 1);','language'=>'de_DE','project-id-version'=>'Advanced Sidebar Menu','pot-creation-date'=>'2024-03-24 21:25-0500','po-revision-date'=>'2024-03-24 21:26-0500','x-generator'=>'Poedit 2.4.3','messages'=>['Blocks are the future of Advanced Sidebar Menu.'=>'Blöcke sind die Zukunft des erweiterten Seitenleistenmenüs.','This widget may be transformed into a block.'=>'Dieses Widget kann in einen Block umgewandelt werden.','Display highest level parent %s'=>'Anzeige der übergeordneten %s der höchsten Ebene','Display menu when there is only the parent %s'=>'Menü "Anzeige" wird nur die übergeordnete %s','Always display child %s'=>'Immer untergeordnete %s anzeigen','Display'=>'Anzeige','Display %1$s levels of child %2$s'=>'Anzeigen %1$s Ebenen der %2$s','- All -'=>'- Alle -','For more robust and intuitive exclusions use the %1$sPRO version%2$s.'=>'Für robustere und intuitivere Ausschlüsse verwenden Sie die %1$sPRO-Version%2$s.','%s to exclude (ids, comma separated)'=>'Auszuschließende %s (IDs), durch Kommas getrennt','Go PRO'=>'Gehen Sie PRO','Advanced Sidebar Menu PRO'=>'Advanced Sidebar Menu PRO','And so much more…'=>'So viel mehr…','Upgrade'=>'Aktualisierung','Advanced Sidebar - Pages'=>'Advanced Sidebar - Seitenmenü','No preview available'=>'Keine Vorschau verfügbar','Advanced Sidebar - Categories'=>'Advanced Sidebar - Kategorien','Advanced Sidebar - Navigation'=>'Advanced Sidebar - Navigationsmenü','Title'=>'Titel','Display %s on single posts'=>'%s auf einzelne Beiträge anzeigen','Display each single post\'s %s'=>'Anzeigen der %s jedes einzelnen Beitrags','block documentation'=>'dokumentation blockieren','Order by'=>'Sortieren nach','Creates a menu of all the categories using the parent/child relationship'=>'Erstellt ein Menü aller Kategorien, die unter Zugrundelegung der Eltern-Kind-Beziehung','menu'=>'menü','sidebar'=>'seitenleiste','taxonomy'=>'taxonomie','term'=>'begriff','pages'=>'peiten','widget documentation'=>'widget-dokumentation','Documentation'=>'Dokumentation','{<a>}{</a>}Advanced Sidebar Menu requires %1$sAdvanced Sidebar Menu PRO%2$s version %3$s+. Please update or deactivate the PRO version.'=>'Das Advanced Sidebar Menu erfordert %1$s sAdvanced Sidebar Menu PRO%2$s es Version %3$s+. Bitte aktualisieren oder deaktivieren Sie die PRO-Version.','Preview'=>'Vorschau','PRO version widget options'=>'Widget-Optionen für die PRO-Version','Styling options including borders, bullets, colors, backgrounds, font size and weight.'=>'Styling-Optionen wie Rahmen, Aufzählungszeichen, Farben, Hintergründe, Schriftgröße und -stärke.','Accordion menus.'=>'Akkordeon-Menüs.','Support for custom navigation menus from Appearance -> Menus.'=>'Unterstützung für kundenspezifische Navigationsmenüs von Appearance-> Menü.','Select and display custom post types and taxonomies.'=>'Wählen Sie benutzerdefinierte Beitragstypen und Taxonomien aus und zeigen Sie sie an.','Priority support with access to members only support area.'=>'Prioritätsunterstützung, einschließlich Zugang zum Supportbereich für Mitglieder.','In a new widget'=>'In einem neuen Widget','In another list in the same widget'=>'In einer anderen Liste im selben Widget','Display the highest level parent %s'=>'Anzeige der übergeordneten %s der höchsten Ebene','Creates a menu of all the pages using the parent/child relationship'=>'Erstellt ein Menü mit allen Seiten, die die Child / Parent-Beziehung verwenden','Page Order'=>'Seitenreihenfolge','Published Date'=>'Veröffentlichungsdatum','Advanced Sidebar Menu'=>'Advanced Sidebar Menu','https://onpointplugins.com/advanced-sidebar-menu/'=>'https://onpointplugins.com/advanced-sidebar-menu/','Creates dynamic menus based on parent/child relationship of your pages or categories.'=>'Dynamische Menüs basierend auf Parent/Child-Beziehung Ihrer Seiten oder Kategorien erstellt.','OnPoint Plugins'=>'OnPoint Plugins','https://onpointplugins.com'=>'https://onpointplugins.com']];
  • advanced-sidebar-menu/trunk/languages/advanced-sidebar-menu-es_ES.l10n.php

    r3123446 r3150228  
    11<?php
    2 return ['domain'=>'advanced-sidebar-menu','plural-forms'=>'nplurals=2; plural=(n != 1);','messages'=>['Blocks are the future of Advanced Sidebar Menu.'=>'Los bloques son el futuro del menú avanzado de la barra lateral.','This widget may be transformed into a block.'=>'Este widget puede transformarse en un bloque.','Display highest level parent %s'=>'Mostrar el %s principal de nivel más alto','Display menu when there is only the parent %s'=>'Mostrar menú cuando solo hay el elemento primario %s','Always display child %s'=>'Muestre siempre %s secundarios','Display'=>'Mostrar','Display %1$s levels of child %2$s'=>'Mostrar %1$s niveles de %2$s secundario','- All -'=>'- Todo -','For more robust and intuitive exclusions use the %1$sPRO version%2$s.'=>'Para exclusiones más robustas e intuitivas, utilice la versión %1$sPRO%2$s.','%s to exclude (ids, comma separated)'=>'%s para excluir (ids, separados por comas)','Go PRO'=>'Actualizar a PRO','Advanced Sidebar Menu PRO'=>'Advanced Sidebar Menu PRO','And so much more…'=>'Y mucho más…','Upgrade'=>'Actualizar','Advanced Sidebar - Pages'=>'Advanced Sidebar - Páginas','No preview available'=>'No hay vista previa disponible','Advanced Sidebar - Categories'=>'Advanced Sidebar - Categorías','Advanced Sidebar - Navigation'=>'Advanced Sidebar - Páginas','Title'=>'Título','Display %s on single posts'=>'Mostrar %s en publicaciones individuales','Display each single post\'s %s'=>'Muestra las %s de cada publicación','block documentation'=>'bloquear documentación','Order by'=>'Ordenar por','Creates a menu of all the categories using the parent/child relationship'=>'Crea un menú de todas las categorías utilizando la relación hijo/padre','menu'=>'menu','sidebar'=>'barra lateral','taxonomy'=>'taxonomía','term'=>'término','pages'=>'páginas','widget documentation'=>'documentación del widget','Documentation'=>'Documentación','{<a>}{</a>}Advanced Sidebar Menu requires %1$sAdvanced Sidebar Menu PRO%2$s version %3$s+. Please update or deactivate the PRO version.'=>'Advanced Sidebar Menu requiere %1$sAdvanced Sidebar Menu PRO%2$s versión %3$s+. Actualice o desactive la versión PRO.','Preview'=>'Vista previa','PRO version widget options'=>'Opciones del widget de la versión PRO','Styling options including borders, bullets, colors, backgrounds, font size and weight.'=>'Opciones de estilo que incluyen bordes, viñetas, colores, fondos, tamaño de fuente y peso.','Accordion menus.'=>'Menús de acordeón.','Support for custom navigation menus from Appearance -> Menus.'=>'Compatibilidad con menús de navegación personalizados.','Select and display custom post types and taxonomies.'=>'Seleccione y muestre taxonomías y tipos de publicaciones personalizadas.','Priority support with access to members only support area.'=>'Soporte prioritario con acceso a los miembros solo área de apoyo.','In a new widget'=>'En un nuevo widget','In another list in the same widget'=>'En otra lista en el mismo widget','Display the highest level parent %s'=>'Mostrar el %s principal de nivel más alto','Creates a menu of all the pages using the parent/child relationship'=>'Crea un menú de todas las páginas utilizando la relación hijo/padre','Page Order'=>'Orden de páginas','Published Date'=>'Fecha de publicación','Advanced Sidebar Menu'=>'Advanced Sidebar Menu','https://onpointplugins.com/advanced-sidebar-menu/'=>'https://onpointplugins.com/advanced-sidebar-menu/','Creates dynamic menus based on parent/child relationship of your pages or categories.'=>'Crea menús dinámicos basados en la relación padre/hijo de sus páginas o categorías.','OnPoint Plugins'=>'OnPoint Plugins','https://onpointplugins.com'=>'https://onpointplugins.com'],'language'=>'es_ES','x-generator'=>'Poedit 2.4.3'];
     2return ['domain'=>'advanced-sidebar-menu','plural-forms'=>'nplurals=2; plural=(n != 1);','language'=>'es_ES','project-id-version'=>'Advanced Sidebar Menu','pot-creation-date'=>'2024-03-24 21:25-0500','po-revision-date'=>'2024-03-24 21:26-0500','x-generator'=>'Poedit 2.4.3','messages'=>['Blocks are the future of Advanced Sidebar Menu.'=>'Los bloques son el futuro del menú avanzado de la barra lateral.','This widget may be transformed into a block.'=>'Este widget puede transformarse en un bloque.','Display highest level parent %s'=>'Mostrar el %s principal de nivel más alto','Display menu when there is only the parent %s'=>'Mostrar menú cuando solo hay el elemento primario %s','Always display child %s'=>'Muestre siempre %s secundarios','Display'=>'Mostrar','Display %1$s levels of child %2$s'=>'Mostrar %1$s niveles de %2$s secundario','- All -'=>'- Todo -','For more robust and intuitive exclusions use the %1$sPRO version%2$s.'=>'Para exclusiones más robustas e intuitivas, utilice la versión %1$sPRO%2$s.','%s to exclude (ids, comma separated)'=>'%s para excluir (ids, separados por comas)','Go PRO'=>'Actualizar a PRO','Advanced Sidebar Menu PRO'=>'Advanced Sidebar Menu PRO','And so much more…'=>'Y mucho más…','Upgrade'=>'Actualizar','Advanced Sidebar - Pages'=>'Advanced Sidebar - Páginas','No preview available'=>'No hay vista previa disponible','Advanced Sidebar - Categories'=>'Advanced Sidebar - Categorías','Advanced Sidebar - Navigation'=>'Advanced Sidebar - Páginas','Title'=>'Título','Display %s on single posts'=>'Mostrar %s en publicaciones individuales','Display each single post\'s %s'=>'Muestra las %s de cada publicación','block documentation'=>'bloquear documentación','Order by'=>'Ordenar por','Creates a menu of all the categories using the parent/child relationship'=>'Crea un menú de todas las categorías utilizando la relación hijo/padre','menu'=>'menu','sidebar'=>'barra lateral','taxonomy'=>'taxonomía','term'=>'término','pages'=>'páginas','widget documentation'=>'documentación del widget','Documentation'=>'Documentación','{<a>}{</a>}Advanced Sidebar Menu requires %1$sAdvanced Sidebar Menu PRO%2$s version %3$s+. Please update or deactivate the PRO version.'=>'Advanced Sidebar Menu requiere %1$sAdvanced Sidebar Menu PRO%2$s versión %3$s+. Actualice o desactive la versión PRO.','Preview'=>'Vista previa','PRO version widget options'=>'Opciones del widget de la versión PRO','Styling options including borders, bullets, colors, backgrounds, font size and weight.'=>'Opciones de estilo que incluyen bordes, viñetas, colores, fondos, tamaño de fuente y peso.','Accordion menus.'=>'Menús de acordeón.','Support for custom navigation menus from Appearance -> Menus.'=>'Compatibilidad con menús de navegación personalizados.','Select and display custom post types and taxonomies.'=>'Seleccione y muestre taxonomías y tipos de publicaciones personalizadas.','Priority support with access to members only support area.'=>'Soporte prioritario con acceso a los miembros solo área de apoyo.','In a new widget'=>'En un nuevo widget','In another list in the same widget'=>'En otra lista en el mismo widget','Display the highest level parent %s'=>'Mostrar el %s principal de nivel más alto','Creates a menu of all the pages using the parent/child relationship'=>'Crea un menú de todas las páginas utilizando la relación hijo/padre','Page Order'=>'Orden de páginas','Published Date'=>'Fecha de publicación','Advanced Sidebar Menu'=>'Advanced Sidebar Menu','https://onpointplugins.com/advanced-sidebar-menu/'=>'https://onpointplugins.com/advanced-sidebar-menu/','Creates dynamic menus based on parent/child relationship of your pages or categories.'=>'Crea menús dinámicos basados en la relación padre/hijo de sus páginas o categorías.','OnPoint Plugins'=>'OnPoint Plugins','https://onpointplugins.com'=>'https://onpointplugins.com']];
  • advanced-sidebar-menu/trunk/languages/advanced-sidebar-menu-fr_FR.l10n.php

    r3123446 r3150228  
    11<?php
    2 return ['domain'=>'advanced-sidebar-menu','plural-forms'=>'nplurals=2; plural=(n != 1);','messages'=>['Blocks are the future of Advanced Sidebar Menu.'=>'Les blocs sont l’avenir de Advanced Sidebar Menu.','This widget may be transformed into a block.'=>'Ce widget peut être transformé en bloc.','Display highest level parent %s'=>'Afficher les parents de haut niveau %s','Display menu when there is only the parent %s'=>'Afficher le menu lorsqu’il n’y a que le parent %s','Always display child %s'=>'Affichez toujours les enfants %s','Display'=>'Afficher','Display %1$s levels of child %2$s'=>'Afficher %1$s niveaux d\'%2$s','- All -'=>'- Tout -','For more robust and intuitive exclusions use the %1$sPRO version%2$s.'=>'Pour des exclusions plus robustes et intuitives, utilisez la version %1$sPRO%2$s.','%s to exclude (ids, comma separated)'=>'%s exclure (ids, virgule séparée)','Go PRO'=>'Passer à la version pro','Advanced Sidebar Menu PRO'=>'Advanced Sidebar Menu PRO','And so much more…'=>'Tellement plus…','Upgrade'=>'Mise à jour','Advanced Sidebar - Pages'=>'Advanced Sidebar - Des Pages','No preview available'=>'Aucun aperçu disponible','Advanced Sidebar - Categories'=>'Advanced Sidebar - Catégories','Advanced Sidebar - Navigation'=>'Advanced Sidebar - La navigation','Title'=>'Titre','Display %s on single posts'=>'Afficher %s sur les messages simples','Display each single post\'s %s'=>'Affichez les %s','block documentation'=>'bloquer la documentation','Order by'=>'Trier par','Creates a menu of all the categories using the parent/child relationship'=>'Crée un menu de toutes les catégories en utilisant la relation de l\'enfant/parent','menu'=>'menu','sidebar'=>'barre latérale','taxonomy'=>'taxonomie','term'=>'terme','pages'=>'pages','widget documentation'=>'documentation widget','Documentation'=>'Documentation','{<a>}{</a>}Advanced Sidebar Menu requires %1$sAdvanced Sidebar Menu PRO%2$s version %3$s+. Please update or deactivate the PRO version.'=>'Le menu Sidebar avancé nécessite %1$sAvanced Sidebar Menu PRO%2$s version %3$s+. Veuillez mettre à jour ou désactiver la version PRO.','Preview'=>'Aperçu','PRO version widget options'=>'Options du widget version PRO','Styling options including borders, bullets, colors, backgrounds, font size and weight.'=>'Options de style, y compris les bordures, les puces, les couleurs, les arrière-plans, la taille de la police et l’épaisseur.','Accordion menus.'=>'Menus accordéon.','Support for custom navigation menus from Appearance -> Menus.'=>'Prise en charge des menus de navigation personnalisés.','Select and display custom post types and taxonomies.'=>'Sélectionnez et affichez des types de publication et des taxonomies personnalisés.','Priority support with access to members only support area.'=>'Soutien prioritaire avec accès aux membres uniquement zone de soutien.','In a new widget'=>'Dans un nouveau widget','In another list in the same widget'=>'Dans une autre liste dans le même widget','Display the highest level parent %s'=>'Affichez les compétences parentales de haut niveau %s','Creates a menu of all the pages using the parent/child relationship'=>'Crée un menu de toutes les pages en utilisant la relation enfant/parent','Page Order'=>'Ordre des pages','Published Date'=>'Date de publication','Advanced Sidebar Menu'=>'Advanced Sidebar Menu','https://onpointplugins.com/advanced-sidebar-menu/'=>'https://onpointplugins.com/advanced-sidebar-menu/','Creates dynamic menus based on parent/child relationship of your pages or categories.'=>'Crée des menus dynamiques basés sur la relation parent/enfant de vos pages ou catégories.','OnPoint Plugins'=>'OnPoint Plugins','https://onpointplugins.com'=>'https://onpointplugins.com'],'language'=>'fr_FR','x-generator'=>'Poedit 2.4.3'];
     2return ['domain'=>'advanced-sidebar-menu','plural-forms'=>'nplurals=2; plural=(n != 1);','language'=>'fr_FR','project-id-version'=>'Advanced Sidebar Menu','pot-creation-date'=>'2024-03-24 21:25-0500','po-revision-date'=>'2024-03-24 21:26-0500','x-generator'=>'Poedit 2.4.3','messages'=>['Blocks are the future of Advanced Sidebar Menu.'=>'Les blocs sont l’avenir de Advanced Sidebar Menu.','This widget may be transformed into a block.'=>'Ce widget peut être transformé en bloc.','Display highest level parent %s'=>'Afficher les parents de haut niveau %s','Display menu when there is only the parent %s'=>'Afficher le menu lorsqu’il n’y a que le parent %s','Always display child %s'=>'Affichez toujours les enfants %s','Display'=>'Afficher','Display %1$s levels of child %2$s'=>'Afficher %1$s niveaux d\'%2$s','- All -'=>'- Tout -','For more robust and intuitive exclusions use the %1$sPRO version%2$s.'=>'Pour des exclusions plus robustes et intuitives, utilisez la version %1$sPRO%2$s.','%s to exclude (ids, comma separated)'=>'%s exclure (ids, virgule séparée)','Go PRO'=>'Passer à la version pro','Advanced Sidebar Menu PRO'=>'Advanced Sidebar Menu PRO','And so much more…'=>'Tellement plus…','Upgrade'=>'Mise à jour','Advanced Sidebar - Pages'=>'Advanced Sidebar - Des Pages','No preview available'=>'Aucun aperçu disponible','Advanced Sidebar - Categories'=>'Advanced Sidebar - Catégories','Advanced Sidebar - Navigation'=>'Advanced Sidebar - La navigation','Title'=>'Titre','Display %s on single posts'=>'Afficher %s sur les messages simples','Display each single post\'s %s'=>'Affichez les %s','block documentation'=>'bloquer la documentation','Order by'=>'Trier par','Creates a menu of all the categories using the parent/child relationship'=>'Crée un menu de toutes les catégories en utilisant la relation de l\'enfant/parent','menu'=>'menu','sidebar'=>'barre latérale','taxonomy'=>'taxonomie','term'=>'terme','pages'=>'pages','widget documentation'=>'documentation widget','Documentation'=>'Documentation','{<a>}{</a>}Advanced Sidebar Menu requires %1$sAdvanced Sidebar Menu PRO%2$s version %3$s+. Please update or deactivate the PRO version.'=>'Le menu Sidebar avancé nécessite %1$sAvanced Sidebar Menu PRO%2$s version %3$s+. Veuillez mettre à jour ou désactiver la version PRO.','Preview'=>'Aperçu','PRO version widget options'=>'Options du widget version PRO','Styling options including borders, bullets, colors, backgrounds, font size and weight.'=>'Options de style, y compris les bordures, les puces, les couleurs, les arrière-plans, la taille de la police et l’épaisseur.','Accordion menus.'=>'Menus accordéon.','Support for custom navigation menus from Appearance -> Menus.'=>'Prise en charge des menus de navigation personnalisés.','Select and display custom post types and taxonomies.'=>'Sélectionnez et affichez des types de publication et des taxonomies personnalisés.','Priority support with access to members only support area.'=>'Soutien prioritaire avec accès aux membres uniquement zone de soutien.','In a new widget'=>'Dans un nouveau widget','In another list in the same widget'=>'Dans une autre liste dans le même widget','Display the highest level parent %s'=>'Affichez les compétences parentales de haut niveau %s','Creates a menu of all the pages using the parent/child relationship'=>'Crée un menu de toutes les pages en utilisant la relation enfant/parent','Page Order'=>'Ordre des pages','Published Date'=>'Date de publication','Advanced Sidebar Menu'=>'Advanced Sidebar Menu','https://onpointplugins.com/advanced-sidebar-menu/'=>'https://onpointplugins.com/advanced-sidebar-menu/','Creates dynamic menus based on parent/child relationship of your pages or categories.'=>'Crée des menus dynamiques basés sur la relation parent/enfant de vos pages ou catégories.','OnPoint Plugins'=>'OnPoint Plugins','https://onpointplugins.com'=>'https://onpointplugins.com']];
  • advanced-sidebar-menu/trunk/readme.txt

    r3124148 r3150228  
    44Tags: menus, page menus, category menus, sidebars, hierarchy
    55Requires at least: 6.2.0
    6 Tested up to: 6.6.1
     6Tested up to: 6.6.2
    77Requires PHP: 7.4.0
    8 Stable tag: 9.6.0
     8Stable tag: 9.6.1
    99License: GPLv3 or later
    1010License URI: http://www.gnu.org/licenses/gpl-3.0.html
     
    164164
    165165== Changelog ==
     166= 9.6.1 =
     167* Introduce JEST unit testings for the basic version.
     168* Improved the automated testing suite.
     169* Improved deployment workflows.
     170* Fixed sourcemap generation on production builds.
     171* Tested to WordPress Core 6.6.2.
     172
    166173= 9.6.0 =
    167174* Introduced `Widget/WidgtId` and `Widget/WithWidgetId` interfaces.
Note: See TracChangeset for help on using the changeset viewer.